From 35e67da08e3d214589968c19b4b2fb31d8e566cc Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 17 Oct 2021 21:02:18 +0200 Subject: UPDATED: examples to raylib 4.0 Some new examples added --- examples/text/loader.html | 236 ++ examples/text/text_draw_3d.data | 20 + examples/text/text_draw_3d.html | 1 + examples/text/text_draw_3d.js | 1 + examples/text/text_draw_3d.wasm | Bin 0 -> 217527 bytes examples/text/text_font_filters.data | Bin 0 -> 79912 bytes examples/text/text_font_filters.html | 1 + examples/text/text_font_filters.js | 1 + examples/text/text_font_filters.wasm | Bin 0 -> 129812 bytes examples/text/text_font_loading.data | 439 ++++ examples/text/text_font_loading.html | 1 + examples/text/text_font_loading.js | 1 + examples/text/text_font_loading.wasm | Bin 0 -> 187090 bytes examples/text/text_font_sdf.data | Bin 0 -> 154296 bytes examples/text/text_font_sdf.html | 1 + examples/text/text_font_sdf.js | 1 + examples/text/text_font_sdf.wasm | Bin 0 -> 144590 bytes examples/text/text_font_spritefont.data | Bin 0 -> 106620 bytes examples/text/text_font_spritefont.html | 1 + examples/text/text_font_spritefont.js | 1 + examples/text/text_font_spritefont.wasm | Bin 0 -> 187304 bytes examples/text/text_format_text.html | 1 + examples/text/text_format_text.js | 1 + examples/text/text_format_text.wasm | Bin 0 -> 100441 bytes examples/text/text_input_box.html | 1 + examples/text/text_input_box.js | 1 + examples/text/text_input_box.wasm | Bin 0 -> 103100 bytes examples/text/text_raylib_fonts.data | Bin 0 -> 21485 bytes examples/text/text_raylib_fonts.html | 1 + examples/text/text_raylib_fonts.js | 1 + examples/text/text_raylib_fonts.wasm | Bin 0 -> 188686 bytes examples/text/text_rectangle_bounds.html | 1 + examples/text/text_rectangle_bounds.js | 1 + examples/text/text_rectangle_bounds.wasm | Bin 0 -> 105113 bytes examples/text/text_unicode.data | 3484 ++++++++++++++++++++++++++++++ examples/text/text_unicode.html | 1 + examples/text/text_unicode.js | 1 + examples/text/text_unicode.wasm | Bin 0 -> 196915 bytes examples/text/text_writing_anim.html | 1 + examples/text/text_writing_anim.js | 1 + examples/text/text_writing_anim.wasm | Bin 0 -> 100401 bytes 41 files changed, 4201 insertions(+) create mode 100644 examples/text/loader.html create mode 100644 examples/text/text_draw_3d.data create mode 100644 examples/text/text_draw_3d.html create mode 100644 examples/text/text_draw_3d.js create mode 100644 examples/text/text_draw_3d.wasm create mode 100644 examples/text/text_font_filters.data create mode 100644 examples/text/text_font_filters.html create mode 100644 examples/text/text_font_filters.js create mode 100644 examples/text/text_font_filters.wasm create mode 100644 examples/text/text_font_loading.data create mode 100644 examples/text/text_font_loading.html create mode 100644 examples/text/text_font_loading.js create mode 100644 examples/text/text_font_loading.wasm create mode 100644 examples/text/text_font_sdf.data create mode 100644 examples/text/text_font_sdf.html create mode 100644 examples/text/text_font_sdf.js create mode 100644 examples/text/text_font_sdf.wasm create mode 100644 examples/text/text_font_spritefont.data create mode 100644 examples/text/text_font_spritefont.html create mode 100644 examples/text/text_font_spritefont.js create mode 100644 examples/text/text_font_spritefont.wasm create mode 100644 examples/text/text_format_text.html create mode 100644 examples/text/text_format_text.js create mode 100644 examples/text/text_format_text.wasm create mode 100644 examples/text/text_input_box.html create mode 100644 examples/text/text_input_box.js create mode 100644 examples/text/text_input_box.wasm create mode 100644 examples/text/text_raylib_fonts.data create mode 100644 examples/text/text_raylib_fonts.html create mode 100644 examples/text/text_raylib_fonts.js create mode 100644 examples/text/text_raylib_fonts.wasm create mode 100644 examples/text/text_rectangle_bounds.html create mode 100644 examples/text/text_rectangle_bounds.js create mode 100644 examples/text/text_rectangle_bounds.wasm create mode 100644 examples/text/text_unicode.data create mode 100644 examples/text/text_unicode.html create mode 100644 examples/text/text_unicode.js create mode 100644 examples/text/text_unicode.wasm create mode 100644 examples/text/text_writing_anim.html create mode 100644 examples/text/text_writing_anim.js create mode 100644 examples/text/text_writing_anim.wasm (limited to 'examples/text') diff --git a/examples/text/loader.html b/examples/text/loader.html new file mode 100644 index 0000000..74b8082 --- /dev/null +++ b/examples/text/loader.html @@ -0,0 +1,236 @@ + + + + loading... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + +
+ + + + + + + + + \ No newline at end of file diff --git a/examples/text/text_draw_3d.data b/examples/text/text_draw_3d.data new file mode 100644 index 0000000..a6b1e20 --- /dev/null +++ b/examples/text/text_draw_3d.data @@ -0,0 +1,20 @@ +#version 100 + +precision mediump float; + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +void main() +{ + vec4 texelColor = texture2D(texture0, fragTexCoord); + + if (texelColor.a == 0.0) discard; + + gl_FragColor = texelColor*fragColor*colDiffuse; +} diff --git a/examples/text/text_draw_3d.html b/examples/text/text_draw_3d.html new file mode 100644 index 0000000..4bbff6f --- /dev/null +++ b/examples/text/text_draw_3d.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_draw_3d.js b/examples/text/text_draw_3d.js new file mode 100644 index 0000000..fe41911 --- /dev/null +++ b/examples/text/text_draw_3d.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_draw_3d.data";var REMOTE_PACKAGE_BASE="text_draw_3d.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","shaders",true,true);Module["FS_createPath"]("/resources/shaders","glsl100",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_draw_3d.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["be"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ee"];addOnInit(Module["asm"]["ce"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}else{return-2}}return requestPointerLock(target)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"X":GetCanvasHeight,"Y":GetCanvasWidth,"a":___assert_fail,"G":___sys_fcntl64,"Qa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"ya":_emscripten_exit_pointerlock,"V":_emscripten_get_element_css_size,"P":_emscripten_get_gamepad_status,"Q":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"Zd":_emscripten_glBeginQueryEXT,"Fd":_emscripten_glBindAttribLocation,"Ed":_emscripten_glBindBuffer,"Dd":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Qd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"$d":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Pd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Pc":_emscripten_glFramebufferRenderbuffer,"Oc":_emscripten_glFramebufferTexture2D,"Nc":_emscripten_glFrontFace,"Mc":_emscripten_glGenBuffers,"Kc":_emscripten_glGenFramebuffers,"M":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Od":_emscripten_glGenVertexArraysOES,"Lc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"kc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_emscripten_glGetUniformiv,"hc":_emscripten_glGetVertexAttribPointerv,"jc":_emscripten_glGetVertexAttribfv,"ic":_emscripten_glGetVertexAttribiv,"gc":_emscripten_glHint,"fc":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"_d":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"$b":_emscripten_glIsShader,"_b":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Zb":_emscripten_glLineWidth,"Yb":_emscripten_glLinkProgram,"Xb":_emscripten_glPixelStorei,"Wb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Rb":_emscripten_glSampleCoverage,"Qb":_emscripten_glScissor,"Pb":_emscripten_glShaderBinary,"Ob":_emscripten_glShaderSource,"Nb":_emscripten_glStencilFunc,"Mb":_emscripten_glStencilFuncSeparate,"Lb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Gb":_emscripten_glTexImage2D,"Fb":_emscripten_glTexParameterf,"Eb":_emscripten_glTexParameterfv,"Db":_emscripten_glTexParameteri,"Cb":_emscripten_glTexParameteriv,"Bb":_emscripten_glTexSubImage2D,"Ab":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"vb":_emscripten_glUniform2f,"ub":_emscripten_glUniform2fv,"tb":_emscripten_glUniform2i,"sb":_emscripten_glUniform2iv,"rb":_emscripten_glUniform3f,"qb":_emscripten_glUniform3fv,"pb":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"kb":_emscripten_glUniform4i,"jb":_emscripten_glUniform4iv,"ib":_emscripten_glUniformMatrix2fv,"hb":_emscripten_glUniformMatrix3fv,"gb":_emscripten_glUniformMatrix4fv,"fb":_emscripten_glUseProgram,"eb":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"$a":_emscripten_glVertexAttrib2fv,"_a":_emscripten_glVertexAttrib3f,"Za":_emscripten_glVertexAttrib3fv,"Ya":_emscripten_glVertexAttrib4f,"Xa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Wa":_emscripten_glVertexAttribPointer,"Va":_emscripten_glViewport,"Na":_emscripten_memcpy_big,"za":_emscripten_request_pointerlock,"Oa":_emscripten_resize_heap,"w":_emscripten_run_script,"R":_emscripten_sample_gamepad_data,"W":_emscripten_set_canvas_element_size,"va":_emscripten_set_click_callback_on_thread,"qa":_emscripten_set_gamepadconnected_callback_on_thread,"pa":_emscripten_set_gamepaddisconnected_callback_on_thread,"wa":_emscripten_set_resize_callback_on_thread,"ra":_emscripten_set_touchcancel_callback_on_thread,"ta":_emscripten_set_touchend_callback_on_thread,"sa":_emscripten_set_touchmove_callback_on_thread,"ua":_emscripten_set_touchstart_callback_on_thread,"T":_emscripten_sleep,"Pa":_emscripten_thread_sleep,"N":_exit,"H":_fd_close,"Ra":_fd_read,"La":_fd_seek,"F":_fd_write,"x":_glActiveTexture,"B":_glAttachShader,"h":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"ec":_glBlendFunc,"o":_glBufferData,"u":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ob":_glClearDepthf,"Ea":_glCompileShader,"Ka":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Kb":_glCullFace,"m":_glDeleteBuffers,"D":_glDeleteProgram,"k":_glDeleteShader,"E":_glDeleteTextures,"Vb":_glDepthFunc,"l":_glDetachShader,"L":_glDisable,"n":_glDisableVertexAttribArray,"Rd":_glDrawArrays,"Gd":_glDrawElements,"v":_glEnable,"g":_glEnableVertexAttribArray,"zb":_glFrontFace,"p":_glGenBuffers,"Ua":_glGenTextures,"Ha":_glGetActiveUniform,"r":_glGetAttribLocation,"Jc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"s":_glGetProgramiv,"Da":_glGetShaderInfoLog,"C":_glGetShaderiv,"j":_glGetString,"q":_glGetUniformLocation,"Ba":_glLinkProgram,"db":_glPixelStorei,"Ia":_glReadPixels,"Fa":_glShaderSource,"Ma":_glTexImage2D,"K":_glTexParameterf,"f":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ja":_glUniformMatrix4fv,"t":_glUseProgram,"i":_glVertexAttribPointer,"ae":_glViewport,"z":_glfwCreateWindow,"ma":_glfwDefaultWindowHints,"U":_glfwDestroyWindow,"A":_glfwGetPrimaryMonitor,"d":_glfwGetTime,"la":_glfwGetVideoModes,"na":_glfwInit,"_":_glfwMakeContextCurrent,"ea":_glfwSetCharCallback,"$":_glfwSetCursorEnterCallback,"ca":_glfwSetCursorPosCallback,"ga":_glfwSetDropCallback,"oa":_glfwSetErrorCallback,"fa":_glfwSetKeyCallback,"da":_glfwSetMouseButtonCallback,"ba":_glfwSetScrollCallback,"ha":_glfwSetWindowFocusCallback,"ia":_glfwSetWindowIconifyCallback,"O":_glfwSetWindowShouldClose,"ja":_glfwSetWindowSizeCallback,"S":_glfwSwapBuffers,"Z":_glfwSwapInterval,"y":_glfwTerminate,"c":_glfwWindowHint,"xa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ce"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["de"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["fe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ge"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["he"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ne"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["oe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["pe"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["re"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["se"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["te"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["ue"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_draw_3d.wasm b/examples/text/text_draw_3d.wasm new file mode 100644 index 0000000..9bb47f8 Binary files /dev/null and b/examples/text/text_draw_3d.wasm differ diff --git a/examples/text/text_font_filters.data b/examples/text/text_font_filters.data new file mode 100644 index 0000000..04478b2 Binary files /dev/null and b/examples/text/text_font_filters.data differ diff --git a/examples/text/text_font_filters.html b/examples/text/text_font_filters.html new file mode 100644 index 0000000..f3f3d9a --- /dev/null +++ b/examples/text/text_font_filters.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_font_filters.js b/examples/text/text_font_filters.js new file mode 100644 index 0000000..bcca7fc --- /dev/null +++ b/examples/text/text_font_filters.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_font_filters.data";var REMOTE_PACKAGE_BASE="text_font_filters.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_font_filters.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["$d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ce"];addOnInit(Module["asm"]["ae"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Y":GetCanvasHeight,"Z":GetCanvasWidth,"a":___assert_fail,"F":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"W":_emscripten_get_element_css_size,"Q":_emscripten_get_gamepad_status,"R":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"Zd":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Dd":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"id":_emscripten_glCopyTexSubImage2D,"hd":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"M":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"N":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Od":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"L":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"s":_emscripten_run_script,"S":_emscripten_sample_gamepad_data,"X":_emscripten_set_canvas_element_size,"wa":_emscripten_set_click_callback_on_thread,"ra":_emscripten_set_gamepadconnected_callback_on_thread,"qa":_emscripten_set_gamepaddisconnected_callback_on_thread,"xa":_emscripten_set_resize_callback_on_thread,"sa":_emscripten_set_touchcancel_callback_on_thread,"ua":_emscripten_set_touchend_callback_on_thread,"ta":_emscripten_set_touchmove_callback_on_thread,"va":_emscripten_set_touchstart_callback_on_thread,"U":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"O":_exit,"G":_fd_close,"Qa":_fd_read,"La":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"h":_glBindAttribLocation,"b":_glBindBuffer,"d":_glBindTexture,"bc":_glBlendFunc,"m":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"lb":_glClearDepthf,"Da":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ba":_glCreateProgram,"Fa":_glCreateShader,"Hb":_glCullFace,"k":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"Sb":_glDepthFunc,"C":_glDetachShader,"jd":_glDisable,"l":_glDisableVertexAttribArray,"Pd":_glDrawArrays,"Ed":_glDrawElements,"K":_glEnable,"g":_glEnableVertexAttribArray,"wb":_glFrontFace,"n":_glGenBuffers,"Sa":_glGenTextures,"Ha":_glGenerateMipmap,"q":_glGetAttribLocation,"Gc":_glGetFloatv,"za":_glGetProgramInfoLog,"z":_glGetProgramiv,"Ca":_glGetShaderInfoLog,"y":_glGetShaderiv,"j":_glGetString,"o":_glGetUniformLocation,"Aa":_glLinkProgram,"ab":_glPixelStorei,"Ga":_glReadPixels,"Ea":_glShaderSource,"Ka":_glTexImage2D,"J":_glTexParameterf,"e":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"p":_glUseProgram,"i":_glVertexAttribPointer,"_d":_glViewport,"v":_glfwCreateWindow,"na":_glfwDefaultWindowHints,"V":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"f":_glfwGetTime,"ma":_glfwGetVideoModes,"oa":_glfwInit,"aa":_glfwMakeContextCurrent,"fa":_glfwSetCharCallback,"ba":_glfwSetCursorEnterCallback,"da":_glfwSetCursorPosCallback,"ha":_glfwSetDropCallback,"pa":_glfwSetErrorCallback,"ga":_glfwSetKeyCallback,"ea":_glfwSetMouseButtonCallback,"ca":_glfwSetScrollCallback,"ia":_glfwSetWindowFocusCallback,"ja":_glfwSetWindowIconifyCallback,"P":_glfwSetWindowShouldClose,"la":_glfwSetWindowSizeCallback,"T":_glfwSwapBuffers,"_":_glfwSwapInterval,"u":_glfwTerminate,"c":_glfwWindowHint,"ya":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ae"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["be"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["de"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ee"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["fe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ne"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["re"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["se"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_font_filters.wasm b/examples/text/text_font_filters.wasm new file mode 100644 index 0000000..6a09d3a Binary files /dev/null and b/examples/text/text_font_filters.wasm differ diff --git a/examples/text/text_font_loading.data b/examples/text/text_font_loading.data new file mode 100644 index 0000000..e0c1a15 --- /dev/null +++ b/examples/text/text_font_loading.data @@ -0,0 +1,439 @@ +info face="PixAntiqua" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=2,2,2,2 spacing=2,2 outline=0 +common lineHeight=32 base=27 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="pixantiqua.png" +chars count=184 +char id=32 x=9 y=304 width=7 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=33 x=391 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=34 x=240 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=35 x=468 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=36 x=152 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=37 x=176 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=38 x=303 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=39 x=495 y=266 width=8 height=36 xoffset=-3 yoffset=-2 xadvance=5 page=0 chnl=15 +char id=40 x=256 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=199 x=432 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=200 x=126 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=201 x=147 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=202 x=288 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=203 x=189 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=204 x=468 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=205 x=486 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=206 x=0 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=207 x=72 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=208 x=329 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=209 x=277 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=210 x=182 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=211 x=26 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=41 x=272 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=42 x=288 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=43 x=414 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=44 x=378 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=45 x=414 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=46 x=443 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=47 x=392 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=48 x=485 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=49 x=450 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=50 x=21 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=51 x=42 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=59 x=456 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=60 x=168 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=61 x=309 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=62 x=336 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=63 x=315 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=64 x=364 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=65 x=390 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=66 x=120 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=67 x=144 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=68 x=168 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=69 x=294 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=52 x=488 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=53 x=63 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=54 x=24 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=55 x=48 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=56 x=72 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=57 x=96 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=58 x=404 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=70 x=252 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=71 x=192 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=72 x=78 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=78 x=78 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=79 x=355 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=80 x=264 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=81 x=381 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=82 x=288 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=83 x=312 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=91 x=144 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=92 x=108 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=93 x=304 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=94 x=34 y=0 width=32 height=36 xoffset=-3 yoffset=-2 xadvance=29 page=0 chnl=15 +char id=95 x=231 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=96 x=442 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=97 x=408 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=98 x=432 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=99 x=210 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=84 x=336 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=85 x=360 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=86 x=0 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=87 x=68 y=0 width=30 height=36 xoffset=-3 yoffset=-2 xadvance=27 page=0 chnl=15 +char id=88 x=26 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=89 x=384 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=90 x=84 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=100 x=456 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=101 x=480 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=102 x=54 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=103 x=0 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=104 x=24 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=105 x=469 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=106 x=18 y=266 width=16 height=36 xoffset=-8 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=107 x=48 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=108 x=417 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=109 x=161 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=110 x=72 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=111 x=96 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=117 x=192 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=118 x=216 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=119 x=248 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=120 x=240 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=121 x=264 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=122 x=288 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=123 x=432 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=124 x=365 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=125 x=378 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=126 x=393 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=127 x=132 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=160 x=0 y=304 width=7 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=161 x=352 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=162 x=351 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=163 x=336 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=165 x=360 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=167 x=384 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=169 x=433 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=170 x=224 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=171 x=105 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=172 x=0 y=0 width=32 height=36 xoffset=-3 yoffset=-2 xadvance=29 page=0 chnl=15 +char id=173 x=494 y=38 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=174 x=52 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=175 x=52 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=176 x=126 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=177 x=435 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=178 x=320 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=179 x=336 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=181 x=459 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=112 x=120 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=113 x=144 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=114 x=396 y=228 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=115 x=168 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=116 x=36 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=182 x=408 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=183 x=498 y=190 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=185 x=192 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=186 x=208 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=187 x=477 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=191 x=456 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=192 x=407 y=0 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=193 x=234 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=194 x=416 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=195 x=156 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=196 x=130 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=197 x=104 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=198 x=190 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=212 x=0 y=76 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=213 x=338 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=214 x=312 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=215 x=357 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=216 x=286 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=217 x=456 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=218 x=480 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=219 x=0 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=220 x=24 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=221 x=48 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=222 x=260 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=223 x=72 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=224 x=96 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=225 x=120 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=226 x=144 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=227 x=168 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=228 x=192 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=229 x=216 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=230 x=219 y=0 width=27 height=36 xoffset=-3 yoffset=-2 xadvance=24 page=0 chnl=15 +char id=231 x=372 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=73 x=90 y=266 width=16 height=36 xoffset=-3 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=74 x=216 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=75 x=240 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=76 x=273 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=77 x=100 y=0 width=30 height=36 xoffset=-3 yoffset=-2 xadvance=27 page=0 chnl=15 +char id=232 x=312 y=152 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=233 x=240 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=234 x=264 y=190 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=235 x=104 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=236 x=430 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=237 x=482 y=266 width=11 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=238 x=160 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=239 x=176 y=266 width=14 height=36 xoffset=-3 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=240 x=128 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=241 x=200 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=242 x=224 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=243 x=248 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=244 x=272 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=245 x=296 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=246 x=320 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=247 x=330 y=190 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=248 x=208 y=38 width=24 height=36 xoffset=-3 yoffset=-2 xadvance=21 page=0 chnl=15 +char id=249 x=344 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=250 x=368 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=251 x=416 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=252 x=440 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=253 x=464 y=76 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +char id=254 x=0 y=228 width=19 height=36 xoffset=-3 yoffset=-2 xadvance=16 page=0 chnl=15 +char id=255 x=0 y=114 width=22 height=36 xoffset=-3 yoffset=-2 xadvance=19 page=0 chnl=15 +‰PNG + + IHDRÑ‹&zIDATxœíÝO^ó*ÀqâçÝ„u.¡ƵµS‡u nC‡º Þ¥%p’´Þ‡ßwò\Óük.='ÆÀœÑ:Ç-r<dÜò 5ާ¯|´?·:ƒ|·éÞñçQ0%E½ÇŸs`žT?¾JÖ(úÛï)ˆo“¿/{.åŽ`W¬DFkGéÄ1jm5†'ïcÃ'-—¢ + sÆ0ÐkÍÏ£ýyŒ×hñqÄ >÷ÕP9éœVШÖ1ú—¥:tæcŒxi×Dèœ+¾ðí1æñÇý{ÿ5-¦öô+{¾Ía†áá[Ø£þó8ïóh¿î§ËƒcZkwƳ;ïÇ5ƒ.­ÓøW2ž¶¿«hKÿÓ +þM?Ôì«BÿzƘÃ0|}âíçóð–o¦±écÖØ ¾ s€ÎÝù(ô68óý0¼cÌïÓðâV +ôÞ˜}ó½öÛðôëþë÷ix3æí\‰ÇN‘ðcç-wÖ¾O¿á¿ãtÏbudŒ««2[NÄ*þ0 çÚìR­ˆuç¾¾<þØ×!ðüYt¼ÑÚÝéÂß‹Ð9 +@çΠ¤Yhe ³ûÚåÚìõ‚f´1ÆßG¬vÛ,†óñr£² jÊ´î\IPå\èÑ»ðß_Ï»¸`oD€ÎÝ] +îÊ¿#5Íܱô&[«ý¹ÃE©Kóq´ÖžºöI÷Ü·S³Qú-¹öìú_ezœœø«6!tŽÐ9WüͲ™m *Ý®.´ïí×½ù8µ1&ñkÚãé£V]jÎÛ0 ®"›ˆÃµïê(çëGí“õ¾‚ÌwºH]«³ß†çOû*u, ˆ£tîî2æh.ÚŤpp ü±¸º‰øaå>¼EÏY|J7”]Òp©.Ê?ñÕVz/B…&tŠœú‚ +kznD€Î¹~€÷Ëx€’ÛUn@72iMÛ¦¯ÖZûz>ñ ãn®ïåüë²O·¯´‡Î?3 /ä´«å½è]ð?ÌZkíçsQÏãáÒ:ÎÐ9 +Jù—fâÖ¿$˜Ö°`,AÃ"@ç(û_ÍÊ÷_æcØêLúöýp£¥.CÓËû õL`3“ZÅd]mI´Ö̺¢w¯bL;ëcød°ú{ÑÐ9 +¦¹¢é®Ê'F͆’ÝÆäŸ)ŠY²ÉºZ¹’³ã‚l Å•ÝÌYëô´dâuËæ¤±‰sˆ£àÚU@ö. 2ÓW.âN«j”<6ü¦59ëå®AÍYª+ÿÇy}£)¹ŒzSÏÌüsÛ¤g­5Û”_™’xkîêè)þª3Ãf¯žñrä8uï„Òt%tŽйÒ0ÊóôÉZª,%ó¡§dCI·™Ë½èçT½NçM(‰·<Ÿ'›fö üqüŒå8åæ{>ÁWz ”³žþ_Óo–Oz!tŽй»4ÓÁ$\¤tó¤ä:&—ùPßÿLÐέÝÉá\¬jr\vƲiÂÙêéuÂ]Í|J –³žGèÜ´( `’ü¢ôlF)ɹl(Ú69éo¶èW&Ú—NÁ-âµÒqÒkÐ~Ö’¸ï€Ð9 +@çÎYÂ|¨ŒD,i‚‰÷çz —²¡Ìm£Óƒö|â­4»Ëºù _†çO÷½âsÔ3ÂÔ]ƒi~÷(WŒ÷b  {€Î ½Ûïg׸Õƒ\Ë6RïÅ\>âܸ®àAèô6Ê=R]ê/—Þg<âòŠ¥îºÑŒBçð2<ý®ŸÛ/L¯µ.=½–»ÿ=7šJÒ÷ëo{ ö泑G¯¨Lýu¸œÛFo9¬Bè€nd“ŸÜðEuI`´Ü\z®.mÿòòÚÜ_õÇÕl³>ƒ:G€3“½«f:FQB…Éq‚t&ér§¨ÊææÒBº¢Åë¡í_û^ Çõû‹‹èç#7[õçOèNuFÅ\–°ìñ'kú=¹ºVÆÝÿ„Ê\i5â,mD˜™|[ó™¸j²j‰:±q5&Yn¢_Šòþµãn·’Äû×îë¤ÙÙ"@ç(»›Ë*¥ù'5 +7ŸÅ,þ^oÃӝܨ««zÊeh6в³:Gèœ+bV©µLûªhïÔ):ϹçæmUß^zŽ¿©u»ÊãÑÂDx™çËârá—3÷Ü_ £ï?^¬ß¿+Ëš³Œi×¥4û˜QFRe²zU­_56žD€ÎQà”þ4)Z¯ÕhB "@ç(0õ!½iýŠ*WCœiÙ¨ +²Tõb•·Ÿ­H?ùÅôtŽMÙkÇ ‡Öò1¦>Fv}í|äªÐ9 +@ç(‹ ³¥}b‡÷„™Us*µõ}óý0¼§c߇‡oé). s®h£IÍi<¿Ö8ÑòãeF«NF笿Ê(ß±~}môrUãm2¿?“ +&XˆRÄhÿ_Äõ:GèÜÝÜ,Ô¹ì^“P¶“²Ze9ë§Ç“gïÎÑWESáĬhùƛޘ‹SÁSçâªmoŒ1¿OÃÛSö"@ç(k.Ë-¶w\B峕ý}~ŬdŸ`3î’sµåVZ  sw­ùýjóì-¤f-}h¢Ñ²reOù ci$ñç)\ŸÑÚ1+å\ s€Îݵß_¯Šk†aX#1ãhí{’õ+“2Ƈn¡ÊвoiçŸV=Z\}¬i–ö s€Î @ö©ŸàmPlrwqv,?Ô©41£Zý~…/fK ºd3w=Ú«¢QÇKWsz>Û" °áûû²Ïñµó(õ…“*ÀÏRQ[äD€ÎQ:· ­kcŒ6ëVL£»;ú‡ù}J²úD@÷ò€ñüo‚Ð9 +@ç®P +²_u¹£e÷*Ìú%F{±^(çrÒF­¸L´)HL檕Ãùß`Ÿî"@ç(»bˆ³~Ýz¹Ó˜Ý+í+Ç·ŒUÐn7FkwR6³£ý|VRœ`š²KéÙ®ä‡AUû¿Örí.¯zÏç¾ef¿Š›/°gjòÿ¤kú¯Ù6iCÁ<ž—ì“9ΆнéÛÃçÓX¥ µIR~zÑ bñ7¨ü0…6Zºfý˜Ûò\‡pŽU:Ú~I£:xïp]«2jú7¬_æ¤K"@ç(;€·iKÆÍ& +úÍÅIR_÷ÉõÜ­bŽí×ý\®•`^°œa]Ñ) )râüº¹SÚYû^Ðxå'¿å:G@fN_¶[4×qj”îÊô%DboªÖÅšî3³yIè/ß¼ü”œ´%¯=µ ×,9sqô4J–"@÷ò@lq‰ Ón„”˜®Ä‰rp‰ }ÓNÈ‹"n^®|óò5_’¦òa^“yúÚŒþ³4òˆÌfD€ÎQ:—)bt­ÝMWóÉRâƒ4\Ï&-Ì[7ô­å $K+ÊÑÚ÷iÊÖA.šö:.ƒÐ9 +@ç‚§“Äð1jÊV>þŽ7]çTºåQtáxçù͵öôw>Õßvˆ(Y°EÚ¿7Ó³57زñ@…ãšÆ¦:'Ëãc¸yá¶âVá÷-Yâ:G@Õ£“c²…¸ðú›o€Ýt^@ "@ç(¨oµÆ-É^ƒûÏÛtvp!"ô)ÉÇRt“i?†ÿ¶ò}¶ÓwüdO¤ê©¿Ÿ¿ÉÿŸ¼~|~ñ…Ú¢O|LzÞgÄ'¡î€~€ÎQ`Šs-¦Y§òϤÄa é1fE!XÉékÞâ×ÄiÛ›´ +)ø;þæz•2¡×åŸTs›\uª„((Ìv8;ÛTÜOºNtŒôÞ¡¡=ÖTsÛÇg-WÙ»”löãÅUÀªˆ»ÓóGE7{cL’w.\¢ïg¢%¡^ù/ì|Œ]î+.Ø‹4ÿËoOvžLXý\Ø‹ŽD€ÎQ:§€Id,O<˜ç·š,y·Ö&™”Qÿ¾Ìöói}ÈŽÿÞÀ.í~_t¼l‹°$#ØdµÜ6D€ÎQ:w“%yÐr,ŠC¼ü´n­‰óÇw¢Ï ó_ s×/‡aøØô7hÎ)¹sŸ´[¢F[ s€ÎݨT¥y¹ 1!e“ò\Þåï¬X s€Îݤ¼T¾a[i÷ôµèY× [ô“ÕÚúˆ»“žì·)3ðGÅÏïãçûY7öЀ(n–õ믧3•Yº²M½u«Æ†Ä¸D€ÎQºmÖ¯­Ÿß/U{~-7øçÕð?ŒÀñM.|il8IEND®B`‚0FFTMM…B`ˆ¸GDEF_Õ€„NGPOSWµzßTdGSUB"n'“€Ô€OS/2X›ƒò¸VcmapaÙ¾r¢cvt "ˆÀfeatTˆÔ,gaspÿÿ€|glyfÐà‘L5 headìc‹<6hheaõÂt$hmtxŒÿw +kern33…=ìloca§®µ:Ĉmaxp i˜ morxÀNÈw‰Pname Q›>Cð:¤post#eç~”åq¤Np_<õÅC#íÅC#íÿUÿUUUUÿUôªÿUUÂÃ8@.æô™Ì™Ìë3 PfEd ¬UÿUôU«Ôv"UUªUUªªUUUªUªªUUUUUªªUUUUªªUUUªªUªUUUUªUªUUªUªªUUUUªUUÿUUUUUUªUªUUUUUªªUUUªUªªªªªUUªUUUªªªªªªUªªªªªªªªªªªªUUUUUªUUUUUUUUUUUUUUUUUUUªUUUUUUUUUUœ€ £¥§³·»ÿSax~ ¬ÿÿ  ¥§©µ¹¿R`x} ¬ÿÿÿãÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ»ÿiÿ]ÿGÿCà +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab€‚„Œ‘—œ›Ÿž ¢¤£¥¦¨§©ª¬®­¯±°µ´¶·pefhušni“qgtjx¡³zdlkyc{~»¼²º¿Âv}…|†ƒˆ‰Š‡Ž•–”o"ˆ****>P~¼ä(B\xŒžª¶Ô>fˆ¨ÐîBTj¤ÈèFjˆ¢ºÐð8^nž¾äþ(LzަÈô"@btŽ æòBf„¢Æà  ( > X ~ Ž ° È æ + +& +: +` +x + +¬ +Î +ô  : X d ‚ š À À Ô ú & J € ª Æ ð . : b †   º Ô ð6BXrœ¼êN†¶æ8Xz Äâ"DjšÈö(`’¾ú@dˆ°Öü0dšÖ +:n¾ìNf€œ¸è:b޾è:^‚ªÎþ Pz®èDr¢Ð"2ª.±/<²í2±Ü<²í2±/<²í2²ü<²í23!'3#"îÌ̪ýV"f« 1533#5«««V««U«þU«U53!53«UÿU«ªªªªU533533#3##5##5#53#5#U«U«UUUU«U«UUUUUU««««UÿU««««UUþ«ÿÿ«U#'+5333#5#33###5#5#533#5#35##UVUUVVUUVU«U«U«UU«UVUUUVVÿVÿUUUU««VUþ«ÿþªÿU%3#53#####535353553U«««UVUU«UVUÿ«««UU«U«UU«U«UªªU#)5!!33353##33#5#!5#3535#55#35ªÿUUVªUUUUªVÿUUVV«UªªVUVUUUUVU«UUUUVUªþVUÿ««UU53U«ªªU53#3#5#5#35«UUUUVUUUUýUUUVª«U5333###53UVUUVUUUUUþU«UU«UU53353#3#5##535UVUUUUVUUUUUUUVVVVUU« 533##5#5«U««U«U««U««Uÿ««« =3##535«VUUUV«UUUUU5!UUU««153«««53#####5353535U«UVUU«UVUU««ªVª««ªVªUU5!33##!5#5#355##3353«UUUUÿVUUUUUUVUUUÿVUUVUUUUÿVVUU 533!53#5U«Uþ«UUUþUUVU«U5!3###353!5353535##5UVVUUªVþUUVU«UUU«UUVV««UU«UUÿU«U5!3#3#!5#533#53535##5UVVVVÿUU««VU«UUU«ªÿVVUUUU«UU53##3533##5!3535««UU«UU«ÿUV«U«Uÿ««U««UUVÿU«U!!33#!5#533«ÿªVVÿUU«UU«Uþ«VVUUU53##33#!5#3535#«VU«UUþªUUVªª«UUVUUþªUU«UVýªVþªÿUU5!####353535!UVU«VUUÿ«ªÿU«ÿ«U«U5!3#3#!5#35###UVUUUUþªUUUUªªª«UUÿVÿUUVÿÿþªÿÿUU5!3##!53535!5##UVUUVÿ«UÿUUªUUþUVVUUVUþ«Uþ««15353«««««U««ÿU«U 153##535'53«VUUU«UªVVU«ªª«U53###333#5#5#5#53535«VUUUUV«UVUUVUUUVUUVUUVUUVU«««=!!!«þU«þU«UUV«U53333####5353535#5#5«UUVVUU«UVUUVUUUVUUVUUVUUVU«3535!3###53535#U«ÿUVVU«VU«««U«U«U««U«VUU!%5!3#!5#53533!#3!!5#5#355#«UUUÿUU«Uþ«VVUþ«VUUUUUÿUUUV«UÿVUUVUÿUUU5333#!#35355##!5«UUªÿ«UVªUU«UU«þÿ«ªV««Vÿ« 1!3#3#5#35#«UUUUVªUUªUÿVÿU«ÿUþUÿ5!3#5#353#!5#UVU«ªª«UþªU«UUVVýªVVUUV 1!3##5#35«UUVªUUþVU«ýªV« 1!#5#3#!«Vªªª«VÿVÿU« 1!#5#3#«Vªªª«VÿVþ«5!3#5#3#5!!5#UVU«ªªUþUU«UUVVýªVþUUVU 13!3#!«ªªÿþ«UýUþ«U 5!#3!53UUUþ«U«UUýªUUV5!#!5#533#U«UþªU«ªªU«ýUUUVVVV133535353###333#5#5#«UUVUUVUUVU«UUÿUVU«UUVUU««ªþ««13353«ªVýUV«#53333535353#3####5#5##3«UUVUU«UU«UUVUU«U«UUVªªVUÿÿÿ«UU«þ«U133333#5#5#5#5#«UUVªUUVUU«UUUýU«UVþUU5!3##!5#355#33«UUUUþªUUªU««UUþVUUVVVþV 1!3#!#«UUÿªªUþªUÿUVþªÿ«U5!3##3!5#5#355#33«UUUUªþ««UUªU««UUþVUUUUVVVþV1!3##33#5#5##«UUVVU«UUªªUÿVUU«U«ÿ«ÿ#5!3#5#3333#!5#5335#5#5#5#5UVU«ªUUVUUþªU«ªUUVU«UUVVVUUVÿUUVV«UVU« 5!###«ªVU«UýU«V 5333#5#!5«ª«UVÿU«ýU«ýUUUU333533####5#5#5«UUVªUUVUUV«Uþ«ÿª«þ«««UU««33535333#533######«UUVUUU«UUVªVU«þ«ªª««UUþªª«U«U#5333533##33#5#5###53535#5«UUVªUUUUªVUU«UVVU««ªU«U«ª««ªUÿ«U«ª3333####5«UU«UVªVÿUUÿ«þ«U««5!###353!353535#«VUUªVþUUVU«U««ª««V««U«VÿUU!#3UU«Uü«VU3333#5#5#5UVUUUUV«ª«ÿ«ª«ÿUU5!!53ÿUUüVUÿUUU175!!353##5##!3#####5#5#3533535#5##55#3U«UU«UUUU«UVªVUU«UVVª«««UUUUUUVVVUUÿVUUV««UUUUVUUUþ«þUÿ««5!«UUUUU53#5!#5#3###535Uªÿªª«UU«UUUý«UªU«UþU«U5!3#5#!5#535!5##55#35«UUVÿUUªVªUUUþUUU«U«UUþ«U«VU533533#!5###UVU«UUþªUUUUUþ«UUþUUU«ýU«Uþª«U5!3#5#353#!5#UVVªªVVÿUUUUUþUVVUU«U 3!5#35!53#«UþUUUVVªUü«U«U«ýU«þUU5!3!!53#!5#5#UVUþ«UUþªUUªUUÿ«VVUU««««UU53#3###535«ªUUU«UUUU«UþU«ÿUU5!#!!3#!5#53!5!535#55#U«UÿUUþªUUþ«UUUªUÿUUVªVVUUª«U««««U 53!3###UVU«ª«UÿUþþ«U 53#53UV««Uý«UUÿUÿU«U 53#!5353UVVÿ««UýVVVUUUU5335353###33#5#5##UVUU«UVU«U«UU«UþVUUUUVUU«UV««U53#UV«Uü««U33533#####33«ªVªV«U«U«UVUUUUþþþUUU 1335!3##UVU«ªUUUUþþU 5!3#!5##UVUUþªUUªUUþUUU«þU«þUÿUU 335!3#!#UVUUÿªª«UUUþ«VÿVUþ«ÿUU 5!###5##35U««U«UUªUUýUU«þ«UþUVUU 13353#5#UVªUUUUUªUþU5!!333#!5#53!5#5#5#5UVÿU«UUþªUUU«UUUUVU«UUVVVUU«U 533###535«UUU«UU«U«UþUVU 5333#5#!5«ª«UVÿUþý«UUUU53333###5#5«ªVUUVªV«ªþVªUþ«VUUV«U5333333###5##5«U«UUVVU«U«UþVªþVªUþ«VUUUUU53353##33#5#5##53535#5«ª«UVVU«UU«UVV«ªªªU«UU««Uÿ«UUVÿUU3333####53535#5#5«UU«UVU«VUUVUþ«UªþV«UVVUUVUU5!###!!535353535!UVUþUVUUÿ«ªª«UVU«UUVUUÿUUU53##33#5##53«ªUUUUªVUUUUþ«VþVVVªVUÿU«3«««üUÿUUU5333###5335#«UUUU«UVVUUþ«VþVVVªVU««53353##5##5U«UVVªVUUVVVVUUUU«U533#####53535!#35UVVª««UUV«««U«UþþU«UU«VÿU«U 53#=3UV««Uþ««ªªÿ««U533#3##5#5#35#UVVVVU«UU«UUUUþªUUUUVUþUVþª!533#5#33#353#!5##53#53«ªVVªUUU«UUÿVUUUU«UUVV«UVÿVVUUUUV53333##3###535#5«UU«UVVVªVVVU««U«ªVUÿUVªÿ«#'5!3#5#!3#3#!5#5335!5#535#55#UVU«ªUUUUþªU«ªÿUUUUª«UUVV«U«U«UUUU«U«U«þU««UU7!#35!3#!5#!«««þª«UUþUUþU«VUUUUUþUUU«þU«þUU 5!53!55#««ÿ«VUVVVUÿ«VVVU« 53#3#5#5'53##33#5#5#535UVVVVUUUUVVUUVUUU««U««UVUUVUUVVUUVU!/5!5353#!333#!5#53!5#5#5#5%533###535UVªªÿU«UUþªUUU«U«UUU«UUUVUU«UVU«UUVVVUU««U«UþUVUU5!UUUUU7!#5!3#!5#!««««UUþUUþU«VªUUUþUUU«þU«þUUU53#!5!#3###535Uªÿ«UU«UUUü«UU«UþU««U 33##5#535#U«UU«UU««U«UU««««U«=!533##5#5«ÿU««U«UVVVUUVUUV«U533##3!53535«UUV«ÿUVUUUVUUªVU«U533#3##535#535«UUUU««VVUUUVUUUUVUÿUUU53353533######3«UUVUUªVUUVUU«ªþ««ªþV«ÿÿ«VÿUU5!##!5!##5#5#U«UVÿUUVUUUý«VVUþ«U««53««««U 533!535#5UVUÿUUUþ«UU«UU 5!%!'5#ÿUVUVV«ÿUVVU«5333###53535#5533##535«UUVVUUUUUÿUVVUU«UUVUUVVUUVV««U««UÿU«U753##353!5#53553«ªUUªVþªUUVª«ªªVªU«VªVªªUU5##!5333#5!#353535#533UUUVVUUªÿ«UVUUUU«ªUÿ«VªþU««U«U«UUUU!5333#5!#35355##!553##5«UUªÿ«UVªUU«UUUUVVªþU««U«UªªUÿ«UUUUUUU#5##!5'535##5353333#5!#3535UUU«UUUUUVUUªÿ«UV«ªUÿ«ªVUUUUU«ªþU««U«UUU!)53353##5##55333#5!#3535!5#5##«ªVUU«UV««UUªÿ«UVVUUUUUUUUUUÿUU«þ««««UÿU«UUU!53353#33#!#3535355##!5«U«UUUUªÿ«UVUUUUUUUUU«þÿ«ªVUÿ«Vÿ«UU !5#5##5#!33#5!#353535«VUUªUUUUªÿ«UVUU«UUUVþ««þ««««UU«5!#3#3!##3535##«««««þªª«UVªUU«UUÿVÿUÿ«ªVþªV««ÿU5!3#5#353####535#5#UVU«ªª«UVUUU«U«UUVVýª««UUVVUUV«U5#5333#5#3#!!«VVU«VªªªþU«UUUU«UªVÿU««U53#3#5#3#!!35UU«VªªªþU«UUU«UªVÿU«U«U13535333#5#3#!35#UVUUVVªªªÿUU«UUUU«UªVÿU«U«U53!53!#5#3#!UÿV««VªªªUUUUý««UªVÿUUU535#5333#3!53«VVUUUUþ«UUVUUUUVþUUUU53#3#3!53#535«UUªUUþ«UUUUUUVþUUVUUU#3!53#535353335#UUUþ«UUUVUUªUUUþUUVUUUUUUU53!535!#3!53Uþ«UUUUUþ«UUUUU«VVþUUU !3##!#5#3#35U«UUUþªU««UUUUþVU«Uþ««UþªVUU%53353#3#5#5#5#5##3333#5##5«ªVUUªUUVUU««UUV«UVUUUUUýUUVUUþ«UUUVVUUUUU5#33'5#53333##!5#3535UªU««UUU«UUUþªUUVUþVV««UUUUVþVVUU«UVUU5#3353#33##!5#353535UªU«VVV«UUUþªUUVUUþVV«UUUVþVVUU«UVUUU!5#33%5353333##!5#35735#UªU«ÿUUVUUUUþªUU«UUUþVV«U«UUUVþVVUU«UVUUU'53353##5##55!3##!5#355#33«ªVUU«UVVUUUUþªUUªU«UUUUUUUUÿUUþ«VUUVUUUþ«VVUU5!3##!5#355#3353!53«UUUUþªUUªU«VVÿUUVVþVVUU«UUUþVV«UUUUU«#53335353##33#5#5###53535#5UVUUVVUUVVUUVUUVV«UUVVUUVUUVVUUVVUUVU!+5!353#3#!5##535#5##3535###35UVUUUUUþ«VUUU««UUUVVUUª«UUUUVþUUUUV««VÿVUþ«VU«VU#533#333#5#!5UUUUÿ«ª«UVÿUUUýªVýªVýUUUUU 5333#5#!553##5«ª«UVÿ«UUUUVýªVýUUUU«UUUUU53535333#5#!53#«UUVUUVÿVªUUVUUUUýUUUUVýª«UU 5333#5#!553!53«ª«UVÿVþªVUVýªVýUUUU«UUUUU533333####553##5UVUU«UVªV«UUU«VUU««þ«U«UUUUU5!#!3#!3!53#UUUUÿUþ«UV««UUVUÿUVUUVþUÿÿUU5!3#3##53#53##35«UUUU«UUUª«UUUÿUþªUUVUüUVUU##533#5!3#5#!5#535!5##55#35UUUUUUUVÿUUªVªUUUU«UUþUUU«U«UUþ«U«VU#5!3#5#!5#535!5##55#3553##5«UUVÿUUªVªUUVVUUUþUUU«U«UUþ«U«VUUUUUU !'3533#5##5!3#5#!5#535!5##55#35«UUVVUUUUVÿUUªVªUUUUUU«UUþUUU«U«UUþ«U«VU%+53353##5##55!3#5#!5#535!5##55#35«ªVUU«UVVUUVÿUUªVªUUUUUUUUUÿUUþUUU«U«UUþ«U«V#5!3#5#!5#535!5##55#353+53«UUVÿUUªVªUUVVªUUUþUUU«U«UUþ«U«VUUUU %5#355#!3#5#!5#535!5##5UªUUUUUUVÿUUªV«U«VªVVUÿþUUU«U«UU«U!%5!3533!353##5#!5#535355#5#UVªVÿªVVªVÿUU«U«UUUUUÿ«VVUUUU«U««««ÿ««ÿ««U5!3#5#353###5#5#UVVªªVVUUVUUUUUþUVVUUUU«U#533#5!3!!53#!5#5#UUUU«VUþ«UUþªUUªUUU«UUÿ«VVUU««««U53##55!3!!53#!5#5#UUUVVUþ«UUþªUUªUUUUÿUUÿ«VVUU««««U !3533#5##5!3!!53#!5#5#«UUVVUUVVUþ«UUþªUUªUUUUU«UUÿ«VVUU««««3#!535!3!!53#!5#5#UVVÿVVVUþ«UUþªUUªUUU«UUÿ«VVUU«««««U #533#53#UUUVVV«UUU«Uý««U 53##553#UVVUUV«UUUUÿUý«U 3533#5##53#UVUUVUUV«UUUUU«Uý«3+5353+«UU«UVVUUUU«Uý«!53353#33#!5#3535##535#U«UVVVUUþªUU«UVVªª«UUUUVªþªUUVªUUVýªÿU 1335!3##53353##5##5UVU«ªªVUU«UVUUUUþþUUUUUUUUU#533#5!3#!5##UUUU«VUUþªUUªUUU«UUþUUU«þU«þUU53##55!3#!5##UUUVVUUþªUUªUUUUÿUUþUUU«þU«þUU 3533#5##5!3#!5##«UUVVUUVVUUþªUUªUUUUU«UUþUUU«þU«þUU53353##5##55!3#!5##«ªVUU«UVVUUþªUUªUUUUUUUUÿUUþUUU«þU«þU 5!3#!5##3#!53UVUUþªUUªªVVÿVUUþUUU«þU«þU«UUUU« 753%5!%53«Uÿ«ÿUUVV«UU«UUUU'535!353#3#!5##535#5!3#!#5UÿVUUUUUþ«VUUU«ÿUUVUUUUUUUþªUUUUVUUUÿUVVU#533#333#5#!5UUUUÿ«ª«UVÿUUUýªþý«UUUU53##5333#5#!5UUU««ª«UVÿUUUUýUþý«UUUU 3533#5##333#5#!5«UUVVUU««ª«UVÿUUUUUýªþý«UUU 5333#5#!53#!53«ª«UVÿVVÿVUþý«UUU«UUUÿUU!53##53333####53535#5#5UUU««UU«UVU«VUUVUUUUþUþ«UªþV«UVVUUVUÿU«U5333###5#3UVªVVª«UUUÿU«ªVU««þU««ªÿU!3#!533333####53535#5#5UVVÿV««UU«UVU«VUUVUUUþUUþ«UªþV«UVVUUVU«5!!33#3!5#355#33«ÿU«««ýªUU«UUU«UUVªVÿUUVVVþV«U!5!3533!353##5#!5##5#UVªVÿªVVªVÿUUUUUUUUÿ«VVUUUU«þU«þU««U/53353#33#5#3333#!5#5335#5#5#5#53535UVUUU«U«ªUUVUUþªU«ªUUVUUVUUUUUVUUUUVU«UUVVVUUVªVUU'5!!333#!5#53!5#5#5#553353##5UVÿU«UUþªUUU«UUVUUUUUUUVU«UUVVVUU«UUUUUUU53333####553!53«UU«UVªVVþªV««U««þ«U«UUUU«U#53353#3###353!353535##535UVUUU«VUUªVþUUVU«U«UUUUU««U«V«UVªU«UU#5!###!!535353535!53353##5UVUþUVUUÿVUUVVU«ªª«UVU«UUVUUUUUUUUU#5!3#5#3#3#353#!5#5#535#535«UU««««««UUÿVUUUU«UUVV«UVU«VVUU«UVU«S€r $ÿ« {ÿ« |ÿ« }ÿ« ~ÿ« ÿ« €ÿ« ÿ« ÿ«ÿ«ÿ« ÿ«! +ÿ«&aÿ«(ÿ«(aÿ«)ÿU)ÿU)ÿ«,Wÿ«/ +ÿ«/9ÿ«/:ÿ«/<ÿU/\ÿ«/˜ÿU/¿ÿU3ÿU3ÿU67ÿ«72ÿ«74ÿ«9ÿ«9-ÿ«:-ÿ«<$ÿ«<{ÿ«<|ÿ«<}ÿ«<~ÿ«<ÿ«<€ÿ«<ÿ«>-ÿ«>M«? ÿ«B ÿ«Bÿ«Bkÿ«Bmÿ«B²ÿ«Fÿ«F +ÿ«F ÿ«F7ÿ«ICÿ«IIÿ«Ibÿ«Ioÿ«VWÿ«^-ÿ«^M«y +ÿ«˜$ÿ«˜{ÿ«˜|ÿ«˜}ÿ«˜~ÿ«˜ÿ«˜€ÿ«˜ÿ«©ÿ«ªÿ«² +ÿ«½7ÿ«¿$ÿ«¿{ÿ«¿|ÿ«¿}ÿ«¿~ÿ«¿ÿ«¿€ÿ«¿ÿ«ú|ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«Uÿ«Uÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿUÿUÿ«ÿ«ÿ«ÿUÿ«ÿ«ÿ«ÿ«ÿ«ÿ«»&R~ÖhÖÖìÖÖÖhhhÀªÖÖ””ìÀR&ª<ªRhhÖ”Ö~hÖRÖÖÖÖÖh~Ö~ÖÖÖÖRÖ~Rª~ÖÖªªÖªÖªÀÖÖÖÖÖÖÖªÖÖÖÖÖÖÖÖÖÖÖììÖÖÖÖÖÀÖÖÖª½ + +   +*þ6n +»Ô## +] ‚ +¥ a$t6 7 7 7Ñ8@73 7ª7ã8Q69G6Ò 7L 7´88d7m7¾88v7ƒ 7Ç8-8‰6'Ž6B l ¥  Æ FÛ G h  "° 45ÖGerhard Grossmann, www.geocities.com/gerhard.grossmannGerhard Grossmann, www.geocities.com/gerhard.grossmannPixAntiquaPixAntiquaMediumMediumFontForge : PixAntiqua : 14-11-2008FontForge : PixAntiqua : 14-11-2008PixAntiquaPixAntiquaVersion 1.0 Version 1.0 PixAntiquaPixAntiquaCopyright (c) 2008, Gerhard Großmann (<http://www.geocities.com/gerhard.grossmann|schlafender-hund@yahoo.de>), +with Reserved Font Name PixAntiqua. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE.Copyright (c) 2008, Gerhard Gro§mann (), +with Reserved Font Name PixAntiqua. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE.http://scripts.sil.org/oflhttp://scripts.sil.org/oflStandardStandardZwölf große Boxkämpfer jagen Eva quer über den Sylter Deich. 0123456789Zwšlf gro§e BoxkŠmpfer jagen Eva quer Ÿber den Sylter Deich. 0123456789All Typographic FeaturesFonctions typographiquesAlle typografischen MglichkeitenFunzioni TipograficheAlle typografische kenmerkenLigaturesLigaturesLigaturenLegatureLigaturenAll Type FeaturesToutes fonctions typographiquesAlle AuszeichnungsartenTutte le FunzioniAlle typekenmerkenCommon LigaturesLigatures UsuellesNormale LigaturenLegature pi ComuniGemeenschappelijke Ligaturenà +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a£„…–†‹©¤ŠÚƒ“ˆÃžª¢­ÉÇ®bcdËeÈÊÏÌÍÎéfÓÐѯgð‘ÖÔÕhëí‰jikmln oqprsutvwêxzy{}|¸¡~€ì±ä廿ç uni007Funi00A0uni00ADuni00B2uni00B3uni00B5uni00B9Euroÿÿ F BCCDabbckllmnoop +0>DFLTlatnÿÿÿÿliga. +$oObWCLlWIV +0>DFLTlatnÿÿÿÿkern +Îx$R€†Œ€’˜ž¬ºÀÞèîø .€8N`rºrr.’ ŒŒ’rrè  +$ÿ«7{ÿ«|ÿ«}ÿ«~ÿ«ÿ«€ÿ«ÿ« ÿ«ÿ«ÿ« +ÿ«aÿ«ÿ«-aÿ«ÿUÿUÿ«Wÿ« +ÿ«9ÿ«:ÿ«<ÿU\ÿ«˜ÿU¿ÿUÿUÿU7ÿ«2ÿ«4ÿ«ÿ«-ÿ«-ÿ«$ÿ«{ÿ«|ÿ«}ÿ«~ÿ«ÿ«€ÿ«ÿ«-ÿ«M« ÿ«ÿ«kÿ«mÿ«²ÿ«ÿ« +ÿ« ÿ«7ÿ«Cÿ«Iÿ«bÿ«oÿ« $ !&(),/3679:<>?BFINV[\^y˜©ª²¸º½¿Düx ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«Uôÿ«Uÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿUÿUÿ«ÿ«ÿ«ÿUÿ«ÿ«ÿ«ÿ«ÿ«ÿ«–– +»  +   +            + +  . + +   #$--77BB +CCDDFJMMP]aabbeeiikk llmm noqqttuuvv{’’›žžŸ¡¢¦«±²² ³¸ºº¼¼¾¾ÁÁ` !"#$&()/479:<>?BEFHIJKMNPQRSTUVWYZ[\^abdglmqrstuvwyz{|}~€˜™›œŸ ¢£¤¥¦©ª«­®¯±²¸¹º¿ÃZÂÄç_8ÅC!%$(Hÿÿÿþÿÿÿÿÿÿÿÿ P˜ÂâòII*LL,OO.WV0ÿÿÿÿ€€    ?ÿÿ´¿ÿÿ¸?ÿÿ³¿ÿÿº?ÿÿ­¿ÿÿ¼?ÿÿ¯¿ÿÿ±Cobl \ No newline at end of file diff --git a/examples/text/text_font_loading.html b/examples/text/text_font_loading.html new file mode 100644 index 0000000..34d6dcb --- /dev/null +++ b/examples/text/text_font_loading.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_font_loading.js b/examples/text/text_font_loading.js new file mode 100644 index 0000000..436e697 --- /dev/null +++ b/examples/text/text_font_loading.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_font_loading.data";var REMOTE_PACKAGE_BASE="text_font_loading.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_font_loading.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["_d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["be"];addOnInit(Module["asm"]["$d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"a":___assert_fail,"F":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"hd":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Qa":_fd_read,"La":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"d":_glBindTexture,"ac":_glBlendFunc,"m":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"kb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Gb":_glCullFace,"k":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"Rb":_glDepthFunc,"C":_glDetachShader,"id":_glDisable,"l":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"K":_glEnable,"g":_glEnableVertexAttribArray,"vb":_glFrontFace,"n":_glGenBuffers,"Sa":_glGenTextures,"q":_glGetAttribLocation,"Fc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"j":_glGetString,"o":_glGetUniformLocation,"Ba":_glLinkProgram,"$a":_glPixelStorei,"Ha":_glReadPixels,"Fa":_glShaderSource,"Ka":_glTexImage2D,"J":_glTexParameterf,"e":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"p":_glUseProgram,"h":_glVertexAttribPointer,"Zd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"f":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"c":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ae"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ce"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["de"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ee"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["re"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_font_loading.wasm b/examples/text/text_font_loading.wasm new file mode 100644 index 0000000..f214f7b Binary files /dev/null and b/examples/text/text_font_loading.wasm differ diff --git a/examples/text/text_font_sdf.data b/examples/text/text_font_sdf.data new file mode 100644 index 0000000..01fde33 Binary files /dev/null and b/examples/text/text_font_sdf.data differ diff --git a/examples/text/text_font_sdf.html b/examples/text/text_font_sdf.html new file mode 100644 index 0000000..2553186 --- /dev/null +++ b/examples/text/text_font_sdf.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_font_sdf.js b/examples/text/text_font_sdf.js new file mode 100644 index 0000000..0a0e8e1 --- /dev/null +++ b/examples/text/text_font_sdf.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_font_sdf.data";var REMOTE_PACKAGE_BASE="text_font_sdf.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","shaders",true,true);Module["FS_createPath"]("/resources/shaders","glsl100",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_font_sdf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["$d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ce"];addOnInit(Module["asm"]["ae"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Y":GetCanvasHeight,"Z":GetCanvasWidth,"a":___assert_fail,"F":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"W":_emscripten_get_element_css_size,"Q":_emscripten_get_gamepad_status,"R":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"Zd":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Dd":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"id":_emscripten_glCopyTexSubImage2D,"hd":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"M":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"N":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Od":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"L":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"w":_emscripten_run_script,"S":_emscripten_sample_gamepad_data,"X":_emscripten_set_canvas_element_size,"wa":_emscripten_set_click_callback_on_thread,"ra":_emscripten_set_gamepadconnected_callback_on_thread,"qa":_emscripten_set_gamepaddisconnected_callback_on_thread,"xa":_emscripten_set_resize_callback_on_thread,"sa":_emscripten_set_touchcancel_callback_on_thread,"ua":_emscripten_set_touchend_callback_on_thread,"ta":_emscripten_set_touchmove_callback_on_thread,"va":_emscripten_set_touchstart_callback_on_thread,"U":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"O":_exit,"G":_fd_close,"Qa":_fd_read,"La":_fd_seek,"E":_fd_write,"x":_glActiveTexture,"B":_glAttachShader,"h":_glBindAttribLocation,"b":_glBindBuffer,"d":_glBindTexture,"bc":_glBlendFunc,"o":_glBufferData,"v":_glBufferSubData,"H":_glClear,"I":_glClearColor,"lb":_glClearDepthf,"Da":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ba":_glCreateProgram,"Fa":_glCreateShader,"Hb":_glCullFace,"m":_glDeleteBuffers,"t":_glDeleteProgram,"k":_glDeleteShader,"D":_glDeleteTextures,"Sb":_glDepthFunc,"l":_glDetachShader,"jd":_glDisable,"n":_glDisableVertexAttribArray,"Pd":_glDrawArrays,"Ed":_glDrawElements,"K":_glEnable,"g":_glEnableVertexAttribArray,"wb":_glFrontFace,"p":_glGenBuffers,"Sa":_glGenTextures,"Ga":_glGetActiveUniform,"r":_glGetAttribLocation,"Gc":_glGetFloatv,"za":_glGetProgramInfoLog,"s":_glGetProgramiv,"Ca":_glGetShaderInfoLog,"C":_glGetShaderiv,"j":_glGetString,"q":_glGetUniformLocation,"Aa":_glLinkProgram,"ab":_glPixelStorei,"Ha":_glReadPixels,"Ea":_glShaderSource,"Ka":_glTexImage2D,"J":_glTexParameterf,"e":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"u":_glUseProgram,"i":_glVertexAttribPointer,"_d":_glViewport,"z":_glfwCreateWindow,"na":_glfwDefaultWindowHints,"V":_glfwDestroyWindow,"A":_glfwGetPrimaryMonitor,"f":_glfwGetTime,"ma":_glfwGetVideoModes,"oa":_glfwInit,"aa":_glfwMakeContextCurrent,"fa":_glfwSetCharCallback,"ba":_glfwSetCursorEnterCallback,"da":_glfwSetCursorPosCallback,"ha":_glfwSetDropCallback,"pa":_glfwSetErrorCallback,"ga":_glfwSetKeyCallback,"ea":_glfwSetMouseButtonCallback,"ca":_glfwSetScrollCallback,"ia":_glfwSetWindowFocusCallback,"ja":_glfwSetWindowIconifyCallback,"P":_glfwSetWindowShouldClose,"la":_glfwSetWindowSizeCallback,"T":_glfwSwapBuffers,"_":_glfwSwapInterval,"y":_glfwTerminate,"c":_glfwWindowHint,"ya":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ae"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["be"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["de"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ee"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["fe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ne"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["re"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["se"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_font_sdf.wasm b/examples/text/text_font_sdf.wasm new file mode 100644 index 0000000..cc2e94d Binary files /dev/null and b/examples/text/text_font_sdf.wasm differ diff --git a/examples/text/text_font_spritefont.data b/examples/text/text_font_spritefont.data new file mode 100644 index 0000000..5065547 Binary files /dev/null and b/examples/text/text_font_spritefont.data differ diff --git a/examples/text/text_font_spritefont.html b/examples/text/text_font_spritefont.html new file mode 100644 index 0000000..9fddfb8 --- /dev/null +++ b/examples/text/text_font_spritefont.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_font_spritefont.js b/examples/text/text_font_spritefont.js new file mode 100644 index 0000000..a120d9e --- /dev/null +++ b/examples/text/text_font_spritefont.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_font_spritefont.data";var REMOTE_PACKAGE_BASE="text_font_spritefont.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_font_spritefont.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["_d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["be"];addOnInit(Module["asm"]["$d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"a":___assert_fail,"F":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"hd":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Qa":_fd_read,"La":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"d":_glBindTexture,"ac":_glBlendFunc,"m":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"kb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Gb":_glCullFace,"k":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"Rb":_glDepthFunc,"C":_glDetachShader,"id":_glDisable,"l":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"K":_glEnable,"g":_glEnableVertexAttribArray,"vb":_glFrontFace,"n":_glGenBuffers,"Sa":_glGenTextures,"q":_glGetAttribLocation,"Fc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"j":_glGetString,"o":_glGetUniformLocation,"Ba":_glLinkProgram,"$a":_glPixelStorei,"Ha":_glReadPixels,"Fa":_glShaderSource,"Ka":_glTexImage2D,"J":_glTexParameterf,"e":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"p":_glUseProgram,"h":_glVertexAttribPointer,"Zd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"f":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"c":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ae"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ce"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["de"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ee"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["re"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_font_spritefont.wasm b/examples/text/text_font_spritefont.wasm new file mode 100644 index 0000000..26fc83b Binary files /dev/null and b/examples/text/text_font_spritefont.wasm differ diff --git a/examples/text/text_format_text.html b/examples/text/text_format_text.html new file mode 100644 index 0000000..20fbbb2 --- /dev/null +++ b/examples/text/text_format_text.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_format_text.js b/examples/text/text_format_text.js new file mode 100644 index 0000000..424f2c7 --- /dev/null +++ b/examples/text/text_format_text.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_format_text.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"n":___assert_fail,"F":___sys_fcntl64,"Oa":___sys_getcwd,"Ra":___sys_ioctl,"Sa":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"K":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Nc":_emscripten_glFramebufferRenderbuffer,"Mc":_emscripten_glFramebufferTexture2D,"Lc":_emscripten_glFrontFace,"Kc":_emscripten_glGenBuffers,"Ic":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Hc":_emscripten_glGenRenderbuffers,"Gc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Jc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"ic":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"fc":_emscripten_glGetVertexAttribPointerv,"hc":_emscripten_glGetVertexAttribfv,"gc":_emscripten_glGetVertexAttribiv,"ec":_emscripten_glHint,"dc":_emscripten_glIsBuffer,"cc":_emscripten_glIsEnabled,"bc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"Zb":_emscripten_glIsShader,"Yb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Xb":_emscripten_glLineWidth,"Wb":_emscripten_glLinkProgram,"Vb":_emscripten_glPixelStorei,"Ub":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Tb":_emscripten_glReadPixels,"Sb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Ob":_emscripten_glScissor,"Nb":_emscripten_glShaderBinary,"Mb":_emscripten_glShaderSource,"Lb":_emscripten_glStencilFunc,"Kb":_emscripten_glStencilFuncSeparate,"Jb":_emscripten_glStencilMask,"Ib":_emscripten_glStencilMaskSeparate,"Hb":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Db":_emscripten_glTexParameterf,"Cb":_emscripten_glTexParameterfv,"Bb":_emscripten_glTexParameteri,"Ab":_emscripten_glTexParameteriv,"zb":_emscripten_glTexSubImage2D,"yb":_emscripten_glUniform1f,"xb":_emscripten_glUniform1fv,"wb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"sb":_emscripten_glUniform2fv,"rb":_emscripten_glUniform2i,"qb":_emscripten_glUniform2iv,"pb":_emscripten_glUniform3f,"ob":_emscripten_glUniform3fv,"nb":_emscripten_glUniform3i,"mb":_emscripten_glUniform3iv,"lb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"hb":_emscripten_glUniform4iv,"gb":_emscripten_glUniformMatrix2fv,"fb":_emscripten_glUniformMatrix3fv,"eb":_emscripten_glUniformMatrix4fv,"db":_emscripten_glUseProgram,"cb":_emscripten_glValidateProgram,"bb":_emscripten_glVertexAttrib1f,"ab":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Ya":_emscripten_glVertexAttrib3f,"Xa":_emscripten_glVertexAttrib3fv,"Wa":_emscripten_glVertexAttrib4f,"Va":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Ua":_emscripten_glVertexAttribPointer,"Ta":_emscripten_glViewport,"La":_emscripten_memcpy_big,"Ma":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Na":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Pa":_fd_read,"Ka":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"jc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"tb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Pb":_glCullFace,"i":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"_b":_glDepthFunc,"C":_glDetachShader,"hd":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"J":_glEnable,"d":_glEnableVertexAttribArray,"Eb":_glFrontFace,"l":_glGenBuffers,"Za":_glGenTextures,"q":_glGetAttribLocation,"Oc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ba":_glLinkProgram,"ib":_glPixelStorei,"Ia":_glReadPixels,"Fa":_glShaderSource,"Qa":_glTexImage2D,"m":_glTexParameteri,"$":_glUniform1i,"ja":_glUniform4f,"Ha":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ka":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"b":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_format_text.wasm b/examples/text/text_format_text.wasm new file mode 100644 index 0000000..fc9baaa Binary files /dev/null and b/examples/text/text_format_text.wasm differ diff --git a/examples/text/text_input_box.html b/examples/text/text_input_box.html new file mode 100644 index 0000000..afa4d04 --- /dev/null +++ b/examples/text/text_input_box.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_input_box.js b/examples/text/text_input_box.js new file mode 100644 index 0000000..106df3d --- /dev/null +++ b/examples/text/text_input_box.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_input_box.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"n":___assert_fail,"F":___sys_fcntl64,"Oa":___sys_getcwd,"Ra":___sys_ioctl,"Sa":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"K":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Nc":_emscripten_glFramebufferRenderbuffer,"Mc":_emscripten_glFramebufferTexture2D,"Lc":_emscripten_glFrontFace,"Kc":_emscripten_glGenBuffers,"Ic":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Hc":_emscripten_glGenRenderbuffers,"Gc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Jc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"ic":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"fc":_emscripten_glGetVertexAttribPointerv,"hc":_emscripten_glGetVertexAttribfv,"gc":_emscripten_glGetVertexAttribiv,"ec":_emscripten_glHint,"dc":_emscripten_glIsBuffer,"cc":_emscripten_glIsEnabled,"bc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"Zb":_emscripten_glIsShader,"Yb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Xb":_emscripten_glLineWidth,"Wb":_emscripten_glLinkProgram,"Vb":_emscripten_glPixelStorei,"Ub":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Tb":_emscripten_glReadPixels,"Sb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Ob":_emscripten_glScissor,"Nb":_emscripten_glShaderBinary,"Mb":_emscripten_glShaderSource,"Lb":_emscripten_glStencilFunc,"Kb":_emscripten_glStencilFuncSeparate,"Jb":_emscripten_glStencilMask,"Ib":_emscripten_glStencilMaskSeparate,"Hb":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Db":_emscripten_glTexParameterf,"Cb":_emscripten_glTexParameterfv,"Bb":_emscripten_glTexParameteri,"Ab":_emscripten_glTexParameteriv,"zb":_emscripten_glTexSubImage2D,"yb":_emscripten_glUniform1f,"xb":_emscripten_glUniform1fv,"wb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"sb":_emscripten_glUniform2fv,"rb":_emscripten_glUniform2i,"qb":_emscripten_glUniform2iv,"pb":_emscripten_glUniform3f,"ob":_emscripten_glUniform3fv,"nb":_emscripten_glUniform3i,"mb":_emscripten_glUniform3iv,"lb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"hb":_emscripten_glUniform4iv,"gb":_emscripten_glUniformMatrix2fv,"fb":_emscripten_glUniformMatrix3fv,"eb":_emscripten_glUniformMatrix4fv,"db":_emscripten_glUseProgram,"cb":_emscripten_glValidateProgram,"bb":_emscripten_glVertexAttrib1f,"ab":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Ya":_emscripten_glVertexAttrib3f,"Xa":_emscripten_glVertexAttrib3fv,"Wa":_emscripten_glVertexAttrib4f,"Va":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Ua":_emscripten_glVertexAttribPointer,"Ta":_emscripten_glViewport,"La":_emscripten_memcpy_big,"Ma":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Na":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Pa":_fd_read,"Ka":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"jc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"tb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Pb":_glCullFace,"i":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"_b":_glDepthFunc,"C":_glDetachShader,"hd":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"J":_glEnable,"d":_glEnableVertexAttribArray,"Eb":_glFrontFace,"l":_glGenBuffers,"Za":_glGenTextures,"q":_glGetAttribLocation,"Oc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ba":_glLinkProgram,"ib":_glPixelStorei,"Ia":_glReadPixels,"Fa":_glShaderSource,"Qa":_glTexImage2D,"m":_glTexParameteri,"$":_glUniform1i,"ja":_glUniform4f,"Ha":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ka":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"b":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_input_box.wasm b/examples/text/text_input_box.wasm new file mode 100644 index 0000000..6a0d4be Binary files /dev/null and b/examples/text/text_input_box.wasm differ diff --git a/examples/text/text_raylib_fonts.data b/examples/text/text_raylib_fonts.data new file mode 100644 index 0000000..b8ce691 Binary files /dev/null and b/examples/text/text_raylib_fonts.data differ diff --git a/examples/text/text_raylib_fonts.html b/examples/text/text_raylib_fonts.html new file mode 100644 index 0000000..92619f1 --- /dev/null +++ b/examples/text/text_raylib_fonts.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_raylib_fonts.js b/examples/text/text_raylib_fonts.js new file mode 100644 index 0000000..d18d743 --- /dev/null +++ b/examples/text/text_raylib_fonts.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_raylib_fonts.data";var REMOTE_PACKAGE_BASE="text_raylib_fonts.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","fonts",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_raylib_fonts.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["_d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["be"];addOnInit(Module["asm"]["$d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"a":___assert_fail,"F":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"hd":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Qa":_fd_read,"La":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"d":_glBindTexture,"ac":_glBlendFunc,"m":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"kb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Gb":_glCullFace,"k":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"Rb":_glDepthFunc,"C":_glDetachShader,"id":_glDisable,"l":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"K":_glEnable,"g":_glEnableVertexAttribArray,"vb":_glFrontFace,"n":_glGenBuffers,"Sa":_glGenTextures,"q":_glGetAttribLocation,"Fc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"j":_glGetString,"o":_glGetUniformLocation,"Ba":_glLinkProgram,"$a":_glPixelStorei,"Ha":_glReadPixels,"Fa":_glShaderSource,"Ka":_glTexImage2D,"J":_glTexParameterf,"e":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"p":_glUseProgram,"h":_glVertexAttribPointer,"Zd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"f":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"c":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ae"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ce"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["de"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ee"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["re"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_raylib_fonts.wasm b/examples/text/text_raylib_fonts.wasm new file mode 100644 index 0000000..8afb760 Binary files /dev/null and b/examples/text/text_raylib_fonts.wasm differ diff --git a/examples/text/text_rectangle_bounds.html b/examples/text/text_rectangle_bounds.html new file mode 100644 index 0000000..aadc1ea --- /dev/null +++ b/examples/text/text_rectangle_bounds.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_rectangle_bounds.js b/examples/text/text_rectangle_bounds.js new file mode 100644 index 0000000..814bdbc --- /dev/null +++ b/examples/text/text_rectangle_bounds.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_rectangle_bounds.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"n":___assert_fail,"F":___sys_fcntl64,"Oa":___sys_getcwd,"Ra":___sys_ioctl,"Sa":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"K":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Nc":_emscripten_glFramebufferRenderbuffer,"Mc":_emscripten_glFramebufferTexture2D,"Lc":_emscripten_glFrontFace,"Kc":_emscripten_glGenBuffers,"Ic":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Hc":_emscripten_glGenRenderbuffers,"Gc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Jc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"ic":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"fc":_emscripten_glGetVertexAttribPointerv,"hc":_emscripten_glGetVertexAttribfv,"gc":_emscripten_glGetVertexAttribiv,"ec":_emscripten_glHint,"dc":_emscripten_glIsBuffer,"cc":_emscripten_glIsEnabled,"bc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"Zb":_emscripten_glIsShader,"Yb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Xb":_emscripten_glLineWidth,"Wb":_emscripten_glLinkProgram,"Vb":_emscripten_glPixelStorei,"Ub":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Tb":_emscripten_glReadPixels,"Sb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Ob":_emscripten_glScissor,"Nb":_emscripten_glShaderBinary,"Mb":_emscripten_glShaderSource,"Lb":_emscripten_glStencilFunc,"Kb":_emscripten_glStencilFuncSeparate,"Jb":_emscripten_glStencilMask,"Ib":_emscripten_glStencilMaskSeparate,"Hb":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Db":_emscripten_glTexParameterf,"Cb":_emscripten_glTexParameterfv,"Bb":_emscripten_glTexParameteri,"Ab":_emscripten_glTexParameteriv,"zb":_emscripten_glTexSubImage2D,"yb":_emscripten_glUniform1f,"xb":_emscripten_glUniform1fv,"wb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"sb":_emscripten_glUniform2fv,"rb":_emscripten_glUniform2i,"qb":_emscripten_glUniform2iv,"pb":_emscripten_glUniform3f,"ob":_emscripten_glUniform3fv,"nb":_emscripten_glUniform3i,"mb":_emscripten_glUniform3iv,"lb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"hb":_emscripten_glUniform4iv,"gb":_emscripten_glUniformMatrix2fv,"fb":_emscripten_glUniformMatrix3fv,"eb":_emscripten_glUniformMatrix4fv,"db":_emscripten_glUseProgram,"cb":_emscripten_glValidateProgram,"bb":_emscripten_glVertexAttrib1f,"ab":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Ya":_emscripten_glVertexAttrib3f,"Xa":_emscripten_glVertexAttrib3fv,"Wa":_emscripten_glVertexAttrib4f,"Va":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Ua":_emscripten_glVertexAttribPointer,"Ta":_emscripten_glViewport,"La":_emscripten_memcpy_big,"Ma":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Na":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Pa":_fd_read,"Ka":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"jc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"tb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Pb":_glCullFace,"i":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"_b":_glDepthFunc,"C":_glDetachShader,"hd":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"J":_glEnable,"d":_glEnableVertexAttribArray,"Eb":_glFrontFace,"l":_glGenBuffers,"Za":_glGenTextures,"q":_glGetAttribLocation,"Oc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ba":_glLinkProgram,"ib":_glPixelStorei,"Ia":_glReadPixels,"Fa":_glShaderSource,"Qa":_glTexImage2D,"m":_glTexParameteri,"$":_glUniform1i,"ja":_glUniform4f,"Ha":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ka":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"b":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_rectangle_bounds.wasm b/examples/text/text_rectangle_bounds.wasm new file mode 100644 index 0000000..acf6277 Binary files /dev/null and b/examples/text/text_rectangle_bounds.wasm differ diff --git a/examples/text/text_unicode.data b/examples/text/text_unicode.data new file mode 100644 index 0000000..270d5cb --- /dev/null +++ b/examples/text/text_unicode.data @@ -0,0 +1,3484 @@ +info face="DejaVu Sans" size=-16 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2 outline=1 +common lineHeight=19 base=15 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="dejavu.png" +chars count=1111 +char id=32 x=259 y=464 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=33 x=464 y=382 width=4 height=14 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=34 x=112 y=461 width=7 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=35 x=33 y=407 width=14 height=13 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15 +char id=36 x=381 y=153 width=10 height=16 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=37 x=493 y=222 width=17 height=14 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=38 x=275 y=257 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=39 x=506 y=395 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=40 x=18 y=178 width=6 height=16 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=41 x=10 y=178 width=6 height=16 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=42 x=192 y=444 width=10 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=43 x=369 y=415 width=13 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=44 x=474 y=450 width=5 height=6 xoffset=0 yoffset=12 xadvance=5 page=0 chnl=15 +char id=45 x=191 y=468 width=7 height=4 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15 +char id=46 x=207 y=465 width=5 height=4 xoffset=0 yoffset=12 xadvance=5 page=0 chnl=15 +char id=47 x=331 y=224 width=8 height=15 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=15 +char id=48 x=396 y=304 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=49 x=290 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=50 x=386 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=51 x=374 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=52 x=466 y=302 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=53 x=338 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=54 x=273 y=353 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=55 x=326 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=56 x=286 y=353 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=57 x=42 y=327 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=58 x=428 y=441 width=5 height=10 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15 +char id=59 x=472 y=398 width=5 height=12 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15 +char id=60 x=339 y=415 width=13 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=61 x=42 y=461 width=13 height=7 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15 +char id=62 x=324 y=415 width=13 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=63 x=501 y=238 width=9 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=64 x=368 y=135 width=17 height=16 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=15 +char id=65 x=60 y=295 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=66 x=299 y=353 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=67 x=90 y=295 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=68 x=105 y=294 width=13 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=69 x=325 y=353 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=70 x=194 y=371 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=71 x=208 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=72 x=420 y=320 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=73 x=423 y=384 width=5 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=74 x=237 y=136 width=7 height=17 xoffset=-2 yoffset=2 xadvance=5 page=0 chnl=15 +char id=75 x=60 y=311 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=76 x=72 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=77 x=288 y=273 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=78 x=74 y=311 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=79 x=320 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=80 x=351 y=353 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=81 x=467 y=135 width=14 height=16 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=82 x=102 y=311 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=83 x=116 y=310 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=84 x=130 y=310 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=85 x=144 y=307 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=86 x=496 y=270 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=87 x=164 y=242 width=18 height=14 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=88 x=150 y=291 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=89 x=158 y=307 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=90 x=210 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=91 x=34 y=178 width=6 height=16 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=92 x=321 y=224 width=8 height=15 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=15 +char id=93 x=26 y=178 width=6 height=16 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=94 x=27 y=461 width=13 height=7 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=95 x=107 y=470 width=12 height=4 xoffset=-2 yoffset=16 xadvance=8 page=0 chnl=15 +char id=96 x=398 y=453 width=7 height=6 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15 +char id=97 x=312 y=428 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=98 x=455 y=350 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=99 x=36 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=100 x=468 y=350 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=101 x=286 y=428 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=102 x=311 y=385 width=8 height=14 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=103 x=65 y=375 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=104 x=410 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=105 x=476 y=382 width=4 height=14 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=106 x=289 y=136 width=6 height=17 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=107 x=130 y=374 width=11 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=108 x=482 y=382 width=4 height=14 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=109 x=93 y=422 width=16 height=11 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15 +char id=110 x=495 y=424 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=111 x=260 y=430 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=112 x=143 y=374 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=113 x=156 y=371 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=114 x=292 y=441 width=8 height=11 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15 +char id=115 x=435 y=428 width=10 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=116 x=229 y=402 width=8 height=13 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15 +char id=117 x=411 y=428 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=118 x=143 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=119 x=213 y=418 width=15 height=11 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=120 x=130 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=121 x=476 y=318 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=122 x=363 y=428 width=10 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=123 x=60 y=141 width=10 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=124 x=469 y=20 width=5 height=18 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=125 x=48 y=141 width=10 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=126 x=266 y=456 width=13 height=6 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15 +char id=160 x=284 y=463 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=161 x=506 y=153 width=4 height=14 xoffset=1 yoffset=5 xadvance=6 page=0 chnl=15 +char id=162 x=492 y=205 width=10 height=15 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15 +char id=163 x=0 y=343 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=164 x=440 y=414 width=12 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=165 x=0 y=327 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=166 x=42 y=178 width=5 height=16 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=167 x=345 y=154 width=10 height=16 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=168 x=502 y=447 width=8 height=5 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=169 x=352 y=273 width=14 height=14 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=170 x=237 y=443 width=9 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=171 x=337 y=441 width=10 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15 +char id=172 x=462 y=440 width=13 height=8 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15 +char id=173 x=155 y=470 width=7 height=4 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15 +char id=174 x=400 y=272 width=14 height=14 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=175 x=145 y=470 width=8 height=4 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=176 x=0 y=461 width=8 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=177 x=337 y=401 width=13 height=12 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15 +char id=178 x=392 y=441 width=8 height=10 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=179 x=382 y=441 width=8 height=10 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=180 x=380 y=453 width=7 height=6 xoffset=1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=181 x=169 y=371 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=182 x=393 y=153 width=10 height=16 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=183 x=14 y=471 width=5 height=5 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15 +char id=184 x=423 y=453 width=6 height=6 xoffset=1 yoffset=13 xadvance=8 page=0 chnl=15 +char id=185 x=411 y=441 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=186 x=259 y=443 width=9 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=187 x=349 y=441 width=10 height=10 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15 +char id=188 x=411 y=238 width=16 height=14 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15 +char id=189 x=447 y=238 width=16 height=14 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15 +char id=190 x=356 y=240 width=17 height=14 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=191 x=228 y=386 width=9 height=14 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=192 x=135 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=193 x=150 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=194 x=165 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=195 x=180 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=196 x=195 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=197 x=210 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=198 x=299 y=241 width=17 height=14 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=199 x=225 y=79 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=200 x=119 y=118 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=201 x=106 y=119 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=202 x=80 y=119 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=203 x=353 y=116 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=204 x=504 y=97 width=6 height=17 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=205 x=321 y=136 width=6 height=17 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=206 x=187 y=136 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=207 x=147 y=136 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=208 x=448 y=270 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=209 x=420 y=97 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=210 x=112 y=61 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=211 x=32 y=65 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=212 x=128 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=213 x=457 y=40 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=214 x=473 y=40 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=215 x=380 y=401 width=12 height=12 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15 +char id=216 x=451 y=135 width=14 height=16 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15 +char id=217 x=329 y=79 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=218 x=476 y=97 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=219 x=308 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=220 x=70 y=100 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=221 x=56 y=103 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=222 x=26 y=375 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=223 x=0 y=375 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=224 x=52 y=213 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=225 x=39 y=213 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=226 x=26 y=213 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=227 x=494 y=350 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=228 x=481 y=350 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=229 x=293 y=155 width=11 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=230 x=0 y=422 width=17 height=11 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15 +char id=231 x=192 y=387 width=10 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=232 x=478 y=188 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=233 x=452 y=188 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=234 x=426 y=188 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=235 x=429 y=352 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=236 x=380 y=223 width=7 height=15 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=237 x=371 y=223 width=7 height=15 xoffset=-1 yoffset=1 xadvance=4 page=0 chnl=15 +char id=238 x=351 y=223 width=8 height=15 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=239 x=321 y=385 width=8 height=14 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=240 x=403 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=241 x=422 y=368 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=242 x=286 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=243 x=260 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=244 x=234 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=245 x=364 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=246 x=338 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=247 x=310 y=441 width=13 height=10 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15 +char id=248 x=64 y=407 width=12 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15 +char id=249 x=96 y=229 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=250 x=84 y=229 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=251 x=24 y=230 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=252 x=60 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=253 x=315 y=20 width=11 height=18 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=254 x=158 y=117 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=255 x=171 y=117 width=11 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=256 x=45 y=160 width=13 height=16 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15 +char id=257 x=312 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=258 x=0 y=26 width=13 height=18 xoffset=-1 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=259 x=195 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=260 x=80 y=62 width=14 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=261 x=322 y=321 width=12 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=262 x=255 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=263 x=312 y=207 width=10 height=15 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=264 x=270 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=265 x=384 y=206 width=10 height=15 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=266 x=285 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=267 x=24 y=391 width=10 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=268 x=300 y=79 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=269 x=456 y=205 width=10 height=15 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=270 x=288 y=60 width=13 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=271 x=432 y=270 width=14 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=272 x=368 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=273 x=266 y=321 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=274 x=254 y=155 width=11 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15 +char id=275 x=234 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=276 x=197 y=117 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=277 x=169 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=278 x=210 y=117 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=279 x=247 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=280 x=223 y=117 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=281 x=260 y=353 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=282 x=236 y=117 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=283 x=156 y=208 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=284 x=425 y=40 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=285 x=172 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=286 x=377 y=40 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=287 x=328 y=20 width=11 height=18 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=288 x=48 y=62 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=289 x=444 y=116 width=11 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=290 x=394 y=0 width=14 height=18 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=291 x=185 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=292 x=42 y=103 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=293 x=322 y=98 width=12 height=17 xoffset=-2 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=294 x=108 y=262 width=15 height=14 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=15 +char id=295 x=298 y=305 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=296 x=157 y=136 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=297 x=281 y=385 width=8 height=14 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=298 x=486 y=153 width=8 height=16 xoffset=-2 yoffset=0 xadvance=5 page=0 chnl=15 +char id=299 x=271 y=385 width=8 height=14 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=300 x=107 y=138 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=301 x=311 y=224 width=8 height=15 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=302 x=305 y=136 width=6 height=17 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=303 x=313 y=136 width=6 height=17 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=304 x=505 y=116 width=5 height=17 xoffset=0 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=305 x=506 y=382 width=4 height=11 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=306 x=84 y=138 width=10 height=17 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=307 x=137 y=137 width=8 height=17 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=308 x=101 y=0 width=8 height=20 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=309 x=443 y=20 width=8 height=18 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=310 x=88 y=22 width=12 height=18 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=311 x=302 y=21 width=11 height=18 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=312 x=0 y=435 width=11 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=313 x=493 y=116 width=10 height=17 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=15 +char id=314 x=297 y=136 width=6 height=17 xoffset=0 yoffset=-1 xadvance=4 page=0 chnl=15 +char id=315 x=401 y=20 width=10 height=18 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=316 x=461 y=20 width=6 height=18 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15 +char id=317 x=48 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=318 x=406 y=385 width=7 height=14 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=319 x=302 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=320 x=379 y=385 width=7 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=321 x=340 y=305 width=12 height=14 xoffset=-2 yoffset=2 xadvance=9 page=0 chnl=15 +char id=322 x=397 y=385 width=7 height=14 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=15 +char id=323 x=238 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=324 x=108 y=229 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=325 x=60 y=23 width=12 height=18 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=326 x=144 y=226 width=10 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=327 x=210 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=328 x=336 y=207 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=329 x=315 y=289 width=13 height=14 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=330 x=168 y=98 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=331 x=216 y=387 width=10 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=332 x=483 y=135 width=14 height=16 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15 +char id=333 x=13 y=343 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=334 x=64 y=62 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=335 x=374 y=189 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=336 x=176 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=337 x=400 y=188 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=338 x=63 y=247 width=19 height=14 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15 +char id=339 x=486 y=398 width=18 height=11 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15 +char id=340 x=14 y=103 width=12 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=341 x=236 y=224 width=9 height=15 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=342 x=116 y=21 width=12 height=18 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=343 x=192 y=224 width=9 height=15 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15 +char id=344 x=455 y=78 width=12 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=345 x=291 y=224 width=8 height=15 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=346 x=182 y=98 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=347 x=360 y=206 width=10 height=15 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=348 x=462 y=97 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=349 x=396 y=205 width=10 height=15 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=350 x=497 y=78 width=12 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=351 x=180 y=387 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=352 x=84 y=100 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=353 x=444 y=205 width=10 height=15 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=354 x=98 y=100 width=12 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=355 x=0 y=178 width=8 height=16 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15 +char id=356 x=126 y=99 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=357 x=361 y=223 width=8 height=15 xoffset=-1 yoffset=1 xadvance=6 page=0 chnl=15 +char id=358 x=294 y=321 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=359 x=239 y=402 width=8 height=13 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15 +char id=360 x=196 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=361 x=84 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=362 x=173 y=155 width=12 height=16 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15 +char id=363 x=230 y=370 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=364 x=280 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=365 x=132 y=226 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=366 x=294 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=367 x=453 y=153 width=10 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15 +char id=368 x=350 y=97 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=369 x=12 y=230 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=370 x=364 y=97 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=371 x=104 y=343 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=372 x=126 y=41 width=18 height=17 xoffset=-1 yoffset=-1 xadvance=16 page=0 chnl=15 +char id=373 x=343 y=172 width=15 height=15 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15 +char id=374 x=434 y=97 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=375 x=289 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=376 x=14 y=122 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=377 x=105 y=80 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=378 x=348 y=206 width=10 height=15 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=379 x=90 y=81 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=380 x=156 y=387 width=10 height=14 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=381 x=60 y=81 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=382 x=156 y=225 width=10 height=15 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=383 x=331 y=385 width=8 height=14 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=384 x=434 y=320 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=385 x=243 y=257 width=14 height=14 xoffset=-2 yoffset=2 xadvance=12 page=0 chnl=15 +char id=386 x=78 y=375 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=387 x=416 y=352 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=388 x=364 y=321 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=389 x=480 y=302 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=390 x=225 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=391 x=310 y=41 width=15 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=392 x=270 y=305 width=12 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=393 x=259 y=257 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=394 x=483 y=238 width=16 height=14 xoffset=-2 yoffset=2 xadvance=13 page=0 chnl=15 +char id=395 x=130 y=358 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=396 x=377 y=337 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=397 x=52 y=359 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=398 x=325 y=337 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=399 x=419 y=254 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=400 x=12 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=401 x=336 y=98 width=12 height=17 xoffset=-2 yoffset=2 xadvance=9 page=0 chnl=15 +char id=402 x=96 y=138 width=9 height=17 xoffset=-2 yoffset=2 xadvance=6 page=0 chnl=15 +char id=403 x=239 y=41 width=16 height=17 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=404 x=363 y=59 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=405 x=36 y=263 width=16 height=14 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15 +char id=406 x=361 y=385 width=7 height=14 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=407 x=388 y=385 width=7 height=14 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=15 +char id=408 x=165 y=291 width=13 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=409 x=442 y=336 width=11 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=410 x=370 y=385 width=7 height=14 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15 +char id=411 x=468 y=334 width=11 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=412 x=429 y=238 width=16 height=14 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15 +char id=413 x=409 y=40 width=14 height=17 xoffset=-2 yoffset=2 xadvance=12 page=0 chnl=15 +char id=414 x=218 y=370 width=10 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=415 x=96 y=278 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=416 x=112 y=278 width=14 height=14 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=417 x=352 y=401 width=12 height=12 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15 +char id=418 x=18 y=263 width=16 height=14 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=419 x=450 y=286 width=13 height=14 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15 +char id=420 x=405 y=288 width=13 height=14 xoffset=-2 yoffset=2 xadvance=10 page=0 chnl=15 +char id=421 x=288 y=117 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=422 x=159 y=155 width=12 height=16 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=423 x=14 y=327 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=424 x=132 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=425 x=143 y=358 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=426 x=327 y=117 width=11 height=17 xoffset=-4 yoffset=2 xadvance=5 page=0 chnl=15 +char id=427 x=476 y=153 width=8 height=16 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15 +char id=428 x=326 y=305 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=429 x=341 y=385 width=8 height=14 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=430 x=112 y=99 width=12 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=431 x=192 y=274 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=432 x=366 y=401 width=12 height=12 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15 +char id=433 x=240 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=434 x=70 y=327 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=435 x=128 y=275 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=436 x=176 y=274 width=14 height=14 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15 +char id=437 x=330 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=438 x=423 y=428 width=10 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=439 x=489 y=318 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=440 x=242 y=305 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=441 x=104 y=375 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=442 x=0 y=230 width=10 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=443 x=350 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=444 x=126 y=326 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=445 x=208 y=354 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=446 x=372 y=206 width=10 height=15 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=447 x=195 y=355 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=448 x=505 y=39 width=5 height=17 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=449 x=117 y=138 width=8 height=17 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=450 x=36 y=141 width=10 height=17 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15 +char id=451 x=458 y=382 width=4 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=452 x=476 y=20 width=23 height=17 xoffset=0 yoffset=-1 xadvance=23 page=0 chnl=15 +char id=453 x=80 y=178 width=21 height=15 xoffset=0 yoffset=1 xadvance=21 page=0 chnl=15 +char id=454 x=103 y=175 width=19 height=15 xoffset=-1 yoffset=1 xadvance=18 page=0 chnl=15 +char id=455 x=441 y=40 width=14 height=17 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=456 x=393 y=59 width=13 height=17 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=457 x=264 y=136 width=7 height=17 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=458 x=257 y=41 width=16 height=17 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=15 +char id=459 x=160 y=60 width=14 height=17 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=15 +char id=460 x=0 y=84 width=13 height=17 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=461 x=408 y=59 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=462 x=221 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=463 x=217 y=136 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=464 x=301 y=224 width=8 height=15 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=465 x=272 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=466 x=247 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=467 x=483 y=78 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=468 x=432 y=205 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=469 x=158 y=21 width=12 height=18 xoffset=0 yoffset=-2 xadvance=12 page=0 chnl=15 +char id=470 x=369 y=153 width=10 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15 +char id=471 x=242 y=0 width=12 height=19 xoffset=0 yoffset=-3 xadvance=12 page=0 chnl=15 +char id=472 x=72 y=141 width=10 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=473 x=256 y=0 width=12 height=19 xoffset=0 yoffset=-3 xadvance=12 page=0 chnl=15 +char id=474 x=457 y=116 width=10 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=475 x=270 y=0 width=12 height=19 xoffset=0 yoffset=-3 xadvance=12 page=0 chnl=15 +char id=476 x=0 y=141 width=10 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=477 x=91 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=478 x=488 y=0 width=13 height=18 xoffset=-1 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=479 x=332 y=154 width=11 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=480 x=458 y=0 width=13 height=18 xoffset=-1 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=481 x=306 y=155 width=11 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=482 x=349 y=136 width=17 height=16 xoffset=-1 yoffset=0 xadvance=16 page=0 chnl=15 +char id=483 x=318 y=241 width=17 height=14 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=484 x=144 y=275 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=485 x=238 y=321 width=12 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=486 x=16 y=65 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=487 x=224 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=488 x=490 y=97 width=12 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=489 x=423 y=59 width=13 height=17 xoffset=-2 yoffset=-1 xadvance=9 page=0 chnl=15 +char id=490 x=96 y=61 width=14 height=17 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=491 x=78 y=359 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=492 x=182 y=0 width=14 height=19 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15 +char id=493 x=262 y=117 width=11 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=494 x=54 y=122 width=11 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=495 x=211 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=496 x=433 y=20 width=8 height=18 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=497 x=398 y=222 width=23 height=14 xoffset=0 yoffset=2 xadvance=23 page=0 chnl=15 +char id=498 x=448 y=222 width=21 height=14 xoffset=0 yoffset=2 xadvance=21 page=0 chnl=15 +char id=499 x=0 y=247 width=19 height=14 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15 +char id=500 x=208 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=501 x=263 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=502 x=124 y=243 width=18 height=14 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=15 +char id=503 x=67 y=122 width=11 height=17 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=504 x=224 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=505 x=48 y=230 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=506 x=438 y=59 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=507 x=154 y=98 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=508 x=146 y=41 width=17 height=17 xoffset=-1 yoffset=-1 xadvance=16 page=0 chnl=15 +char id=509 x=181 y=173 width=17 height=15 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=15 +char id=510 x=410 y=0 width=14 height=18 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=511 x=145 y=156 width=12 height=16 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=512 x=453 y=59 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=513 x=273 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=514 x=60 y=160 width=13 height=16 xoffset=-1 yoffset=0 xadvance=11 page=0 chnl=15 +char id=515 x=338 y=337 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=516 x=132 y=118 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=517 x=143 y=209 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=518 x=267 y=155 width=11 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15 +char id=519 x=273 y=337 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=520 x=501 y=20 width=9 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=521 x=203 y=224 width=9 height=15 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=15 +char id=522 x=496 y=153 width=8 height=16 xoffset=-2 yoffset=0 xadvance=5 page=0 chnl=15 +char id=523 x=502 y=318 width=8 height=14 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=524 x=144 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=525 x=104 y=212 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=526 x=387 y=135 width=14 height=16 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15 +char id=527 x=208 y=338 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=528 x=385 y=78 width=12 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=529 x=214 y=224 width=9 height=15 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=15 +char id=530 x=201 y=155 width=12 height=16 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15 +char id=531 x=261 y=385 width=8 height=14 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=532 x=427 y=78 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=533 x=36 y=230 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=534 x=75 y=160 width=12 height=16 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15 +char id=535 x=446 y=368 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=536 x=144 y=21 width=12 height=18 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=537 x=60 y=230 width=10 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=538 x=102 y=22 width=12 height=18 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=539 x=177 y=136 width=8 height=17 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15 +char id=540 x=341 y=20 width=10 height=18 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=541 x=120 y=226 width=10 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=542 x=378 y=97 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=543 x=392 y=97 width=12 height=17 xoffset=-2 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=544 x=406 y=97 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=545 x=327 y=40 width=15 height=17 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15 +char id=546 x=375 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=547 x=422 y=401 width=11 height=12 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15 +char id=548 x=240 y=79 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=549 x=458 y=366 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=550 x=483 y=59 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=551 x=221 y=354 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=552 x=41 y=122 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=553 x=182 y=355 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=554 x=362 y=0 width=14 height=18 xoffset=-1 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=555 x=215 y=155 width=11 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=556 x=378 y=0 width=14 height=18 xoffset=-1 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=557 x=78 y=212 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=558 x=489 y=39 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=559 x=169 y=355 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=560 x=426 y=0 width=14 height=18 xoffset=-1 yoffset=-2 xadvance=13 page=0 chnl=15 +char id=561 x=319 y=155 width=11 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=562 x=89 y=157 width=12 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=563 x=431 y=116 width=11 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=564 x=227 y=136 width=8 height=17 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15 +char id=565 x=17 y=407 width=14 height=13 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=566 x=465 y=153 width=9 height=16 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=567 x=415 y=385 width=6 height=14 xoffset=-2 yoffset=5 xadvance=4 page=0 chnl=15 +char id=568 x=104 y=246 width=18 height=14 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=569 x=144 y=243 width=18 height=14 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15 +char id=570 x=15 y=160 width=13 height=16 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=571 x=419 y=135 width=14 height=16 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=572 x=146 y=406 width=11 height=13 xoffset=-1 yoffset=4 xadvance=9 page=0 chnl=15 +char id=573 x=39 y=375 width=11 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=574 x=435 y=135 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=15 +char id=575 x=13 y=213 width=11 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=576 x=0 y=213 width=11 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=577 x=200 y=306 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=578 x=399 y=428 width=10 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=579 x=336 y=321 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=580 x=355 y=257 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=581 x=390 y=288 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=582 x=250 y=21 width=11 height=18 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15 +char id=583 x=387 y=188 width=11 height=15 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15 +char id=584 x=207 y=136 width=8 height=17 xoffset=-2 yoffset=2 xadvance=5 page=0 chnl=15 +char id=585 x=197 y=136 width=8 height=17 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=586 x=203 y=41 width=16 height=17 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=587 x=270 y=289 width=13 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=588 x=255 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=589 x=215 y=444 width=9 height=11 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15 +char id=590 x=480 y=286 width=13 height=14 xoffset=-2 yoffset=2 xadvance=10 page=0 chnl=15 +char id=591 x=234 y=190 width=12 height=15 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=880 x=108 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=881 x=226 y=444 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=882 x=291 y=257 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=883 x=266 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=884 x=121 y=461 width=5 height=7 xoffset=0 yoffset=1 xadvance=4 page=0 chnl=15 +char id=885 x=439 y=452 width=5 height=6 xoffset=0 yoffset=13 xadvance=4 page=0 chnl=15 +char id=886 x=350 y=321 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=887 x=471 y=425 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=890 x=446 y=452 width=5 height=6 xoffset=2 yoffset=14 xadvance=8 page=0 chnl=15 +char id=891 x=351 y=428 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=892 x=12 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=893 x=48 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=894 x=479 y=398 width=5 height=12 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15 +char id=895 x=255 y=136 width=7 height=17 xoffset=-2 yoffset=2 xadvance=5 page=0 chnl=15 +char id=900 x=389 y=453 width=7 height=6 xoffset=1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=901 x=435 y=441 width=8 height=9 xoffset=0 yoffset=-2 xadvance=8 page=0 chnl=15 +char id=902 x=90 y=195 width=13 height=15 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=903 x=0 y=471 width=5 height=5 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15 +char id=904 x=428 y=171 width=15 height=15 xoffset=-2 yoffset=1 xadvance=12 page=0 chnl=15 +char id=905 x=308 y=173 width=16 height=15 xoffset=-2 yoffset=1 xadvance=14 page=0 chnl=15 +char id=906 x=225 y=224 width=9 height=15 xoffset=-2 yoffset=1 xadvance=7 page=0 chnl=15 +char id=908 x=411 y=171 width=15 height=15 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=15 +char id=910 x=236 y=173 width=16 height=15 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=15 +char id=911 x=326 y=173 width=15 height=15 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=15 +char id=912 x=423 y=20 width=8 height=18 xoffset=-2 yoffset=-2 xadvance=5 page=0 chnl=15 +char id=913 x=30 y=295 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=914 x=91 y=343 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=915 x=434 y=368 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=916 x=30 y=311 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=917 x=117 y=359 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=918 x=15 y=311 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=919 x=378 y=321 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=920 x=480 y=270 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=921 x=437 y=384 width=5 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=922 x=112 y=327 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=923 x=465 y=286 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=924 x=307 y=257 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=925 x=140 y=326 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=926 x=482 y=366 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=927 x=403 y=256 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=928 x=168 y=323 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=929 x=65 y=343 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=931 x=78 y=343 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=932 x=210 y=322 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=933 x=224 y=321 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=934 x=16 y=279 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=935 x=495 y=286 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=936 x=48 y=279 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=937 x=64 y=279 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=938 x=167 y=136 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=939 x=399 y=78 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=940 x=192 y=190 width=12 height=15 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=941 x=180 y=224 width=10 height=15 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=942 x=377 y=20 width=10 height=18 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=943 x=389 y=223 width=7 height=15 xoffset=0 yoffset=1 xadvance=5 page=0 chnl=15 +char id=944 x=365 y=20 width=10 height=18 xoffset=0 yoffset=-2 xadvance=9 page=0 chnl=15 +char id=945 x=426 y=415 width=12 height=11 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=946 x=237 y=21 width=11 height=18 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=947 x=130 y=342 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=948 x=143 y=342 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=949 x=60 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=950 x=24 y=141 width=10 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=951 x=362 y=369 width=10 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=952 x=364 y=337 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=953 x=302 y=441 width=6 height=11 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=954 x=24 y=448 width=10 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=955 x=169 y=339 width=11 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=956 x=182 y=339 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=957 x=221 y=431 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=958 x=12 y=141 width=10 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=959 x=195 y=431 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=960 x=384 y=415 width=12 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=961 x=91 y=375 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=962 x=314 y=369 width=10 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=963 x=398 y=415 width=12 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=964 x=169 y=431 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=965 x=0 y=448 width=10 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=966 x=406 y=320 width=12 height=14 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=967 x=52 y=375 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=968 x=392 y=321 width=12 height=14 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=969 x=128 y=422 width=15 height=11 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=970 x=301 y=385 width=8 height=14 xoffset=-2 yoffset=2 xadvance=5 page=0 chnl=15 +char id=971 x=168 y=387 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=972 x=299 y=207 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=973 x=480 y=205 width=10 height=15 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15 +char id=974 x=394 y=171 width=15 height=15 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15 +char id=975 x=130 y=21 width=12 height=18 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=976 x=278 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=977 x=390 y=353 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=978 x=195 y=290 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=979 x=143 y=174 width=17 height=15 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=15 +char id=980 x=75 y=81 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=981 x=357 y=78 width=12 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=982 x=145 y=421 width=15 height=11 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=983 x=346 y=189 width=12 height=15 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=984 x=192 y=60 width=14 height=17 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=985 x=26 y=343 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=986 x=301 y=117 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=987 x=104 y=359 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=988 x=494 y=366 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=989 x=340 y=117 width=11 height=17 xoffset=-3 yoffset=2 xadvance=7 page=0 chnl=15 +char id=990 x=39 y=359 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=991 x=26 y=359 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=992 x=328 y=0 width=15 height=18 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=993 x=494 y=302 width=12 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=994 x=221 y=41 width=16 height=17 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=995 x=159 y=259 width=15 height=14 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=996 x=45 y=84 width=13 height=17 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=997 x=410 y=304 width=12 height=14 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=998 x=30 y=84 width=13 height=17 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=999 x=106 y=407 width=12 height=13 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15 +char id=1000 x=15 y=26 width=13 height=18 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1001 x=439 y=188 width=11 height=15 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1002 x=387 y=256 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1003 x=454 y=414 width=12 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1004 x=30 y=160 width=13 height=16 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=1005 x=499 y=135 width=11 height=16 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1006 x=0 y=103 width=12 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1007 x=379 y=116 width=11 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1008 x=394 y=401 width=12 height=12 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1009 x=299 y=337 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1010 x=387 y=428 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1011 x=273 y=136 width=6 height=17 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=1012 x=416 y=272 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1013 x=448 y=400 width=10 height=12 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1014 x=460 y=398 width=10 height=12 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1015 x=286 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1016 x=405 y=116 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1017 x=15 y=295 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1018 x=451 y=254 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1019 x=252 y=321 width=12 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1020 x=332 y=190 width=12 height=15 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1021 x=345 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1022 x=0 y=295 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1023 x=135 y=291 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1024 x=418 y=116 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1025 x=28 y=122 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1026 x=0 y=65 width=14 height=17 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1027 x=481 y=116 width=10 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1028 x=120 y=294 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1029 x=438 y=302 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1030 x=430 y=384 width=5 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=1031 x=127 y=137 width=8 height=17 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=1032 x=246 y=136 width=7 height=17 xoffset=-2 yoffset=2 xadvance=5 page=0 chnl=15 +char id=1033 x=42 y=247 width=19 height=14 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15 +char id=1034 x=261 y=241 width=17 height=14 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=15 +char id=1035 x=467 y=254 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1036 x=448 y=97 width=12 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=1037 x=441 y=78 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=1038 x=413 y=78 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1039 x=371 y=78 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1040 x=435 y=286 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1041 x=221 y=338 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1042 x=234 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1043 x=36 y=391 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1044 x=361 y=40 width=14 height=17 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1045 x=247 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1046 x=21 y=247 width=19 height=14 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15 +char id=1047 x=260 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1048 x=214 y=305 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1049 x=315 y=79 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=1050 x=354 y=305 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1051 x=360 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1052 x=0 y=279 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1053 x=182 y=323 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1054 x=32 y=279 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1055 x=88 y=311 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1056 x=312 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1057 x=285 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1058 x=56 y=327 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1059 x=196 y=322 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1060 x=125 y=259 width=15 height=14 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1061 x=75 y=295 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1062 x=468 y=59 width=13 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1063 x=351 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1064 x=204 y=241 width=17 height=14 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=15 +char id=1065 x=86 y=42 width=18 height=17 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=15 +char id=1066 x=142 y=259 width=15 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1067 x=80 y=279 width=14 height=14 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1068 x=390 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1069 x=420 y=288 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1070 x=184 y=241 width=18 height=14 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=15 +char id=1071 x=403 y=337 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1072 x=13 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1073 x=117 y=209 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1074 x=375 y=428 width=10 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1075 x=204 y=444 width=9 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15 +char id=1076 x=49 y=407 width=13 height=13 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1077 x=52 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1078 x=57 y=422 width=16 height=11 xoffset=-1 yoffset=5 xadvance=14 page=0 chnl=15 +char id=1079 x=84 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1080 x=96 y=448 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1081 x=468 y=205 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1082 x=495 y=411 width=11 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1083 x=338 y=428 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1084 x=412 y=415 width=12 height=11 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1085 x=459 y=427 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1086 x=325 y=428 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1087 x=144 y=448 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1088 x=494 y=334 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1089 x=180 y=444 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1090 x=299 y=428 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1091 x=0 y=359 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1092 x=344 y=40 width=15 height=17 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1093 x=273 y=429 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1094 x=92 y=407 width=12 height=13 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1095 x=270 y=443 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1096 x=111 y=422 width=15 height=11 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15 +char id=1097 x=488 y=382 width=16 height=13 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15 +char id=1098 x=309 y=415 width=13 height=11 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1099 x=468 y=412 width=12 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1100 x=447 y=427 width=10 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1101 x=120 y=448 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1102 x=247 y=417 width=14 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1103 x=117 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1104 x=65 y=212 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1105 x=91 y=359 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1106 x=0 y=122 width=12 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1107 x=247 y=224 width=9 height=15 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15 +char id=1108 x=168 y=447 width=10 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1109 x=483 y=425 width=10 height=11 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=1110 x=506 y=366 width=4 height=14 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=1111 x=291 y=385 width=8 height=14 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=1112 x=281 y=136 width=6 height=17 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=15 +char id=1113 x=75 y=422 width=16 height=11 xoffset=-1 yoffset=5 xadvance=14 page=0 chnl=15 +char id=1114 x=196 y=418 width=15 height=11 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15 +char id=1115 x=368 y=305 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1116 x=491 y=188 width=11 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1117 x=72 y=229 width=10 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1118 x=276 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=1119 x=184 y=403 width=10 height=13 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1120 x=375 y=240 width=16 height=14 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1121 x=162 y=418 width=15 height=11 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1122 x=160 y=275 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1123 x=228 y=305 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1124 x=290 y=173 width=16 height=15 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1125 x=408 y=401 width=12 height=12 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1126 x=54 y=263 width=16 height=14 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1127 x=179 y=418 width=15 height=11 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1128 x=471 y=222 width=20 height=14 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=15 +char id=1129 x=19 y=422 width=17 height=11 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15 +char id=1130 x=224 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1131 x=78 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1132 x=337 y=241 width=17 height=14 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15 +char id=1133 x=263 y=416 width=14 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1134 x=60 y=0 width=11 height=21 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1135 x=353 y=20 width=10 height=18 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1136 x=90 y=262 width=16 height=14 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1137 x=129 y=0 width=16 height=19 xoffset=-1 yoffset=1 xadvance=14 page=0 chnl=15 +char id=1138 x=256 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1139 x=65 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1140 x=210 y=257 width=15 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1141 x=294 y=415 width=13 height=11 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1142 x=293 y=41 width=15 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=1143 x=135 y=192 width=13 height=15 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=1144 x=308 y=0 width=18 height=18 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=1145 x=218 y=173 width=16 height=15 xoffset=-1 yoffset=5 xadvance=14 page=0 chnl=15 +char id=1146 x=124 y=175 width=17 height=15 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1147 x=306 y=401 width=14 height=12 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1148 x=22 y=46 width=20 height=17 xoffset=-1 yoffset=-1 xadvance=19 page=0 chnl=15 +char id=1149 x=162 y=173 width=17 height=15 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=15 +char id=1150 x=275 y=41 width=16 height=17 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15 +char id=1151 x=193 y=257 width=15 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1152 x=378 y=59 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1153 x=242 y=369 width=10 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1154 x=72 y=448 width=10 height=11 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=15 +char id=1155 x=319 y=453 width=10 height=6 xoffset=-10 yoffset=1 xadvance=0 page=0 chnl=15 +char id=1156 x=481 y=448 width=9 height=5 xoffset=-7 yoffset=1 xadvance=0 page=0 chnl=15 +char id=1157 x=453 y=452 width=5 height=6 xoffset=-6 yoffset=1 xadvance=0 page=0 chnl=15 +char id=1158 x=467 y=450 width=5 height=6 xoffset=-6 yoffset=1 xadvance=0 page=0 chnl=15 +char id=1159 x=233 y=457 width=16 height=6 xoffset=-14 yoffset=1 xadvance=0 page=0 chnl=15 +char id=1160 x=73 y=0 width=26 height=20 xoffset=-18 yoffset=-1 xadvance=7 page=0 chnl=15 +char id=1161 x=0 y=0 width=24 height=24 xoffset=-17 yoffset=-3 xadvance=7 page=0 chnl=15 +char id=1162 x=45 y=0 width=13 height=21 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=1163 x=228 y=0 width=12 height=19 xoffset=0 yoffset=1 xadvance=11 page=0 chnl=15 +char id=1164 x=172 y=307 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1165 x=133 y=406 width=11 height=13 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15 +char id=1166 x=156 y=355 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1167 x=182 y=207 width=11 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1168 x=357 y=154 width=10 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15 +char id=1169 x=207 y=403 width=9 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15 +char id=1170 x=424 y=304 width=12 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1171 x=104 y=435 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1172 x=314 y=117 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1173 x=204 y=387 width=10 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15 +char id=1174 x=0 y=46 width=20 height=17 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15 +char id=1175 x=72 y=263 width=16 height=14 xoffset=-1 yoffset=5 xadvance=14 page=0 chnl=15 +char id=1176 x=275 y=117 width=11 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1177 x=96 y=391 width=10 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1178 x=348 y=59 width=13 height=17 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1179 x=65 y=359 width=11 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1180 x=98 y=327 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1181 x=156 y=434 width=11 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1182 x=240 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1183 x=276 y=190 width=12 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1184 x=0 y=263 width=16 height=14 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1185 x=279 y=415 width=13 height=11 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1186 x=333 y=59 width=13 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1187 x=78 y=407 width=12 height=13 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1188 x=84 y=246 width=18 height=14 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15 +char id=1189 x=230 y=417 width=15 height=11 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15 +char id=1190 x=106 y=42 width=18 height=17 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=15 +char id=1191 x=465 y=238 width=16 height=14 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15 +char id=1192 x=272 y=173 width=16 height=15 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1193 x=322 y=401 width=13 height=12 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1194 x=303 y=60 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1195 x=398 y=369 width=10 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1196 x=498 y=58 width=12 height=17 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1197 x=159 y=403 width=11 height=13 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1198 x=28 y=327 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1199 x=481 y=334 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1200 x=308 y=321 width=12 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1201 x=130 y=209 width=11 height=15 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1202 x=318 y=60 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1203 x=455 y=334 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1204 x=184 y=41 width=17 height=17 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1205 x=0 y=407 width=15 height=13 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=15 +char id=1206 x=343 y=78 width=12 height=17 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1207 x=120 y=407 width=11 height=13 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1208 x=429 y=336 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1209 x=248 y=443 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1210 x=416 y=336 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1211 x=206 y=371 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1212 x=242 y=241 width=17 height=14 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1213 x=354 y=415 width=13 height=11 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1214 x=165 y=41 width=17 height=17 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1215 x=180 y=290 width=13 height=14 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1216 x=444 y=384 width=5 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=1217 x=44 y=43 width=19 height=17 xoffset=-1 yoffset=-1 xadvance=17 page=0 chnl=15 +char id=1218 x=200 y=173 width=16 height=15 xoffset=-1 yoffset=1 xadvance=14 page=0 chnl=15 +char id=1219 x=74 y=22 width=12 height=18 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1220 x=91 y=212 width=11 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1221 x=442 y=0 width=14 height=18 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1222 x=60 y=195 width=13 height=15 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1223 x=469 y=78 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1224 x=13 y=359 width=11 height=14 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1225 x=473 y=0 width=13 height=18 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1226 x=150 y=191 width=12 height=15 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1227 x=392 y=116 width=11 height=17 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1228 x=196 y=403 width=9 height=13 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1229 x=345 y=0 width=15 height=18 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1230 x=45 y=196 width=13 height=15 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1231 x=470 y=382 width=4 height=14 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=1232 x=30 y=23 width=13 height=18 xoffset=-1 yoffset=-2 xadvance=11 page=0 chnl=15 +char id=1233 x=465 y=188 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1234 x=15 y=84 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=1235 x=442 y=352 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1236 x=280 y=241 width=17 height=14 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15 +char id=1237 x=38 y=422 width=17 height=11 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=15 +char id=1238 x=366 y=116 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1239 x=413 y=188 width=11 height=15 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1240 x=227 y=257 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1241 x=182 y=431 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1242 x=256 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=1243 x=195 y=339 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1244 x=65 y=43 width=19 height=17 xoffset=-1 yoffset=-1 xadvance=17 page=0 chnl=15 +char id=1245 x=393 y=240 width=16 height=14 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1246 x=249 y=117 width=11 height=17 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1247 x=120 y=391 width=10 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1248 x=156 y=339 width=11 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1249 x=117 y=343 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1250 x=187 y=155 width=12 height=16 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15 +char id=1251 x=132 y=390 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1252 x=266 y=98 width=12 height=17 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15 +char id=1253 x=254 y=369 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1254 x=224 y=60 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=1255 x=52 y=343 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1256 x=464 y=270 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1257 x=482 y=412 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1258 x=393 y=40 width=14 height=17 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=1259 x=39 y=343 width=11 height=14 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1260 x=120 y=80 width=13 height=17 xoffset=-1 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=1261 x=0 y=391 width=10 height=14 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1262 x=131 y=156 width=12 height=16 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=15 +char id=1263 x=184 y=117 width=11 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1264 x=140 y=98 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1265 x=93 y=119 width=11 height=17 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1266 x=28 y=103 width=12 height=17 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=1267 x=198 y=21 width=11 height=18 xoffset=-1 yoffset=1 xadvance=9 page=0 chnl=15 +char id=1268 x=145 y=117 width=11 height=17 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15 +char id=1269 x=239 y=386 width=9 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1270 x=469 y=116 width=10 height=17 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1271 x=218 y=403 width=9 height=13 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15 +char id=1272 x=240 y=60 width=14 height=17 xoffset=0 yoffset=-1 xadvance=14 page=0 chnl=15 +char id=1273 x=382 y=305 width=12 height=14 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1274 x=252 y=98 width=12 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1275 x=499 y=254 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1276 x=45 y=23 width=13 height=18 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1277 x=208 y=207 width=11 height=15 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1278 x=300 y=289 width=13 height=14 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1279 x=247 y=430 width=11 height=11 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1329 x=248 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1330 x=256 y=305 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1331 x=483 y=254 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1332 x=371 y=256 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1333 x=206 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1334 x=45 y=295 width=13 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1335 x=377 y=353 width=11 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1336 x=186 y=306 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1337 x=377 y=171 width=15 height=15 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1338 x=477 y=171 width=14 height=15 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1339 x=154 y=323 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1340 x=182 y=371 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1341 x=360 y=172 width=15 height=15 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=15 +char id=1342 x=493 y=171 width=13 height=15 xoffset=1 yoffset=2 xadvance=14 page=0 chnl=15 +char id=1343 x=84 y=327 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1344 x=120 y=192 width=13 height=15 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1345 x=290 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1346 x=339 y=257 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1347 x=323 y=257 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1348 x=461 y=171 width=14 height=15 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1349 x=262 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1350 x=75 y=195 width=13 height=15 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1351 x=304 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1352 x=284 y=305 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1353 x=0 y=196 width=13 height=15 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1354 x=272 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1355 x=452 y=302 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1356 x=304 y=273 width=14 height=14 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1357 x=312 y=305 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1358 x=336 y=273 width=14 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1359 x=318 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1360 x=280 y=321 width=12 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=1361 x=220 y=190 width=12 height=15 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1362 x=470 y=366 width=10 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=1363 x=435 y=254 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1364 x=0 y=311 width=13 height=14 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=15 +char id=1365 x=384 y=272 width=14 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1366 x=445 y=171 width=14 height=15 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=1369 x=19 y=461 width=6 height=8 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=15 +char id=1370 x=135 y=461 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=1371 x=415 y=453 width=6 height=6 xoffset=-1 yoffset=1 xadvance=4 page=0 chnl=15 +char id=1372 x=487 y=438 width=8 height=8 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=15 +char id=1373 x=371 y=453 width=7 height=6 xoffset=-1 yoffset=1 xadvance=4 page=0 chnl=15 +char id=1374 x=71 y=461 width=9 height=7 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15 +char id=1375 x=307 y=454 width=10 height=6 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15 +char id=1377 x=288 y=401 width=16 height=12 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15 +char id=1378 x=420 y=205 width=10 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1379 x=15 y=196 width=13 height=15 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1380 x=178 y=190 width=12 height=15 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15 +char id=1381 x=429 y=153 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1382 x=30 y=196 width=13 height=15 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1383 x=258 y=224 width=9 height=15 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15 +char id=1384 x=168 y=225 width=10 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1385 x=105 y=192 width=13 height=15 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15 +char id=1386 x=0 y=160 width=13 height=16 xoffset=-1 yoffset=1 xadvance=11 page=0 chnl=15 +char id=1387 x=296 y=0 width=10 height=19 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1388 x=504 y=188 width=6 height=15 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=1389 x=111 y=0 width=16 height=19 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=15 +char id=1390 x=241 y=155 width=11 height=16 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1391 x=284 y=0 width=10 height=19 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1392 x=144 y=390 width=10 height=14 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=1393 x=228 y=155 width=11 height=16 xoffset=-1 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1394 x=360 y=189 width=12 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1395 x=441 y=153 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1396 x=117 y=157 width=12 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1397 x=504 y=205 width=6 height=15 xoffset=-2 yoffset=5 xadvance=4 page=0 chnl=15 +char id=1398 x=103 y=157 width=12 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1399 x=269 y=224 width=9 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=1400 x=108 y=448 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1401 x=341 y=224 width=8 height=15 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15 +char id=1402 x=254 y=173 width=16 height=15 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15 +char id=1403 x=324 y=207 width=10 height=15 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=1404 x=208 y=431 width=11 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1405 x=156 y=447 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1406 x=214 y=0 width=12 height=19 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15 +char id=1407 x=270 y=401 width=16 height=12 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15 +char id=1408 x=408 y=205 width=10 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1409 x=13 y=375 width=11 height=14 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1410 x=281 y=442 width=9 height=11 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15 +char id=1411 x=147 y=0 width=16 height=19 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=15 +char id=1412 x=164 y=190 width=12 height=15 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1413 x=234 y=430 width=11 height=11 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=15 +char id=1414 x=165 y=0 width=15 height=19 xoffset=-1 yoffset=1 xadvance=13 page=0 chnl=15 +char id=1415 x=403 y=135 width=14 height=16 xoffset=0 yoffset=1 xadvance=13 page=0 chnl=15 +char id=1417 x=455 y=440 width=5 height=9 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15 +char id=1418 x=164 y=468 width=7 height=4 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15 +char id=8192 x=289 y=463 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=8 page=0 chnl=15 +char id=8193 x=507 y=349 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=16 page=0 chnl=15 +char id=8194 x=507 y=334 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=8 page=0 chnl=15 +char id=8195 x=507 y=339 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=16 page=0 chnl=15 +char id=8196 x=249 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=8197 x=244 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=4 page=0 chnl=15 +char id=8198 x=214 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=3 page=0 chnl=15 +char id=8199 x=507 y=439 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=15 +char id=8200 x=507 y=424 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15 +char id=8201 x=219 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=3 page=0 chnl=15 +char id=8202 x=224 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=2 page=0 chnl=15 +char id=8203 x=234 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8204 x=239 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8205 x=264 y=464 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8206 x=269 y=464 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8207 x=274 y=464 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8208 x=182 y=468 width=7 height=4 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15 +char id=8209 x=173 y=468 width=7 height=4 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15 +char id=8210 x=79 y=470 width=12 height=4 xoffset=-1 yoffset=9 xadvance=10 page=0 chnl=15 +char id=8211 x=121 y=470 width=10 height=4 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=15 +char id=8212 x=21 y=471 width=18 height=4 xoffset=-1 yoffset=9 xadvance=16 page=0 chnl=15 +char id=8213 x=41 y=470 width=18 height=4 xoffset=-1 yoffset=9 xadvance=16 page=0 chnl=15 +char id=8214 x=413 y=20 width=8 height=18 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8215 x=57 y=461 width=12 height=7 xoffset=-2 yoffset=13 xadvance=8 page=0 chnl=15 +char id=8216 x=142 y=461 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=8217 x=128 y=461 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=8218 x=460 y=451 width=5 height=6 xoffset=0 yoffset=12 xadvance=5 page=0 chnl=15 +char id=8219 x=149 y=461 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=8220 x=82 y=461 width=8 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8221 x=92 y=461 width=8 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8222 x=361 y=453 width=8 height=6 xoffset=0 yoffset=12 xadvance=8 page=0 chnl=15 +char id=8223 x=102 y=461 width=8 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8224 x=417 y=153 width=10 height=16 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8225 x=405 y=153 width=10 height=16 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8226 x=10 y=461 width=7 height=8 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=15 +char id=8227 x=445 y=441 width=8 height=9 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=15 +char id=8228 x=200 y=465 width=5 height=4 xoffset=0 yoffset=12 xadvance=5 page=0 chnl=15 +char id=8229 x=133 y=470 width=10 height=4 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=15 +char id=8230 x=61 y=470 width=16 height=4 xoffset=0 yoffset=12 xadvance=16 page=0 chnl=15 +char id=8231 x=7 y=471 width=5 height=5 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15 +char id=8232 x=507 y=359 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8233 x=229 y=465 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8234 x=254 y=464 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8235 x=507 y=434 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8236 x=507 y=429 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8237 x=279 y=464 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8238 x=507 y=354 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8239 x=507 y=344 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=3 page=0 chnl=15 +char id=8240 x=423 y=222 width=23 height=14 xoffset=-1 yoffset=2 xadvance=21 page=0 chnl=15 +char id=8241 x=49 y=178 width=29 height=15 xoffset=-1 yoffset=2 xadvance=28 page=0 chnl=15 +char id=8242 x=407 y=453 width=6 height=6 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15 +char id=8243 x=331 y=453 width=8 height=6 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=8244 x=294 y=454 width=11 height=6 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8245 x=431 y=453 width=6 height=6 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=15 +char id=8246 x=351 y=453 width=8 height=6 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=8247 x=281 y=455 width=11 height=6 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8248 x=341 y=453 width=8 height=6 xoffset=-1 yoffset=14 xadvance=5 page=0 chnl=15 +char id=8249 x=420 y=441 width=6 height=10 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15 +char id=8250 x=402 y=441 width=7 height=10 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15 +char id=8251 x=45 y=311 width=13 height=14 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=15 +char id=8252 x=351 y=385 width=8 height=14 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8253 x=250 y=385 width=9 height=14 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=8254 x=93 y=470 width=12 height=4 xoffset=-2 yoffset=2 xadvance=8 page=0 chnl=15 +char id=8255 x=214 y=457 width=17 height=6 xoffset=-2 yoffset=14 xadvance=13 page=0 chnl=15 +char id=8256 x=176 y=460 width=17 height=6 xoffset=-2 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=8257 x=372 y=441 width=8 height=10 xoffset=-2 yoffset=10 xadvance=4 page=0 chnl=15 +char id=8258 x=329 y=136 width=18 height=16 xoffset=-1 yoffset=1 xadvance=16 page=0 chnl=15 +char id=8259 x=492 y=448 width=8 height=5 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15 +char id=8260 x=117 y=375 width=11 height=14 xoffset=-4 yoffset=2 xadvance=3 page=0 chnl=15 +char id=8261 x=503 y=0 width=6 height=18 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15 +char id=8262 x=453 y=20 width=6 height=18 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15 +char id=8263 x=223 y=241 width=17 height=14 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15 +char id=8264 x=448 y=318 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=8265 x=462 y=318 width=12 height=14 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=8266 x=172 y=403 width=10 height=13 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=15 +char id=8267 x=280 y=155 width=11 height=16 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=8268 x=497 y=437 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15 +char id=8269 x=477 y=438 width=8 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15 +char id=8270 x=325 y=441 width=10 height=10 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=15 +char id=8271 x=263 y=401 width=5 height=13 xoffset=1 yoffset=5 xadvance=5 page=0 chnl=15 +char id=8272 x=26 y=0 width=17 height=21 xoffset=-2 yoffset=-1 xadvance=13 page=0 chnl=15 +char id=8273 x=389 y=20 width=10 height=18 xoffset=-1 yoffset=-1 xadvance=8 page=0 chnl=15 +char id=8274 x=280 y=224 width=9 height=15 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15 +char id=8275 x=156 y=460 width=18 height=6 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=15 +char id=8276 x=195 y=457 width=17 height=6 xoffset=-2 yoffset=14 xadvance=13 page=0 chnl=15 +char id=8277 x=435 y=400 width=11 height=12 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=15 +char id=8278 x=361 y=441 width=9 height=10 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15 +char id=8279 x=251 y=456 width=13 height=6 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15 +char id=8280 x=26 y=435 width=11 height=11 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15 +char id=8281 x=39 y=435 width=11 height=11 xoffset=1 yoffset=4 xadvance=13 page=0 chnl=15 +char id=8282 x=451 y=384 width=5 height=14 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=8283 x=198 y=0 width=14 height=19 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=15 +char id=8284 x=176 y=258 width=15 height=14 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15 +char id=8285 x=256 y=401 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8286 x=249 y=402 width=5 height=13 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8287 x=294 y=462 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=4 page=0 chnl=15 +char id=8288 x=299 y=462 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8289 x=304 y=462 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8290 x=309 y=462 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8291 x=314 y=462 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8292 x=319 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8298 x=324 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8299 x=329 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8300 x=334 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8301 x=339 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8302 x=344 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +char id=8303 x=349 y=461 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=0 page=0 chnl=15 +‰PNG + + IHDRôxÔúŽÆIDATxœì½ˆ_Ežïýòi’%>´—øâ÷—x‰—q‰‹>$—΢—¸èE/æ’, +݃^ÌE³˜A³|3èb.º˜A—q1C÷0º˜Å fÐA—ΠbGTâ ƒ‘nIDƒJ"‰IÂçùã]uÏéÓuêÔ9çûíNôû†âÛ}N}ªêÔOU}êSŸÏfÆ 0À ðÃÂÿÑ€fp]Ë|—w/§N àf`QBZ]à`Ø¥{¸-±7»¿—»²ÜH[†ë€)àA`¨EZkc.¬,‰³•½裤µCJZK[Ð/uithV§]ÔÇòa¬A:÷ÓÀ5 h=–£¾Ãýdýz)ð3u°©â®>Ö7‡IïW®|Kã/£úûóhÚÇW/¡öz õå¦B|åà—æîÿ;¨#7£zúáþ{{?AùXÏ£mnK¿ñ¹cŽö4â½O ¾”Š:}4¶å¿ƒ¬¾‹áæ>äíÛ?ÄWö1ßed|sî˜3³:aÈÌÞ1³nM::fö¬™}kf/™Ù½fv™­pïV™ÙÍföˆËç˜û{i$Íe.®Ç+f¶$±<‹Ìì°Kÿ 3{°áwù°ÜÌN›ÙÓfv¿™}æ¾±IZKÍlÚÌ6˜Ùfö™ âM¸xmÊ]º®N;=HË\YëÒ­0³7m6š”gØÑåCj? ÕÉh‹º˜6³©Š8Kmv¿~³fy9ú§kÐl2õÙcfvM º!Ó¸{61þTÂ÷çÄÕïãKÝ·L›xÈAÓØ\Ó ½Šmñ‘™=äêv:÷,–v7G¿!ðþÙÜûÑ„2ùô6™Ù}îï±ß4ìâŸ6µ÷m® 'Ð>îò{ÁÌn4¥Õ&þyÌÒÛ¶IÍ—¿câßoZýñ<á¾áMËú£oãnò;w£‰ùú4ê´ù”e˜*¾¿°dÕÐ> <¿¸ +¸³bÕQ†§€Àp´$Î_¤ Û€Àÿ(‰ø ´C8I7„ï€ç€€›€+jЮ®Nϸ|/~ââü}+hÕ?\|ìÎFÒ?\Kö=/£ïû¡a'j—ëQmm˜Î À=ÀÕÀbà°µ×§5Ò™öï6,G*¾¢Y¿î;Ð÷><¼ü"‘n3ê£PM¥»¸íJRèú€K€Ë/{8ä~ÿºfZWQÿ;üCîýÀ.4F¯&Ì;=fPýü6÷l¸Å¥{yͲ}Žús]|ÆÔ“®L»Ýóut·¡:xøÛÜóO€÷ÐøØ^£· ±˜Ç2ÄW¿‰Ð}íÂÄ+cuÃæí(ÛUèUÞMQ·Í v=U|Qvð*a1úíî÷í™çq šS™Ù!Æ]DQ¤ò©Kwð´{·6’öZà—hRÙ\„Áª„rÝŠ:ʵh1ô$þ|›lòøwàçîï'ó¹-„vVäñû/ö¹ø€ø¾âà8šŽ7Lãq´Ð;¬GLöÔÿ@=‘å'Àï˜ø~]§€/Ð}Þ®i~ýÂfÔgIºÔ¤­D« }_ì0W;½Sw+úÞ…ç÷!iÀ$:JÙH½’è]J&j‚Í.¯Ý.­éö ȯ—ç!ß Êg]F—Æ¿¡´ÐçÓècì#M‘£ˆEdÊ+¯VÄM½îý¹^c啊üćúƒû )_®¤úÚÖonÅzÂGO—¹ßØ@÷b×ÐqÑ­èXëÞŠr<ëâõ‹Ð7¾JùB燀Sd @Ђî}“ýLI>îIÄxÏ Mèo¦(ƒþ/2½žK3>éþ÷:#iüΕñN4¦ž#ýxÔŸÁï¼û-l®@ã¸×ô3î·XçGÐ7_È £Iº¸ ߀ô£6“-ÂÊŽHÛ~?hL]Aø¸'ãè»·¡¾9žH· é‰åÃdŸó½]ÜP|³Pg'¿»~í¨cÖÑ@#M£Nu'ZDükIÜGÑ}דÀ[4»›<„& ¯Aú"íe\Q?¢ +“Hrp{à¿ÅPœÄë ÎyÛ6Òr~‡¾µŽ$'t#æ"ÄÔªv”—Ro±U[ÑBfKŸÒ?_ð9sùLY:âÞÛí÷û!êÃ{QŸ¾Mmá'µ”q7‰ÚôÒ'€¶­¶ôGÑ™û:fo^΢³éOÈC!„ä+ÑhZÅä½’è]‹Æûë‘81¬Fœ=hãû2s;ûžçë˨§ }®aÅM¢«(u°Ç…½d;‚àj—‡¿îtœrMØnBèZÔ˜#¤¯û?¢]ùxàÝõh§ˆI‹ °‰‚wÇ”JA“/„w}þYl÷“BQa 4ÀÖSÍ ·ºx!Ô]„å±-hw¢ÝÍ÷ mê¥ +gÉnéäûÞµh‚ù£ûß÷å#ÔÃö“.ß×I?Jk+ÑjKÚÁ^B3ÞW‡KßÝ‹Ž.óݶèEù!»Æ¾/'†q÷»'÷[¶qê%šæ{Ùþ¶øÂ/.CŒÿÒ2¾¿AáÆí½ôN´Ší¨"n@ûSt®øßÑê²ì*ÏÄ@þ1ÛI› ‹xM¦¿GgÛ7Ѽ#ÆpйLöêºITÅáHÄYUÖ“ÌÝ WÝ-aú†§˜{Åc%Ò~—ð]\¿cYOyŸôgh¡ÝÀQ´+©ºçûž‹WD¨.:ge؉˜]Õ•Ñó ¡zYxÖO¢ÅáNTçw¡q—×.÷‹¾ÝôFŠéuYR®«~ü9ðŸïn@ÇOE´•hµ¥Ç=ˆ×>NvmzºZã13î÷b´0ÛƒúB^º[·-ÿ +tSàv´@,»òxåö†ý²…Û^ê”aÞóõ €·Ñ™È^ĬëÄñAŒvjè9ç }Âå¨=Eû]ÒŸH9ôý_1[ºp”l'QŸ¸|òÿ÷ÃÄëhqq#œw&F~uªdÊL›]Z“T3Ê×Ñ ~Ðå{ ÍÄ«Ÿ õUHð Y»ø»ÜÜÿã‘tv!†ó@àÝ2—Çš_]‹¡X«¨wŽ;j³âùð(åJVçÚÖK +~ƒ&ûmˆ=åòx2g+éÊ)ðý³­²æ„¯Á͸ߦ­¶ôé‡mAüþ}¤ôw +é©|‰6 ¡+Ÿº÷ëÑ÷]…DØùþíäûûPþÝ®lÏ׸…r©ßM.<¿ðâøÐÆ©æ?ß„kuÃJÓ5ûvèZÅ”»‘¿ +6êÞÕLsØtÝè`ŸËÞä;;%ï',|Ícµe×!Íýý´û{´"Ïç-ŒU å]b³Í¦šÉlªYùµ¬XyÖš®ìœ.¤yÂ}OY½¿ç´+Ç2ÓÕ™µ¦v>aá댽¡ºø¥¥_üeáy7—N7@7åÞ…ÒsïÆÎººõ2aá>>U?†Mý«xUt‰‰o¼PA_'øëimúÓ—Fè*!¦k´ÇLftCïtô·õ‰>–šÆaÊðG]ú§mî¸_fºøQ$­6åO)ãrW†‡JÞç¯ã†Ðô +y¿ò²È5À^uü…ÝÜÇw ïFÝó§­|0lºC<– þnqŠýþÛLŒé KŸr4÷[ºÝjÿ’÷VÞÀC¦…@Jùšä #ôßiÖîþp›ò ¹:?lN›l4­›ºu1j™-‚i«g ?î5-ZŠ60Mffa›ÞvxÈý|ÓÕ­— ë­¿‹!Ë&¢Ñ¥¹Ä41½Ó"¥¦>úH$ÎÝ®ÜÝÀ;?¶ò ²-}(¼âÚ'epexÄ ò˜Š~”?^²rŸË,ã@øÈåß$ï~å;åê£c{)½èø º&³¹ hÔf£H;dêlE|ab\Uyßeê¨?3uþcwX„izд`˜¶ôÉÐïž;%ï'ìûí ¨—åYejã˜á ªp¯«ï:ÎrŠaÚš-™ŒÜUòþ~W?·Þ½hb"¡~:ßtuëeÂz×Ç»–!ÕyQJð Š:;çbxÞ´¨ªšHÛJ´z-;aê Uñ–™úïã&ÞùE®-ü·2±žú!Ñ»ÛâN·ü¢¶ÌhX×½‡…Êw*WÇSÅ÷±BÝ›ø!+M™²úkº*kB·Ò$â ‰T¼E«¦ƒõnÓJ6ß~'¹ÌÕ݃6»#>m3ì˜FJ^^_Ö9&l°¨Cд{.³ ˜Z†Ñß1mÆjÐÝkšXËÞ{xŸ™úçûN_æ21á|ÓÅêe*ð|Âz×ÇW»:o³€ …Û,l•05xï|)’Á¶­^JÄV™ølÊBo¨GõÞ/‰Þ&‹oZÜúÞ +W–Øï|—Y&)˜“ÇfVT X´êÇ‘‚ÇUÄ¿~Ffÿç‘x [óBNÊ]rï ð åÞCBŠF3ÀßÞwÜ»}d +j— å’CH±¢‰VðG)»\‹;~Ó ­åH!s}Ë)‰·i;ÿ[ƒ<ª°µ¿¿wÚc¨nêZìeyÖ E×ËP¿ú§ix-þwiîèV²¯“®¼z#?_Eâ¬@ŠnדiB‰”!wRÞ¯ç›.„[‘VxñºR?ûøü`Q\ £‰ñC²É1ÏlÆóË{¼"óÔV6Iy¬@×GnAŒïUÄH¡Iþ"¤Õ-ÒqexŒ8Ó+â>dJòzÊ'Š»“ +]¡™fþuhñt=b|÷¢ÉæÇ ÒšF‹’—‘ý¦Æw`€`B€E”›¥œBW8.(<¿Mæ—DhóXŠ&hoTgMÄ'Ñäh§örbzElB×Hª&Ía´£<Žî[Ew˰ð¦`€ o-bø íöÿ[àݪ}I0À 0Àçb¾ŠX‰Îáv”¼Lþ 0ÀùˆMÈÇÇuñî^A’Ã¥À;ÈÂ`V¿>BGzÏ7ز ùµrá-—_RËß”®ëBUœ˜À"¼Á±Âß1ÄÊ»Õñ¤?u I¦CXäâ~D¹…Ðe®\ʽ•N¸r‡úM)X6ßkÐaªýÐ,¢ºzù¼™ãs¦ÎàB¤ìW×Öþó?óá#à!âvùoFºè\b ðð4q×½w#¦èó<èòŒÑ„ÊZgÐ,¡z0—áWæ #¦ò *ß Ê™÷"˜ÂŒÚÐÝ|€êì[¤d»"!Ÿ"–Rí’Ù£ÎdSwÂôHmÓ Ú{a\,Ä݃Ì|ǰsz%ßSȃfw ý&ïýîÈšÛëdæs‹8êÞoDV SõªRËß º…BUyß@ÇлP›<‡Ì­‡°)¸Ÿ¤ÜyÜsè8z†…÷Âù™§ÛgPÿ¨ò\ù)ú¶çÈL.Ïí«=¸’ñC +7›®$¯¼,1]yzºä:G×]Ó螯5Ý[ý „.Ó‘üÖº¨‘—ï˜îfWÅ[ajÏ2;ŰÔf[ü‹ÝunÒ¦Öîzà"—GöÁdµ­Ê–Ľ¦~œ¿ºu£«‡X]¯5³×LÆ]®«È£iùSèÆL6 V›ú~×ýý‚…­¼vÝ·uËÐqñÇ +·ùÎa“mϬüšï*÷~©ûû„…møës‡­ÜfÇ„+wÕ÷5íŸMú]1¬1Û%¦«Ë³Æ_¯ +Ö‹p¿‰™ [Æ8bŒfÈÄ(·ðýÈ®‰‘†:B×5N̈P¨á<]'÷,?A–ÙMÑUMþ¾僙˜hþÙòÄüpy}[R_!ºåŽ&Å¸Æ 3{+ðü‹ß÷yŽZÜ|l(Œš|Õ`…g+ê"†M}åVcŸJ YjǪ̃ ]±­0ÝE7+_Ôøl>üÒÑT}SÓÉÆ÷£TÆ5jém:aíKë½W×%ï2MüoYܶ@Óò§ÒÝljsoëaÊÊí_t]™;5ëbÌÒ©ß¹Ôâ6 † ï—Y|œM[ï¾®ò8lZ\Ý–ûÎÑ@¼:‘òwcqêôuÄk kv"ÑÈÖ»[‘˜çKâwµ/ÐÖÁrtÛàrt£!õžòtÃáºUQv[á“BÕKþY•((CÈ£ÖeU‘ÎÇP­#~]ᜠ¼û=qס»Ð-HT5Bºcï¸é+ä˜érâ®BóØæâ§ÜS?…n‹üÕŽD<¾re»’zöRéFÜoþºê)÷[æ,å*dßã +G?‚úṁ{· l]|Jú5Ö6m +½Ÿ-y:2Y…n}BÖÞBÇVe¸¿:θAL%–Í;×z¿äýbtûéNäèÄCîÉÇP{ ã‚ª£3\²ñžÄcgûï£cŒ‹Ñø~—öŽŽêb”zßùú®2|ú–?¿?Js{m±ŽlnAsß$:ÊX‚xâHIðÎÍŽÿÞ(Î¥ÀWÀ_ ÉéRàÿ£ú*Þ?£ øa²sµåÈvÀ»”ŸïxB €2w³1ø ò2ÄDS ÜÜŠÎrÞE®3çó~ÿ²·PÕa®%óÆµžj½³¨#Þ@øÌ:v­ô8bÂß¡öþÄýŽQ=ØoGõèòˆû?Æ=?‚Ú!ÆÄýdq9ÙD{Ô•¯l²%ÓeøÒÿÕDáËö%bu'̓›Çf௽Š3ˆéüUÍt>}†êÉ/?ÉQVožæRfÛü8Šê"61{tÑFbå¶7&Ñ„rgáùTež+ïB‹Õ½hò€û¿èr» +]ÚRî}ðÇ.üø_®Œ’-Úb1™¦Ë]9vc·¢Åî^ÿ1Äö¢>>@{!ÛÈýøZ ¯Gíôs7Ÿ >±ÅÍ´¸²Z4UÜé «€!ÅÜÿuÝ–ÖÙ-€&/-BƒìbT‘U»»‡i&ÈO×’>ùoDƒêš,çËÖÀ"Ô®W’fEï²]ïŸ*âzlFòjûg‘‚]ªrY]4aÈui&©?Y„Ví~×óßf‚Y‚˜øV—ªTh=šp«”œæ£ÞšÐx ¡ÝvÄ~‰ûúŽÛ™­`8Ž$!“%tÛÑèoјø-Zh\Rßcð8Z˜.Fã>¶ã\†&ØMˆ?}NØ5®—–Õ‘œù[\¿EÖ'Œ›q÷ ü:÷ì×hcözE>½„OM$„ç#~…¾õvZû¨ÏîAco;í,«uEñ Ídþæ?tÜ‚ÄH©¾ŠŸG»€2ñ]Ÿ’ùßijÛI»­°ß…ºR€gÐ`ZŒv‘¯ FU…Çèm¾&ÿ2_Ý;ÑNªÈ`CøI6ÖÕÈë 48ÇQ_¸™ˆ¡7WaŠhÂëÒ4™,Š«öãhÂÕ } žªã‚<žDƒoj¬uî·JÚñ!šS&á^ÀŸ1]êg=i“ú-hbx‰Sñ5j‹¡ÝÃÕˆQ=ÅÜ«…mЄ!7eâu'‹ýeh(3/Ý´l 1âb +»P߬º³ý:ßoFãvIlzY¶&õÖ„æ4iîcön5†ß¡±è7,›(“2\ê~CGgUí³Å¥ýçd—'#ñ,­^†øØ“¤Á÷Ðx}€rÞYUÖÎ ø#¼¢®Öm¨?Aã¢5b:©¢x¿s~™ÙÊ^g‘èó8êø!qF›ÑªÇ/&nHÈ;_†+Üß¶ï_†ß#ævéâê]ÈÂOÐdwZè„DiylDÌw:ïí7üÓÛ.ï/QýV-®>Gmæ›æÿ¶Ëo1:~èš0ä¦L¼îd‘Ç­.þ$ð¯‘xm&˜³¨ßþŽlˆaÒ_¹õÅI4~{Y¶&õÖ„æ’¬lDÇ©‡Ý¨wЂüåRCÿí!‰Gl‡ø¯hB÷:0o wŠ®¿Ç+g +ö¢2öJgà‡Œß¢¶KUí%Ξ­Bãà Z ×ñSв@Qü×hÇÿ×ÌUö:K¦Á[¦™ì1Žó6$²OÈÛcbT;ÑBàá´ Ýübªg^u¿U“ÜI´°™ÏE€Ç×èû.#mõx1žhR©*ëÓ„™¯gš½HMrS&õ& ¥hÀ¢Zs¾MÙŠøõ娂{j×@ Ù_ô¡lMê­ ÍOÑbávÔWS“ˆÏ<†¤b±EƇ¨Öž¯¡úˆ&a$,SÂõçÿ>xIæÄô}º—×(SÆ€˜}\±Ú=»±é×ÅÌä¹Pð›Y?w.Aýú"4?öÌênhÐF_Ä2²SLZÄÅ^Aíe´ÊI߈ »€¿wil%Íòš‡Ÿm!Ûñô ß°p‹€gЄ´´v=JzY=³ÞàÒFJ€ãHª—¦¢›0ä6L|’ôÉÂã&—îåèû¥|RnS¶¢îÊ•hrO,F;æ¢X¿×e›¤~½5¡]ÑÜŒøÆsTK½ÎÁF$Ɉ)BžEýÿ&¤L»V¯ˆÑÈwø¼:¡÷Å»ÈÞî»ßõ¥ìN1 ØÍÓ–Öé_¬ø¸˜ùXð ·Ê¡Ö|bí˜Vîo¹¼Š’ˆ²ÐtBnJ—2 «Ú(e1W7¿¥–Ù¿Î¥?lY§µ}Çê1ä¦4u'‹1“}ý]«LÒ ¿²_Ô£²M¸:ªÛ–7[ýEý|Ô[Sš&}|ÚÕÝ[‘òÃÉ”·ÕÂ4Ë&ܵ–æø(%ßÐó%–m´Ì•+欫,L%Ôu×Ê¥©Å°Ê´0©ê_Wî1K[,·Lš2x?êÞ½iq ©ñ¼ ca?Uß™òM Š­©(“hØ‹+îK,À2ÿ¥\eçÃG®LeL3V›.Ÿ™¸¤ ¦kׄo-}€`Í'ä&t©², [\<Ü6¿¦ö÷’3µùƒíQ—!7¥™vqS'‹%®<³:mšø­¨“ºe›pñê¶çK÷æ7ŸõÖ”¦}|á.03¯p3R¾Ù…î{¼€”W®"|gØÑŒ#…˜¤û—¾)ÝB؈G)Ýl$ÝÑÎR¢øi¦§9”ãêZVê ™C¤[§ZEæC Î]Φt 0À 0ùÀ‹Ä½œ=‰L±i7_ìè‹WD†æë?h"ÑË›—ôWcöÿ5R¶VxÞqÏ»éÅPF›:¦L7;>°°¡žºa‘é6ÉÓ-Ê5í¾ñ3{Ȥ Ì=‹]Uí‚™®åŸ-wq§ÜûXY†,»¹Ð5i¡¯6³Ÿ¹ºû(! _®ÓŽ¦ì¦‹·M‘z£%¼¢G\z¡¼º–¡[x7êžâvòÞdjóŽéfÄjÓ-„k”ÿ6ÓÍ•®Þ_¨A[ÕŽ™úÕZ _÷Š…ikf˜Ë³rãa±0áhcm”–7øfLü cêGKÜß©}³ëÊù‘©OçyKo.”}yE|¾–qpùú¼†­>lS˜ÆÔk–ÙŒ8lâ=Ë#4Áo‹y<ÑV´U–æ9!®ÉÁ»ù͇v+Á ÇÑqÎoŸ#IN•©ÓTÜBXÇ$„.ÙNu­ð/Cßù_›!S»¢Û$eþŠGZ EÑü³˜¯Š"¶ s³[‘ Ô?¢2ÿIÑR±Ü‰ŽÞ&)7Eû1úö‹ÉÜäÖÅ8j×í.½˜ÙÛCè»zµ›ò¾9>Aýö=¤'TÇé¯P}ŸA7‚vÑ)ÀÕ¨­žBǘ)ÞO›bI{N¸p·{~ âY†$Z×õ± Ò÷ûh÷ñÊ'˜íü§ 7 ïq2§R¡#‘TàÝüæÃçQŠ0üâ&?q~ž!}Êì+Ž÷»w)G7’‰|O!…•3̇Tùð×PŸa®[Ý£d:,Û˜܃®™†Õ쨑Ž×©©ò•áó©ZxÆ~ŒŒ1DL"õVLÆœ‡?Úx˜¬ÿ|í~Ï¢EOìhãqf‹¼/ß ·Áß ~sÃl¨(Ïè8Â×Í12±mÊØ#;î9H}xÛQ¿y-<ü‚ý&Ä£®$ãW+*Ò©™w£ÉË;{qåyÎýrTT¤ñ õ¨oí þ´ß…º‹Í¶åo‹¶púÛP}íB›Ÿß£1ñ+´¸^Lº7L¡¦èâ| ME[½×Å.Öþ ˜–‰ÏÊhCÁÓ y+Š¨Ç—L"ë”ô_2!¬ui=oaƒO¡ú|Í$&\j!›ÅM^´4ิ¦JÞM¹÷e´KÝû˜ú`E¾_™¥Ù2‰û¾ˆÄñV<_°Ì +áj“A¥c‘ï õ­)›-žuïÆqCiu¬ÞÑF(Î.2km׸÷ߺò–™XÆd„ÉÌìY“ÅÉŽû¦‰Âw•oõ5Ó±XוÛçÒ~Çl¶_ßòÏ–¹gUæ•§ln_Møÿe6—›DÉUô¡c¼î?°¸¯®K£cYúï­ú†6åÏç›R¶XþE³õ©ßß–þ+;rxÄ¥sê·y ÀJ¤Yz`àß…­îˆ¼«ÂRdhíDS\ÿæËtíPC +KG˜ën)&¬U–¦ßŸBâÇOÈv4Uižë8€¾k}áùµhuNáÝZiî§2Q×÷ì$á[&!#J;Èÿ™¸ø´ …ˑDzÅ´6q¿G"qÊü½‡Ò)znóÇLùþt‰;ËÜïúÁ“Héö7¨^ßþí.˼¸…ð’l¯ŠX‚ºGï'si…°í×#åã2Ca·"ÉГÀß #eŸ )ÂH󰶉i×£c±Ÿ c Å ´ cª‹]ÞæÈÉܳ£HJVukj„´>VÄ6—_™¤ìS$¥hBÿ1ªã+ˆÛ“Éã÷¨ÜCšBhÛò·…ÏGàÝÇHRûþ6ôK‘ôu2IZ^‰ÿú’÷sàBo's5´/Eƒ¤x®y:Ë;ƒÎÏR1Œ4·gÈßFÊo „ð'4¹Œ8ºªóÀ!$ñZ“¿›§4;˜-^ÿx¨$îwh°ŽÙb£õ¨Þeöàj4ÉîO(‡?ëoªûïhâÚA&¢ÝMvÅ´vº¸©þÙg–ë†tE\ä~Sõ+bßÕkÆX—1Q÷h#ÄðÞF"ÑÛ™+Ò\Æê>WÖ¶£º)sóý âšü´ÝÍì#”=hñœ¿pKé›_R-⿌úý×O û‰ë€”åéË& ïÎ=yBcv1ÕnØÛ–¿-ÚNÀmé/s¿±ã*¿)IÕAšÅÌ~‚V©£óÓÝ­ˆéî!]©Ëc18›Ñ‡^…Íäk¼Ê/·Çˆ9<çÂ-”7þ“h‘±•¸Iá~¤9ߨEvv!*ßvÄ|BÖ÷£IþjÄLW‘íV.c¶$e½û=PQ†Ehçö:Úm5Ý•ŒÌ3_‹˜â$9# „÷{i$ÎÅ éÄ$!”-<p„lÇk}Hç²~Ÿ<9|ŒêçªÄüóH-[”åŸGlnK”ìæÀ¢z/­M^†gQ»ìŒ´܇øÒ½ßAv%¨¨dxZÝ\xî­Ÿ¥ÞáqeÚJvêï ŸA #ýjDÿÒ\(ĘqQ`=ÙDó5b€ëI?ÿ_…˜â>æ:W*S¬’üEí0‚$·¡É¾ƒ®0>Ž9e;É^ã1TG»‘"ì"2+…[H_Ð>‰v×»4î »"6ŽvËKÈDÝ“4fÜo?c +c.¢WG»]œq÷ÿí¨?§è–̸ߔ#™2|‡êýz´ø_„†ý$½ ¯GP¦°]_ۇƗ漊'¿“°„m õñKÑ8<ÉìÅÝ~o’°EC?¬cör–lž Ð…èË®í¥L@eíý0q>Õ¶ü3”[õŶp/&ð]¨/‡äËP;Bñ¸.0ê® lñº~ÞÔ†)c£×å¯ +Ï;ú²kÞ>ÿnÉ÷Qñýmé}O›ÆÓ2Wk-»½¶„®ª›b¤E¦Á8í*a©ià™©s¯p¾ijì˜éAü‚!vO7üÝÝÐF†]…½åÊ5d2k®B|C¾à*§I«iúJo‚éHz¡GŠAÛ韑Œ`€Î3ø[Û¦ïÒ'±³hB¼M0!3¥^«²WÞä<¶¡…ÊêÙ¸•sç<¥Ù?¢ÝäÒŠ½ø€¿g0ù0À ƒ—´A]ca®•¶%èžïnä*ÕcM˜w¢Ä a£:Ñâá/Úr€`€¾ÇH™ÌgÈm.ûíød0çv2—³×™™½-¶¡»Ï¿D¢ë!ä&ôJ´x`€8—à]i‡Œ+ºwÝÚ›Ñ1_Èšw°vG íre\vrN6QòÞ£è:ú:μ›ð=õØ÷zLŸ„VŸkA¤ÃÈÈU ¯M+цҀWнù軋þoòX|\çâ½FµŸ˜6}£ˆiÂvB)½’ü³Yf·{±ØOÜ Ëdìâúðg!ƒ¿A¦€¬¸M }•õZ¸^¦W#摺ZDsù>¢ “ïí£Žî8³'µC”OjÞÁVæö»[Q?þ’Þ)÷Æp/Úô¼Ž,•YZýúέÌå kÐw>Å\ëª7£qýðß™ë¹ÌgH +¶QíÉð_Ñxº‚jOŽ¿n@SÄb¤}µéb$Nqf÷+Ô&gȬÁ6á­Mà½Íö } ¡ÏaÚâwbC¡kºŽ5lºêtÐÒ …øÐôÊ’7 3aº’¸Âåý™ ©ÆFü•²gÔ™ÿnÿÿrkfÈfeFpF+ÒèºïöVÛòw«GÝ»1Óu­NE¾Krq–Yú/wý‰À»Ž+×–v•ÎßorínØÑ.Ê}Kú_hú|¿izß».­·Ìj;L}g,B?eº²èïa/7]A~'Ò†]—g'ðnÔ½ë&Òú¾÷Zb]—ÙHñß«»×\œ˜ý‚%ºØ÷ú0áâT•¿ œ°vW£ýo3ÝÁ}GÛ2ÇêjÔ½ëö!ßb0«˜ÿú­p>â)¤Õ­?§ž;Ô¥hçq†°/ó2܆Võ»ÐJü÷hÿ+´ +\Œv”)éuex Fþ7 Ý«—@@G1©/Áxí¾>D+Ø{ì—Aýâ +¾ëóØ€êÏeFgO wnpå?îÊó:ÕõŸ?süšÌ¿Â7îïo¨>ÃõG-ÇQŸrïCu’*òíÕŠ˗͇#HâòU}Ø;È)‹ÿ‚r‘:hœžBõ>„Úúb$¦ï·Ò»V¯Úùçñ™s!ß§nDW‡£\Ú5LæÐ+&ը땵šòǶðþmN!^ZÇgÅB•¹ïù~ßMÄ'GÑ­ƒËãÿB=ÇG›QÛíèoˆGÿßðÐŽÀ»IŸ€<öŒ|†ô#„Ç£ôN+.GLõÄ«&°¶ôû]ØJ³sצù{¿ñ¯SÎ÷¹ßëKÞûü_&°#Htùœû¿Ê}Ûúk‹dG#îwÒ=ûê#¶å_G¦¬´õáI¤CT&rõm·Ÿø8MjŸ¢>çÓ¹ -*ªÜ^CعÌþ:8ù941Õu°¶Ãýî$»Uu-Ê0â~c>éû¦ü±-ÆÝïN´Á«â£y,T™ûŸoNTP…:¢‡Õ&‘õ“s“ÃVßfû +“Ű2ûæeaƒÉ<ï1WîÓ&1þ–&Bßd™˜Ì\ÙV£üo9ï¸$ÅîõR—WÌÔ®·§_&æÄÚ!x1äã%mQ%oCßu´Wn³Lä5êþ³¸ˆ±Mþ)f§;.NYÅŽ0õŸ•Å^×_YúUqbÇ«L}y>Ú¿,ݧKòMi»Ôà}~¼YQù2¯µÙ~/:–ùÏèVК‰×xZ©V}ðtÞGB•¥Î6>9|™;‘8.N,&üѧ=]xv‡…-·†úöaÓã"Ó¼RÇ:mÝ2ÇêjÔ½ëö!ßb0«8ðtráMËÎHò¡n‡ÙdštŽYš=ó|Xd:+ôeÁO€/˜ƒxЕ#ZÖþ Þ3#Ï_0uЪsè^N@M'ðwL£ìlÐ;u*sÎÔ†¾ëÞurõæÏ2GÝ»1‹3˜6ùûEÇD m¾þËlàûücž¼b“J/ë/R⤌ùhÿbxÓÔBçã)m—¼ƒ)3“*ï±2ºwÝ +Zæ¿È´IIu°æÃ2›mn¹ªÌÞ¯Gg<±ïõaÂÅ){ß”?ú´§åIñòêýÙx§ZÏÖÈ·I™cu5êÞuûo1˜%êä¯ œBâ¨Ð•‚:h¢í™Gª†¦‡?CÝ:ø *÷{HûJ2Ü1ú6gðãîwOî÷Bª5kW¼Ï£Ìgu›#„¶"ð^‰Ð=v :);Óíuþ3î7¦§à-]Šä¿Ÿ¸¨¹ì<¹×õ×Ìgû±õ‡kïfÜoŠŽI »˜u''±kt½Â8û‡xÄEÔ»ö|”L?i’ê³û£¨¾®eþαów¿uùcCè–ÓvGW4Ë÷e÷»¯F¾ž¶M™›`^òí‡@ÞÀÄê(AmBg~¢…Hê58?n+yÿ)ºOZE¿#ð.å ~5Îà ÷l/ZPGò…ÞM@Mðeî7v6è•f.ï}ï¡ÅÖÄ”«Ð6ÿ£dçÖ¡û⿈äÿe$ÿzU3dçÐß"][–©ßïæ£ýËò¾,ð.¥íªp#£»Ùì=h3Ðo‹¼‰ô÷Ђ÷&ÄS0LÖ/7’6©?†ê1Æ û6üÑc1âc]øUÍ7”ïóPæ&˜·|{½X(%¨savš¤÷äž}ƒêã*â̤Îôzà][ÜVÑ FÛ]Ü)@/ò’r+ËЄp„°6yYþæ*ˆ…´ð{Uy%:ßO÷P½X(g1ÌDòïGûçQåKä1âÆq®C¾–¢Ýó‡d7@ò +ˆó¹SÞ…xØ“ÈøÒŠŠø[Ðw‰ÆõÆ„<žB}bÚ”Õ5ôÕmø£Ç%ˆîC¶R°õÏP¾W"Û ý,sô2ßõd†½æ l0ÂìÁ™OŒu–…ÁŸ ;0¿šÜÊ캻¥ð¾ »H›€öÞ·eÀ3î·©¢-}£«NW%ÄíEþO"ÉÓvà!TçCÀZ÷üb´ˆ -0Ëò?B6!‡Ú­Š>”ú;Bvd÷Ù ˜ª£4ß·÷3ל¨~:_íŸÇî·l|þ ªßÈ Ÿ8;èŠáË”/<òWþ|Û~…êì*÷¾)£ßAšåJï`íB´øX‹ŒxŠ·æi»ú³¨_lEmú!³ùU•‰Úæ.§òmËAýt+úÞ Òg^d^–ïxË<ÃܺÚïÞí ÜÄo/ê +dPo<# 0es•7˜ c|dÕJd ¡U¦Ô±¹èÔ ¥R[fRÐxÉæ*Ov\½}QQ7˜”sN›”U–¹úZkR:áþÑy垘fë§LÝá)+ノ¾Ì(Rú®{×)<_a™ñŽ1‹+µ-¿ïŸ]S[åñŠ«¿XÛUµ±/{ñûY˜”Ħ+âøücã÷¾ŠúëWù1ñ¤Ó7^3dfw›øò˜6i‰‡”§¼¡2-ro„¥É7&}]ºQG7‰³ÒÅñŠÒ/¹ÿcu –ßê¿÷Dày/øã„eJ€·ºôž·øœ²Ü}S“|{ÅÓcß35ù޹: ½LYØâ’À¡IÈ_c{±ae´½W6å*ÎæN ú|ˆM ž9–iHwÝû[+êaÈt•Çk#›eaUmÛ ðn÷¾[R?_¸r•¥ß–>uЄL?òïºôRËæó/»¶:áÞwúPþnIÚ~\½‰ãýîýCwËLZæýjÿXÙ¼w«–¾¼Uc¦*ŒF¾)µ¿Z‹|Ç*¾ÑLSãY¶È|ܲÉgQ® fñkTMËß ¤½Ü´ 53»«$N±üþü#¹ü¯«Q½,ÿ*÷ü„iWŸ:–›ÆÛAk·›ÅnÐqyV];¾Ë²Í´5ŸŒ|žM¿uÌѾi’Lß÷‚?NØÜyi­©”™Pþ E¾½æé¡ï™Z€|g…Ðé@Eçy,ðn¡EðØÂîÀªBÝ ½kê+¬žH¯íØFÑ ú²0æÒ*c0ýÈ¿ëèëÐ ™˜ò;6ßšÆÕY6-×Â8lÚQäãt*òﶨ¿^—ÿÓx®ã‹à­Ü·WÛT…Ž+ÛhËtaÎÉz8eõ -‚÷y-Ô¬*t­Þ„¾Æ2&z_|ú5  Â÷,ô꠿ƶŽÙ×ØÎ’i%ŸL _O³kp>¯ÍH{w=ð>Òœ<…´¸¿DÚ“1'›‘ø8Ò8>ƒ´6 ão”V`Ò4>DšçÛÀÿ‹´8ÿ©F>gÿ•£½ø?¿Fnz`€€ Ì’o©Ü¬d]&¨"îFW©¶ö>&Ö–=ýà'…wËЄ~ +]Ãë§·ª`€øÞ#E° Ø‚v°ï–Äó&F}V¹ç‹Ð]ê«+òùgG_v{1Ú¡&ÿà|Áa[ÞýòXb:%ésûìó Ýõ_|„Œ&=ˆ¬H–y`Œå;о)õÛºÈÆÌ0âù)7ÚÔ«²NïÔ Y |†Œ݈¬ÓVY¦mÚmòm¤ß!³pl>ƒ”ÀshžAŠÊ¬éË"øzƒº§ˆÀ 4hë`™–>F=Ëežî#´|-NSД¡y¬DƒÏƒ Àܼ„Ên¨Î^Cƒ;tDæJU1£š¶“/K“¶ò˜¦Ü@JMe“‰Ç£í88ñG$}}mÄN"C\ýÆSÈHÔqÄó?'óoP†¶e½ÍG»㿇ŒòìsùlD¦åû‰&yv‘ý]dÄê +TG[‘ô~.Z a‡&î’»&ŒZ\©³,ø«buîdûÐÔÃcÇt-fƒI‹þK¿ñK“Bè½&Müo-]3¼m]½`ºy²Ò¤X[å²Ô‡G]^Ïš®àu\&"eXda£!“R¨YæV´_íÔ¶­|˜¶j¯ÅÐÄóè2›}[ã•Äú©;¦\úÅç£îùXbž%é”õÛN$Ïn„~‰·,qñSëdØå¹ÈÑtjÐbº¾YçÚs›²bÙ˜©rûÜ´ŒmÛ¡Iž'L·`ŠÏ¯±7åu*ûûV›Ç“ûàÃVÏg×5ä¨5›$¦­>³Ãš3é¶åõyw¬ÞÀiC7l³ÀrKèËrq‡­ÞdÔ–¡½dºO¿Ät»$8 Á[¦+‹;V³½ü"ñ´¥ß`iÚNmÛ*OSw"XºÔzò7“Š–GÝóªö3ñ ¦…mY™».^'ðÎçÙÐåñ‘éFTì_rå µó.P~ѽ Ù:ˆ¹žžrïÊêÊ,\§eõR´6Ú«z)˯ªš~ß{Wæê9x}½ÞÏ',„h§W¨ë.äo`y´ÛCµúžAÇAa‘R9¾CN[Î {í©øÝy‰±·"Ç)8êâ>DŒÛãÑçäû úÞ“ÈÎzj¾ ¥÷0y-úö*lwñËœÚü‚°3¢¡¶½È¥›r|v#¿¾‹Ú©êè¡Hû™mùîÿñDZäqéÕÉ÷%täøyB™‹g³Ÿ¢~²ù<);ê)žå‡úÇYâGD^œ½“úGw#ŸÏåÒ¹݈z™þ8*ò¥®pylGbå2lA"ü"?FâýÂýÙ»=.ò°E¨Ï!sÀÖOx§cU¨[/ó³¨În® ¼êÎýÐÿН@ˆê í„ºŽÌaKòç¼§ÐÀ:CÚ9ïbN{s?…˜å$åîCXêâ{ouÐö$b,§kL÷Åçå=ZÆ©J°»\z/£«¡Ux1Üãh!<‚¾ýbt±~z>Ò‘:ÔůÐbðvÔ'ŠNaÊ0äè ÅÇÝóGêU¤yÿ« ïPêOÀߢÝ8å}ÿTw÷0ÛãÜ.ädmœp~Ùå5Ž ãèÊô“”ë›õ ++P»¤8¨ª[/3”;ê56#^uøx-"Kõê,ª´P›(MÅ4%S1„®(~Äl¯T~œÐ•¦Ž  1e2õßvuü#ˆ)ƒ`ùb)µÉ÷åžÚü +ûaˆëÐdÊ•q¹‹ýÚá>  a3šÌv—’ÙfÐΟû݉vHU ­¶-ó¸ í¬ŽyC‹áV$­xø4É|üyæÿžÑQg"h‚Ÿ Im$ª'W ~órà—Ty ì¡1pY$Γˆ?M")Ǩþw£öá¬{¿˜Ùmµñ©ÉÆ%N‡—Ö•fBZ½ÀlÝ>ÔY˜ÖÁ.ýqÔ—£¶™¡d.þ>Hv£|•ôÝl›ÉtªØ§8zÒ=0÷ÿbÂ×ÛäëEŽÅp!êÈgPÇ*Û=nþ+ð[G÷{àÇhÀmî*¡ËcÜ•o¤ã 4?DÚ!T§‡Pß<™@[Ç¥s «Pß<ƒÄÅ_%д9z8iCiA³‰ Åñs=™ûä™À;ߦõ¤dqŒ ¾[˜žE|ä24á´8ÑθߋÒ/×çE¨ÿ… vÑæèá|¤-¢íDÐ/x‘ÿ¥w^d~ªù/B’Õ+ÉÆ@ ï¡Ô8êû[Ðdçh\]l@›Ð\Òox}¤5éêÖËBãm2I˕ŗ~0Äç+É”]>CêñáÕ¨G¥© ]^Ó.ïcH±gmŸdw$æC¥©'Ñ·N¢•à¯ÝóOI?¿j’¯Gê9oUY^FƒvU$θûÝ“û½4ó•Ö‹o÷%Ц˜Ã®Â“hï¥|ÁWD›£‡ó‘¶ˆ¦A¿ñ>Z\xçŸèC¾3dzF^²šb¾dT®ß$ÒxeÀÐû]êëbÕÅj—×S„­Ò†0Cóz™/ÒæÑd"˜/œEü÷zĽ‚â +ÔO‘~ÄQþÌújÄÛÖ“®kà%.u$^p=j×§¢±{ƒdy*ÚÔË|áN´øÚ€xØ0ê;ãha5G"˜_\Š*ä×HÄ}Z1ÔQXhª4uêè^‘ç·dÖw¡ZĽÛ5™L=ü*üýyÌ·É9/d +€Å°»‚î&´8Èéx±øU„Ûç‡J»í•Èb]þÅÑí@î+ÜóR˜}™°¦úJ´û?ãò¯½æ1ã~›=œ´yì þDÐkLR®\ý*ãcdüáÙu¯ØÇ Í´Ïý™õÛ¨/y‹yý¸r™2 Hâ1Yß Þù LìŒý*Ä3wQOÏ`¾ê¥Í÷Ýîè÷"^põíIÊæbg`ÂC(6xË2C5ùøÞâØ·£Ec !Ø,|™…]_ãÞ•YãòÆ&*ʰÊ2c)Mü‡U|C¯ó]b™kã{”7^ré…Œr`™ÑŽ2ÄŒÜüÐh_iA‹i Þm²¢—Ç´ÉJ`Ñ L¾Va´$ÏLVô‚ÆB*ÂùFÛuuq³û}$÷nÔ= нàÞ…ŒIÝçÞmhðS޶*ÞDb¼PúS5ê¥Sx>©“P°ÄüòÁóòÇâzË–·Þ½hâ§¡1â¿ïS¿É·ãhä{U/!ÚÐ74ý¾bXf2ruŸ—aîYqÌ…om”¦Ê ùÝõw3îw¤„6ewÐDiªh“o“sÞ†‘´åKÂRŒed†GFá’,„έh´Ë‘$« ­ÇYäë?!)Ú稽ÿ)˜†¤=¿ sÿ +·DòƒvGç#-hgíwH)ð¼(t&¿í¸þ˜Öù¯¹þH‘AVI"}œÏ¼ŽLÔÝE’»§ˆKD¯B»ÿ:R²šÔËR$|õ½WqÚ~ˆ]„xzÔVD/¯Ž»ß&JSÇKžÇ®¹E‹–+ 3Ô«òíõdšŠ¦ù6=ç]‹îM‡ðY—Þ¸µ£?'-†g(¿çþC£w¿Mh‹HÄ%FG+ý¤/BÓ£‡ó•êO½`Ìç#Î"å¾Ë©ÜæÞOTÐß(ÏG´cîý´ÕwXÒFÔ4ß•Öü¨bÔÑ=a²}«óGÜó)+·k}Ð$J*{¿Â}Ï‹Zû m1¼åâ¶fGS]Ëð™™ÝU¿ÉÑÃùHëë¥(öãĬ|,¯0—yÛñfâ{Z3ß ƒ0 üÖnàÏÓŠg8þܬìl¹ëÞwï†Ìì5÷~S ýÓà?a:329÷xÁ2¦0 k3™ØËg,!n›|}>U-©§®e‹"iÓ™Ó€y   üÀB¯Žüõ¦­ÌÖ:½¥ð>K¸t[–ù‡þ¿íGâÀ3Hôñ%q+T×"ñê…èÜ®ÌúhY Ñ&ߪs^~ ý™#ý…¸Ž®öÛæö 0Àç.0‹™÷Ÿ… tVóž/Cgñ¯öN÷*:‹¸Œ4Ë\·¢³’trÍÌBŽ¢…Á$2‹8À 0À8¤H– ÿë kë·QšòXÜD;ù‹‘ÂÃÕôß&ô 0ÀBc%re|ò+r˜r/nE×Äy¤8b[,½®A†Þ#¥Ó2t\œÔøÞÙÛ*àgÈ«·2û`ý¨£ù)2? <ž@—§=†ê¶V ¶H)ã|çW·í@›÷w¹£N8'3áMÓvñ}¥)îwiüÒ¤ø×ä^p1Œº|'úœå{º®ŽG­Ý½XßON˜ªÊòYe²ûpÌýÿYIü&y”õ¡c&݉µfö´¥ÝU^íʶÆÌn4)ò-OÌs¤8»¤Çuk¿¦èF­^»wMv†M÷”šÆ{jYO¸pw:5µá1 ó¯bX[3~j}ŽFè†M}ìAS9Q‘÷”K3ôn̽«(ë&S=fº‡_õm7׌Ÿ¯wLüÿ÷]?sÏﯠÿ¥i¼ÝkR(ÿÖÒt§:®¬L +âXºÂõ"WÞ§ã/D~uÛnÈ4îæØÌ©Ó¹áÜ )˜ŽÐ7°º.íQ«¿èZÆÐï³ø ðù4e$X³Ö”aõ©¥ƒµßçëu“‰‰åC¬ý=ݨÕk÷e®Œ¯XÚBÇÍ5õÏTc(«Ç˜—šÆIFž¯—µúŒmj–X¦½,áÛ¦\>¡wuÚc¹Ë/õûêÆ÷õñšÍÝ ´Ù·ÆÊú‹ïÃ5ÚÂ/0óåN]P/rmQG1z¾ókÒÁ|êdøC]F­Þ«;±¦`:@×)3IlòϪ&ô&Ö°eÌÍ3±& Ý\• ‚®‹Ó”‘`ÍZSäCÝAÚ¦¬Mh|½ŽÖ,_ÓvoZ/kLý²cê;–H_—1/©¿¬>;‰ñ§\üл1÷n¬‡t±òºwÝHy',¾‘(Ë/$åyܽ ñ%OW÷ªæK®|¡6ó|&d‰³¬^–Xv-fuõn›½°=hfYyrñzÕ~kMüôƒHžAÚ^`.ÞC7#ö!]ˆÈS`F +d8"ÿ,䀢¨w2°‘Ëà_‘ÎÅT{ãz帴¿C7 >AÆ1 ¸9B¿Ýؘ!³è²DYÄS8¯"ÓØ9ØÝ¨g\¾‡¨>c=JæÑòkbg¬þÌó2ó)™Ëh :ï6úl ºÅ9šªüšÂçw1³ÛýBd¬¤,¿â™u¾^bõééÞFºA3Héa¤\E÷5³uˆ>Ec°Œîß{Gý”sßÝëù€î˜7þ6¡»˜4Ã7[¾YѺã0â3”[Ž,bÝ>[çÒ+3ØÖEÆ¡ÞEÆ¥®@V^·ÊѬe¶C¥Z:sƒ@v¡Žz1¢f;{‰¡ÎÄÚ‹‰¼Š× kgùgÓ:ﱫxëc²†w„¸ªCOé¸MÉB кŒk¡èz…íÄ­îõÿ1÷K€ès^ô1“ò±~sõëcœ>A}ñf_¥Þ…6 ã¤-膸ÞÑþ}$î6t¥ûGhÃ÷'àmSúM°“?”/ ­¢ë ‰æ$ÔÓ~Íc>´.ó;‰âN7¶“ð¸i_ú‰µjç9ß¡™ÄÁwºqfÎq4•™Σ CoÂHb€Öe\óMçwò;Üÿû™½èëÖÈ{º Ô ¯œUøŠö6Üç3̮Ϻ¼ô\ÇJ2ÞøpŸòy˜ú‹Û'›DZï7"¾´›°”"üä¿ÑÑü]E܋Ȥ˜yüž¸-š¶¸m²Þ¥Åm¹^I¡Ýsˆ¹¦b}ÄN´“{1æªé¸¼6£JÞK:ókZÖºXhÑP +šJ¼ ÏÅÌöI°ÅÑOFòô“!ƒM3Àód¶Ü{‰… M×|Òy‰–·‰^t]ÇVúv÷{®ôé^¢éDç}ÇûPÇ¥ú¹ŽÅh|ïBvð=ÿ¾±yíw¡Îâö,âC—!þûÚ¬¤ŽõÝhòßGØ®M1/ïšùšÀû»7M°Í%\Þ©zyp ÕVÄ4áÿ#Ú¥ ZŽ£Iõ·ÀÏ]gjäÛ¤¬u±¢¡ùÀnT羯Am²—øÎO>>ÜŽ#½JÜK^,ÔÝO}Æ5Ÿt^¢åO>gö¢/u—íwÿÞ3Ú÷ m&:ï;Þ‡^Û2iã3æJ( õŸ\Šêá×ÀÇHÜ~’þ-r ³ “Š÷PÇÑB` i}ú1GsÆÑ¥`³‹øxI~û)å} µa«É²€_åú:S¨ úÝÜ)2«˜;æ"Ñ+‘]N¶ó<ŠD|S®D–WB**÷\)çKè,{ ³¬@Ú€'"å­‹… Í>EGW ³(¿û¬Ú=úÉLJß8ÚÔçz… ÐŒq-]<†êvÇ<æ9_˜ï‰®Úº&.J(FHÿ®3ÌÖïù™kO0ëâ÷hSqõÆìÃî÷â1)؈ø×V´™I‘¨½êoÜåu9’<ÌÐ[Ü<>tùÔ5±?E ÀsÏ‚S:†ïPW Ia;ª„2´U"«‹^j‡¦`¡vžó ߎ ©Ê»T+:.EVÁ“-._vï.íCb€BsÆ5ßtM±µ¹·ú}Ã|OtuÐÖ5qQBñ q‰A‘¶¨ßÓo‰æ$‘©Ã£==UƒfÚœý3’ˆáÛÔ©'+â/CbËÇ€þˆúÖ|ëDô{€z4e\óM·ŸÙÇU¸ +íþw‘v¾Ý´>ç›n¾ÑF”ÿ1ðר-¾Díý#=£sÅ»çO×Ñ^HˆüUÓùXÜ‚Ê|Zh݉÷4á®ïg!ÞÖö´am½è—€ô_Fâ4U"kŠ¶Ú¡M°P;Ïù„ßOR}´±ØýE• ÆHüõ¿²¾¶PÔ£)ãš:_¯POóšdSwÿMës¾éÚâ’ê(³ÐV”ŽtŽê^=Ÿð1R6½jóü™òg§$Ψ¿m k¿»ÑÆï]´Ù(¢í=Xôz°]•¹§ÄÄêM•È ¹k]íÐ^ï$ªvž½Â!ú+*óX„VÉ&*ûµÝ=èlm,!F’÷*4`ŽS®…¾š3®ù [†Û*Ô©“âUhœ¦J›Öç|Ó5ÅrÔ¿6£~˜ºãí…(:6=D”ÂÎqÿª„¸ùðËã^«gÞ·EJÜ ÿ[3{¤FÙÖš<Ÿy¼bYÛÕHgÔÑL›<••Å»Íåñm.ϦvˆÙ“_a²-~:G÷…Éc[•Ï‚N -ŸNèç›Î‡©Ü·´j>¿º6Ú›ÖçBÐù¾=]R_SçÓ¦þ5eõÇê ‚…²fõ~B^cb¶§Mµªè‡LŽ\<îJ̯x7êÞuòMý¾¥¦ ø33»Î•w8WŽc‰|o¹zðtw»º©Zè`r’±ÂĘS¾©X¯OXæ67T_mêeaaÎóЫ# àmt&õ%ÃÅl@}%²ùFQMÑP{‘Xïbê_‰<‹ncüê)á\üUͼ`€8Ñ_#¤I4 þ¢"þËH©h’só~¼×¶­‹_¹ÐÙ‚v€`€¢è×-ot;q)@]%²`€ï+¼¥ÓQân’‹4¯ %ÇeÈáØm5ó«BѳGÌå´w©ÜÈ‘Ú’Äøy#>¤^·ž&ÍaÓjäb ºF~˜r7ä¡òÄ<¬æ‘ꬮ޾à7ökpil^ޤ!L ;ÿ‘hü}*Ëó‹:L¬ “ði×e–u˜DæšÊTbŒ"Æœë0£b^uꬬŒet£È¹Óg.Þ T1úK‘yðosé—]»Êci=¿U -+_S¦ü„ûsyÕõ>º }ßiê{[¬ÂSèFÒqtóást|x¾ãN²£ä}ŒŒî²=ï¡cß}h“»‘j÷ì!³Ë!«©ÎêzâÔ®ìà‚DúŸ¸Â/ˆ‹ÿäBÄòûéåN÷}º¾µŽj«‡«Ù\‹tZ;ž8°‹¹z&1[O!ƒ7þ:è«ô¹®Cº4©È3£Å¨}ª˜QSÔ©·ýÈèFô=— )ß>TÞŸh¶¢ëy7ï»g)u1‰®ÞíDÆñÜ»X»†êºìzÙ2Tþm¨ý_F“ÒN(ŸÇtÝù&T7ÇKâùzþ]ÉÜOü;@6Sþ-þÎÐ* ³¨¾.E ½*ãF_ÓÜUô:Ò®vÑqõftüºN›ç¼~\ÜBZÿOe߸ÐZˆß³0jÒ¼?ff+iÆLÍý=–@·ÂtíÁÄ|†L74žMŒ›éÚÔJÓuªé†M·™®‚v¬üJè„…¯[¥„%5òi–[üÊ`š® y([¶i^+Ió#ÓŸ²~ðYÍ|F]½Ý_ƒ¦i]OYc ´«ËÙµ8zE3QAÓ Ð<ïÞ¯<ºçc%ùL›¾ÿMï3‹×C“ï¹Ï½ ]¿|Ët‹ª,¿{-»…öŽéì´•ß„òåµj^íãv"ù§~ûtÓŸ¿_G?Dt8f3Ú-쥖¹šˆüŠúªog€o@«Fï%+vçÏ ½·¿ïÄ`YÛ‹‰šWo’æwý>o¤Ï'hÇt0B³*ðî­𼏸Ú•U‰æ›Ð4A“|FÑÎõ:zûí6×'ä· Õ“!QûK¨ÍB¸ž°¤è™%ÈNQ¯܃úfŠÿ‰¶ø+´!+çÿŽáb÷›j0,$2é1wôæ®·Æé¥^;I?“µ÷n´k¾Üý½Çê|Ï$ê;E#HkåÕ²þqúþ½H:ó€ûÿ¢H¹ü1ÃÔö#ôþ˜¡î‘A+ôãÀÇ‘ˆÝ‹àüµÁ*ìAW±¤‹¼Øª ¡ã&4Má™Äv¤8:Ž˜ÄàŸñ'‘~ÉÀßåžûOh<êŠæ›Ò4A|öS_4ÒyxÕá8šÐv#ËcW¡[2yoò £z¿’¸éà‹]>ÛHëëÝ÷4ûÖ…×Þtt¿< 6סنøþQ²£ï p„púšÀ žµÁKÑ1âoÝÿÿ€Æ›÷[vë«Î÷|…&ñÛ]ù|šã¨­&Kè¶£>ü·îÿ?¹ø¯GòÊ3øG¯Ñ¤ý#/È+UÕE墺4ó¥,åóéw O~†x^!ìͯK¦„“ß™Œ”­ÉNÖ—í2©{†ôæ|ì,šàR49ÿM&ÿ@æRzQ ~~ÀçßS>à›Ðx„\§V Ð&43ÌíÓUJ„uòy1ß7ÈlvüM¶1;ѹüHQ÷ $IºµQü7GΟ&¿Ä¿Ø¥—Ú.!m¡ ³ëù q%Åï¾"¬'ྕµÿµÑH.¤xñ|¹ð¿7]ÜKSè^ò÷ÿ"4ÖŸ!ó5‘5A]&QwÀ7¥™O„Ú´—n’›ˆæ=£ÜÇì‰ácd+&šqá*´Ûª(ã|L0»®½ƒ®½Ô×IÒ®€Ëð‹ªŽ5f˜»Ë÷”˜¨½.~‡¤AÞ±ÜfÔoÊx¨÷“Z@–-¾—èÕ ÉÙHÓó”&“Ò¿¢~ðû„<<ÖÿîÒÿg$¢¿%¿NÙæ{WÚoxÑa]/‡3Ôgu|SšùD¨M{©ÑÍ߇&ײ«VžQ~xwœø™¾ÿ†÷˜u/Ñ–õ™@ÿöÞ?Ī+Ëÿ„ÊP*Ê£ò(3ÜjÌPyè ƒit0PÉ}è d0M2\3˜!qˆƒâ£l’&â Cl’&×&6qˆMlâ`†Ø”Cl´16Ú˜FC•hÐ &hPYß?>keŸ{îÞûìsî­R“»`QuÏÙ¿÷>{­½öú[Q>úžAv¬«íº<L¬CÚ}îÊK‚ªä™ +B«¾‘­™+‘|(ߟmà~]ƒ ö»@Z#ü¾õÓIÆä¦cÆàÎ~¤ÛIï9Úkhc/Ôü¯xò™È|\_êÿ1‘yG\Y*vÝñ,ZÅaWÐÙr³ŸJË€1oe…†Pm“(óÁ·“g7ï†\¥ž2¢yÛ(‡<ïîD¹ÈlGA"{_àýÊ­ƒ£à½tŠBkLèß{;PV>÷Å*vãE’ É–µ =¿¯À™{ú J¶k¹›4Œ±ÿœ|Ûæ¢:SyK‚1¦¹nÿe0v*°¼rO?8ˆÇ%Ÿì;f_ùÆåB\á#¿¹Ímâ}§¡ª0•§Ò L.!û%¨8ø8#'H Ó¼Ðó»h“ØŽô¾<7ó†\¥K—"š·2»bPóû¾ŸÍ²î¿©Ø÷³Ðó;´v BL"w+BIÐdKªÂg ~ÏLðp³\Ÿ[?àTéIT™Û‘´×µ KAK“^ðúg¾cWfð ·éâäÓ ’Îðƒüo}¾¼;\ˆ´‰.žgûáb“ç¶ûÀI>.”"çýàâºq¢Q¦mÛ´MeO¥eëñiŒÇNØUòüd§ežÍGüc´Mâ<œö·9w‰­ûàEñßNžÉÖÊnªÔs:ó÷ÀïÔL >Ï¥½ÎÃ&Ix dPmÜ|ú0kÁCÁ­c:¨Gó¨¦Ï×aPv¼2ÎÛõ÷n¤Ï]hÆQ|XûÎÒ48³Í˜òh;ð¸f¶¡8®ÌKà:ݨÿî¿[–lMó<+’O xo¾aà3¼Àëp.|÷€pˆÛ +úvð>q!øñnƒc: U™Á6pÃ{é^ÓÁ< ;nípÛ¶ƒŸJW&´©J=SEÈLQÈ`¨ };›D™¾ŸÌ›µo¥ý,—ÀÕšßçϺÝz¦*OG´¬ºç]CªÅ×2 c"LFƒøÆ¦JÎç£ü™Õó”°ïY8&"«:Ô¦,Z=g4_QÙ ©°.ô5¿ºDÇ#"²$1O¯ˆ¼!ŒÃ!â÷oå^úÑ/G¢‹]œÌþ¨ a$—èy}žáC‘p …,ŽjÚZ‰ÆVÉÂ^a ³bõŒ‹È¢InÛtaŠ3S0n!ð•U%O»ØÅ.vñÂG@b¯"áTÁÚw} Þ÷͉¤Yˆð=g§ÚVEtU¶ßs}wÌUòt¡ ]èBn!È2?7÷¬‚ÜS(–2U%JY£QZÿ]¯æí”bNU‚ù=}ÿ}øï:UOºÐ….t¡ M’ôxT„[‡t–©€2 +F÷ +|«à—fƒ +w#î׿ ]èBnE˜*xƒ˜ í „Ã8û À›.øÀ«(ö¼8ˆ°F'¡]åØvó¢Øãé +ïƒ!´m^EúøŒ¢UÊóÌ[-Šü!`9¨ù¿á0¡€ ”çïOîwZú1ØZ5¼jk +xq¨ýü³êMïBêH‹ò8 n,',}OøLÕRË€ÒìnhÝP&µLûXCk·nEQ)Ï«ÖÛ‰4Ù1(É|?À%ðp’‡¢>¦Ìc¬üŒ*v +ÚÙøW×›óA­õY ™£yýdR` xˆzô ³Ň®H3eNÙà¾p Ôl?Îã‹àÕiˆi$à‡(þö—¡™€ +à-}¾qÉøfpN×ÉNy9HƒROY¼œ,¦Ä˸‡Œ‚}}[ûñA>‘Ï@ÂX…8Þ–˜Îœ$Tï—Hû{W²üvÚv+B´‰_.°í 9g~þúü¶Àï²ð¸Ö5šIÅR: ã˜GáB‚ÎÇäÇ•? n{@§5‹áwFµ œ‹"+ß5è7¿~| –_¶ ÕOEJèãÕàúyÀÏsïNøOÐÔxhöøÿ +Êû¤¶f¯€ìÒ©U…§Á¾\Óú?¿×¥ ôÖ«Å`(÷{!x<ªygÃ?Dê”~o׿;à Ú‡°ù1Ð\p š }2.€ûάHîkÀkø;@ÓÅ=򠯿ÃûCšï¢þß 7Z ñ[Š£B¨< åýTäß×Eä=éš‘Ç +Ú«»®ïF2ÿ×=é¹öäöi=½™ÿû<é2Ïû}ã‘Zžµ' ãò²fYÓåeÛé·”9÷át‰›…5ín§ÞvÓØØ¦ŒÇd½ïÕç=ûXToQùy¬‹ÈÛ"2[ëÕÿß–t“Â,.‘4¨òÏš6Û^0(Ü'DD.ˆÈ‹Bk£ºÐºI´½¡ölÖ4 ¡¥Ò -ûœb(Y4ÅðA­ûˆð{±çÃÚ—·Å¿ç…P´M="ò¾ˆ¼#ñy~Xólö¼{Sß}*á}ãˆÐL4´§½¨e,›„ñ‡ˆ¼®i +ÍOÛ™¤.†qT'¯Vð, 4Í‹âü"äÓô ˜Á{â_ˆÙúbu—!صÈï”1˜ÌtB›kKS“æÍ£j½ MWeΫ¤kÈÍÍÇd½/ÊWÔÇ¢üeæÐp™ð[´MyLü¾ERp¯ˆœ·¼%­>Rj&:¯J3á=¬åÍÓ2Oj¹u}ÿžPøÊzLÓúà !>!~":&~àÍ@y>|_ëÏúëè×:ÆV´M¯ L1†ßê÷ðg„óÜÈeôÝÞHù6ǯLÂøCÛø¦¶ó’ÐÅÛâaRÌ»0u`áHß…sñ›‡¯ü(›àÿC{¡ƒ-|ó³pñ×}åmB³÷üï ŸÃµßÆn²Å”]ønÃqP¬|¨˜|Õ¢…Ö@qï¸_¢ÕÝ÷i„¿õåp×ó@±ñ~*qçï«÷ |å¶Nëßèy÷è¹ô>PŸ +ó7»6èÓv‚³Œê¯gÊšKçë_ªÛ/ûµþh¾\ŠÞ-Žˆ•™‡{ôïùH6ÇC÷íŒ?HìŠs-¸W/¯-š³ @À¤Çrƒ_/¤ ãKk‚‘‚2 jšîèæwFRƒšçœ²Y ª* +Áܼ_ÛÒˆ¤\deüt¡ ]è < ê 솋˜¸_í!y0½m´gœ›b‹?µÞÊßÿ^ï•ó0ê9¤cÊוof! éß,#µ$fe"¸æávÍ_d*í#àÃà\¯Íä€ß‹Vði&cü-8Ñ!èÿ;¨ë±Ô9x<›8Ë<*:lClÔô§Àyœ¼-ôCŠ÷Âi‰N 3¾ÂÏÂÅBåÂM®S¶‚OQÂÁd* += +@éQmËdTêBgAà¸õ Ä·.Üú0 +nÒß}ÄüÀ_‚{PªU@/¸÷@u?¦ ‹wü~ìËœ`}°]¸+÷{5¸.G5gtföxiæìùúû@¦n7è* ¾ñž”“#Ò>?4펿å߆ffɘË&©1£`g6Úƒ)f'fZ7 ú+p‡¸–Óp Æ£ c€_Ô“×á´\O¡8mîûçZ†/™å,ò ´géƒOà4}Ïk[nï‹ßU¸ðÌ1éÐãûºŒÛwÊÛ, Bþô¿~i©o ^÷âYú{Bÿfmþóâ÷Gá¬o²Pæ²"k&ôï]`0¥-à!1¦±‚A›ŠÇê·«‡/á¤4@œ€gú + ·Xÿú›ÿ|Û¾û6”}˜×¸‚4s€"§~ÿÜwïô$ê³»ëÄ8§\)‘.u|ºpëÜÝíÂÒ¡Óp§©³è2nßF¨ƒöÔY¢:[Ÿç?ô~I¤Üµ ÷ïÞ…Vð!„×à» QxÚ=ŠÎͯ„1¨wƒÎhî¯.ò0¡«ž`êCT…Á=öp Ö€‡Ë²ÐžÚ÷W¬!x ž2iÙƒ¡ðPÙ›Àñ{ÖónœóóðÛôOèߪãoôÏ—ÿnä¤>ÆA˜Ýéy¨ïG1¡{$ä§ÀŽL nK½Ô `¸á[ ªŒO¦&ôÀžw_ÂI" Aæe¢¸œíý>ð;ƒ 1‹…ôÞ2V+‘»÷.Qÿð:'«LlüÂᣠ+w};87ŸsýHœCʈíŽÿ)p–¢ùzjœ¢ê7`€/àÄߦ^t:_ ò-ô"¨ÈK~®3&îÚ¯¿7".ËCôžâ$•Ƨ S¯kñÊÆÅ¾¹`¸ ×g–.Liý—µ +0ÍüåpûÛDŶý$Z»AÅ?ø3¸8!?ð' áü!HhB°Å'سðŸ`hÏlf&Ý]àþÅ<ô‚ÌɈ¾ +¯š–õ 8Î÷GÚÿ4œÖ¥Áwõïí ±% + @¦ä©ˆ•m:]+Áƒã5plîû 4×Îø_÷Á• ÔªTb| ÓíÙÄÆŒÁO¼ÇÏ¡{R \ §„烙àF¶i2”+/ë1¦¤ðƒ›ƒ¸ØÍ`œÉI ªŒO¦>M$ï†S8*èä}èà‰a£–ëSÖ*So§ÒÜ +Pt‡šj唇"­ÿ²V} Ùƒf;Þ0ÿdw‚W+@«¥¸n‰Ñ¢‚r~— ž‡Ÿ> +ÿét+Èø¼œã S3îËûs˜‡màz‚Ó·:¤ùíy~ýhßÖÄ¿ŠwÏA­w H4ÍÚêš¶÷,È|I¯ƒnôÿŽ Û2÷wGòí?À}ã]6_iâ½àzk’*Uýè§k%[üCBzëp‹/âX#‡ôïE¤‹ÃžSþXˆV\ ŽÓ>?§Õ…[v‚ ¾S À—ÅI¾1½Šë°£™u]7¢¢zcWRí¦ù¡¢AÑxLö{Ø}qhü7DáNT“Þí†SX6…º_*š~Ñû,<®mÙ„Î^/ý¸÷­ ˆ‰ãσëi#Òöa;ÁZ9‰É>}¿›Ÿ’¸E9B¼$ø_ø[ð${/\ØSˆ"ƒ•ltÕ2îÊ?ÓüFàÿ¾DÞ"X „w‚4*v­WuüŽÝ_ƒLæ,8F¬eܪ2÷jÞÐHLÉ.¦Ø…¼o€pfV ¾SHÌï9·}ð+šÙà|pÁm@ù˜eáV?aå‰Pm£ž +˜ž@ªÚ EÞŠ!FÒMOmKÁõÖnLGÑl{~N?_¯¨u* ÀÍä^„Ç£h¼Ú}_€ßúà~“Ÿ‡¢÷E[KEëÌ÷~ ØÏÐ^¶Î% ÛÑúæá#4û ¯×ü‹b92+‚¼Âßuð:#Õ +àc´çì::£?*û¯J¤mgü~ËѾTõh§Ÿ'$ØIfybú!T¿˜¯õý;Âf}f6ø 8iab»RáG ×™ýRNa©V 7ú@íæªõdÃLÙJõg[Gg÷>v.ÀJYe#,EŒ¿U ‰ùRêíT€46EãÕîû"Ø0Nò½/EÃRŠý9xRÎÃi8‘±‹ˆº÷ß<xny.©äZ‚?æçÔ¿ñó÷ÑžÅÍ3š˜>Ö—6¤Ø÷z•ñ1¬‰È +õÇü^$Í yCÐc ¡Ý£:6¡±Ï¾/J›Rža]ÓçHç.v±‹]ìâM„Y À4Ó¦_ +žÖ"Kcœ/ ¤ÿ1¨4ø(Èå € bíeÇÇ`Å'¬ ðdò(¼vä>©…~¦éþÕœst¡ ]èBn0à,xožõ\4qmůÀ{¦?O‚só냟™¦˜vs»¢Ú<øuiWƒÛüƒ°éß÷î#¡ˆ`gß§÷.t¡ ·.˜ÇÒ,¦x,ML· ÀaOEnCVTí¤Tlj …F,žÊ(û倧 +ÊFzˆâqpÎIÊ|öxŒgó)h:éS<µø=߀1»ÀÓì ‘5üËh4j©Ša÷€„·÷Ý=p¦.÷¢\D®³ Óð˜–ásߨ‰ñéBºð킲wÀ{®"xæ¡°‹¬®”¡ÏV¼ +< *}›ý½)RédMìDü°ƒÙ 1œMûVÒÍ„3)|ßH¹Ï¢¼çÁø¼AúæóPÇìPʼ‰1vŒø%h_¹$ÈûÁŽ—!p/i#V&¦ßJòa*«À=àdî5™7•È»´™Üªeø;1>]ðƒm¢U£¶sê)›¯iœv'ë 1¥1è/‘o*Æa$\Y|Ü`S Ì)l*×CY‚»4˲ÀiCO«Ëáü½/Dq°µgÀkØÚ¶c`ðä÷ék DñfVXöÁPñõ^ðJzÂŒÄ`?'oGg¬¹hŽ1rZfNçV™­û¬tÞçûýÿ8gFY° sn´BoZ•V¨—È¿B¨Ðø`b=µŠíì×¼Y웤|ëEäˆöi‘P tÅ$¶s¯ˆœ‘Þã1¨í:’˜o*ÆaDuy_\‘%uÍ*hÚ"%YëÏ¡¢jJªŽC]û1’ù¿IBDމHOB{F% ãhÏ3ú~TD^Îéc"rXüßâx  câWÒnDÚßè@ú1)§ì áºùT8ƒ‰y^×6\*°Ç¾‰sšÖÚöf¤oiÚšbL1~4“6eÍ¥û«šv¡:”=iô‚§¹Ú¿óh÷måż¢µ#Nœêv” ä17'¼ˆø©Òî³ÌMsAx\müïÊå1”X¾—@'/û@ÛÜz¦HÊžÎJÔ΂¦€=à¸Æ <Í Òª ¡Á(Øç‰~‰ðý¤o†´Þ¢;ÍŸ¡9€Éíˆ;9ÊŸÂl=\O§©n»-ß~ð4<î¾_Oœ‡@/¤)ðZ¿Ã·@Êüúf—‚f—?ý#XDÔïÃ…›ÍBÙ kë2í=¤h¿}Ñ2˦¸Ç<¸Ù“vLË4½­H›ƒ¿Ó°yÒ?~ÇóÁïn»æ¿À?Ulk;° ìë)p~ ÷Áÿ½ýlë¤P› +ø鎑v‚Äy)8?ýps°qï²ßhaR®¦£}ÑsªáâÊLU•~€ö”ºÊæ}þÜý Ñ€?&Áàâì¤ÂáE-Ów’zÜÜWjÛ V‚‹g+â„n9H¨®¸ à}oh¾þH¾<|2¨UÌ:Ë‚ùÚN‰T™‡S ‘.Ú—‚LÀp£} ÅÌÆÃ ßÎÙĿř s÷(¸áí™Î…¸yÝ6ÇÌ€³ßögà7òâW!ùýàBB€sƒkdØgGÒç¯È™û}ðïW¶>Žƒßôÿ…cЊÚ6ð+pm¼®-‹Ÿ2°hü§`p›N(nO¼ `½çùB°oÆœ}z„¼†Îxð¼ ÅÜ=…8€ræuPË1qjâ§—ÐÆt³æ}Á¼ט詻ê5¨h>Q!ïiЬA³­èpsX‰jwŽoÂçµ9𼮃›òh¶èxžp’9x \+Gá´- +Õ:”ó¿>~œ)®“Û;ýï@óýt* ¡¸6.ÇѬ~áͶæy ô!1.Lp¶€óv?xÚÿ[pÞ€òw¸“ gÁïam$MY"[5O•ùÉëžü§öe~×â¶¶²JÆpÞ¨õÇ ƒ¶]à:Y (7+3 p^ìy> œß,|®ÃN 3XZWCZTÚVì9Ê•p§ª:Hô6òôÊ»5ß}p§¾/Á9f×oâ&Ã[ƒtBº \ôO‚'ßýð›OdÁ”Ï,ï¯ÀØÎ÷k»cˆ­`_·ƒý^öyª‹ æÃEËœÀóØ5#ó´¬Ýˆß¿¾~dO€Ñªî€ó–˜Êe÷!0gi;:­ˆ•‡M`_7–Ì× ž4ì¾=ÖÎü¸ü.2݆@ž-àz6ù‰¶q1üDi$\;Ð)ìgZÎÒHû&Ð*E‹¤¯šÇ`#x’ü1âÒ¤²D¶jž*ó3JýÎÀõßöŸÔê× “ñ$ª·Φ¾ +ã9ðß ó>R·N@‘·,܃©3ÛÞ ~w!ÌàNèßTeÐINë,zø­€‹© +}¸ü6¢z·­ÏÄ9Ï&–óy.ïb¤s·yw½Ÿ£x]7€@fà! i¹Þ(øÜÌ–‚’œ•ú<¦‡Pç~ØÏéúÿ¸9ŽÁDî·…4L˜ ^Yl‰ÅPBž‰Üï}ˆ—Fó¸|n¶>îH¬6äòпóÑzÏlÁ¦|¡^'ï›O¡¯È¾»Jž²0î KÑzJ©²yªÌÀM~>øí÷ùˆKKçbÈpÜ2Ò/ã®üup­ìɤ[ ö¡ÞY³¶îf%²í5ú.Ô±A \çžôŸ¡õ@4çCÆeÝ¿›îÈ—àBø›Ø +Ò³˜=ÁN)ä%3¼‚f“Šip拇'@Qã`Çw‚›k^Ó< ™"½d]=f„³µ”q¸p§Á/šŒ¼UàwàG¿\|O¢ý²“fžõ,H$"ZrHÿ~g޶ œû‹(æÖÍÜé~¨.EüÔÚ Ø®Ó2wÿùv.D˜HnñI±Bã2¤óÖ6ãn¯¼W×ySÊ"Mû*yÊÂNh¾nöCpB;•§Êü ‚Ìû&ð^ü÷`ÿ‹×ü3¸^>‰ÉhŽt(ë®|'œiêF ½î×8T1ë+À¾=J g‚L\öëá™Lú]‚«¸7æûnÁ»áCÓç`<•ÛÐ9o¥!Ë̃S :gwkö´ˆ/ðApÃÞ¡é/êß"yzÁI¹\€Ç5ýð#Ù‡´;”•p'é+H÷FØnÞª`crQÞŒ`Ê€ Á…\d¯mwàÓÀñv8ñ—Å`”ßÂÅn aÅJ“¶ø í#Ý{Ï;ý—!\ùv~2¡vÚ¸ yÞÝ ¿Æ¹=Ëo61Fã88Æyvìkþþóf‡*D¶Jž*ócLA¾Ü"æÄà7pL@L¢ ”uWþ+ÿÀ ÀJÿ´HèĵÛçpŒá8Ÿ §Ñ™`g[Azõ8Çáh–žÕw›réC¦¬eÇàžó5Ìò©d*@9÷õUá¯@†ãÈ2[áÄ*?E4?©™[„Äø¹îÛAÎr·þâ§8㾯„æï@Ó§¿7²Ûµ]1˜ ¸Ýþ nì1ŸÍÈÛ˜™MY‘iLüÔ‰ôY0e@€‹~{AúSàúYn„˵ #@e|†~°ÓÖ°òò¼[®)Ÿ8Ü`#د*šÿÖÎ{nç‡à7"̾àQmÛ:Ðui/hSÎúœ£Å &|/x ³ ü‹¾£› ªÙ*yªÌÏi8}£ap¬Ÿ‚-æË4'\¦cЩûÿïš»ò¯üœnÇ] Òë÷à÷•rZßÝ \Kÿ§ôUÆóQpÍüdòŠÌ—ׂ{Ô:Ç–u 8¨._ô¸ Ot¹xBèôuý¿&"Dä½HžyZï÷‡õýÜH›5Íýý˜þ~:¡ÍUòŽiš˜+ÎzBÝ’8®†ïÝXfŸÕ"å”M›ŸÍ‰éÍmfCèFuºÐõëe¡K×Ô¾Bè.õ¤¢Ïuê€Ðõæ9¡KÚ¡;×QmÃ+rí½H« Ó}^ä«•l'Ĺ]}>7.WEdv ÏÃ:n—3åøÚ-ûmi†Ë"òTÁXäûÃ*yl\!\£‰ùƇ…nŸçn54UòT™ŸÂ97xOè9VÏX&ý%á¾r7<ªéj‰cÕÅ.–FûgDuO¢q)&F(ÆõïóZÖAý] ä[ ïGïú~$ð¾GHäÎdžõ 7½#m®šwLÛä{WŒc%a\³¸^ó<'ÜØffÆ×WNÙôyìnP"iÄ{XÈð½!ÜÜ NHq<€ç ¡¿ü«™ú>Õ>‡ˆñ¨¦» d²ïF"õY¾Z…vÚ||š—Eýï2¿s¥\<€~á79;2Ù>…À××*yjâ¾ñeþžóX…ÈVÉSu~ºØÅ[íŸÙBð|Ï 7ÙXA ‰ƒO²!§->a¾¨ïGï—òÛ)(Ľ·“wLßûÞÕõ]½`¼ éÆÒö “,¼!a­lzß|^–ðÜå±_Ò7ö.v±‹]ìâ ÆÛDà–¹²üëÌ Á0xG¶ aw•} âƒùpÏ»‰Ý§ïîß4ï x×/š•Oú4ïPʧ˜b~ëCàs­ÛnÞ·Áûí»Ðª½ÿ 8V‹Aß1Tóío¦.G=õw"}ºÐ….tá;¦ø5¨ðµtnb +Dæ&¦þ(Hà·ø ZMƒv n^·Ißï5"§ƒ û@MÊ-ðÿA-Ó¢‘åñ”¶Íçý«¼í*Ÿ܆j}Nƒ;R‰yÙô]èB¾½°t| lsR/k³Ü  ÷ƒ‰é—•L?Yeô +œ¯ƒ¾ HS_¯i}° SV¡âX.•‘bb„#Y>CËz'RÆzi¾7á½î+R¬Xµ,ð~TßûÚßNÞªÊg]ìb»á^;.ÔUHÑíX%¼–h³^Sz*쎊ÈËât·R•}ó8C¸¯NL?]¨o±Z¨ŸaŠÂ"ÔÉzUÓ¤–1*qˆ•sLÓÉŒC-¡c‘²ëúîS-s^…1‰_ÕÚûš8Ý®#Bú³9Ó¾h_|û…Š4©ZÛF;ñaLÞ#Ï–â㘇êŽ1íäµ÷e•ϺX „ [Cø¡·» B¸é\•êʉë…ÊeýÚž#’¾ùA¸N.7Í×µœ½Zn6Ýfy3Rβ6ûá+P¸yÔsÏéóÁ‚2g7¡câ6ñ^IÛT—é<çž/ꯜn¨G„D"¦ãÓ‰ñét9†¯÷–#B…é¢ô !¤ŒaG´Œw¤uꮑð¡(„½™ùHͳWÓCÒÉBK,;`Åæ×Ê€8`ŽQCeÔ2õgËIç1Më{W×wõ’c™E‘bà‚8ÅÕ :‰£ÃÒªèÜ„XÌ]ì"¤ó›d¿8‹‚cÂô˜Ûm§Ü²§Ñ78(as®<®Ö=š¾®õù¤3„ó}"P®•aïF+ŽO¿pmž®³zZ!Åà1Më{g}«'´a@¸Æ÷j™†¢c0&­ˆcØÌœtLš™$F®ÓÁ€ºpãàaðî§Ô£¸€ô@ ÛåUàÒËú»–˜ßôEրʞ*w¾ŒfyëÁ莗Ál1¸tÀñ(€?Q= Ïbá¡cÐ êšì=ÅU…ÏA'$÷€ú+‰tïi@ý–ð ’í}vœC! ÄÒ¿Ùöå'pn¥Ë†šî$Ì€wÿT–ÝêÚXœ]H»Bóus~: +û\Cήl|Ú™g+g7Ø—M ’ó0öÂ68Ÿï©áÎkÞÏAO…÷"=RãN4»iÏßž.VÄÑ@Ù[¢(2á øý¾©¿¿õŒLÁ{5øý‡t +®kúµàzØhËkÚfŸ¢¶•Q%nL¾€sÿÜ·g‘!O Øý};0[ëÙ€ò!MíYСÑ_ø_ nÚgàš-ö¢[’cêâÍ…ãÒ,&zK(R“4‘Ü\q÷G!H±‡ÎŠãú„üs“’(žž_ÖrËÜ7ÚV‘È·ËžV:5íûs¹¾‰ð´pBxÂìѱz+PNþñŸžžgY“ÎIöêûì ó°ð„ebȇ5M‘“&kïIÍ_tíP4>V®¯í#þf˱5»Ä“f®p‡®jlܲ÷ÀÖžlÖŽO }wP8göÍ6réjç6×’ùÝ+®y7hº¹Ý2A΃'¥»Jäè7®ö3Ð]îR}wLŸ_ð>â}Ü àš¥" Pê’M÷>(ýô”3¤³þdz>À·®©Í2&•ÍwzIËÚŽÎ…šN…>pÍÝ Ú³ûÑl~járc1 f€s¾åƒ uê„x\3O‚_ÜŽß‚¥Gá—˜í׿ 3Ϲ?Ï>»‚¸ËìGÁ“^jÌl¿ÉÏ´ûõùEý?$•xÎ5®¾ÒwÁ§p§Ý˜äþ‘{#iò0ê!ª?só{À¿Â¹£EA­ +óÀ}z;ŠMÆ}pømùÜ [4×{Q mË2 ¸p!h€b‘Pàƒ·Á0Ù yÜó~ ñ‰«é»z Þš¶ï€7àïü yÄ„vÄõ1ø\³Plö· $ú+Áˆ}_Á?€,¾7<3w }±ÍÖâKl7š_êóéAbüVîùqðCÌÎeàZXh—µy(ƒ‚„u7(zü«ùš~hŠš‡ëàÆwü°|ÄÝ" ÞŽ™hYà™,#c›ÎYpœ®€âÑQncøî*`+(Òìd¨éó5ÎO–™±@FÙx_éï"Fn'œþ‡Ào%‹¾½e²À‚º¼IcïzÞÇÅÞõ ÐýkW AÂSä?¾Ð~ »A†Ââ¾Åq_,°T¬GÁõ×kP2 eBÖ[¤Î,†˜¥AŽÌŽ”÷ðJaXË‚]É”‰‘’_ *‹1 +›  5pl¹ŠXü󸻿<؆ëôY¤…ýôœgÁ hš™•EàFÞiŽ.Ò´;ð·Á»î<Ãô ølO;µ Ok™28Y†aͧÜÏg¤zÁSð)mK ~wïYÖžõ+p†ß@ ?ø|XÏûÀ5÷QæÙ°Ÿ¡ <™ ¬OŠÿ„ º±Üè~žâ–‚Ä)$9ù +î>r7Zï|-¾÷r”qJëÈnŒv +:2p»õw•˜ì¿×ÔJ¤…šþ­›ñýú7‰p>Âà#èÆìäË¿ÅwÞï­—£ c”ŪáS'Ðúî/Èc§ÕÏ"i¬?C÷ûA"ÒÇl×úà÷8?¡-‚»´î>@ú4_6Ø’ïPfL_ˆøLdÚ[e‚%• Q}/¸–ŠèÌø×«OÊaýŠ­sËïÓa™žÿ"âÄÝŒh”Acpapc'ôÁïY„¥À…å;Ú†‹‚w Õb‹O7èµàFÿ\Üv€ÙV}~ºdÙ©å@Ÿ„‹¢·­£Œ¸~¸±ïÑôëÀž-žl¬mCcÀ&<åÝ nÄ©±ÈͱќÄôY0f/%íCàÚÈ3 ÿŠVñëup\³§¨< xŽq’LÙy"òØÏû†OÀïd>8v:yœÏ˜ù5ÈÜ<‚æ“ǸõnLBpóžjú¸‰¬ÇðAð9nŒóà¥Ä6JÛ¤³úWà>0 NiÓ¤+E„g;œòãqPñ/‹ÿV?eNˆyˆEÖ´~‡NdïjþûÁ5þÈx~2óÁïqb[ÚÛ³}êͽóOÑÕÊðêCLÓ'àšYˆ°B¯9ŽKݣʂEÜ|áýc¸Wú»Ùö9„³g±=ï¸^ñ¼[®c}7Zàs‚TÇï +B/°nCR ‰=vÂ…`Ìà °ó;c•NØ]ÑÙÜ_[˜Ào'ükd9ÐÿO˜+Á±ÊKʈë7‚ æïÁÓåsf\²iâÞ 2¦až‡²wé&¦.#º30.6%,é,‹³`fHÔ¸”¼ i†à6ü­h= .L¨Ó»ûµ¬{Àµuœë" …g5íQ­s'œD­WËßêžË„šÞ +Ž÷6ðDò.ø}<Îõ!8‰Zì»ùìÓB4÷;H Ì¢Á¤5y Žƒ}y­¾b‘4Â6ñchïB§­}pwþæÔž/FÚýìô˜ÿŽm?(úÖ>ûµôZW¿ XR÷!š¿7û?{8°Ógìô¾l¿ïð3ä΢º´§¾ÒºïÇý1¸õЭû.„-¶ƒs¶dj ý{<ˆîÌ!øüî)ÃZÆ +ð[;‹øw²AÛ¶dà-Ìô +‘¼†”ÃÀFD«1‹ýšÎ§Åý´¾+ÒÖ“VíãØó¼–«O»Ò4KWèïEú{X¨•~Y:g£^V õ Öß'NÛ×cž¼Ãúî9Ï» ž<ƒBoZ´ß!W‘â O†¦[eüêš·žöŒ0SÙ²G"}Í=ÑçO‰ßiHÌ™ÙÔ×…ZÊæ½òiá<]jŒ§´}X¨AžÕä7U<‡eQ¤\ ©ÒqÐ"šºu-P†i‡?Ÿ+㘎Ë*qþо£ýÝÐß«ék‘öøÊõ¥Ñw£¼f‘qIüNUìýe‰;©:(.¼¹õÏÖÓ1‰Ï—C¶ý®øi}>WŸ‰¸ðæYÓwö{®ð{ËÂÛRl!ccù´p?{_ûvAøíÌÕ±ˆõÇð-q¾.µîâÖŒ¯eç·jÔû`¯Ä}4,j:Ÿ/Å/HÐÊáj.ÿ‰‚z g‹[SY8"aMè[d)ƒvFüY¬Œ"ÇcÒyÀê?'$XçÄm6{Å™é˜iOÈ|Â÷‘÷Kœ0Œj»j÷ÕðAq¦hY|Nß7‹ƒÂu4Wªí‘½Â5½@ªy:íÎãpÙú}‹,%ãû&àòEòûžgL-ÒÉ!Qx]¸÷ +="]ðâ8¶ËâˆÒ 4sRYú×3Ï‹Ÿ`ŽêûZ ]«ô}Ýón®¶ïD _35ožAèùiÌÓV_Ú<>¦i÷J334]Ü)À8T‘ô°Ày¬GúžÇ×…ó2OÇù=óE:¯ +çožðC9,q—ÎãŠÃÚÇ:ÖÙ>Ù|Înâ¾ØžV.Ió7¤u½¾'a¯|!×ö¤0n)(2õ ´Ï¯Š#jW¥54µxòêó‘̳éâBtçËlHá²r}mÑw£e44ݫµÔ#ŽqO99[=c¹çcž>—ÁqîÓ»nÈ»X +³?BHÉ8&aþi›ù}Ï«b¯–g®ÏO~=â\”hßO +‰Áƒ:Ë„Cô™Ð^÷Ô3ªéjvÔõ}=÷ Uú³JËöy!íD»ÖÃojX`P¨XÒÂ|C߇D͇¥8dë˜Lî€ÝçöìžüˆPdn&[s5ýIýû¾ö¯WÿϾó™8Žj¹µÌ³™úÜü¬-íˆë»ØÅ.ÞÚø–pŸ{Qšõ)ú„úE¾Ð¯ë…ú)óÄ:'éÿë…z<ýâBY— ‡=.éyƵ®qiÕ›ÉcÕÐÚ¯¯)H±F]Ë>¬ý~FÛ–¾¼LñªýÙœ·Ô9ImWCt5ÿ`ºzLü‹k†ZlRG´ã#žwýB"y0Р1¡bWMüÚö5-»^Ðá™f`úµmùò{¤Ùî9‹>›íü¢÷Á¡¦pvÔiE:¯¸u+£mzKÄ}Pã_{ín”Y\!ÅÄziOñ«.ŽénÒõ„ô¾oc³„#ÒÅÚ¹@ß…”){„–öÍŽ 7Þ"݉›Î–—÷µ ¡ïo•ö¡!$¢«$¹îÕñ±þѱLi{¯ðaqØÇ%lEbø©8ûwS(ΚPú€†p£·hš«Å­ïžô¾¹(K”æ -„.eòÕ òô Ië8Œ%Ît¼S£>Žè8÷ùKW =§Ø—«¯(j¡ÍñI‹®Zµ?¶öJº”2íjH"`¦pgÄo[ݧT«ðá‚Î?¾eÞyÞ×ô]½ädtñÆàúÀ<Ö%LÈ Âû²ð´´JÜú1–Ç·Q>V¢Ý©œµµ§ÊؘÆAá æEq›tÈär†¾Ï;…ª‰s¨R¶u}W¼7¼1-ÿeq–¡ñnfç„›õˆ¤kî¿¥eÑqx^ܾ/þ½ÇÖÙ1q>.h[cõš„O´½£B&ê²¶½È–ý½Ì¸¯Òß"q&À‹W´ˆÛOŠŸ07ô}6Do¿p–qœ•J”h¿Ž ¿5›ï"fK­§ŠM| +H³½ü ”·*Þùݰ>M…‰e™ºÊ¤mH"ÐÅ›ít;Wg~U¸UµZ¸8Š<7Bœ7źpÊ]6„>ªÏk y³›ipSúTü ßòø6ʘº,–á¬Çý+Â~qs—}nýË:‹Éã^!ƒžíÿ‹Z^èÔkg]ßÕ=ï†õÝ[¹ç}âNU¾2_·>ÇS<$šo +Ÿ©­1L¾²álá<çá=ñ#Ö÷|™#úÞ'²Aq®ƒ>¸ïF80Ѹˆz/#Ì%Ëá¡‚±.ò¤¿´Ú˜È=¿*¤Þ¼†Ø·{@?îæü p.oGñ<–‹ZÏ ¹ç_k01ÐàŸÀ5uTTýž>+ Œâó¿´Ü E\*íZ´Ò…à÷²T\ö•9¤ó>øÿìwÌ»Å(Ȧ¹i‰­OƒûÁ9>®é—¢9ÚeΣ5„vJ¼ Yî2€½‡Á­Šöi»žÇ}?\&ò1p¬kþ‡Àñ=€pLúEZÏEpŽfßÄ„«äÉCŸ¶5¦J=ùðãf·aEÅvû³ôùÿ(Š#»¶BI®©‹7BX•{Þ+ä´¯Jy)çç?tœÅáÐÓBn¿H +`m®åpsæy,¯ï„Y×¼#<ãžçc’vRZ-Î+߸£îræ¾+„1M;Á'PxòË^µh]>4¨GÚé+³ÉBs•— ÍÅÃÚ–ÐIeLÂR3_?f +×èn»_üó`ýxGÊÝ×V]ŸÙq0 ЫRì<Í7–©ëÚ¤* §Âoø’øO¦#R ¾zÎ%Y)…]Y5yN% Ù<=Ú×ÐÝ|•ú[Ø®‰5úw“¾ßÈ”7µ|Ýáv‚û.²x +œûmH»rÈÿŒ¤ûâNÈæÀrw>ø ÿ6¡-Y¸®§ÇAï.ý;HüŠö½Û=if!¼>{Áq¸ܼ?Ñzîð(F/ú~Ë€æ=H'Ì‚ë~!x8x<¤dC(çaZ&o.ÂÏÔ éßuh ËýüW`Uò‡1p^÷ ØQ]ÕzbáÇ;YÏ=àpd¦GêˆCN4rN(šzK¨Ð`QõDâæW&f:(Q + RÂBúò^JÈÛÐ|yå';‰›hÕ4]=E\âÉ7Z.Y³íãU‰´ñµk‰´†4ˆµý1á¼\*U¥hΚ²Ó2Ï\ÎÛÃâ¡64oþù¨>¯ôW„"²™:vT)t]‘£,Ž Ç}$P§)»åµï÷êóÁX Ð1—°¸;„u-Ó§çk[JDÇX;­¾zÉvZ œ¼EB~.LÜ£bP8Ïë…kÏ®˜L”ê C>.ñuÿfÁû|ýëµÍ1 ñ†¶ç„¸`S« +úº@ó¼*Íß»¹Pñ‹Šm,}ó:i㈖Yä=Ègs+âÖþ þï 4fËF=ïÚny^XîZ‡òLÎÉeñ+$ú®0«Ô3ƒlñNÔÓÐ<ú’_I4$Á +ÀLXò °_¸È¯”ý³ƒi›õXAãÆ…ZÙ¼ á—æAß,î®°QP·M@=e°2XÓ|£é|‹­&üøŸÒ2^Õ¿EvÕÙvÔ13"`Y´{÷äXÑŠ=B%onô¢–ÓpmhšüóQ}¾BÂkÊú›ÝEû +™™£,ŽeòzÞ軺gÌ.KØœÉ4Î}ŒÔÓúη¡?-ñ{;~s±yY¦éR«¯Ë„k.ÖÎQϘZ,VxCƒ{Iø­1œæKÄ1¸ç„ºG´<ßz3S¾>ÊñG)}NZuj Í1dYÑ®µ7¥ô3ôΘú2ælcß#«fC£yð•eËæž›Ahž¿¹x «ä1&ôqÌš…”™Q–­§¦ã“glÿªw¨ž†4Ï› cô|žoЮúAQØ>´Þ•}Š4nGø^f[fïÌv XKÕòæïÛRòµmEé= ˆm%(jL»§¹MÕ9ø¡]Ûyÿ\Ñß©p «ÝŽáv-c[ ý +ðžô]PìWFTzœ¥hK?ŠÓbšËE°Åýþ[P¶\+ àó@Ú‚ç>غFþ‘çÝ›çïéLDZ‹&æ}ÈóΞù\G/ïý=ï†õoìÎpmMYëùvö‚"èìøûDÖk;}Ì÷é߉H½whûïËCëÓàIp®gø#mïgà=çðºÊ·Þöè_Ÿ¸u¦æ=ày·Ü?ú=ïÌjäKÏ»,üÍëóûˆëÑdßõƒ.\‡Á¾í+È[>Çoqîù Âcp¾ï‡Ó/YZW„¾Ÿëšv>€çÁk¡é Žàôhò°\ 8wÁ5PçÅæù¸ÙÒp½/Eø:²l=§Áoa 8Ÿ½àµŽooh·?Yø9œ®Òp$Ý|.þsÜKèi'̆çÝH„×ê"ª¢¼ÆÕd½O­§™joM‹r†§Üno´ ]gk~g¾-äPC'Û|»–HsÌõK5Ûiý°c,ë4ÃNvj5qlYñv—i|– võd×@>,£µmyBï{¥Õ+˜pEÂstNǤ¦Ïl¼CZò^øp&_MÇÄœ®Ä$BšºÈ‰I¶/ùv.çåí„øOÏ&¥w}R®!». Ùy7¤YÄle…NÜ' ›'Íߨøa,Ò7Ö2yCnƋֵÁh Í3úþy¡$kº¸(¤¡ú†µ¼²–ëÅyEáº*²ÏXšÃrÛI=&¥¬’Â55"üÎR,¦ÊÖ³@šÃ¿'ÎÒ¤Þ¡zÒJŸÌíòñ_%/Ðúë’Û³íŸ^ ßÚ‚ñT#f¾»¡sÿ(,¯OúiAÞì@lnÞÇÄyC µ7‹ïKë=˜o€óXÓòG Ò…ÐÄñf†bQL,œo—¹.ž-ÅúƒâîŒE¸ÀÞn–!g‹ ü¦¤9; aðCñ­7’“ ½À³”Ç1)ÞœøÔ…ßÃ[Ú†O%îÄf‘8=™,¼#qF«ÈwNâ^ Ç5ÝU)çüdD¸Öó`Ž[B÷ˆÏˆËgá¤Ä™”†´~GoKØü µœ¯ë¤pÓªK³ûÜ<K3³Í§Õþ½)᫟q× +£¬Gê á°–WÅkÞ"q{Œy¨B˜»øÀÔ„F |¶žòžÖŒi‹”Ê;7!oCÜSnY…@‘0Ð'Ž‹Ï+15Ĺ0 qÀ5Í’˜¼/á{»/Ë2}:Gyòý­Š¹|Sš}|¿¯ã#Xv‚{PÛêSÆJŧ„›uŒX íI²¸HŠ7¼>»{¾,Žs¾*Å Ä pÍÌ•r›ù€Ö³@Ò˜š‡kÇ"ÛN;õפøôdùæIš©!á“Êa Ͻ1¶#ž>ÎŒäËÎãÜãiXÓ:Sêèôúìbo¦$ʺ' D;=­n*ÃâN¦}]%ïX¤] iÞ`–Hó‰D„§šOÞ1}ÿ¦´~ì qPÔ]Ó÷!å–3ÏšòVž€šÏõ˜Hu<ð® +ö‰ùfqb+ßXšÕ‚"CÁ–Rp‰T'`]ìb»ØÅàm"’U xT¸ù½þw–‚öÐÿP0èqfží•BLÑn%·¾LÞS;YihžÒW¶c·åÞÍðBŽ>6ƒ +P÷!¬pö)¨ t/šmlgh»wøO¾wwü±À?xž/¿Ê»{LƒaPò“Hš·@EÐ@e§.t¡ ]èÂ- +yG@k@­å# ïè³ ãZ„‰?@ç#¨… Æï߀ÚêûAì#þEycÓø†Öy­žój‡ˆÿ ¨ü$ÂÄ ¡¤™ ææ8ÍWŸÆó ¨‘û.Z㠌ãðk]ÿ“Güàˆ€órºÄ¿ ]èoãN"ìë 3±7Aga“à€Ñ„ôÒt 4gpqçdÙôΤ/[Çzï– M]]P>@‹­« uH*ŒÃYÄÀÆÕAN$0[(’7 ó«Ã]„ãR=ZU;y!ß§Øçq³Ä}œöèXåò\p˜TÓÈÍ;Õ1Õ÷Ý»Å.vñ»…+„{ɃLozeöÀ>ñûfñá+Bý­#E qaº?%¦ÛÒŸ“Ö°Þ+"õ¼%T“´hž–~obú2u ˆ ï-ŽS‘E³* +ÑŽKÚ•jCr×È¡„ýBÂo¦ )…‡6ÖF^ƒzɼ½Bâ_ä\LJ+¤œòPð>|DŠÃ>“¸×?ób˜ºö»ˆë… ýâ>²Ðc!”—ˆÓ+—âàeë™®ióÖ³…ë?fúf¦jf¢uAü&ky,³Q·Sa +Á©2â<è•qPU¶meó 7z³ˆÍ»ã[vãOM_×¶”—T¢>"$èÂýï’„MëÚŽ,ñ¶0Ý>G<–ÞÖ;ä¸ÇæÌB+§0=eÓWÉ3]ÒÌ)³^bSÚÑ'd¦L'ë‚pÿ‰1 Id²¸¨Äàäña©nnb¦?u)&¬¾A²»xó`•M³ gÝçVúy!¡1gEL@YÞ|JØ&×'$ÎÇ +òAÊŸ\ éu»õ@ʨçÄy©OgÃÍâüz”YCUNMEyzt\/iV‹ó6c檌oÙ?%½y5‰£yÜ,’äŽH:Q惒ù^ð¥m¿Á|ýÅ@,›>Ö®",›¾jž”yM™#K{Lçg•Y&<ìŒDò5¤ÐÅo†>Ôº„ìl–°þª'?Hu¢”ÂY7„ÝèmsOõcÊÁC(J¼$üßÔ1I±–({ª‘ôºz å TÙÑÙ|{%~Âk·m©yæ !˼XˆÖc“0¾5I¿fMI?"~¨”]†¨Ï~³v]|B UCÊÅ2(›>ô|<ð¼lû³ãúž8ꃒ–üAqO/Òl²>[( +ùI1“l»>7·±uÑÒ®¼`¾}0áñ2¨PsÀ\OÚC "æÊÜóé ‚èD Ž@wÑ@ךW@%ÊxtÉzhi’ +£XiÑ`Gæÿë bèÝH‹æX¦žÇÁ±=*s®…³¨‰Áç`ÿg!Íìq8 •߃–(ç'¡ƒåHýk!£wøÄ#kæó-Ǭ§ mÕ¶¥æ1÷¿C™g×A7²w¶¤v:¾#pQß®€ßÕ5ý=È3Wß]ÔôÇV*³Ðঈü’þ. += œ·KÚ–Ýð#½ åÖ ’øøí?Ž4e´ªð®b»P¥ýK@WÍ×@Eî{Áñ}!¡¾¤G@©p'¸ú¾…ÅàºÙåywÝó,]àÛ 5p£X ÁÅ ï!ø}¿ÿ\äyâý„þ}-R×KàDZ\¸Ï"®lP–(€qê™9`Q$ýy´†ÈµØ¡Í|Í¡9/€&3 +Úö9ø¡OM%Z>[Ïg HJ=¡€ã°ÍÄÊ+@ ìÏ@ëž½f'ä9œ/òX.‚ã~ôQžjÛx홄¶\;{Àoâ¸vòá¦2U»A&Á´¼{áÂ_ç¡jbƒ›òg Öz(ù!´ZmÐwžôe Ö' Õ•µu1Ë%*º ›¦¸´N: Z(-×ÖdÁ¿ n– +UÚ¿œ›åšç#ÿŽb_ÿ÷Ó{A‹¸TØð!åNðû +Y²¥CÈ㻈e’F¥ê‘ôë¥U,5[(ZÚ,qÁ²bö÷„÷±e|z›ŸzÓÝè*š¤(&ögêª%´oDx·jb¸ƒ×Y$Í~²gŠóÞçÓhè;ûÝ#¼·h“#‘~Ô2¸D("/èSM¨Ç`.~‹ôPªÔc^9Úÿš'æbwªòÜÌý±h{{5ý á:yìÌz-„8÷Ý>¥Á†pÎ +ç|†ðZK$My®¶ý„øõEjZV=÷¼Gâ"ßÙB1²é½Ä®=NŠ_¡Ô7oýÂoö„ðš§HÇ¥!å¯Ìk}ŽÒB匞—m¿Èók¬¿Â=á9 GGiõZ;¢Ï}V{¥YGb\Ú´0meÆ\¾‹»÷á¤í•´û¯²ZÌYLÕú­ª]\F!©_œ»Ø â\í†Æ­¡ce¿éø½#Å ±Œ‚Õ Öó¶8 ø«Â /¦hgáÍÒâYmd#2¹ÄÂö¤4ozv7ëóeocm1^×~Y=eÎiY¡>õè8Ÿê ¼-\µu¤ÔsFx³iÜà<7sÊ8çřB‹ÓËrå^’âp̓ڟ g¬Ê,š§Q_5}—Jà }ÍÆ–8,Õ/}¨œñÀó²íÑ4õıÉö÷uqëÎú•O/ÒºnÍc¬ï±>÷n\ÚdjÒÔbT\ãâ—™Úr™umØû‰©¢Å )¯õ[E»¸¬BÒZÏÓÂõ²„™Ž†Ž+Ä1¯HšP«qðŽ¸“ÒA¿Xðµ]ƒš÷LAû¦‚˜×´/¾À¢õœÉ¥™.dPbãQǘ\•Ö€Iyœ +bný‰o¬Ç…ÌHB¶§é»Z¸>këiÜúúÜsÛF;TÏHäݘ´F¶œÊ<·jBØ#dhE¸ß”Үδg,’Ï® bk1)ˇÏizßÁ¤,ó¡I}R’Ðø”Ͼ!\wÙ}n®¶'6þ©í‡Ø‘4z`í_š÷¿†Ö‘O?.Íûq¯Öw8R‡IA½*ÜçB´gºðÛhŸ`* Üú¬i@_FÖ€.ûJ¨TÕbÊký–Õ.6%3Ó¶=€¸’@å‘ý ÔyPƒ³H!i#¨˜óè&rEBÛV€Š:çAå¯×Àqô¹RÞƒfe‘á´ýCpT2³qö¹56¨iv£Yõº¶Õ§>¤סYÙN@…û»ß“fÜžÜ îÏ‚ +–!åßóà>™ºG¾ º>ïÕzLQøƒ”Ntvsÿ‚¶gTð»H_¥ýë@…¼×@«¨.¼H?ÎM +­Ú*^Î÷¤ `Ì’êcÿÀtê^pŸó)R×AåÆià÷é ÀM¥ˆ¤ ä¨ÍS–(‡sÕiUš» MÄœýLUž*¢ì² +I M?¢¸BœÓ‘wY¶žš¦´!6Ov÷_äyDŠ!Ÿg¦>Q𕯲âÂCJ[1NÜ÷.Ä)Û¸åOev%V/Q¿B|¢ç*õô%gsÏ…kÔw­1UynæþØÚI=Á ˆ;QÕ¤XØr“ –4ý§mËMß'îDÔ% v ªÃö—×…§Åá~è“Z8õì•ħ–.rîÍ˦‡¸kKÎõ ë”mvŒ²yÎHøÊC¤õjÛžûÚ³7SîI)ç@o\â×î3„RÊéùwù„£Ú€2bé!q\/.¬lLû¹Š¦ðTå)+ʆ”WHjè»ì3S2ªEÆ­l=1‘–)núêÖòÞÒüGôwèªgªˆ¹}€Ö_+·&$:>"Ûj!”LJ…kå)qšýõ„ü qp.2Uê1ïnÏ‹ó h÷È!½Ž©Ês3÷§ ë§+’‡QOú†”cê²%¾ +ÁêÕ±X é^ëR \¿%˜Ÿ|‘r÷ëy¬i¯”ÌW¤)<y¬íe($54OöY]ŸÕí®ª”5.dj²LƒmnïòÌÓ|¶\Ðß¾q1œ +bnø°¸"Í›|Ú*' Ëw2SÇ{¿Ëöå¯ ×YLc»j=ë…Àà„S‘çfïOWÓwõúŒ†TÓèbo(Ú?æz𠤻¤œ+ܨg‹³¯6Î<¦ZEÃz*òŒxÒå!”ÇWÞ˜ø’ž²êú¬èK•z œ2dvRzG8×1mQHü +!SAÌ»ØÅ.v±‹ÄÛU`¨6Tùq‚â@ź¼ûÖÝ g²ìÔzÖ +v_¹½‘y²Jf1w¾'ÜüV‹cŠO¥nˆ -/…ÙížxSb2ôHzü†½™vŽj{jè[jÚ†Tó›`ýä¯kêR|_; $¬ç$~BíOL!srkáA$î(,±~Ô´¼¢½}_ö{0Ò—†–9 aæ´WÒ]˜ÇÒ¦”3ªí©Þ¿¨ï}Ò¦Wõ]È¿J¶4}¯ðû¿¬ýŸ'$šeïÎÛé‡KMw®Q¢ìáÁà‚¸ùnhÚ‘„6wd\Ú´.Þ:8"\,/ +±]sœ“°º}ƒÐÉ R=jêFßв²ÄÙüÅxHÝ­Ž"}¶þ”˜ ©i{ríÕöÔ:зԴ ©Î@œÓ÷®Oë7QeÌY˜­6©éŠÐmcš|½W#ý0†èœð +`Tâ w#2vÙ÷Y¯XVJºq)öa0ªùk÷«ô}=÷ÜÄêg$mî–‰ó8{IœbÞa‰G«MŪý€‡r¶²ÏˆcÇÅ™§fÒš`,±Ým‹/@¾}ð!è+úŸü +4½Ûú†žÈó9€¿cBL𗾊Ô1 TTü%¨ºTpŒ)^~*©Ì‚߇u®€&¦_€1%|qú¦o€>Î'@³Dý€‡à,Š˜yØçcþt$_4¥¼ Œ11¿™éu-'Åç|Tý†_Óg¡´ŽßÜ8„ÒO0–Ã7ÚÔ *Q…|©öï!mË»‘öŽƒ¾Ðw´ ¬OyÌW®DÞ_•¨–'”Pq×L]Cå=*mT,2÷Á:8¥ß!ÅÚ(o*Àgž<\ÿ×À±þ<¡œ_‚ëaHÿþÜ_¦ØÆ]9Îï8€%š¯À[ ã£Õº4³×è5p=ÄöÇ] BávPÁþ}>\› °/Á˜%Kòx ê¸|] V )Es6)š´“Yþ'hýÐf ÷TAÙ#* ×À Ôàkñ¸Ç“v.øÏgŠö{,Pþy´Ç+‘ölð8ø! eðP$OèCoî õmú).ó,Zµ¯C鯌BÏ&´g#ƒå ÑŒ1Z“1^)°$ª iSúñ¸Þî5½‹|oÄàs8«¦ÓŠ·QÞT€*3F¹$~w‚súÛeƒü5Hx7j_Äõ¼Ö·Oë×Ï|pN×jžÂZÔÀiáO9”±À­œ³ ðh°œcó©’UÆå0`6Z¹~ÃÍ‘ÊûAÎê9Ðäàœùœúnî24U©ƒœÛ¹„³  ún"§,ÌÒz~·aÆNê“ F¡mH9õt²ÌkhƒXúÏàœUþSA[ž×ÓvÄ; €›ÜîH`rÆ+Þ…;ÍÅ 4}.êÇ`“fÚ„ðÉr •ÙÉñðä#p»ÐÌ1ÞÉÄ/à?üZ·F‡5ßÓ )}œ;AÂø%€Ãˆëd¡œ  w€ z ÈLí@Hä?͘bKŠõdAÕ{4ƒ¿RÌà ÈÀn5eS¦v‚ë« ið,øM§Þå.×ìP,ú÷fƒÏÁ½#t ™2–EWsP¬`[&ôï¼—ë;°Å®Dà6þèVÞ¤y? ¤Ëc³ôc†Ö½ì¿ü/-ãÁ«`€ßý÷3åÿ~›ڢ¾øö"+ûtæÿü‰þ‡ú< _øŸÚß"f¡ì¸|y`œ¨c#HVT~³@Y‚øK +.ò'5ÿkˆÇ20xRëØßNƒÛ„*fw«à^HåÓý~'^7„ 4ÐÞ=Z|n`ƒ§Š”Sý|pþ¿KâZÜŽY}ú4_‚Ò£ü).djµdø;)å™,Ø2,¾uóÒú1¡edÇf<–!^Óºu¨¼¼g2™õtáBžøw8nænPÐ)¥¬É†ªñ ÝCúûþ‚ô 'úöF@³;€í~ +´vx </†ŸàÕr²VsÁ5Q)'é*÷hCð‹ Cb·åàx샳}Ù”ÏEhÛÛòm†ihUöùŠ˜§Ÿ“EŸh¼dl½Ú)ªènóF]ù®³ýˆÁýpæ]†1sFß)0Ÿ€§RÛ£C:-)e¥ûÀŸÔÓ…[|‘ýàéö!p3Ø9¥-ªeíП„#B·Ã¢#ƒ—@ÉÈ&øºL”1»{ +ìëYp>_Cü³ ÜÜÍ +cHó_Lh×|ßqåïѲ°­Rƒm3!=’üŸH²ð{PDVÌD.%]0›ávË,›65½Yp¤À×þG‰6”2óZöGÆ?K,ãsÄM"»Ð…Y ÀÐSÙEn AÈ +àfƒ2ñƒÿŸ½÷ÕºÊ÷Å_ÃnØìb;ØÁÏ좽äÅyÑËãP‡:è%/zÈKöŽ<ÔP_ô‡ºäá1òCtÈa<ä°Æ!‡2l¨aïШ¡B£ÂÂboÑа°HÑPyÿx­÷YëY{ýú|žg›Óç³A Aæm3ˆãƒž¿Åß‹@Ó¥¯!¬4ÙîJ"Ä*Úß›Q¦Å\U„^WäÞƒ2h!lg< ÀÓ XMEl‡@ïv)ËmÏëÅB=ÐCò9Q]‘(/ ¿p¡ŒÑ‡Ø;e6Ï)X‚´¸TS Béf[€}ïªuïÅÀêký)Ø /©²°pc7,Wyeªp¦ ‰­»B°Ô£Ú„¼ËõÉ€>ðÞŒêÒÊÉ€ïj<;P¦dúˆ+bWôþµ*··;^xÀ©ÂбËÍßTlì§LèB†¼\(é’“Y~X¡1G2¡爡ÜiHÉ^ê^j á6ïùmæù‘@GMÞ¬D{MçÙtášùFv–p=´„ëî€ÄCüj{ ïù y>è=o˜ç­@[cNÿ Í»wÚÎå§Ò|a¸Ð1¹ÇÔ¹MD~mÆó|¢nìažôKûÍ{,4m½ c¬7$~z²Ú‚ð ¬Sן/ !{^ì9¤é¤É.hw–pº¡° +×hh­‡Ò“¦¿§2å4œó½mjxç~çÿÒ9nš~üý;&åá¸GmèÚôçuÐ<œÄñ GÆÓ’‰p\Dïàýüܼßcʽà畼X/}ÿRK@^Óäµj´»Flœë1aô1!2}JìÁwT¸(cíèõž+’!wóö›öSïÛtž½jžÝ(¯‡wìÀŒÍß y>è=o˜ç­@[þ£}ß[˜ï&·~áÜŸÌ„È?ÖNnˆÔ't.wþ¾ +Úê4…æëmóÌ%dû…ëôŒ„¿‹ÿnbÚé3ÏûDä}É#s72íÌÈ”»Ý”ûu ¯OìsßqXÚ™¯>á~?žx¿¦éGÏ9w{åÞ”0c™\ÀÖól‹Øoá¦áÈxZæùB3o3Åî½F |É;ú}¦Ú¹Û”y14î^8àt ^öÁ:WZ Š1€>V€Š,€º1Qö[ xk±÷|¬¾†›×^_¢ nÍ\÷!Añ—fŒcòÅ¡9Q]™(ð¬òìJX%¤;où^i?zŸšò…~%ÛòEþ߀×w›¼÷a¯‡ ¯}킊g]E07L*̶^,‚ïð»]‡¸(߇©à5îaä½aŽ‚û.ä6û2¸O€ÞX§Êôûz6¸¿Bï7»OõZlxÝü;§ÜCˆû4é&䯳ö:f­Iu" +žïñ?…5­¨5âj ±_V!pÍÝ#zÐ-XÄ?ïÌ~õëððx´X"°XDÈoA"`ÚïâƒHû0Ú €[ÁCq´p¬zÀ¥îÚ^1m–ÄŸèÜ"µ=&¹ü½ âWˆ¿£ºâ^€‰ +f“ý ¿ƒè<U·ÚÚŠv­í• ÂÝ "Ùw@¢U×Ák( 7p½ï2uïõÖ‚&È9ípóþH¨Ý`¸g|3ä7÷Ö7`þ~à=w•øÜ>SÎÄÎÁºHÞ‹‰ëfˆ—!~o¾íóý‘©ãÞeÏ ÓÒÀ= +uˆõÜxÎÁ*á©“+ßwIUˆ™§WýN)]±pÍ­ùzÀä@Jª‰îØ‹*Œ¡3…¬RHiúΣ^øàâô]§^îEˆoÚQ+Ç;4O=hò;eõÿ¶HW‘6Tì¸Ùc ~Ü2mv î9EâUóZ¯ó Jc‡_k:·)ëšñ@= =ÖP‹ü–D;à ˜È±EÆ—â¶»ÕÖ×h×Ú~öðM¡?ð.ˆü4ˆX ‚{R“r‹›@®ÿzÓ~JéX÷š€kô `¨Ã)«éti€¥œâñçà/€ œ08Ôƒà;¾¬Iø v®Oó²íDÜvó,…(Cï£óp­÷<µ¾KÆÙî¿ñ}¥¡ü¡~tÅ" .‚™ŠÓŽ`¢¦«"A™ôb¶‹È‹Ú†?ØBÚÖ%0Ô +?dÆ^¢]\|ÎCSièà« TìòÓðÂ‡Š¾gÈß0QÔ¿<|Ã:6šî”ù +À{™qªX|s¦på#Ò%Euù©ü‘ŒC³^gnJ­9ŸC0Ïßr~¯ÅÌ‘&`5$©‘ͳº)EÐu«­ih·’Ø€c~Û_ƒ”»ð=`L’ Á¦ò&A^‰‚iº¡w¸ hs3êqÊUÏ“wX÷Û­àžº ”Lœ‰ƒRN|=¸§ÝýxÃo2u•@w¯"Tê5×+›‹T›`¯6®ÃDk …˜[å'`ƒ)\_8ž¬7ãÉy£@ÂõdJ>ìH)æÄŒ:É‹ÀEõza?îU'ÔÔ ¥­íª¨.ttÐßW˜h3z W6Í8&4£5Úш‚!Nä:Ä ·®¾Àóì[´UîÿOs¬ÈàæDYÍË…¬î !ª+ÈwákX‘ï5¯³Ò5w"Pà·q¹æÇ> çÀr¾£¨³‘qżmv³­Ý°n¯ç¢ýÙ†‰ûcq¤…­à¡¿\—×›qŽ;ý­‰¥Ð=:Ð.vþD¨ÊWå”uýú\ðÍ‘çHÇ8Yë UCÍ^c~ßžõfÁ†¨u×ß]& HD |½¡âx û~›ik;øÍóGQ¦KÏ ¼ÁŒ«dÿÅ 2™+`™™*Ð^?ýÖSï¶Lq$žÉ¾xÜ\ À…Ÿ²­ÞNÌZTó¡íPuë;Mÿû@ªö— 7é:r„ÞcV…5°œÊQZ.É‹Aˆ¨©CD©˜ÒWRçMó0ñ°[n€Ø†òõÃ"î¯MŸ‹Qýþà†¾Ë1„`±)s°B»WèuL…¥: GŒ¨ReC7BÞx;ºÕÖtp l‚}ˆösäa„‰þ’œL¹Íþ·3¾÷Øl”Çé„SÖ}t+ÚÏßEàÙæî ²Œ­ùi ú+ î7@$4ëtæ1ð ÏIp·™º>£·vž×çnh¾J>T™u8¯ëÌøvšç³Q¦KÏ +pŽƒ„V©_ˆŒƒ’‹Å ¡Q*º×5®çÑ\ûtÊ0zf®×ûBó•1cŽ ¦!ɘ3¬1åÔ¼DÛ4¿Ÿ2¿·dÚÉ™@h»­ +í@hfóÐ +ô“K©:uÇø€©÷ ¡ýïÂouÞ¤CBS“9B“1eº5¾Aó|0Òæã&ÿQ¡©Ó,¡}öE±võ3„6«[LÙ”) ;N5eYâäý´¯¦¾Ï€P;Mç™ú™˜(¿Ä”ÿEÅù‹ÍQÃå'!5_:ÆãbM¯FÌ3-ÿ’)Ÿòµá>:/íkbÏ?Æ"mÜkòŸ®‹û…fˆwš15͘_‘v^0åÞ8ü~_5ÏJýôÒw”\ Àýh7ãZR¨*¾uïü4©÷x†Îø™i{%&ú/^R{A÷‡U!&B.…© u<Šîû°GwDì@\Ë^Ý8WѲŸ Ø~ã ¥ú¸~N€Të[ õ{ÔÞ^‡<÷2jþê{ôòfƒïzù(Ž>l4cz ÀrP¼6¤îwƒm*|k·aiÝ„\¾ß‚ss-8oËa¯á¦›ß/¢šY[ æƒßÿÂÑCWçÈf´KÏêè»t³­cà¼> Š€ûAÎz-È®=ú©ôj¨ì¶&Ó®J¥ö CsÏ*µÎÈIh:å”z Üëit#¸6~oží÷Ð gRâ[nê<†¼äs¼ú¨ªÅ߃+ 5p\èxÁ}¦Ž!FÔÃ|!5x¤Ò{Q¬g¿—¼¿¥ÝÙEIR.×}Ö”‰p\Dž•8t‹)7ÉoÚTÍ‹[G?¸I½2µ*¼ë,Sg0wFÈýûÏÕ«WÈ“•ޝÈ›nò|î÷ó<ä8'•Æó”KýBîG„©Ð8Eè $ÕŽ¾oÓ{®Òˆoœ¶N›g©5Ý’zÐJ´)’æ^sù±Ôr²î;ºÐ̼c#2I\âô¾„×h#Ò–Bè}»Ù„{ô¨SnL¬¤é^áù¦ðPŠâÚ[¦LC¬$è!'DÚ9å¦)ÓŠŒ«—ziÒ“þ£&äžðŒL<À§ ëÉ‹° V<¸F¬$…¡›KÍ/üˆð°vŸ5M;[Äz]zHH`¼/aCÝËGúi™ü2Z§ÈÓ1¶*¼«Öy(7&a«böÐRãƒð€=#9Ì1ýœ‘rט¹ñUùÎ"aq¼ξÇÀ^ê¥^ê¥^Ê$½PS¬Í7áêER7‚"ý\pœ© ëówVAéÐDã·àÀF”ÛÁߌøÕƒjØ +àç âÊ\„•¾Ôœ$i0¤˜òäÕM˜ -û¬çe¼¶øï®D\›z²àÇ ÍOycò~zEGÔƒô`2!ä+å"è•ñ)„(¥`!h6>« ¬úp¹ˆ°Ã§-ΘB×gÝ2_FToxå&–13ùa·Ú|*’!A¹lïšÖwH9Ø KaïÃ6ÂjߪøÃ ¢Ùjͦ`ˆ K¢&ö~8dsþ%¬FùTtàTa!§e=xOé$)-û'LŠÁÇ íq7àG]j§=èÁŸ¼jò¿ž}׃8c=ÈD.F>JßSg©©s +djF‘gd®u®n…=CoG<úžÂ€óÿnO•X¸ðˆgO™6Κ6oÞríÿïw›É¨JÁøÁ¸[ NÌ¿t®¶™[‘wÒòøq—‚ +')2K €ÙæoÌËÕйZ•V.ƒs¸´kÕÉêíP*3\ô[@墫õ}zЃL.,°–ƒ|ù0׉# ·}w$_Û]’iëᛆ²>Ú°ÏÈÔ;à‚¦™ï‚ÒÖ÷@œ£¾öfÞe (µÝ â,€ +Œ¯€’ãл¹° Īx; Ö´0e¾éJˆ/˜òULǧ‚gý' ”ûŸü+( Ý >+2mÄÆ£~%þ”¸ì4î"˜í°Hs>¬(5òЊÞO \ýç å· a1O?H„l¯^.à ¢A,BðÓæƒàâ¾=Òÿw ¾–ýapÆÁorÂü_E˾aذøì"âÎ[^OeÚ×1ă!u"ÕZ]?ðlæ=Zz'M»÷#D5õD*Ô¹S–¤HWÇ~áyzÀy§”Ľ¦Ûg} R+q{|'€—PO„;‚¸¨xy[ôGAæèf1PËŒ­˜èÝЇkÀ3ÿSv¦“מ¡w€çïr×…-¦_µ{¿DÀËÀó*5)îöC/ÍFÜßZ´}JB_©“¡³à»¥¾ÿfPRð Hèl‡ur”s9Þ ,çu&Jo•ðèžoG! ODž«u}Z¨¼7&TÄ”8Œ Ô>;¤Ü4yƒ¼9B¥½ÒWËŒKíYcíºpQ¨%^¢¬ØjùžI¼«‚v{é»I÷iN¥{„–# ¡òè-B? /eê=#„XœvU8ÕñË#åšB‹œ„Ö6 3†G„kód¢gņ-3ý5Ä*Å>`ú;ñ-Sï§îí¦Í‹B%Ñœo‡LO™~ï6ïÔÈÔÓ¾ß4s4b~Ÿq~ë{5õEhïîçpòCõ5MÎóióÿ|áZбܒ¨«>;Nš9{ÒyÉ[;iÙPÞ ÉLŒû¼«oÉòkS7f­á& ‰û¦3^ÛXiMêw ä×e¦™¿#óKjöL$ÿ¸™{}³¦ù=K¬o’Øúi˜ôXœxÈŒÙo/õÇ*¾›¶=ÉI+UK&Œ·Îä÷Ò÷;‰”kíËDhÕès¾©ûB$_TßaKÉ» ÖOŸØÃcªólj¦ž¾ÇÓ‘üýƒ'å´HûŠåÍH±ô}±Ö<#f<~µÄ‰Å‡o™üf O$ž•¦W…‡°ÿ^¹C_ûn8ÏDÚ×dj|š÷¶L\Ç '/VßMŠh ¿ÛIázJ½C¿Á—‰ëåiÓ^ÎÖˆ)Ê4yƒ‘|µ¸ +í%@K®i_ ž‹RfŠzHˆ8cûE¿Ý]8?5Lýù¯æ¹Nœô=šÎ³7ÍûäÖŸÖ=/–èµ—úŽ.\îß4åbNÈDÒçó43v5o8iÓÜ‹؃>Pœ8@(†: j¡¦Äd®3’Nâ0hÝX\÷=à]ZÌϼÂà{ø¢õéæù£™úÓAÑñ.Xñ›*…^6ãÄïßÅ›«0QL>ÝíðÇÌ8:î@^7¦“p¦/ƒWO+¾Ë½êÕ¸bøË¸r±.vëØã*Ä…àà\Δç‚.pSï0¼£Þ‰ +ÅÝáN 4óI ï”W&Ï{oƒù{Ö s ¦Á†Š)Tëú YeÝ‚¼ý¸)› +\”³~Ò9xöŒË)†àÚç-çgÂWiÁo·6žAø¼ëWe¿d<Œðç SÀÃ|¨S ò-ðîëzðìÉH}]lÄa€Ó¯NØíçp㤢¨Ýú¾µÇµæùl¤aÈ”ÝÉß&ÚØkõâ‚ÖÉÅ/Ôú3ÄnûÀ;í•à|~Öaÿ)ífžö])¢¾Þe»Dã*p•šÆ>~ÇKàvÈÜÖ…ðA OM¦ +û¯¯€k}´Kíiä¿›Áý‘ †£¦Ê©ó@ÍÍCq#4oñè•J@…ˆœ/ÀïåGt¡< J½Gvbòí+þ<nF8ªäepÍÏ¡³h/ P¯a Œ\Ûô€+ LD`³Í4pHΉ´¥Šb­Hþòaœ7‡ÅjPÛT9Ó `Ìñ»@Ê=â +kÝ€¹à™:\ÞrÊÆà9Ð/ÀsÞócæù}™qh”®ÑHþ9“wâŠx»M®¢lˆtÇQå2z𥢺 œÓ%~…¸&±€`ý@ŒyeT1x ÒFxHD 9×¹“Àµ«Ò¥[ÀC?&eòa!¨Œ||—kMÝGö¸§b +Ç9؈ƒ!îw§ÉÛ‰ð¹ñ9¸ÆºeÎ|3¬Ä Y!¥èCˆÿ\ß·ÂFïô“ž¡ Eç@Íÿ;ˆ¶ $ÒwTk7A Cò1,Áµ ÖtqÔäeþÿ¨ /]7A\ À&.´bYcò^@~#ø& ~:‚¸É0Â! »ÓaµˆSšÐ.ôæ+¿F{XãGÍ3žµCmïÁÄE{¬Y£Â ÂÛŒòXÖU¡Ïôû &"L…˰¡=‡&iSÀƒÀåʘ¨é¬H'ä«¢®W?Ô:öŸÇ®5TÔ›²>lÆ#D¾‰€»`×€†I-‰þÖ-¨ hAžTˆˆ€•R¬D:ú]¬ÿõ âß®÷­h'æ ®É>jêÅLvÝ2ã‰2¿Ãevƒ¸mÈ< ´¤Y®¡«ÙLú[ð\þqÑñßF­Á} Óó$¬”Ð>€ø]î ¸‘š2©{0ßd÷,òUÌ¿*PQøx ~?xÀMÝ…‰D€î™÷º©—â`µLΦúà|®‘Þ”ÅsWÝ–µ°ûXÍÂ6"oØ ¨ý¸þï']ÿ_ ~ð2uˆ“ã 7Âr¢«Ì¸v"Íü}{îÇLuýÆÂoÏ¿õ°Á˜ôúê5pý¥¼’~JÖ¢ý:`¸†@¢üJ{5½’Ð0i!øþÁo­ÀçHßå.µƒàÇK!ÿ{Á‰ß +R!„=xT,ö ˆ(®A5§Ât35cxåR€OaãÏïÆÄM°Ü0+AñyT<<”ègD|!>ÏYQÿ¤°Sw]¥ +a¥Ü¦;ž¹°JD)qÛ8ÚÅÉs½¿€½[ Ý­þô8è'€‡¹ÿüg6BˆA])!¢ð¸á†@Âb¸öKîÜ;–Àaó·ô +ÁWWćÁyÓ±3å÷€kãðEÞx7`éï&ämàîë‡Á9ú•óü2ˆÏ‚û¸Ô%kP,$¡Qî¹›ƒÈs·Ážã¯ƒëîAxËyÃÛ +JB ÖtS?ÅÁ_ñÌpÎOˆüSo ]øÜç+)Y àï‘Wäü>À¸I£à>Ý,•0Ch™ßËÅÚþ–DýK™€´ó‰†ù8PnXh?9Ë1¥8)ƒ¾œ1æ¥qÒŸuúר|ÏÖÕt»SOÇ©v¯¡Xè~zAÚƒêèûi~,ÚYî;ùiLÒæ"iÏ)^=º÷bãyÕäžSËäßoÆ5bÆZhªv‹™³Ü¦ ¿‰š‰Ðdgªé#gvtDÚLéqMrÔ–:fB§I£'êš‹Ùü‡ÒS'´ž¦ ÷ÂqÉf1íøÏï4Ïcæ`-“ß äÍž#‘º}ÂoåÛX÷‰5Mº(i;z?I¢¿ØØæ·Fû<-Ö|o0ñ~j* +¼å®‰˜ z7ÞE}¨„ÖÌKfþJÏ<75L»Ã‰2Ó…ûpLx><`æKÓQóü!IûVyÁŒóIÓfŸÐ'ÇûBüPÇ?G/u9…6…Ð"»‹ÂÅsüᢉ‡gm™ü¦ä €“Bät·p¡éAºÄ)w¯Xg¹±Í”‰—Ú÷–8 Ò´E¸.Šu¡ÿ—„4V;]u¦1b~CìáS±)ypß5”Ô|Žó̯×2ÏrLÇÓ +ä ›¼Ø¡ß/±Šð™)aˆp~™14¼1ˆðÐÒçÙúú®k„ÄîáÚ:#DøóÅ:ñ)Ù þú¤TszÒ'–hzJìz»T;@GLî³9b×}ì{è<4g3ͼ|#<R{F‰ŸaiGÄî7®âÓA +çÜ{ÃyÖöók0ð~šÔÏÁ«ÒŽøÜ¤áƒ«†ÆÖw9bÚ‰}CuBtÒô¡>(ôÝê S8Q¦)å0˜h§OHÈwÊ«S¶9‰z½tSjìnvEn‚•ÚŽä·L~Sò€H;ÇÖoÆñ¼WV©åÜfÔ6›w767ˆ•Œˆ(PG9)@ŸyÕü1m@Èi–R÷: }ì§ã’?4§ £ãÎü‰©7ÅÌm©óO+§È¬„ˆtÓ S÷´ùV]à"<¤úÍøbÎ7Üo3,Þ~ q½-å£01Ç@¹±´¤³tDÂpHÒÞàZ‘zG„Nar‘ äǼ±¿júUb¾Ô!Hg€ŸM™f ¯_¬£ ´ +Çä¿‹Âp¢ÜL±Ž£N ç¿®½^ꥶzØ G„¯ºáÌ5¨ìp$¿eò›’'.ÊÄ…òî5Ç´óx MŠœÏ›¶Ý¤|N$9UxpÆõ¼y¦eaæ<½m1cž!öV''æö¿S+’?˜«PšbÚëYçä€äÝ~¦Æ3E¬¿W ÛÑïõ¤Ï«RßݲH=O€½ÔK½ÔKßû”òp +4¡zTæX à¡Å ÜÓT +N`¢¢ÆÙ@9Õ„Nieo•ØNï±Ê¤ÅæÙ5ˆ)IXPÅ–Uθ.™¤°T°Ù´½æïaXèqPyjçÄâ“ +ç@êÁ*â6cù_hW„* °gÁyÛ‰rOO‚Ê>àúû;äµ½cò ЃôàÏÔÊ|ðLz€ÕÂÿD|¥!Ž'¾‘æÿDu™×aíNÝô Æq©ÉÒ¿ø+ÿˆî8ÍéAzеœÉ¹vMâWçòvÐ\:g1¦æï'`# n@YD­¿ #(.ÍÔß Z¹„<ƒÖæN?£Š'À¡X#¤L@º¾tA_:fÏ®NMRN34/æ¦õ· 2û¹÷ü>Xs3…c‰v\øG0Ƴšdý4Qù¾›§ô =¸z¡¶4ó<ÂúmPr|¥8èÌÏÚœé©kzûÐCê2ЇÀ¶D=5ßàÿ‚¦ÉŸ‚¦–‹@F5d>î×wÍç?%°¹ú»@IôP¤íU Ùòæ² +p t̰é«€ŸÃº}Ö‰ÃBp"¿BÞƒW >˜¨7ªÛÀra_M3ÞÝàUF Þ5e#-ºïAr qàÏÀ‚ïxi`y€vœ_6a¹)ä>Ö…n €Xßå@™1×ÉîøÏGÊ=€ö÷Šõý(ˆp´ïQÝ…õd  aäQ!Ðnˆ°}nÊ–p°ÓA{óàUèÍ ÒÝúx qg`~ÿu9è5à÷pϹ×6!Î!ç $Ö:P +b4?ñT,€—[C ïÒÀ>¥ÇË0qŽ‚ÒŒÝIuŠM!´y}B³¨œU@ÌäE±Ô ó|8PXÂq”BÅD·Í$®]>"a3¿±@û!3Áº©!ùP‘½Ô½¤fg!íø{…ÚÓºVB¾,FLýPÛƒ&oPh¶u&1Uî|QhNÖ*4>.yEÚbãŽß.í¿0ÏcZóSM¹aSî%ó¬O¬Æ½*S¦,Ltü¿*²ÎÚ„«IZJQv¦Xó¸W…gÄ7BERž1+Œ–X¸?ÀÉoòûœ2#BÒ-f̱6Sï?ì¼ÿ½…ïŸJ:®T™éBëŒ7MŸ3Í|Ý/´F‘´Ã{Ä®›ÛÍ;©—”Žú2 ­±™Âõ A­xa‹™{…óBK†½÷RAÿ!¿,¹þaæI„{e–ÐÚäpïçæÞ¿f$_}s„B9«ù{êýÔB.d™3Ÿ‡ðì‰Õ‡Xór­ëÙ\»us/}ÿÒ~!A:`æˆ%ºÞ–¼)Ý …Ø3Rv€ŠT'¦ ÿðjˆ5Í\hÊ<¨?bú µ=hÞå!ÓF(†8Ä`± :Câ1¾5µLÃ㩦ÿ3’6¿Ó`¿L<$•Hù—èô~ÛÌúéKdßcòbõõ½CV> 'O$|@«sßÜRíé]Ç[¹÷¯ƒ;]Ó.)$ •ᡞC :‡¡ùQß/$꧸A¸oDÂδÅ:~j ‰½†p¿œ6uû„çÀ’Hû¹þ•°ˆ9ó:.ýÁ¨Ó¶ÔÜë÷ña,ðŽ"ÑA,r/’wÍç‡#õš‰úº†NK».}u,׋Ø€"º018ÆðÞè(~J…Ê(Â{¼ZŠžÔuò*t'n¾¯€V¡]ùt5(VÛº=…öØ ¥ :-ò–tœ‹¥¾ÙŒqlÈÇLÿö¿6 +¡¯G²Ö´»qåÜND˜Mð;oÅ¥>ü¼§œ é.»L¾+fÕ8 +)å-õ-ï»›þÒ´y=Âñ\H‰`?EZ{'xíQ7b¦¾ãcàúš Š«`Å·ªœ  –‚œ{8?_c©Ô+aƒ†6îG°JΗÁýrý®ý&úW·Á¡þgJpþ÷*¥0€Î`©"úÄãwh{©ú€Cá'uçsÉ~\ë‹`¯ —‚çúÎHÐV¿ãa´ß±nÐ*Ð"äÄÍ-U‰e€ÿ:Ç@‹‡C" x_«÷–€ bTrg­°ÝŒu™ùÝ"Ã]°w_‹PnŽèÃzp#þï@ž{€¥¬'r +žç@$p x ªßôOV@º¼/݇p¼s ¹YºÐé<`þŽ&ƨ::7%ʼØ«œg«@䕊½ ýÈÓØ©¸"ÀÁ5›2EN"Еà8—‚«*£C–€Ž?„Øô›¤â ( +Íãl´ûpï~®]E®!­ý/E\ÿ%¿Bç=ó¤„è4–>»áØÇ`w(€—[ÿËH}U~OÛiþêþY‰L²põA§JH©ú Aå´l•xv‚œÿ Ø»Ö!NwÂ/‚¥tÄh Ñž¯ƒƃæ÷2ð`pCð~†úaZ¸ ¨`)$U +»ÀÃnø-®ç E<”Ò¼P òNàW@øZ¢ÿ’ƒøHh(‘v‹oIŤ‚Yuе^ÈÿIJùQAèlÓOLS=†@Vr1j~yetþCõCÁ®bPìHP–î¹K‘òrкïB¡Â¯ <«©Xjþ¾ñØŠ™­w`ƒ- ï¨ ¶ÝÐÂõAµšS~BP61‘[ôûWè‘D;} ÆíÛ ®j“>Ž´_¿Ô»–”é†iH‹w1¸¹æ!¾!.ƒÈó&ØrO®ØþK„9ÌN9àÏ`)]€ˆ@W yº|×ø.|X¡~]ˆ !-üÔ÷Ÿη"iÝôÞwz(¦¬’¡±vz`©+ŠRØ ®¥[ÀƒìÂ>Ý„N J¶BÒ*šç×"Ž$‘È@g"ìqó7åÀM‘kŒƒ½Õù} DF›Áo¨öó &²ÜþëpÐëÛ¿ž™0QPæ›¶G'ζ‚ßo} O£Ð¦" vAQa'øý·!e;Ap-Â"¦Ug!˜"Ë#°6‰€æ8 êwb†Ò)ôœÌfP\6<ˆw€Ø[È›±t“iGºä¢. ~‡ pÓn¿ÝMà¢-ñK‧€H¯ :T*™ÃÅhGšÇ<‹¼#Žà;nޔؼ›0nþúè XšÛ¸ºþÇ­"ÛÕ Ñöâ÷¿)T!FvÜ©_çî&üœ·UàY´áPÍUa3ÈßÈ7ë"Àc ‘²$ô #u'ÊÖà8ˆ@?×JlÇh§"ìN9Ð=#® TP¥r"LÌuÊA_¿ïbÐܲÔ ØŽ2ÉS f‚¦…£àš\(«æïë<kþ~»© HœÅ¤”ùükàùŸª¯à†œ?…ôyÿŸV-£aXW W5n59j¬ŠP»vD¨ü@LQ:ÓÂU Éaç™jS6¼÷ðßÏ×r i©jÔ_Gêêü5"ù%e:Õ‚íD‹×Mý¦\I„EM±:ç.¤æH5rßkÊ4S¸nÎ µˆsÚܸçtAYM#¦N(oÐä fÚ8šés8óþ~`·ütáú?iŠ™ŸT 5Š2Ò0¯¹õSb¹´Gl&æ±åÍFܱëuÐün꘼Ô÷;`æ4fÅrTÒÖgÞºPCÛ}6’˜«‡Äšnž4c }§6Csç04?® ‰´«c ›O®íXê~áÞ|\l\w\Ç…ßôM‰[Qhÿ¡ÀYºþS!°ûL]]7§…kg,3÷þüùP%V§û„ç@§‹ƒù/¯‡Ð §ÐãfjkÝŒ46lò—x¿æÅÔL(¶;A`M“7OÃün˜ß#úSLß©€5~{¡ÅÊ+)s5Ø‘º)6O±4ÝÔñPŸXD®‹25G©¾Ÿ1y©(vîZ¨OÇÐÚÓuŸëW°XPªáÌû®ÁþHù–ùC@I2bv¦ä „Nà\jšöyúnú®ºÖO‹EƒæY3PÄä…úÕz¡~Cïߊ¼ +ús½\øôÐIï'Þ"£Jê†æG˜Ô Ü£j6«!¨JYêYBd«DJ¿IK„Hô}ÉGÕ3­Œeªÿ^ª‘ü+€ºZ¸SŒxâ0Âf@—AÑò5»+ìT 7¤ýƒÐ{,Ed)q‰æ-®ÐW)tª„Õ©S§àŠð\âeðþzöji¼fêê9§i­÷ç;+´­Š=¡µµ¼ÓŒ¹šVØŠð6‚WYjÆ×ŠñnÔ¸þoFZ‡BìRJ˜êsÜ“ýî6íŽÃŠbCЩ³›ð( +Ÿ‹+ç»["ØOA×á¿B»þÉàw ]…~ îÕàúY îéÙæÙÃàÚ\†jóQE„ ðýÖÊ/9u€– 1ø<Ãß÷“v‚g÷äpW‚W «œþ_×n®ÿÔŸ¨«…{3¸A'Êè²ÇíKÊÄHóBwx%ZÜ:¶D™qX„}Tf\ž(¯ÐM;Ò”hñÖ­à=©¯µ¯v­zC`9PM÷ØÞ ð~w=xhUQþÛ~ßm Âëï"[ Q¶yeÄËà¾y$>×ÁXz5ÂÄê€ù›ZZo ’Îô»¼=kúÞ¢jð1tf±Q:A€9˜ ~›Vú ˆ0O€Êm›ÌJ¾`­Ä´õ icò~ð/ø)€¿† æõC0FIÉ~úôÿ_ú à_P¦ÇÑiÿ=¨!d°\¤¾nÊþ´ +R™ ö-¸ðœOh±©†hÊT)e2¢ +B)-ÝE°õMàÆÛƒ¼íî¸ÓGÌÔlÀüÍÙ‘Æ ¥ÄÔ Ø" ¦¯à¦= ~¦\i @d¼V‹6öýÔDêä9¾¿Ý6áéûD¾ƒ¤\#gþGÅþß;î3IáX ŒçÀÃö_*ö¯ ðOkÖOÁëˆÿ “Rðâ¡\³ž“õþ¹ï¦ ôŸkôQ2‡=èA„üÔÑÂýDŒ!cÍû 7nþv‚ÀJÌ0ÞßÏSJL«y1g6çMµ¦ß€•¤¤D¯ÀÕcGÚ ä8ೈsÀ>,†åb.kð (­Åíß"Ïé„àSÓø!Ú¹—C/Bczð§ +/€çÈÓêÜš‚û×°çM{%–LUû} +”8†`hÖ¾&×:ƒ‰¦òS@Ë—ãˆà•˜# =à½ÓMÈ›/¤\õž'fî§¢áÐuB7ØË èsh˯\ÜlP‚qq/p‡A‘ß +„'J½Ê]@ÚÛ™Ÿ™:%÷îW‹)@ä—âªb ðÿ€E¢?ð¦½_"LH* yzëAzЃL¥‡—@†¶$"â½ üðÚqˆ›N€:+wé­ý®Ðï' ¾Ôý¼m¦ßŽÚeXSáí^Þ&P*ú bºuÒ®AÚ0¿«jáBh9pÒÔ¹G¬9ÖíÎÿ­„Fb·´p5òš oJ>ˆ¾ßp OMðžŒÔõçO“jçH”qS§Z°hñöR/õR/¥R±y™X³H7¨‘ÂE¡¥C,JcŸð<~UìYþЊ!fJŠSÔ6ˆÈMÇ…ç¥km1"Ö´qLÒÖ4Úïy±x4×ï ±¦çÅÒÒ¤Ï$ÚxÚ”ÓùQÓìPp¯ÿLúOËn8™ i7Û4eš‰§™¿‘v8$í6Á©Ö Ö/v±Î/¬±¦W¿0mô‰µÿ}Qò&8îüÍk^ö@¤LháwjGÚIý^ê,5¥ ºzèÈÄCo° ï»…ë7î÷~“;p[1îÃ’èw®íòûÂÃgLÊMI—רûÞ„iˆàïš…n‰Œ¯%<‡Bf ÓG騮–ï«i8Ño«°†ØÁk¤ìkÄÍCBF/WGñÀ±H¬aÒ|±á›Ck²iò^šß6„kêiIûcñÓÛÂu©~2RÑ!dE&F ‘v`¤ ßçÍÿ‡ +ú*üv-3gç…{O£x*™ŠæÙ/dO qωGxýÏän‘4r4eš…“¯¸ +âé&.x'ÿý]hJØ‘Ípa}1ïñˆW¦d<½ÔÝ´\¬Šo„ë)&t¾ÝÓÒ~Ð=*Ü`ç%lß/öóÓ£N»¡MÙ÷ 9‡†à6õ~-éC·eÊ5¼çêÛã@¤_·îBS–X¿ ¹ÆÆaWÎå×BiWÃÌ…¾÷`¤žrwxÏ—›ç1.uŽÉOrF‘Tò}cΪšÒÙ÷Õ¤åõ[5ĆCnEê(c¦çêL!BÕ¶rßXç» +W«~ a? ê;äíÈ\Å®·”S98ãTÇr/ +÷ˆ@vû™¸æF¤œÐ~Õ_úÑIõë¦ASXbqFa]õõrÚümæêTݽôç—:á\ú„‡^hOn¦ãæÔZ¦¯†÷|†ðJG„\êíºM±Ò«LÙóÿ#¦ß“vL2Ex@êÆUJþqSGVÈce,Í4ssÔI_m©ÊGvšˆý6ÇÅž%È?5×G„‡~ +1u‡]‘uÌ9Õ ¤×؈Ÿ23„‡_Êcä’vHV'é÷=“h·“ïë¦áÀ·jšg­HWMþ°A¹ßS¥«¹~«rµkL_ú$PfLÚ½jÊBG…ë.Uf‹éS÷›zšMqÑJúó8"åÀiwè5³ _?©$\¤štb¥EnÝßK>©)q.ê…Ì÷r¨fŒ“h™ü†ól–pó¿(ܬû…¾_W„GE¾‡Ä™fL¾¨ÏOÊÕ5M;JÕÏȼ³›úÍü‰i¯Î7èx'#ùËÅ^7="üNzàål®!Ö·ÿÜý"aï‡g$O¨÷ÏÔøRˆs†é癣—„ßõ–Da±R¼aá>K,’:)Õ¾“~ß‹&F»ñ}ýñûߤižµ"uRóm ï!7uÊÕêܺϦšgïט/=;bRá>±:cúLÏ‚C™ïpZ&´#RFhýaïù¡L¿~Ò¹©RÇ]‹Z7{FõÂ÷ oZý¿=´©‰ã} ÅÂJРï‚ +KAó€{}„P{:xÉý¾!lb\¹ï‚*¡§·ƒ]ÀZ9MÍÎnEØòÈ…!p¨únÐʪ4HœÓÀ½¤=vŽ ìU¿_,ÒßR“çZ<ǯ‘&C A…€Þ §˜±Þ€´ÿ¿_ßÒM#±–~[ÕØ¯Èh#h¹ ŽŸrßµ'øJ-™Ç…œß½RΑ.‘°vmLá*•J9—: +*ú¾ ¡ÄAc5”¼§*¡å`¤ -å¬ëÜ+~\ʹ¥Ü|ä$&ˆ–¼Ÿ?×ú½Tú‘R¸R‘iHtÓP®r¸æ|<-–›w5ÍŸ7ÏJ¸øaSÇ/Ò/\kÏGê4% :‡Ýþ¾šT*S+Qï!±ëBá¢yžê¯\íH`žNK^Étº„õ-TÌÝÌÌQ rñPT×GáˆðL¤%/I»åœ&½(‰Ã¢IýÄÖåE±º/z’†%Kì €o@—¶!n£ßº@}§ ûA‡cÞ„ Y +UúíÈñ‚uçj¬{àA*q'ÈAäTl¹á@juÀü=r»1? 1(å\¾¹ñ@Nu6ÈU”p¦Ë@Êý0Ê}¡ÿt ¤’‰U»W.y_r`•‚9 çu wΕp·`38fõÌøP¦¼€öÇ€ue}ä"^CÚ«b'qØ«xÿLÁõ¶u 6ÎÀµúânÅß׎®­}h_SU=]V…ë‘v™‚5 ¤b/¸&@.w7¸ïŸLÔíW Ø9º t²õ¯HïçÏM­ß&Ä!O¥^¯ ¼ç?÷}êŒý©Ÿú!ùðLIö»ßéSðüÊõ[¦‚8àX®_qÃîdŸEPW#·ÓºkfrQÊÌLà´}Ôôÿ¤Xó’C’¿û¬ÛoÝ{íNæªeò<å4S\ª*\Å#ýúeüñé¸Jll«(¨h»"ü¾%ßÒOÊ¡VQØ+yç\š"¼Û©¦ü“Jº¶bf­:_zç¯澑4WÚv…©†éãUáÏEATIÁ£¦ÏYÂ{åœ@,‚dÕ4,VŸC¤ÜN뎞dÆ®ºßH¹†v§ßWÓI™¨9ßL¼ûT3?1ò\˜ànpµ#¦l7æiªð¼ b£wÆÂž·L~‰Yz(Ixmh¿1%_Uô,íW"ýÄÖñE±R +M9‹„ +×ÑÈíT›RÝiæÜK2q!è¡Tâ°¢Ž³HMÇ ÌUËÔkDê½)Ü1D©¦Y)'w0hÆàŽOÇ•›·ª +*Úîó·."UŰGÅZÌ4í…æ¹äsiØÔ鹹騤ãÕë|¹ù-bÍhKæºá<ÓØôÇ%ý­ú¤~öÜ;åÒÓg%±§÷ÆÏGcïËdäÄçÝü¾úMD&ší5ÍóV N*bÏ¿f oº™ÏØ™¦gJîû˜>Jçb¡ÄeŽÐ{_ÒŒœ.©Ðë©4&áµñ¾¤-ªö+‘~ü”Còº'|â"í@'¹jóBª;mPn2´Ù«hÕVí×}ŸÊŽ:˜«–yßF¤ŽnŒ&²z$,}·XšbúwÇ^ʹ¨RNMßwŽØ·0E¬'JÎËäZ~LÂæu’Ú>§¬t¾ÞsåLRãÕ­úîþ:É”QÍV$ÿv û[Ð5}R¸ïúg93@7 KuàI3æÜ»uûûºå|b»™˜Ç&/†xž7ù!únqµ#¦\é|4…gÅ3b Ú†™Ÿ‹¦½R§^J$ýGDª¨“ºšê8m1ubù*ÚJÂuúuSUÇ ÌUËÔmDòõpL¼g FjŒGS çÒ”ê +*îûN‘Έ˜ñ½)DLUĶƒ‰yõÓ,±öþUž«X¯=èÁÕ¦Û*¡y4}œž¨ÓJ¿GÐnb¾eá}µ7MŸÃ™²3-lW¡à´ã`…qYp¨N4r;©Û©Ó?M«˜ºËï´ß¦Ôp¼ÐÁ\µÌ¸<õ½žrÚ¢ +W±À)…«^ê¥^ê¥?ÅÔ°ðlž%T^üFâ’Ø>±º)o +¥«O‰•öò(™ê|)Ö—¦a 룤ÒT¡Rê«Î¸BñM¢ÉýщFnݺjf²_ŸŽJÜÌän3i®2NS,òO)étÒ¯Nü˜„5$êu2W-S¯á<›#6„äÉ|]Ô®2PC¸ˆR +W½ÔK½ÔK~š)Œ%úm™2ÍÂqjù†÷¼D÷Eߣ´¯XÝÔ|¸iªÙ:"´ô˜/ä–SÖ&ëDm¿©§œtìÝCósLdÚB}ö™ò1ó磶ߌ1”¯®¢szb#B+ +µ”N”U‹µ1!1 ÑN«¦R³˜ë )4a‰u¾¢0&DV)‘zº8mhIÆ"ívÒoGŽ:˜«^êNªƒx¦ 7ð7Þ÷:*\‡±uÔ2åÞóa§ÁD¿ƒ¦L³Âû©sœ–n…E׹͈óÙ"Ü#"41­2Çj+(R·n C#3žS.5ǃ<5½ÍéûMÉ#ÿû7 çMË»ïÓ'–¹Iù Ð÷(í+V75¡oìrü%Þ¿³¿CïÞé|BH¤|#éó8´^Ra°ßžñ¹ù\(vÝ 'Ê7„gzy¼ÓÌ¥ÎqÌ{«ŸžK¬ÍQÕ…ÒK½J#Bå š¼Á@Þ~‰;ORD;LZ&¿QaœuÏã¦Ü|±ÿ±Þ#cz¡1*÷¯R˜Ð¼øs׬ðŽ{p”zª»Ç”÷‰Zu¶SUge¿´ÇDïV}NÝGÄ~‹Ü}숩Su}Žys(RÍgFËÔiV,ßpÞ×½¶KÕÕ÷(íËMêà«_ÂξBé„}’8ã¥ÖH!BÆ÷nÌ'„HXŸêI=$éëRÝ×Ä–r¯”•CÕaúS}¬†);œç°)çK¥÷KÙþ{HlHê’PÜé…îÁw ‚–›¼çSA›çqк[° ¦´´MþWÿ Zrœ2ÏC~ 6›rïÂ$ùÀO@늡H½¨¥ˆÿÎ.ŒšÃ;ÍïQX æVA@k–Í(³f¹ËüÝá=ÿ s=hAƒ&€WÁ€VbÚûqßuû» ç pÞƒþ^EZ«»,B:\mè¿] òÝàšÝ®¿Œ ¼Vr~\†Áµv\Óß:ÿŸ3ù©;\û>|Z`…“Í6?JŒ©Ûð8ž!ÐBêf0Ò8âs³œó›@k±Mà{-¿ã\Ð2*Û@_ëjŽ÷ï÷>p?ÌMÔYZE­÷Öµ œ9¹Îz@¾K8"ćÑîhÆ6qOo%ð +ÈM¼Éß +\Ë@nëS¿¡N åÁàÁøð[þÞŒc1ªû¹¸°œ£¹àüä`3¸.!–Ø…Ï^+ÊÉwªÛ›>ÇZ~Hi¶¢øõ‰œÒý¯ð.øM®Eš³Vø–)Ù ž!¯šú­6Áž—ãæÙâ^"0qn•0º(ß"ÿÃà>Ý™o€„ã]:m"xÖùÁÛGœ‹h¢ q4rƒ1ý +€§ ÊúP꺰¥?¦… óÂHRëÅÔ.è<„ú×z©¢bCõŽ‚H<· [ r= rµ³Ai-ââç/6þ¹¦E™~«ÂeùɌw;È=¦DhŸÁÆ?p(^YR;AÊr£iÐGzÀDá&½¿=¼ÿûiàÄÅ,%Tæ["y˼ˆ¼øSa!ˆN€“:ð®GµM© ¢]7•øá×z³Í׃È2ëÀov€÷@*öß@Î,´èöM¥Hê‚÷l2üè¿%Cà¡ò ÊËqXâè<€à·¯ +)Dç‚ÞÏŸçx;ò"Z€ß¤ïþc0 +ûާÁC-´®‚ëi€¿y.p,‘Bs:`þ^É;]ÁLF|ºÐJ`›ß+Öß®­Ÿƒß~#€Y…u7ÀþCà™š:+ÐÎ`¼Js wý>¨>Mlÿþx~=@¢Í¿–ë¬qÔàw™ +¾ßˆkÞ ÔYdò‡@sœ×Sà\.6íù únÒ«°³°z1P\;DÜ€ûy+ªKrÆÍßäÕ¤/fÛl1íáýàZà_¼:ß"ÌÑÌ4å//‘{E„Cà‡¹ ÀË™:'̘¯1} ˜ñ/¹²½‹N|¸Üt%ÈàýíZðÃTá>O`â\ T¬÷ÿH|¼ï ¹áí9ñ@ÞÁù½Ú`#ø ßBþ»»°v“Ý"¿= õÛnÐN¿%IæÜÿ&ä×VV‚ór ø^JDü“WN¹ß˜‚RFy¡+}6P³¿+J,LÅÄýªœ`ÉN)\Ï¥ÙÈ»Á:Øu5"Û ·—ƒW@$ ðºá.¤™ ]ËÏŒ°Jr¹~Ö„‰^©M×zNãßLr¡T§*¬çp/¬8ý,ÈÜæ¾Ífï÷°ÄÔ(Èuw”©xÍôu d0ꬡ/Ào˜ +×&˜ »1ñÚ "ÒÒ{½~ð¾üu†Àä(† +êüüÀƒä¸àù¯Dþ€^J;ƒÊ!%ôFÔ—t>sLwv.B~ö'[<[tL%› J×™v%\y]¸dú+J¶DBu¸ÀŠL‡•‚ÏÀCèj¹ ¸ªJ‹BÐê˜\°ç5ó|(>Ôï1Àó ~@N¹®*¬ßo;ˆú@‰Ú‹]î§Ø+¾½VÜEäÛAK«ž™”M(Ó¥ +AÉwŸ@þZçs ºöŠ÷fðL )Ùöà*„`ˆ{˜r›%w}÷‚Ü× ”Ç‘•K\“©ï*ýý ¤>ïJS7§¸Ù”¯‚üñL]è5¼ç‚s”sû׺ð]pX1˜r<)3´ÁDš9 cú +Õ5•]×ò™",}º ~ƒÝàÚÖ誧ó0&‡Ó]î¡à·ÞÉ3?«_‚gƒjK_çæapÿN¶$o[Ó<Ž;§ûSœ1¿å&±ÊÁü ,WüßP_,þ„i#¥ «ebÖA=¨ +ŽW ¦Xh‰õµÐñ|´$ãYhŽÐØE) +¡Þ®N Ý]ºÏJÚßò Ó Ð=ïE±&¶HÚÃWËä©+ÞÒØòZ¯a~¿(t½8]Ò>Êýz¡yo%êùðªTøà¤ù¹>/eî†EÊϵáÂ#¦LÈSßÛ %†j}K!ÿS̘.‚æí¿ð „€Ý âTíÉ ø?t º° D*{A‘|)¬6}[å}^¾çÀÃ~Úïü KlBZ©ì,(º¬K¼Î׃(óWTÑí]ð{|¾wJñªŽýk'ð)húCXdú— ¶o©Kåúé¯A¸ô =(í ¾™22×8¥Š¾E•6v‚xÉÇmóAœr22!_aòÞBØÔt¼JŸâ¹eðˆ%…åb—œí §¹¼OÍC0h:G™ö¾ÂtXì+áüD|+wf ‡¯ð÷°®BS.&ëÁIžl)€Âצ¯›Ö‘¨cÿÚƒô ݆GœõsÞ9ÖW×·‰9j¬Ãµ˜Ùà0ªëWÌ™ÖAÝ©Í Þ¨"e­ÒÆ— ÞZ…vÜ6kYáƒzÕô…éãH„˜¬] þþÐŒi.P-x–o­&U,—ª¶±Ämê¹6NH ÎÒ`E+7õûíA¾ôÛVàÿÂÚOo…½çô“ï`0Žë@DþªÝQ 9}†ê¬õÊ… %^®b?Ù °ݱù-…˦O½ª AûWªˆä¿Oð¸þB÷“ww ¯.Âzõ£">®×½ þ˜ù âÂ%S^½ÌUõƦD·À2¡÷ëuW6‚„è.3ÞE ÎHL²8à% Ì5õ[ óž@Þð¬KÅ6pÛ_rN¯¡,â£+ª]"‚QTCt*UŒF +,‰ð]B¸¾Þ¯•|Vй"\µ,‚uè6€zqî÷ã¨9Ž’6^õíÔ_ÉJЪ,$þ÷aД ZD|×Zˆ½ôg•îƽ.±@pSKòÐJÔkòš‰zKLÞ/¼çýÂXÛÇ%ƒ¾á%ZиÏfDÞq)ßtž žùé¸ÐúÅ}¶ÐÔ‰Ôѱ=+´Úk5ó¤ù;˜èS“ÆŽo˜q¼y¿{L›~øéBË‘’xçȼ“Ÿ†M»îx2mÌ¥ŠëÁ³èÃLùÙà¼Ý{ÞÞk*_Òçp¯6`¢YÙÝàÚhã,ˆ`žE‚ï1ë_aˆË?¾øÃh—,l9Œ!ÄïP6 x¬ƒƒU¦^ŒòêD9+'Mš•+Ø ƒs³œ—ƒ(Zt'ª!ÿºP7,²ÐäHWu¾Q +uE‰î^‹r%+ j¨^/?0¿õ «*½JA7®ªÂe„÷mnMßµ°ŒIN‚³ +ÃdúZ†üúØ3ríÅÏM;)í<ÓÏVt¾W'+æjXÝÅçÿ"¤¯žÍ‘wšß?€’+§º°Øû}ìþ¸à HÌžB™îÍfð¹ÎÉ V…~ð½€ê^ò®œï·ß~¸þî@þ^±l6i¸FŠ%¿¯ äŸ /®G{tÊ๖ +¦öê+—úý¥¢a~×åD=x” 1¯›¼'}ü”ä(·üCÐj¥ŠgØ?p¼5L ƒÎó˜W£åBob""ï¯C÷ ==•x5ê7uK½ =nÊ?#ôD6ÃxQRè¦G±–)ÛˆäI86¼zS[È{É™ÛX +o›¿Žóˆù»¦àÝJ¾Ëi3†Ü¼¨Ç¯-2ÑkXÈ#U#W÷;h­.ÖsÇz^&z°+M"åžëz©—z©—®hr%z7úì]ß.çyˆzšk/½À)°_¢\œUEë Ä@¥ga½1½eڸĴ;Á1m9è© åI”é)9¹õàýã&”)sé•A¨†>¨}é­¹‚¸ra‘¯$(·òàÝgøþįzv€ç½m>dÂ|Ë)×íñÍæÿM A‘—pÒ[h·¿@Úö7v¯½¥d5A̓¾p;8ÆnßÓªÙS( òc ‹}˜—AaˆÐ—cŒ•wá’éûÈ]?"ö”w=…*Q _•›6‚ªêOÌ‚6Vª™ü]„EîAzð§1;ûÄœ­Í2ÏòúAnü¼é¯ÔYÛOÁ³rÈ»¡xcºV»À3Ÿóû¹Dù¯aÝP»zl«‘ö³àº=þô­ò +Èåõá"w#¾Û¥7…Ñ«Þû÷‰Èí¦ ‘xô37‰”ß•Þ+¼cŸ.¼§¾[íi…»ÒþæÝ^Á®!Œ'¨\Uï]MÝÁ@^Ëä5¼ç}f¼~t³T½)bu#R:3Eä±z +‡$Á,5Nd{¿^ê,é¼»pF¸>o©PÇ…P¦pMœ4e4bà’‚1NFI»hêùKÖQ.MÉP$í-4GÍóTĶ´º4#¦½Ð7Iï£[„{\û6s“š»ŒʶL^#Ó¦Ÿæ ÏcÿL‰Í[lR)V§ižò42ãróNU¢’NF¼Ô=ñ@a½>!.-Ñq›ï}Š™Ãg"å‡My_ïMßs~®ÏnÄX +Þyo%—`M§V¡ûÁZ^9ò ‡¼ –Úê6ßaÈ‘ (ÒYRÿ2 }†à2¬gÁRg4¥’€Oü€ÿ‚rûÒ˜hýSPã6fGþ}‡éà}áEÐó/eS1rÜP˜ó!gH‘²£àõÞ +Sf1¸î÷!­´”ŒÍ×ß2”ù¼(…>ð|YjÆçŠ=swŸ:sÁwÜ€´Dn JUMöäDGÁsI ÝÎMÌ;~§nú ˜eÆ5<#µÉpð¥0”ކœÎ¹p+ˆ£~ ž]%ñ¾„õ¯qåV7˜: w÷.xE¬×«@ÓÓÔ™?Žzn ©®^ê¥n¤1IC3RoÐäŸJ‚rýŒH˜³‹<õÕ”´ÔÆMO›vçˆÈB3ÎX ù–is¡XK7¥êøùUcÎçÒ s’G…\Pªî4¯®ÿ;46rœ¹Æ[¿Û{þªP²ŠÍÁQ¡•G‰å¦†i«Õ¥91íùÏ›æù`¤Þ³æ}Ýv—˜:1É],I÷$O›:÷W˜·Ø¤Ò~S§ßi»‘™·a™(Ù¾_(AÉIsÂùV @éo+-±&ºß”#´À:(;lÊú{åóü¶\½h€=ø. Ä®0yo!î H}r}U½0N6l9SuQ=yÇF!/…U•$«ÆœÏÁßU^€õ©ƒ¹ ª÷¬ûçþ\Îü5¤9sõËï{å;ˆêÑÞ>ß§›–+-+? 1s{—û¸_ü°³êø&% ]à8lжۺ<.õY+8MPeê”ÒqZà9²iinxö\¥{M½Æ¾ SAn~—ïÒÒ˜²_ë?¥üçÂâÀï"·Ç= ßhì8ÊW…:1çëDDÔróÀƒetf‚øMö¢]‚s<œdúòûÍqæ‹½ß {Žƒó|\o;‘&"]%6M¹ëŒi ò§ŠÙ)…šßÈrìµ ®Zc¢l Œï-„¯„f„Ã>ïùwã쮽‚Ùƒð:ýVÉò0Ê ' pú¸oB<ó×~k[¿ù€]7€\ø>pîsð;P©ù§Þów‘Ž·°d4Lï9S~)òÒž¯¼¿9¨íö8Dì'h5¸¡"A+äK>%*½’œR¨¢)¼Ü´ï€ÔꀗJú@¹&wиénR¿ö±…õð`¼ ív´ƒ‡kL¼¦Îõà|5mWDÊ» Èq#H–ÜI®ƒåô† +ÊW…Eþ ôÁ ïrø~åÝÃÕÝxŸ‚‡` +iT9\\½Ò˜ó!]ƒ\¤H-§!¾÷‚ë#t€ ˜¿ë0‘àÔÃ0S@#Ç™+§ãŠ=W#/ötçú:Ð1Uªüç˜8g9yµåÞhÞcyBë XÇfšRuÆÍßkã»a@‰”?—øëMÇ#ðÁ
opØüíf¤É >[^äîäë@?¸ö¢=øÔð› MBŸµÀ'¦”õn| +àß‘Žx狼Ž!½©6Öå”–!€Õ¹“­Sǽü'¤ï#ß3ïq+ˆ$«(r¹›êeðÀ¸ù;¢RøÖËWàáýÒÝ>‰™ßSÁ ¿qóïÁy] ¾×€gP¶qà H¦îÕf<ÛA‚iÒ›ØwâÔ¼BVˆzþ ääB +VÚÞG¼¯Vœ«z¸† $æ|7à0x€…c)·¾ aS³D»ã°œù:¤9óà|n׊;{ºs=a¦ƒDÜfÐLìCÓ×ÙT%þ~M™O«ûóÐÚV%Yôû„ödU€ÏÀyé·ô£=ºk á‚RåÖc¨æaôgà>[⺺DÀ&„¯uÔ%ú﹚ù Õì¯ëàªA;î=OÝCTç+§ô +Ú7àÇÈsJKa51¿XNÁªNr÷‘¿‘÷Z¤ýBç ÛšÜ>l‡¸˜Ú(ß‚È~¸1J\ßiʯ6}¬)ì”È\A_7mäâ¢+ñ² D7"_áFÐÿv?Hànß'v襮N–!ÌÉêá:Ȼվmîp AIÌù*óà9|—¡ó¡éÂV ©5W…3WöGþ+®®hoJèù¿Ûʪ—Á3ô´K —‚ZˆÉÑø.þ^™ê¶®·R_+qì4ÄñdÁoÁï² $Jõ/\øákËŸë2zúoÁ˜9)P‚æ‰L¹ûÀȇµ!¦XJ­Uç×å”´ŸqÓÆ>O]tëªaùûÈ àÁ´iî5“¡ÉíÂrp±ïDܹ »aïÊ¿Wh¡+l¥,¿دLÝQ-· Šq²Ó`Íj>7ãü +iŠúðÝ•œgêÝ +:íñAÅ¡ë¾_ ‰Kõpõ¥7ÓM9S@ª"óÒ˜óU`-Ú[‰·ÿŸ½÷±êJÓ…Ÿþ*C9”ƒ¹˜¦*Í©Á\tÐÆ ¦ÑF?ÊÆ æ’ zÑK⥠ɠMüH†Ø˜&e“ ±ÑA‡ØÄ!Ž6IC ɇ¤)Cl´Ñ&i4Ä`B•hÐ`‚†$Ä ò~<ëíµÎ>ïZûG*5Ù,NÕÞë×^{íõ®õþìð¼vqŒ´$æÍ l´ x*Ñ^™“ù@ÎÏPLÕȤñ`éÅ)pZvº<„¸ {,ÐïJÍagÁë®X¢º«îþ"Pa·Ûõq'Ê…rîƒ×²dà3Ày°Ådì×/ã¡”ªlnld¤œ(Xé´0pèˆ`º«£iäŸåî ÷ŽHÜý°º` vh_­vªômÈÝk¸ÿ{‚k/‹aøÜ³’v/ªufñµÐ…²UfXê7{ý¼ä;´™êò”|7¡šº\ /üh"¯ŽéãÆ½w\»Ùë„îR³×5ñ±œ±›\{Zèhêo¸ÀøX}¸ ísdª{G±¹ð¨ëÛÒ¦ú²ØnzõYÁµ>W¿ˆZËdqZâ®IceaûšŠZqLÚ»Xi¹øy#â]i[nI­1(’¦ßÏ…‚ÏS¥†Qwˆ¡H¹Â9¯xCè4F¤œ{ìe–ß½bXìï@S—ÐáÍ×.ÿy¡C¥I;Êâ´Ä×uÈ”íG#gÜêt RøÏˆØˆ½°î¾åÝ(¶ð+aÉúEî.Öâªíl3S¥oCƳ-ÅükC¼‡2‹Zí„à‰Åb/”»Ý½p¤~£‡sÚ žç¤p(ò<Ϻ21âªiÀå4î ‹í9®é®? \Ì!$’¯&êÒÍÁË™ës\kA.0>VzÜ=÷ pÎÎÿ~b>÷!ÜØœÆû}É÷˜Ež_û:Õ©NuêH +EêßheÆÂVaç+j>ÈìYJ*³Új”ÑvA»LöÖH;cQÊ*«) ÕûÈ".=¯Œ&÷^wïIxÖÝcÝ©òãLp|׺~æEŠR6â>¤µÅU\dɬo†m—½d¹= >ƒ€: ê à×F™µ XbSæúŸÐyŚͮ;àeÞ“@V®%×SüÀ÷áã)ü-¨ iáh½ é¯ÑnrT£Fkƒ&¨ÔÜ)¤L·jæî‹ASò“ xûYŒÄ{Sð÷ÇðrÇO‘¯QYUñé—àbºÞ㇠2Æíè‚b:¯”¥„¹ žsõ®FuE¤”&÷+ QZï’zÌKÙ¡*¾‚ßÀ|ŽývPè¥D9uå™çNò#pÌîCQ*¦ƒÏbõQ-,Êàß÷Øõ£ÈõŸ”lCqtx“rzS£F×VƒëìAxKBz'cñ8ŧ_€ÑçFAÅ¥ÿ šÂ¥Ú™VâKð~ +:Ù·²x$¦¶*ò”¿~iï¯Á“ódÄ5ŒcÊPy¾Ü«`#ø~ž¹: ð½^BqŽH5¾›h"ny“gE4Þâ&UL×õ0ý[‹: ä*çb,€«àâ.üyìü±´³ô¢¶sS¤‰êÛ ×Îäû“N¡Š&÷ +p³0¶ó U &÷ÝàG4 ÔÆÞn²ÁÆ‚_ƒšÏkA¨Q]xÚ¯ÑYTñ¾©ÈcA†=j`ŸCÈk;o¬!‘SέÂüº›~(‘¿Š'ÍTÙØ¸YyÔBcµ“çTQ†õûHhËÄPtØâÚRO¢y¡m€ïÿEp}tíÇDg0þ¡ŠÇ‚9àüg‘z(xi~ý¼>ûV¤ý– t@½HŽ‚éb–nN !i ' Ê(>eӈĵø;ÑN¥¬F % +-ƒUW¬LJ“ÛJsÅk[ +p=îù¹<—Ýóoj´_s”oYjŠfÁò#R\aqŠ´‡.jáQ´%ÒªÁ?KDžw×baFŸr÷7'ç +­4b¡›ïscô²«–PáUDäáH™!w?T¢½[¨°Ïƒðc”EL1öJæWó^AyϘyù³¬ö {z<âL„R€Nl€Ïs´ÜɃ¼\,LÏ'Ê\B«·ÀOÀys[þ;P†½Ãõo(²L…’žäîoÇê9P¼šbµWù¶Ë†kVd£ ¾* Ï6òV ¼T6TÕ2F½¨q-±ÔÔÿ1¸)¸‚âúE f•µÓÀÅë_\þ?ºzn7BH”΀‹~Qª²è•-Óï~ËöYèê|^V|Ô;‰AÍ,·ƒ«Ð<øÄpY(âI³êÂ_åt"ƒªí‰ò3AÝg`Ç„èyt/8îpùv€ßë@¤Ì4pîü7hYô/àü| ñ÷SåÛ.®®¬;|u÷l¹¯x©J ©*e{™€HŠ*¦(KÐÊúÕÔ4òŽE‹ÙŠÓÆKHd€âêœHÙi–ó  ü©GÛKˆZÀ‡÷¼¢ÔBPÿ¼J eO#UXóUÊŒ%°Ïƒà)î0@Ïqpì,öAã³äÍ­`6!~SçèBpþíƒÛX¨Ê*µ¾…Ø k,a¡Gá#">†tDı´S!÷áßÀÀ3“áÍÔ¬ï´áîgçÛWà\°æ`Ÿ²µ~ë”Ýï~Ë~ÛUOÌ‹Œÿ/Áö“R%ðR•@Rc>¥€]àÃ<˜¹?dá¤"Á•…F˜{é(ƒŠÛ]þ×P.ÐÎ} êCxbqH,zü3Ñ:9—»>¾‹´Ãœ‰bÅÝ.XáCèjJ…k¶°þœ¶4B_˜b2Ö±„DH‚“øVð}Åäæ›ÁqCI߃¸ű„¨Uô€j&¸hļB†Þ3oƒ¹qs®²DIû[fÑ«RFó— ì£ceÁ¿éÚ¸Õ(ó$¸±\ Σ÷@Ï›GÁw–2ƒ+ãI¨¾ð‡íhŠyÆœ(¤ci§ Ô'IH€¿Ç`ì5¡?Ñ·/ÂÙö÷­Ïam4ª|ÛUÃ5 +ΛYàa` |`,ëU ¼t +åIU)Óõø¸c[î>•0¯gWÑ + @£ÄY«,ü#hSzüHÞ*Xn38 WÁïDï Ìcþ9QV‰ÿŽœ|ÚŽ¥l;ÁÙÂ^PAæ¸à@:âàVp3² å¼ VñlX¿ÕàXügÁr£™ÿ¿‰çC~•¹§§ž=(~ê O²U¼úõó`!ø¾þ-‘÷3´n\>r¿ÏÄÉŠÂø¸é\Îï/Ýÿ±o#\ôŠnÊ«”Ññ¸ð×ÀÞpžÇ)KRÊyÖ)àºÃÝ/:wSž4uáß.ü +Kk,˜(¤ ?Âgà÷“§npCœUŒü¦!Ö·±]*Ê…ÿÇNÙU¾íª'æ/Á9ÿ&H»®€ßR*ÒéVx×å›Áwö â®õÒª]ð›§7ÁCDŠVV)óg„J€;]‡—¹ÿ»]å{ï ¿ Vƒ/î@‰2ºQÉzð›[4Ð,J‰Ej‡¤Äÿäÿ±°âîÇö"8Á^HäŸN¼ìó\OØ„ò!‘׃óa5¸1¼üHy«žzª†¨½ܘ-ßS•˜îºpYÊRUN#UXócaç¿Æ3øH>ÇáF^ÕxÎÎaåîX./ÂÖŽŸ ï¥(Rž4ÇÌ*-ˆ‰ò@:‘žN÷ØP\{8¦ûŒü€ï Ëþîs};i§ì)(ÿmW91ߊ>~z`ýè‘õ§H¯ÅWü À_º2ß]ºÿ â.ÊzÅýžK¾;>JÕ2F¸x œXkÝÿ+AÖ]Þ©!ËVÜ”È;œ/ ![ºÿçx$²{¨ßý~hÜSº”3q œX)fš(O”Êjek;£9ý馃šèçÑú^ûsÊ]çÌEp ‹Äeß NÒ_ƒrão@îå=°ê©ç7à6^Îú!8§b.6uS7\,þ/Òóu:l±’Z Œ÷ª¥*šª› yž'w‚{'üâº÷í°Å};Ab¿ÍÕÙê®ÌG;§'…À×%ðÀûH¢o72ZÓ¼!íÎRZ¥aÚ\Ï–Qg²ánÃô¶Ð‹Ò¡×0z;/¶“ÕÂÌjGÂ=“XŸg›k'¦±Z´#× +/«• +oKCÑ‘Žk1÷º1=+Ô¶oétây4• ‰Ü(ñ¼ñtWÿáœ>&ñy=âÒ —ç!×?‘´ïráR„û:Y&Lyž'už/„s!æ¨K8§¿È”Ù’³!±‘çIsð›S¼!œã"öXÇÚQ4m·Ò*í4Ï2œÓÎi»Å=ß³‘ç c×ëf%åý­ +Qj¸zËš¯Xf?©¤ïÁreûxÕ$ËZHG$½ÐÍá}Ô¾5 +>‹&Ý >!œ}ÂÍáeÉ÷"Ø'$ÎÇ$mfÖÌyÎØw}3Èþ‰±¡B6ò¯À±xd‘Y,Þ*¬¸~÷[V+û1PT°iÓ²,Êh1kÛ–H#Ïaì!‘óðoà8hС3ðA‡þ”Svȼ „ðyÿ K¬ÊSú3c’ßÕ¨QcB1€¸Yõ°‘¿l¦”é¶U*¿¥‡Õfº“‘i'(‡|ÅÌôÆŠe ,ÆÒ((Z„VíÿU®LÌë@ŪOA‚qÆåŸäÊÕ¶] n<ö»¿­EùßÀq\/¯:8Q‹V6ÀMŃ®žhÕj+Tm™l¥ !‘A±È¿p© +~éRYü¨`¾˜ÕF5¾Û8Œv$5-5ò/éÆ&s ¾q‹»˜om'«0 +ß +ƒ- ŽRrÒTÒHIEóŸÊõË´ñ¾Ä½žiʲ¡ç +EŒ{©ÔpÏ3˜“o–^$ÐÊY!ëz,ìÕµˆÉ©‡ÜýF‰:û„2Øi÷x7"6k|†+3<Æç©SêT§lZ,\³O +ExÏ +×>+ïÄ1)Ó+½]®cyÃ4וy_lQ_ӵݧ±*YÿÔlÞPÐj oͰÊÄq﵊g€'AËnÓÂ\ð´cåÇpÜõ< ÏÞÏâVг߀ëÛMð\€ñ@ž–tˆ±jeOYß—Þ–ÅÇ ÈåSД¨ˆÀJð™ÁfE¥ £ÍAß7Ážë\u/}¸Yßn>²Øçòlrùׂïì0â›’2ãYëA1îoÁCÝ4Pw&KïéãHÞÍà3ªgÑÙÈ÷£Ð®ÓÓÀ9òQ:ûuŒqbMÔ©NEÒÃâMËŽ Í„FÄ' G®ÇòCh–×”âæ|CÇ€‘¿)å,šBñÏëBÓªéBK‘¸ˆ)0¨!iË51ÍšÑÅÌêªÄ®Ï>û°Øï@ÍBà =»cöQÛj$žµHžl:Yr|²émצeu2X²?ƒÂ÷^{ÊÕñ€‘¿éîeÍéÎ M:³ù-QçW‡ÅêÞ-í"LµJ±úSv<›Rþ{Ї]?Î +Í;1†¥üš¡B$n›}_Eû£}²zÞ,b}×þüùZ¸ÆµÂàIæ5ÐÌzP)2椩 +T §l 1æÁ¬,¦', {ú3Pä²"’?0èâ\Ÿ>øÀ?Y^K¡· ž¶O¹û_'¸/‘0ªîtu…î]oC\l5ÞJÇ xë¡"ã“E87ÞE¾ÕIü|¿!”SĽréB‡=Ç-NgJdø Ú-„Ô™šÕŸªãrÀÎ"ÍŸ*Æ)·÷5ðÔ^%8\'°§=H»¯ +‹ëÔŸS&»^•T£ÆDcHT +Zü7¸ ˆEËšHX,ÄN§2 ¸Ê ³‰\WqX3N€¬Í”¯ò²P÷ÁåþÛà½üòtúÝoÕñYí~wåä;/ÞÙr: +Ë æ9O>} ñ¼²é³°æ¸ºôµ´ÊûÝo™ñ,KЧ¹û¯€æuলÓnœ‹`.è¡ð(ʋɋâ”s× ´¯W13ï6Ô€!ª(éh™9 òO‘]}C!Äï0¶îZ¡Ì‰f<ŸO‰mY3NÅZpQ>БÞp±ï‡sû:\¬ RjŠ`%(ëNm`vÁG]/CÏS¤ƒË³\Ð;éƒe|g@9ýƒ°ã9dÑ€ƒmõ§Êx–%èWкN|n8ªÎñ±`6¨Gv¸‰Ê³Ó¿în–ÃÇ´¿ >P^L{€šøª5úhI;¡TÕÚ-[® j¼¾ŒV' ®ž”ÒU•牥z@íZÕšÍ#úL±vRJaYLO&÷•(“‡IðÊHª´´j° ± ¬Sζ¸žX”'ÀEyŠÅb1TÜŠÙ4Ül2®ï‚MÔ',ä~ðÏû7QΙUQìumÅi5PM•ñ™€}ˆÛtïýHü$nÿ r ¦Áö7¯k‹¦ ìft6R¡²ˆâ‹]ÈŸŸ=ðñ0Ö¢]TTϲý ÚEyá{Ç ¿†­è<ŠÎE`œPè`øÑœ'Þ|p§óâÚ¨å!ÛÁb&¨­¹•ãVÁzpR.‚]ªìÍsˆk!W}KfÜÉÛŽë= Ü·Á.OF'`+¿c{ž2P›à2à»Y Ïr.»aêÇxŠ;yÇk=¨­Ã(Ú ‡Î›˜vòVpÞιà)"5ÖÓ<îòOŸeR¤± ŒRÍxŸhªœP~à {ru6¶ƒßá•êY>À»òVL¿³b®JÇ¿Á ¢‰M‰ü‹Á>— Q¬ß—¥(×®óÁo;Ͼý~ؾ8Ê ­Ê™Yl);þæCüœoÓÀ÷z:Ëa/ìßÍ“ðkÐä¯÷§àÙÿà`‹…îG9_()Ÿ*?Iä/Z¿öçÏuÔ¿ÀÿB|RêÂdM¤¼Ôö=P üCp¡J‰ªàcpaÛö÷1Ä?à±Òï Aü!ü®øGþ>’Þ· UO(e±ããÍìð4xüÆ/‚›¶°O- øïh“»6Š|¨æ SQk–à÷dD€ã¾4ýÊãœíAVø›àü_;H–r—Á+Rjê„™ÙÞ ?*ÞêÚ{ÉȯÞûV }<óÖÝñˆ¶Û0ÿ9ÀÏá#xþ5xÈú›Hýß:XÑO€/q'(+Ž˜UŽ»­ªœPúÁÆ:}÷ƒ;´GÀ¦¬ ï"÷›·¡Ëó„јn“½à‡d}hÚ¯ßeþOÌn€¯‚—…¯D±¨zeÿníOŸ‚‹Ç9xnÎJ×nQý„ñÄ +´Ï­N9sOè e½KçÀg)cGSиÀÞ_âz6O|àÇó*kµ(~êQ%‘sÿU°®ß"­0—E™gM!F¬&²?E¢mÆæÌw‚Ø^°8ªÿ Hc¬¨«.ï=h•ãnEñJ€'àÍk,bq*¨ï Š…UT̉Ñ÷›’›åyB™ñïáY†1e»KàIn–kg+³ö¨VîcàÆl&¸1*¢xRVñï ¸ÙZîú‹è¨ó7áŸm'¼ßôk­h?a-»f½iGìD|ÇO(5j\GP_E¯7;x=ËÑ2òª#¬˜Âo[ýàÿdaïYd·Áf«lOŒ›à͈ SÊ.r4øû¸ ‡ r«ëÇJðD~ÒŠNUŸ'‹ÁçŠ*:çê<r[® M05˜ÊFäËãCTQüƒkC‘LÇ/Oùé÷ +b2ò*¯ÈI6DÙe}¢©Q£Æ ‹”'À—@âwÒ¦€ÿŒV9îQðtún¢Lhf5\H;Í*^*2îŸå(Š‚«e;æy¦œz < `:8o·Eú¨lL­Ûª¯h>Åß>楳Óõü_†÷øi)2fÙÇ1vrŠh…ˆ±‘‹Þ/Ӟņ¶Úšë~ï@¿Æ·"Ó÷¶ØŠÎ:zªŒ¬`­~À?OÍ–+@B¾_Ùì?M”›ˆç©J0¿*ÙÞ?Ulg¢1n Rró¢.Ä\pžŠcN€›¿ÿH”7WóAqËap#÷V&_¶ƒ]°ßož“²Óý­nw™èO§± +Ü +¨°ù!h½q'ÚµÅ5jœŠæfÃ&`_¡˜øn{PŸ:Á²8S‡Áw|äz€½¡(šð§¹ýˆ›ˆU©ïµD}€÷ÙiK7fƒ›¾ñ8v!ÞϘØ ¨£Öøv¢>Éà®Nb,Í»A¢x$Ô£áÉHþ3hÉ`‰bÙ Aû4H‰Ržµ‡Á9Œt@œ,7H.‹°oO­3@¿Ÿ"}ÚÍcá~ÿ&hUK}Õ îì †æ;Oˆ­|Ãð| nÓ^´Ý°¾ÂMbYßß6lÆÄq{Æg`;ŒŠ]¿îQoj\k,D~àœ¢N1Í¥ ã¼>ƒ ‘Y¶¿‡æ[¸® =öCÊDµJРùAŸbð9ODì+ðä-H3ÁMÑqÄýÛOÙöÛ‘¿Á¹^±¾ß+1öçëKa=üíwia,ó5@=‡¢xiÇgŸ¡œùöõŠOas…bׯ{Ô€1¨‚Ožr`Û©¦  +WäsÁÿ–¢Ô— ÌU ÜÍà)2=ñ"xª} À½ðÊ‹Wa+6ÀSù^´»hîTpœë-hÐ|Pp'âϨ›–—¿Á¹^ñ üâ|cް¾>ƒß„éñc#_–}|#±“ov¿gP-HÒ†'aoâb×;‰~´®Å›ÜõðÚ.wí +nì @èD Èîp.¸óS ד`ĸ¼¨Z‰…µÐ+,â“b£…«E4NrÏ[T7ÄbÓzV̵²¿vm‰—…¥ ÑZ¢?e߯žúÂÔ©_ÊÚ“ú@-PþO BÑc°ià¤Éð¾Ø€—,ô»ß2^&ûÑ:/O"=žU‚Ýá~Sæ¤_Âöç‘ Ú’u®Sn]Ç £×ºcD–}<v² Uìš)NZH`Fa‹L¶ÀÇ#ù'\?ÇŸÃÞÄÅ®w +÷#$ÈJ£9õüU9³À]F?<[m-¸#ŒÉL« –µù;­ëEãt5È>Ý*À¬Bš€n ãíà |Ëßÿí®þNGÁ ñ9ÚYÜúÈUު队@q‡Pû\¹Û#÷_#”iìùI |÷>#¯Øþ‚m­:³][K”ÏÃðô}ÔMˆá]Ï*Yÿ~äÿ3èlxàíȲÇÂNîG«Ø!µÞ|…ø7ݯw²¶Èã]Ä#«~[3ÑŒ]¿îžÔœ§ˆì2ø¬ðwíèÛ¾HD¿…(ÆêRePTã´ÌóVÁzp'Ÿ§õ¬ÈzÛÛèú4q3Ì2(󼪵šW.†'D1K é»ÞÛaž–{/H̯€æRE7Ú÷Ûü1‘ï—ö¹>Ýve¸ܽeඈo +ÕP¼ Îë>Œý40œ3'@}ª?‚§ôX ‰±àFbGߨx­JžÙÿ³Hq{N¡UìP§ï~ý7_[ùÕ‘5‹B9] ;ç xò<°I‘r +‹U•:1 €ÎEN€ î!ÄýWEÓaxÍa•+ŸÑ”h¢(†ÁÓ»³Ï]J‰>ÂE~*xj=Žôé¯ úáã| nîIÐ…|Mô¬–ûkÈ×rïrý˜n€Ê˜ ©üÑÒ`ð‹]î÷ä;qúŒm+üÄ®·±Ü+^7è`!¨´ +\@6Á;C°¼¿…1®‹ÊÅËšYUŬqª“Ocj«ÂN`Š‹²X ¾¯‰8Fgà¹t!~žŠ-‘ÆxÜûµ»÷뼎 ‹m¯§'‹@ωÕqMÙ´ÕD˜Y} ¢ˆ÷à?†˜’ÀñÜ•I±kUƒFEÌSp+£å>´]? +û£Ïâ5Ï0Ü4Ü‚üàN} {X9*EP¦L78·g€ßÁ äsŸ. €ïÖâ`¬ŸQ‰ÛfˆtJ±µˆ µÉ‰å/¾ìt¾üÐåõWõ·:ÔnÑú>ðwðÚÙVÿ²ìã; Ëï»û¿ˆäÉëÑqMÉlž±´õ–ËóctFשF „V¡m¶€Äl™Ó&woèæRY1ô»ß2fVß%4@À¹îÿ^pÑÒl÷íðî5¥Â—1Ì9 ³µÙ ¬\Eá¼³t$Çá(ÈÞ¾$¸)å?€Ï÷!È=(jÎV¦Œ:ê9~E63£.½ rp,ØçàâùWàâø· ÷¢è;È[˜kÔ¨Q8 ®W_€zm)]6¥­×&uOq/€w‚öž‡7·4AÐìü”Ú*,©mvˆ£àb˜ÅLðÄWTÛ¹Š™Õxcšq­“ÊDeê?²Áöƒ'[½¶tÂÒ)¨%ÀdW÷Fýg$ÿvPuÚ—ù¯QŽÅö€ÿU¡s=½”AM˜kÔ¸±qïœ×ëÁur%:»^>Ê.3x3¨›ô&H³Õ3å›àÁHÙý½QW›b¸PÛlÅðá¬PÀÇA–l/òm‰jfVã‰3àé³þT5žøNtýWÁÞ¿‚cª¶Ýïu¨?Š0p˃àé>&bè71y:5jÔ¨q½¢r<‹˜ÏE‹@B{Åý,“/ËeÝ ÒÉ ×0Ë©Óõ¥œ›º^×k¥›÷€óÙ Tœ}¿AX šå‡hOª`d4@ó§Å ¼Qm¹³Pyð>x ×Ðl*¦„Ö)3«N`/x +~$Ò3À——§==ÞõW‘YAUÃVܼjŒ s@äãÞ<ĵطÁön9 `ƒKgAï–o€1cõ<Ÿ¹ÖëêÉšc-q×SG§¸rC޹4àÓ W¯œçÁµ± ü†Šø8Q4Ð9_û @ön§Ê=Œ¸WÒåàšc#¿Žÿ–LžÐÛé£Ì´Šövƒã+ ;}w¤½¦»züœçÊÅLŒ»‚¾Â¯¥S"ùÒ<µ’Ú +޶¢Xç¯@º6  f¡‡kˤ7uo¨DýZÍÁ[Ldõ‚TlyŠ@D "="Ò‘¯Åã ™îî[i±ˆ’V¼#"ƒ‰2÷‰Èé ÿiw-›oÈÝo$ê²ò[‰”yJD.»…Á勦DÉ>ˆ´7fêTGëT§ª©)iŒeù‘6¬z†\™ìuqeŠä=S¶|êY­¼aþ¢c˜Ê3èò ÷¸:÷ÞvɪsX†Һ˜>í®[ ì°tn0œi»Ç%¸k„26NG\žîÿ…Äj©(¿ž3ÎÙþ[ãm¥û\þ¦p³@H”šâ7EÇDéõ¦»ÛŒÍpcð¾kë}—yâ™DD¶ìÓ !qӮޥë(’f¹:‡Œ{ºQœ.œkÙ4¥HêhêT5M?iñhp­Ï(Ó#íá6áG[€FŒëC®½ìu‘ñÛœ–öuj$oÖ3Í×ãڲƧj–øàù̵Aw} RO¶Ï —(ROèGO|O'ú¬‘ƽ^£üyñDôU!1¶êÕ~åa8Rþ´´ŸPõ¤ûr¤Ìp¤¾wÝ£0=ìê[Šÿì÷pÚãyáf Æ1nºvÂÍÕ1iÿÝ9m=ŸÃË'´K]ߞɔ9ä®e$Žá‚ãñ¼ë—µÁÕúSm[÷º„c›å€ôŠç.ß]°fê„ÛÒ5ÆËsã§H›•~ïã_ñ(ëDÀ¢‹(nÒ„í¬iW$6†@ ë]VÀ[ÏX¾ù‹æ[áú´ís@Ý}`¤ÅN ˆì´ÓP…Õ”G9u= ívç3Ýoè›áfø¸wõ¬6Š[A3ÏõhõÍa‹Êz÷À–õVUÄÍ›gÿXìC´Ç#IáplŽÃ›ôæé ºß›ÑêTlâ>žrýÚ Îß›Ýß/€ŠÒÙr aëOÝÿf}(èû}|!,½­¹ ~ÜÇ .Ê#®ÏÁVŠ×µÄŠê™ºw|Ö­žpß ¯Ÿwص¹>ÞÌ|ןí(à÷¢ÞÔHA‰['L×f€>Æ+læ|tÎQÎaÐÖ#ˆgÐ¥r¬.œ³ñäÇš/…ÛAߣ(¿Èn”¬ðÌÄ͉{ºÇ¼OÞÇz?ºØ‡&¼'à}¡ÌDÜ—Iha“íSÞ{Ñö¬º/¢sÖIY,MË‚ßÏVÿ\°Ü]àw¢^6ó|rÜ ~š¬…N¼bá®§‚¨ü<¸¾ üæžðÿfÊüÌ¥m çÄ›À ñ§à3ZÊv'Àqžb΢֡uÓ¯nÃcŽÉ‚ϸ«ä=€^Ro‚7Ûüúô!8{à¿Ã3®/±˜'-P+ÉIªQ+ˆûÜÞjò΃ü¨li…Á¼ëÌnP“¸¨Fmì9ªú _¹Þ„í9o¬Ú|2gÊUAâZ®–ï÷±´•‡y^V€÷Áêªqj¯\D-“Õ*XÃwáçΦD~=Õ‡i¢âQ„í«5·öƒ õ~ãÞ»àó•õÅþ%Ú}{ä…ëŽÕ“u‹¬ZÌYâgiY+4ÈX*ÈÕ +p±·<0žp}Y¿‘yÁµ¹Äõi<ÂŒëÆ¥ß¸7騌Uý™,Ÿe8/V‚ó~7Ò›¸®Üp,£8·çH˜îß~+1Wê0,»1úü>c½§ÀgQ×ÙÁ1y ö³éI{>ø=éº=|Þ,îwm/7Ï“üâÜ“E®~ë9S÷¿„÷zM¼ +nŒþ*¸÷ÃQˆª€þ íM\Ka&øáíw”kÁÝÈfГQY,‚g©Íˆ‘¼Ô¯~?ò££)BK_ƒ&»A¾” ÉDc HTôµ$®'P TFÐJXŠnž–€ï&¸;] ÿ¡æ¹® +% +;TßG  ×2ö®Bs¿K¾ ü~î2îý \4¬Ó¿Æ˜°p$Ѓ›ôy 9TY Ùàü] ~sçÀE|ž»þÒñ®‚^#ï#wxÚ¥»ÝµùàfÇZp¿çèíà‰¬Þ|w?Ht¶Â›Ó¦pÅ×Îà& ûnz]_bóú 8GCóÄ"þLBâ¯lÿ—@¢¹Êݳe·»w¸®ôá!÷¹ºSØêú·4·¸¶XEuB—õFÛíÚŒ™U¿†V§<çÀsVÄâ—®o«àãÛ|Šx°ºAnÁŸï¡óLj{hMÝŠM§\`)}ˆÄK´\¨i9E¨ASb‰¥n¡²Í`ÐöH‰ò"­JXy}‡ØZ¸gs-Æ2VÖó Eê Óã.Ïn¡‰•jº~-4Ý´Ê\*ø”i«Ï•Ñç(ª”5§yB¨±š§è©f:¡öîéÄý±Œw^ÞXÝeú‘Ê_¤Eò &Æ6epH¨ˆdÕÙ#Ô¨¡ÚÐÍHû‘zŽu\*¨-®ŠÓB“B‘ô·|¯xÅÂË.¸g±ÌŽÃÔ%^¡4Ä…Ìÿeæg‘ô¨«÷ 7}â•óbÚîK]™-Âïk†{Æ ’V^’¸Âßî]KYT•tŸ Êv ×…5¾Í̘=$­&ç:¾V__wc°ÆµÕ+~]ZS`\‡ã{ÿ³„ó4eÿ­HÖÅìË +R$MÔ¾–öIuHŠkRÅ@zž•â}‡´kᆋOV£¹c5’(—z¶¬)R¯ø)¶Qy]Úퟋ´{¾XRsšmîÿû¤¸m-¤úàm‰¿£±Žw^ÞXÝeú1Öñ/’/e0˜w%2–Ö|øÞDê.“¦ ÍÃÂÍb·»–j?oN6*”ë~/ó‚çê®=–‰•Ža†mnV_ï‹È’œ~Vñ7¢ÏWå^̼¬;q/–”Ð6y,5ç¥öaÒ‘ôÿäóJáÚY,e´û]ÚÊ#ûAVòP³Qï§d½ê!ìL‰vhõ¸Ôçú°Îõ#Ï«RV×`S‰¶ËâÈ\¥Ç"&û,+Ó® +eÕ‡g/C1wÑ!v¡xèÔ.p<òäÿý¨þž:9^Ú"ú,£î7Oð2ÒT¾hõŠ"¥ð +¼ŸñN!¾Çjñ¨L²T¿qתFŠûÕ”#¯‚ìÝ?À?—²}-E2˜—~’h3+ëý[ÿÓÏŸø —ÿ¯Á÷ð79íimÿÔ=ëÙ¾§Ø½ÞƒAÃW Ìý/áÇåûÈ!þ]¥O¶ Àeä‹c:¾HA£A\†¦J!³Ayå)P6x(¯ÊS¼ÉL™ÈƒýA™.Pεü¨/"·=,¦ñ”?èú³”O©RÍ» Þ„…±Ê´C¢y |—T™éð}=. Eq +üÀ”(3TÂIÉÿ5,é÷àµÝÃE¹v•È›êÇ¢ù‹Æ“Îå©w>¥0°ÈoKÖY£Æw1%ïð~Jû^Nª.Úë°Ýt[Øo–˜˜h¢6·ƒç HRqÜ»ÁE]Í vÑ]üî·ŒF¸®i "ÈMà $.y\Œ¬x§b +Xx Àÿ‰ø-þ¸“>oǃž†Êö±ß¥Ùà¸n~²øÔ¢^ nPbQ;‰ù®Í²ì7ŠÄ“hqðãœ|zBÍú¨Q£ÆõƒûÀè(¸ÞÞ®½¥¡ØÒ­GP0*áDmnhÕ¶lpGÀÏ%ïg½öß@Sq—gÄçʱý”p©éÈ2 ¦Z¸2/ë$N¡•åzìÐÍjë¸ÑÐ BYÍ\€œå¼Ü/Ž™ Š+Šâ'ˆ»,þ4ƒ)êÀä%êV|<½[¸¿d}o¡&Ä5jL$4°”uŠn¸{3Œ{‚4çPæ~/h!& …I'±¥¯‚‘¬¢åvew¢„UAj“—Ž‚6äE¡'3%¤A–e AB¿$dý('ÿeÏ7ƒ\ƒXß­ Ä7à®ëVÐÜçKP`¯k³Q¦F«~ÄÇ8fv7œpMÐìfŠKÛÀ±ÚU¡’èc=ð¦–óŽ'@¿UœsõÅøù¨q}c­s|8¸×F—û¶½õýi™¤-£Ä]†­û lV«Ý<ÜFÄ[i{,˜FÒËF?´°í¬àYÉ ×5QŸ ©Chz2R.ëðïæˆqOͰ­rŠ5ðÆpœ¦€cdq&¿éÎA¯º|¡ò0¸fYÑ7Áám }膫ÅNú…P/ UÌýlgcŠ[A®ìPǧ¯p‹4E +Fj†žZÌjÕæ™“½#^‹|Àµ×(ЖæÍëû€q}†PK~·´š½/´¨ªeYf¬45Ïü¸PÃWA„x¹ÀØÆÚŠõ±i´ó…ðýXmm[ø¾ˆíë¾N7FÚ ^£ü ñþç­d™MõŠ÷ùZu ͹¾ÛüB«‘v¿ï á<<$4;¶¬LÂe,‘ \#Tÿ¼p¾—1%³úòøïö²äžyÀåÝ"Ô–Ÿ+Þ$³ˆUMÕ,wŠx3Ä™qÓØ±²C®\S¼ù´š†>*ñ8j¹š\oFÚÓ~>.œoj²ù”p.¥,QÎ ×ô®Ý#®lžõÂb—ï™àyïMäoJ;Ž ç@xßšw)X¦ÎZ×Ãâ¿‹¢«Æ}Ð%%"‰7#S¢;$Åͦtðòú>`\Ÿ¹>ÖTf¬45\¹Fd<õïáš)•MÚVÙ>ÖibRÓ½Ÿìõ!±1\ Ž.áb©>.Î +ÑØ +ËÏ.„jg>,~±E “–p1MEhÓ¾ž•v?"ê  ¨vØnÑÔ%Üx¼,ž(½#\h‹lh»„Ýäˆà¤Ê‹`÷¸1Κ¶j˜' +´ßê+ò¼ƒ.#3n#9Ïø…´GWÔ F1BÔï—á™àúóâmü›‘ö.Hkp½&’ö73×å™gô35³ßœnRy›Òôk–ë›çDÓý-§Ñÿ¶e5½#ñ``áuõgó‘·-UÑøÚƒ)Äp”5ùØÕÿ;÷y­ÊVSøl_ÏŸG®eÆJ¡šð–C(çþ +Ô°Í”ÊBÛ*ÛÇñD/Èž‹±H×€¬¿¥%ê|dç)Ñ(bZ¼y¬Éƒ.ÈžVVk(r@¾nK *6Ó”ò’§Øz|Ò•ÙŠkö(ûž+?É•ù (vS1]Qlåš‘VVº +êݺeU¬Mvó‚ÏŒWAÈÿ *ëómE[/ÃvÞ²øÏ¸>ÎÇl6€òÙ˜›èQP|y'|ЗŸ€"Õ”;ä‰ÄLP6;Ä(O)y+8g»Áï~Òž$oÇå@pí*¼X8åuQûZ%}*€÷çôA›7åôQº^~Ÿ2)WóѪT~ ìO§¿çÍVØz -˜H3À5Š`5H`vEîï?ˆ”%Iˆ{Ab5\ˆ' +Üï¢àÚ"paÈ^»„jЦgкPäù[˜ŽÛf¿reþÜ Ü ºqÎÃ&P^ºÕå_Å¢Äx!HLÏ€ï%Ïuõ.pÑU’% ÌsWÁö‹àåÒ—AùsQ埄ûïÀq:+K)ëNpƒu3¼îÒÏ@"‡áÝ©ÃýfeêwÀâ6˜É7ê®ïÊ\/£ ‘u9C7øÑì?À»@ŸðSàǾÈýß~د¹_%|‹@âŸçO¼PGQÙ“¥.œ‹e•€\âeàfì +Êûÿ_ ¾?5»Má=P‰tuPöSãX„8 Ï)™αPL©® œ7/‚ïošûµ”ƒß7D_›>?„VF ¿su¯wÿ¯B+‡G“Åéٛɣ +cë ”­ +U¶,‚nF~D̫୿ϼ zh®BŸ5e®}Ô•ß Õ© 2úð¥°Üt®7i=3…~øoæKð]nF¾?ãY¬så΀›”{`ûé°¬>w×þ9ÖQõ F§ÕºÎK1G·ƒlåA|ÜçÅIß.ëÀï ¸àt§ +uÀÅ© ž¸nû¾Ðõc>òŬEÊ@à?ef=Y‘å‹\R«ž+ð'ÀÃ(î¨ä hù¸Ð­Eþ¦l8/Ão<Šš}*.ÁsJþO¼S,YÕØWvþLðýÝ +à`{éû ©«›¤sðÚ/"ß²àªkKû–õ1ãô|•É£žP?-P¶*>€´b:ÒAŒBì‚%ìÉÉû!ø×úÀqš„¸·Ê.p£y³Ëw—[á7‚'jh‰²ÜpÞ>ïApî®Ífiú+øÆz?†*!+!ÜdMA¾ÙEKݽcðì³·—Yn@œÍ´ÀÝ{¢D;Õ¯.ÐŒæ,ZMì²òÞ.WÏix;v jfSÄìÅ‚¶;>|ò<ö×WeÛYfVÿ;Ô¯²cã3VÙûzøSYV6¦3àGd™´ô€YH ,s&Ýé§Öt×§7Á}<%ÝÂJ¡¶)ÔêàÿcH›Yí¶;ÀEò(x¢=r#ŠF¹ìϤ*ž&ÃrYÏ–ýî÷SÄñ¸€Þž¢”€ÞŽ´È&…_ïgÒ'äÀw¾Ëµe™—ÁTð$Ø,Ù¹ ˆà8ø¾÷‚ïð‡à ­Íê<ν}àüOùÅø|Æuàzªœ®Y`¨Ûª!ÖËâ"øÎSœ¶'Áyü<Ëzø 1ŸþÜÌD¾.Ó7®î»Àﮜӂs7ÆÝ¸|‹ÀSñ-à;ù¡»>¶¾ÂöàV€ßépíR]€Çrú|}#М’Ñ:¼[|¤9oæ1W|”ª¹†faLñKh +¡æ5óŒ‡BS½ Ür­êWöe;ݯO@¶Þ|PÖ¦µO€òÈ']ó å,xEqþY/_=ˆV¸²)ódÞcÁXeï*C»\³Ø÷ŠÉ‘6^YtÃkÏÙ{} {vÈŠûØ(¯lÁƒ°c|²íVÀ6ã*Š©ðŠiÇùöƒó1Ôô?àþ× W…« ûôMx óýàXÝ[®Ê+Ê#šŽêu30.rÊ5n`X"ÚÅH{Xœ Š}¿vyÞE°1¨n;(fRÕ\…çpð¨©ø$¸0õÃËTv ]º(§î0ï9P–´”Å^‰Éfäkrwº_ ýEpa^ ʈ6‚òéÕ(¦$v«ûÍjž®F«Œø¡DgкèêßeB(w½«ü.4Qš”ù 3z~2 Λ{À¹sÜà‡—áf¡ZϱûãçOYW¯«Áqù܈lBšðp¿¡¦ÿWhÝ ÄSRâ[$ÞE¶ŽO@¹´†ý ÷'•ÃjÔ¨a£ ižn€Oõ†úAÚ´ +q=°i -}4ÇU ‚\‹]¬{]c›ÀÅQÑï~×Ák¦†¸b\S,r¿wÀ›úX~“7øi¤Žñè×Ýà"¾TQE­GÜßGA"ô³Da²xö‚Dh²«ghgú_9õ]KXÊ7zB·ˆwLYì]p“Önf”Sr ”;;5_‰V6øÎ?º”‡u)Ä/Ðîìèlj:bòMYˆ9¨úI…ºjÔ¨ÑY4AZUÔá\,ÿH§òÖˆµà)ýìÃê4x¥QåDŸBÚìõ +Zé e»ÕÎî¡]䳿AjÞ‘õL¤ÉbÁ*ÞriH$'ÁÍMà@mOj1¢N÷Km?÷ƒlË߃{tô¡¦I ß3ÛBðDœ%d_¢œ÷§ë'ÐJ¨õïдF5ecQw'öõàN6˾ßÝkˆ{C«ñÝÃhy£,ÏCˆ;%Ê37™—f­‰.€fyyÞ!«ÄfYÅúö|p› v#~ÚˆÔ­ÖBYdÇK­¥¬JÙvÞ­®ôXkâT׆æ; ŠScœµáH?G"×Ë>/Pž…>Q˜ + +ŸDÜùÐE®<Î=­^EÜô5ËIò}0ð€S®Cë@³´n×ø#à vhæ¡fq³À—üpNý€Dz-lÙò&×ù˜ˆN÷k'x²My‘û¸;ÛÛ6Tû°Êõ!&3/êýézÁXeïÇã9p‚_‚w`¡ìûH³ïkܸh€ÄëZÿ¥à"û&—€: ÁMõlð› 6‘ +ÛXÎnbÓ¶£Õ”r•këMÄE~›ý¸Ë«,Ù"±Ù³ýй©m€ßØ:xÑÕà·g™!‡4éAc4ÒÆ™ ï=ðQOcDúnp\®€º!·Á×Y¨8UßÝ›®?òºi=¯ºe¶8‘UXè…Í`ŸSί>çÃdpî} n@Çgh.‘“â1"^Sø>i5½ûB¨‰m™r5]ž)BíâÝÁ½†»7\Sþû"šŠê×r—'$Aµ(Ãkjšô´QÏkg‹´kMH+bùbí•kf® ºë‘zÊÀª®a]Ç„VÏ׎Hñ,u¿t¯xË5ÍŒE«ë‘7¤=úÜ¡ÖðjÂà9"þûn¿£”éèûÂï;üFº„ßF^T³†ko°â8êÚ³^8-ü¾i™fÉ~5ÅþÞ»¤}}Pk kýɦ¹Âuæ}±:Yí>áê%:éRÖ"Ȳ²®Z Y÷†Å¶|‰\·æóy¡¦»ÑûØ8§ÞK,Åò¹vcùçº1¹;¸nåÓ ¡‰î1—×¢‘±þÄÆ¹%}è:ÕéZ§AIc$Rnp£ÃÎ m©c&„šÊ¿ ®yB³?˜·EâQöôyBsH5¼;Râm³›âï¾/$±Í™úxЦ=Â>F4ª¶ñQþæ MBSák® +4î³n SïH辊į=#$êYXåg¸{O÷ÞqãkkºQoSÊšwÄ›\ÆR¯{ž 'Ùvg¸¾¿‘3¦ÖsM»] ãÞ°Œm ¦È1?S„ßëûÂùž)µ)íC÷É"6þoK놶É{Ï"ô‘÷~óƹ%Õ®€kÜ(Èú:ZÙº1ÖïV…»Èå[ëòEœ%X–õ;^Ôñ®kã ÈŽùÉW¥{‚kÿåÊmŠ”ÈFT1Ê{ Ë= ËÐ +Nеè~Ûp¿ý «1æ}­J;Ù³Çá=¦­FÜ ßý®G»|÷APŸ¤SHYYˆžÈò¶”cª|UHzá‹¡ ü&¦Ï‘ +ÆÔ?®ªIô»ß±ˆ-Uo¨H@ "†ïÿ] òúaØ: UX衈d6¨ã´q3º0¿¦”f?¨¶.‘G1zc]Š3zàE¦G ”/…zPãFAÖ×9À&Oñs!hð'—ï%øp«›"eª?Õ-ù)èà@"¸ +¶,÷3Øß“¹¾\,,׸3ÀÅû5´*ýhøÕØ&¨Ïõû +¼^Çvpü,ùwÕvêÄì äQ¤­_T†»q×Ñ€Zm­‰ÞçBŠ@k߬>LFÚÒHËÄ”e‹`2ÒýÛ ¾‡Çï!$X·ƒ›Á°-Õ¯Iážzô€nŠU Þ2#Žù8_u#­ºýˆGÐ|ÀÀùZp.î7öʆî ókÊÛìlE±ˆ™GÁÍ—º¿þÜToCýfq?l †Ÿ €¥Q½¨q-°í1–ƒ;ýåʧb4daiÎ~ .‚ËŒ{U‰ß—hô¥§¬X\ôý ‚U‘.åk¡ê©ô ¸°ÜÔ±T›ßÁvŽß&ÜôÉë=ø¸–5O?E³&JqN€›€»2×{‘èf¡k+å *…¼`:kÀÍé06AB‚õ'xg½{ ð³ å|d Ãûÿ?Џ¢ïðû +7žsáKY¸$äÏÁ‡±>…üš€>µ+bÕiåmõÃñ/‘ëY|š,ÿ>Ð÷ÑnÚÜèÀòVôh2²%Q¾ªi @ ßä[,'Wv·Úë®§c”1/R”1û™à<âf*¯FÊ- à—ï<€gÁ“Z +1¨f$h%qÚ(c±Ïªhrop÷¬¨X‡@œ,f‚‹Ïðƒ{Üñ¾ žÐó"@!R&DË`³X«?K#Y Ṉ“ŠÂÈ +pÁM´ÑoÜKJ‚‹ßEøÞcˆŸ¢ª¶Ó Ïv½äflGÚln½ë_^$Óƒå<•(W–5ÑChbBc³Ï-‹ÂØì€­ÉZíD±ˆ… p-ÐMàv ~‚žΩ£?z?üºP&tïˆ"ÁS:ˆË.Ò¨gDòƒhÌsùòÚt}Ì\o¸ëÍH¹%Be‘W…˜³Ä‘ˆ)¨âÓ‹.ÿ€ä+>i™§\Ÿ¦ 5T/H\Ñì0ÐÇWf¹kç¬ä©iRÓæ}(èÛ —W}ëDÊ”ÕäîsùŸÈ\W%ªÇ#Ï1âÚxÛå³\ò”b†ròÍqù5ÆìØJf|ȪûˆØ +7ÍÈõ§…s'õ-œv}x%Àf$o—P©îPæz¯p^ïN”{C8¿úDäeׯYnçiw_§¸q9)ie,ÿŠð»M½ß†Ë?˜“ÒnMô†øo!U~ƒ´º‰Y IÜò§)q+€-Bŵ°o1…ÓA‰cØÈß4ò}!ùßÎ}Òª0yZâ–ZÈ÷û”ø`>g…ïf$Òÿ²ÏÛãž-ìûy±×¡ï|ÊNN5»,é—Jy¦5•ª˜NÈpÁpÏÓL´õFPnÐå_“Èo™£ô T;MWwÑ1°òëó $Ê•ÑäÖç?¹¦¦FÖ&¨éÞ×'FPRI$ÓÐ-$òÙ1êÆÚ +T…øéódßçÉ_hŸuÏ2G8‡bæMšuùŸ.v}â£`ÆˆÆØ„ù˜Ä sÙvt㘠B¢æOÏçŒCêT§±§^áÖ| ˆ– ÀYñáh—l¬¬iÍá®-»9èu×ó"Íp}Íë_Ãõ¡Œy‘žX-¢rZòÍ~¾.š'¥zHÊ—#}kã«HÔ§öQñ›š庅fHz*I™¥A<$4i;-qS£¦«[O§%a0–4Ê^^¹Ç];ƒÂc†}!q‚Y–ø5¥uÐëÆï´“”í¼žú¿põ§Þ‹¦2§RÝW!ÌeÚ©SêT<õéT·Ä9¸Vê{=éï³¥á~óêÓ?šâã2;õ7ÄǯŸ%­,f«ñÁÈ=íp3§½—o¨`¾Ê–Éžpä,-ÃóߤTéÛTáiLôFRìå^ñ¶ìY $ÊA<,¶¹G8š™gŒäoºûg…®Øi<•払ÞLä뾟/‚g?"éxårį)­€AiÅp¢nñ­ØxÕ©Nuúv¥A!Üo§O®5MãºràD*nF„òøËî‹M¦˜VO4¹WHÝîáòN}*ÇU¹¼•be¶yß‘¸5®ÜÓî÷ !±øZl½*réð=IÉ1ërýyUŠé@xJþBO‘ïe¶õS^ûýkЂˊ2äûÀ6Ø´!|¦BKœuäbÙråÍ‹Ôìg!8±B³Ÿ›`›ýô‚vÜûÐjòó'p#`Å7®®Uà‡ÕŽß>(Z7ªb8¡¸MõVps² +´—_ nö">àwà3oßÙ®m}¿IX nÀò6ž5nLX¾R˜Ú¹«·ÇõãЧN£\ðu­Ú‚¸‰Ûd—w»¿$vEçþLðK9e¸.o‚}€ -R­2ò…„î—²þ€ÖgŠ¡Å‰Ù±,‹é ß€uàÚ”ÅBpLòÌÖGÁñ;`ÜË:'³RÌ8‹s°ßÑFЋéÿ}Äœ } ^w€](âˆÊ±šÒÎâ^àØ oKœ•[Õ´RœŸ*? dÑÄòT1/*#û]àò¨ßh/Ÿ–¸Þ@U¹tÓå-2>ªé}HZÅ9®Ž£ÌX5¹ŸråOK¾©NcOÃ⡱bù²ïtP⺠ÄëŽh½Öûi—G¹ëÙ¼M)î ¿éêXž“o$ñ VRÅ«"JWƒB¥Ü9Üß/‹­«V¯ Å£/ +¿ïDOˆ·¸ZàÊ¿!ÅÖÄ)®î”Å„J°yJ¼/öËó©îÝ,ŽÜŸ)VÇ€«#v?K‹öäÑUb~&ÑÆ°x\ŠpóƲJ{Ž.ÎóâÅα±êtŸþœÆ­â:Õé:HâUE¸È)3$ùJ¦M±ÑLäoË»AÊ´^iõÁñµØ‹½ÕÞ»žÍ;Õ׋®¿ËÝÿ–…N™zu Š +ίà¦â(b5ìÏ)ؾãcXêê¼ÍýýJ$ßUW÷$pÌ-Ÿü=àsݾï˜roøL© PyÇrX«Ó¸n·£˜Ë檨º š\kD¾“iXªÅV–þÛb³dî~™˜æeؽM)Û½éú\$ŸH1WÏjNºTÈêTsÔ¡ÈxÙ¼}âe¢ÝBý ÒîêâcË©·Ì˜Í;,ÅüTht}kȲ‡¤u\S¬e•ÿëÿOˆ=žÊu^—™«ZFÄ t Yõ]¹sDlqŠŽ‡âˆØ¦ËÙ|±vÃgŠ¥‘L=C‰¼Ù±Ì>»U6t°£[zߥA7NñÁ£"€¬iÌÐ|âÑœýÀ7@Ó ¶c™Ñ 6Šмç,Ò,²¢õ´@J´ñxïÙ¡Mø€<© 9òÌ]f¦ˆèh–bÁ +Æ´qs™ÐLJceŸE<0RhN¢ANxvÈÙ°ý·Áy ýEê‹)*jîSKàM$•¥¿6K¿ßý–‰æU†Ý[žê&£øüÍ$ËåO KV­GVÁHð„÷cøqY„x(äáÙ–—ÀSä›°Ó|à‚æKýÈ‹ÞiÅ&©ï<„ŠŠX¤N…©{Ÿ •åû/ˆkwÿÞý}ÀÏ ô)ÄEP3Ý2ë½ü.®‚a§·¢=ì4Ð*"¹ âci™[¢”½F¾ð™bX˜©'5_²cYª™ÿMð·Å±ÏSUô€æ MÐR-6¯5@^˜ò‚ÜÙp;‘ö]ñn¡6|l§t·ð¤ðºp×7]èÈåm#oÓµ¡ææÛÂSVJƒ¿Lý wýnñÁuòüª¿èêHŠ{Ö{@èÀgÀ=OÊuñ‹.ï á)J•¿¬gnJ뉧KèôAaå?+<Õ-uc£>å-%°¡õÀ{Æ„'Ò÷%ná1ìòM*Çì–´+ÜÓÒ~rÝéÿ°”眞D³š¿ÖûR·ÎC‘º²i¹ðô³Tüio©Ä•›Rü4ÛΟÔüjº~gÇ1¥µ>Uüï3Æ'›·éÆgȵ•×÷²V:±z›Â9;IVýEÇ·OüwR$êt½¦g…ôvD8ÿIÜšjPÚ1häËå†è"í€åîzÌdî¤KÙÍZàš®®^ñQïRÄ¿lý]Æ@ÍumÆ\,¾/öf"•”ˆ«Ûß”Öh¶?®¬efÓ”Öì!¡F÷°+ÏÐ;U·¨[ÁjRì¿Ø&&[fºË?X ÿš†"ý–r€†«§¨»LçØ;RŒÕW–Ý{ÞX*š¿¯X²0T°ìP¢­ñ¨·)6Jä»kÜìò[rßgÐNœRu«9‹¦K æ¯µÁHôßpu¾ z™Úà¿súU©$ ÝŒªW8M)/h¿åâwcuÔè·d—!¶cbåØcåyìó‚e¸VùxÕ[£ÆD£\ï,Ó×%ˆ{-Ü€¸l=EÈO€‡ÃQãÞBWfW´·ŒÔ@í‰÷ôÁûݯ*‰ä-®ó<rR.[Qdû1q¢ø¨ø² ùÄäVXî æpÇ6i³.íÏlpðT‹a®»ÿÆnÅa´Ÿê>…í.²š$Í7kóÁÔ/:Ô—3à˜†›À¹°MÛ!§áãœv~àð§Í¸k)|Ž|bw?€¿ÉÉS%¿ž’k\[ ‚Ê»$î? *?‹´‹ì¥HÛ²ß º¾iWÀÙSçìCË âîÜD›aÛ1_ùEòmKÇ+6NÓœDÜ^¿$ä±þ¥Æm¾û5î=Ò# 3ABnÑ…àÊ:(ÌJgkxÀëôÚ^N0"­Þº…2Ô”‰MkÓÉ>ôUXKÅ/S¿•¦‹l˜½§‘ -Ó¦XR·¿Š”›I+u¹r–»éÞÁÛB¥Çظeóg¯Kq¯SjFfºsŽ…4.ÚŸ¡HÿÕåðá\›!>b¬ÿ÷¹2Ï +•¿º„ó'Ï+Ynì4èÞùCî·'¸fÉ={¤œK×^ñÑ>5©™é6#·PYëQ÷ûP¢î¡.ϳ‰/öܸá’þñ´p¢Îuªò)Ÿùeä¦Ë«ÿ÷¸—vVâÎeêo¸—¢džPÉï ‰+NÜ)¶ÉxÃõç×‡Ôæ¡áÆPǯW¼{̘ H{á츅×GŒëÃbÐᆥážu±xeLküÂ÷ÿ¢øÅtŽ{Ki0ÖŸ¡Hÿ!\È.»ûg…¬‘Hÿ5 +5c§%ís¼N×OºW8ïs¿]ÁµØ÷gÛ<‚2(å\¯Îâ‚´[(Xʳk„ó]cõ6Ä[=‘4%܄̑ø¡gp}èoåÛ ç¹ì-â+¿Hž"måÓÂLÌ:¦O¸&“¸"ªŽŸ5n‡Ü½Ø;”¸Ÿ€G%߯Á ô÷'%}:×tŸ[›î~xM̤NpEë璘ƒ¼oH<¾2„“êuñDHÑŒäNˆ"Û% Â:(¯ã“ÝTXã¦×GŒëÃb/~=®Lv|¬Ý­¦»¥ÕÉËÂÍX£D†"ý¯ÓµMƒ?U‡×ªÖo•µNºy§7‹Øæ”Aá<1R,ÐÍR)î~±{>ýåÛo¬ïYt»þO”‡Á“ñ§®ïj=×õínW×(lùn$Ü£ààȪž Ãù [úxR?çúlCúG¿FqÙýg „ñ×<ÿàƒÁsþ´÷ÿ+?Yî¯ä´©Þ¿ò<~:kú5jâ_£FT®y¼×´ÉàÉá0ÚܬO2×çü­QïЙÍ-ˆ³»ÀSÖ2x9ï‚l̘›à½àâžË{á­H»ÖH,²1Þ—¸~nvi¨´4ŠöÈWsàO Ý BÕ.£Iî÷bð¿åUêN—îOŽ«]})7Ê1ô»ö¬²*¿µœÝâÚÝgÜ Ÿ7‹EîúZ´¶•àX¾¾û‹àÌl¬tåB|ï£F[;áŸïDöçð²öͰeí5jÔ¨ñí‡3xVhF§ÿ¿(¶Í¥ÚÂ‡Èæéšá4æ]®óâƒôJ±( MB³Buè3hä}ÞÝëŸÝŠÎ7(4?œ.>ÐUß »7G¼c£‡|MñfxáßazYèøÂzÆ5Ab}°ìaÃçÍÞSg?‹{³$ßYKC¼=vÊ\’ް7åêT§:Õé†O*x<ÉõŠK‹`»Îž¾Îynœ¬S8@1ƒp¼¶ð'®Ý7];–xáZˆæƒœ‡[ÁSæqx-ð,Ô¿ýWÁß–+ÉE á#÷÷‡îÿ,ö¸{‹\Þ=îï*è‡Ýg€Ï¨ý±úºvœïðy³x~^eñòµâOsã­H¿BTu­yý¸ä¬Q£F †*vƒDîwý9جѩ ¢Ò Ûv%ìà0»Á…ÿ´/²ªÌtθ§h€ˆ,‘вy°Ê6PM°žø5\ža›~õ‚¬ìS¦€ŠaÖsö‚ƒ¯\¾›W~›îî¯0÷‡Lž©®Ý3‡èß™E¬Ãþ”½§ÏkaŠ»£Û^€›ÖMh‡0ˆÿ¿½»ÇqÃü”ÛS.' ^Zjj´p:z®À 8%7 ¥G¢É€‰Âk9ã‰ãM´»ùžGŠÙcÇN¤Ìk{~†Ç2o3×L´²}å;NB3g»¢ëM*3-׳}õ{“öos3ó~[oâœ^½v]²lbîn€PPo:`¸/׺…~Mò-Éï™2Ó¶§*pvÜà!zžapq€ Ù}öÞj2}ß.¿lìgIÏ„ëÆv— ¶k}ÞÚÞ ½ã¼j”?äûÉm¹%ç½äŠûg’÷I^en¢­§Pÿ._kß–(~ÞßNüÿ&ðß#Ûÿ D<Íq¿ñcÄ wˆ§ƒµÀujzÿÜsmÖPKû®­ˆÁW]ßÊàCd°Ý ÌW&@cñ]÷× õ´ A´·L'sE?eЧ‹…&ÚéB2b å{M¶ðM4ÇÓÀ[”£¿ÄI¬qm\Gó]¦g9‡_@¬Còë’GÍ>ï"z¶ëM¶cBý›nQ{i4û¼­joø£Œï^u³ôf§Ñ›ü;ŠthÁ²ˆ§6#š˜#›>_Gòø*Ò_ÿ<`-²@ÒÝ,Lˆ.á;Üç>Fû âVÌ1ø.ØcÀ‹¤ h…ŸÆ øM÷~¯¨Z­üA +§Jh{dïAøW×tÐ*fžz¥r?¾ƒh.‹ÆûÀ&d˜Ùœ”ø>k¾²ðS÷ÛÄ1`zâ£V¯Et: ¼×Dûà·‰’襼QñÝœï6¹¿E+¼ÀI4Þ½Èp¸åÞ/£9_ üzdŸC·eD†4vç?Æb;Zl,¿á>{èú¹ˆϽímCq…Zý(«­ˆ–ÊÐß´ÚJÒË{íG+Î2ø¢{%ñŠkïBɶ²pÍÉõoYÏÌ!¥6\¤x`Ø€hpï!¹ƒ ¡¢…I]Hþô"céÍüË?3|ñ‚ÑYÚ )Ò5[sˆ7’Iâεñ¬™‹<௠~8‰î×®CzÈzø÷þ>2Ê`#²8GÐ3-"Âû ÷} ¿ëúÖ‹› ­3îóü¯o¿|[süaƽÓL!…]–à³ÐwýJ®~+È+`®º÷7o¬ŸGnìe$,‡Üë>zîâã³d{bÖ!ƒä&a£,„çЧÑ7.o¸>Çàð»Ïw»vÊxÒ0&y†& ´ +ƒh^Š»Ýcḩј]qŸ§œQþs4Sh.“¨PkÄà§Èƒ•V|*¬÷²™I}¾Šh»üµÞ L褼òa#š›ó´faö 2LFÐboε}Žò ‘õÈã7‡äÊßh;K¾¡ +’݈G+Èà<Ž”Û`É>=DtWAN«1Š_釾›-¸ÿI$“ÓØ‚tмÏÃëí\tŸ›‡,¨£“@3ÊkžB“¶Œ&í0õ„úšÔh ÊXíY¸èþB;Šyí»Å"tíñûCŸGû57ñ–û_!a7AöøVßãø[«p­tBðÿ‡hßybÖD´æÚ ˜xÏ#Ëü.^!Vè‹ášÿ +¢¿P[+ä½1èEóÜY(R0* ÑœÄ`ѽÞuï‡ÜßFÑy4æ!+ëÙGçy3Anž£fFRùoD<}²‰ö’8‹ÆíTà»óHN!ÙúzN;]®ȸ{ÍùyäX@ +ì µÞ¸:ßO#<ÆàhEjž¥‹Èàÿ³ŒvÖ CdOo÷þ9äú™÷L!<¤µ¼”DÌ@® :›G<7ïÞß@ãØŒ|ø}j·¤v#Z¬AR6£¼@Ê`Mþvdõþ¤¡îÇ£ μງŒ€qÊY(³z )¶#xa07R²ð-4f•²ËÁN¼¡U„}hî‹Þ0€ ‹wŸEÏ>@±añxE ŸEê"ZýßFLyF ëݤžA ¯Õd`šwa 6*ˆC;ÛsÅõq)¢>šß®±-€Aôì¦cVÚýˆ7³Ü«ý¨¿Ðè`­Î[íh>®‹²Âw;Rb×2Ú3ظU +ÚÛ†æëùt=zŸµz{áâ¼”' ûlĵExɳ ÂcsïUÉÛîÙ‡äòu46IÊGH©qל!_î÷#¹fm…ÆØ iò=©¶ÈJ{Ö yMÆÒK,Ê´7Lövê0’ayX¥~«õ$â™Ó÷Æ ©ü{È0jÓ«¡F•ÀWÿÿEŒâ‰Až ±K+éd™ö¢ )ª›‘°ÜŠ'Ô!DeödgóŒ¡ ¢4S%ÚhúÓíÁTzi +õ4狨¯1Ìd×ZP`r'¦÷|óÐw~Ã}¶1ÏAàë‰kÏ#·Ø:d|;£Íkî÷!…zÑÍ&ê’<¾Œó)×—Ûî³e‚®Ì +ì>µ{ ¹z-çž4&ÐJ¡¿ÒÆýo§'l¾ãOŠt“­DÊà’k=Ï[kî“}Z ­¤fÝõ‹®ÝP{ÆÃé­“P2“z© IÓEÈÓìßÅÀ6Ä_¯æ’ôr|÷øsˆ>’½—ýÓ‚þ€dÜ&Dóy['?Gà<˜ú;ß÷P«ð-öcâÇ,Ã5äªyíbè¥ Ê¶wɘ +šç¤~ |ψN"šÙá>oä´MÒCÃx> z±Ó;Cë”WÿÍ 91Y‚„s1ÚA4yXD?ˆŸXû¼Ì>ã‡È³ßõuŒ|‚Å5Ê­YëúðM/µ–åtªÍ÷7vŸ÷RÞ×Üo­à÷ÿb÷']ß®&>ûÄõ)½Ò‹VR×ÑU‘P݈‚k‚Z‹»H ¯âW‚7)öhœÂ3[hÖç~kOÞžpzþa4¦ï®ùÚs…zúüÍuƒ¢,R¼5°Dö–KšÎb¶“^’"͇!ËXMÿN™íJÀ'q9‡Üìeû׃Œ<;mŠ­Y¦>Ž! ïú‘…5îw+„ŸÛ ÐN|ÿ+‘mߤžfm¶Pë¡Zƒ÷%ѪíãFÚû#àÏ]ŸöPoLÿ1Ò/ >,rçoFsxSßAr`Od¿ ÝH¾!Ùüm|ìR ÒÌÙJåÕÈ_EsMÄ!ôЫˆh&г¼K`ï#€bé¥ù¼‹®/_Ac9Ód{ þź硞ÑC+21ÏPoD­Pïê:€ ¨µˆqå­8Ó+®Ð^½m äÁ¬å´PŸ£ÞýØj2_ÐÞ~êWìK¨¯ddOîË[±7±]ýÈ;VÆ«R®–\§ÑS>Y +;­D‹æÃ0@}þŠÂ¥1èAFñ òjÝBrè4ÞËÓ¿mÈཊ¶´6Q¥¿Éç¹Àwi¼@þBΔÎZjW‹H‘¤eÏ·h…l·2b“x€”ß ü6U?·eŠƒêbÐäÀšßQ[aïFðu4?;ÐX¬CºÆ óˆÎ¿hð-R 9¸ŒC;=“/â®»gʽŸCrù:¢EÐÖy¶BÖy«”W™“i˜ç!G³G +gS+öÞÒˆ™KHØïBÄñ•üî“hð§-h+ éæ$ΡqîFc›t;Ï¢±¾¸o-ÙÊß`#F€Ž%·-ÊÀÜn[ñµì¬YôáÈV4±A›&0;i­âÎü¦û‘°+cÔn@‚¿ÍqÍÓ ô ±°EÀ‰÷&äF(Ú4þd5”ø¼‘öì™B'M1PúQp×%¼Ðÿ12ˆ/¹ßŠmwÉßOÐ +ñ¢µÿ’¸æˆ'ëÎwð"âÏnÄ'I¥ýk¿¬ÇÈ<}_CÏxŒÚÓcw‘B?ü¯ˆö¦¹…×·"mtËÊN&Í %x)ÈY×·¬€á,ìB^Q¤kn¹>ÿ)‡!€·Ýõ;Kù÷ g'0Ìë±)î^²c§q¿MŸeT.8¹2Z¥¼6·¼†Z¡:ŠVŒeöP¾í^ëñÇ›²]H¸~ #ÅÔKq4òÄ”§h]F¬^â#6ŠËˆABFÆ*ž˜Ó OŒ±î¡ùÜŠ²ÚAþ*g­ìO¸¿ÖÖeê{ÅÐÒÇh[âþ4À$xCÆIîP+ ì¨ã$@NRN€<@‚á$µŠ ¿±ÿ· <Ž7nÜ«â~ã$¢ßAD;EíUïCÆôª»w…ZkÜG²UFë¸Ó¿Uï>ê™õÛyØŽÁ ê­ï¢ñ¹²³tƒ¿dòtN¿b¼´­ +þLã«Hn§Í>F+ÑØSTï?±GcŸ¥bƒ‚A©Ú-¸üc¤ðAóÒ…? Òy[;ðÉé’ø¹k¿hË:‰UjåìSˆ÷ÞÖ"Þ®‹å *¯§ñ6‘²ÌZuYðPŽ77è-$¨§Ð¤UêîÌG³YÊî¢ ´ "¦·ÐXœB“3ÑÖE´8Ö@?u&±ú3ïéã)'¨u Zþcd Ûß܃á +"t[ !c%6aÌ‘‚^‡è ?°”ñy/»—1ö©ù1Q/Ù†LŠM8ƒÆiŽzÅuÍ[lŸ¿‹è,ëúID¯1í½†æb¯PÊl;¥ñ€Öz¬~Jm–ÍVaþ zˆn(^.“Ÿ8ÍVseé%‰Aê“G5ãim%V¨ *6 ÑÚ“Meñ€ÖäLèGÆŒy8žÁ?ïtši ¿pÙJöé±(g„áyä%¹ŠŒ©÷ðñ‹”Ë9bÉÚÎâ\v¡­€qj«3tÊ*¯Škü4"„!÷ƒg2®ˆPH +›$õj7„oã%š5&®"h$[\+ €Ÿ’}ND¼§)ï𹸲ð +å÷Õ¶"cqø\ê»E3¢ŠöccT>&ÎýXæÈÛ;xI¬d›=3œD+ã"Ê ÕgüË´÷â‡ëïæ‰[•]]—="9ï^éÁà®ÏW¨ßv=F¹Õìg…"y`1X]há´Õ½>Fspt Z Å. _Fún$ðÝ]â“—¼0½Ô®ö¢…õñôÅY@#Ê«(O@Ÿðé1-P+Xó„C+rƒ&óZáU¿œø2ønâ™Ay‹ÿ]$8fß}‚öÏ[V§\nf¥üˈJ‹Ûkß5Ú^–LXåÑÌmÙ6-06íA 5ÆS¥md¹¼E2žVª±òà’S/¢˜©—¬?… Úá^‡ÂM‘µè{@óG!C×ge•×PÙÞ”@+&z™Úhõ¼cAE°´ÅE˜¢|¾n;Nת +Gð©„Có³žü€Âì™C.Ò1dÕ^Íø½²¨´ GÙ^—_–i]]$Ò9%šA3üØêö6RÏßch…v™Ï–þz ɳ(â¾(Ò>e’eá0á´´P^ä¡ÕôRæÙmKk7Ú®»F­«ÝrŽ |Pj/õò¯yV—´ÈÛgÕÇ‘WâcDÓ‡W­V¡^yþwdÇ']§Ó{·Í¢ EB7[q-h`Ý~Xƒ](¡Æ?ã³@M—k;šün´o3EØRžD+‘ô¾~Öçm´ÑFm´‘ 3 1åõM´<„,Œ ”«"ØFm´ÑFm|Hm´ÑFm´ÑÆüÚgÝ6Úh£6ÚhãÓGÛh£ þøW”£Q|Ùµñ}|^øFñ´uõ¥ïø7t¬±§Á6&]×dÿêÚXÓ` ªqÿŠž§<åî›ÆŸå9ü˜6‚hîbîÏ{¶¼1|x¼D_^Ai|cÐ…Æ?ýYt>ë˹~Љj{ÑXý¤àwÁv ]„.²ç³Žx¢‰~ô¹¾ô¡@´õ$:.Øåú:é´¡dÛ;ŸþJ\÷ïÀÏ()›¶žEi¯££ÍD'Å4œ ñX†/ H·ñ¹¼ËâoÐQÌ‹¤275ˆï @ÁiÊ?× (Jö4J”ô}t̤™ C í¥|ÔðwÜ}Ó(NåG(x5¶?]ÔÒÈSø,pÒÎ>t‚¡™6ö¢cŽÍ´2°NÿµÁû[1ÍöáăÞ_ôûÏ£cR‹îu–Ú“B_v¿ÿßR÷õ X§)ŠOø| ÑiQ*õ|!³!÷»Æó?qý;HÜÉ I$sìÈóâݬ„lÑÑãaÏu°4¢ø„Äz|Yê"EÑëE'6#Þħî6XQ§9âËœ:ðÉÒ:ÑX]C§»¦lŽ PïB'LfQR¤#h¾Óņ½ŒDöóŸ‘Î;æ®ïrí^pmD Í:˜Æ“®á›h Z•À§ +÷/¡œGSVh=‡”ãE”žñGhíÏ·Ð)ƒ+4žãï#4nL"‚¸DsÏõ¢»Ïª£å)ßKøHÍ bÆÿéÞWÜß,åŸ.p³1Þ›H€ÜÆ—üÍ:2÷}ÄPÉ£ŽÝèYîŸwŸÙýÍ(]“fÚ°ã>Ym¤ë/¶¡ç´Ì‚K„é® ³ø¼w‘òKiÅxdõ!ô ]øêlV"y1ãþfßð2âOótöŬ\áp ì,Aý4â½¬Š‚}è(Û(¾*ÝQ$Г}Ù‚æ§ŒâÀ%A²í,â›H~oAÊlñG(ûäNÂE’Œ‡:]›erV,Ç ]LÌ®+ÊŒù>ð?¨7ì·#ƒzŽâj¤+B·Óþˆ¶ÑâY×þaò1'Ý=Éëf©_°¼€ø ¦ŸÑ<ŸJ\ÿéžãèy[j¼ŽÂj¿7c|%Õ8IœbêBı_l¢‚ÛWÝ{#¢Õd¿kç +Þâý:bæ ´Â=ƒý_pm#ˆ¬x”ÑÔDs[(>þš«Â¸ˆøù Åüÿš‡4½S¼Šý!’7g{z½ËéÏ +âï×ë·B}å·~4&¡ôÄyXÆ?Ãûû ¢yûÎ>ÏJG R CøÊªPŸÀè>åR¶§‹Ö:][ÍäX0Úï@cÑõqJu¢ +Z|-¢gUä{Éêóh³t×.׿8’ƒFÃHá'1F|‚(Ó!¸@‰úfüÌ5vœìÜð­ÊNf+¸aDdE +w +)±=x«Æ\®7Ъ0V°â,R*F4s”Ïfx ±“”«`eÅ^öãû¾ ëâÓÞv …TÌfŸCž‘yŠËÕ~ˆü0"T3.ÑXBš×SïŸAc}®DŸ§Ö¢·|çeDÅý½•º/Í4y•Êþ ¸t•³2˜DÊâšcËìuÍwlb—7¨- rΗ!l ÅÝûUd€œ@ƯUzÌ/£þEö9·Ðx¦ó\üšß"åÿ¢Ë³h<—½ŸGý.2ÒÞDóm ~ÜûY47±ôe«Õ#Ô»%©©«¼–@VôÏ~ tË”¯&:„W.C× —ò»hïzÀýßãú³„ÏÓŠš-4Ÿô­é‰ãø9^Bóq ež‘{ZokÈ“i‹‘{ÈHè&;cî.$SGðÛ¶ýq—zOÈZâ«&ÚX…JÓRÂ{fÀ(Þâ)[&„¿¡Þ»° «ß'n—¼ïµ.7ðE:Ê#f¢ùLfˆøË2è(zžd¿ßÁ×H5V‘ña㺄Œ¤ƒ ôÉæ#¹§ÕŠüÝ}È…6GmAŸ˜bAéù)›ïÜúb’ƒx‹»ˆéÒ¿k+¼yüs åÜ?VqÉ•Äב°JÖoG‘"‹ÉÚÙMXÈ."cvšr¥[EZù?ÆñdĽf š§ $Œw¸ïb¼4i¯Ë4†e +®ÜAãJT6ŒÆ1/í­)PßÁWêBô²ÅµSVN%Ýì¶Æ&ⳡÎ!£ë»h{”°ävB²,vÛÂCÉS®­¬ø„ô|SȨ® ãìâ[£‹)4ÈŽÉØ…ä§a ñBr¥¾‚äXŽ?ˆw¹§‹ÛxÑ%´`ý¶koµUXAtS!¿@¼|ÊõÇʰrm߈lç?”t«‹òœFƒï¾M6á|š¥5EzÆðÙû,úÖ˜>¤tŠ`Å>Ê൫–qÄØy®½E±Ã-£±Ú„Æë.bÆ=÷XPÔ"~Ox-åÓ7Ûj2´B9ŽWÈe«©=@ =†ßNØDöª8«¬õ´‚ÜêÞ—­˜¶)‘ÃÄñï2á=é^$H^vï?íêr'ÒºqíRHiå:Gcé\Ÿs÷§\œñ\ÈX Øs–¬ù#DǨǭÔŠÅ ´Æ4ÇÑÜçíc‡ú2Æg/X`eº€Íc„çÈÆðµ)~;ñ´1BØ;4ŒÆé22`ÓJø]÷zyrù6µòZd˜Î$>C¼<ƒ¯¸·Bx¾m<÷!c|¾ˆÆj&uý¢ks=qi™÷£g¾‰÷èÜ%.@õ?T8eÊnGt•°¥÷ j'cþ7Jü†á"ŽÇÝýˆ,ß|¬GÄtY—ãîs³ÚËà0â¿pí^w}š#_‘ßv÷>†_ýmDij +ÊB?b 2¨ ÷ ¯Ê“Vù1D\V¥¯ A3Ž/¥i*¸×™*î}1Y2ˆì b€¼þ¤‹*õ½.ƒ7©õà4bðuº~ÜDt=Lœ4œAÂ>vø¢»½ÔnEì@‚ö³À^D÷!Wz„•O#Õð^@Ï?ŠVÃhLˤÏòdÅÔ]xÃñ†{M#C`RÎe±ïM°Úö¾|Ïýæ"’7Ëh ²<©¦Üúð²>Ä?£äo¡„ÜÞ 9¸¼jéy4ÏVHÁ>K­ñœU_¡ƒÅ™ç8­·Pk-âÝý†;‰ÏžG€ýdÓîô\·‘žxÚÝŸzH^Ec™6f’ã +€NÇáôá +ÙóÞE2&è‘J*ª¢ +t¶š´ôæ‰+Ux)ƘôÂi\@+¬sîï +z¨‘¿Ä1Ôç£h¬­)ʹ>·#&ºŽÉ‹ˆ­XCÞ**àfF×:ê á”Å4z–[À?âç¶qïa£%ižEÏùjàº$zОìˆ{•uq¯â·0ҵϓ8Ž‚¨òús)Õe4×¶ÕQÑJÜ'C° ͹•‰3x)Ÿãø`Ñ¢ì Rç¨=p’Ö”M"Æ Zxû2ñ'S{1¶_As‹»HÐ>pÏ£µÓ^Y]¶¥1€?¾7Ž?pI÷‰_ÕÍ!×s’+û©ÝÛ~40ÆSøÐõqš×a×ß—\³N:„Ú C®Ýd¯ôC8‹W¢IY +âù›îš4z‰ßžX‹Æk Ñ‹yš:1}츂÷ý5¼¼¹F˜7ÆÝoFò)dðìG¼k ˜N47ר\$ãõ:ÑÂ0è% p—kx_ÛxÞª-²ôÒØè:<õyÌ +¤þ_†±QlF3Œ&æRhà­½ô¸ûí8ÐMD|1X¸k~?Π Ý„·1OÓo¸Ï_ .`+´ÿf+Ô2؈˜ï:µQéÛÝ\æÑÔVÏÂ)$Ôó~³BãÕ!C‰WÒ¸ŽÑ>×—NdSÏ1ø¢ã=è¹z‘<Žö³ÅG›Ñü4Rt«ñÍ>;Ü«H1ö£q¹Ix%”…Y´½ø âÁè¸Ú!4¶Ex ÑåIj•ßC¤4÷"Cñâç"ÄÒåa +=ÏY$SOãjÞBÏw Ó!ÂȲ`ÇÓÞ;Qäñ}ÑÔ +šã9$*øEàid(5 >Ž?]V¦"á*>^*}lxÙõé’³[‰[|®GòÒ<—vZã¸kš«i¤ˆó›'ÐølÅ6>̼‹æ>äÅý^O~‚_dþvâ[ EçhI2jYÆ3hr+H°ÓuºÏÊlàîµHå$ŠVpkq™ë¢ ú 2†ÐÀSl…ö ÅtÙ!¼ËÿŬ›20ãîµÄ!t·®d[¦Çð²÷}hex8àf$ 'ÐÜÜD„L^}àþÎãƒhbƒB{Ðø†Uy>¦_wýŒUº=hlmµ1†Œ™ˆ{¿åîOŸOOÝ‘mVh\F\Šöž/ !p0Oc¬g¨Uþ èýuH•9jièE´vø<ïgaÍ£e›G®Ñۈǎ ž˜Î¸³ë礈ËÔˆÛQüênÑõ?fûì<^É<íÚ©à7ˆ†MÎ„Ž€A~àÚ +qÞœxÏŸ=Ë$o·¸ÏAãsɈâW¯ß@™%Í«ð>~«Š·)¾ŽW̲}–Õ®‘#|ÛÐ\#|<3¶ §6ÐA÷B4þëí<ŽŒÒy$«,Nì‰kÞCFÐI÷{y±7¿´5ñÙ7Ñx®£vqe^• ×ÿÂÞ™VÇêÕãøã!¦Ü€¾Læ¶çÐÊoŒòѬ{ÐÄÚÊÜ\r‹h¢î"f1Áš·:ã^¦´?Ægv*£´_¡>bøçøs§e‰%$0O dÖ·ëHùy%, Ö^éFÏu%ãžÐ3e ¼<@9²0ˆßã¾K~Mô»H&•Ìm|mû2Û5ÃHáôVnx×xˆÁ*î7§í͹~ÌàøPÎﯢÈ㢌pyè@Jb ‡4/ý™û}þ7»HÌ%ÞOd_ÎwßuR^è?Žøä(Ÿ6ú:'ÇJ®0¿xo-èÉ…Í1òésÈý­¾»Kq@g>HR¯"ÁˆZãÿ’»þð{mw¢ÄmSømŽ«È+8è<éØŒž=dX˜Wh¢¿yÂt\vQh8éÚÍ3F6’|ïò¨fá%üI‹<¼…ÆÝ¼h–˜'‰4ç+x}Ó…ø.F9ÿ±kã*¢;‹à7Oí§^Ò=I|©]qlÖ&«#pMÏ £œëÊð:Rd[e÷lÇîœvvâ`$ñbŽXlDB2´_ù-âp$aL—Ž´µý¿<¢ÚŒV Ô2ȃ—Q’iNùá4ãH˜¼A~lÀ‡ø¦f’ƒ€æyÈý2B'‘`ÍëSø<-·ÀKàù|ôg9ßåÁŽÁ#ýÅqe\µI¬Eò lúçG… +æi÷ð"ùJmÍ!Ú¼…mÚ-Ä~$?$œü÷à“ñìG[@!ïÞ|vA\û?Gc7ZŒ™±“4ì˜užgá ´’=E½pŸòÇfÐö"ÙwÿQ”#“ø(iŒ¿•™·…;Û9‚dæ´8‰• «È8« ½ô›‘÷=$ €$è&ðQ×IËÌø*Åû)Ï"F¦9¡ù â·Š`GAB(³ï™>ÙF#T»cu#—ôGhÊ‚B®kCÅ]2ƾø¬•(slðYÔÏ1wße|ÐUÞxfí—5‚"ïSž€ÈÊ^öib•ÆŒè"<‹ø} ¶Ëîu‰¸Ì€e‘NõYc…ìHþ¬ø›¤³NN¼… ú3À3® e€ìrí ùC ¯»h¯÷ +þè× a¾¡v‹»ç<⹃øm({îQ¤Ä‹è+‹GP.ËcȘ½†VÀÉ£Ó!chŒì4ØIØ3†úÙŠcÎÏâc¦ð¹ý”?VþšëfƒH+ÏbãÆ ÕèXAÖ`[Êʢ؀< ¤ +ý,ÑÈQ¢f°‘ÚÜA–þYü‘ÛS ±Ål©XÔ{+<&Cdk  ¶Øˆ)ÿ9|ZÚfûSi°V¢Ùq^¢54¸ÑNòz„ææ"ZéŒQâN! #sŽúù´Çü’ûþ5؇JAŠ0ßäý ‘÷/ £{ƽ_Bó°BvË.—‡Ü5Q•g¬/ãO0ä)y‘­d“÷nE^ƒt\Ò'Àÿ•óY¸üLâ³Ejù0o%¼É„gé‡Àçè“ÁŽùÎ6‡=üÀwiü5ÊN9Œ`æUIÏËkî÷N¿’_ ûHø·ðGÊÏDô-‰ŸS¿>MÉ“)eÊ› “r‘»!¼·J_uíÆÐMR›!Î`9ÂÿgÝqXƒˆÈâ f)EŸÆÄÔ¡þô!EegF©MsÚƒ˜*óg¬NöZó\ Øƒ…‚þt!F,¢“¼-ŽVö'PoÆ=Ý…V_ͤõí"œZ¶,Ö I–K7v%ÔÌܬAm£ÛEÏЪû{<‹¥'ÅÆ0ì"{UÚFŸ9ÊsÀÿÝâ>´B1µBšU(ÖŸ;a#˜DÇÜ’©­Ÿ¾ÜD›yx +ŸÔ :PPk+úùµ¥›ÁcÏlŒóž{oÄ51Ø@$=4{±6b›< +Tek…âloeÚ aŠh¾CãA–IìuíÙñÆfrX Ñ ” „ëßOaȽòŠ,¥a5+,í (Þæ,­­ë¿Øù° ÷©?ɱÅÕX1”˜ãx“(â;ëTÉ{£>¹YÄ]f%J¦7lF˜1ÆÐ®âó‘ìG§ö¢óï— ÚêGG–‹`ðf]»eM-¯ÿˆë³Æ¸ƒÉËœ(ÚˆøÄèzœøTÚY¥AG4£F3ø€Ñ1”ï%/€tŠ‹ 2]hÿ(õrÐ*õŽQ ‡~ €'ƒZÀßÓˆÐ-ùÍSˆpc k3ÄK„ ¼1C'á±èCÉn4ÐN(ª~'bÚ²‘ÖO¢ñYEGPFй|kû Dˆ(ðOS\YÏŠß%ŽA¡ "?œqÝ:šÊfJk‰Zèw÷Ý@܊Ȭ¥qÀ ‘"Es“øŠc]øÔÍÉyF@V²™,|ŒŽâ‹·$q Ÿ&£èÈêtRb ²²Ê?tú`#R¨oQ;~±óñ܇¨Í%Ÿ6b‰¾†hUV{¥’­D  _€(/#ç!ÂÙK©¯©²ñÞáS{ñ)r‡Ñ ¤—ÍY]…E4/CHaŸ%;+ßGÔ×ÔØ”ª72Xíƒ<½ÍÁ{Ž^Dw›m_pýŒ1Cräâ…Q<ïž‹ÖîŸÃxÃû”kë8¾ä4ÄUO^óM|zïqDw–ÿÄF]£Þý!›Ã,¤’Àv÷ÉÈõ×Ðiê'k7¾bU+[‘ì6²ø®£܃?³» Ÿ7û«‘¿k•˜’•Ùºð™³ö#B±³Á–NíEòÙ¢ ° Œð 8„„åqà/J´µ1Ðô,g3L ¹<ˆ.¦rß5òK¿ cc¸|á=ø4ȸûf×A wž°'ÀЬ #M2öR’/ÏðÝo-Sû–Úöšƒ²Šá¡ëßu|Mô‹î»eópde¬ìCóq;ð]¶º>&I¦Y‘7¦ÍÇ(µÉĬƒ)üFë’ëO«NÐÜGН™ö6] i +ñMúYo!…™®û_«,gÕßÒ Ÿäû$#§È>‚8‹Ïb ˆ.¸×2µ¹þ +ÉÁ¢äLéß:‚žÓeð á£ávl¼Œ&)GÌ™H|õr¬ƒì{²´ñ z¾ +2ÒiÅog´ƒÓ‰ßy-\lLv#Þɇeôl‰äà:÷~*Ñf°Õý`:™Ãb²¤’yÌ]wƒìä_&~µ1è~çùÇ7#‹ï,ºVðÆù4Rh_%ÓXA1‚JVæòb”yZcù7’°èÇøLäe’جA§8Ž¢ùBŠí’ûì&¾¬kL¾÷¼t½=H™]BFEŒGf àñ¹ÔÓBe¢¹²­ÿÝoSŸÌ¦Jmr¤üœé¤HC¹¦GÐ|ÌàÓ@7‚mˆ'P –Ö;mÀÄ` _Ä)„ È€™"ÛEüUL +“ˆ—ÕNÝ#»°Ëµ9@b°úIÐjåQr!t“yÛŸàÇ} =I^«P›&ùåäß$ÏOVþ?@tó¨Ó–Cm:o[ÈÝ£VGmB¼7äÞ£çŸ !4‚äªkû.2Šê +¡音HŸuS+wò^àKtÏ¢ú øÄEÿQ´-½0G=áNQ»7²Æ½¿ŠVÈY–Ýe¼ûb ‘¡Ä÷ƒ®Cö™¹Mòp)â-‰v‡]k£ÜFÁ#hÆ »ÏPëæ³UØ‘7ä>)O?bˆ“”[mg¡ üYâ íÃïÎ"E6SâwO¢,ƒæ>[D++éz üÑVÀcÐÈ;AÜä.$À† ¼€˜ñµ.ÇðOŠ\ìyŠ.ôÝvô¼×2Ú® ÚŠ\ X‡„‹eŽ»„H£™ ßCô0EmðF±ÑÝ"ÞÅlî̤ËÙös‹æ:$+*Mô/kð%¤giMmƒ.$gZûƒwñ†yr–ð¥‡íý«ˆNȆñ›Ád(ÏLG&{Ka;µRArd -,_uýK¦¾ï~£¨Ú_,I\•ÔQ‡‘Ž2Ãùšë<^\ãþΣ1¸Æþ"励 i›ã ž³-cÐ|&å–y¥CèCúu¿Ý¼Šd[rÞë €-Ôï%¥;yMäòÝ:I&rCî¨Ø,Y=øU:xk8éR?‹Ïu})õàÈR»“¸ÿ׿8²¸. ÕññÅ+²”ˆÒ0‹í "ªy4.‘¯T6»ß¿Æþ8s§AB¿hÕEm1«®]ð{¼ øq=èú9K¹‚L¯â÷°c]_·ñ.È÷§Þ[2…Æ/f=oß7mÌâ]¿ „·y–ɶºC+£"ƒ¢ÑÌ~{ÇR•Næô½EBaÑ~ŒavñÀˉϲ*ræa=<ƒø˜‘^¤²Æ´hü ב²y;ñ™¥ô5”‰•YDcôvà»!|½Ž¢ +u!tä|W¤ÀÞw/[Y¦3¨Ú{KÁ}Žl¿f×ôR›&Ùþ†hý§ÔÒC¢±#xôe4/y5š-¨ÊTÅLê¨A¤L-¢ñ ɰõîÚµøUú,zæ)D“ãÔÆ=äá Ä ¸{þ pM/õr+KÆYðëùÔçRůÒÀ2a‹¼“F–ÑÉ/wÙj¬GBÒÒjÚ~H½H‘qß›k&„SèYNâŸù@cÖyhßëq×ßÐêé{™«óóÙÀµf‘w e’µ ʉmÇk*©Ï“ET²0Oö–V#ÅC$¬®¡9=¼&/“¿z+ÂM$„>Àï,w{LtødÄíO}ÞKù<ý‹H(íG†å<ÞÓRî1ãgx‡Öx; ßÀo-²úY&|Ó‚{ñø~ò½ É…Æ(µ+÷äûe×VVÒ¶H† S»±ÙÝÿ&âÕˆ÷"ÚÎcÑAÞÞqr¡‘å°÷_@㔾ÍãLâ³Mx7ô~UzÉÄOàS®í´|XE†éUd œ#›ïòTejÇÄ  éejeg‘ÂM{2L_ì&{¡S»¿ô»÷•ÄwC9÷ YXÌ €½h²Í…aG“Ð@Ü@j–Õ1D$#´Nù÷]öñCêÝ"æ !&€ àwÑ Ï¸÷R¿ss?BãçÚ6æ>EñYö<¼†'²d± MÔ{^Þ!_è›… 2LB+ƒW.Z…@í1˜4Lh¤¿¿àþfíÁGÿ#†¼@­%~1šÅ¤'»úÕ<2_ÉøÞP)øÞgPl¥9†ÿ9z~3DG©?-ò·è™B^žõ®/Yu=µÆþ&üQÁËÔ+ì HL¥>ïD|oñ6it£¹‹Q=H¾˜Ò¥øH©á,¢…nÄk¶í1O~¤z/áyz=OÞ½ƒø1´@áûdÏý_SÏg“î¾ËÔn«!½"¶ù»Œ*†š¢:ìú“T\E{ìIE;‰¿æy’y¡ùNãËh‘v ”0´P9‰öÊÏðéKêEÚ(’ƒÔÜdÇY©eCÒ#qh‘Uû‘`žÇØ-(ÛVצ¿—nÁ/·ÑCUIÃV/‘Úq°<Š”×hAÿÞßFØB¹½RCoÌ«î÷Íðè¡Öm+œ¤D˹و ¯yôlvoÞÑ®ä1˜4Lø”eê d9w!:°½ß¤™Œà-Â*Rþk\ŸÒϲ)S‘ý[ ~ï·ˆ£V€$q¯“Bd)žPÌÈ8d݈WðÂa„Ú£wIìAãœ6(³¢Øw"/Ñ%4eŒÿ9$,÷ø‚ëãm´Ív¿YtRæ!òðåôYï¾¢øèî9ô\ÝȸMvll:p_–A‘…aô¼Ý„ûe!¹"îw}:ƒz_Etñ»Hî^@²9&ñQ Õú%´bÏó~nD‹Âî÷ÇÉæ«ÃÈ£0Nx_ûQb§ûÍSx¶ŠdOÚ#3øÌð€ZiÇ(gŸ7È›ÄDãƒhœ’tžhG@ÓXGjÁdÀ'ˆ8ÓÇסÉqר1££ä»ªÒA&#hgŸ "¢±ÏìoÖŠ´2Y‹ˆÇ]Ò%Ôá¾ÿ’k/ϵÛÁöö-xäDðÆØ¶w_F‘ŸCc + ²%^÷ãzr¿´ˆY:Ñ*¾LlÆIÄ¿Ÿúü2†Z¢­FчhdÑÎZ²•ÅJKÔ+A[É]¦xÌøUä +Õò6<…ˆU.ßÂÕK+Ã_·"øÊ¶*®!Ú.s"æ]4ÞÝdpÜßØç¶­Éaü1ÝåÔ÷[(N,´J¶<+ctaõ÷6åÇ4>3’ôYäú¸k{)ïw}£eï"™b«ùÂù)–,_EÊp™ìñ2ãôìS#°XªA$ ¦ñÆW2þŽ¥îYK¾¼M>_èe#X¡Þó6‚Æ4í¡|f¸B8qˆ”Ç38H­’AÊ~ ¹ÉF‘ýœüšßÔ•lg‰æN€à*b€ƒî³PPÈ´,÷ïä~êE.«d´ämüYÎFK?DL¹‡ò Üïš›»–EA5PúÂÅ ª)‹¼ç§M#”Kí™…7ÿ–ñÝ$šÿ2c¼ ÍÍJF»•2K¡Z@+¼AD§1J«råá  7Ï\ ÜØ}„V°“H¸†æ7jïÒáC”ç!+ y²>>*¬G4}¿=užøyû[A'&åß"’}ç팑¿%“äûMxyµÉú +’/£…ÉUêÇóÓ>Y·Ðªxœz}u=S’­œ{Ù8œ4;ðÞ­›¹wÔâ4>ø…ßEê·wPŸ³ÇÌ{`è@2¶¦´ÐK­õ1äþÞ§>ià $¬Rì²_G|:Î"ܧvõ + +™"?¯óZDì#ÔS¼weÝ"ß#‘‡Ch’=7þ g!œ¤qF+ +ª!çûOŸàih +1ÂIDŸ±³°­ŽïR¯\†‰Ü+Kà4·×ßÍ“Z¤ÇíYüÇN|ÀÔy4.Ÿ•°}¿@XEBóòŽÅÆÜF‘"K¯Ìmª,ò|«äN3è@ów¯€®âc«ŠA#gQæÉ(ú¬ ¸ $w‹æ&É÷Û<|ÑÚ$#/#9X¤hèÆ{sÒHëœOßK}fàE$cúñ9ö#/FÖÀ¼ÙŠ?árɚ˔÷úB½âÞ€_ðÎàÇtš§ +¡ÏÝŸÞÞ¯™ {àüC\BƒòZEf{>'ˆÛ¯ßD9ËþQã=Ä ÷GS^F‚¼‘Õ»á#š_Á~ˆæãŸ­ðÿ´ðWÐF»³üfⳤ lZ-­#µ9C}‰TË\µ Ý2ý4¬AÄfÉO!EVF°Ù8Q/ˆì\üMâˆÑ° =×°ëÓmZ³ðDÓd'! á ÄØyãò·ø=Ô²ÎûÐ>fRx¥ÆÒ!ýhÅ–<‰‘Ò¤üc¢VwâkÊg)»~÷ýçK÷º6Úh£6Úh +! 6Úh£6Úøǯ}Öh£6Úh£=©÷›QÒ²¬ åwM,öŽÏ;ÿÊýÒ,ž@[ÛQ¼V3AÕ]Q±ƒú1J~ןñ]]hKøk(™\^ÖG´—Ä€gs¾/jïïÑü4‚L:ø,Îd¶ñŸûPpåj5Š'ñIh6ÑÞ«(¦å7ÙÃ6hvưå¥]n5žB‡­ßæ=¤hCÅDVðgC­›Ýuß |gø&õg»Ó8€ €ØØ›Ÿ!Aœu µõû*õÉVŠ0…Oë=HyÀÎEgeDÑò:DÛ1<¼ñûd<@9‰.4†1G2G}X†·CˆŽ/Sžoo!8î~»­·ü–VʃL×`°÷]îwN¦ÍÔ&ÀÚ‚øé OËq0ƒâË&ð'š² Qã«A4Σø\³ÔæÚŸp¿sE(¿Ä!wßmtrjþ¸|Ûãî}–ú@ë4Ž!ºµjgÈ6F;Üï_$[q¿ƒÏxɽ[ˆ÷ñ§ÈÀgÖ"[¯t¹ïG][ßtý­¡×2À>Äs|6+º48±Ù†Ñ$“¯|×#¹„Ö²_ÝELv‘b¡šDºÒtäìåK?¯.•Ä:<Ó#¦9`Ø©µ~-_ú[â:wß1”#"T€&¯½C®=ZéöÊäÈJJm(JrbÇö’‚Òè,ý[‡ñÕóÒŠ-]LäÿnÄð–ˆjÖõ× +]mEB!‹ŽþØý}}èHÞÊåäØŠhØ„¡ ჉kÎS>OÅf´*³TܳˆËžæ™#¼º1ÃØ2]ÆðhÞGÏzÍeº6žhUž|™@4ó.ÞÈÞO½¼+³`IÒ_²`V/¾yÑ*ñijå”*Jâ0>™Ð<¢Ðüܦ–×§ñu¶ £öÄ·ÐsÚ*~„lÃoÞݳ‚~‹hÜçÝŒ¢¹Úø,ÏÓ±ŠèÞÒÈÑ=Û|%Ò«xCâù4½ê®s¯;È0¸¶Ÿ_'Ï€ÿ¶ûíQ46fÍS[\i+’yý›A2Î<³èÙ‘Èæh€æ2š á¼&9vEW„²+:+H1“øìHâ³´õzL/ùLÕ‰}Mâ5¤uɦ ! ¹vÓý‹Á›®k]ŸÒ +uMlŒb|œÚj‡ׯ­ˆ‰ÊÖ×þ#êï+èy/”l+«=«tÖH{YéÓ©S-WCÌ1È|~ï¼dµ#FÝûdÊͬ˜1ø%4¿·Xªë·‘0˜A+ƒ!dÑÇ‘û©Í)n°ÄTe©Ìã=o‹Ô{Ù…xó@‰öv£9µ1»éî¿î^y9BH{Á:\ŸÏ—h|Iò=È@9ˆ”w%uݰû,3ÁJãHƒžµÓýM§<Ž]°„ð¶ë§z¯”¬HOߦ6­ï ÔÅYG¸ÓxˆÆÛ~g>ÍñM¼ûý ’Wçð^•¼EÂD¯ëßš‘²ŠjìBòúqÛW]_lkãÒ!£®!dô\Ã/üòæâu¼wÀ=[HæXA¹<åo8Lí¢!É{†%÷Êó M eÿcį—ÐóŽ0Ì]sÄ]µß»¢ëB½€2KhÅ®èžDBf?ý¨¿gÐ =H|Þ‰&ï ñYø.‘¿½ëjOBZGcgô yé„-MÌ8¾…\ujÝniïh¼oRÎ%k{§çhÍvÇcˆ€O6ÑÞ^ê똧Wÿ#ø´Ï1Ilð)¤—ð+"Ûß´Õ×IòóelÁ§èì¤5åC Cø qIؾiÙìxgðýví$‹È, g)Êß…xxŸ¨k?ï»Ï/#Ú›G‚8&ÅðVÄëV¹r )ŽÓ¯ä’ØŒ¹[xÅr’úJqÇðeÄó°ÝõÃö²§ÐŠî:zî=ÈÀ«à]ÈE –Æ\Û·19‹Æ¤“ÖÅ–ì$ßþ<>=í|›d‚¯%ÊUÍ;Žhy)Ö´‘òšŸ³î÷–ÈÞdEÏçÑø\À»Øçñéǯºï‹Þ%åó0µ%ï e2˜þ”ò‰§BèÅ/:иì'£ðä>Læªn+ˆè¯!â.ëúNã*"èøCýï¤v?uoÉ5“‚7‰I×^#Öù2JEŽs#ÜØñÇï…%?[ –±Æ‘ #^€XÏ©Àwç‘ÀBsX´ojÛ=w»«cÛ›¥^nÅ×î&ñw¸àšHØàW&à Ùû)Ä€_Ïhgïm¤ñ¢Siô¸~U2~s™òÞ»ãx¡m«K[é˜÷°(HîI4FWОN}oã6†äP¯{ŸîŠê+HÀO!™a¼ëñ8ŒÈP餾@x@­uí ¸¿[ð5èÇÜ{ žÜ‚h¹Q9qϵ9ß#Î[°=F­×fŒzšÙhfÍQ²3N£1?‚wÿg-Lº£|lÕVj•l·ë÷I×߉‚6-Žl†Ú-ðKÈø4ÏÌüJ;Öž¥8ž \³–¸íöd<% ­¤ñmØBñVøš‹›xC .[l3A€ÛÑÞÂuêíjèÇšÀC4©3¨Ï{ðÁ æ’4+Æýmf•c˜BD±„&wåÓŠÚ~û£0lÅTi7ÕÛh_N}6C¼òO¦‘)—Sx!\$Œ;3Úþ`¨'ñójo=õ{¶†MHAN¥>?Šß×Í3òN#eg)¤m,mubï§È¢Äï¹Ð:`â…¬HãJmÃ÷o̵cBx¾¦A–!¶ñÏëøc`Y©§§Ð¡l€o º} )¶ñüËë°Ÿ¾÷ÄgKÔ õµ¯ê6¢1Y@ž´ï!œ\•/»ÿÍcÚŠ²ÛâdMZY…žÉöA<œ§ ?ÄW<´ ½Ä/¡ÒÅæ5Ê2!¼0—è÷>@ÐŒÆP¼Ö6÷[› Ÿ ¶èˆGñ±UÑüì¡^¿%Ûwÿ¸k“¼’Ä ¢)êåËø˜š)÷LæÍJ߆ŠOœErÒ<ANYÀ\γH/º¿¦áMb;²î®’½rÿ=ü1ô€ï Õ¹c4ã: ôTÆç±XƒÆl åò×÷¡±M+¿>Dh›ðÇB–Б™aÄÔ#”ó|tÓxqÄà‡CeÑÁM⌉>|ʲǽhž¨Ú[m] võiAFv}#±` Þ5<ˆè7¹oß›¾!&$CØ„7&‘"f¯ý2žF,Xqƽ·¿yLH±…\¥Íb +=û-ÊÛ³-› Ô+µÔW‘´1^Oö6™m?@²í¢ÛDcfãÙçúÝÌ6a#xH--Roܧœì»€Æñ6zžIjƒ4³J‡p É•a¼¡½ 2$ìý2âC±fì$·û."Þ7~· ÛËîóKî»]'ÛÛŠ_ÚøÍ!uеyÐ}·5ãYߤ¶zòÔIhajA…ÉŽ+ø3÷,Ç\›7ѼL‘£<`µÊf~•=J󕺒HóäGÀLºšïã•‚ò4[Š·°¨í˜ýÂ$ Ò”Ù}ÂÖw%ñÿ 4~e·=6ÑXÅ´~|é­d ÂØ€Ê½øóÒç2îY&®¢Vº®vò¼ù~õ¿ôë¡9Ís[ÝôºÏ^ ßVƒ hÜ¢¹¾Œw9ÖÕß…1÷7« î»qÄkY^–$ò‚ ÛÝßX#|&ãóéÈûC¸ú6„k,/@‚ò€»×ã®¯ÐØŠq ²‚Ì%>Œâ Š}®·ñ9îݴKr‚ÖnC4‚øSeð×xÙŠ3þI$UŒaÇ© –*hãqD˜çÑó  ùMºÿíÈáqòWJ yµÀ° ²£þ;Ýu¡œy¸€h6yT¯Ñú-ÊyÂŽ£±:ImÅÉÐ8Ž¡9»N6MßCL™¯)×ÏCh¼’+2ø#êç"„·‘Qcœ¥W!ê ŒHaîˆømÈ®_C©÷ÇÑœnEÂ?tŸͯ RÛOz® å’Vh݈¯CÞ–Y4“©ÏíØ`š¦ñÇió\âeZæ¡ïCÏsŠìÅ×y¤Ôþ8ã{+ÜŽŸBs±…ð€]zÞ xC0kõüÜWy§bYsÉßBÏ4‚îuˆ6QÌòÓÂ2Ú"ƒT@kš1ì|áaųžr¿n!FšAÖU_bø‚ëØþȶ@.ÜSÔºJ ¡3ãÞÛßVí©¾‰žáÏJÜcG€Æ)>cžÆCDèçÈ`Ýx÷qÙ9]Ž̥"Ú¼“wðúf$$íˆ\§É7ÞÀï»Ú¾¹EÕ'q ‘Xå߯ï6þ½y†þkÙ`Q£«y¤üŸÂG×Ï¡y{Üýî2Ù«S’멯ó~Ϩ°ØK8²?¯í4¾‡æêۈϋxd3¢ß«èÙŒÞÞGå²ÁüzñGl€áŒû;ŒæÅxz LëgÌ0éÇ'>A^3$‡"ûd0Ò®7¨7Xv¸¾Žîσƒ„WÆ!z9ŒÐöÅ:Š^éùÌ2GŠú6þ(Üùy@óŸ•Éd¼žFòî8’5lÜKܓ޵ ¡Ù#éÍÂŽv"º½ ˜?BãwÑÏPm‡b +Š”ÛÐ\¦·êø=­X>Á§n¼˜½3u}7ñGâÆð„RP«¬íüg÷ ¯–¶!¡Jf“N3CØõ˜þ|øúàýH@¼‡žoš|"áb¨1ÄLéq:†T¬òO3Þ"XsnEãržü˜…¤»ü}¤´Ç€ßŽìGVÉü±Ûñ娈Œkø˜Œ#HP•Qþ½xC&¹²±~ ã¾;†÷¦¥± „ÄgñЬ1¯*¶Š${Õl†b–ÐJå +"EÎSxú;ŒVYAp=ß ÷ýZ‰Åâ^âïQ|°­¦X"îT†ÑÃyä•ù]´X¸Jí¸ÅxG@òã4š£i×{æq|dwìª|·»6+ˆxt4”¦z-Ù´o§ ìÄÁ÷]?³hâ-D¶ÚßæÚ¿™º.6€µaò¶=ËpÁ=±)m;‘ÜA+é ”Ëaèv}KÖ 0®à“ú”‰¿DŠö0Ùã=Dœòïsðü‘Œ¿IþfV3îúô,I`œTphey Ÿ,ĘÒp ÐX·ô|ÀB…l¥RÄyQÝé-ƒíçí ün:ILzÖ<ƒ>íþ^¦17ü)|Œ{hÜžÁ»bbñ ²-îEÊ Ý$6"‚Æ»ÿˆúy ¢â½i…žð'ˆgX ꜥ~ïu˜¸¬Œ]hÞâçn)‚»ˆî÷Ÿd¬&û“\Ù€§¿i¼‘°—p,Ê"fG‘ÞŽîËÄ ]ÃÊ—ƒäSˆ>Î#ÏôJ?”jɃYô,ƒ4vÂ÷7јZû1ŠaËç]?’†ã RŒ¦Tw!™¶ƒâc¨OãÏéïA´=ŒøùÚZ<ˆÆ%F6t º8sÍ/ÐøeÅ~ì@Ïc[WIüRÀgAvË]cŠ)Ä{¦ü»Ð]¤ñ|HÞ™Œ¾ŽhÛâƒl¡×‹dõ×7‹ÆOËÿÍhÜ·â‘'Ñœž§|nƒdðsý2ùv‡ðÂoëëÄ#éqéÁ§x¾‰?*iAƒÝ®í îûn|¶Á¬”çSîÍ‹2íÞ‡ŽrÎãÇu‘úñûÍÇ1wÝVàwß‘ä…!`•ì¬hÈP݈ðM!§Wê1nÍPT·!½`°÷1+Æ“h‚’[ —ð/¡MŒóô¬_L|v_dâqDÜ…V­v:"Ûê° œËH8$÷ÿ_Ccº„ˆ%vo-9GËÔnšy Í}6ð}ÌŠë!µ4ÜÍôÜÝxƒoÆýV‘jÁz€X‡*†Ye/þȈÑ!¦O+‰÷B±Ï“˜!cŠWSe°ñ~Ö¼ô!^rý2¥4Oû»­.F‘âš!ÎtŸÆïÏ#A9Ž_,Ü!ŸGÖ¸ëg§=~Ñõõ#ü¶—E¸ä^‡ßZŒÌA¼KÜ¢Óc° ñRQ éa÷îz4¦ÈßCûnÐj‹… ôܳÀÉø½íøô¸YçûcpÈõÁ~{Õµ7‰V³Sîs“õöÞâÒ†ø^á¢Þãj‹³=ÄÁŒ§1´ ™G^„-ä­WÝ=i…múfš“§Üµ›R×™—ù`â¾î@{cH'Ø¢ä2RvΫb¨ þ É®ñß·ÉòÎV«ÕôëÉjµúoÕjõÿ©V«¯¦^ÿP­VÿOàž¢×¡{‹^“Õjõƒïí¨V«ÏV«Õ®V«»2®Ùé¾ÿ÷jµú¼»'¯½ç«Õê÷«ÕjOàû]Õjõ_Üî-h+=v»Üø¥_ý%Ÿy{µZýIµZýN¢“Õjõïmÿ¤Z­vE´ù‚»6}ÿf×öÞ’}|»Z­þeÆó>S­VŸŽlg³›ŸT«ÕWRcõXµZýAUóZ­jŽßvã“n§«*~X_­Vÿßjµú³jµúµªæÆæðKÕ0òžýKn|þѵ·¡šMË“®òÉšjµú…jµúTµZý‘ûÍ<šû‰¿$Ÿ$Ço³ûlÒã?UóéùKn쪮헪Õê¶À3þÌ]óo®ÝõíýmU²*æÙ7T5¿Õªø9Ž_uÿ¿T­V÷¹ÿ¿ìžï•ªhï×Öc¿;Y­ŸÏI7߯ÆÏç¾À8t¹~½”˜§ôëÏ«Õê÷rÚüR5,§pÏš7V1¯'\¹·H®õWE#Ù^³Ï’~¥i·ÙW–þiÅ땬ï>W­VCvÁ«hEs<ðÝ +å«víFVÍ­=>²2§ÿ^ò¾Íx÷æ Š ÝB–iÖÙËÍ®3äŸ>°³î{Wä·±¥~ÅÖíøØããhRAVr5²—°‡ayŠbv"‹=¹wfGa þì¯áêƒC+©~}‘lìDód+˼<Vqp­²BQÉ{Ñÿ‚┨eЇæö>šÇ^47¸v⟲‰¨Òø÷[(·BZÅ­E+µ¼öÖà‹¬­„wâ+Æ…Ò3?î~³È•ŸÄz|>ô¬-–I×nr›î)´º¾€èîâó¯š'Ï¥÷ô·£yŸ¾×ý6Úh=ʶwºH\ÞtCžCnÁ‹4f<„YžBHà +}˜‹0»ÝõSÔ+€Íè9fˆøüEB¬Ïýnro0äbÏ;ð>N«¶ÑFm´ñKˆ,`YôÉ‹,„âó iô!Ë ñÙµûóçhM„6Úh£6Úh£Y@m´ÑFm´ñ+Œ_û¬;ÐFm´ÑFz€¡mOÃv’Ä>”‡¤“¨‚bֵϢˆŽrݬûgщ¦²èC »vF\»Ñ½ò°=ïc ô% }(szú€¿G[½eÐü€Ú9Åî¤3KÆ¢ÅàÔ¡m´Ñ +†¶~‰=²84;>øeÄ¡×tä1¯-ïIÌqÕ"þHöñõ™SQõ•ˆ6’Câéãñ‡É/i2ŽLþ*¯ âméÉþÙ¤ ^BÖÛ£BÚR,“vHØga38¡3û†>$´6G´g)D Ði‡Mè\ìGî³FS=#æ´“,(EnÙqìD‚7‰;ø³ÐOgýp÷%Ï ¦µ€Ùõˆ†¶SŒ^|‚à ª™˜—PPhOº‡!áoJå<>iÊß¡\Ÿ2º\F†QìÁçèÀ¯z¬òaŒÂµ¤=–wa3ϲõ< =hì,a™á¦ûKJe¯û„Oõ$û´ͱeì;ƒâ¾fÝ÷§\÷$úz0ÐVYôÊ8ÙA6í¥ñ€Údm¡—åàÏËû2ŠO] Jï¾cß§–?®’ÏiXêöà‹>U¼ÚK­Až‡¬zÐx¥Rk³É ¿~ÊÕ¬ÿÌÐñªµÓÞz$ôg‰;Ö“LÙƒ˜3™a+6ÕçwEeŠd +Ùy1Û|"‡Ç‘0n¤^w(CZ™£d_&;;Ø:ÔÇ3øúÑE¸Œ”u–]‹Ž:uSœµ°)’ËÀP[Ä#[èhW̦dá'ÉZN®/Âj³.!ºN˜žwÎDyŸÔd“{¥³!^#ûtËvDWÑQ»r[AFè1â“ÎÒ+®ajV®¥¸Jå}|†Á)ô,}Hr¯¤So'1…h#½âYDô—{þij“¯ »û^À—jµµ'ˆK +¶ÉÅÓˆ"ã5žz£».ž;ÐÜÎ#ú9…hï0¢‰Ó®m«‚™EÇKø„0o¢€é†Óˆf&\¿6á]vÈPw×Z–Ƭ¹~ °¤Aøz¶ôØoGô”uξ |{Î*¢‘£±8ˆ„h™z_CüpÛý¶)ÿsøj‹7Æ96ŸCFúÏ»î3CÖ8¬‹å×°ç]B|ó_Ý@9v"~)cŒõ¡9ÜB¶’/º?™{â ¾¶H¾œAô›‚Û‚æü.Za§3æ¥)œwÿqÄ£×—×mÞE4}ÑÁ5d „NCõ»~A2ÅÒäv£9®¸ûÇð鼇Ȯî·ñÒ-¼¡Ãµ_Aãõ%DƒŠó<ô ù˹ÆÐí~÷22ÌÒJ±‹Úc×Ðø›wðµó1‚¯¸—%‡^Bãýõ2ÐŽ©'ùÃzìD|›ü½dIì¹>½…øä&Ååžw#Z8FmvVð9f*î½Ñß(ù Ÿ'œ)¨õ|Ã5xÃýØ‹ˆ({ W°:CvZVË»~=ø1”4c "LcÔiD4e«9m¯¼’©-ÍnlŽûÔ*¹ûˆø¦zMô¡Äïåáõ…$¶â+ºÎôÑ,à28‚&zå +Üãì!^‰÷!!{)Ì·ñåv³æÒÊg zsCN£q<鮿„»1Äo#š UMKâ(¢½äž_/Rbé•úšÿϰÎõk¿¢¼ƒ˜~ §iwm‘êYô¬÷]ËH°C×VQ飶“„WaɶÑ_òùZ™Fx+~•=„øÇ‘@ü­ŒûÖ¸~$çlÍmš&:Ð*(ËÃhø˜ZZ_r}»‡¬åCÿÞÛ’·ëGÆ¥ñ–dë~ŽMñ̸¿!¯Â.¤¤ã…ó$2FÍËi†ÝZD  ±Í: +ý>_üQÄ«'ð9AN e0ƒOS;ŠÆ<Äs·Æ{†Vñ©¿·¡±;ìú˜ô¤åKâNâr¹L"Z9Lx~R«œ{]_Œ§R¿3„äi–üZƒÆb:¢o±8‚'8€ÆÜ¶yÆ®»á®ÝJ\±®#øÅpÒ#fqV˜ +<ýÅŒ“³u“®` sŸ¹m‰Æô¬º¶æ\{–5k‘úŠ~e±RЧF ä€i终á.—ý0- V(%‘·—ò._»¾‘½ñP¾ú<,ÿ콈VW–ïý™)¡„òR^t(/:T ÖE/:èEª.Ö%uÑAkÐ&^t°â%±‰C|‰Cê‡ö›8Ä&mc5qˆCÛ´C 1ÄF›6´¡mÚÐ6mh›Tè +1´ÒJ+]Ò%ûýã»×ìsÎs~ìóê¿Se¥¸è"iV7Ex”°Bÿ‚§Há~„úy¢çA{—Ї7bc4F/œƒú6)h¶’÷ýÿMù™åÛ“åÿfr^&·Þ m-ÈC?j_ö{]«V38‹ÚgóÍx“å¨x„”Êù¤ýšò°)b×IgÏí%(ð·P_Ç&VëA}](»² +À4èUBÄ"ß% 2|€:#ý/‹ã‹´yŒ Ò«ïyˆ”•7Bš©!ÍmbÒ¯ †7“+(Ã8yü’pLóÞGëa]ëÀ̼]ˆyðßÏçÓˆÛ¾VÌ>l®£~›h%&è\ä„3ŸÀ(ö 1žKHƒ¼•âÕáDç+«)BV³½H¡Y”+¡÷­^#8ç˜ÐÛCp¬ûé}Þ)ê…TÎ"›½°¯âù¬¨lËDzŸÕY XyÙ-ˆ‹hl¿NPbŠ<¨‹dó¥0‡°äêÈž/¢¿%ˆWìKHàå Ð_·¿.ùº˜%ôÌû²ú”ÑKâK²>íëÖ¬SØ2dÝDô5‰æÖUÂÞÿ¤¯û´v?R6òœ}?þ{æÞƒƒþÿ+­? >ŠìS¾Ž}hÞí&$ØJn5u£ù]ÄlÁ’Ä>‚_AÌê¼’«îÕhÜ«æˆù^¬&݆QDk#h!ºŸøÌŸ›(wÍ͘ê+i¶Cˆy^¦ZÉîÏšFžÅV4ˆƒTï&SÆ8æ Î²í†¼Õí-DH»ý³gü=ÓO#‚=AµR²Œâc7KQ-'­iN£•A/åÄñ å +ÈuDpŸ¥`8Fð‡üv4#$²A“è&š·ÓœBŒ¡jßy–1±}9õy•âè–ï!º¸‰ÚrÝl@+”kåѶª`{¯h÷ŸÑ6T?ÛDe+•UÇ#ÃóÌ,s[‰„ÄçN:« w eÿ4áøÕG™ßªhä0R¾.!ó÷$‚*¹ò¼Æ¹lÕþoaÕ‰V³ÇIó·Ÿ!ߢg]çñš~‚CÞšs£ˆ®­NIZ9‰”Ý¢mÆ9Á´Ú—± õ)óQ_šyûõ|<Ö’Ô×o¯òÍ2 R׎ º³•u?ìCý4B£6©0Î%ì§Û\YI¹õ²f#Y`sdàgV„HÖL‘ÞûïD}°`ØA¼ùV*Ú•§dÒYDÉIÿs¤ Ƙ"²•½OZ{·½5Û÷Œ9ëXe8…ˆ¿l«á4¬)4ñÆí@ŒÓÌsßõ¿9Ôü˜b­ì$"´mÔÏc ÕfÁÍThyFãr¼Æ;»P»&hÞ„‹óþš@´xœtêá2ܥѱï2̱ômûSÛèë¿ÞC ø +bº#ÓI}exnâ¾1Ïå/ó…”ûv,G}sžà•<ŠæDq-ÃнùŸ$?IÖg1‚Eç8ió°™à7QláÙ…æû„ÿÿûä;VÅø€,c'Gèn,<ÝÌ'm1Û௿È)Ïàæ"Їڸñç{¾þެlŦñ÷éqG‘Ð_M8mÔGð·m‚}ˆ¶cx—¯ÛLÆ"ß_BØŠ¾Ž¶¸vÆuée‚kéS]I$ÆYˆg$Ç·/ûB$Ì4ßl[-©à HE¸Ž’¹eý@ó9Y×Cḣ(?Ò…ú¨ôÔ•)+PcÌ$2BXQÎAÄuÝÿÝ„k¼¤ÜDü³}#Ì÷ïëì­ª, ¨öF!8ôŒ ¶%˜YìÈšipP쥚 ¼…„²ù=Ü"-üwöˆªw²À`§1N‘ŸA.¶jú2ÅG“ØŒ&ÍiÌÚ× +ŽdþB£WýqD+©Î—ÅzDgÀ$ʶª¡>ºBpâ´óÉÊÐÄ8ÏR½R¾E˜G‹Hk볓w»î0åIŸ’Ã4áŸu|Œñ˜›yçÁÊÁ ÐèpyEýf‹Ñ\F+Ä<+Ü>4ÖeŠ¢­ô{KžÉ¢“âñ}€ŽÅÚ¸E–£­H^&ìû}ÖïÃðˆà¤ +âIÓˆFŒfL\Š”ÊA4ÈWf®øŸ)OF¶b6 Àqÿ|ÖÁ¹è¿/%î}Œh.æ˜ö¤È,JÜûjSÖšhÿ¾ëÛPÅSûÑ<¿ˆú½•ÌžE>†…hÌe_Ì Oö=áË]›¹ÿ&ê×+hÜŠ²Àn àì¦Ø€›“Ö„¿? ü×ÑžØUÔɇ +*m¸F`¦æ-måŬðc±ùR4°f%î¼¹1…ËHcßC¨oÒ¡å®ö +a¯·¶—˜\)™óf9Œ˜DòN$Qv£²Â°¬Ì+´ž–6‹½¨­Ó¨MãÈ,?Ûÿnãq…4a¯¤Øs:«Ì˜åàÿ¢ñ°}ÐX“¶íõ{­jÎLw»#7z)c2S”Ï£…Hè/Gô³úÌÃ|•ƒ€k¤}¦Qûm>›àQ4fÍîI×Å€ÿ¶9êÝ¢øØê]Ä‹êž4*C'â…c”Ç.ùDûH/˜ ì¥sýoE¾Iô#ÅóZ\\C´v ˜Kþ93gÛ÷òøm'ËSh\O£¹a +ÔA_æ‚ÉÜ`ûøeØáËÌ +ãóˆVªö°ËèÜü¶²§]bZ{îÌ—QÛªxz³ØæÅ^êÅÙYC°Ðdûz=aûú¢‡¼æ#DXþLxà¯>ÒŽxË gìÿiM+©v´ò æà²€æÀ¶LU‹€_¡‰}É_« +ÀÆ×KqÏa7¹²<‚:;&åð&_Ÿ¤(ë´TGh›MQŸ¯&ìMÇìÏí ͲfÂIB¤¼¢UN€Q±Hj²H¨¡~ÜLðú¾ŠWŒ™}iz›CZy¸NœðïòßCJòÓˆFæO›'ƘŒÉ”­0–Xž’·Ç—ÓÊ*_Ïë•O5"OxÜ#Ó™ðïhWiôy$[0V0Ä ép)eUÁË¢~\žóÛ~4ß²«¼,:Ð<µ•ü]_æjÄWN#%b+jë~¤­†ûH¯Îo"YЇèpÌ¿Ûë¿ët:}0B~©c„“Íž;‹øìi—…¶ßáTÏ!ÂÜI¬@cþEÔ‡{‰³ŽÍA2d“'éïp€0'¢~Ìóñéðß¼’ó[ +y>†e„£; ‡"s:9Š„Dlô9ƒí‰5ƒQÿ×L°¶ë xOŽP½ßR„¤óÍ}ÒL­Î÷V4HIÔlyu0Møñ‚ßÍ»úJMÛˆgÒ‡à¡/F©>é1“°£‘Cþï8Ó£h2ŒöÀöQ¾ç܃˜¦Ñ[Õ‚ðò}.ÌOd.št·Ñ~üNÿì‘»­ÄÍ<'À$² £¨~†¤B‘ÄZª!e±’Æ–¿-ÈSÚ.“/¨ê-C¬Èz³­ÒÏ"!s8ñûþ7;n·![@Ã4nlE‹ˆs¨íÇü½CHɽæÍY W| ðïïóõ9N°èÌGó'¹5r—bkÊ2¤œo#ß‘ûSÿ¡sê+‰¹¾>fVïMܯÂ1Ôn[ÀB‚Öxgrî RmJ|÷ÂöâBÂÑJÐÜDs°ÊrzŸ0ï“s}”Fú+ +,4ˆÆ­r‹¹L#8EĶ­2ç#-ó.ñšÜ$¬öT=X€4®<ç¡&íÄRWØö¡U]ìWðC}6Sž¥e«¬ûþªë`øš¶ÏÔ—óÌZ>`#bƒˆyÝBãºMž£hjÜÿ¶×ÿ~À?“g Øãß»ƒ,Gü;I+ÉÒÌmb€Yóˆ`¡&Þ“9=äï&ë6Õ1ŠÇ:kæ7KØ^ªW™YŒöŨ‚9~µj­H2÷:ÈŽ¥!F0Ì4¢Ž 'a«Û*DÓsýž zîÞ§Ñ×ÅŽÇíEÂÖÊ„NlGã*BöÚ"Ý™xÇü þm½™UÂöÛ4Rò€Í„­Í²íׯ!~všp¤¶,’]+ ‹Á±Ä¿«Ö—P»“üìà?#«ÅnÒsç%ª¯_BÖˆ/&î-EÂ+¡>Bsé,ÁIóqb„È$DY`"Ì´’^4¤£¤逿?J¹` eúP›Ñ ’ÂßB¯Ž!¢ý²¿ãÀÒÐù:­$ì;¿4¹,3ÉsË+óøã¹á˾A±ƒQ™Fm0­71uKb!ãJ_×µä3Ð ˆ±×³-„#-}T['&Ñä%Œó øc4*?ßD¦÷ä ÿ%þ»ûPÔ½!Äh“Ú÷}4VÉU÷´ÿn^™FËÙ-“쪻%2ëT{××e"óÜÅ96ÎÓhýG+Äݨ»Ó5'Ùlù†%ˆ¼‰ÂÛ6ÊrÒöKmö¡ñô¿çE+ÌCÞ1Ç¥„¾¨C×ý™º>KÆÏí¿ú|;¡­?@üô¨ÿ¿mÉyìCz»ã¢c¤çåéí­¡8• ¦[„Uî^Â)¨ÿCñ‘Ø<¬At¹¸…È7ÏYJ¹ðŸ"m¼Nñö_Ù6Ï$‹ŽJ_¡Q鬲à¥QA8B°¤dyæA4neÂ?9Y\Êù^† [Ç¥°\݈øwVøE˜K0±fX7šŒû}™{ ‰/²#ž€rØ‹VvkÑñ ´Z{ +1‹hþ ¤Þ Õþ~BRäñªhÔ FH;De±Äw7éÈnG 7O9¹E™Æ|’Æ=»$ªêf0-÷&Zå&…ÈÓŸ¡Ülõ!RÆòV~ßCt²›úq +ò·ü·ª¦Ô·s‘@n&‰SˆÁ 8nAŠp²ï{MåçJb«1é'}}gÊâÒAÒ”e²»Ð|"ä)¸‹N¤Œ’>“=3ÞCˆV–§ \#ÄŠD§„nû¿WçØg‚7U…ùþ2jë0¢ƒùH¸ÎFýp ÓuâbO|“pœ±Ÿ0C¨o¿ƒÆá­~±Hž|Ý.!º*:ó¾žE´¼Í—Ãäçx›°Ày2QŸ¤Rãм+S†cq–@'†ÅhÁ•wÔÙøé|B4Á[„¼IìCsl«>oAP¶`YIc”ÑY¨í¾¼lm¾º Âf" Ù ŠƒUÙ/ƒ…16Åùâ—£äg;ìE}püñ˜D¼¢LÎ\ó¿SN RDlÛ%Ëó-øÝ¿·=o@æ;þƒÃäG6zÑ¿_¸ uÃsAÌCKÁID6:Ñ$=Dõd@ZÛ9Òá,ÔìZÔ~‹¤c&ÉlL›F¶–ê@6(f¦O£ÁÝ[òLÙäLILS?s n"‚´h€&pbÚþmÿl6~ý„ÿ{­êZ¤V#°ÑHš”o£±j&Lu2ý(bl¡À1g(hO¢ù³ )"Ùo÷‘^¥^M~»×ûß,R6Ç€ýßm/Yñ5Ô²Õ¿e7»„”ÿåTçì([q®AJúÔǶz†`ɳÀ?o#¦x ­Ê·Òhñè¢8Ö Bì–¿6 ÞQf]°8þüw¶¬ŠIú.K“›´à ¡ñµì¢yÔ?³ µ’0~ºџŘï$½Cý;Iù‚ hÁrÂ×ï6éD6öÄmÓìCó,Oø¯òߨc©±” ãY+ãY™zµÿ.’IyñZÖ’ŽÝÿ +âG?&lã !ÑçŸÏ³Ê~€ôÏÿIæ÷·ÈD*ÍS,&4ˆèîSnvÉ3™V¡Ù˜ûs9˜ Ù :MòIʉâID“Ûp WÓ²ÖÒ˜A¯ ݈1,'ͨ‰W+iIç¡I9ÎÌ™â ùxéO£~>´K3‘¡qÙÿ.šðEmï¤Ñ‘išFÁcÿHu°§$,/·•qÑõM4V[2åW¡‹jž$ü%‰õˆ>†0Ý„Æt5Rñ„Øòy‚v=¢ùMˆÉìþÚÿ6MÚ‘ËʯkÕJâ. +ãhnæÍ¹÷ 9Mqè[[Á›`ÛŠæt^¬ø÷Pÿ"X—Ž$Þ;ŠŸùhœ®û:[â«,í<@q1šÉm–“¨Ï“¡aŸòm­ò£0k„9õ£1ÎŽa7ÛãäG?LZðÆ‘kV¶ißÎñÌ;öÿ2¾e~'‡‘pyŸÆq̹—EÞ‚¥‡°=k ¬ºÉã@ãxµ7/Ñ•õé ⬫ãˆ^ŠÚÔC°T÷!Y'×<.;é°’Æî>DŸw‘‚3×—“µâMR-ü»IË\ü÷þ(ñÿ“ˆ·ÆæØÈ¢Ç㙟Uv£Î\DОX‡)^ÑÔÁ$­+Ù´Y @>ð—y'Š!Òi×Q¼Ÿ…99fCù¿­x%?‡ÆËLr§Ð€ž@ é8Í;:#dàÛ‡&È(Õ+œŸVi§ûœ/Pí–Ä_‡=ˆ]Cm݃”œ{hÌïœÏQÌ0o¢1›ëŸÛï™ò¿Ï!0ƒ2š´ò¶"åÃö;w#ÅåGˆI#e²õÉmà+%åù:ô%îåíOÚ¾dQ~»oއcvæ/±•àœ¶bŒOIωˆ.Š׈sìý[äÕ|šFe¾+uÙ_¡óÍ“ˆ~ Ú)¢Û­¤ædñµõOs^€G“„t¹U9 :¢y 퇈&.%žYëË»€øFŒããÄ£“Â&ÉW,gÅ)ÊFÁñòâïã¨ýI¸ͨ¿ÊBŽæù÷¶èÍxT^ž…<ô žpµu¨à¹*夼K£Yw²~Ss –ß¼Õö»ÀEí´Åϧþÿ«¿øˆ8‡À!Â6Òâ‚ïÕõÃÊÂo¶ý’  1´»H>N£3DÒ©  5¼®ñÕ^–E¸‹ê˜\Ýçù\§žÆšT(æ£I6êÿ¿€øúŽ#G𬖻MÊ~šKöña•l{gPÆ®-þ»üÕ¬–øbP|}ñÞ4.·)>šT5 M˜m£ÑgÀ&” Їþ÷»h2Û³×ÑJðmäõ³ˆ[qîF +˜)ž£ä3;ã ÓÄ)ÈG‘°ŸEËÑxÄÿuˆÞ¿‰ÆÏVÙæb¸@¼ð@‹² È“gNïFBlŒj>³—à šËÿFðÑÈS°cü޶#ÚÍ[™ïFí·m¸"Zþ1þEÛu,¦eVî}D#C”‰ìDc·)“HášB sîìC 9¾¼¼þ[„ñ5”/êúÍÝ%ð ­4ÆëE ü !ýk'¡!ó ÇẖœæòMšwü&{TE>¨óË”S„³ä†¬Ä€—#!›7ˆ=¨¯ÞÌùÍ4j;¶ë­ºõùQªS™¾‹˜ë)ÒÊQ3ø˜êT¶×üu–°‡6Ž&×y¤4sýÄŠLöYäÑÇrâôò°Â—±MØ}HëDu¶I«œÚ‰” ä”vŒp®~šòm£.Ä·’ÐaG®Î¡¾›…óÙ¨¯Í™*k*@LkŠÓnÿ›íÓ+Û Obµÿþ Ï a^dïF}ŸdDC„y6ž¸o+Ή’ïY†Ðì¾ëY`ã —JÊKb6Ûk„#žfú?Jõ6Å5œ½ç¿}ˆ´§w,#¤c6‹Ø4–£FÍÁ£”ãIS‚϶ Þ9L¾bó>n 8Æ`„üÓýÔ[Pf-þß§í˜%0룒ÄCÔŽ Äÿî¡~_èŬÜf1™M1ï›&(ý½õh:ñ€ùˆ§Þ¢8R^¹F§—É?&Ÿ²ì#-<Ìì R¦Iiº: A¯F“c +1äØÁ¯Šç°Í×q˜rÓä$é=´iÔщ{s}½‹4àOÉþ¾Þ#¨ŸgÚ\ƒú*Ædiø˜ÉTfW”³ +Ñï!B ˜>ÿ÷4šûü½ÙHh”mñ˜©s-i¦Ÿ—¸&ÆáÉ”ˆM¤ê¹9eÆ”7 ÃÅLÿS‚çþQÿíÿURf¢‹ ä¯^³‚vò€@øß×">h'>ÌÁ8ÖŸ  +Yþ7·èA"¿ž2|ŒŽ†6‹ˆ¦G"ž@í9ˆúÊ ãë;ÏØ€æ÷óH^Fc\&Àù²‡ýUש÷4Ÿú÷Æ™2 ñ²;„í¼f°œÌI´X`ˆô9EPÃc÷d_&8ö"aؘqŒ¦õ/4[ÖÐC|» Î0è빕j  Þ4æ°÷Q#b9À̬^~ÛÐê1ÏDð[ÑD¬«,§1`†í›]#m)YŒVh«i<¾i8KÚ÷ –†ýÈRe&ñkHi>H£e¦—©m! •­R!9†˜ý)_Þ)$³¦ñîD£¤CP”âó¤O·a‹/ã(¢OÞ‹üý•hŽ-@s皃e´l4‘›£4¢Jà@p:Ì>»2§Ì˜ò¾NìÒCØâZMz[íZá£\áÙBÛ¼­ÃIy*¨îyÎÆë0šÏsˆZ ,j[RY¿B#Í£OMâõ,ÅEÈ¡~­ìQ}Lû!ù~M7 »MZ‘ûGÄCú(v¦œDsò˜ö°¿Î¢ oÓ„¸%UØMZ¨¿üyÁ³(ÞŠ^‚ÆnÑ|v›¯ì±s.y­sÎ}˜¹·Ý9÷Kç\Oâ^§sî×ι̳ÙkžsîιWœs9¿8ç~ᯧs]åÙµÆ9÷¤¯Û÷s/D¾—½žÎ©×‡¾ìÞ̵Ä9÷Sç\wAY s_õײŠïnvÎýÊ9÷ÿ­:u>ÙB{ó®Æ}¦ÊÃ9·qÊœé:áÇo^Îýþ·/E–ó´/ççÜú’ú¿TRF·Ý_t¢ÁnçÜ}Ù=9ÏowνîŠé¯Ëi.|˜hãK¾mEmX\R·ä{.Ÿ¦»œsßõ߬âKœs?qšKø6¾Qðl—•×åû.ùÝçœs[ržç4/cù‹]/8ç~^PfÙµÐiÌ4ý¶¯ö5£×8ç’ú€½ùd2óšÉBH`û;‚VEûIë‘fs°DcÁgœ¾wñÎ'ÑŠi/3·ÿýÅÒÓhÕž=‰0@X©Åî-FmŽÉV˜Äshe™çtØ ^GcÔlxÉ6Úh£6~‘§E‚™û²&ïçÇ䊄î2$ljwø±Üߟ¥#[m´ÑFmü^"«´ÑFm´ÑF¿øÃÏ»m´ÑFm|®X˜ø÷ëÀ'è”K«ˆ‰Y†-À/€ïÎ@Y«Z|ßÐ3elDŽ‚ßC–1ØŽ¶ë  ð*¬s[hã· ›™™IfxùhÌž¥õºõ ‰|yíΖ¡“­bbÏŽM6‹N”×¼.Ó**k&ÐÉÌ‚N\jý ”µ‘ÖiêKH |5òù¬Ð9 +ü +xÅ®¿Fúø²a¢˜ëUäe_DãyôÕ‰hÐæë7ÑVó ÕQgw¡ã{Ër¾Ó…N²}Ÿüc§It ­ð…9¿uúú¼Sð»½oè%Ý×ÝþÞ›„̘±ÇÖï¢ãÅ?¢±E˜…N]*ªo[ÈG +—Ù,SÝ…4××h‘&Ñ‹ˆüyª 9[£x‡æ5ê%ˆ±o¬ñÎ3„~xõÏv$³—M)BñZóˈø£´¿Íb1böWs¬£P| µk;b G‘s¬%\)b$u`‘ [U(Ž¡cL·©N&S†õˆ¹Yì5Ï/Fã«9Ïv"§Ü‹Ä Üçhœ#+ÐѨÝÈÑ7–†²°0­c¨¿vå<;çŸFŽÅWˆ»5¨îÙ¹÷ÿù:ec¤äÁ–7QÏ/ cñŠbxÜD~]U×4r?Gq˜ÞÕHé°•ðEtLõ2é0¼&ø«|É®"òlß9(ÃmDÛg+ʱºM’Ûn±ÍóG%Ý ü„>û Úß#Ä ú9 ÞDJÌÃ_áš;ÇQ4*š‘Ç6;)êácÝNG +gª¼U3PÆ<_¯œŽeåÉŠ¹v9¡ªÏzjôë7œŽ= ø7S¯õ‘õ*ºÖù÷멺èœ{Ëéh×'.ñêuÎ=áÒG1?tåGÊ:ÙKŽu·KSëôí|ÝïIçÜk9eu¸¸ñíðu~Ý—õ­m_ìŸÿI¢n:-{Ú·§ìý§\8ú×ã4¿êËxÞ—½Ù‰Þ~˜ó~·sî§cxE4õ+§ùýNb\N<su9ç¾çœ{Æ·ñÕŠç;èêι—3¿½äœ{ÑéXâ¯#ú 'Úø…Óñc»·Âõß -´ï9_Ö€sngÎﯺâ#¥/ùþþž-ýÈ—÷Vä·O:ÎÞßép]Ïø2’søÃD[NºæÇÿY_öSÏv»ôÜŸç4ÆIzyÒ yïgô¾á4¬ì—Æy¡=¬wÅÇv“×vÿ|–7t8Í‘gr~Ë»\æ{o%ÚÖëï­Ù¿«œh¹®¬Ëå×f°Õ (*RÖİ™aêäêiM;É7á-Fç5´2A§6»jêBý0qfÐjãH[K®ôç#íî:Ò*6¾Ê´Šþà€ßøï&5ó²lzY\ ½ò™‡V,†Nd_DÈm„©­Î¿|ˆ4Ï×I›=g"(Ä%¤Hâ0 +Ï|ƒ¿Ý´Ó¾Äs\¦#->™ðä>Zýø)Ò®’zÌ%„çLb.ëç3÷¢ñ؉V¦·Pß[°Ž¼”Eø¢q ,õ™o¢è†U , ˆC+ŠChUsÜ×}ê‹i´ºÍâZuÑãÐiK8ò²/ï\E½@V²ì\\…æán´J>KqžÃCtÚè<é€/óÐ8£cÇû_ÍÅM$Ûð> +Ìs +­ÒŽä¼÷4å['Ϙôu½A~ª}È‚’g±ø{ÿ{?Š„7ú½(×I}Ôã-yØ„ú¦î.C7J¾6ŠVÐUáÎA´™\Ù"³õ0šÇ)·DBÛ†µˆŽ¿ŠÆh!@•媨JY݉xþ¼ûûdR?Aõqo[m'#èΧ^¤À¯"Ù4ñ£§Ñ|·< +¯U¼¿YŒ~…æÕ÷Èúv¸ ýÙ +í§N+‰¤fö‚Ó*δ®ï»â#Ùë5'm9«¼è5¶§@CE+”¬ö‚“†™ ÎÑã5³ç4Ðw"Ê2-ñç -mÀ)°É³¾OV¸üÀ1ßõß0-°ËIãÿe¢ßzÐQ/ù2“í¼è´:ø©ÓŠá'¾/Oú+o…ñ-ÿüþ»+ü½Oš¬W޵οŸ76EV‹.ö¹èÂJc—K¯|:|ÙEÁnì:é=&¯^':ú¹“ÓžÿMëçŸ;ÑåsN«ÅuN«µ_;iÝE«—2¿õ¸°B¼èËËiLé¿™·boæpZiý¾Ñ¯¨î'h¾Ûiõ–”“œ÷+|%çîb§¹ñs':¬cá{ÆÉ"±ÙÉÚòkßo+üÿ‹Þû–Sp°ä½}»^ô?tâ[eAº,0Ùs%Ï|â‚5§ìr®8È×f':°>Œ±jXß:ÿ~ö·.Î`e|5§¿¾ëDûI+]ÌuÒ‰'?ëò¾Å\Ýþ»¯dî¯óõÍ{g… sÉ9Íß7œxcÖ²{½ì4—ç9ñ³uþ;:{ìXmt¢·ä½_&Þïõuî-)ãUÿÌ/hü'ô‚¿·®Æø|˜÷[2¼ãa¤…[hÝ1žÐJ´2³ÌXבF°ç +_™ %ù^ƒÙCHÚR…GhåtŸ¦¤ø{É Ù4·ƒ„U—¥m=ŠVÔsÐJÒÂ;iÈ«‘ÆnZà_öÔgYKI/Òܯ“¯{éý#àú÷f#ÿ +ƒla9ó4Ða’Ör¨„V(tl€%ƒíå&ÑçÿfÓî$äÇŽ †”M2µIUxÓ!òWÖï7 –ŽªØê–›ÁBSç=Û‡ú¿,Ǻ¥EžòÏß%ø Üôסij}Ä…¨­Â²žÍAãv`ɳö™%c›ÿÞûˆ6Ï!úzˆ,WÝÜ¢<ñÌv´š±Xê–y¹¯ï¨ÿû)rN+ 4÷­¯¯"þu ‡% ÚPð¾á]ÂÞþlã÷/Asu[E9ËiA> 7 ûÏVù _§ªdO†1Ô߇}—X+‚…¬]Ic.–³h<ò¬#U8|¹‰÷’õºKHml(ËYñ>ðŸý¿ŸD4œgé‹Å3¨_† –‰ï §À>ÿ[™Å® ÑÚC_Æ1d ˜‹d†Yzn“×]„½h.^ È¢e„0é±yi +Qß9™~òÄtc3ì:PEÇÈg¬Fˆ±Qí:&ùëhRO""¹Š:ý>ùLç"Ò›ˆÐf£‰xÕ¿sžt›ËÌcEŽ-y¸Œü.ßÎyf jy­HøƒÚ“5ñ'S:g± +1ßóä+&—sʳˆã™û–&6?HH*r‹(7ÿƒ&Ô|ÒÎ<Ï  •œœkÝmB“¯Hx?"8=åÑh/búU&ñChŒ§h ;}}’÷Ê·lDBð´ÿvŸÿÿ"‚ÖGHO<ÚYdÞDBÒp1•ùþÝ)$<ÇhÌ¡ÄǾœ³¾>Ÿ"EyÔ×ÓÚ7„ú£*yÑ4÷nùïCcµ’zéXß$d{,â%ËQ»«êô$à÷Ѩl@|§ŠñnCóÃxÈ DŸÆôo£±»ŠÙ˜$OO¢~]NP_‹x×ð ¢—mˆÿG΀C‰z}DµÇýLãYÄW tÑE¬’óËhRYûP?\AtV¶rdzhBŽ ­šühLâò +bLs©NœÄeB‚‘+þºáë9Šè`<ñü|²I>º‘¢•L<ó>ðG‰ÿŸDô“té(ZÃhÞ^%mÁ[†Æ5&}ö?#:O*íüû6fkÐÜ¥A 7'Å›¾~4¶+Ó„m„$ÌyïPØë¿Û4Í¿õ÷’Ö$û¨^Ѿü7_–Y%ŠœVêø1$±”üýð2g"$µô‚…c6Å+Eþ·mõ€°Ç‹/äÜë@«¢cÄkÿIÜE«øÔž™pø[KœóP‹=¯¡üRlD²"t¡ÝâL’³–$3eŽ¡>;ŽŽÈÕÁ òÇüIÔ÷±æÿ<<ëË8^ã.ÿN^_Ø\©šƒHoBÛ-–Ç>‰¥þ^,¡oE|t²—ǾY<$ßYï(š»–eÖ·7‘öÏÊbñPÛÞÈbšúÛݶ}·²â¹*\EV‰cH®šý:åô´Ê¿sÍû;4Éz@p”í >ñÞ¿£¨Sn¢ ¹5À° ŽYÍcÒ{ÑDΚ½æ!"=}¡¶Ÿ8L0‘ßA„{1‹*ÏÞ,Î""Ïîy/ôå®öeÆ(ƒhïÒØ}gµ2†ø8ÚÕÊBÕùó<ô >ÏÛÏžCã6C±.E}“Ýbò¢±"G$s¬%8/-FŒ¬1Ý>Ä4®ÐüþØ _ÖX“ïß#øEZ1«v"æ_wïpšÀØÍÖ¢ÙÍAte1n¡v×í³.BìŒXžw-Í"½-1…h¤êôFy +ÃBÄD÷QÏ©0‰-Hð&yPøw.ü>ˆ”²ºýüwoQž¤¾7ˆøqRi8ŒLÊ+)?Yò8°mwX??Büs´â½ãH™,êϤà­B7R—"þÒŒòŸÄ0š[‡PŸ>B²ðá”]/¡9¹‡ô¶UÞ"ë;À4[¹"¡2…ö›øJìõÿ¿Mµp)rÔÙ‹V/u:ôÇ(Ìe» Žsçæ£ùÎCL=Ïáíc°äñ{¢o\ðÛ ¾^U“üq´ADijH;{ªöS‹°)^y{©ó)?`& ‘Yæõ +ÅÂò6Ú‡½I`vlójó1ÔŸ{ góÊÐIš´,e‹¤à5Ûï ö]¢¾â6‰˜Ïm‚ Ýëëc{Ê;ÑØîC}6Dü<]…æõâC”òøÈ¤4­¥5Oç_§3Ä+%Y<úÅŽ=Æâ&êË¥¿ï ÞBÈpÒ×å ÖƒAÒ‹µXdç¬ý¿jÁ±ñÉګΚˆ±TY‹º-!î„ÀFB¬mÌL ¤¹¨//ú꫾‚w߯E +CÓ¨佄sµË[øÎ24!ê®^ò° “MȤyÕ3FÈ‹GEÌ‘Ã$Œ®Ðè·’8³øãhßöÏåü6‰˜E]Ø1™¡‚ß—g"=L5£ê§xÂ^E}‘ÜJšMðºçÿ1¨qÿÿ2rÃ2$üí{« à×­ˆá7³ +íDã¿€´³d,® Æ‘ìÏY¨O,bæZÔ¯ûÑŠëð—åv„cìü‹…™=›UV þ'nܳXˆhÙÎo‹, $HòæÿÔ¶ªXyøDûçÈ·ÂÕ9‚ Ræ·"š ̽HèVE¬[êŸ5û:Û#E¸F0iÿŒ°ŠUl"Z_‰”î!Âñ2åtR’¯Ìí3[4âÀ¬@tUÔÇEJU³§ö +‘,ÐL´fž1Àqÿ[³{˜=„³‹u'RÑÄNjä[)Ö¤²øµùEDôÙ S¶gž‡o"EdùÂ6F{}œ-¨g…™‡&GšXöî2‚YmYŠŽº%@1õí¨ç¢-˜¼¸¼r“ÇöÎ#š5½ŠÙÇhÒÅáù’n+­Ó)ˆî÷£±=Bœ?HËc=Nó«ØМéKÜóeZÞBu½ƒ˜fUmGsðñGÙêà2Í-:‚¹Ñd]kIâuƒh¼š5[<ƒ$Ïì (ðÛhÝ´œÅl‚@¬Gøê«K„º^GÖªí—oûk%¢—Ku*[€½ˆ.¯!^0…æòÞ²—XKX¨žA¼â:Õ“¡¾›IÁox€úójÇ,dáºBýíųTŸ*Kb ¢ãA4¾oø2þ=vÄ8ç@qãG‘‰ö9Ôéf&ï@ÚÞ‘©p”4C/à +$°ŽQ/`E]¨wø«•½©Â~LV©¹ü÷šåÙÞ[V`ÍFZßmÊÛÞ‰„×1àý½çH+]W}Y£Aí§zŵ­BòœX†À>CñvNêk ä”=zØ‹ë¨/ë0ùÛ5u°™à V¦àXž„º‘ ˰æü"ò°ßyÔÇÍZvú2Z]ˆffª¿f²¯òЉ˜r]E¬ìØ]2büêb;Á±ŽoC¯‘6›#²a‚Ç£”µñ¦l&n0‹]HkÙ„V1 +€…U´•E³ØEX!Ÿbæ÷œ,%f+Lz4so’°úŸ¢:Êãh¦ýÍOÜË:¥¦X;^‚Mž¿DþyA{Úh£6Úø-…)1XEÈ­þ÷ÏÇ=©*cGð·ÑFm´ÑÆï-ê(m´ÑFm´ÑÆüáç]6Úh£6~«ñ! u£#¼?>A¾eŸ?A¹ìËÐÑJ=ºk–ó<ÚêŒÁ.äïõ%–mÖ¡óü'Ñ{¶ '÷"tòºäaaÄ7ÐVÚø]B+Lb ð ”ý¬l"%ÑEð‰Å*ä¨õaâú9ð–¯C,Þðïüp\¯¶ 3êÕ} ò ©‹™VN3ßÏ–Ñ º€wи?—¸ÿl“å-¦\0Ä —&òåº@cZð,V!'ê>tÊá¿âÿ :‰Òi Êú½—zso€8ùžeª½Dœpµa>qQ%Ï¡SRG©>!aÉߊNßXtÝÓõ9âùZ@‹qŽÛWúêvŠ©ÞLìøäÕãËyÞ9·¸É2^tŠýz‹upÎmvÊ{PöÜ2§¼ ?q!&ùBW[á‡NñΫ®WòHäõǧxÛy9’×F'äÅ Ï»žsÊ¥ðÈçŸpŠ9þªKÇmïtÎ=í¿sßbþ¿àœÛÞĸýÜE«´¸Ø—óóï¼èûaKÍoõ:ň_âÿßåïÙx ¸¿ìZè¿ÿš‹ëìõ”Óü©›#a£SìõõNxÒ)}QÞŠ²kÀ)ŸÇ[-ŒŸ•ñJï>ã4?cò¼å4WòƧË÷E-ö8ñªŸ»€Ø¼1›ò\¬rÊ#òFÅ·ìêpÊñCŸe«Î+ÐéëSæSNùVüÞãÛ³Ó?ó-ßÞìs/º&øDÕϹêD Í^Í +¶ì>窅SL9/GÖéYçÜ'NÄž¼¿1q}â]Ô¹Núr\q—˜ë9_—VúfS"¦ªÄ_rrÏúg{ý¿ŸªxÏùvö&®ïùñHÞ{Ö÷yžßè”ìâdD[\Íö¿îëóìwX‘ÐyljDZïû>ý¡ ±ÎÕé4wèšWû~}1²ÎÉk½¯«¬sbˆ¿v_òß_ï”%F ­ðå|£dÜ—ÉD,ÓŸeb[‰&Úÿ­¢X +ÙhgÏP’8ï£6ÖÉù0€” Õ¨ï’ñ!î’ê,ðe…ÛÜG:@Q9šIËù.騑u“iXþ +‹H׋úw/æS SæbrDŒ ºØFu0&P;ÿ1þK(n¼Á˜ÈNÔ·y‘âZ}¿Õú÷¢¨”P_Ž¢¹4h猿·œâ9ñš‹'üs¦HzRuúv ^Ôy¾ c4M°õEŒvkH + ›¼¦˜ÜA–€uˆqÿMÎûÓn Pߎ'îm%^ °P²Ký;«‰'nX‡vr>¢¼3‰ h,¶"%ów-VÝú[è Hè!~²)’‹€/Sž‰t ÙÞÌ÷"ž2‚æÖŠ…ÙÂ%És6#Z­h‡¡Õñkæý1Zoÿaÿ½=„pÜ{o(Âݒߪp)œfAM*ìÆ/ë亷”åG¨'ßbß»NÈïQ´Ø]ŒÚ“p&q‰šVΙ>xÔ_Ç‘À?ŠSü+Ї… àþ…â4Ž MkšY“ö â´»{hÒ®EÊÆCBéïÑ„¸áïoEÚr‘-C–гˆÝ#(gæ¶Iʵä÷#ëGV‰ì³CˆøêfÖ÷ïUeð*ÃB¬òº¸ªS4sEýöQâšBL%y¯(=°á&š˜Î¿{뢣}¹±yÁSo2Å0AËíP•$ªÑ÷ÿw¨F=~ÐLýÏû«­œþ)_¬*£ Yó.S<Ï#¾T¤H.ößÚçŸù>:‚×„Ñ âìVǯ™÷g¢ý +ÀiÔHñ¹Lù¶â„ÿÛWòÌz$d³x)yËiÌñbé³ëXî†Ñbíõ¶Bcß;Ž©óäÉ[ïëã³W"eUì YMg%Êco裑øúJÊ37M~lý!âÜ Ä¸óÊ™B+ŸRl2A§Êd2)É|î‹ч&Ë)âLdeÄ5ŠŠXÂí@Bj +­vÏû¿G©¿â8Hõ†Jž§8 bÑ–iì +~>ò—ɰ؅P3ïôWQvηÿŠ‚ í¡õiuqɵlò¶\d;ø&i³kž)¶Jð΄€ÛŒ¹ÌlZ™ÿ¸ä™5ˆ(Oûç—ûkµÿ;›8eä]à?‘È2‰„ìËH趺?Öƒ.Öé« ¼i4±!Á} Ñÿªñíg}9ÃhÕaÛ/u4èw‘ òãØ”¤03>¥à™’ggûߎR<^]¨Î’öixõO‘pißeN8k Îde° Œ ¾4“ìïÊ6@³õo%Ã`«>ƒh|“4ÿD Gõr6qŠq«ã×Ìû3éƒò3Â6È9ârºDsædáMöSÍ9 +šÂ\eý»K语Äï½7óÞ"â…k¾ÌÏçÐvlž³fl  ­Ǩ6ÅšÓ[]˜€;ñ솈oœF“#Ϭd¸†”Ž›ˆ˜!Íz7"ÒYÔÛóNöƒMÆCþ1á!Ëpµ9ÆÄ¸Ì?{øB¢.Ÿ"Á9‡xSüf$€M‰ø"÷ êG ;ŒÌ…'¨yì R2íºEP<íºLµé¤Ð]Fôq˜à1æËE¹²v˜p²#‰˜­ƒÃHÜžóÛ:ÄW|¿1Kó=8ÃïÖ6Àã¨6m÷ãÀ?Ѩð y¹)¥—¨ŽØjû[ÆÿñQï@éÉ-ïü ´}rEÞ¼æðõšuXŽ„•Ò5MàË—©VZyïqc1DýöÎî¡v,ŽyØ,k‘æ0ñÎûhŸuÅÇòPGÀ-¥ze~Õ÷"¼<3ÒC´â›“óû)¤ÕÇ:Í-!ì O¡¾3­v’`~oæÞz¤DÄeÜ€„ɧHšMpŽú9æÊ„æŒC¤W_Ûr±ø»ˆúØŠâ‘÷:šð1Vˆmh’«›¤âi8Nœ²öù›äá.åæ÷H9\Nãj«Ÿró*È,8úmŸ~ÑÅ4³7+ÊBŠêÉÄ=³òü.l 1óõ_JußÇø`Ø*9F‘\Bðšÿ +¢éó¨meŽˆC´ÖþfߟéöOgþÆà=ÂÖÂ<$TÇ(÷õ*Ãê/6“uxï]Aóû+Ï"§ðÏçü·ÿ©êÁäÀm"÷ <ê L]å= Ý­È+˜b"{HãŠk'R òÎüábÙãw¦4{äc#Z­î'þÌü—ÿ6é³4z¨ß§˜qvùwiÔ°!Š5Û%Ÿû˜päèªÍe±Ì!Ö'áYd•9O# ‘Wd±G}9‰˜)þÝ3ßO=|ͱ?/~¼ÛG£ ·PŸÆš‘‹L¼³ˆ³d´òþLÔ?‰…¨ïG+žKîo!Öc€`A2Fÿ¶¿j›¢Õö7ûþL¶&pÛe¤×Ê‹Qß/'þÔE«Ð|ý“~o‚êØ]HFñšÇ³ˆ—ÕRšpP^·EˆÀî ‚õ왵¢nÌyÞä7/çÜÿ ËùÔ[ýw AµÛ)ZµVáŸ(Þó¾@±~@ùêþõŽ"&ñM´b?ŒÆý³Ä—QNïÅ_´¢9Ž{ç bº Åo6õW#7©¿¸øÛ̽ÓH( Q½Š¼I1ƒê§Z!kõýVëŸÄ—«T+_w²[æƒ1H¹F¢×hìßÎüã£Ðjû›}&Ú?“è¡Úq3‰eˆnE@óCjÖ·j9ÍO¬zo>ÕòÆ+ó)·=.|„ú>¹ˆÉÅãÌØ"øAB®ÎvÁÅB­›´rp‡x"±½ó D\upi£½9×âe È”ÔÌ›Í +ÿ*Ü£y!Þ*ö£~>ü9}¿Û(‹)ÃyˆèÄbF,BÛduNF€¶§æ/"KÑÊè tè}Ô—UÞØ a¹ù!Xµ._ö6ÿûãz&ê¿ +õ×O¾ÿƒ8ËÁQ4§òRÏ®G¿cäó‹]ˆW]C^ÜYáƒVÛßêû­´ß0E4Eø¨ÿÝÌ’Ch>¥šæz÷Šï ËKY=—ß@Û¡ ¿Aò#_7ûÞs(3çqâŽG<äûäó›l=Þ@4ØìsYœ'検 1£îÒÉWz]~R–^'ô–Äð±¿Qñ\Y\ꟸÆ$1}ž®Yžecû¥ ‰EêÖiÀ;™¤Ä›0©Û÷ÉË®õ,mÉë¤SìîÞ̵Ä)'AUBžªk‹+ÏÌõaÁý¾¿NÖüÞË®¹ xv=ï”O yL\1™Ù:}6C+Éë)§ØábzÅÍ)Öú2ý5àD3¿pŠþ-Wž §Ç'K§¿pqù)š}&ê¿Î)qÍ€k>Áv'Þó‰ cÿ¡?)ã­ÎÇVÛ?SãßlûÛ×ïáõÎ9‡òY⟌!Ó{Ö¼ÑöÊ'ÑʯΪ8¯œ ¤ÍHÈ4tø½Ä;¾çÐ „fœôòPi^)@õW’UxY'’{··‘ §i4+ÖÁ:´ÿ˜=ß?€VúÐj÷!z˜ÁŽå}VôÚh£6Úˆ€)kPýËÈ÷¾…Nž0i׎–عû:è@õŒ ÒÓFm´ÑF¿0 6Úh£6Úø=Âãtl£6Úhã?.:it|ø©ÿ;Óèñßl/ÒZÀ¶äЗ-£¥/^R³¼]ÈÁ¯(M|ž~‰Ž>7…¶ÐÆT\D¹ë£c —8¦± mÍ$Þ |r/DÛq¯¢®ý½}Ã_‘Gý7š¬Ã äG6¬‹-È“ºh<üïU}8€òÛ2u¥ÐýõÑL`=bÊ?œ¡òò° °jE&ñŽuy­DÞîk€§Çûj´ek‘4»‘ j&IX]„l¬[š,c.:ʽ).ÏÕ¬×]BìöO¢~G§ê𛯡£àçŸU]ü#Úގ͋ӀÏ"Àï Ö 'Õ„tÈh€²ŽqeXˆ(‹Î«/BGÿ*²¼õè ñmòϯöÕ‰‹ƒ™ö©“ô¢,¨à*‹>4A“çÐ7¶"æ÷ +ÊYEcJ⾬ñ‚wn£sÉ É?ƒþ1!–ù]_þJmð>Áô4õbe$1JþQÎ'óÚOq~„$®£clQ^$žE¤ 準bgÝw}ãߌÁ·}yuB‚—ámÔ'g¨¼< "ÚÈú5­Cý—7ç6¢£a5E˜»ŸªK#×Ð1æK¨ÿv#úÛ†ú`=âc7Ðøo Š1õåhâLe~?M½H^o£ Íê•UZZÕƒ&ý]´*˜B45äÿV)¯ú:õ£‰™m7¨o¯"e%6"ÞL¤ä¼MúÃE4é’t2DÈ—‡ÐxbjS+'$’¡¬§ ´‘d&s‰ž ;mrµõÕ!z øºALy“ÿÿ a¹÷R©Æ†èž Ô wûY•·Œâ R+Ñ<{!s?âay¡Ñ¡±ºåß_€xÌRD‡IÏ©hþ”%õ²Pësý÷¢“d£(,v¢‘³þû#Ä)–„kÈÿµãüßÕ” ÿŨ†AÚŽœÜ× zÛƒxÕññR–’]>Û×éšÿN_A¼ã3õ&=ž×Q¿••×áëcsj¿/g–¯ËM¤”žV3àë¾Rc¾À,øûÄÜÏU°<«Ñ¤>Nk+±SHÛ&h¾ý½+ÔמÆ}½†rÊ»T³¼^ÔGGH :3ñ¬&^0â‹&×lÒ¡vû¨Éë>bâÍh˜±¸‹ö¡îÇà9üuæùDœýþ²8ë« ‘ßÖ¢>µèf–Á1èéU4>‡}½æ >äó‰Ò•Dß —׿B ˆ§™WI÷ñ|4NCþÿS¨Ooò§ç¡1$,„Ht7ý7ö ð)b¢Ç€?‹¬g,™N+™gEÖÕeˆÆoP7›™4Nèfõ©…¶ç‹"ÙF<à_ÆÔï·hL~µ ÑSÕŠö‘/§ Íÿ1BªÜ¾œþ{uŽ…ß'LÇ”€Õ”/*âtÉŒ½¨ÝÉgÞCJìyD+y4ÜKÈ…ÒƒxS¿ÿþÊzØúÿšÿwÌ¢äš7‡ÑÜÚæÖ8ê¿»¾NGQßÿ}æý§P¿,Gc¶Ô—7ŠhÃò¯tøöí¥dA›$Ò(îSÄio†÷‘ùf=!¬êXYeJ`é$³ÇùÞDÄÛG=áf:Såò&ž%ŠÅm¤µ’^±›9wŒæÍ¹3…]„˜ùÃh=DæÙ»ˆÈ!a´ƒüT¥3߬O¶ +¾ˆúà#4–± Ôî²ã OòŽïEÂþ(š${ZþOÑDŽUæ’ÖÎûhLœÕlƺ<ËKñ©g“XMc„Ëy¨bÃg·0†ëë¾^çÐøl­¨ßCÄo¡q[@ȾyÑHrß#^ø›5ãbÎo¶X9Gü±f³pœÌùm)bÄg‰ßv³•ö‡™o$Çú2å +ÀC}¾ŒÆÏÌÖIº½hýª¯cãÎ݈×l¢‘§Œ'ʯB⥧HÇŸ7Ž­åmíõ£í¡~´ X‹E µ:Hçâ0ÜöW¢Á –Ä"kÍ$²Î94v× yÆýûH‘XJ|L˜¯øv\B´zÈ—‘lÿGhŽŒÑ¨\C´sYnø:í&ÝîG„s!—@’½í+wšêœîE°Aš©úδÉo’ ¹e…Š­BcqÛjò•5hÀ/Ð| %CÒ$ûQÅ +į¡öí›Þ÷eÙ–@Ý,p#ß„¤ð]I¹’ºÜû,bÇý;Ém|êÄ)¿Oz5¶®Ø°›æ0‹FSîJ¤ n¢xŒç¡vãXŒú&É:}gýwÖ#Z­£È'qÑå Z…­C ¨¨ŽƒÌ³“#(›Q?ZÞkh¼bL±o¢¹–´TL•Ô£ +fmÊ–—Øu”î:ÊL€¿NXé'1…„ÅB˜ÚCÄ­FÇоu–êøÚt Þ~É#:C~Žb¡½Í÷Sˆæ—úkÑó4âu§/(‡³H¨ÏA‹Ž>mòu±ñ¼ëËšB|/Ï¢ðÈ·c¹ÿþC´?HÚ|oß-À¯ÏU4–ÈÖF櫓¿§ÈçQï!Ú¿úhŠFáo°­íB<.`¼aÄüÿÕÿ¿Ù,Twü»{Ãù ¯¨3®¿ZYÞÍLysÈOúS†GþÝ­çDxÇ©Wü*Üä +'»g“x†w9SÞZ4·–…»Ô3‰ßFca‚µË—;1 ˆ¹OQÞ>.˜ò0AÐVe\Ü‹Åw‰îƒìJµn¦®¤òû«Y¥ò¦^K>T–”dbö³HG}üaÁ{æŸ0ÑBvÅR´ç<1ª þ›§ –)SzÖRlrÿ8ñì¹Ä}\Ó¨½û½Ä®²«h¿ÎVÀ#šK!›ÄóTg‰õ§]¦Ð®%¿==ˆ6,YØNòÇöS4>W±ì«2Á-"¬³ +èV´*­J]Ýåë׿ýšïG‘@·U™Ð¾‚¬…{•ãÁZ5ÑŽ$.#2é˽†ÚhÂÿ0é¹²ˆ|¥Êðé9¾FŸ¢>Òtó}YàŸ5ÿ„Ã(Sè)ÿ»YpzÐ|™((ï¢oSüŠœp'©Èè:Ó +À2ÒÚdråg¬ u@]¡¸ å%B½'‘ù¸ß‚ $†AL<*›I ó¦¿ºÐ€¢:gtÉ••„¥˜4ÌE a’Fsjß&="âûzúuÒh^œß0bb×ü½Sç°"Áhg%šD'ئ|   ð_Ên½É;ÑįëGñ8`Ç’²Š×,DCeæÜ¯N&´j ‚ü=gÛ9 ‹Áž1o#}\Éæÿ˾ÌE” ëçÑʰLÑZDà ý„3ý4öÑs¨=eå%­ &°ídF¶¼#„S× B&)pòP”H¬ÍÑÞi‚,/ ùÄÏ—o9O÷&îÍBc:Eù˜ö¢¹µõï1ÿîêƒ:["«Ò_†õEÒm¯O_þˆ÷déhÑwÖ¢ZgÁÓéËÙ“¹¿”jGØOÑØõ„õ¯H†£ºý^£ñÔPûm–Ño¥¿ÔL+U{= Bí^§Ü‰(kâüð…œgæ ‚´ z iiUDxiš›„a{Û1èõßÊ2éhP’“¾‹°5I¾I|„0‘n’¿BÍZfLKYA—í¿2t"B^‰˜WžBe5‹|]·œöNø{÷rqžêÉeg+b´¶ª¨oìÈPÑ +M¾:Bs>éýá DÃ'3ÏÔÅ|òWs‰s¶µ6,Cc'@— þ½L9-$÷œAô}õãÁ±«‹pLõq{Î+Ýæ1ðØ2#™˜c’Ïœ&¬~³(°G3ŸÅÌì‡(5ç ±³ì ¨ö1ºGð‹YŒÚ¶ñÌåäÏ“7íÔÉwbcn¦ü)·Ì²Øƒ,6P?ö!Þõ5¾›„eà|« ŒIÄS.ûï–Õ-o,¥~*ï,6јÜäNŒeûSÒtóˆ`Ýy“FÙV†eˆ¶QžnÜ,ñ…˜i`êìÒ¢ÔÀƒSwÞ„ABz6š”EçØóp…ÆIÐãË0&ø6ÊÊ4Á$Ôãëvƒü#IÈègûw¦ íž@ZÝhAý®ÑÈ ¾F0ÓÎÄÙùm„þ³úÝGm.«ßlDìÙú]@ã0„ÖY$ü³&Û*³šÁއM +ŸÝ¨ï¾&¼ËpÈ—7^ð»mKÄbõÓy4.Oøú] íDz„ú{ëkÉZ ¨wlï á|t‘ðÚJ¼£R/jÛ$ ~†Ä6Ô¿ˆñÏ%N‘%G!‰X§µG%$‹f¶°Rϼ‹.´í7Œ [¡Mø¿fñŠ92¶† CüÒöÈÇ|ùÙ67“ìÌ„?h¼«êu)dö-;¹Ó +ÖÑh®¶=ð}½®£¾«£hô …©î¶nóÐü>EzmC|áÿgïýCµ¾²{ÿ×Üc9^N¾Ëñr¼èåœbʱhÑ‹~1Å”ã SÌE‹SL9^Ì-É ÅS´˜K,I‰E‡d0%qHJR’¢ƒL‰ƒ’’ ’ C 1ÄC QTÖ÷÷Þ³?ÏçÙûóÙŸç9fæÎ÷Y°9çyžÏÞŸýcíµÖ^{ýè4ÏÌ!´Ž©81F{é8š¢FbAs2Šø{¥ôd s;Ÿñì“ËÕ?ŠüþC4á ~Vi +fPO|½@¸^¦_¥õîÝÁÃöÆdŒÁ׈€@Lj +í›b:"¼\ÓÖ?#+ªÕº µ½€um|¡šJðßoš´©GÒþܽãYÂIh!Õ¸µ +IÔ;IÑ̈´1›´zÑ_I¬uí.BÄïu÷ùN4Ç[]_s½GÖ¹~ÄæjÍlFÄèºsmìGªÅ;£?‚Öõ~4¯ fÞÄCfÐÕñ¸²ÍWÝýr +Æ3¼Ôã~ï5˜Š0“pª[K÷qK¾¦ú4· ·9{ä“eZ‡KˆÆ^!Ĺû h^ªâ'<ìžót‚ûÞyÄLrúu“VAc*ÍŒj˰ +Ñú=¥ï‹ZµNîAj.ž?ŠãN×µ8?›‘æúšû­´{Ý4 ¾ú¹Þq/£µ{ÍÅ,÷ýš¯ïºÏË^/ˆÅ2™ÀB÷²­™Ïÿmâ;\ݘÚùÁÐÄ[^—ï×NJctáŒà­†ËÁ¯<,BËkx>wÅ£H`ÙMpϹ/1K\ýå‘߆h4Öb¸qóÿ¬©»i~Òz7¼ïÚ H•àäáQ4ÿÜ÷]§À{ÏN£uó@­N>FL´x Ð-L ¾-Šü¶ˆfûw6ÂçC-Ç/ qG6¬ÒO»ç6×ì¦5ÀگljG°ÌY_1_Ž ÚDALí,ÚßU{–ñ¯‰¹“ÎCåŽ$¹~=àú»íõ¦¶lex á_®ð0á:ÏÏWn'¸žÎp¿Gk|± NfV,;Ìì@é;ÌlÂÌÎE¾÷eÄÌÞ7³£…Ï–x¶ß̆ÝÿçÜss+Ú®+O˜Ù+Ô;jf'Ìl‰ëï\3{ÌÌ®»ÏMÚšëÆÑ´^¬ ºùOüþ¼s“6—¸þÍž„þù2ní¸²ÞÌæ7lç~3ûÂÌÞ1³ufö k÷€™6³¯ +Ÿ˜Ù¾D;Cfö´û¶o¹˜ÙbÓ[ᙾD›&ÙèÖäXá·>×f¶Åý]çÚ|§b¼‹Í쌙YXï1ÙãföIEŸbeĽwi]ÆM8éÛÎh£ü>ßæHE]5mÎws=Qúþ-3ÛVè߈ëóª†ãõ}[áæ±S\Îk“²ÞµçiK¹ä¬‡Çæý>n­4¸ßÍáL ø·Å½÷X¤­sf¶°0Þ½{ËÒ¸¶½Á˜·˜ÙGÖ +ë3êù}Ôï>/3³7\¿t8ÿ+Íì”iß6ÙGŲÆÄWÆ"¿Íuãíç|ñ4£“º&ZÒñû'Kð0’x7d<;‡pwø:’D«NÍ}÷¼˜Ds/ƒ¥´ûO>‚ÆÒ4JÜd湊Æù,­§ioœäï;›€?MvüƒÑÒçÔm V¢¹ö*õÝÄc›?K^¨ÜÏï¹ÿ?Ds;ѽ üNF{cHÍ6IüÞ¨h5}¸ÝðôE´6)w°Mh¼‹§é«Hwšƒ«èºª“k” ´Ÿ„g—V©ASø~ +:Uì&}=·JËÞ&÷ MÃ#íÛ%tZi’Â÷í,ÁµnÒ¬§yü‰ÑÈwÞ ò4ùZ ß|8™I}žŒùèôy:GÑœ¢Óý5¤©ñad÷¢ï£Äã­5¤¾Oþ:Ì_9ùý×OÈS±—<»‚te>ºsŸB<*eÊ.˜?EÚ˜³tn|íÉn®"O’ƒü º×ôzxáW'pú•0™ÀÃä!Ê<‘Ê>!⤃a4…)´3Ò›4ÜW„á÷)—€\#Ô|7ñLÉíß4ÄÜNÓLuÉÕ)}? W—¨.Ò,Dè)UV;l¥»ø÷·!õÜN„×WñÊp +Ÿ"fs¿™p·ìz@PÎ#ÂÓôÿ"!K +.Ñìô2sñÔ½´^­á‘Ä÷ïÑ] œ‹ˆø=Zø®hÀ ê{®p‘`UÕ^®àÝŠÓ.tOA4á]à+Ú8ÿ«ˆ.MwõbÂÿ DWŽ˜® ÿ*Î'~¿Šì"~˜ÙÈ¡Û<Ÿ¿ÛEý¦‚_ ¾­PÒ×è< [Ù£1|ÇÌŠŸýÝP™1O ÍQwÏîa„à*U†G‘Ô’CÄcí¥$êË4cˆï,¼}`…ûÑãš q¿«7Zø®L@Þ%¸ ÕÁD<ÊdbL³ÃÎ%¢ýHš.vÓ?¯òátzù«m¥²åÝI° ¿Ý}~„öh\=èAzЃ;évâÏ\¯ª>Ÿø}Í€ÔKÔM"ˆÙïq},>Ls öÝet+ÃÏ€ïLb{×ÈËàØrc­ç@,[^zЃôà&ÐéëvÒÒfgÜïuÌäSà¿NF|LÞ½mx“zWºô =èA~+¡|Ѓô =èÁ­oÈx«`.ÒìÆ®„}ü’×èÞVäoïƒÚ5um} Ù*]D¶o¢˜9‘T=ô!÷ÉéTGÖÂiòpzð[Û6ke—í,Fv3«:¨wΕù]öÁÃ.@jã$µçáA¢õ0òb¨‚³;"ÂÝ€σ]¶Šž¶ ךg˰øáËÌIèKrû3»ôy8¼„˜@ +Vü¾x¥ÜíÏìG +šÌë(ÄP—ïŒÁLBÖØ¾üêžFû°[x×µw¨îÁ܉úêÃÒ@ñrcZ ¸÷Þ@××/"\φžð›ch#>EÃŒÀÄ”–uÛ)+™|¦2ê` ðð\—ï[‡ +¢p™3Áf•Õ| 6"bé=΢ Üt㽉<%FÉHØ‘ ϸ¶Î|~ˆÀúљ탮ÜB¯þ "XUpY–¯¦K÷$W¿Éxªà2"Ôû‘ÛbøwB´½[!áª"ü]‡¢Ñ=‰<;VS%óväcЧû€V)ØHµPçÓŠ#O¨þ‚ÇË7€Ñž‘°ðòVRЗácBÒÉp‹þÍaeÈÝl&„¤¾ ­Ó=ä»/Ž¢ýñ}Hh ñôÛÆÐ"o¤Zbm +s]»ÛˆK”}ˆMæ;qm~„6c·pÎÍäÅRÖ•¾[‚éU„äÝJõî½gã› ðùáORrþWBšånà,!íî«…ïš2ƒ“®?;Ýç/ yÚ›†[ž†T§Ñžx¬aý2üÙçäø^ƒÔ âš›"#YàÊ´f~ݪà&R«^!û?~Žp¸èöÖO»Ûi\#ÄÔÈLÆh¥³\ý‘àº1®ò©<ˈӥ%(DëABHô*x×=·1¶µH ÛKuÔÈ£u‹ RŸÞ[•ù4!a uýÚŠÆ3VÑ–‡éhN·º¶V>`.:µ1ýˆ–¬E4t)š›»mLA8ßIÙ-®”ùÉ(âCû€£ÀHÃ’‚…hì^xÍãnt𩃅hM_+´qѦœú‚Ht ~S«TÔ¸™f¶©¹)· Xk„¬n#(ùrØql•¥#äí2EÐ+~·±Éi¦ëÛQS¶Üwïrï÷ó¶ÝÍM§ci27}¦ˆYÅh[/™"âáÆ2ÞAæº15EqûÄs2¢ö¹uxÊõ훌:ÖY¤Çr2áàSÄËN#„°Ö5ž0E ÌÁ•bT±ÝÜ¾ïæ¡.ªž/;¬5Ù° g&Ìì×Þ+¦h„_˜à\¢­S½sÖs‹ko¾)ÂâÓ–åqÈ„73'iÍ®›"Øíróe"06)ó]Ý ¸˜Šä¶Ê´ÎþÙÇMûü)7§ß˜hM \eŠw 2'nL3MáêÚòõýÞ!sì§,MGܼàæ9µÏ·Y{„Á¾Â¼bŠÒ9nå”Un^±ü=¹Æ„ç×­5ª§™öÕ˜µGŸ,Ïû úXÞ3çLû넉æot}weÂõ%µ§—¹~ï³€c¸¹ÜäêVEaì¶þ¯Jj£<å^Pnd¥‰àl1… Ì iYF¶N‰ïcfö™µ2„ç, ãD=¶HÀVšèœû͇'­ +K¼ÑZÕ¾ä޿τğX÷ÀHƒçwX@LHí¿;ãús´q—U´ÓïÆð’û»ÉD\NY+‚å”4áÔ7¦ zÂõsEæ·u1§¾ ¹y8åúrÀ÷y«&äe?`­ÄeÂÄN™póº‰a”ÛYf +k|Î=g®?­ÁÜbZ×s®½3&ÜbbÒ‡-„œ2á|jí}¨ãί4퉺þ¬+µ·Ãï€++Ýü>n"’U{¡‰xÏvóú¼›§O\[-šµ\ž¶ ðÍu}xÊÍ×c®Ý3&|LÍÍ+Ö +§L{cš‡€éÞ÷Qä·Çó_U7 è9t´ßÓ¿c•[#¿¯ÇÝøÞpS‚ÂktGL8²ÉÍɃ5}ÙîÞ;Óõã9 ôʬy(æaÓ:víåÒª-Öy˜aÜUÑm¦µN­Ï5¿5ájªýnëÿªTýø…µKQc&¦¹ÆMBjÁ‡,0 ±¾7™×°iãm·jÆ+Y«$ºÏ´¹_2Å•ÕYá&$Eh‹'ùªâ™ì9W®›p‡{GΆ¬X³ÖMà XªÝ§,Ä_f"¼ž ûœÿí+kv*[áúÓô$wÂDpW™6Â÷w£kï˜ÓD¢þpaVº1ùØøkÜ\û²®b.Ëx{Æõ£<—ïXµ rÊÄæ»÷¿a­‚ãWnÌ#®,´4A´À˜ÏY–ÆL8øŠ›Ÿç,¿Ï´î·vád½5#lOXúä9nÂï:¢zÌ ý+7'ÛÝØÖYˆU>`Â×"kàˈ‰°}c"°÷»ösbÊ‹?™kï%7ß'\ŸZÈQ§Mè3Ѧ‚p™ÖŒXÈUQ.k,Ÿm2á`±?}ðªüü:kÏaqÀͱYÐ=mÕ´x¶{¶¸v MÀõ†ëò… ÷¼öêk.ä/6í—N´É;\iZÏ—VÍ/Þ°ø!Àï³vt±øœ1Üì¶~KIý°ÄÒÆBÓF¯›¤àÓÆ?à>d"¢Ç,œà›,ÞÒw3­úõ„¥7&fälÌò7£¿.ð§Ëœí:÷®1Ó†ÛháTbaøS¢YZÕwÎõuÌÍéÆÒ˜Ž>¶¸v"EŒÇÝ»MkþŠõgAö×<',$ÁÄ>³úÓÓ¸i½v™ËG®¼âÚöInšÖôýš6×Xfï·v-Ï1«V>îÆsƽï-ÓóÌ·<Ï9Å Òþó|WFLBWmæjv˜ö˜Ÿ§œ:3­ú„?n¯ª¹Á±yÇ´ÆEº1b­×}´?©öú­u=·Xë©Ô'¿ÙgÕ'Æ5¥ß?*e¾ ëæi‰5__\ÿΘIUBê\“€’Óæ0÷®ož™ÇñÓV/@YÍ\úò¾‰f ›èö7îo“CÜb ôu¶ ?:aâM¯ ‹å€Õk+ªÊ„¥“ðÌtó™ÒTùÄq;*Ú÷ ‚bÂy·õ[Š7,“ #ËTŸsz2¼˜\s¦’NvR„¥È0â"2lø3g ð:ð?€ßG±îÿ"Q€´›ÈíÈcp‚b´ª/E–qdÕêä¦#ƒ§£È8졊¶< £¹x YäÎA!j"ƒÄ”[ÌËȲú]÷¼Ïà­HEV¬> í(r›)ÃLWï +2àò9ÒSpžÖPÀžD†J³Ñ¼¬Gs³`­&¸ª¬F†6©`Q øÿ>„¯7²DÆ99ù"Þ&ä¶_îúýª{ïPÌü_º¶}òŸ íÝá~ŸN0þyÒý6­[•ÛÍ_##°?pïó)š‹FMsQ¬¥}üô9„tÆ¿CHu›ÓÞ´/–’g„å­Ž«à4WK*žùG4?>®ý~ÒVÌ7‘±×=í]£GÎ"Ch>rè̓„=~퉮ý9ˆNŒFêÝîÞ?DÚó2ÕséáQ×ßw]QD¿›ÄÞS Z¸•üôëE('k +Mªá*é$Y÷¡µIåÝȉ´{Ñýyu[¿¼UïNBNwoqí ýfWþmîCÈÂ÷ŸjÚ¾†6àU:Ëս fy§ë× ´1!äMeä$XñzødÍ}Mè%4i/#¦\e "°ÏºúÐD¿MÈïþŒëW,Tî5D¤}òÞŦœ'ÅnGköÚ˜uˆq™8ÒD!–¯¢9:ëÊqDXÊ™Ür l¿•üì^_Ìy®TEll +|湇Z”*·©ÝhOïó{ÿ.4îÄ5&W š´³®­ÍîŸ!:Ð ÓñéÄË.l^ب‚ùˆ~LGÂHY¨ú퟉/?¥ý„<€hÚ´g‡,Â4'Ñü}Š‚ÿ,§Y$½i®NŠfN§zùþ¾ŽnÒìö¡ñ,@{ð}49¸?ˆæãVç A¸—Æ?§=™×Ë耙‚̓ßñ5é¶~ x`5áDz˜Ö´˜eø!ýÄ€§Ñð¹¹§"¤¹ !ôä³8@^¤=¿À5D\osýô ³Èä#¢þaE§˜ÈftƒÑŠ6<,CBÉrD°îF’ârZ}¨?výšC¾”>¼‰‡Üû>Û, ¤¼½‰¶bŒ0÷„TÃHPºˆpb7ù„Ëç6¯óÕ¯cd ÕçZDD½³q +Zûä¾ï#R3‘p\ÎbXÓÊŒž#} – '¾Ý@ãIiÊPwm1í˯îTŘèÁœÒ÷w„£»¿ÏÒ.Döû´çËtåm$Àu"ÒwîÓ\æ’>a_"E؉Ôyï!°1¸{h—`¯¾'ŠÁjòƒ¸€„ŒÓ„õym¬ç‘Prš›¹h~n'=Ï1XNëiSF¥‡áÁýu·#ýq»}{ЬA§†‹„M½­ß_ ÁóY4W9Af~FPÙî'Ï®ÁÃbÚïÿgÑ}HÔ{ã|+Gp»DõÕIq^¿¦zŒ»®L!HFkX>yWå0¿FüPñ._Sx­ÏÝh<;\¿v#ܬ:8€pândwƒ™h_]ŠüVÓïÞÿ¢#IÞIº8WS¨ÆTo3ñzâ÷ ˆ.TÅ_J÷<óŸGÐf€4;ËS•JPg÷‘ çÝ;G +e Ѧ“h>rµÛ³ÑšžGóT‹ÿs´?«¢jÞ‰øGL(ë¶~+,ûL–¼k"“¹ÿ·8 È·LV®)ëÌq‹Ç·æÆ­ÕZy‡µºXÌ4Yy§Ü2Ö¸¾°`m:Ód=ûŽÉÍë “Eð6«¶(¿nÁútØYZ¦ÜW®[~ žMžMƒíx÷1ÿyÐd1]ŽñŽåñe½›óNã5Ì5YÉ–qi‡ëÏQK[ñN˜¬‹W™Öô#‹[ÃûØ_Y×ú,øã®qs{Ô„Ëï—ÞßgòèØi'VÜ<§|¦c¥Ï„kGKß{·®1 ®„>I“øÅà 9ϯ4á½·–÷e±ÉÒ<×;Ç»‹Ž›ö×Kîï – )§x÷á&s½Ã„ƒÅØ Ó`d}&üö^-Y—Ÿ3yª Yúô‚5R.žNÍvm×YÃÏ5áEÌEz¾iÿÔÅ!8fÍ}ôËåi AŠß¯2íÇW¼‹pÌŠ~Ì„³÷[ð*–e&Ü­Ûc&šX„¯Ü8sédŸ…sMéöýî1¯¬nž»…õUŠ&¬Ýõ¯ÏZ}Ë}°ÎÜ0Æ­ÙF^åfGá»Öîè]‘F"mx?ÓbŽm&Xî×;¦C¾™Üþ–YpO‹!›÷1®C ÏH>²Î¢öÅÊ: ‘ÝF®S¿›Ë7¬sBµÉgeâ÷çÜܤ"U=fÁ]k—{v¤ðû ûÝ»‘– J'>)c¶ Šî’ M›ø‹Š>ËF÷|S²Ð´1˸Õg"Ž>ʹ>ž²¼ˆwËL®§¬]àª+—ÞknXþú³V[OœÞjÐF]ñQüržõÁa6&~ß’9¯Å2nÚç‡-Ä:øÈ;å2¼°ðìËsÎÅ££Ö*äWù„c¢£ã…Ï>jéKïÓbyÅ´G"e½‰&× ,ŽŸ¦½\„ÏñeÿGÖ>æC“ÃNÓ NÅ’”*UÖ›öì'¦=tÌD·ÏX^0¹nëc€~W¹ì#ípÓ Uˆx.óÙ­©q‹ä“Ö.ô›N,T选 +|·ÃõeÄ•]î÷~“”þI¤~ ›î §Ê2#˜m:ùœÊ˜‹&fÖéI»Xš˜ë+Öáïê6Ù<å÷³…-õÜ€[«òI8V¼Ïëˆûì%üœèys-ŽCÖ.ä6gÓÀHÅ2Y ±8ÆmÖ!„Û#ÖÙ>Ï9…NFÉ÷ÇQW|§&ë?lùÁªš–íYgÍ# Î71þ\Ü3 +¼@S«SJ¯üËwÌ ”ˆät'¿Áý=D¸ý›Ú»„‚…õ5d€·ÝÕ¿M3KÐíh\¿ï>ÏF÷¥£îó%äþ÷÷ÞÕä¹§ ¢û隸Ùq}­²2Ÿîº±¨-ÂzBÂ’N`.ºsïÔ¿vwÎ}øºË«»ƒ)uâ'܃ô =¨/bÞçû9dXtÐ}?YLj1É«y.ÃÈb'ùn€ ¦¾€Î²?UA?2.º /Ò}€Šô =èAn9x`&Ÿ{Ѓô =èÁÿeàÝ{Ì¿=èAzð› ‘+åú.ÛYG—=„ܦŸ¾@!ž;…ÈÝzi—ô,>Þéà½C„öý(¨]Ñ-~ÒèGῤ~èA~Ka=aÃÄ`„tÌtcÀ7ˆh€¢CÕ„i ŠÑpÆÕýÄýo(Ú‘:(çÅ6¤¥+Â:ªã b°Ã•-¤slDv2ó+Ú+à +âòÃ;î=ex×ÇX8…Æž )b:D»¯}SØ _zÀolA †üæØçJ Ñ}0™Uˆ ­ì°þ2$=?OçD¬>U f"{’Ì®øýQdØz Q¢PÏãí_E›ÎoØ+È6%¦s>"÷ hyS‘Á¤røûÀ÷ïy³y¶ð}"\ï’^¯½(Œ¹¾]‰Ýã(8ËñD[1xøDð@D/Jûš+yðšE˜|1‹5¥ïoG°:ÅW,¢û 7EèCÌòU$`4Èøúyš1 B·O,Esý8ÖÇ€€š‚óÈfëŠû{¢¶iP£©fÐä ï¿ |%ÝúàO¿¥Yb£"|Iˆv™Ðm­¸{;š—7Ðɸ~áêÞƒ€å(Ú­Ht–ªðà¿n7„HYlrý»nÍÒLËÉ]¬ÓúX”’ò'®CS×_›À»Œù EUuv¸ç^²VמAk¤Âç÷~Áš»R º1d­AGæv¸KܘvE~óiQ'\Ùar?|ÁBzÔÏkpΪc.LX³X9å k‡ÓÔÕ?e!à”O=½Î„£©´¤ï[kúÛÙî]«Ïûùk:6?†‘Iž³b™íÆó´ ¿ýÞö¾öun¯?²v×Ч,»½“2frq]frË .U,û¬=†Eªl´Ö½j®Þ6ËsµÍ-}&úrƽï°ZS—ÎxØÂ^ôqJ:õ¿ï7íï¹…Ï+Ü:~b¢±}?TóÎù¦Ø‡];ßXÚŸ¾Ê­Ó +ï²4n[$åS¿s}ðë¾Ë„CoX}œ˜Ã51×´G¢õʯÚ|¼ ¥Ô©6Ë0|…N± ÕçuâêÁ¼‰$²× ¡JWP +ö0‚¤ï è„ÕÉ}ÑFäy’~sûîá6t:{ºƒw¯E'*s”úôˇ$ã»h •éÓ…>Gždü:¬%/£UQÍù%’FwºúýH•þ6ÕézSp”ïˆüö* +)º<½kè³(nù«èÄÑMÊÏxµ÷W§Ï•Êu¤v/üÈwMà +!©Îç„,™ :…ÖpÝRøñ¶ÝByÎNº"¼ºí…­h­g!o¥ºÜ?G'£Y´‡ü¾”Q?ú +ÞŸþ!ÍM­Š‡Óˆä„ȽŠNÙçPÒ$Ð>ÞLH1>pÓµ7ÑDŸxú0êŸ"ÚдkhžÏÀÃ54?;^]@xq’ iŠõç6´gFÐ}ý¤¡y Ýý?âÚØèþZZs©a«?†4…„ë$ýùáÖYâ4áS„wº÷½ |å[ð´ÿoÝo·#mU +DxËerÅ=zýWVÁ4UmÆÀç«>_hãªS¦£E,&›8BXç<îDÌëSB&°Aš!Üià‡îÿŸ utUæÂ2x5WnŸ=,D ¬HÔ§ aâêc!ÄØ‚~Rqî'tÆÇÞŸ‚Öîy)n÷ ¹ú‘ûÜÆ¾Ôý½‚Ñ2Ú*B"ðïDЉ¢b±®Ð]L„xµ÷4Ær<‹ÃĉOSUgüáõÒ±&^FÂß ¤¾F}²£¦is O:Õo Æ ÙÕO1 "ü1æ©HøÍKÑåÙŠn¸²™ú”çE˜pé2jÞE øa´;3ÛÙêúZÌ–· ñg‰Ó×-î½WÐZÝ…Ö뢕¯#Ü^‚hÂÄݽ‰Öé×Ƚ®½+hMR‚õ5Â^ŽåiyÓ%uìGëYuÈ8ëÞñ·m¿t¨†¹Å«½Þ*¨r®›ThM#¨ù蹪ç%NÕrÝBLh¯*³“þ3S´¼ºö^rï÷ðI…yÎÒWÅXîE•^¿IeVªö)kÿÜgR3só·¾¢®Yg*¹A“Jð+ !eϸ9z«ƒö|yÜÍW§‘óX:ö9ëþ +à@â™Ö¶Ú—cÖ,ÿ +à˜)ÊcîµÒ|“ÚðqN}æþ¯šÏT×M¢#ú1Œt8guå°uM/†ÏfÚK‡Môå-ží3á„/©ë¯™Ö +¸8_^­{Î:‹ÎøJ‡õ|±xN”U®åvXúÚ(UNX÷Q,‡Ýœ•ÛñažÇõf»9ýÌBÈáqkÅ%N¸ŠÆáÖ)ɱ ¯(âWÇVY ùMçæk¿šZfy¹F|þ*œxÌÍ_[(æÔÉdI-w“'-A§ÁEHš;$Ù#Hµ>ƒàIàGÚØŠ4/"éécd ó.:Í!Iç õÒëj$Ý“ÙÿŸ¡“É9$Ù£ úÌRyÅ Š0N3Ü8¼dö:Y¤²(îD'°Í´JÂ×PÎðÕHâÞC<ØÐ Z³÷ÝDéi4?ŠÔ)B1íh.|‰®k¼…÷åBÇ¥ú#õª`ÍOÚ)T¥»Ý@ÚPª*C^ +†‘„¾‡øi2TÌWîOEjÊ©xö>÷ì\ŸîCsú:í¤öÏ%÷Ü‹hÏî¡>»Ù­†i4Ç!Ð~ñWqw¡S1h>ã>4'©ÎáîácDãF‘6Å«¿o"-áË®íGè,xZJ}]«m¸¸ga?¼ˆhÍÕ‘JËýòéâ›À½»¼L89_"dˆ…tFÏÑ|O!Ж~DïF&àS»I»Vp6¢ÓM¯jŠ´r˜´©Á8ÚÓeÓäi€n§:íï´~O"šp…‚&0åPd 9àè´¨ß%Dû+Z ï%ÎüA*W‘JäãÂw»39‹T8©”¾E¸ mÄÕtï*ÔV qÞ‹äkDlÏ#ÂûqõÔZð㤠Ç´ÁS ʫŊp øCªUáchcæÌk +~éJqS܇®‰kÙ:$^¤¹+M8‚O¬trg»7•67g#×Á!à"Bó p”´¥ðmAóStµ6ŠÝ]ï8‹¬¡×"aá]òR$ßJx …*o +GÚúb>Oû_ «4/ØÌ Ùç{º­í „;PØôN#§zÛ†% ëíD8¸š¸`{Ñι„kÉÔA$ æÑÄ]²1ûHU?Ѹ?@^/þ +Ç_V­Ay_y;o#ñ(õÌ?‹àÖi×ÄóÞ¦YtZoÚKÚ­1÷ê°ê€1 ÍínDÛ6L½À3PO&+p +ÐFN:6À4÷Û<âìî·_ ° óß„˜ô!ݦîúuÚõ+ƒd)Z£ÙH1¹›HxÞïþ‰<“‚ãäyIT·Úoò^c!í.‚Fé*y‚þl„ƒ»Žö!üÒxo@4w%ÕZì«T_[.'x¦\£D_cÀ¯ƒzøœvuòÜ>r`-ÁeâE¾k€CÀ÷h'6}ˆ>ËoFF»r0a¸!\Ì‚ös¤½H!ÙfD~„˜Æ/Ñšý"Úû‰ßQõ£“ÁÃîÝE+íF0'í:¸AÀÕãÔ÷÷Ktú D<ÿ¡Á»bb• ô©{ÇèĶ­ÁÒ¶߯œUÁaŸö!×Û'ÑIý/yÜEtj+‡…ý1©É8e5Õ¼ Uõ#ç»]ù ðföÜ-NÝ/¿ˆæåU´ŸÊð%y‡ŒÁB¿ Ö"ÄD~ŠhÙµÐ4ö=‘¶f¡¹}Ñã˜p:‘>„Ö³‰à~ >‹ÔñÐ<…hß]4×poD4ÿ´Ÿg ëß4†Õý(¢~îîsíxzx­ÙnDSã<ðf#Z_æ£1ŽR¡U‰ ¿Š{Ç>äJuE˜z…†&{UF3ª²ùv´)ã¹Ý®?[kêçÜAú Ü©Êu%qŸñi—S­~K!õ ÒwÜ_"âý§‰÷îw¿ÅN`“a8÷mÁ›À_ßÂösˆw ÞD­3h«1™ïðЭ áZDȼFè^D ½–ã +ÂS/¨üáÏÎ.Þù%ù†¯){‹Qt +óDwš×UÔY„Æ6õ.tHð†zžÞ¢ìƒï!f{–t¦ÕÄE¸1¢ÅHp¼“Ví–ï_ƒ›h î´u1¸9ˆÁ—a!h¶"ÁÿgH œ #¡»Ê¦%s‘ ô²Mkj亄ŸÄ»e_ U»–³—~Š4¬^ø˜æÜãÀT´ž \÷åÿÍá#îý¾w}ª<À—‰zŒ>·s¾Áýý“Ò÷ƒè”¹œz Ù¥hÐ +ßÝ ß`2áqtbYD=’ï÷SàïðRŸ7 S ¡º(òÛf„°)µà0ÁP&£‰÷VÁMÒv³¨ˆ_u§Ù L®€‡…hÏ”ãtÃhÎÁMt¸x–ôuÛ?¹ÒG0úËlËÀR~} tñÊ_"+æg¨W³Þƒ6UÑ ë"Z”\cÆ”j +y§ÒA‚ªìªß<|Ž6Uì„îáN÷þ”±ÙH‚/·Ûîƒ÷?áÇNAýˆX¬&Ü“J¼÷,"bÓŽ ÓAiªb¥óà9C„€.)x–´Û× ÞÕi2áÍÝÃ.#B{!Ó<ªñ·É]þ*„k» W†ÝÂÏÎÍ Ø¿%¼$Àç4³þ~’àP„‹O÷’žEãôö/#BŸb$Uó£±Î#ÐÕ úZèÕµ>F{ñmZ£^FÂÉnâ÷ðExÏõk”°?rúõÊߋ° G÷19AºbšÅ:ȡǢ«ÌNàTk@ª ^=ܤéA¬àiÐ`¤P|œà çLqºc¿m´ê¸Ø[L±ÈG"%¼!°¢ü4‘èá¨)îzì·ÇLIª‚L¬4¤xÌšÇÒ¿ßõ3z…) K*¸ îÝ>‡ÏÜœ.Ìxÿ¸iýZvrÆÀ¥*ŸÀ)HÍGÖßXgM¾±Ö8öMËÈã×± +Ÿæ[$`†+cn>}¬ðc¥rÎýÍíçªÌ燭y œ&\|Þæ” GRÏX>Îî2Á¦à5CÏ–çìë,¿F¯ôJ¯LrùŽ™å´‡êœ¤JoRG‘ôùÿF~{̵“ +ê1€¤ì¥´«;ßEþìU°Fb'†sHzÿ^M¡“콄°ºèDxÍAÌÇ«\_CªöNÕKë‘ÚgAÍ6ŠN€{‘Y4 }ìa€àÆ×©5~ )ÂltÒêT­<†Æ0Ù¡€{Ѓôà·ŠÀ¯“Æ`]?ä0çºÝG!ô‘ü– †º©ö_C÷Y)‹üa‚R¼ +¸„Ô‡ß^åWõ.qëã%ô =èAz0)à€_7íAzЃô ˜‰—/’Ö¾ìUšj'—l^|ÝÙîoì@ÛGˆ_3dÏ£Cq,¬‡ÄoG‘cU¸ïr½;èÀNÏ»þ +Ïø‡´ÆÁÿðgÀþdtQåÏþ)²âÿ¯Àw +å¿Ñcþ=èA&†QД3È ñJcîÓ çú†/£Y¨ê~ä¦üòûÎWPJõ)Ò7!÷æëèð•ÃèŠ5šÖÕÁ8ŠŸÛ·2¬§Õ<†\½áuк=M`¤ÂcèºðYZ‹ð {æ Å}ø)bÈ'‘{çÓHÓrÉÞïúó*rSÝK0r¯ïZ÷Ü×~îœîEÂE㘩\=èÁÿßa1ÚèÛ‰G:ëêbj¬#X ¯„³Ø–ùŽí(H]ÜŒø "9ãNùº{ªyf 1Õ¯ÿiŸ&‡`:%Í!äÞø¯„ð´U‘'=Ì&Xód<ºŽüd_’›«â#¦#«õF6C‡ÈOg¼¹ÊËää-r„tÔÀ*¸ˆ˜Ð¦Ìç;e¬÷ ßõûèÎÝäj¸ÔýŸ²ùñAÉ óȕǑ Û3È>ë{Ä-îû>Gž>0Ú#ȳ©ÊÓkš{Ç{gr#M ¹¿ ¹¸,øu[!öJ×åA“õ~•…wªÔyW,tmc²ü®koÉÚû†ýhjá^Ubi`—Ys¯ŒA3[l‚”W@jΞ3yË7ßo%úè˘É{Ãܼ¿ãÚÛbÕÞå6^pmt“R9'mìKn~绿M¸rÀäáð…ÏâDý÷Mž'¾ŸCî³Y}Ša³vo‘•îû*ï“~“ÇÐÓþÙWóžbîA×~îZøúeOªçLÞ=9õ׸µÈYKïõ”³/be‰É£'×ój$s­RõÆÖ‹•ñĘ'£Ÿ˜pìyÓš›p:…Ïæ}ót1«önZla¿Ÿ±zº8d¢Ï¯ÆLøœ=¶n'þV–,íº÷„[„7:hw¡iãuÊt–˜ÆQñ{Þ-ØaÁ{Úš»¾™Ä&kΨfº÷ÓÁX›uÂ̶¹yÝî>O¸yZèæÚ,îîUžÇ]»}¦üÜOeôc¡IúT9áæs[‹÷Mn)÷Îbb›ÚLx»‰y›¥‰È2“»æ>k]Ç™¦ ý…uçÞØ¤L¸þvRwÌõõ˜û|bn01Üëîù—Ln–-¹ßWEêÎvóY^Çk湸6åùômŽWÔ[oÚÇþóSžùÔóO™š…îÙ˜»qU™éúäéYŸI(ÌÅ÷m–ÏÀÜ»ÊÂÂó&̺7ߪ]ž‹e$s­RõªÖ)·Œ»¶nE?ýz?ï3Ñ•&<ÄãeÝabÀõq2hamIý°©‹…0mè 7Ø¢$9Û„X¦ÍP5ȹ&‘b¦VOÔcÅŸ0šÇ>“zÁ´ARÏ­1‚›œ¼,0ÚmŒi‡is¿[g"ZÛ­žxŸ10ËRŸ‰¨b­³XöYÀ•A·&ÇL§ˆÏ,í_.§¬UztsqÌÂ)ú”ÕûvczÁÄt›€:AdÈ$}Ÿ+”o\[§Lk¿ÉªO~o¸qÇðúy<^Q?EP-œ"ß°ÖÉ'5}3ÑÖ3¦5<åÞßd.‡Mû¶jï.1áÔ tdGM»Ôi)©¼ê3W +ôe¶µ£¹î:ºÎÚá}KYâêzâ°ÒZ™ê„[ˆínÖgö±Ï½÷œåKÕ¸÷¤Y¹ìªXˆM§¢2±÷’{'sv¸2nnæºyqóö¥‹¡H_pß½`bŠusüše!RS-˹R·›ÖtÌ„ Ÿ˜6_j^‹ëëñdØ´)šžYo!U¿ëWN=¿~±@XÛLDäNÇæs¡I`wk¶ÑÍá +“P¹Ä´É¿²êÓjq¼e8Žš„‡c5uf»ñzAÌãÀsî·Ã‰÷ ¸gg»þns}=çæ$¥êw¿d~_.fÍ€M®O_¾sóô™¥iÈ27kLø4nZÃ&ø½ÑÕÅ$¤ênúéË®ô›öÑW&X—ès7ïóó½ÎD+¼Ðü†U œÅu2Ñðë®/UÔ{ßZƒO ¹wYÍœø÷2i´FL{î3«°æƒi…ú ×VU`»".Ÿ3­y¾œ±ÖCÜÍ«j»“:-%õƒÆ›4f"`18lBŽ¤î–³V†;×´Xç\¹nÚPLš«:ŸpíŒ4WŸ«S@LˆêOÇ,0ï%Ö~"/–ç +c[gÚ¬¯Xˆö·¦f<ãá kË3á¬]¨ò‘ØêÆ9lÚˆo™6Ê æµÏÍE,ê`¿”z¯%Öd‰›ÛœHŽÅ2èúÓäþ~•µ ç +ÿÏ·´Ô?ס\…ëÇ€ÂëSŸ‰]7átYƒ4Óý6‘9– ^ŒXÞ}î°ky|¿RLÀÉL¸ó¸kc‰iÍ?±´¦oÜÕÉü¾\,2ËÜ÷)AÚGÜ,ãg¬-_ÞpÏ Y+>l4äëú‰iý¿qó’s…ÐI?}™mÒ&ž3ÑÞ*e·ïqÏ”í8ŽYµ ‰¯7naÿø«Ãªq™µ ”㑾§ÞWÆïc¦ý«ã÷tùúÊÏËŽšwzžUgëÑo4Šó@³˜Éw"ëL?æ>dA|ùj.FÙÖλß/Pf{þ(r ñ¹¶÷#ëÑ{µéâÙ½þÃc'²H¾Bp9)[Â>Žâ;ädkûõ²Zmâºù(ÿÝhmž%Ì×Td¡|»Œ;K‘nlMF‘ÿn“¨€h>%dìÊGhM§:„¬ª$Œë,ð±d=ch—"ÿäóîûX\ÿ›î¹iÄ£0nuõF~KOY\ýhþ·Ò>_7©Î¸ö/ho\ µß³Ñxv’å-Úgeö3«ÑœÜDûò^×—TÌ÷«‘ïêpkZÿ©´æ+ù!ûkÈ¢=•_´þ'c9O&£Ÿ–£¹­ç­xh\~_ŽhÙ!äÊVçw?‚öÉjªƒ©y³ÏÔA“¬•~O—sÐ\#Ï›`:òÈøIÍs×¾”o²ë´ALF `!8Š\(  ½ÀÕ[D{PƒTÂ’*w†XZ“‚xøšèáÍ]HF ¶ S¿˜„ç„>PÃ(rÛ(n˜ªìm·²ý®¥hãþ'b0ÛÐ&z•ø¦(†lÞ˜CÌ æáDýxwž&Œf"6ºz÷ ¿Ó}¿M-æÆä]XbÐ$Ù h._Fs|7rkºBȲv¹ÅàˆëÇ(ÂñK®åh}R±ƒHH¼üè—7‰3ÿa4‡›É_Ë&I‰NÆõ¡­céœw¢=úLE½wQ?ïsïöL|sE2\@¸ï³a^qíM&<„Æs‹{Ü{ÿ¢{Ýïß­iÇãO,=îdÁÐY8ðÉÏhG©f =×I€žo bÌ>'-û òÏw}°¢ó·¨N Ä€g Ù±ö A¬u/*f“Š ¬“î±:·î:D:=!xF'ÿN2½yÿbÑêϹˆvâ™’£9>äêýZÞ¥•>‹Nù ¨Žåa*p?"N7ÐÚNuÈl$…¿Nþ|¯GQ7˜õqÄüV2#VÅå¿Ãõq>ÊÖ”é{@ó:ÍCùD6†ðêíÈoÏ>÷ òå®SiÕ¥/æ"ìF§žTFÆ4ÞDkxíõª`_90Žpz'ÕDý&›½hþ."+ÇßËtž-~êÊSw> 5UïÛä1õW]½˜À4°Ñ”?¾Eíwu¾ì»½¹ñ›néü­€´÷+'[éID×ë`íïýˆ¯\Cþý“]§ Ê€žp翃‚,¼‹òE4 ¾ÄÔC9ƒ-C,½í4A]Kœ™^ YŠTŸ³{p å7XÙ ~Qàñ' óhæ‘–üžEÌn7ª†Fagé¹OÏÑrLwíÍ@L÷¡ÓÈ!¹'£ ãz€ôi<ϸw{¦=Ÿ 8ÎA µ.)Ï4tÊÜ€$ÙaêÌ”aà!mJŒÁ¿‡˜\U0Ž2äãvŸ†wZÿòʬ³¹ð b¦¹é¬=\¥™†ìï{ü€C1C‚Êi„uðoè$ý»(êÿ _ËòmÃmhíþƒvœÎÁ“;ŽÞ*XJ3ÍÝ·u‡Â݈ùŸ§–¡xeôm€çAemn­ ÛRp“<-ÌŒ"o}©&w&£¥Ï>ìä +ÄP¼ðãU˜1"6IŽ?E§€ã‰.gXWI‡· ¯ ƹñ2ÂŒô=¡ymr[Dظ›x<ÈUAÞF¸öù©Ü—7舰úkªªœßIa4Ÿï ñšÿc(º^*2h>ZèÑgîD1&ôÆ`;"÷Pj\¼…ÂãžCóqŠ"¸Žú„ Lw!ôñÌ>aæN¢9è˜0}Ë=í*ñ“ß<ò´ŸèŽA×õs*͵Kݼ¯ +<Ý:_óÜYDßBóSšù]Ä”ï#às¢}·~èE9êã]hž×Ô?Š¢[V…o.‚¿~]H똪CÔùx` ZˆÿEë}_Á -~ŽwÎf¸ˆTJå3|<3Nï#÷*Úx»¨™¼1©"“½J\ƒ;ý\¤UØ8‰ÿïA¤Æ|Þ}ÿ:q5ö,Zµ/ºvo§=Ftbˆ1íÇ0èO,‚Ùk÷ã|ÂÒAcÞ·ôæÉ-#¢‰Uù‡ú1}”ø}±‰zó|Y÷™6ÿ9÷ž,íCï£Þo݇žÜnbú#¥2îæ¹Š°îp}-fZìúƒFZ,®=/,¦@Í51q¿F_X{Ķ%–Ž8á;S±êÊ 9ÌâêBÞ˰iV¬Á&7ƒÇß÷ÝÞ²î÷\¯ôJ¯$ÊwÌ,¦FªÃý¤]¦r` ©¨ý}ФšÌq÷x©.Ç}Ajœyîóe¤Šñ®xsi·S؈®/fÑ®®9àúå­w}¾çQâj+oÜt©Æü}H ¹©ÐëÔ»#Hí–V5é€{÷j¤Ê™åþþ¸¦½a×—­äç.B?“sW;B°À/ª¿/¡;ïCÈo:H¥µ™rZG`]]ÍB×+£UánòÝòzЃôà·bÀ|‚ ZóÉeènç*º#nⳘü;³lBw¨±”›+Ð8g ³¦Þj®k³hHv uwB1@‚Ö Ä¤Î"fxœfwñ=èAzЃdCYG'ÐLn‰MÈ¢ižô =èA:…!‚gRŽ'„˜1ÞK­ƒÖ¤U._D»ª~L–Fv6:L>мÃ^pý™EAÃ]ŽðÀ÷™üRÿLù÷ =ø¿ºq‰KµWåVƒ€7h'cðò˜JÁ|âôeXŒ"­@žÇ€ëÈeµ[Xˆ¼°^B¸ ø y©uã_ù×Ü縌¼ÌA×°Má~Wò:<¾.£kìS¤=×6#+þ*wȸŠ4Êþšú"!bæ¯ eЃô &ÐGp¯<‹6{ÓË9°]Åí!ž  ô£ÍŸÓGÏ\b'¯aºÚ›Ì1/$äc¨rçÌí_îœÝN|çiwîÊ´îØô»ºw kÐEÿí‹ÀoÐÖ&d·4ü“â&äê6x¸â~Ä î¡þ´Û‡ìºæ ׳W]Ýͤm|а֍¤Ë áÝ(ÆÂmȶëÕÂ3oÓÙ¡t1þ×ܘMÛ.t…[Ž–ú²íªÊñP†hm6 ¹Üˆæê¯ Ï<èÇŸ&ÚxáÈÿLü¾ + \9·@N8Ãüß [áe'¶‹ÑuÐßÔ<·Iµ ´¹ˆúpž##Ó*½Šx"$І=YS¿óú^ä7ÕëÕÌÌÛÆŸÅŸd¼ûvDgNåvç ãÊ&¡[ýNG̦ho³Ã½k/ZÛ;H s\ÿfÔôÏ–ªƒ 9‹xHßµ®?uÌ 1³ãhç fpÙõó.BäLå³Ü÷:¸‚pµÈüG\û)àŸÑœ/Mü¾©ŠsTÝ7Ñ\ø¤UË\r˜?è4þ(!\÷,$H¬EŒ?7×Lª`xï!CKÅ$ØùyŸWºzÓ 9Nnsíl%=O-%Ð’Ûhç³{Ž l.Pm*¢Ÿ{éÎH¿6ÀoJ‰¹µê<÷«LnD'L¾¦§L9™ß²ú4ŽXó|ö¾Ì¶v×±XYoyù¤»éÛS&W¶œt°Å2`!•hÕsóMnƒ¦ø2ß5ß)×À ÷{j~žsãªs'Åäš÷–É]2öûv÷®§jÚÙbqWSߟ£®eU¿XÈ«^å¾çç•Éír¾µ»cúÔÙMޟ± ÓÞëd\#n¾'"ï;fŠÍ±Þê}æëú÷UMýryÜÒ1O&\ŸsqÍL{g…ûnÈä÷>ÓZû¾Å´¾1·Òa î®3M8°Þ‡à}“»äQ ®Ÿ)üöeGb|ˬ=J“rÀõc‡…8U4Àï7ïVí×ð«w9-–]nþÆMtd“É Ù÷çŒ{ÏvÓ~¨sÑ=lZçL´`µÆ~t}ŒÅ‰ÁD3?‹ŒýyÓÞ,ã‰UŒ÷1«ç!Ã&7û*7Ùa÷î·,û¤J° +I±ÿX#C4=eÐ.AU©'GЩa![(jáH¥;yíEÒöß¹Ï+ jêb8/C*¨g€¿¬y¶}Hš­ +ßëa*Rí¾M3×7ß·ýÔ'Aù+4¯OÖ໑ŠiCÍs;Ñ}I3Iô!t’‰Eä›K8e?‰N¿eÏ‘ hü{©×#î]Se–à6Ò.? »øä3Ñ háÄ~8n£Þ&gþoОִ +nR­i’Ï ¯–>OAÚŽ‡ÉKUÕ¿Ûhž2¶*ziîIý&Ҁ͠õtú(¢=þ»Yˆ¦íEî±/Ò®î½DHÀvžùÍg˜{Ñ]¿‡: <ˆöâêê®@{ë´#ܽáíÄ5thÆe‚ÆbZÿ&I¨º÷Üp?@óqÍÝyW¦“çyö6šë H± ²=|‰èb*—ÃR×⺢¹}¤ôìM×Ç͘ÆQŸ"úû¤ëSL篜ˆÎšf2ÖÕÁ(àqêï$¶ ¦÷Âw‹]ÝåÄïZ~‰&ñ2í±ÿ/“ž¨rzÓw‚^¦Zm9Œ˜ËÝh\ëÈn|øÅ¥Ïþ*Û ç.µÜ·Ôçšþ>R™Q&$ ù”§u}Z@³ÄA uµ¿õÇgZüÔýÝIû¾‰Ôù#1µžýgî"­¶û{DLRÙ=\!-ØÍ¡Y ƒh|ùÓÏ»ßnGs1™‰Or3®wýñ™ïŠ0­K·×‡^»íï{ ñ4ê`!Ú3óh§ Ó ±Bš@•0…|â&ítðZ÷É/ÑxO£}¶!ÑΈ¾ï¦'}éÖ&D{AˆÏ#0ϵŸÚS}ˆ7,@tû­Û{®­},_Ë,¢žá•á=477ˆïmod÷lf{Ó\üõÃÝHp+ÂiD³c×Ói°7 ¼‰]]¡:L{N8ýg?]Kü þoh¯%AŸR›x?"Š9).›œ2o£]’ö)k«N'þž¤LŒêˆnL*®#\[Ñ⿇NŸû‘„•c„² 2¹n#ÿD¸ï©cä±¾íqëu9Åm|M¾Öc:ÍNžù{ƒâ=ý×´Ï”¡ê7Ð #'UlÎ=ötØ…ç§HXº‹ ÕÁL$,œF{ë!´ADúðKÂi¦I<ŒDÌÎÒz'<ƒ|&ö#„“·‘ÎÐÖmÒ™§ §&sþ‚q\øÓñyÒ‰`šöïZ›îó‚ð5J³Ì£e˜N»ðõ1bþ—IŸP?we.k™®,q};D5 Bc™†ã§è`ベÝðãsd}'é=qÐÕY@Ð’–áuD7ûjú塘þ½ TÑäYˆ?äd¨]I0ÌìGk=V „ý”#üú¤p{¿’ÈËßû¬µeêÚÓs*úQ)H”ÝAÈö6"œ¹¾ßw©Ëzt¾â·‰§ ±U|ׂÂg?IuDð¯ 'SÒ̵@ý?4÷ýWò˜?´÷íû¤×h%!y¹ê¼®LRkÔäùUÀ ´Q¡¤HoÔôýqBªÞ*ìaäîôéd4“õLø"Øw"¦eH } ©^„ˈ€^&ß%Ml¿DbÕ/ƒ·Î/ªØû‘ Ý”È^¡5x±äX ÏGs?€´UO#¡æ²ëã<¤ë$"–‘w•ôKDØ»í_>@¸¼Ó•¥h7¸ÿDkåAJ‹óä©§w?-ž$d"]˜¨;ˆæö´@‚Ãt€øE[õ™ªÃØ64ç…˜ÊpÞým¢½ÊÕNåÂí„LƒUЄ•ûÐ<®Eóõ"ÍüñËé·@ü)& ÍtSIÓ¼0ZlëdâÙ T $•ɘbA³£‡Ü:eäºø>Rˆ³š"ö:©í§zBf£Í6ÇõÇk'ö¾ø¶ê »ßï@sæ-´ï#®J?äÚôîB}h³îþw—Ïÿ›+F^âû]¿«TñŠ÷V)œ˜¬gšÂ „C¯Æñ¼û;•ú±}íú´ ]»ñDÀgU-|7Šp¦© [Õáˆè¥<5@ŒàRU^@s糋zUëbL;éÖ¢¹;ø­wÐÞf¢‰—C +ºank(Ò-/ ÜDÌê8šÃÛigZ_ì <¼„„­2s|zc™ ‡#ò×+ÎEßI ›ÜÔî¹p;y× + ð÷ŸÛÐa¥ þZ!¦y>öôz´>»ÑÅhÂÝ®”@þ.:Pì%xò¤ø–Oáž‚ÊxÅ îݹ®ºGi5¢‹A'uÊ'}ßù*â™Ä Ò×k Æ7SòÖ!æ«•¬ß+ 71#•o«N=ŒN-c¾‰ˆÄѶ›>ßÖÒÊ4« xo•Ò +MÖ3 Ç]ˆIåhz¡¹òö*ÞúUòNsÒÌ]p:Ùa”8Q¯‚·qyá䈡O-W¨¾$¤[õjêòIõ^D(sµ`E¸“ ²/Â,´FW€ßí ÝÉïøƒ†õ|>”rŠÜb +ä›h¾ŽÆ\7›.” kÓKÙþÌCôàkt%u7ZÛíˆÙ¾‹‚¯‘°ù×0—F¿¹Zç§Ñáã +ZïYh^¦»¿«]¿Qmd=‡ ±8HpÑüiDý©Þ» +Ÿ&®ÁüуhÜÏ× +.C|éi~t„žÞG#LA€Z.»àpƹ9øÏ[œ›A•+BÓ:«¬ÝeĹDT½Ç?3Rú¾* ð9ç"1R(©,pXHýKkú…Éíä×UgØÕ™(}¿gùùq÷|9¥ì¦Ä\7}Þ—XŸbeÌäöó”åeÌrm Ïø4¹9é‹gFÚsßUáV§e¥k;7ƒŸ/»LîGþó|ë.Õ3&<›˜„1[g)Æck;^* ­u¿ç¸‰ÞêñbÚ§×M8–›í±ÏÕyÄ[óMn…ó·Ëê3·ŽYܵwÕ».6¹× Ypá{ÐDóÇÜo~­²fn¢sMn›Ç,×½;¡YȹØÂÚ™p¢&L®ýîï[n.F¬u­qëñµ»õ˰µÒ‚aׯm&Wô¯L4'•>Ú—×o¬ÞE¹ªŒ¸9ýî5ýètùbA6¸T#=tRç2íÆ49.(‘ÔZ<É Œbð6q õKăzÌ*ü^† Äï³¾­:þ>¨¬2šB«ª· ûi?=Æîì:}>ÞC§µ‘ºr5Õv•÷V“üÌ!¤%ˆ© ‡ÎúSILe?Ã=ó%ÂÉ;NæÆOÁÁM¬i[7h]Ç& ¸n5Ü ;ƒ:ŸÓ,B[ ¶¡“mì¤êƒÀl(|7àRµ€¼ C “ÿe´¿ŠµûHйIÈ„ +RS?àJL›SwÛçÞoéûa‚vÑT>‹ì™ŠpšpeyÉoºJ°/€¼*~´‡h5Ú{™t´¼¿'¸ÿ¥NÁ9^O'Ñ û*A‹â5w ÐËSÎÞƒæé éëª2N,@¸ô:šÿ\{2oý×4 û\„eCþHóТ ñÀ5à÷ ß/¡Þoº“: …Þ„Ë,ÂëC“› kÈï¿ËCŒù!×ÖjZU”#®Î¤ïCcî`uwÈßV¦ úšÝa6}¾ |ŠðãZƒE¤ïÀs~²žy¼Ø5Á¤ô†QWºðÙÂ3çÑx޹ÏÞz|yH–¹wÎCªñ²ú·)¶áQ… õ ¬,ðTÁR±ú;Ô\î ´ [ýh¾F jæäôo˜pG>Ãõïñ°ÅO"¦å $ýÞºHÚû4·¹ÌßÃ]qõ§Ò,V÷Îñjè¦pµ¼ç>¥UШª?­‘H"!Õ 5W>>Js÷à÷P,¿~³¨ŸŸÉHþéñÿ^âû&‘U;¹Ú*C§É~JÍm†‘äv’ÞÎg¼ iQt|”`;°1±H­ <äßû(i »"–ï'½õpL§ Ööù¶êä2hÏÌæEže›jú|§ð5!9Æ«H‹ûê{«É}f1ú˜ðú|«R3oGëî…†iˆ°ÞM=“I1° Tß¿¦Øj´/§öòB`• Ä}Ö§ºþæ<>J, É%Ä|SDk-s±çÏ–ád¤×øö »°ÿ¾‹º9'â*øšVmԇ䅖n/oÕA¤ðÀ’¶ö#¢|zשNêLCÄéKß71Ôñ†‡“Ž=…4œFܨʟ¾cª`¯æýuÕiÊ ßuílEŒÁKý ÝwÞåóÝÀׄÈa;©÷å¿•0ŽÊfÒjö[Åø=tCÐ'›ýü˜îÂ×ä8cðšÒõ =H€061÷´×IiäÊb0¹\-Gw3UjoZöa_†ÔXÇ#uάu‹0õ9v§õmÕ)2è™…ïtu 1ÙQ$p}‚2[$®5iúü8Áýí!à§ ¼‰ð&±mÁzv§û|«ž™Šîüª,Ù{Ѓôà·œ5ำ\æ>/4%—0÷9–t£“:O›¬Z;±fœkù´Þ¢ó×§7L ',€Æé-g­yÀÌ^2%QÙñPg•É2Ùܸ>scjšè§Wz¥Wzå·±¤ÕË“5~Ìk¾…ÄIe¯(_-M˜ æÙ…{Ï7xh±¿oõ®Õý&â¿ËÕe +,—¹®_'ô­Ïäv|¢ð¼Yœ)Ë.ÓAÄ3µÁÂøbe¶É©ž±àN{~ÈÄœ=cÛfâ)1&Y.Ç2×Ò»þÆæh‰ÉýÎ,í>ìùÞû&>—rm~Ð=÷Dâ÷§Üï©CéÜÄšx·ð²À3h­ k‹¿øYôÇ•?@ (~YfÆî;©3YÆd=èÁo2ÌDö0©°ËㄨbU0ØEúÉwê‹|73ò].ÌÞžJ´ +rS_?²’OÕ)Ãýî=o pÔï  5Uð4ð Z›!÷ÿ ïº])½ŽÜÕ|¦·*¸ŒŒ½]Ïyê³(^#䈸]&ê×']ƒÈC£®o7]¼7’ïk]Hö¥®íÍ($øZªCѾŒl®æ¡°×KÑ5n*wÆ 4G>à”7@Mõk…] ¿ƒæ«jmE×1{’ŸQÖ{7ri¾Š5íL<÷OÈÖëû‰ßBWÕ)[¶_ yX^úþn4w—¾_J{þ‚jh"-ôJ¯ôŠa +®1aiÉФ²»n +ÞRþ}‰éôµØ¤Iqÿ¯2ö™NJ×-~ºši!pˠ锵ÌõÉ:çÞQw¢1G +ßõ›òžb +FÔÉM˜ õþ%®ýs¦+:ß_³úÜö˜´ç¬5 Ê+Ö˜,Vv¹¹qswÆò­l7­w¿é{ÝÒªÝÉ, -àB*HŽ? ú¶ãôeÈ©y•é¤þ‘¥¯!ý ¶¬J?lº¢Œ>rí ™4þt¼¯¦ÞXÅo#®ñŒ÷ÏuëÓiÿ«ú銸Üþ+¦k ³Ö@GOXý~o)“ ½ò›Yf›è€û»=ñÜ&K™%&¢R·±ž¶|[ _´jÛŒNÊ:×ߪk§}&â5ÓÌÖ»ùù‚ú1UúL¬¨.—U&XŸøý9ÓýŸ¿2{ÞDÈW¸5ðQcêÃ> ö6æþÁÄÖ»µZUQÿ°µåMxQŽfø™uµïy“`Q5ÿ^øÙèæýy䨵³ökÆ]ô÷7¹ ˜~7‘ e… nU¿}TUñ˜ûû‚ ªêVÙ¢¸vÇ3ûq=ÑÆvÓÞž¨¨[GkÖ¹¾ø=1`Aà¹nÚ;þÙSÖ0"i,ào,N¡@(§ˆ»' ÕQ70ÐðÙmÀòÔ¿eXlløN‹ïýÿAê¯û"ÏŒ¹çRîp·!µSU°§õHeÕ4Î4ò£Ã øïOžÇmÈ›"åUáá]¤=‹Ôl/¢1ŽÖôá&Ѝvò/õãn÷îE~ÃÕ;I¸2ûs”#à'h fÈÕùÒ÷F{$Ã"ÌG¢º¹æ]Ym'Ôm¹{‡¼Ͷ +Ž k àcî|ŽpÝ_õ ºçr# +H }¦â«9],3-Ï¥i©:e¾bA¶Êâ*š}–wúqÓi©ß=¿Æóú'¶¼øö}T¿±xÜueÐtBúÂ2-<e›µŸ’úÜœÕIãÏ=à×ùhæ\”ËkwÝÇßOYýŽ›T“s­^Õ¸Ø.°<§‹]?¶”¾ï7ž«Ôqë­Ú`çy“– Óu>eÕñÝYë)è)kUï²úÓ ¦“Î+Öj5}ÔZã¨W•N¼XFܼXÀßç¬Z%¿É„»_¾skð™¥55ã®m3iZ¶™èÙ\×ÞÓïì$¿Ê°I³q¤!zÁÒÖèݼçŒ[£â~õZ§T~•¦u¼ªÉ3á¥ßƒ}&z»Úñ§ãbݪ¶Ç]ÛfÂÑT<þ÷Ìxâ÷AÓºeÂÔ5ÙpM;#–¦§ÅrÂÂ~zÎ?Ýh‘7×9ùLZJq@[\#)¾Ñ¤Ò³f®|³MĸNu\.[,ÜŸÎ4!Øý&•æ)7±)wÆCwÏ_cíD;U¼ËL„âXâï}k¦v9gÕÉ$ꊷ`mš f¾+ÜòÀ.Ë»ë·4¾dõ÷Y©²Ãš'^1‹ –ûL÷¦Û¬š8—Ë6±m*Àbj¥•h¾bmþYáÎví=ƒTs‹‘*ûß‘jlÍ“¬SŒÎFjô¦±Ò;rî„èéR?æ^+<ˆTöKiùï¯JŸûÚýÑšz>üo ¼•o§‰˜¶"kðT¾ %ûë‰ßîAêõ7¼ó¨ÏÑÕJn*ØÉ€{É£/± M<“Ê{.µ³Øn'¹RŠðsàоNå éä=ßV3ÀìDsüÕÎ +¤ºþËÒóM“žùùŸGûµÑíQS/Ѿ_;·ÑþHYïçÂtD£ú¨¦;G§ÁC´±ûØ}^‹òr4NÝî€/AŒ5vgº Ø»šŒ’ÇüAn>'xø!Ú`™ù;§{¶ rÛØˆþ4$HÔ%lˆÅ&ßÜE:É´vÝ?­Fó²m ƒÀ_”žˆõÛˆ©üœ¸€6Œ6Ú‘ß&ñú á¾j*b˜º~ ï Í€7†?Ek}!â¿$úx(òý(š“ ‘ß¾ùλ‰¯qt—=Žÿ&y‚Ù:tϽ›p_~£ ô°¦ƒ5ÏD» ^€ØKgaˆç#‚° æ¹›ÄïÚ}ž¦ÌjÍû‹H0?éڈşßG;ñﮢy/2™ÿ¯½·±êJóý¿}Ë¡¼”—ôGyÑË©¡*ƒùQ6æbšòRzÑAtÐA›Ês1C2˜AÊK2ÄÁ4q0MÒĦlâ\â4ÚÄ4eÐÆ„8$Á41ÄP†4´AC QžûÇw­»÷Ùg­ýrªbLö÷‹ªsÎ~Y{íõò¬µž—;vâ«„øÍ·tŸo;ˆÙ×`½ɤÅÇqÈ«_eƒž½ï®¹}Ÿ¶¬ÿÙ:6 ì£Ú Ò•æKä‹ò™áÎIýÍ‹}ðXÆÛÑjÞyì/ÞGfö!ûÍÐÌr¥Ëä½±Éc=8xµºóC´*t€ñ âý"šg^RÜ 6§À +õX€3WÖ +±b¶¬ž¬Ÿþ>—¯ýîü—‘_9‚pCú5Ø™¾ìþÎBkîtçû/ËÝ`Åy|—7Á2Ù Väk 2K^ $ým*éÚ‡õJ…EžÁs áAþa°ƒ8ø-„o8às= –ËcàÀ[và\ +½O€ƒ‡~çƒïè€ÿ]òZg_;A¨(Ÿ He;Xó¢ÆèëÁnäÏþctõ¬jâ°Ü¯€í}.¸ºð2X÷²e[¹k—à3ŸËïç“|ývh7¾ÊS`ý> ¶÷#ÈjÚ¹çv1{ÉëEpp.¨Ê=»¶ÿ'Àrš‚DxùAðÂÑ)—Ž¡X¸ŠQf<+r{ïïEñó¾ö+of¾?öÇJä§…@zé¶à0×P=JÓ(^ÑáÎ÷šü ¤Û[pÍS`ž;Üß7ÁÁ÷^°Sºì°>Dº,}îÞkQ¼ +rÜ*Øjé¾ +/ÿo]Þž_bÌa„¥ûrà7ßù¾‰xµ'ÀÁ}ì$V»¿7@ñ`'’·¤¹ 옞ñpàÝvP÷#.Äxnõ'›®¸óB¿åñ>X.»ÀeÐ_¡üà?þAíù7R÷ü5XïbÑ&C ‚3úíhoåàªÔv°,»Âæë×›à`X•°“¹‰r³O(0ܾ‹[`»ºÏ}ZžŽö¬Ybü«»×!p}t¯]D(¨Ð^¬”/@KˆÕà»ØX£ˆk¬·sŸÛÄ,Ë)°ÍF~O=Ë›M¿—û#°îÿÈ}Íò7!‰Aòªµï4›|Z=Me¶ËŽ"ÒÚokëÎÅÆžvŠ{¬};ÎeF¯(±Áâ6èEJcF¶¯,ßõ$ŒZ‘;Œ +:;e‰ÃFmoÿœ^tÄÊkåwµ†·bûNcÌ)n¬1*ì\·f§+/Z¾¶v^ê0j‡¦µfˤF-ØN÷¿w„2jåˆ X¢ÕH=ÃX‰r )¹T9§aqº2iž±åÕÅn÷îÊÔ}oÇ^õ¹Óïñq÷LUïü¹;ÜýË*¶fÓ%ŠºUêQ±Y«UN‡Q±4t=߆æ~ï3*ÉŽZ\ñ­áÞMèxš¾ÆóWv祿ërß½»Ð1y÷rçT‰•JŒÊÇ—-¬ißÎ}:Œ}{ÖGÄ€;/¤ÜÎ9éÔmI?³¸ètÏ9fÍï~•³*)ky‹Ç–Yc+Ìå#dq5â~ÏSæ^’¹NÈ•q—±½·c95))ý¡á2{ÒØ¨ï·¸™DÙôšµ6šQ«fj•®@\«vT;,© þ9Ó/s¬Ä5zŒ—ׂõÎuÞ¶|3k~Áé{/ ”OÙÔãòýJïéùTžŸ4v0ãÆAñ² $Y³Á—,ñêvÝ]¯Š¥ÃHÅrhX9ó™X´Ä*eÈ(eµùî]å ^°|ÅÚ7uõV5ÏZ5k?Àž6¶©F÷öÂß;VÎ׺OÆNü£y]Õl™5;2Êâ­ Š€A÷ìiÍôç,núéMÖ¼5ÏØG™Åë߀±½˜±­û:²ÏØV.[Ø“`;±Rb©ËÂÖ&¹ÏÝž f>-qÇmµüþJAÏncJh¸—9ÑAß§kžýûÔé^p‘ËÎtòÎq£`òû¿L^ýjFú9ÍéoĊ헸·µ—ÐÊKàžµ×Ÿ *Ý îÞîuÅb÷{ŒwƒûÖ_€{HÇÀ=ç¿Ì9·Óå!½_ß î5Ý îUŽºÏ!ó.p?t%¸ô»À1àÌE4›ãÄ0pŸª,{õ\>v‚{F›PÝ¡îÙû½Ú,£àžcžâÛB°<ÿ!òû˜ËkÈ + †÷bUvß»î'þ™ïû@}Ž9à~Y™½ø“`Y^ßõt° u+ò<Š !Ä÷–ɺÁÎÿ ¨`áµÖ{Áòʃàž5{K3Û]o:8ø¥7ƒ +w!ljÐmç!´Üû@àMPÑf5šmüºãÜ +E +6›Aå£?Ê9ÆsÍv«îæ»üdŸeXfÞ5ìvpoÇD¬ ,ˉ˜Jõ¸|´Ù1f˜GÈ °Ëå!…ì,XNeìtWuÕ+«ÝëïQð½·SÎBq;ÙZ œû²3 Bi.Y`2fU¯!Ѳ÷ƒý´ÎîžWB|7¨…½ ÔŽuÄk@!"6ÍFûƒ]YGGUy\ýÈr ÔÞÙøw‚Л¸³ìœ…âN 佩ú $„ý %T™þ¼ ì‹W"nU•wîÝà¸Wu‚´I\ ÏÐjb?ò'3ýà; œ$w‚¤¹(/Rû]ƽìÙäî‘ù}ãì÷3Œ{“•Ý*)))Ýæ4hÔ{ùƨ32f‰~D¿QAôSK܈ç]k‡QÙ¯Š–¿ÇW.'-Ñ\Ö¨+äã”qÕ=ÛŠc¤“¿‡Lj´•À6KBŸ´°ÞH:ÿ×]ù¹óƺ^[-_Ñt;ÿp ï>^ÇPÉçÙàò[Åx:¯Yq†lZâîù´5¿ûN£’­Y¾¾×;&ýÝ…@Y´¤ÛÕH”””â©Ëª‡Pö©ÏÚÓ^eTšˤ׌J±1S­tž'òÌé3ku2ÃØ™dìØ}øÓì5ò?¸çðòY8I™h›+[Ž[<.À°•Ó”ï0 + Cm”稵*Æv5ö«(ªö'`ULê†\‡Ì­\P«Pþ;Œ“N)vî+F+öŽþ`Ŧã>=g¬'°öÌó¶Yõ`oÇï=v¿×Œõ3ö|>8š/ÿAw|a­úpJJJí¥‡,iÀ c§éíÝý ª¬%‰OóÜyßX5«‹§j#òûlcG8šs ïbƒMÌŽyÜ=ÃPà·¡‚<ø4jq«¡œë]£ìäŸ#–×a+ï_ãr›å™Í¿·œ*»’ºÂ(ˆí1`fÕ¬S>µVpß•± •¿OϺü„Lr;õ?ïýÜoåV5:-1é5«fëÓkV,<§“÷C‘'pmuÇäùñ+1#ÆvéŸw+ÛQ DO yõf&'Û3*1ÆXjáêFäñ"hAqô%?F@+•1Pd¢ùü¸ŸwÀu$qî÷ø÷þŽU¼ï PiÑÿ-CŸ»—w·Ú`+¨D´ôø¨œ;á8ìŒ^F¢ë+ƒÙæåäçhuqÔý¹“¸î½î-_z¾¥û ‚å< +*é.ž„kîëSQœÏjÐ÷?€õñeÐcé“ 7Øç Î?–Q–¥Ǽ¨‚€ÒêÛV6ÀZš_¢œÅ”¥ð±»^™X3 Àþä~P¯í^°>û–Í`ßkG½îo^þ}ü…ÞÈï`œê¬Dò¼@ï³AWëŠ@|¨ˆØ`7T²ìÍúʺA}ìbéЪà‚Ëçdpl°[&éz'ÀÆâ×`´³ó`ã^9nX©áþN4Ì] ùèrÐ +d¢<6ò* í;ý©c"?hËÏÀAân$ï'Ë^仉½ +¾ƒY ²ïHÞ4<âîq |wƒBî“`; Œ W–`^C +Å1vÿ>ÐRg(þ=€¿¶XûXWæ ÙÍ凞ގÅPšsîoÌ 109Ñ'×"q·~Š:â‡àÀ½Ú¥Y`ûùK°mß FÉÜö©!!9æJ:ÏŠrÛ +zsÝý/‚Šñ~Œù=(<…@|˜•§V†¹ í~»VŒ½à¬b +XÙ¯¦~Ÿæ>ç™!n;°sîÙüÏ;÷í ð"¶ ø¬_äLÙ vf—ÀN/9kºËcÙàH¸ûŸŸÙWò»Ä5xÀ}ŠÒU…Nð];ýwÝ}«j‰À†q +ìòžùhõ‘5Ç(‰¿‰É™I9ÞD~èè"fƒ ý ð½;Ë^#׈íìÉR5²Ù\$áV7‚Ç/Sù9:ö}ÄvÏ.°ž ü¶¬CE–+¿s×y ìx'fu²ñp™ÎºÖ‚ýß.p–÷>šû¯eà›µÐ +Ñ8@k0²«ÌvýêÃ=óÎ#?¼öïÁzµ‰ÙõZ”ðU†¢@EYö ù@R׳t€¨o“>ÊÞbä÷×üØáø¯‚md1ʯȔe#8ü÷y9’àqË‘„†g î¤ÏÁ%Ÿ€K¯½ÌèïÀa1(L<‚fg1¾’çñ/àÀw/¸ÔáÉ +E!-=‡P<p¯æäø©ËW¬S;Üs%®ðüÉòørwmþt1Âf”eØã®ñ’] N´åËq|§þZ·ÀrxI¸á¢kySGÐ:›Ýˆ¤î”e ¸Ô}¬ÇîÚ{Áw¹œ±„,eéQzÀîsŸw! }b­Ës@áã~p@îué.°M>ŒxG5Qü,ÁÿŸ¸ÓN n ¿Óø®ÿ1ðý 8£, +KìÙ –á~´gî:¬‡YŠ"²õƒ†E™kœû›*×j—[îÚ‚m0;àœry+2kžŠdÕÆ¦*Šf9 |ÖcàÀ¬‹ÛÁºý XFóQÜtç=Œ$RßdF~ õÕy«K»T~…+Æb°]¦ëÐMP )3 Ú +@ÞK/Ø~–€}ã,„È2A”üy¡UŽ™h~/Ÿ€Bû1°?¾‚œÀy!à°Ó¼V$/9¼8¶ +>’ß&„C¾‹rö—Ú /œ%(M¼Y(2ZÖƒõ4wýÏAi¶ÝƵlœsÀ÷)pYýsw¯‡Q>¤êXÙ§ÇApø3ð=o—ÁŠ8ˆd&>~(ç#`ƒÜ>ç„=E>vÆ7ݹËÁ²º‚Äa‡Â$V–…¨îDiŠÒÉX:Ͳ\†\‰â¨ïÔouï}°ÿùŸïyá(†÷"ãœ;ï w¬¿F6=ð픕çP0 Ýà aE+¶^ˆx|ŽÝîºyýÜ¿õïøö‚í7’PéÏwCHñXŽ‹Ág9‹Éõ¥ +UÎýí üv IXë+ÈoëëÁ¶œ~Æ‹`ÿõò‚uƒlzµl1X–¿uéM„ÇТý} 7B«l@«þ./¯ƒÏó·± ‡tÞx~*S—nUØv +!‰gXI{¿ýð ¸jHåä=áQÄ2°q¯¿Åñ¤ûý-”ð åXv8Áƶl}8ÖßV¸Ö5p} ó½áY•[`]›†dæöwý—A¨ìòùï]ÞVƒíâ(0]¬óþë¼n.!ÙÖ¹ÎÎ~–Ó.ý +ám·Àí±*)4ø_B²”z­mî¡Ôÿ^q± +C Àó0âe’&=«þ |ßK3ù(ÃM„ÃIµ‘¯ÝqW3× šE«X±ÕD§>Æý`|ñðÉeîÉöÉ~wü®‚s>«à^Ã+þ;’ºôS{Åü tÖƒme²–ÿ} =¿ì~«ÂÝ NRºî¼ +@‹ ÎÝ ®ÒÜ®–lpÿ§•ŽpúœäåXBØ—ÇHöý;À•ÅS`µ#vᘠ×|+õ9$™ÎF9-êN°CØùý)÷·êÀø}cÚÛ«Uœé(·|ð=-;çCà ä—¥ýÀ½‰Ç8+_l÷!h® ÿAw¯ªì+ìB÷¹l|íhÏûõhv¯ü;—¿§WNÌÒ鮵̓ó?ƒep ñçÿ|ïsA¡á`CnGx› ι¼É>áXÖ]à,ÈsⳎõk#ªÅ‚Hóï À·á¸ðß½îoÞ;;‹¤\³ÌE¼Ýwÿ à +Dv–ïWNO¡ÚlúX_7ÛUe¹ÎVC{Ùeð‚òjPø ãωÈïeü$Z¬ËXè "<;l/yÖ Àúþø¼§À~l=(œ”a/˜ÿâõ2°,ŸBx5íØ^v‚B‚eµ¤Ëç#$³„ˆMá¶Œ]¢Žé6:Þh”°u|È;؆»Þñ”}bèú±ô´…Ã÷v:ÛÇa£}tUûÍÛ‘ž´jQŸÍ”Ñ‹©Ï¹tÁŠÃe¦C)ÇœrÌvÇì³|;ä>£“ ³°Ý/Œ6ÅŸZybã©ÿOZbO½Ê7FGfåê[—±~äóŽÑæºÈYF‡+÷˜n§{yŽ<²iÈÊ… .“ª:pe“~WϺü¶fG:‡-ìܥ˚£ú°ÈUÎdß}úúëÙh‰kŒF®ãËÚ¬=?>=kžw÷Ù`‰Ó¢.W~ã9åÒmIÈÞwRÏÛiìËÞq÷Ï K—ÿw¬8Úi6muçµS»Œ~^«x^,ÿËŒõ È3ß +c¾ìò>æÒã˜Ñˆœ÷œ±ýú°ÚþûAc»ÿƒ»ÿKn VÎÃbQÚ`l?Ry·$äöD¯L±Ƭٙe~ï1vÔe¼+u»ñ§á®·Õ’²yaW³i%^ºÆŒ•íköfV%ÖöíL/Yµ¾=îY–;ÜF$•étg¸÷•7àõ+à+–ßÙõY±˜-Æ÷z‰¼§þvï´Û•W#õ½Y±àÿ˜pâ“(òÜ[ûÁÿÅ‚g½ß]«¬#Ÿ…Æ:›(úO€í:zÅ(Å<‹uºßcx—QàyÈØ1åŽoÇÍxäûc=-qÑœë ¹2jóË\>B^Ó©Ç•ëukæV¾Íoµ¤³_åî]ä°ßX?/¸{¶¤Íí±ÄÑÒ+V>„s¿œÆTHÏ[¹vŸÍ¿øFuoÜ80ï(QJm¤Ð—Þ¯rz °ÔÿKÜ‹);ÈŽX³DvÒ]o8uÌé <ĸU‹%ÿ]¦Ó–ïÍéNH^Ÿ„¼>ddÌòWeÆSÿw¥øk^-Yã®ÕȹNŸ±®=Z"oÆÎy$ò{Q(ZIç¹lG?ÃZ +sßm.y ÿ¼Þ}×¼Æþ¸±£µæŽ÷¤{–¼k®q÷½`íÕ“A£€wÝ88…ï)1¯®Æ?¸sßqeû޵ºÎ^#6m³‰y;TRº#Sö‹NcCI7ÆFŒ ö²•÷«<ÃØ€ÒÒ[Ã]o8õ]•àÙ4n·GÈ›aͰâ¢ÃØÉt;îevçnUx!à£I¸Öfã u½à¦?ïsç¤gçÃF‘k,4$ rî“MK,¼z²ÀâK~yךŒ¥@%%%¥Û’Ò +'HšÒö¯^±å]PQ%˾ˆ ‚K‘)WH;쎟 ¿ÉćJÞ *~eYæ{*¨ìãݳf•†¼É—g*¨¬‘ÕFß–s‘ÙÑPiÈ;ºèþNÔ¼ñCP!©¬ w¿•Š–~•gf^ öïÏ Ù+×$&6Ýõþ!s­wüyżÅì{ß½yMƵ„âŽäGfÐà~ppÊÚlwƒñ3 FsYzÜy‹Ðl>Ò5+ïC«¦ð8¨ñ˜uœ² ÔH±Ö]/m"âÄsà@–ç¡}-×][+ÌãÉð-Ð jþNoŠ•ux”e»W!„¨;ýàÄm’þôZǹ­à$n>ÊÅ 1 +öÁ3ݵ&â9w²®ÕNâßGÀŒÓ ]ààUÖl¡ˆç@‡BSAÓŸºï·3¹Eàl8;C^ šÜdØØ€xùvÊ…w +ÞhˆsÈwƒÞ®4.vŸŸBxÕ)v]{\~µq&8Ü„°Ýÿfдì8Ñš ®Ü=9~»þ,Ðly:81Ü8~6¸R¸Ø¥2ެրfÂE&’£îš±2Ëh1Ê­@o'‘ûÁUáà;ùkp¼zÀß”¸@säàêæ?U¼VX¾;Áñ»ðïri©ûü€¿Ëžì·&Ó[ øYþ­î5Ëð5ª¶âNcì,Böà½àÆ¿•ÁÄè;ß‹L±´Ã¿ ‰;à3H¼ÌÑnÓA±+Z Ù]r78HÄ|‚,·¾~ N\¢~ÎS ‚ƒ§÷˜v,ÃЀµ \¼éÒtp€ XþÚ{ÁðXÖ/ u‹ +à;^ø~ò €~TžßAÞ 8|¶™ïÏEŽßú0ðžûÁw}­1üÀô÷Ï›Áê ÂŽŸ´÷U?ÛÝï,ZëðrðÝzUEž»Üõ«Êá}ª”ñÓÒË`½»¿/¯Yà€íÛMºÝµvõÈ{ ,{­[îþWÀúzÆó®ËÛ.÷La/Žßµ‚’RMÒC¶ý_e¤(nû¨ÅMÝòR‡%¦TeÏÉÆv÷×-yþ£F%Α’ǧËe[Bl3šQzò?\^5*|.q焬˜ïbÀ}‹ñþv¦¬úÝñUBóN½mYåÖa+ÿ®;ÖY“½ ‘k,sÏ–6wm¸ï†Ç÷¹ß–d¾?i´¼ˆåkÈ×(È¿—ežuÔòÛ·2*cMsسÐÇŠñ³Ý5FJÌEy÷iŸ%~9ö-“m\+m>ü¼•Tà.’°„8£[ +ÎpBnjCt‚úçQ]©³ÜB:ƒbw½éòP‚’Õ!„gc¡ó¦ âñ:8ëÊ*°¶;#ŸŽVÿÝàŒêÊE ˼¹áî0Ïìyeg$=h ’t ,2ž'Ág-ëñ²3“·ù(Ðt|îÇÀÙ|Þ½–‚ïõ1°Œ>gŸËÑ1tøŒéwñøÞƒ~ó³Ü…Ä“)À•–‹(¿êÒ—hcn“Wʶ; |ÙpÌ…˜ èWѺE›§“óaŸç5±,/! Ï<îþ>‚ö#I^gÐE+ ;Àwîc‚ìtùxŒZåþ@/‚ÞãåÃ`™ëb•k¥ûÉ3(å´¤”òCK~12kô9éì´%vóÞ+_;ž›†Ý5byê7š¹}eœŒgÒ7–ÂÛ=/:NJÌÊ;»é°Ä—PËÎbúŒ³Â*þ!F­UÂ_áò\ñyß1ÎdzË"Ÿé´ÀØ'”5Íö+$Cß6¸ß™ïG#åìÓPä¼lvÇ•ÉgÑ=9¿/4¾Oÿ<Ùga¬yNÅÒït…;ök]Yê²d…¤]ßO[±ã*˜%~µdIí‚q‰c†{è1—Ñw,Ü µÄÛÔG–¸L<YØ9Kú˜ë–8 òžþž·¸ ÌQwÞ¸KÞ=­ÿì]߯þqãKk§€½³¤ÃÖjËï—tÛ¹îóîÜ<×®£®¨¯X{VÑyÙg.ª”ó,é\Wßç“ÆçdÎyýÖ, ŒXÜýnÙçëqå9ÜF¹\°ü5v^Ùä—›cKËeï÷¬+ÛÐ93ŒméWöŒ‹÷*k[_¹s†*>Ó¨%߸å Ëg4pÎf÷LÃÆzõ¢%®rc÷Ùá®W&ÿ#îÆ,îºyÌØ¿ùº»ÅXæe<×uºûÅÞƒ_âÞaI{Ý8¨Ç¶Œï­al‹YñvÌ€{Ž·­º³²çܹ¡~aØå¹‘ù~ÔîL Ö?¥ÝŸ‡œIÁØç]¶bÁ¯Œ[öc”k™g)s¬ôOnâ ¨,ònIÁN9 +*(…zþ 4µ»*BxûéA“¾³îÚÿ8÷CÐvû¸lög.ý)¸ä¶qs½éಞVu\úòŸ½ {68„çÂÚ²KÀ奨yp÷½áò—µ2ðvþ=9ç‡è—%÷¢z,t€KØeÂ)—=o¨QÚ šMúaOx \v›8ï ¸”5.mOui#€Ÿääã<øO5}dÁWü\~¯ÂD¶¸&ý2NPùêÂËÊU8$Z\šp)ý1°íþlÇÓÀåäXÄ;€m¾loƒ&RÝùX.£–‰èóÝ Ö‘åîÿù.½·û©î>¤ø_}Ì&PA-„ßN(‘§÷Á¶°,õÝlä‡ñ^ö™§·îA±ï€ù~ñ÷àï; ,›¹kÏÛaˆ÷À-·OÀ¾é_Á>)/Úܰ<7‚ýÏËV”Èÿ°ËÏjG +¼Óùñh‹ƒå¿ÍÁ²Ò¼ê~{ùAƾÇÃõh|êù´–[ö±ºèè*¸½4Z†¬sùj—Òä-°á¿îMøŽi7Ø¡çñ9¸² Ô:ôæ„Áý«2!Ë'`ÅŒE›Žd¿×“vœó9Ø0g"¾¯Ú¿šƒ$¢]Èb¡lä/#ü\×ÀΫêrŸû»«ây]`å|Õ¼p.vÞE°üo€å|7X7^;¤—vTt ‰Cž§ÁŽq&X?îs× +½kîšSÀŽø"(pœߣ7g©¢Íî)ªpާÜZ{ìëY^œú²dc{€ïö×©ïæº{ñ+$Qýp×Ù ÖÍì¾9D^¬ò<·À6îÛñ—îÿ3ˆ[<¾Ë7‘ 8þØihÕYvÊ7Àòð: »Ö¹x¬ßG„@¿ÖßXºÖWo°î ä'˃(÷>þ1õÿï]þV—8ÏsaG\`ûZéò–g{>Ö‡{1yæãß5»s~ûØ¥<~öûÁ¶ó Âfè_ Ø§Î‡à$øX÷Ö#‰ÎëyI½ž +ÎsÀ‰Ó"$ÎÓæ ‹þ>€ÿß_ ø·`#x”ø×­èÁÞ4K5 ½Xîž+ˆjëé¹ù +1i?= ÿ‚g@)ø@äœ^$ƒTŒŸ¡Z£è;ª½Ï8øoÐ*ç.-8ï=p * +M;à·˜›ä™_ ”·ÿ=á®u ñÙÅY°¢þ¸ÞëÞ\pfXä Ã+É‚«ƒ ¡ª/ˆ—ïv‡"æïz'&þÚ+g†êâ&4þ}à[V!óø~ vDgÁúZ Ø ÖÃ3àÊÏ8Øéø• PÈðp†2Ëå«Î&ýÌ¥#pÎ-p…!=Û ç9 +ÞÉÙ}.Åú[ íõ4°ïX +5Ó‹Ü–ýûî¼?ßÇRÄCŸ{–õ5OáÑ ØÙ•¶²aÀ=WQmrpqÇkëÒ°lòú€s9¿ÅfÛß%eW¯òøWpÜ[„‰÷^˜ +*úfÙ +êGÀ:÷.Ø·üÀŸ YQÿÿl“›ÒUŠGÀ +½ VŽ ñ9(‘< Vþå`C›ˆtxâq{yÇx»Ýà [ æ¿·à¼Y%î[¿Ü™'¦IkƒÏEù˜íéóæ#fšàgÛƒ`]ñzâ»n‚Â×ð®F2à=Œð`>áíˆõ 4]Ä$+(ÓÁNüØ(~™s^º\zÁzï¥ëɤl´§Ð¬9p@¼‚bm~ŸÏ9`>¯ ¼\ž½ÎS(7Û ù x|g'ÀrͶéh­»'ÀÎi/Âý HlâϮ׋r’¨B«y×\ºü•…,éñf÷÷Xà¸{Á÷p õÝoÁÎzqÁ=DÜçœû;ÍÛ‚±Õ©uîš½hîÃæ ÜG,ëãj4Oò¦ .dtƒïn#ŠWãü«Íe?ùÂÁwÁØŽVcân½óÜŸW%Ï-ûoÀ>¡ŒõÀ:Ô´½>F²ä÷ª-ß?V ŸÖW87Í wþQ”«2ÍÝc>ØQ=ŒÉwˆT†p€Úˆòeè–ƒ¤êykß^ɲœAùÎj>â+ ‚òïø÷Ipq h°V¸ë-‘Ï›©û|®b,Ÿ9OH—ËU/ݶËà,÷´vü'Àö’gî•Î'Pn@ëÛÐ4¯ĘïŽÏêkä™{}Ö2» æ7–ÇõàÀ´ ‰p÷8€EyS¶õ(6½¬‡UéÛæ)„…ØöKÞÊ%ÀôJÄ÷“=ï‚ÂËJ4¯bÝ‹ðìò"(,E²…Û +#ûÇ_û€µH¶;»ÀÙëëã;Aúø|C©ßn u‰úCwÅHVžü–ea´,~hZ…Ó~°^-©ÃàªK¶?˜éÎéÓ´Ã{hߥp–OoGÚ~‰UÒ÷Á|Ê{(<;#¨æ¸l Pª?JcßVg 0ŸU=V]~ˣ옡Zœ…ô@w +å€ôy¡Á6„ÆÒ3ð•È,%¥X + +ýH$ýì>t¬ ßBs'Ò…ÄKV»JFgØìÆH—ËDñKäÙ†ÙëÛn´v 3Àr)Z­šOï±ì)”_úïÌhn{Ë]þÊÌE|¶óSHži8Ó.ó®—€B{/òßï$nÇ™ßbeÙ Öù]àL.¶úäËbšË×»:ñ øÜE[S×ܱ»Áò?ØÙ­VÏ`¿û„;~*ø.O <‘ú ¶»ëNû’3Ð÷‚϶­zaçv³{¸­º|‹Aa>$lû?Û=ŽE‡¶‰‰ŽÏT°L²õüCPY´ˆ¿CÀUîо\ïzrª NÁ—Ú³ÈÃ[σ•?d=0Ydc”áœûÛ›sÌ2°ræ @}`?‹ø`Z†wÑ^`£ì`‚ò³§}à 0ùûe/€ s;š%ê>—×2³y/ÅÄ4å§ãÛÕèÏòXw³33Œ¥hÕÈöe\ËÎ`Bxë‹*«x¯»ëŸA²ÊãµÑ7arµ½ïFóJÒ”×Bl'ògYÛÀ²Âæßm''ÀA4oþpÅâ(¸\E²ª–·eõ÷9¿eù%ʽkÏ_T8þÖ¥2¼p™åñÿ­ä±¿@µ ç{þ¨b~Dš€màã–¸†<îl'ËØ´fm8‡*Ú-fm4_3ÚÓNäEÇ·ac £íqÞ½.<ÿ +wÌ6«nçYõ9‹Î[ùÞÛ¯J}çû¹­Í>룮Ì.}9%Ù`|ÿUì‘CÏ×i¬CÇ+ž7‘ò/¡=+‡Ðlîéu…#1Y]ˆ|ï°_#ñL +P ð>I²~M¦ ßÒ+­ç3ˆf«¨ý(i}GU¢]ò\²æ‘ÒÒ:za÷±iv ?`S€‡r~ïM¾òj¤™* +8yÒ}?€Ó.?¡àHyt•¸ÿ °3~|€¬%çA$³ò• Rj™à/Ëí~0ß"é8çƒ]V©õçàòŠö(ˆì¤+îóZÐñŸƒƒò9÷ûAÄ;øåî¼i ¯ó¿tçþœÍßg!³>ï oœ­¾žÊï½àriþà€Ò ®d¾ –Ç|°|—¢œmùz$þÞc +¤}`ÛðïéWHâ=üòHyÁ2_ŒbÙ™æÕÀwU|¢øØí:[; +ƒîóZ°ÞÞ@ÁÇhÉãsðùŸSo¶yÍʼ÷ n®|‰¢÷*´ + +çð}™\ì9(å§>ËW|Ö¸ŸäcŸ/0îm1šÃ]0î[…öðºóÓ×ï2î}]·æÐ¹eR‡Qi$o¯Í§N£nF“¿ã¾X¿ËgÃåš1ã~]ȬïiKô>Ö÷4‡¬x_t%±ç³¿õ¸¼…æ\eTªùƒÅCêfÓKÆ}Ëô{yÚòëAŸ+ÏÓ.ϧ-‰Ùú¹Ãø¾³±è7÷ŽË¼ËPü “_Ê4Ú:–§q#_ÃÍ3fñð¤3,»Ç=ë“m[Ù€”oÛ‰xøÂ.0„äPšÍ~¼¹ÜÓ ä;ºÀ ?±”e8ãëw×h€KL«@#cà²Ø1ÄŸã&(¡Þ¥É] ”zœÉ—6{ç¾.#¦Š\÷¾¦¢º©Y/(ýç1ò| ÎFn |ìƒ÷,מg@w³©gÀ™YȇùpÉ $¿‰Oî“ ÉÍÂÀyÿ>Ï4¯ô¸ïF¹à¯»û—y± \6ôn®ÀAž9çðÏ]Íg‹öþ· œîg+YGQ¿—Ÿ‹ÎxúÀö´Ã]+ëÐçUp&ù:ŠÛù-—§íî9BÑ«ðXß:ìAs{ïÛ×ATsž¢ù±/žB²Äü%ØÖæï¨l@3ïº÷´µˆÏÁ•Ž¥`ûº…âeÿ.Ï‚ÎÙƒ³öv Ý ÛÝ’H°‡Àçj€}b^¹Ïû¤íHtO¼ÇÆPð£X¿þ1ØwŸëUÖëç-Äõ"|{÷}Úë0ÎBc¿?kù3Ý·³½k67J߯ä?$}ƤÅPzÎXüs<êž7f ²%ò<[,îŒg‡K}FéÜÏNÌ•[žÆ-¬y% ìÌ?›6»óÊ®ª¼dÔ†±^罃>÷,i‡JKÜ5̳ËNK4Ÿ7G®;ø1R"¿ÆYYþ,ø9÷òV%ÚI"Ï™MóÜý·ëû¸µï¬+›¾²j«f]Æw¼¦Â9OZ¹>2†,®mK;Ü»,šÉ¯1¾÷tÝ·|35¸kgË}Ìš5ùaÅ+Û,™6ܳ»óž5¶1c?zÙØßç™}¸¼=oIØi|·‡y•µ¥Ê£áîÿŽq&î§—ž7T_«ZœÍ¶ÄŠÂŒ«ƒî︅ëÛ€{f3öS~ÜÜç®uÙÂuÈדhýÊ~Ñí2bÆF;ê +užq Ì3L'ß¹½flÌé¥Å÷ Ç­Ø&þ¸Å;À2)}ý Æú±Ò4ܵ¿²d9(›öX~?é +¹Ýü½hñJæ—>ýRߘqéØ¿Ÿ“ÆN5¶¼3äÊÝ7¾†±q}d¼ÿ‚ìy Œõ`™{p÷~ÜXñ.[¼ GÊë%‹']ùY2¨Â=gÃý²¹M'/”ü·Ð%ÆŽÃ ¤#%ßÛ@êø¢Èëó5ÛØ.ºÜ»Í9·Qpí~c½~­Ä±þÞy¿wëF‘'Ë*iØ=ÙÁw¶%fÁeÏé¶ü%Ü.E(}ê1ö=eû;ÿ®¾2 +|eêŸ÷ò‘%mª¬çK/TŽL¯[û@ö~ÞÃgì:k,á+K„ˆ-Æ%ò¡TvePôL¹”þnÔØGM†|›ó|jlË=–˜¯jìóŠL)ôeQBJ7¨nW8UœØøÎ¦Ë×aÉ,o•Ûs³b;Ón‹ï]z¿ÜK}Ô’Êßáò1žsû-öyÁš¥ëlÚflÔY x›%³é˜€³Î“î´.}`ÅtŸ±Ñy§FϺwøŠû­ÏÂìicczÑ=ÿW©wõ´åïÅ[«Ï†nw˜S1ã@ºÄš…KcÏÚãò}ÒÊuò[Ý5ëæ>wnQçíÝ#¹r5Köõcå2äŽkX"Èùú:fÅ^QòBÀuKöG'’ºŒõå+/ÅÊêE—¯ªBü€±Î”ovå?d\ïwy5 +G§Ý;(³úµÂØ'Tìgû‰m}(¥W5×ëÞýÆÁ礕Óx§äó¤“ïÇ9åživÛýe—¿wìˆû|ÝØ·ÄË%îTñU—µÖz¾ÌòÝ}+ERÙ¸]Õo=Œò¤±Q¶jKjc–?ÐuY2 …~÷o·…g¦EϳÌâ~â½÷¦<Å©AcGjÆôŽq6ü´±}el ¡sGŒÂÅVkÔŠÊŧ´2ÓˆËËhÁ9]Ö¼"â—å×Xñ€0ÃZ…©=÷LûêÛ½“.KfýÝ–¿^öÏS Ì&/ >iÅJ|éwÞpi«%« ‹ 8CF¼RgzÛË/=ViO¡Ô°d›®¬Ç΢:à•MËž3Û8€lpçúºÖh3ÃîyÊ(&zå®o,Y•[bìüûYhù3ì~—ß«6óó«HUâVì³D€¼lÉl»ËXËÜ?ݶ˦½Å£ô=MeM|Ô®vüÖ¿Úú>*kLVx_¯ìµTÊáMO*JŒ€Ê7ÜçY XÌ$&Ï9Å\$6Ç1~‡ÄÎ4t] ­rŒ«`~³¦3SQ.nµWN“|ØÏ<®¡Ù9Ë ð½íE¾=3Àw›V~Y–ož­ðYб@¥šýH gƒeSÞŠ)ü•úòLŽ.‚J¦«Á²)S·ïB¢P3Ëåû€ûü.Šj>Âßn°®¤#k¦m’'Â' ó“ª…àŽá•McʼYEWã +¨˜u&ÖÖ–YHq4Ë—`›–sÏ"³·«`UUyo&ªGà‹…ž½†òÊŽíÄÿÀnã<ñ¥¬0‰Öe;Ü;ÈÉü€Ìn¦é@Ôèšlì¨<'(1 ˹`‡^4pÄ:žòã»ßDâ(%M'ø>ò‡4} ÆêƒHâ‰WáMPó¶¬GH€y|Ä·ùƒ’Lüÿ»‘h]Ÿ…‚lìq >ø{!%OèËõ*¨å}Ô¥¢úyØjŒïJ}Ž ‹ƒZìë‘X;Êfš÷“EÑ W•²íõÛ +Ùý_+û5&¦yÿY›çU •.~øôƒ“åå~9Æ÷?7Á1ø]„Û‰~¿^@ÜêæqÐb&6zK©¦þÐ ÈÈîv7ŸvZS]¦Ë®ÌÄäÄdï‹AS¦¼©wû¸ì¸/¡õ…\A¾·' ‰07æ qý94± ÅÓž@ÿâòâ]…Îq×¹€Ži~ +4õÙ™ù~-8øçÅ)÷,ßÛNpF5„d¶]–wA©N”ë`ÜýŽ€YŠøÀ߸ÿ§€åó0ŠÍËö#nêçëÅ^´¾›>—·×‘ÌÂŽù¡Ôq¡ÁôëÔ÷—À÷X4èv€õl/(€Woîˆßœ/„¸ý #î³äM<÷ƒ™½`õ™+AÓ?ïÑòy$Þ Ó¬'¿û‘÷ÑÚ/€ýÉ^°o9„°0q8n4åÛ ‡À¥L? ú4¸îmO÷§Î=úhNó8X8Þ~¼×ýõ3ÖÙ.³ÞW÷4° b3DŸ¿Ùà€ÿ80ÎGqÇëW-Þg”ËÁ•ƒ9HüwyŽòBËQP +»‰dIîYböøgÁBßú|Ö]ç’;ïø’CÀ«`ÏG2H ¸ë­ ŸÆ¯zÜ >÷yÐÆz:â+1Þ¾•(Þø\ëQ}»¨\Žß‰rÂÍê‚{ü;Âïv9X®é%Ø—]zÂ}> àO"×m€B¨÷÷"(Lü"rü-$v᱘BÜé¬ÛÈ=àªÞn°/ÍöÝÞsåU°¿œ +ºÙÉWúzY/†ƒHúæl߸ ù±Ž¢uµròûÌChm›¿r© +÷ƒ}í¿‚}ív„Ý:÷¢yEý ÂÛWÓ‘x¾¼–g–3`yßûèÇ"y;¾³ÕHÇþpÊ+Œ +4_µ@ï7*þ…ŠºŠM!e>¯]å‚%¦^!ÐGï;QPèrùñZé'­ºi’W”³ÄtdĨ|õŽQ)«H‘f" +3ÝFå´ÉЀ]èò^ÆÌ¨ÃÂÞ©^4*¼U½÷ª –ƒ’’Rqšaìãb +©=–øè0* † {ÍÛ6hX5wê?¨ôýY(~ ’vz׋DÑ44{Úβ.³Žóàl2æ÷Áã—Kσ˟×ÀÐÀÓÀYos± îžÙåµíK÷[À´Þbf.8;Ü>{HyqƒË›×ö}&•ïsÝ1Á™²·H8‡pP“Ýà,x¥ËÓA°\³3zÏ-мm8Ë\BáWðgêe¶þÊâWª’^ÍìËäXÁ9ÀYöN°¬¶ƒ«Ï ?ˆÀåÕóà{Œm|ZÓìgú!Åß.ÄSsçº{]Ax¥à +Ñnp5¡ \BÞŽð*ï=àvÉE°žN·lBÇú%è/(Ìfù?àŠÔn÷÷šÍ_C×˲Ñå=V?c|Œpß·mPo¾k ä{ž:ŒÊ‰E©ÏšÃÞ´æ Ùô¬qö`–HÓ[,ñ[§àóœQrÌý=nñ™_ŸQ!åwüÆXHBî1ÎfÆ-qûúËOh¦±Æšg ]–5 +åÅ{L+9½må=IÎvå•vºÕ=SžKëwïU–(‹fg">xPèü}Ög%Ϻ÷R:õ +š^kÐX'b^ýF-ñrék½ÂiÈ­wÁí]ëîpù+ò8Û=û¸åZ¶du!’ïΧ=61wÄpù¿`œ÷[±—½5î]Uñße¬÷E«Þ‡(~ıN幟mIýé¶øÌuÐ’wÛ°ü˜ +ËŒý÷ÒzxÊ\é{’ü?>òا–tÒZ¨"6À ;È“îi_ÑeÒDü7{ÿÏ¡Ng‹…—ÚzŒ¼ì’ˆ“×€¼ø“Ç¥ÓÆ6÷îÄ‚Ù,4ˆ+Üç÷üyVcî˜ÎÔ9¯X|¹ò´%ƒ‹//³°Ÿû!£pa–tO[è&T–iÍ×t`¦P^îÚé2Ý`qá%›†V$ÙÁþ!÷}Lr÷ýƸ|Ê_¿;&t¾y‘ýþyËä}ð¿èþ_cI°’ì±#ÆmÈø>7 +%k,.Dv»ë{aûzW=Ö,Ô¾dñv]ÆE´c9¿Ïs×jXâzú¸%ÂèGî½}já¥á~÷LþüuÆwý¤Q€ñô7ßÎXeIÜ +è&ÏJ¨Û¡Ò»)*‡,Üþ–Y ‚Ï(ÝY)ý!™l‡5wÚÙ”­Ì[ÒvÙ Œ·‘é>c§7fñ™Ü +£à²ÙØñ¾æžå9‹wzéÔáÊbиÿwÙŠÍïV¹òxÚò²Ÿ„$ýË–ÐåiWf]ÆN7ÖÙÃ’Á{8óýæH¹ÏsÇgËôã »YuAn¡åï+Ã=ãuc½ÜR⥓Û»=lù‘Û†,_˜óeúÍPéq×XcˆÆ­8thŸq€òÂ먵F>ƒ{G/¹|6, ›pçû²É +oî™c€­–H3ŒýFžÀéãøãËÄa˜s%¥ÛšÒ¶;Åt£³xÇÛiì†Sß )›ñ +ÇvÇÓ–¿LæÓ2ã¬|¡%¡pó"ûùÛî7Î6†Ýý%îÙáî3nhC«C®ŒB3}?]¿Û8“yÑŠ#¥ùûdô-‘w´Ì}_5˜ŒYµhoÆŽ:/ª`úüê”:V”??øçmËøp¾eòJë,^w—Å –„”Ýcîò¶/:Œ×q÷ŒƒÆw²ó†qÜêžaq€.ë«¡#ò:ÝïÊûYwíØÖE#“BÂïH&U‰*ª¤¤ô-¥ô‡ÙÆŽk]êsLÓ3”- %Yöœñ’ÇyÍÒ-V>"áÓÖ*(¼mñN²Û(`·Ä9ÅÇ{¥-g>äʨømÌŠYø¼¨õ÷9iI[ŸBKÃîøªÏj–¿?œM#–¬b”=§ß8Ð]·üÕˆ!£Ð–·2âÓk–/Æ’é›'ô„„”ë–ÿÎö¹gó{Õ§­º´’’’Ré”¶ø ÔÒ^jr®Eé,Fh‹ºÔ>Wp|Ö%ãã©Ï!—Œ=H´X^pý4SÑjzñH_‚QÀr¸´G9= +±´Í¾ +jOçi±ÎD«#"[åN°üŽ‚ÚÉ‹PìØd}à>!¼mël|{>|œ€¥H4Ü×€ìY·›ýƒå裤Å„luÇ/E9íá'Ö¶Nãc8L5®ïEâÚ4T/º@Mêß ±˜ j¡OEÜQǰÎü¨µþ˜{ŽÉˆì'„AþSæó°Sœv@GsΚL¢D~h\€ƒû§ÒùÌç¯ôÏÁô^ÇÁA¶ §Ðìü¡켋¼E½ +Q>jè Øyÿ9⃿((OQxØÝ 0´ ,“˜ ?!/\ï.º¿!Ó¢Ù9÷)‹7o;ˆæÁ3æ£{hZ–&{¡tV“WîY^E8$kö~‹AS©) ×O +¯ŽÎhžßÕ½H<…xl?ºõÐà/„ø–ÉΆ_ ÀÁ9Ï^Ú{×z¦à¸Éà3°ã]vÂïƒm¬“ìvù»ÀÛH¼S]B2CËã$6»yƒ„ºó ;þÏȽÍír4{M, +» `üLØGœ:‚ð ÿ}ð]>Ú1ûYý÷Ý_GŽß Ú^ûã—!@¢=î‹ SÏr„WšÎ¹üGâî.„mŠo¡¼›ä*|ŽêA~ÒÆ}²u¦j %!„¨LV¸vÆ;Q¼<ê™ @~`ñ” […·Àv‰î½hí0wƒƒÍÁYü4P Y˜½È__ –Mhöœæè¬ä”w4ágx{Aáä}‡‡}Ús +Àp@\>×ëà¬:ßàkpÐÝ >ûE÷L—D²+:~*!YÀ•€Ð´ú/OóK$á/ÓüMà;€ïçÇ9×B1~dfÙïæKÿÿ­àÜ.pfé—ŒÏ ñvö>(HÅt?ŽöýýwVH/  ìBÞ¬òö¸ý vœqžG²4+„Bü` B!„ø“UB!D ¾KÆAyŸÆ¾Ûì!D}ðÝÓŸóÛfp`|4ð[€†û›eÀ7`ŒoxÀu„Í×€±OÏ·yÌ0šól +œóÇ~”J8F!Ä·€V€³¯—ÀÁ"ÄB„íÇC4oCÿ¨»ß+áÌçÐyÏF®½ÀI0ÿ¡ÊÓ à4€ßÖ€åW‘|¼àpε«²T˜Üù½×ýøm;h*·7ðÛU÷›÷9pÞ}9¢9 +jùûôp›Çü +̓y6Uq¨$„â[Æ›nMß¾°aMù{@S´—Aó°Yîü9 S›9 —¶ÞÌ9ÙøàÝ ½üRwüQФí÷ S˜Ý|öƒ&†ƒÏ š9f-h…ðqÎ3À]c&èu0ËJ÷lM³¶åO¸ü#l¾4‰«ÂAо½­Nlv¹ûÅ#Ïò€?I}þ{$þ²\C<î|•c„B|˜’úë=¬ÅÜåMüMþN€Ó)wÎ%´zi;¸Îtwî{.MsŸÏ‚BDh°ûßg ¡ë^Òó ibÈcÜBp`¿aáàhZxÓÝ+ËïÜùûAYÛÿÿ@Ü®½¾F|æüÏÈ·»B!¢x3Àap}t ³Íïì²NoÊÒ +ç‘ïm( ¼ø­t`äãü[à˜APÐÈs³Ú +y3Þ~ÐPûB!ÄGÚ€„5¨ !„?päH!„¨!2B!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†HB!jˆ!„¢†ü_ÏÒBüLÃÝIEND®B`‚info face="Symbola" size=-64 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2 outline=2 +common lineHeight=81 base=59 scaleW=1024 scaleH=1024 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="symbola.png" +chars count=187 +char id=9749 x=135 y=333 width=63 height=61 xoffset=1 yoffset=9 xadvance=65 page=0 chnl=15 +char id=9752 x=366 y=396 width=57 height=59 xoffset=0 yoffset=10 xadvance=58 page=0 chnl=15 +char id=9760 x=257 y=0 width=46 height=68 xoffset=0 yoffset=7 xadvance=47 page=0 chnl=15 +char id=9785 x=61 y=579 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=9786 x=183 y=578 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=10083 x=984 y=200 width=35 height=50 xoffset=1 yoffset=12 xadvance=37 page=0 chnl=15 +char id=10084 x=266 y=697 width=58 height=44 xoffset=1 yoffset=15 xadvance=60 page=0 chnl=15 +char id=127744 x=736 y=266 width=40 height=63 xoffset=4 yoffset=10 xadvance=48 page=0 chnl=15 +char id=127789 x=401 y=637 width=64 height=56 xoffset=0 yoffset=14 xadvance=64 page=0 chnl=15 +char id=127790 x=697 y=331 width=62 height=60 xoffset=1 yoffset=10 xadvance=64 page=0 chnl=15 +char id=127791 x=0 y=699 width=64 height=51 xoffset=0 yoffset=17 xadvance=64 page=0 chnl=15 +char id=127792 x=456 y=202 width=64 height=63 xoffset=0 yoffset=9 xadvance=64 page=0 chnl=15 +char id=127798 x=523 y=695 width=58 height=35 xoffset=3 yoffset=27 xadvance=64 page=0 chnl=15 +char id=127805 x=825 y=330 width=60 height=60 xoffset=0 yoffset=11 xadvance=60 page=0 chnl=15 +char id=127806 x=259 y=268 width=60 height=63 xoffset=0 yoffset=10 xadvance=60 page=0 chnl=15 +char id=127807 x=322 y=333 width=59 height=61 xoffset=0 yoffset=10 xadvance=60 page=0 chnl=15 +char id=127808 x=0 y=269 width=63 height=63 xoffset=0 yoffset=9 xadvance=63 page=0 chnl=15 +char id=127811 x=305 y=396 width=59 height=59 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=127812 x=696 y=0 width=64 height=66 xoffset=2 yoffset=8 xadvance=68 page=0 chnl=15 +char id=127813 x=61 y=397 width=58 height=60 xoffset=0 yoffset=11 xadvance=58 page=0 chnl=15 +char id=127814 x=946 y=265 width=61 height=62 xoffset=0 yoffset=9 xadvance=61 page=0 chnl=15 +char id=127815 x=584 y=635 width=56 height=56 xoffset=0 yoffset=12 xadvance=56 page=0 chnl=15 +char id=127827 x=121 y=397 width=58 height=60 xoffset=0 yoffset=10 xadvance=58 page=0 chnl=15 +char id=127828 x=0 y=334 width=68 height=61 xoffset=0 yoffset=10 xadvance=68 page=0 chnl=15 +char id=127829 x=68 y=70 width=65 height=65 xoffset=0 yoffset=8 xadvance=65 page=0 chnl=15 +char id=127830 x=737 y=135 width=59 height=64 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=127831 x=560 y=0 width=66 height=66 xoffset=0 yoffset=8 xadvance=66 page=0 chnl=15 +char id=127832 x=135 y=70 width=65 height=65 xoffset=0 yoffset=8 xadvance=65 page=0 chnl=15 +char id=127837 x=630 y=331 width=65 height=60 xoffset=0 yoffset=13 xadvance=65 page=0 chnl=15 +char id=127838 x=628 y=0 width=66 height=66 xoffset=0 yoffset=8 xadvance=66 page=0 chnl=15 +char id=127839 x=566 y=267 width=59 height=63 xoffset=0 yoffset=9 xadvance=59 page=0 chnl=15 +char id=127840 x=562 y=332 width=66 height=60 xoffset=0 yoffset=12 xadvance=66 page=0 chnl=15 +char id=127841 x=798 y=135 width=57 height=64 xoffset=0 yoffset=9 xadvance=57 page=0 chnl=15 +char id=127842 x=467 y=637 width=57 height=56 xoffset=0 yoffset=13 xadvance=57 page=0 chnl=15 +char id=127845 x=213 y=137 width=65 height=64 xoffset=0 yoffset=9 xadvance=65 page=0 chnl=15 +char id=127846 x=950 y=67 width=34 height=65 xoffset=0 yoffset=8 xadvance=34 page=0 chnl=15 +char id=127850 x=522 y=202 width=64 height=63 xoffset=0 yoffset=9 xadvance=64 page=0 chnl=15 +char id=127851 x=544 y=135 width=64 height=64 xoffset=0 yoffset=9 xadvance=65 page=0 chnl=15 +char id=127855 x=440 y=333 width=49 height=61 xoffset=0 yoffset=10 xadvance=49 page=0 chnl=15 +char id=127856 x=207 y=638 width=64 height=57 xoffset=0 yoffset=11 xadvance=64 page=0 chnl=15 +char id=127857 x=710 y=633 width=65 height=55 xoffset=0 yoffset=13 xadvance=66 page=0 chnl=15 +char id=127858 x=237 y=396 width=66 height=59 xoffset=0 yoffset=12 xadvance=66 page=0 chnl=15 +char id=127859 x=195 y=268 width=62 height=63 xoffset=1 yoffset=9 xadvance=64 page=0 chnl=15 +char id=127861 x=77 y=0 width=65 height=68 xoffset=0 yoffset=6 xadvance=65 page=0 chnl=15 +char id=127862 x=857 y=135 width=57 height=64 xoffset=0 yoffset=9 xadvance=58 page=0 chnl=15 +char id=127863 x=47 y=203 width=41 height=64 xoffset=0 yoffset=9 xadvance=41 page=0 chnl=15 +char id=127867 x=833 y=633 width=66 height=54 xoffset=0 yoffset=12 xadvance=66 page=0 chnl=15 +char id=127868 x=986 y=67 width=25 height=53 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=15 +char id=127870 x=383 y=333 width=55 height=61 xoffset=1 yoffset=10 xadvance=57 page=0 chnl=15 +char id=127871 x=530 y=394 width=42 height=59 xoffset=0 yoffset=12 xadvance=42 page=0 chnl=15 +char id=127874 x=0 y=70 width=66 height=65 xoffset=0 yoffset=8 xadvance=66 page=0 chnl=15 +char id=128065 x=384 y=696 width=68 height=39 xoffset=-2 yoffset=19 xadvance=64 page=0 chnl=15 +char id=128068 x=132 y=698 width=57 height=47 xoffset=0 yoffset=15 xadvance=57 page=0 chnl=15 +char id=128069 x=777 y=633 width=54 height=55 xoffset=0 yoffset=14 xadvance=54 page=0 chnl=15 +char id=128121 x=478 y=136 width=64 height=64 xoffset=0 yoffset=8 xadvance=64 page=0 chnl=15 +char id=128122 x=65 y=269 width=63 height=63 xoffset=0 yoffset=9 xadvance=63 page=0 chnl=15 +char id=128123 x=339 y=637 width=60 height=57 xoffset=2 yoffset=14 xadvance=64 page=0 chnl=15 +char id=128125 x=505 y=267 width=59 height=63 xoffset=0 yoffset=9 xadvance=60 page=0 chnl=15 +char id=128126 x=321 y=268 width=60 height=63 xoffset=2 yoffset=7 xadvance=64 page=0 chnl=15 +char id=128127 x=889 y=67 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128128 x=627 y=266 width=55 height=63 xoffset=0 yoffset=9 xadvance=55 page=0 chnl=15 +char id=128139 x=574 y=394 width=68 height=58 xoffset=0 yoffset=12 xadvance=68 page=0 chnl=15 +char id=128140 x=202 y=70 width=65 height=65 xoffset=0 yoffset=8 xadvance=65 page=0 chnl=15 +char id=128147 x=642 y=634 width=66 height=55 xoffset=0 yoffset=12 xadvance=66 page=0 chnl=15 +char id=128151 x=588 y=201 width=64 height=63 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +char id=128152 x=280 y=137 width=64 height=64 xoffset=0 yoffset=9 xadvance=64 page=0 chnl=15 +char id=128153 x=654 y=201 width=64 height=63 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +char id=128155 x=720 y=201 width=64 height=63 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +char id=128156 x=786 y=201 width=64 height=63 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +char id=128157 x=77 y=137 width=67 height=64 xoffset=0 yoffset=9 xadvance=68 page=0 chnl=15 +char id=128159 x=335 y=69 width=64 height=65 xoffset=0 yoffset=8 xadvance=64 page=0 chnl=15 +char id=128162 x=130 y=268 width=63 height=63 xoffset=0 yoffset=9 xadvance=63 page=0 chnl=15 +char id=128163 x=146 y=137 width=65 height=64 xoffset=0 yoffset=9 xadvance=65 page=0 chnl=15 +char id=128164 x=454 y=695 width=67 height=38 xoffset=0 yoffset=23 xadvance=67 page=0 chnl=15 +char id=128169 x=916 y=134 width=57 height=64 xoffset=0 yoffset=9 xadvance=58 page=0 chnl=15 +char id=128420 x=852 y=201 width=64 height=63 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +char id=128512 x=732 y=513 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128514 x=644 y=393 width=63 height=58 xoffset=0 yoffset=12 xadvance=63 page=0 chnl=15 +char id=128515 x=610 y=514 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128518 x=488 y=517 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128519 x=144 y=0 width=59 height=68 xoffset=0 yoffset=7 xadvance=59 page=0 chnl=15 +char id=128520 x=584 y=68 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128521 x=427 y=517 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128523 x=61 y=519 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128524 x=0 y=519 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128525 x=915 y=452 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128526 x=854 y=452 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128527 x=793 y=453 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128528 x=732 y=453 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128529 x=671 y=453 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128530 x=488 y=457 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128533 x=122 y=459 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128534 x=854 y=572 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128535 x=305 y=457 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128536 x=122 y=579 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128537 x=366 y=517 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128538 x=244 y=577 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128539 x=305 y=577 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128541 x=366 y=577 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128542 x=427 y=577 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128543 x=488 y=577 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128544 x=549 y=575 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128545 x=671 y=573 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128546 x=732 y=573 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128547 x=793 y=573 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128548 x=427 y=0 width=59 height=67 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128549 x=915 y=572 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128550 x=0 y=639 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128553 x=898 y=392 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128554 x=959 y=391 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128555 x=0 y=459 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128556 x=61 y=459 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128557 x=305 y=0 width=59 height=67 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128558 x=183 y=458 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128559 x=244 y=457 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128560 x=709 y=393 width=61 height=58 xoffset=0 yoffset=12 xadvance=62 page=0 chnl=15 +char id=128561 x=835 y=392 width=61 height=58 xoffset=0 yoffset=12 xadvance=61 page=0 chnl=15 +char id=128562 x=366 y=457 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128563 x=427 y=457 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128564 x=90 y=203 width=88 height=63 xoffset=0 yoffset=7 xadvance=59 page=0 chnl=15 +char id=128565 x=549 y=455 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128566 x=610 y=574 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128567 x=610 y=454 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128568 x=401 y=69 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128569 x=878 y=0 width=67 height=65 xoffset=0 yoffset=8 xadvance=67 page=0 chnl=15 +char id=128570 x=523 y=68 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128571 x=828 y=68 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128573 x=767 y=68 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128575 x=706 y=68 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128576 x=645 y=68 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=128577 x=122 y=519 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128578 x=183 y=518 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128579 x=244 y=517 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=128580 x=305 y=517 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129296 x=200 y=333 width=59 height=61 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129297 x=366 y=0 width=59 height=67 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=129298 x=383 y=268 width=59 height=63 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129299 x=549 y=515 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129300 x=0 y=0 width=75 height=68 xoffset=0 yoffset=7 xadvance=72 page=0 chnl=15 +char id=129301 x=671 y=513 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129302 x=181 y=396 width=54 height=60 xoffset=2 yoffset=7 xadvance=59 page=0 chnl=15 +char id=129303 x=778 y=266 width=98 height=62 xoffset=-1 yoffset=12 xadvance=96 page=0 chnl=15 +char id=129312 x=0 y=137 width=75 height=64 xoffset=-1 yoffset=9 xadvance=74 page=0 chnl=15 +char id=129314 x=793 y=513 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129315 x=346 y=136 width=64 height=64 xoffset=-1 yoffset=9 xadvance=64 page=0 chnl=15 +char id=129316 x=444 y=267 width=59 height=63 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129319 x=488 y=0 width=70 height=66 xoffset=0 yoffset=8 xadvance=70 page=0 chnl=15 +char id=129320 x=854 y=512 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129321 x=915 y=512 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129322 x=0 y=579 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129323 x=762 y=0 width=59 height=66 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=129324 x=772 y=393 width=61 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129325 x=949 y=329 width=59 height=60 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129326 x=261 y=333 width=59 height=61 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129327 x=462 y=69 width=59 height=65 xoffset=0 yoffset=8 xadvance=59 page=0 chnl=15 +char id=129346 x=975 y=134 width=46 height=64 xoffset=-1 yoffset=8 xadvance=44 page=0 chnl=15 +char id=129347 x=675 y=135 width=60 height=64 xoffset=-1 yoffset=9 xadvance=58 page=0 chnl=15 +char id=129360 x=70 y=334 width=63 height=61 xoffset=-1 yoffset=10 xadvance=61 page=0 chnl=15 +char id=129361 x=191 y=698 width=73 height=45 xoffset=-1 yoffset=18 xadvance=72 page=0 chnl=15 +char id=129362 x=253 y=203 width=66 height=63 xoffset=-1 yoffset=9 xadvance=64 page=0 chnl=15 +char id=129363 x=122 y=639 width=83 height=57 xoffset=-1 yoffset=14 xadvance=82 page=0 chnl=15 +char id=129364 x=491 y=332 width=69 height=60 xoffset=-1 yoffset=11 xadvance=68 page=0 chnl=15 +char id=129365 x=412 y=136 width=64 height=64 xoffset=-1 yoffset=8 xadvance=63 page=0 chnl=15 +char id=129366 x=947 y=0 width=66 height=65 xoffset=-1 yoffset=8 xadvance=65 page=0 chnl=15 +char id=129367 x=180 y=203 width=71 height=63 xoffset=-1 yoffset=8 xadvance=70 page=0 chnl=15 +char id=129368 x=878 y=266 width=66 height=62 xoffset=-1 yoffset=9 xadvance=65 page=0 chnl=15 +char id=129369 x=269 y=70 width=64 height=65 xoffset=-1 yoffset=8 xadvance=63 page=0 chnl=15 +char id=129370 x=823 y=0 width=53 height=66 xoffset=1 yoffset=8 xadvance=55 page=0 chnl=15 +char id=129371 x=205 y=0 width=50 height=68 xoffset=1 yoffset=7 xadvance=52 page=0 chnl=15 +char id=129372 x=389 y=202 width=65 height=63 xoffset=1 yoffset=9 xadvance=67 page=0 chnl=15 +char id=129373 x=887 y=330 width=60 height=60 xoffset=1 yoffset=10 xadvance=62 page=0 chnl=15 +char id=129374 x=961 y=632 width=61 height=51 xoffset=1 yoffset=15 xadvance=64 page=0 chnl=15 +char id=129375 x=526 y=637 width=56 height=56 xoffset=1 yoffset=12 xadvance=58 page=0 chnl=15 +char id=129377 x=425 y=396 width=53 height=59 xoffset=1 yoffset=10 xadvance=56 page=0 chnl=15 +char id=129378 x=321 y=203 width=66 height=63 xoffset=-1 yoffset=9 xadvance=64 page=0 chnl=15 +char id=129379 x=761 y=331 width=62 height=60 xoffset=1 yoffset=12 xadvance=64 page=0 chnl=15 +char id=129380 x=480 y=396 width=48 height=59 xoffset=4 yoffset=13 xadvance=56 page=0 chnl=15 +char id=129381 x=0 y=397 width=59 height=60 xoffset=0 yoffset=10 xadvance=59 page=0 chnl=15 +char id=129382 x=684 y=266 width=50 height=63 xoffset=1 yoffset=10 xadvance=53 page=0 chnl=15 +char id=129383 x=610 y=135 width=63 height=64 xoffset=1 yoffset=8 xadvance=65 page=0 chnl=15 +char id=129384 x=901 y=632 width=58 height=53 xoffset=2 yoffset=16 xadvance=63 page=0 chnl=15 +char id=129385 x=326 y=696 width=56 height=41 xoffset=2 yoffset=19 xadvance=60 page=0 chnl=15 +char id=129386 x=273 y=637 width=64 height=57 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +char id=129387 x=0 y=203 width=45 height=64 xoffset=4 yoffset=9 xadvance=53 page=0 chnl=15 +char id=129472 x=66 y=699 width=64 height=49 xoffset=0 yoffset=14 xadvance=64 page=0 chnl=15 +char id=129488 x=61 y=639 width=59 height=58 xoffset=0 yoffset=12 xadvance=59 page=0 chnl=15 +char id=129505 x=918 y=200 width=64 height=63 xoffset=0 yoffset=10 xadvance=64 page=0 chnl=15 +‰PNG + + IHDR+ƒ»LIDATxœì½}¨Uš/øëÞ¶pŽp„#ì G8qH]â‚c³ÓÄ!Blâ/)ØuÑA/Öô’ºÄf;X}ÑFë¢CªÙiâ/ñ’jâ%6±Ù6±I5ñ›ØÄ&;ER‹“âX›c±-~ódzÖ}Ÿw½ëýþØ;f?ðœw¯w}¯ç{=ïÄ f0ƒÌ`3˜Á f0ƒÌ`3øvÃNº3˜Á f0ƒÌ`3˜Á f0ƒÌ ~¸mÒ¨xÀç¾ð €/¼`7€m~àSSîk¯ø»æ»ZÌøí¤;Q!,¸²VÛÜmþ½Ýü?®ø +²Þ×Íߟø Àoêéj-°ÿ™üÀïîKèø.€ûÜàNw@Öä+Ⱥ| 9‡7Ãxâ`À—¸¹Ç¾ÍcÞ àAȾ½²wï†Ð ×!ã¿ +àÈ>þ7}qaÀ{ùWÃ1á›ÿÒ`ßnU˜‡¬Åu|{xûäl}Âßï„È__¼ +Ù_¿šPÿÊBB7¶¼Ìò¥A;Þ«¹ä×Íw³Qø¶ò‹€ï¼²—-\EÀþ©éŽe€%L÷›öþU ]ô»>låŽÛ ôÿ È^úÀ»¨á,ýÁM|`€?‡ÖÏüaåé†ù÷.óï§ ˆ2r»y÷È¡}Âüv39» cÀ›p_ŠÂ2dã[¼Â8«†/ koRÓB»~´r¡Œm9ëû²o¯",P|çïËw9ÌCŒmßCp¾Òàk?ð€¿¯©_e¡`o>€`íÜ=ú „X[ƒÓ'£ãÍÈÈn¥1¯Böì#1o cÿ)„Aß Æ€.€Ç ‚GÖójáKýü2æ­¶k·4´ü"ÇXÙä‡=öDqþB7_ÄtÏ} bP{Èàw6¦ÅÁ—>„ˆßÇt*Q€È.»Œí>O«ð߃x£þÏ!çé=Ür§ ·¿Øàû³˜äŒ²prV‚éYÛ>džÂtÑDŸ¹ À¿›p_ê†d}BC²ÐE@èÉ[Q™œq3 ç)ˆðvÂàqˆEîG‰zÀÃMÿ(!ÿ0Dˆù +a‚õ:€ÿ»Ö$Ãu®y ¢øÿr澂ÌéCÄuƒ¿‡ìé»!çð»}ðSχ¦ži`’-ÈÞ´Ša™uû²oÃާn¥1· gòEäW~Óàk]~Ó±—5´!gì¼²,XeôuÿPQ·2œ„ð @dšm emã4z‘…8&²î³// |ÙcocòÆ€Eˆø8DÙäÌÛˆ¶!ý½ÿº´ÿ·Axáýùà.Èš¿¡!ÓF?4ÜJüV 2ÎãiàmÏùE*}ÓO!Jè?O´7‹=°²÷¿­€9ÿý!ò;ý4܀СJ¿7›`b=´ +û1Ȇ±F÷! +GËüîó†¶ÔóÓž‡XŸ®š:¾ƒ@Áþ›j»Ÿ +ûLÛÇüÏï{ ýº "$]_8±ý9€?«²“9¡ 1B<†ìþÁà„¡~ƒÀóíÂjCîî†ß +×!ú-”gB‹ù~ùãUˆ}#¡ŒSVÃÉ×׫¨ž¹.@ T»!}þ1dþò„(í0ï=éë3þºÒ^f‡d¾€âÞà$x²/&-Äj¸ÕƼ +Ù£qŠ¿õÈ}fÐ¥7wBæé^/ŸgÏZê_Àä½,sãy‘p>øò7æ;=ïYøbt¯Ã˜z+ÀaÈY¹¡©ŸA„t@„½ëùb<ÄsüGMv2V!ކï¨g7>SŸCxÝ—ˆ§—!gÊ: Üýú3È^nZQÜ à¦O€¬Ë{9¬ª«l+óqÈü}1¬ý ÍGôÅÁ­Æ/à9ˆÂ\EdêW¦®¿¨ ®¢` €ôç)ÿeb½šñ.™ö¾}«øÿɲûuˆnku€ÛDûàyT°—n6Às&ø:„HVM B”A@”ÎûМÕn?„Þ€\®ðØ‚0Ñ{! ôJ¨«9L7 Äz÷°öBúwÊØÐüO ªœçä¸A¨ž/\õ~B ‹Xà­Á%‰Y|Ù·vÌW‘? ná^¡–qí~`ªR®!ÿ}ýú ÊEX£×]ï/Ëu/7< +¡'Ûb~ÿâÝù²?¿„œ«¯ Bùî~ÚpÈ8eé§F0éPñ[iÌmȹüžç·Ï!{ï]ä?ómȹ‹ó„}QÞþ6g½UÁÈûˆÏ!c¶W¢²œß‘s#:Þo óü#LÞðq3Ád=n‡(€ÿ’KåcÈÚio² •}Þü}'&Ù·bÈ}L=û¢(õRµ {ìŠ7 ôçÔÏ#ÜH¡/ tâÔ¯ î‚ðÁÇ!ûâÈž˜$ÜJüÚ~ ~¯ÿ—hç'Æz'D†y2¾'à—ÉÞ3¿M‚Fj€…Ÿ@ö[Ó†¦g!{JÑáÛeHâÁ€œ™·!zlœas BïŸA”ç>àÿ-ÕC’7ΑÏ™~VB¬ïÎÚ9Ä=C-tZ8Ïz¼YÇÜ¢tk_—Ù¯?Í383Ê4WXkjÌ{¦îx»Nª0ø„º~¸O±Ú3仳z’“£¿«Œ^½èM¨/ÓŒ¯0*g8ÞÃhd]ÖëieqŽaï8)| îPá4ÔF¾¢W!: Œfç8cFQÜI‘O«¾KžÆ/vQ"©ÜóMfzÞ½@1ÒZ£“< ç×"eoÕåø[eÔHÚÔUݾjs¨žû¼óuÁ˜a£ð@ý6`3óP%î£îF¬o-0Ð)RWc•œ£;òtú…ˆ¢lÎ}ôò9 +ÑYc½w8AÎÖM_›ò^œRs²EÿbÎ1,0\¢_¨2c6—Iç(ج ¾eŠàøEºÌèA1¼ö²<“p½úI‡xà”óâØ¤Y§=e`L!䇯°íwÞ¹˜0ž8l›wOx7/î0mU™ÀÒ„XgÉä)%ц¡k²ZÅ0˘wPÎNܞܤœ= 9Èè• kEÅ +uuy‰a#Ú˜~^qˆa(cð)ÿ'1µõžö+s‹Ñ0Î&=Jq¸Â0¯ªS ¾ñIgͬ—õ †º§U™u +©òþuîaØ«µAáaM†,'¡–7òÞ‹×û³é$U¡ú¹Àjã$~Ña”†¹ÐÍØÎ0¡Ž5¹$šà‘ ð'÷Îö³Õ‡Ï:í]c3‘Í}g.õoËô'?tadÞRäß3æÿW5l¸°Æè>¨ß5Œ¹©ùÔp‚õ_[qÂ…d˜ª;µJ@|™/³Â˜A¶[=‰úM] Z:¦kC7›8”¶]-H^¤¹Z_´€{GärCãè9}+rý C9T¾ìüYaLŠŸf1/Øq§®¤¹8mu~ßE!i„±*2JžsÊ\aþ9±Jy98æL[UÝqí0ì±Øât(#-Ê~ÑPÕüfó£ öå–™ïM +“>ÁpØ_Ïy÷5õÛ:ft‘b$Ò´¬ÓÀ˜[ –qÊ¿Å*ŒY”ÿ¤þU±ûNûƒ˜ö'+ ïÁkl.Ù4㼚—s”5Ïu#Zx™ñr‘½¾T'´èÖ_4B2/º•AmöU{CÏïnH¾v0íb: ²‘„ÏRö„Þ7èOî¬ÛkbªÀýYþ7Ù\´›{­âH‘zªšŒýLÎîX6)–^k·¡:Ug!?hÆ`²¹|{ÎØã’Ÿ r>cˆkal"‘Š¡°ÉìaÜ«Â[µ¢¼AÙ+>ÂãÛǯ9ï§…ZœòÖ»¾ƒQÏœ¶XTÏšúâð,“™¦†K B÷Ü>=ãHîy·‘)€[ûé[S}{‹Í'ÆLëŸêX6Â)똭‘ö"ƒó1ræ}'å håXÓÈ£”sß1÷Uö›ºÜ³Wǘݫ8Yò”1äQþ-Î3lT)ëõqCIϧ´? ì:}lJ¸žf´ÁÇŒ*®{¥ïM&û{’á(š³œÞÐø¾ê§;Ihùro +ÆPöÌxŠ^™KâzŽ-¬Qèmû¢M‘S|²ß5ÓFüÂâN§Ý 6—7e‘ÑkŸuG%öU[ÄrOSÖ¸ì\,Pøì+ŒçMÕ§ACs_vL¾ÈÇ+lö«_n™ë|Ì„e;±ÊdÅr¸_¦ª½âbq?ƒ»ÐnÂ$ ›”Í»À@p-›dN{#,zÉÔ=©ìõgܾ;üK [kÇô‡º–Í& Ÿs–ñw— eѰI9l¯QöÉ{geO6cM +_Úb|2Ž9Êaºâ¼“%rµÂÙPÎ8%}DÙëûYü“s ¬¬'˜|wë”g\ÃmvÍ»ý‚}΋UÜõ9ÜPÿó`›áˆ—5–ó”fsGý®“BŽ2Ì{O½k÷°­¯?1w>iý×èK˜fð)ÿY Òîõ¢¢áú-†Ïõ:ã…µ®™“:®‚ÍQèj’ðÑwÆÜ«¡7 .3Øo®×¶EÙ[+?2å +'xÊ« '¼Âf¾Qûª¿Y i]S>îªÞÍŠg)4 ˆÌÇ/:ŒÊ™GXŸ‘q;£Š•¥«UóH‹C§½ºCÿ]t•¸³5·×Wm kTŸSП$\¡?:ù,›ê9}(4wEoÓA +ó(j!lS°“ô+Q#†WèÒJ°¶Ä´Õ¿ÖÂ6Oâ¥ÒmkRß0n3šqÓ××{å»×ÝfTùk"ÙÈú“Ä\£¬Ù^Êü¦?´lƒ"Pîaþ°ÇyÊÁˆ‹&¸fê§D}§_2›õ³ïy×7ž×X_.†eNÌ–_ ˆ!¨kÞí×4ö +@Yf¸âÌGRþ‚½¬ß{ºñžª] ï×BÖÜc^tÊØ±˜Ï`ów?G_«³¾'ºÉüÉp\#@ZâTW`Φ£ŒÆ,f<ìô!‰®U[GY‡ëüªSnŽaãþ5Þ¼ bËâ@­…+Ùë}§öLÖ)‹Ì3l°Þ \›¶HöUŸ³¾sšßÎý·ÂäO¸%½—Ä/l®„56“3§Å i±KW«âÝÄWØü¾o1ê@­3ÇY_µ3lx¬q8P}LAâÐÍk£û< zÒsúQÈ™P¤áŒ*–¤ìUnÞ…ø”šS¶kž_ (Ãö~× +Áï1P +û 'ݳp˜ÂüšÊȇ.aòy|„Ãçew=NçÃã Dq°IYƒªÓƒpˬ°Î|‰Žú)ã9Äf-ƒs Áƒõ®˜w}Lw™Á7a_aúÝæý”uPΛ«T•PŸñ¤Ð>ë•»Âz˜ï<…8Sæ^'µ"‹…“e³[ö…F®1]0p“&gàÉèçìoÙ1ogX(,fiaü핃"WÑæýÌ›ÑÝ}?É ×e6XŽÎ®Ð½érÂܹ¡¶Ó‰S7jï¿»oÚ "áö20Ú kìÏ^|¢jãPݨ=ÂYÓ.™ò‡¦ ÿuà€ù£²ð‹E†UO3ì½À|Fª…OØHÞ-ÓÝF7æÝ*x¤Å¡Sפœ~=§uFôU;à ×ÅêÓ` +úãC_Ô™|%vŽBów°º:‘{õîŽX¯Õj‰þÐx+lt0²M…´à¡ ×(„¦ÇÉf÷¡ +u˜²à…S…ßõ(wÊ59ŽíÁ"Ï'F6(Æ¡çÂu„²V>|Ú”y"P™ïÛ¥—YLYÚW™‚3¬ÿ«o4³0(Pï¼y×5Fíi+NóeÞd˜ùÛ¤…½ó°Ói#ék§ì¿ž¡±EÙne\Ým†»4Ot™1Ûöâ2;_¡œÛnÌ»Ûé…SöÈK ã¬rÌÚÀW4Öâ*óy€âæ& jþ˜Ùr”Xtó»$EÚ¹^ W˜ÏØ=OáAq‘Ui´ŽÔXãÍáe® +õ½Ñ-FùŒUl.2숻:W­AÒÂÍ})¨ +ì0L{²^U°ç&ÏY»™pÙŒ/ë™ÎË/@ÿ÷Ü-d1¾úîó[Ødú>,Ë/âÆ~¹`=U`‹Ñ¤éu}éC_ Np̪OMæ;ÉŠ{Õ_ÆŒODߢ?wBw«Ê©âž£Ú¿°ß3¨£lª‰ÂTmŸ´'e…¢@Øpï”d#mŠ ×åô„éÌ™oš1åQ˜}°E&Ž3ê­™D6ß9F¿G? 0f¹»Ž½Œí\¦ýueÁ^¥¬u–+ý‚mŒ(ó¥Ï{ÜׯŒî37Eƒfä—ÌûeæJ3ºuÆŸõý¹#¶(ÂNQÚ¶Sï˜ÉŠ’{µ§SØ]ÜnÆj#§\8ÃøµØGav¾ˆ0›S%­ý¢cžc˜NösÌÕ¤Ñ^A³Ç#®Ï\V8ÎkOfSÒþhs«dÙk;œwœ»› )k«•–óN™6`ºq©†þTm(go•Bn†/4¬2¼×™^e¾ë7#žeö/äåÛ™ ¾k-.º´ÞßUÖ´::Ç«ñ„SGœ2׺_j*jØHB7ß@ÖÈ™ºÑÒ-äÉ® eT&3H°‡KŒÏi7¦|Ë꟮#¾a!kA_²¤&f¬0š1SÃkLh“h'è¬\QˆãÐÁ, +Ÿ Ø|‚CŸ§x@¿Oy¨6)‚×+Œ†~]dqáç óÁØôã ÊùÙKÙÛYÖ£M±òï¡x–_£0|_¾Ýž ý‚c˜÷­à¾2Ö®óþK e¯˜2]ów™ÏÍ1¼×ÒJ‹"¤ûŒnķ¨,1*\X8ÇôŶӬÌ0ï˜ãpDÙŸûNΙ¶SîMF¯ ¤ñ‰¢c~”a¸Ù<{úŠÔ•Œï¸Jt7g›î½} £„wâhÜiæ”Ñ‘mÓèí© +»:àò¼ ÊZÕÜYzq–á=­“sVG†MF=[ÓŠ‚x˜²gvr2I‘5öLÿìUË÷6™M{ƒÉûüÛ€6â,­\~áæñAZ/{º iŠLQ~aqÁû&'ÿ‰Ëy§O¾(¡2¸Ý™³k¬&ʱª±kgɘÍFÍÆá>FeÂMfÊjQô Ÿ N3æ¢WVºFEÇ™¥±Ét HÕh…sfR]ïÚ)Þ!…«EʧllR„€WfÖIY€GªÜ*…8n§¬Ïa +£Ôe,lQкB4îdôJ†Ë°ç)×0zoä ÊZbæÊk „—7)ÌèQFJ‹ÑüçXÌ€ÔõôãeŠÐ”ôuƒ8¸F³‹yá"EñÚçù­¨µÛ†¦Íß”>t÷ eG¦Œ†Ë„¤j!:Oxõý¹AHQŠÓêy–~ƒÜ:ó]gО™¬ŠaÑ1ûèÉPý}ZÕ™ô^ǔ뛿èYî4sÞpÆ–ég&ÍÝ|Æ:²݈˜N†wúªüµŒóäb›QïÄ(¡|QÈ.ìCí…òE ÝÌ8OáÛ#Ï|‘BldÞS¾ežoRè¥}·j¥DÏûÅ‹ª÷èEn°_Ö9Bá¡§)‘–®]¡Ðñ^ÅýKÂ9g}Ä ÇÌÃyÒdÒž)w39Šò¢ mOãŸEøÅ€éÐO©c”¡Žn†¾á]OxÑ/±Tîu¼ª¢Ü|a[lFîσ‹ ;x×8Yƒc—QÅ=ò¯ÑgH°p™ÅŒGz +çËJ+°ÄðÂLÊ:3OQ¨ì¢Œµ&¾<~eÅíô‡`^¤M7¾˜äA©ùˆ+£ë:˨’r–õÝ\`ØË%|&itï˜çè?7#†•i»fÚàOÇ”ë«gVÉÌÒŸ"cÖ‘Cý å;Ì£„:úëdè{…!‹À§éH‘„]ú¯¦$¹ç)?¦y÷¶K3¦ýSsYpÙÌ…Ïø·E1jZÁ±MÙ‡ó ½Ï1L?ЬmRÿlßN²¸`½²NPö­MÞ¶Ÿõ9_–ì×7<}_d _¤)‚S.Ëžs…7‹¡ÊæêI‹Z+Â#ûL‡´‹Yä ,¡Ì]ç<Þì¡ón7Ç»u¢ÑVDvñ¡ù“YÔ¢Èm]V§¬˜úV™,«ïeXéž”a¦Ë¨ò¿ÅrùXv0>Ò{È|ôÓ½>H¦'ގŤ[ –i ͰØfÔPGÒœ2Ø¢@½¡¶(›;É +gí’2+Ï©z“µ­ëœz¯Ç°UpL!ðU3r×£:M÷>[Œ†kç½Öâ&“!ã•‘EÈ?Îø»óyà +E ;ÄøÐò®ç½2gÄFXuÓ·uÊü¶0t—ÁixMý^Öò­ NE²·þT›…nÊ{C§üˆÅs‹ákYæ#æ÷+ #€LK #} +-ÙÏ€¡wL¹¾ù»§ú“Å[œwÌîõ“,óÜa6%ÔÑÏXÇ CÀp”Pš_Ó{2_Öêe&'|LRŠ|ÅÂ…uæ?¯ÚQô« Ó€;)üÃ7/—)û>)Ä&T|’acô(å½¼8PõVåUkSx¥¥;Xýœ ®)$ÉÔÜ¥y6/2ý~õ“Œ¿Z¹F‘›NQxD"ÜOSôé:ÓÃâ‹ðÈ]1sbaÌô(&Wu!kÞ‹"< ¾aaš’‘ºWÈògjÑ©3é*ßÓŒ^³Nã I¸Ê¨±y“²âæÜ½&ZU¼<}v×`«Ä¸{/îºsžˆ:7_D©–I?º‡u™õ"Ö•§ÇZÛ¢ßËœ%äã¬WÒ°÷@Î2™ˆe|¨ÉA†ýÕ n†üþ×"Û [¥·˜èv…¬‘mŠÀ²ñ_7и‡¢¸u˜iù¾RÐ-9g# +~Üý`kPƒ¦¼ïàeέÒ]Føu=Œy¿îq~KíÓïï»aYN0?#Ï£s×yç +E¨Ý4ã?Ç@±YcØÃÒWï)¿½*p‰a&7döS²o=5Î,Š¡õ6ÅÍU‘¼"s1u‘"Pv3Ô‘G1Ì;fí}×Uóþyf°_¦°a¸¯±xQž1÷UÙ4Ïù4£k¼N*«Cÿ²|.Ë¢¾†ušÕdn12š5LR œ[œû,¸HÙk¾¨ 1ň–ײÝÌÛ>†hUÞ]ÔÆ–ºçJG@õ +¼oCþO1Ø(G»VÁH»¯Þ£¬ñ5³6§(üIË2 6ñîSÎ*_WÌó¦"SL¾?ÞSëT„_è±—½ª²ÄføýòÁ¸Á5ÉŠ+ Ã&‹+xš_lѯ?µ¦A:ŠçQg¾²æ$p¯O2í,3¬øÆy½[ ;QªÌ‡âÃýŸìKº3G‘™v°X¿eF$iÆXÙBé¨.ßÃí ÄI¡=ûMÙ! ž >Á`%e;´÷..S˜âYúÁ EMšœ4 oݨﲤ-Òª)?dò'ÝŠÀ:ecf²5úi†=¶e,2ûþ™l1lÉ£ˆ&Á˜Â«º³Œá Ó?«X6 ²½G—¤Ð[¥£Ïðw®»1å·›ßËû¾gŰ㙟Ô/Ø >á Ãû]ç*Çœ„#f˨7Eç«Ì˜‹ôwZÐs’°WtÌ˧[CÿíƒA‰1Oz |ئQ}W'®QxZ§`ÝoR ?Úk¼Æjïý[ÔŽ‘º³jë+^kÌÎg¬vƒÅ=n#ÓnÖ÷÷SdΓLŽŒØkÆ²É ÂÍíûytó4OÞ!Ê™µ<`“þˆªªqÀde¢Ïê6žZE©E»Ë0ä-ŸÇˆÚ$ºÆÆ¢Q$Z©Ó‡tþ 2¥ìzœÓy6‘³÷jÆ +úAœ’­õ§uÖûåŽãŒBœlÛ2¿¹|aÍ<Ïs}ËþJ‹†s󩪘—?Džp›ùÿ î);¼cð!ÿÀ€÷¼ à ·›²÷™g.,xÀ'ð]S—îð3Ó† ¿qúù8€…˜zš€Ì¿_8æù½à×|à»ÜYq?îðdn~nÚ{Àv§Ü3ùýÈü½»D›?@°¾ðjŽwçLßV´ +¶?Ù›ïüÀÕߨ™ñÝ« ¿Ýàû>pÀ~W,è›6ÞpoBÙoü®d{¿‚¬ë¦ÝyO™G| àSî-ó|·§lWýþyɾiø&gù¯!{à>©^…дs¾çöÝGó²¼—„¬W^¸`€×K´]tÌ_–hÓB þ}œUð—«Îßwg|ï«müÀÿàïs¼KÎß¿ðü»uÜpþ^,Õ£êaÀ§žG ¿À‡¹b€?ðË‚õ`ê}F={ +"ÃT šž~§†ú5ü2?7 û8NŽÓ° ‘Kîp?€¿®­waø¯ù¸2G/ÁþÿÖ”û»îÈ&†Ð÷;Íïø)€5Söÿ«ùí}?„Ðʸöª€»=cqP–_$Á³¾€Ð¸/œЮ°þ¼üÂÝVוJáçÎߨcøu@t ø;ç÷׿¯i²ÁãÓLWwü„e«Çcê9¦þÊé#IpÀ÷œgïø?cÊÿÀO úª†»!4ücˆ~•Evù;=°p{\A{^+˜öÊÊòÀDa±ðÿóî«>3åož½ˆxÂÿ€Gg/BïGL;î 5| aOÅüþ–© Ét¶I°‹ù ‹ÔpÂtž‡0‰ºá+ȼ~„¾p.8`áÀ**·¡´Þ?oA„Ä4hC "7Lß>ƒž—‘]X‚0™y¿ +ać2¾ÿ_È¿Ÿñ=n@„<ð®ùý€ÃBàeÈÞˆ3´Íï;!gè€ãF½ô"D0Õð1¢ +õõ<I€@öÕ‹9{aAþç¡è#ˆ@d+Ÿª2]C#~ªR¼|J LæO!çõj…ýøGˆø^ŽwÜuªC1ôÁ¯üºÀ{¿‡(DYÎz䳦OUMŠðšûhŽ~v"Ü.Wж†_%ü¦Ç™$,T‹ßy›Y#Ø‚ðã¹È3î­Â€S,@hÖ6óìˆ÷€?†(Ž¿÷½œ>€ì7 oøo%ëŒMs²(äeá×Þ¤ íð‡?FòÞ¯~à‡È“OAοϠýkHÿ~1R| +Ù']È¿Èqß1eÞ‡œÕç!rÌyóû÷—_0õì¯a\ÛL»q igY~û ºƒ¦Y!^-yyäÎß®¢=-ð‘ów€>ë_!ÞØ¡Ë½ëùýwËdi4d·úÿGðŸéwÔÿ€ßö „•ìÝž2ea/D~ÕðÒÿY“Ÿx~» Bÿ~Žl†íÿŒ`Þ¿Ž)3è¹yQcM1pBÜOuÅ…GÅ}o4î[‡Üª †?Y’¾|Ê`RÂ*?ÉŸ¡éÃP=;Ää̘uÀ&£÷ÙmB#Û†²áð°"ãvï´fÉ}àûœ£†!ÓïAu˜¼÷²f‰Õ_¾XÏøÎÐikÄà,ù¾¹]7\a +é&©2éÖeOLÝ[ ’‹-Pæò óï› òJtÌÙ˜BªÊ|­CdžÊwTùŽzÞ3Ïúûa¡§ž ̳A†÷Ý»€UŽyZÑ^É2æ~…cnQh¡åúy^bh3ò)ОÆî„Æœ†»˜ÿ:Ú%¦ú.žg¼ç˜?1Y¨662ÌWY´_¹Éú‰µ*ð2ãéœ ù?Ïê®ÆÌ{ß·WY6„êw<å:Œ~NÓw]²M ¯>Íð×Tzz³Ê€7gu{À~5)l\çgVÔnÜžóA‘;Ó>ÌÃ#Áèùn"¹\Üëô3K~êý¸ë î§tãhε°‘Òn–O¼Î3 qù¶t.ª¯ªt½ƒ¿ÎüôHëQ.$]{wçcñ×4ÜO•¯³ÂÜbnÀ#êÿ"Þ*k=Æ®íŽ{ƒCë@,„ºŽÞýÀ`R(›¶.}ÑŦÀz5¬§æiH8MÚüT _A¼Îÿà<ÿ€¿‚X¡±ZÝ@x¹°[ýÿSÿœálåÜÀ«o!ÙüˆU: ôþ¹ Ù¯øàoüˆåû=ÔnÈÙ°^Jéz +¿¨°½ßøKˆWäG‹ü„³þ€ÿËüûï!Þ³9ˆÅóAóïÃþˆUµ +¨jŽ‹îÿª «Ç¨_5wå(«×§lÕn]~Wý}¢Ñ37 ûýú9âC³‚öåñ„×ÍGŽAúvÁõ´m +€Ðš×xjî‡D~ñº×Ì,hš4é½»‰Æ:†`-n@hØA®5V ]„#Ë~ˆzBÿ5Ø0Üû쩹- q|f"g|á¿h¨?i`¯²lƒÈ6"à,$Âe'$ +ï—~õ‚ózÌSß¿B" +ÿBŸ^„ìõcórD>} rŽ>BøjAQx²“®œÕåõ·0‰x³à^-âÑöA~au _#›l: pÃËïAþë":ÚáCç·ˆ,üCçyÜõKµy'’¯qh¹%®¾ß"Lž‚DµnG8Vë…nôFY8†ðþùÂËóÒ£¿‚Ⱦ3e£}Ò®üþ2?õüÖC4"áG(~ý,n¨÷nõÿ3¼ï†-|€ø0þOà×ÔBÀ u…ºˤðÇ!‹a¤!„¸i°áIö@¼ ¹óW÷=< 7 ëà*ÿ4‘þ1„im3 ß­þï ƒ÷AÜ•·Ì_Æü¶ˆ@0O‚ï#=Ôò±Ûýgs[$AÚ\ýÁH?‚Ìý})ï¥ÁgFÿÄÀà$]E²jÅöäÌÚ\oCÎè1OZu¼Ëüþ0„è^‡œ‹*áªC— ÏAÖìHŽMƒ¾€0ÉŸ£:V3§´5ÓÌ4iÌ‹(¿çÊÂ×+>м!mÌúÌ•5Xk»!<É5nd~[Üe|²÷—Q|Ýu¾Ž«)e«sè}òd¬.üBÿ?ów2Ï@xÈ÷!tà=Èia;Ϙë„UˆÑGÓÈcÁ¸ÌU–$xQýÿçhæÎûß@øÄ±U:scƒ†~bˆÕ|«†ßø=û=Èž~ñW"oÀ:­á×þˆŒõˆÿ3ÈyþÂAÖÈç°Éß3ýIº¦¢y[%:+¸9ˆ^‡ð}Kßó·“ ¿pù^•¹†ª†_CŒKz|÷!žoú@¯Á«-»!4Àg<þñ4ï*ºàˆ¿þ‚sï24|‰`|Qôkˆ,õÂôãvˆ3·ŠkBÏ!z¥àyÏ‘ósû>¢sû]ÍÿÓ”:|zÉvD¯¼ 1:Tš°- ¼q’8KDîBxQ~´{Èß…,ºV€mz£ÿ²I_‡Lê7¥âQ»ɇýwÍcÂݘŒÀK`ÿÕôåm„£,ê€/L[>Á ýc‚ï[”k«Ø%Ú¨ða†ò‹ÈÆ„îOø-«R“µÜ‡òG|7¡œ…¬õß@f+4· ûy[Æ÷-\Ev  k,«Úúÿ}ÓÆ7=õ/Äg”Ó; ó‡){;qÁ* ZIÚVA}Û¼ ÙY¼®Ã7¬H»Ò LYÇQíÌ"pÀÿóÛ6õÿ´1kút;¥¼< V¬¿²Ž¿ƒ·Aö±½›ùˆië]_zåR4]K£¹zNî†xbⱪ kTÂ/ü'ƒ{!ÕC#ô#óDÈÔt8é®rðÄ3®“?Q–ë‚] žÏר– ÏCøÚ#(g°Ê/BxºUŒç Jô—ñ—Í¡ÐØ(É¿‚œ³$ #×O=×ï!rÖ1ˆàyíùÂüý#ˆQÔ°9s?J)wUý[vÒÀå“¿‚œ/;wU¶©ÿ§ñ‹mÎßW+êC]pa]éd7,!,÷ý8® ‚~³90²@ÖrÁ/ß9k>ÿ½(oØŽè½ÿŸ!Þ¹˜þâl~QÝ÷yÈ“[iB?õYºŠâyÉbAÜI²à| +!èO lÍý%Diz²ˆ_C”Þ×d)·ðSÏ3Þ_ø·1í>ŽtÅòS€Iy¼lØÌÃÊo ÂÏŸ@,á/¢ž¾%)ÿ; ó÷d“~a¡Êl3ÿI²áý”%óy\â‹<岆‘fU~?A`ȲFn¸cÖ¤d6qZeá<ø®¿Ty5¾¢ø?!€?‚š÷"˜?›˜ñ#ƒoCèÇ7=S•GH+·Aöd™P¿ïç,ÿªQ²5óOS ¯ªÿߎø1g=kuBÒYÕL?M1üg„#½¾‹b€Uˆpõ„N?¡wC’Ýi°ôã{½ü!‚kE :6溿?€j2û»ðkȸõ/’‹Gào î‚ÈB<ŸChƒsÓ€‚o Ÿ@hWÕtØ*¾?…Ð7}í”óôæ„éØ6Ôg˜‡8>„D,Cבσ9Mð¯s¦ÏÚIOËó…# ¿…Ÿ‡œ±§ tìcy"Ãå½~b iïé3wŠñÈ'ʯ 묻ŽÀ¹øü†‡苬 yd©;²jpû—'j"K4¬ iQ,UÃ;Èù«á!”çw?AT©ÎÛ8ø'ÈÜä´q;„þþ§uCX÷°Wª7ø«„=•h`-C›4%íÛ $„{’,hÆà&¯¶pšÅéõÓžúöxÊÍ™9êš>¥% wq£²D’þââKŒ‚›¸2ÔôUƒY².¶)‡pÉY¼mfuŸòÑ¢‡MúÃâA3©Y”8‰>‹WÚÌöi¼Í +{„’±3íK +qp…¢„¹Ù-Ç ²òîeü²YA×™ӃŠ/¾ƒéÂÞ”:^Ž•¤² +é;œwÓ2yö…¦ ª»ž~õ*nÃ_®Pˆ¦Þ»# +}R,ûÛ˜²×æï"HžV}ˆË€k±£ÊvRæ®ôTólÒ§e§Ž¤ŒÎµb§ ·úV'j¥õµ +Ç|H•ß`~Ec…ñŠi^Èj\ÔøœÓÿ,4÷¨z'ék8eÑf&&…¶fygŸê—«à¶(‡Ʀ&öàÙÉÇ,§À¥¡•y¬Cg´44f0P¼Î50×ûM[öŒW•á? µÒÓ«¹­EʹH2d¦¡•OǶ‹Á×Eæ(gg“ñYÁ]lQø«û…­,û‚ªí<8`6yÚK+›Ý öiüÂío?G[“À"ýußSdŸRÏó(§U¢æeW<¿o§œm×¹w–ùõ“EF­.Ïž3óå¶gÏbž/UpêÈú%‡'…AαæBýG_5:ÌXÁ"Åri•ó=Az»ÌS_’G§Í`C§ +!<¨~{“Ù¾ëL`e¶ +´ê À»ó¢v€"(¾lê9NYž0e^6ïBY¿žéß {\8Ï|ç^{9² +áîgzó´—{¦1³}Oï­Mú½û;œ9<Áz<ð­ŒbaƒñŸžª­1kDÙÇÚC½Éê>ƒ–†]5æNíYºÕäçÕ4ÝðE˜V‰-Š,zÅ×°Å`/ºôgBCN28#Y"d^¢ìéNŽ~h“•Þj|…wQ; F¦üÐiÏ÷^žO½iE) 0 ýœãmóö÷ Sþ +ãÖ† ±iQ’u¡ûÉð8Óaô³’YÒ¾ýNÊYóDw2‰¨Áê¸YÏŠë”Ì2näÀyÖA¥ÿСiž3-Š@åzSÆ‚™•Ù>MèÇyŠršµ?çýNƒ« "Fh¿Ú ;¢xGòn¼¾šóaö÷Q,ë#ƒ'™_Pë™¶G"xœù’ÃÐI)¿‹Qè:eNPÎÂËÆT{ž~em{ÁÌ݈²ÓÎ_ßÔ¯¯¡øpžps–é^©”=q&C,.1LH“§:ª\G=ïzæ®ôTólÒí1Ϫ.9íÆ)ÚšÆ×-0ë1“"ðÆÑ­¦ÍF-d1:úÂÀí\dز¬ïêÒ:³1WøI‹p²8Çðw‡ó +ByÑÎÕÆ+êö /Qh†ß· [ ‹üë ‰_`X¦H£OU õH¿bþÖá¶q0u`_µÛD{K”s±A1HÖíxÑÊ?Y¿Rw‚röòx]´¼åܤœ™¸çËçà`Î~¸†Ù<òuöT½#ól¨žõ+hC×7ÈP~àŒ·nºYÝþ&9P[ ë^—˜êFÜž2í5.¯H¢Öøfa‹ÙpóŒzÿ{ åè—,œÏØv‹Lá‹pиƒa¾N–34fFý‡fÊÂv(Âó.9[4u¬²X(uÇ™È&#–(Š« M…ÕA×»µÆ|ÖÁ¾zw8ã)Šg:9Ë“QlàüÞm`®€”e,mxÖ:OÅ€ÉF¡}"'dëHŸ4Kj›ÑˆŽÛó’&àÛkZ-ŠqɽrµÉtz¨Ê§ qg“¦í:=èK ®øBŒçMÿõõ¾ÃÞÍW<ïÙu·s·Áêó´^ï›áÖnYCæ«yÎsYì«v›j³MQ®ÆfÜu °nÄ`†•…NŽY^Q¶ûÑg$lQèf‡Á=í8GÜ:Ð/Ù²Ú0ðžªwdž Õ³×Xî:Êv†¡›á×;¨p¼u ž/2YauÉiüë§®1Y&\d˜¯dÕMÜ;õWRÚù}Ð×K̶‡-ÿLºÎ³L¿ ÑHžýG_u`ØDã5aי̦ÚÝÃðBn0ðPU|­jì˜~^f4’#kâ íéMÁ˜ÊÎ……N†w\pï—¾áüÞk`}O¿²FuŒ({yŽBĆæýsLÞ 6mÓŒ¹Ç@¹™ßÒîp-2ðˆ )Ò2ð¬W9\¥2N¹è¨2õ¼ëN\Aè©:æÙ ¡ßÚ£d¸È2æ8auà)7,:ÀØÃ° 1fËl]/C’¸ì˜{NqW>´aÉ‚öPn0ÛÕ7>«ÏðQ†!.ÁË,Þj!x“Õ\sÛËè½ä¡éŸõ¢¸!Ðûœ²îcïsëûŒz=µRæ*{;³›LVÄuÝ‹çJéªþ4éMÑ4¾Ëð§ÿŠzÊ`_õ§Évõz’Õ>Üë;WX¯QçIÊ~1[Ì,ý·×"ì³%ŠBceÇ5Šáh?EVl1øœó€rŽÆ^XÕ^rå’*Âi£—•¿÷3ýSÍi_Ri1¼òðH7çÁ˜Ó+Ÿ.{æ&ÉiÒWå’"v0¬ÈöÿÙÀ¦à4£²VOÔ{+)¬Þ¢{å¯h´Ð£ô’"ý’0Nù¯óË4^Ô¸Öµ&Bæê@måÊói”¢8Píù’uÌSˆß›S07>´!ž¾ðþiCÂãêYdš¼ïX%ê;CYC‡ÎØ]K¦«p ‡Û§aŽw­Pï­Zª^«ì”õÖ-S#+üû(ë=É+Œé9ØbThì¨ß;êyÕ@OÕ90Ïž~ºáée”–¡ª'é.™ù÷bÊ‚ ÑI(3rêKRúÜöËŒy'à úãi•UL´A(ëý‹§Ìجڢìß$/škÊ“hׇ‡ú|¼'+º²ûÉ3mèÖ@æ~”Ѻ{ê÷sLÚ—Î’î3Ú¥¡Žüé—˜“<¸ÀàÜYC–vD4.Øqò€NEk°Â°ýëË-°Â€÷euŸN´ìžç·6E2YI>Ër ãÐýzG™<.é;¿ÏQøAÜ=ô$ã©{?¿h1:·Ó*Ÿº²bšãÆ¢óÉñm†=í딽]U¤cQ8DY7Qk‡Ñ1lgx ÓŒõ®!eÌrtc?ýF€¼F³Eú#/ÊðïÂè=À<ŸUš&Ô@•÷#}Øf°)GŒ:RˆkU ¥J<Ídï›7MKÔ¤ï}NBè©õÝÑ4«´ÅÃàZb»ÎïM¦\ëg‹©îk’çö(ƒ}¿eþÎáÒeØ{x…ñ +¨eŠç™Ïûa¿©lÁMÞÒQ¿uÔó£°NÙ{)‹Â”žf¼@£Ç30ÏNݶ²®Sv¦ãqëèKtÓó”³e­÷z5¦>0lØd¼WG›‘žEíâ§Î¸3fÃõµ ›õþ¿Ek0Øå©×g8ßÅð>\cyÃY‹á»µe¼Ýnb- ÚP¡…M-ØHŽQLýš‡¤y„Û ïËSÌî­ÓNŒKlÎ뮯€X£…5p­±æO9Å`_õ©é¶Áj ;ŽL9Ãz<·ós‹Bª¼®Ñ¢œ›84©ì…Vô(¾Ã”sÖ©q\ãi¿È‚šŸ'yG)çã £×'}WÉ-Â#]=­y¹\ÃxoœcøŒ¸Wcv0¬‘Áþžc4MS r7zøü̥YBב÷Á°$ó}N9Îó_·ž‹I‡¤ +¡¬i\p&6ë畊¢¶ õcÊèC6mD'Kè«>œi +±fM(¹U£û™­¬wÌôÝ$2zuÀ°‡ Œeä´wÛÅ‹⬽ mF…Ø6ÅÈ£ Úi&‡é·(6Nœa4ì«Å¨ð`½äy_CÐù,:êyG½Ó3ÏF¦Ý}LÞ–(J¨VÊzê÷y6PϺ _#ϸ‹ ;æÓ1ýo1ìYé9¿=Iá >ÏÔE9ÓWžFjqžÿU§¾ªÆì*ĤSî¸íÝGý,ëý‹–njzò¼a!·Ê°t7‰Ðf‰º]!Ñ‚ë°vk uç3Î3êœE!~–ÁÙ¸S¯‹z/×y?\c›ÏÐB­½–R$Š¡ +쫹˜DûÓv¿àû{æÅÖcÐÙËÀ€5`yÜ‹Vi˜Ô>È‚®²”5Á™Æ®SGÖñú®£iZ¼Ê0ý¼Æbk¤#;ÉéM8rú™EÞñ)¦kŒ&ô&£×7ÝÈŠ¦ÀÕÜõ!ãÇÅ[~Úy§ª¼[®l5ÊøÞ +ýW$ûõ«ºúªc×&Ù1…mfÝÐ߸Üdý–w†Ù)£6ôfÒsjÑf¸M»îaöaJ9}86™Ý’\&ì¬Êý£¯<0üXt“aÚq~KËÖZºJ[†l=hÚø·ƒâߢ0ÍCŒz$ö2¬| 6¾YeÒ†rnQk­$.™ºÏPö΃1û;Y,tÚæ. ª£Åx€ˆúÚ‚ª³§ž ̳ùÛͱ±Éjî›Zt¯œd¼Pg ¿¶¿m†¯l0`^çV:‡ª[&N u…¹ªÇ<Ϩ…ý$>`™Úâž÷þ¿Å gìö€,÷0êáª:2Ê·Š(¿>Å÷½ìyF ÚšnÆ gšW¦ÍA‡"Ôê;Ÿ›LOdMÊ.Zø¶koiÕ'Çïûª_“h¿cÚîœSm­ËCfL—Y<çDžcñ»ÂM¢>kd2¿ð¡V¸òD½ø ·¤Èl;öPo±xè¾›ÜÙ¶1éyOêã³;Ü+a>8˨L¾À(ªÆô_/}#é%f›×pPåõm¬e(¿ƒþ;ý +ûT}ÕÐT8\ x /3ÛAÐÉ šð@÷U{˜2=gN§%@7Çaä»KÕqÊhÕ0Vsžþd±$ÛH…‹…ý ‚ØFõfô;•H9GìŸMJ(¹5¬´(ʊΊ<6ïYƉ"ZA;OÈ•Å6ôÁö_GftTù¾yÖ/Ж^ëžz60Ï”ýâhª¾råóiúrC§¿:œÞaìœØyÚÁ ŒÓÖ32eºž6\^ceoé;äìÝ%×´0÷þ¿ÅS”5Ôûÿ(eÿ.0ìÁ¶PW˜«0Y,¡×E™?Èd£¬3›FGNÅñà+³ÃÌ_\2B2ù{ïóªÜ âùMB}íÀÒX;?eó<”Á¾ê×$Úû9ßÓN„¢û8 ÚkHCÖ—ÎÊIûvZ°Íh˜¼OaŒCAT$zؾ<Ê(¿Èýç¢kž¶ˆ\}•ˆÌO?öÓïe&…öÆeÜduCR$q\$Ú³Ï[ž÷«Ž²W…Óœy]ú ,SqEÚ÷Ð éTçv2ú™’$bä†Y§y ª@}_§S¦Ë(”%de±KÞÆÌ–MwdúÅs=TãLJŠF×7XÝAÝÁ01LÛ?6S¯…<Ô—D«ë”qÀë\ßN†þÄ¡ë ¸ÂÀ›?GQä4s^£8UÇ2E·ó¹E¹‚° ê9Äðúœ¥œ »Fó  ,Uçe.ZÙÐýï›gý‚mYè©gO›d½B®5 j¸Ä¨r7túk=2Úfç¤ÃøöF¦L×y~˜Ñu¬“.1*ìmPhžëÎ{ÿߢUT´‘Ü^p dý!À¾$EÖ£ÜÌ1 gvïjá5.¡O‰*ÐÞŸ6Ã9,¬S XG)©ƒLöØiïYUážiø +ƒ=¿¥æÚ&yê5Ô¸¹¶0‰ö;¦í~Žwt8ò&ÓsÅ6ƒÏŸÖ¥ü·DÎM›§9} Ê.2[$¤–…³ä;ð¡Ë«4Tq¦Ý«×8™ü>\`Ô)PD‡iQ¢YzŒF$ñ\7d¾.¸Èø9w#p_¡ŒcoÂ;>ì8õŒr¼›Û#ÉØuQž<æäõ¿ÿ¾‡ú¸w›À9 +#p'î2“ ©"Š ¼ØWmÆ)Ò6 Œ U*»yðšÛ¬P+ì 3”uï#%E‘¸÷iH!e‚[”¼ûG‡åMب½OÜC>r~¯síµWÊBÖë `ˆhOB?çLË´Çï¿^»”=fç}ž"Ì[%xƒBä; }Y¢Ð¤>ËG$-0>aŸîCß<ëlÇBO=xÚ³þïƒ/zƼIìÚþZÀ:ƒµ³s¢çÉÅ‘)Ó5/{Úfc¶{M'ô´0bØ@‘÷þ¿ÞÛd&?Oÿ=Æ,¡ëUá>F½fk¬G‘²ÊÚEg>H¡µY6½F6ò¨ˆÂÔSõ45ßn.0üU„<4·jì«~L¢ýŽi»Ÿ¡¬›´Ìg ³ •Qê¤CöZàÄ|ÄF å›L7f¹QE õCF¡Jù£ô±.ã{^´ÑiF¬FFÔsºÉxšä‹¬®¥´?ReÓ¢“°ã´;*QWî¤ß±ææV²Pôz^m·úÞÍ™*Ê€-ÊaôyO|™A5ºwgšJ¸¢s$YuâBl.2öô¢Øa± ÷KêA†ò-†rZæöCŒZ>Ǧ­<¹Z&åÛ?—˜¼–>dM˜§ÑͦêÞ…u¡N6²¢B-Ô¹·VÞ[gÝׇ’Ö)gt÷"çè÷8vTëÍèlÃBO=8ím°þ$¥zÌ> ÿ%Ê^±ŒßöWÓµ‘yn dzž\™2)gÈ5Â5Í[”sèöƒÁÈzHŠz—6(4ü%úÃü.±Þï•ûp'ýa ç˜ß“’„ÚÐkǨóN rÖQ6·¯êêÖ8¿vŽÎüZeÒÏʰU žI´ß1m÷SʵŽ:»Âúe"+ukª¿M1blpz¿7ŸgM, )¼Þ'ϹåÓ¢?}8tÚ«ƒ_¸FZmäž®0Ê£ª2L¸uŸc<X`}F€ãÏu‹Q™¬Œl´èÔµV¢®¼¸@¿¬uÕæ;ªã~p=³UßÕ´ ¸:!à(ã?G‘æ)ŸcØÍ]íõ8žRÖµðYØ¢¥º”¡9S¿Vp}ÉâP+Yåƒ C1ÛEÿÝÏ1E z–"dvÔ; æï½”=⋲ eo%í7 Í&‹e™uÃ×Ü\®7²Îć=§­:“bµ(ôa¤Úê©ßìYì0 ŒcÖ»ç³à^Æ_˜gý‚u[è1Z')Ìnc?ÀäÏþèþ>ɨ·„æÙÊ™véì(¡îÓ¬>ÃvVì0ùÛç)k½ÊôuY¡ÌãQ&'Ošd®åó†éû>æç“;)÷z…å'mŠÑcÌl\ku¥E°¯úÓ­y~]ZoïxïSϲØëB=“h¿cÚî'”±9z,¤9zªBkxª+RÄ^‡™šPß‚x€~p™bÀwתï”Ë›°OGœe=übŽQ>5É«Î-FéižüSY×QCRÞ¯£_µ* '˜Ìk\oyüÀÝ·MÈ[ûè×cÎ4Ô~nLúQ[‚6Y­Uvè™$²†‚œ÷šòªY´õÓCþ3^µ ÒªR —( +»ÞÌÇ”Z å<}ÓJõ˜ékÙ¦?t¿(\d6ÔwÞ+jyu-˜gßÎïÝ‚ídA÷î—Û—ªp•óÚ0sg-{ÌoÚ Êš\pÞ©kÒpEÍQG=˜g# +sÚÇdÏw›²¿ŸexèqÛ:ÝÏð4ó çgÐÐsÊ.PÖç ýÊîÃ×2Fž2ר\H6(Þ†ùÀªéË)Æ'Ò°NQd‡Ï›±¥Ñ¦- + _cøÌ-Pæ¶éëtÛéϰmaL9‹Ç)´÷YÓÏÅÔ§2†ô+ì5P”‚,^;}mªŠPyíÙ«3|¼Å°Òj?™æòÊ:\æA-T7e¨±cÚîÇü¾È°âs†Í9n({¿H²º4Üiê¾ÈÉ\ñ¬c}Ñ4ãœy¯‚,2¼²fâ_¦«¢†€k +¢Ièæ+(sÝ刧úw×ÊYg(´kÁ­ÚÕf8¢åM{kžA(ð˜âxŽ Ú¢(ö·ól>TŒÿ à€~SΦƬu[ç`ãôáNFCÕz åû¦Ì~Ê^¶†ÌMž ‘ªkƒr&š ÕJÅ–zn=rV°ÚÃx¡¶¬1œëb`ž[ÅVGÔ5• N£{E§*Ðb^Þb2뱯úRm]`˜Ž_Qã~–a˜tX±¾v8 gÇ´Ý÷ü¶Â°cbÀæ•å“Ìæ´É‹VöêN`ÎëĽLNÒçƒ-f÷â¯:ïÖm,ue¤1›ÿê™+’õ}Δ&ÓVNsC¦ÁˆÂÓ®›¹2ó«‹úp¯zÔõU¸ôŸ‹MNÞœŠizΠN±š;„C§Þ5 +Ès» +‰#Næ¾ÕÃÞ±¬ö%Êa1Ö(Œå„™'CŠÐ§0Ÿf1bºƒáh…"^•žÓ—s̾F +¹06 ë¥s³ « (ÖXNhós=V—ØõJ´•†'¶ªT:v1ü¯0e¡Ãê‡cÎ+÷˜bT²k´À@9S˜r“g¸£æ¨£ž'yMó@OÕ90Ï Ž/ î`°ž½„r}S¦cþÖa…–æÌß/q2Ù•í¾?Ë0/¹bP—µ^ ãfMòx;6)û»O1ôwê¶´ÀÎËœ)»Éì_^©—M?ò +ò®QγåÖ¦•î–ù»¯ð EX²û¢gÞsç®(j¼ŽÏ®Í1ìáßdÀW—5vOb}5º‘ +)†ñ¦®átL»}çù*ÃFÓI%ÉÛN‘oªT ,M™äçëFkì~^PuöTóìŒË$<äqhÇkû{Å̹¦%}5Os ˜ëXÍÝÈ<ëN` Vt¿à±J¿Ñe™áý·ÝÌCÒ'ó͸O$Ôcq£Â@Ëôq8ù© ­ð~–á{ðÖ»: ðF«¹à[›"Øb˜Gºû .SÎæ‡#†÷÷Q†a‹“ÿw±Ëøk—CŠBRµ¥cê{ Ö“õ|š²Úè´²_Žê™z¦Á¸7 œ£ðµ}ŒF;vbÞñ¨.±Ùë ÛéÏo2`õ:ÎÃ_J±0b½I¡}ýð]>Îúh×<ý÷ä/Õ8öFåÉÓ,® û®MZXãôд̘µ`›Ñ s™ÍZ:­‚ aÌfL壴/LîgXˆªÊ2×fÔˆtÍ'Åz’QT¥µÙefëlþ[Ðî]ßs9ß? æè"E>@Y+—pvDR¼Ìì{]gKuï¡ÍSíAÊùÑ–Ö²Bý +E`÷ejí¨rCõ|‹²w$ŒoÙômäÔÙSeÎocÊÚ<ËÉìxmõ8ÖÍïV±;Ë0ÐÆ3û^wc°†¯ó ÖÉz·í0}Ž ß¾lú_ż-›:û çj2Ì:+Úu<Îb´xžÂS69¥Ù¾ÆÃЉ)çF‡VžWè÷è®ShUYǗ/èÊ„ÆÜbàŒÑ`ÙV%·.Ph€Ïy’õŸ—§=ífM0oçiãsèŒ)²ÝMãõט§°OÁÝbyËi\fÔ‚=æôY\ÚŒZˆFSØO—bú]%aj3zˆ¶(Fº$ ŒfA³ú0ü.£p™ÍXwm&Ròì½Êšl2=Bá *[Ä·Ä€žœcòÝÔ.´èš=˨ñG3¥Ž*wÇ—Ãb?ãêž*70Ïì=p M…ÿÅáÐéïAÆgþ·c8Ũ¢02¿w'4V~á0GßðKŒ&G˜òqûÙΓ>Ïö*„»/ì‹-Êž²7ý¥š:±Í`?[!úø„ú²ÈðžÝ¤}ÓÞ[¢‚‡Œæ…¹HÙ'oR<›ö:”ψx‰“7æe]³}fL:ºAÃ&…göXLH·‰/õ<Õê[¡ìãËÌo”²ŠÔ‘)Ç4`‡aèÄ”¨2WجÜÅÆçþY£œùUæ“UwQŒq‰‚‡œÜ§q-véÏCV檽—+bÍ:n}rñ˜b€ØÏ¨ìµÂàS¿>:oá"›OY)æ}¡Å¨"UçDÌSOp¯ÒsP%¶Í@IŠò0-Ñ +;æåÒ!ëQHZôgX¿Èz„âE0w™¢Jkô…xm0û— ŠàúCºò~Õ kÞKdìÝɲQ-Þ—K)eM¹³Úé0 !—0µŽš«Ž*?2Ï^¡Ð5½¦: +¡Í@aQ„^]gO•˜gŠ’°J9{¶_“RšÀ¨À÷ªÿIÞA;oÝ cIe“óv÷¨ Å_wž[ooô<égÖëí32ؽm›œü½ç:нÓYöZô%c½B9·=…‡(ç¯LBD e¯ÊMW(Žœ3ŒÿÜãyŠ\³‡éFŽF•žKl>./vDÞd¶õ´Q=—3ÌË­‚†¡Sn Ê ¦ ß- +ð]U²°I‘µÞ¤x¶Ÿ¥ÿ³©qÆsšúûœžèà6Ã_öñÁŠÂü’kBk{ûÝð"ãçoLቓ0zôÆ–®Pæ`ZÖ¯0}ñý›åÅrR–®P¢ï]`ò=ãiÁ.ýžÄ˯÷¤Æ0GZ}wY6ØÌÆ>H¿ qBLʶ¿@Qb}Þº3t.0>q܈²öUDV´)ÞýSô\Ÿ·: w©w“„µ‹”½Ò©hÎìÕ‰$Å¡gÊIf…42,ÔÍQÎi—ašµË<Óã³çe¨žéÄcÚ iëÔm­˜gîÚÛ;¨i:qhúÐK(Ó7e: eF¦Lw‚cÑh-ÿ®@çÉІ@;qôa`~·FΗ(Õ–ÿ¶‡ëPøIîc‹‡Xü3²E`È›WùwqŽB/_c|r·-3æ—6ª1ÏFNù"¼h’ã‰AtÛkŒ§y‹#ã˜Óëšv†u +ï|Éü­eÀÁôÛâ +ëùl*M½“LXž„‹”ýg, +6L~ÒãÞË|_ûqá"“¯‚Þtø$Q¶ø €Ýžß¾ð>€| à¿O¨kÀ¾ à1÷ÇÔù"€×Sêš&hø¤ßÛ<¿Ž`ž~à×5ô¡ ™ÏÝp‡Sæ+ÈZþÀ¿ÖÐ,x ÀCžß¾ð3ÈÜ| à3$¯y²ð°ù×…o c|õqÒÿï&”¹ +YóO!ûà ×!ýta€;Í¿÷šzïp{LÝxùÇÙ2ïÚù»nð‡þÑ!ÿ¾×ðdï¼…ü²Ë$`Àw#ß:ZøBßðÊßVÕ¹’0áóÏÀ¯'¸ð „'¼ àŸjì×D Œ…á ˆRu_JÙëaù+ó÷m¡þ.¤®c¦8a}Ú¡QÈž‚0ÒÛbÊ}Q>C |Y¥0N9ã‚Ï»!ëq¯ù7®½O Dé]S›€H’öÏ×ð+Èw@Æ|wJïAöO“¸àG¦Ý"´\‡ÌeadÂô‚ìŸ{ J̃ÕAAÀŸ•hÇ…+}|?€(PVÿ"xýÀ/ +Ö¢¼ûàªó÷Ýð¯Ù§†¨ÏJ¢@úÎØ”L@ W™ÄXð€_Æô¯n°€ès¸2»1€ÄÐóÈ1¼Üoþÿ#m°Jâ§uH2ÄìC@hÑ«Açgæï÷Ío–Îß +ÊÁNÈ<¡ãÓb _€¬ÕSˆç_Aúþ3]óñÁEȹ½r¦?ÅͧÐV-†ö!óÇ·¿‚ÐÛ*yÄ$ ¡ ߇Èpw@ä¦mæÿÏøË õmša/Ä(xo†²?‡(Ùu8Àª€6„žï†ìû{‘¬³|À@h|>gÀÍmˆ‘ÛòÍm>È| á{7 ôÿ3ÈùøÓ£ôÇÁ<‚õ¼2;–Ï|„éC)(k°Ð‚XU~€lV•,pÂ_Çäã:`2WAæª)åÐÂ'…ÿgþ¹á¶ã ™ÀQR¾†Ž~ŠÉZ] èE¤jøB¨ŽAÖµjFÓ‡>ƒt/BÀ½¨ö\> Y«ŸCÎýŸCÎÆãþ¦¢6vB6+ÈeÛ§ŸÂ?¿; F“GÏãø©©÷-L–ÑX@U°Óa„Þ¾`,¼9¿E=d=Y”×eȸŽÀ õÄ `Ío {øOËuÿ¦EÈyF^=¡½ÖÙð¥ÁÏqó:¦ :M¯C nÓbª +æ ´ÍÒ’÷ð-ô +V «9³çÏ ˆáíÜ^q {^éKˆpZ 3˜Aª2hX‚Â@,Gyâ!Ê釸ö1Ú#€ka« +n@~mœv‹Ö2dï<™ŸÇ4®CöÍû=4m^šȘî‡xN¶AÎGÖ3òë¤ aÿõóˆâláyQC;'! +? Ìô [C;-Ñ1w"ð\[øa‹vž3³l굑8ÚÀ÷•S濫n\Ø|ç, >ÁôÑ™åïê3|. ¸¾ö)¦g}g0ƒÌ`3˜Á þÔapa"ùÂýo í¾UÃê\°w„·AæëDC‡oG ÌAˆüWË»½Jðm@;…ênD#öj„½s}3·xCÀט¼Uy'ÄŠÿ‚{ÎUƒ½*sÄ30é1Ï`3˜Á f0ƒÌ`ß*hÂ0ƒÌ`3˜Á f0ƒÌ`3˜Á & 8éÌ`3˜Á f0ƒÌ`3˜Á f0ƒúaf˜Á f0ƒÌ`3˜Á f0ƒÌà€™`3˜Á f0ƒÌ`3˜Á n=Xšt É%×t›{ °ö7ØvÀö&šf0ƒÌ`3˜Ap+ +’³1OÌÆ\ÌÆ<]Pטx®†zËÂ"ä«^7Ô^ À!H2õ _¼ú>€7Ô>L{ï7ÑÐÌ0ƒÌ`ÍÂäëÈ7Ê›†yÕ~«¡6oE¡ª,ìpâxÀӘξZ8†[O<†Ù˜§fc®Ža6æi:Ç|€W!Ÿbn×PX…|îú¡†ÚÛùÊÕ믯}­~{µ¡>ÁWój‡ÛÒ‹ÔOx·Ö'¿!ß¿ÀÏ«Ý ±:]…|í:Äu+|q2Û ÿŽÿŸ½÷ñêÊòE?o¾B •‹>ÊKù0PuQЇ¹(˜‡^Ì¥ôbú0Cr‰ƒ•Kr‰Cr‰Câ%¹|3$C2ÄF›8˜!iÊ&6ñ¢Ml´Ñ&Ê 6fÐFmtøVРAƒ6e(C)Ÿ÷ÇÚ{Î>û»Ï9ûüü~«ê|`Qß:?öÙkÿX{­µ×Þá³Ùo@:ã Èq—Ð}猉Î? à_ÕïÖ@Êå +€ßUž³îER6Ë!Çd^pÝy4ä*HÞàmWñ÷·«ïÒ義à›û!ÊËO*øVô8 èç΋F?¤¼¢½=Þ‡ÌJ<‚´}­0ÜðcÉù‹ƒV$WAf2ºaüZ à ¤Œ”~ÍsÍs§Pó\èßp¤¢|¢¿2ASªnÖiÀ2Aš¿íp^ªÂ{vz>ûÒ¿pbü>i 7Ôï¹/Y'•¾,Xñì­miÛâĈúÒ9»AHwÌW¿7˜‡ÀX{ +ÀˆÑÈ@ðWæ­[±À^ˆCÍĈ ÓÛa40“•*s +Ö“Yþ"éÿO#.̆ȄuGò:Jƒ3öøeñY÷ÆLT$kž;‡šçrQóÜ9Tm /p2NW=†ôBŒïç*üf?Ćx À}õíß@ pÙŽ÷Ê‚vB<Žiîø¢¨<  Ý9[W$^ƒ¿ñHý¬Q‡1ÈlÐ5õÿtgDÅ€W!‚e^δU:/@ ½c¶ôUÎt;‰~È€3bìk¼ ©ÓûŒØ +qžýKEùëF¼‘#.Y6ÒÞ6*êä ^C0S•*@fêw@Œw[¡x b¼ßƒ¿l|ÊqÍ3ŽØŒÎ9[fš" Ô<×<—šçê0yÄ= #wB"ÍÊÆRõÍ%|ËÄ'‡»v¦k}úŽº6ÒÖøcÉyéG°äaDo-Í.îäK!3¿ïCf,6w0/U`‚u$g!3N» Êà Šv@Êã$”ÓƒF|RÑ-ÈšÑnY+ºÀgÅD+¸÷ ‘'!‚OÓaH™E•Élˆ< à<ªÝ±³H,ù.Å~ ÄQfã ǵ™‚µÿz&uÌznÒ6*ÙYµF"´RÕ‰~Ú Yç¸Õÿ!ò=j6aÚeãH¿„(R|s#$Bª“k:µ"ùªÛob)DtBqjžkžËCÍsõ˜‰óLÉHÞf;&Þ-‚$ßq|{œä{$ç”ôÝ^’¯Dð}†ä‚¿õ¥.7¨²¥´cÍç³$/RÚæ›êš‰óŒî7®²‹Â‡òÔ-Ô ô—óže0ÊxÔG‘&>ëoŠ2hÇÕÿÑb’çÔ·oßî/™÷Qøœäu†q“äêˆw“ÜDsš”>7¢~7)íe5ݲ¥ArÛñ™ú¦Æp‰¼n}ûÝmv‹ÊÓEæ¯û›QØ]0¯£FÚMJÿûÂúæ$¥.Pdöq¶ËÈ$\¦ÔëZJ>gÝ×ßÃý¸`~mž£PÏQf¹<79óê¹æ¹æyºòÜfñçùüz¾UÐ÷71}›™$ùbQeõÅ~Šòø9É7rd E1¢HQBÓ¾¿¢H6t”n¤õŠÇQG9¦IçeŠÂvÔãÙ¥Á^d“E³¯>{)‚ÐÆgÌV¿Yó°Oñiâ&Ée¤? ÒZÁøÎ{”â܉–ˆô! QFÄT¦úþ¤8]<Ò]ëx·hÃ'ŽV’¼š‚¯NáÅØ.£ Fï493”*P²Æwî²<'¨I.ÇW^/ð»£FºMu­AqÚTÛ™Ô2î ³8^] 5¹€ð®öÿäH{$,dÂ!´Ô»« aE/¨ë³ û<„ÔáN³ž¥"cnJw²»õÿ. }_üà¯!a:„‰Ï‡´‘§áÝòÅ3íˆ}ÚsOßÿ…ãú#H8ôAD¯>¬žq…±¯ViÿÏ„ïw ²ÄsÓ뛯@–Ph BêÓgMÔ?CúÚ qm»J¯ìr@ø|ÙnÆS¼V±OÂ÷¾ø>‚¥4³ áì{r¤»D‘+,ú¢C7ËÀbˆl6÷õ8jޤü"û7CÆX½Th¤|Í#3ß…È”²Žz9æ÷,D.Çõ…¾zKý¾gAúoR¨ä—2ïÆSp¢p² ò–úmò¼É'N?Äø7ך^Ré—½ _~1dŽ XWÿD¸®Cv#`.òíY¡·{œ Éø?ás6€¿É™Çª wH7ÿ[vyÀ|ãžãÚNH]–¹z'yâÈèF< ‘Cd‰kýyј®JUÁ:|{Œ}ÐþxiøíNñ_#ØtUË Ù:/ÛöKHû?‚`¼¾¯þÿRå)I¡é…èOAÆs3Ä÷!2£“û{ø`:)Ï.ÌÄz®yÔˆ00ÿ“NRÅLWþQ–öC”@”Ýœåò‡2+¢ÇA;N Pøô¹ÞIÆ?8{¦‚`;‡" |nEqí§Ñ—]ö›‚¾eC÷‹þ²¤o‚Í «v¦N7¥ê¢µí† €(_gkO£š¨¡?@êf¤n!ƒïHDÏ?CÞ‹!JäI¹9R9˜NÊsfb=×<×<û`*ò|©—uÓwßBx¢ÿ½…ê&“‡ ¼è(Ý4'o}àgɈ/!‚OAêÒEêVƒ'DæI¬FŒÞqá݆«Æ:H%,°ÝŠ5×ïAfÊ]羛؈pH¹Þý}Dø¸”‰õÃw bø¥ÞyRwÇ ;AëN÷$Ò;r7•í¼ˆYÛ"ð2[AX°ŽXŽôç,¤Ü\3Êià³ôå$@‘ékükt»`1„¿ÆµÃþkÊt–BêRsv árÚŠ@Ö†ãºlfC<©O!›CÈÝ`øÅÁ,¯´GQé¢T #Úø¿qt~É6 «<Q/Ó*D÷Ê7“˜>ÊsÌ´zjžó¢æ¹» #‡}Ž.Ï‚!ÑÇ “Ï”ô 8:z«u}n†´Lƒ?Í­_@ôÔÃȶÜqD_½³sM’eul„–w žè¤pê9s9•Yð{4ï@Þ5„g»m¼ªž½¤òTÔ[4^R¯@:ÓvˆAªC_ç£ýè¾w!FÃaˆñ‚†; âTX)£w!ÂT˜OC¼M?¨ÿ{!JõHØ- õ¡ÓÌÒ v!ìÜ8 1èºÅø×xÖ³ÔÅ|GÄ¥™9©ÞÍR^&Þ÷|îO2 .MDÿÝèX áßöú˜_ AÚórëúHxWý6׃×<„ÛþAˆpu•q>C8‚Aã¦Îú]«ŒÂ¹tü(S]©j ½_Ÿ…hPþ¾ +iq NŸéŽé¤<רQcfá4DG*koßø ¯A슼¶.D #Côí跴Ë@çäȇ^rpéËvPý}€"dóDDô:è„׫٠+º q›¦](P F›}L][ã‘~§°qpR&ƒξ…ðfp+ 3¢Ôßo!³J.#?Dñ<1òO Ýybè˜ç]æY¾ñ<Â{ +h'Lª*lƒ~Z¬‚ÿ#E N„“9òñÒíAðûˆë¶ñ¯—'¥°CÝë&'À0„Óàx‰rxaçQ¤®VAúÌ,ˆ,8¦þß· ›q¾™MÖaW7Ôÿ:*d>‚åO@¼ÃYÂôçÃm,»®E¡2s¼â4„äw ÒÖŽ Ù€\)/Æ<•Æ5ßGàçœDtÞçE\¯!mÉ É¾¢®u£LìAØ9廲†¦›ò\£Fé‰^´OT†È¯ª'ó~ +Ñ!<É–w©Ó0½]ødœ^Œtê™{s|ªËQä@у`WÄÃã!Ä@ßQdÇ …u ¢„·Œ÷Iœ qX®h#DA~2¸~i yC±Ë†¹Dâİ×;U_BûÒ…ƒv=×aÃ/AŒ˜]FìZG2bÔ¼ Ò]ŽðÌö´GS˜õŸæ4†>„÷\¸©›nTtMhã]—? õs닯 Æõ® y8b–ÍØÆÿaH»Ðζ=v¤Ÿé'Àk‡<Ý8¤>A¸íôAfM·¡}fr Ü;¼»0aÇâ.šÞcá‚ÁOï¹vÆî‚>MÌ…_¤È‹*oæ³÷ 2QGþìUô6ÚûYŸzß\ê ±Rf/!XúðK<ÝD)¹®×pÃÞgb/ºW&¾„pÔPžÓx4\Šd·¡è5ó3Ay¶‘¥žȾG–w»çªQóœ3g½³iSðWŽgW@lˆ"Ç´~ˆ¬2ïßBô6S޽ Ñg³FykñÂ:ð7ýó#ˆ³ÞGÎô ¼lu²íÆÿܓכQÕ Ï¡œ¡8Jò å¼s}Öñ„:#q˜ÉgÍ·(çx“Éçy÷PÎä´Ï”lª|4‹8±`êcpŽõUu­Ÿr†ã0åœê•$‡Ôo0|^ø§”óGw«ÿõ¹ H¾A9o3 +ÇI¾Irƒs>_±òg¾Ÿæljû|ûçK*¿²h1Ãgp^¤”sÚtÞp”{.’ì- ÿ«>ýÃç_yvwßÏB¬²8Cé .ÞŠ87ÖÆmºË~ÛÏiðàLJzœßÛŠxF÷í»$ß#¹Ôº¿˜rn½– ×>v½z—”³ƒßPiêïºðFD^4Î0[ˆ+S®5 L;™eU&i¨i•ópðè"×įåL³Áöñ(ošEÑE#OÌw~sÏŸF<;T_ýù`__Í@&TÁs\=÷Pô³}¯QdRUÖóLlÛ5ÏÓç7-~Ò=ök=ò‹ÑaA‘_—)z‹KŽ-cXw½Îd›2Št:ë÷z_¾ºñ€zÞÄ)ò2Äx x¼ÛÊX!Êúâ€Æe’/³Ýtxƒ¢pM2p\$¹Àñ¬«±­%ù1E©oª|ܦ(6E4Ì¢è£|ÌÆµ‚b ÛJØ{”s½*ã»”F?Îh#»Ÿä&J<Êp‡ÑøL•mÃzO>§Rð´ØJûhË75->^ΘŽ-@£p†Ù…—I.ã¿A–浸wªvô3¬F "v>Ç)ÎÄ&¥~ÞcØLƒ¸üëÙ"Ûô¨J³å¸§H—ý~Åï¶—…ù{-ÆÜ”öç4á’'#ò?“”ª-ŸQÆàJt9À\”Wn QÆëÙî¼%eŒIãv‘-mÔI²åJE2Žç(åY;ùŠl÷U*ÏYëy=Ãòú½ ß›CÑíH‘uûÝV«ªç™Ø¶kž§ÏöäÇyºå×bëÛE8´üÒˆ’c¶“F2~Oçßõ 0p|Æ`Ò4‰PôS•žï å=ä w[Ë!DY^ZHêÃåö:Åu=»”Ry«­ëÏ«4îR Í=C½ApT^š #,Fä¥^4×싉¦Qv#'€#ýuÝî°ýçˆý »lGŒ{.'M™ ~‚n§ÍT Ãè:ã;^53̯`ƒÑÆ?(ʽÆëïîf±³¼q´Ïøîm† ŸÕªü>6ò7I1h]ef¶?_\erÝÚFêpA¼ªôZÖõ…”þc–Çk Èq§”Ó8ENêÌ·Ù^¾#yuÑLRª8ÊÙ”»=$?4îÝd¼·¿â(&ÉsÇA¯¢aJ}_¥ôý¨4l§„IŠ3)O9ÚŠä9V'[|i“Å÷HÁ'€+½ËŒvˆ¿g=eoƑֆÊä=Š®æëèa±Úô|gH=?šýn+ûm”ö…ç(LÊ‘˜çÏPÀ/¬ëT…œa€ÃÊ’öüžct¥58Î1˜Ñ¹ÎtFmôºÁÛ¨º¶‚ñÆ?Õý¸Æ§©Vã¥Z+‡ú¹• ; n2PøÍÐõ‘<Ù³ÿïTV¢g-~†s¤ p™åÎüëû¦a¥Ð'¥Q™ßÔ‘[Ø>Òþã"y²Dø8ýlï/E„ºªôZÖum «ÿ?ÈÀ—~?­ñ¯a##ÌÏ78ó”*Ð=ÃÞb¥fÃŒþ0iÝý# +.ÃÒ.·™ßøw)’i¼ªÈtD’ÙÉ(ž"ž}ÍQîyœPž}ëY‡û»ÚÜ]ŠÞ‘ÖɾÑNߨeeÖóLlÛšçÅ f)£fRAé ú¹8]vÃ3ŸQÏõÐ=CÚÉzžÃè>×G÷äEE[Ívݢϣ\‹äùE+á„çÓÊ(êeØî#£˜f¹™ÑzW™^ÐöØHÆòò©ß´‡ÔóÝ@“O»~·UDÞ}l0PP'(ö0ãTÔq†ÈE¨ß¥8tx°¹þµ©žé£„e¸¾ÑdàQ隆X§ ÔJ£ÖÐΈóô[ßüaLÚ#1ï3¸[Ø>ßdØ€JkšFæ8»#Ò"/™‚å\δF¬òÎ" ]äc¸›B5.Ú j'À€U&+Ø>hL°=ZÈ&—‡(Ùᢗ­w›øµiT¥Õ²®_§È½ƒ(¨,¸ÊlÆ?)õ`æIc„ùùN«T™Ê`QE= öWIòæ¥TÒß[íE‹qŠCh“¢Ý /™ñŧ”qw-eìs-#¥Ÿ¥Y‚G¶"ÐiêaX‰Í¢HºxNx¾('@§”gŸz¶Ãý5&)Ñ]yÛÚZ‹3}{Y@YõlòüE¶2~ÿa㹸¥wËŒçFcžë·žÓåZϦœŒ[&×4ž‹ãeÈúVÔsöÄ“ªàÙ•—/Œg¯Sd®®CsÌ;Ï`Ìfû¾¯÷L]ý F÷—"xn0l‡Ø´q¼›v ™NÇuMT$ɯ¨¶’fœYÍðÄkÑ“Ãi 6/Ã)Þm‘w߯rH}ô&Ea²`ƒ>Êvß_Ýdû& +—)7‡ÒX]ßh2ìÐ×71¨ð8cº,2 ‰Qum=E!3#¢°/"ÝçÕý‹êW4Áe†ÕwMás›î0ñ¤v`vþ‘”ïw+ÙFŸ½ [Ú2ÒÀ]ú ¶$ò5Øõ3W L³°Ê×6J.RœvÏÒ½†ª—"s60hÿ¾¸ÉtŠgƒ2h›ïçUiµŒkýꚇÏjÀçÅ$Ãõ®1Â|<ƒþJÕõ=[–ÙNã4ô +ÛEW(j6¥HjZH·±ÒILRdþJ·‰SVEÒ¬û¼Îž”ü¬µÊ%­Ã"+Ï®Ÿ4N€N)Ï><÷Ñí°¥´·æ«ç^#W"¾eOö”]Ïf}ŽÆ¤óŽçsCV~£Úô +ë9ÓñQ6ÏMã^Üd‰¯£ÀÜ·ˆŒ–÷¶ƒ¼Êz6iÛ `RŒ÷Mt;\Sê6*ò÷Èë-“—g[çõ w³;\òkœéöÝ1#|ô\¨2l©wöQt®qUEé¼:ÊÊw#À!õ¼½€®ªßm‘wŸ‡>VÔƒM¥“ SÚeº=*ï¨w.2z¶¸Ÿ2Síšõ»Jñ˜§»²RTSåã&ÃÓ ç¡-šl2¤®ªxi2ú»¬îRÊ»—îYŽ3|R:{–†?d¥›Fht3õ2,¸óF ¨ôòÌ"jò5Ô—ZÏ™v^ w)ý5ê›ë)m×wM¼ Y›m'CÖÍ!5ªtZƵ!uíŠ\ì$äKc„ùxöUª\3š&| “â–RL2ÚËžW©²©‡bp›Ž… U[l‚ëÛà™¤(Ž/Ò/Ú`œå,‰³IßMìå?·)õækÈ÷QÚ¨)¿Îп¿gQ$£xN3Úû~N€N)ÏiêÙÜHõªzg„aù}éäéʸdö“«ê[æH‹î¶S&ÏæDN+&CÆsqÑhöþ!QíÊÜÓc¼bžÍ±q‚Ѫ9 õÐk}/*ÚŒê½\1Ï&ÙËi|‘Õ<“—<<›õs<Å{‹)ýÎ…9šð®kÏUŠüó•û¶ó+Ê¡o’^æ{“Ò^ "u/²˜(8=áš½ªiȳÌâÞmïD€.¼ é õÿ°b@¥ö»½£WÏ<¤ÍÜjJC‹ + >Ïð)7U^Ìg†ü1ëC®Ùßq&¯õý4"]mðoaû‘j.L°ØpLSøµ +L·è3ƒ·ó¤—w]-˜Î@7•‚4}­L'À2J[n±×ÝûÙÁ’®ÈŸÑ0q3R¦qÒòà5ŽFé ©kMF‡ƒUSáÑa>ž}•ªüEm®æ"_¹Õöò(Uqµaëj†7°uñ>Ävg¯©TÏaô¾Ù–'ª)ŽLE2n¦Ï$—¬qŠÉÊàÆ;=| Ì•Ö;>Ф‹ç4Êó2º7çõù¾½A)Ù¾kê³(Ïiëù8ű5Àøý+âŒBM®™FMJ»e´s«¨zvñl; £Æ“‡7¾i:ú¢CÏœª˜ç+m×$‡íÈx>á›fÄÝÇϸôã2y6i”Õ¢“—¬/¢À¨Á°26dÜóñ^d´ÔTÏô1Ü \8Ïâ¦îIJŠ2É4 'Y\ˆlVJk˜›JuZçCN€7=Xœc´LRú|eH˜JpÜÌmÀúzv]4ªÒh׆Ե&;ï0×åkŒ0;¿ ŸRe‡êu=l‹ôqdÚ²÷&ƒzÛÄö5–®4ò(’yÈå>Nq`;ÊããÞ;lÇ8eÜ-s[‘ô)+Ÿ½.’Â(GÞŸ¤ßFmfä‰oÔTVå9.ÚÃg™Q\´ßeú‡×§Už³ÖsÔ¦}&â C{)V|"NЍgϽ Ë—ã}ÈJ'i1£ìýYt¹˜³¯ïUÌ3®—lo÷'˜Ü¶Mù5ÎvãÇ'¶t€gM£L‹Ì~t±iwųMq~ºžÏÒË${#.Òô;© Gé=”|øu+ JŸÌ;N®dPÇ>ÎÍ¡„²è +€îxözÈõñÝ Â³F#2:JQR²dv”¢øÐí Ó!þ¯00ò]©Ÿ"ˆª0ì†ÀàsoÜœg`õSì› Ê^{Ðz:ú1³gE †»(!k1M'Ÿ"ióì«<ûD¥Ä§ &ËEߨµ´Ês–zî§âÖÛ³ëQñÈOÞzŽãÙtt´Ø®w™‘QûX™dNDí{_•('v™<ÛÎ(SWZÌpCT4«Ý§M}ÖŒh0<Üf´n[&Ϛ̽ |p›5á»\×F’#3 Ïft¥¯^Íã“–oöq.Úò%iÂkH=gÛ±E“î»QQ,®<¡´›|Þm‘oŸÆe¯‰^@il2Ü\ÞÜ!æw 3ÚŠ€9ÊÀÆò©Êgš5siÉžzžÁÑZhé°èQE_¨rÜÄ qöStÝé¶×')ƒŽk Î8ýŽ‘ÈB¶R_ÕrŠ*ÉtÎdÙ¡¹Êjˆ§Ù°èo›ä +ó:Oé IiÙZLÒ=Ë¢ °4ޱOt}”·(Ui´¬ëwUºvߪ¶a­1Âìüú(U= ;XšŽglÃ)i­µ9{æ2.zVN]ß³)U6õ1»Zì>Ü¥´Ëwè¿nߦ,ŠdË3ïÇ…‘šˆŠð0ÉvúúDNeáyÔ#¿q._ž}òŸVyÎÂóg~'cÒx3æ=£ù)³ž‡¬´1cìñÌgi^ÃzÈUF =>Çñ^&Ïv'(NÍ÷ÖK'é¯'ŽXù=J‘Ïö¬qÜ^^UôçÕôÇ$çHÓ;{}–¥åÙw“–g€þ{ÅéH¾ý¹é‘0ìMZVí()¢"i}å.“CêÙÑ ßÑï¶ŠÈ÷Ÿ!‹Ôß Öõo<à€ŠþwL:eb€fXà_"ž;«þ®*1/[”Ù˜ú{ÀIï«ÿà¯ü¹¢ÿàø•zŽn©tV¸á ¾ƒðú €yÖ·¿ð€_ÆM‹Œß÷ü±¤ït_¿ŸèÀ÷WCê÷1õÿ~›MÃ%ä-q³Dý½â¸÷[|vRãÿèñܘú»$î¡Ð @ã$D©Ý1Ø}”µ+Îy¢ìý Òp+“{!Â%ÉÀʃùÆï;‘OùaŠw m" Ìh~äSåÀ6þ÷øÏwMx6ò)ÁHXdüÕ䪓ç íë¯=ò± +aGÑNÿàñô#¿¡ô.€ŸGÜÓýïú»ÃáD1¶qÒú €Íž½6|qî€ he:']x‘OEÂW©2Ûì-¸Ëõ‘zÿÇ;6 ¬€|ñÜiˆQD;ù´R¥ÇŠUþ9æÛ€8”öCÚU¨´Ç òæŽú} ¢8Ü‚ôýgŒwÞð3¯¨{OAÊæ¢ÅÃÛ65Ò—æBúã|}<ŠçÇÕûÛ!Ê}’#ÙV$“äŽÆ×Hîçw|ó¾ïw|pA=')’Y”gÀ_~ 2æçyßz²HϳO=_€´óÙ ÏÅÕQ7ÕsÏ/©ôõØgB÷!ãèÉÙüd¬Ù¬þŸ…ö>³ÀïÒ)“ç_x¢¸ô†]þ.! ßC²_Bd‘ ™˜¤ã–ɳÆKþgKðëÚ/|¢ÞO»ˆžÌ´‘†g3Ï÷áÖ{lÜ‚_¾soÌã;ú[>0'º’lºˆMu ÒVO@ÆÉPŒ>·Ò!ý<ÎIÕuˆ3Äô€ârL5Œ©¿¾ƒdZ¼„`¸‡À:[ýN. ˆb·×°" X iĦ‡õĈ)kÖß„i߈|*¯£Ür¢„g騦ðIj'ýp6D…ÔÝcê÷?¥ønãv cD+û¦¿ÉB܆6H|`>®žS<ëÂGþWÌý— |èãKH=ÝB´Cë[u_·ý¢‡¿…kÐ{Å:4¥Ê”cq¼›÷\Š¡Æ õ”2bÎ~ÎÐ ·Ã0RHdÁSÖµú= iw_ÃOáÚ°àiˆà’JçDf˜ÆüdÆQQtzo•ÊïÓ,s!3\!J~̾p/æ{6>AòìHœ¼ù2nŽyæü[fûJêßY”gý¤ˆ²ûÞ¢Þ÷Á¥äG¤Sž³Ôó…xGÂsïÆÜûgˆìˆsŠ>@Ñ•„¬õìÃów¾´ÒŸL\‚8}9­¶ayzO]û™Geò ˆŽó%DZ±%®AÊá+÷müÒO¶AÆÄ¹±ùˆJÓg‚«lžqÒ­Èv×7Æ͸]½»(â> º`\ß°‘†gs óL_GÎÅÉ\@ärN Ù‰ðу6ÆŒßI“uƒêïˆNº Ò‡v¨|}™¹÷uÐi,…è•Û 6Ñ:ˆ „¿Ì> ‰ï|fbËœY® +vÈ|‘èA8lëˆÀÒFØ[%pD±„Î]ÝVˆxRºÒaÖ@³®NC:d”ÒÐØ„ò½cK Bä?fx× ;Lj/oA=­ôëæÇ uu~ƒ`^ã;Ž ½“ëdà¾QÎg××À?ŒoÐø½ éäFžpæÃ%$?"¬„} à?y¤} Á7hgÅ«ð¬È¤(܃_ˆaZø*U÷Ì FÍÖÒôsqË[Ìô÷L* ŠƒùÜcp;Ò(U+6þ/@¸,JÔ{÷ôc½Tá +Dîí‘{=¿¥ûÁ¿@"ç>¾ 26é¾ÿâ¦"™Æ!üHÙDµ½Ãh_FdC;ÛŸtÜ{K}[¦£(I‘Ì¢<¢')ôqÊóˆ<ÓÕî!¾™3~§á9M=ë¥_k"î›QxÑFÖTSϾ<àÿ°Â÷,HMš¥Â#H›y áüî…Ÿñ”Ï3 åŸV_‰ÃŸ Qƒ¾‘ƒ6ªàú~ÒomY¼ÑQ¨?@ôÓp÷ç ,gÓÙ›&’w'¤/G¥ñŽÛï åç°Û§ª¹40IWT·BÊý'~ô4¤îvAœ'!»$]t>dL^qRnƒ´ƒY>…8-}‡ ¢3•‘væ3 ¶!è!ëÿ7Ä9°2˜g D¸o† Û!i ÒPÀ¨±C†Þ‡ °U:fL£ò^äSñð™I+Y£<ÌA )ÇVúíçŸD² ãÏ.Eåûd pѧ“ÞKHoüaA죌ö@”¼g½m| ¿}²b A=Ç­qËŠ?@Wß(‹¢ð*Êqú*U¾JÞϽ¬ÃÄïáçIÿÎó¹4J•=KyÙ@ÚòY†ÿ\ȇo(öþqdÒ·ôò†åœ\I3ÖYI@"utÄÔ“±ùÄiïHŸÜéûK cÒi¤ Ò)’YyÞQ6í[ˆwÆ}£îÇ9F^B´ÓËF<ÿi£¯Bô™åêhÜû´ØÐFÖv„ëùKH=ÿ!E~ªàñ²¨ý‘L½RcDø´ñªxî&TÉóþ?Ⱥí½Ýëd?¯8ü"ël½þ +DN¤]š†g’ù7|çìåi Æóv$wÿ1®ßG»3uÒE2Ûõg£ê%I‹ Fþ×*χÔU‚ño¾ÊŸÖ…g#(«;Ýà‚ˆ¾ˆSç]H›z~ãì`cþ)¹åX‹`ÀzSß0¨þn„¬Ù(*ôµáÍXŽ ¨¸~È`¥L BŒ®%FzCåï€gÑî=¿ihI¦ ˜”2 ¡n@š!Ix&-ù(Êø_ˆ ß÷Õw]F~œpÖÆ¿îïYŒIžÜg!ƒfž½¾„ ˜e:Ą̂²ö­ø)¤ì}7ŽÉ‹½c˜éŠ$ ŠÀˆ‚q¢t¤?/ lä/8¾2þ׸†lΜ¥en3ÚǨ4NÔ4Š¤Æ¯a„ü½¢ü#ƒÞBXœ†èþ¾N<ix6Dz´úÌ7þ²YéÝèÒ9,~¡h©Êˤsäiسôq›†þÒ_tTß,ˆ,Þƒ ªNSÒ^?½‡ÈNÈø9O¥{ þÆ¢Â>èj}B¼~Ÿ2ÝÂ!zó¼ é$¾ +»™·Ç½^ÓkŒ|@°‘R^ì@x@Ö!î=åï ë|]˜ i@ÿ ²ƒôFÈ n+•_C „J¼BLeeÞf™'…½ ©+—¢üâg8Š2þðÌù»H:W†ñ¯ÓuõÕ„ߤý$C¹3ÿ.”¹SÿfˆÁøLÒƒ9qrêH˜‰Š¤Æ\È žåƒ(KW鈜;p+}cÖÿæŒI?Âr'ni ÑCœzóª'‘ì|›‘7 ¬H–]W6Ò(’y”çüwÈLÙBÄÓ´©Ÿ)ÒÊó d›ÈÈÊóL¬çNñlÏþïA°‹üˆþñ?Ò˜j<Nñü=¤ûâ;ˆõòoâ†gs\Ë:¡ñ'øEðÄ!‹Ño¶’'¦>û D7Y±mŸA8c ÁƇì 6WÑãH[åÞ!2}?ÒOhDî°Ò9.!¼†=M¥ïDpÄ ì-ȬϺ¨Ï!FÉ'êÿ­*/>ëvm¼‰`‹KÏÍ«Èç™DAÚnüoïBŒ³N·&&]7 ×nÜUìòŸsF,n3®© s@HrüÒ¦Ž Ü‡’Ö£iüíÇä¤AÑÆ¿)üHç}ä7þO Ý®ÊS 2n?Ê‹8€`ü²0IÛq8íãê "{½((wÔûwЮH<‡ ŠÍ1îÍUïÏFºÍ5o ,Ûã8ÓÅ!œF‘,ByþÙ×…kT©<Ïôzîo x¢#ÌE ¿w@tã8ÐTâ¹(L%žßGö M¤5†5ŠŸ{ º£ÞxÚLûÄîúÅ-1yÎ21óähj}|½ÞÇg¢Ã˜?ëh;í8 ™è=ˆ ¬3äê;æÑ§QüÆÌ±°²ÅÃæĈÕk OB„oèè ¯ååbüÝÓ§7Í;÷¦?IØ­ò w | ÂÓ[™Ú²8«"™uŸ™n@ͳ?:ÁóV„u,½ävˆ ÐáÆïø¯1éL%ž‹ÂT⹨ý"Òð|Ëø]„¿¢W< ?ÛîÄÎÙ‹|ËÊß¾zYÜ)¿C>ÇlV½g Â'Ö¼€;^U×v C<Q„@Œù¤Ð# ØUñ dfòmH'K +WÔ8™Ý<«ò³éŽÊj¨ØÑ“Cò¿ ÅÔwS¥÷é'5®@öëLÀ2HGÐaÿ? Xø D?Qø—@˜ó¤lWï?™ußó¬ï!¶¢ ïGü’ »²ßÀ3Ösè†ò'ˆ3ã)dëô}h¯hsýõ ˆpY„èãÐ@ŒÌêà!¤Sd=µLüˆ #Rvݰ4¡(¬³þOND‡3ùÿ H¹j#ÿIõ¿OXÚ5H;ÚïñlÆ?޸gtØbZ<€ŠhkfÈõCø;YŠÀ#ÈÀ¨™YPÄ“´3~ÏÃÐT@æB¢Ã¢úTR4A…`5âIßN£TÙòqÜkYí²ûå/¥‚Pi žs«(ž»5Ïñ(‹çñv ‚ãÆ‘C7,Ò¸öóÄAÆØ·Õÿ›-ã»ç(,@°Av‘Fw7ó\Òðü=Â{½¬ƒ¿ÀœX51±ÍC&‡裷ü?öx ¢/j]pÄvÚ ÿÓÍë뾓u¿G°o×»Ûk¿Ê÷Y¤,íØš¯BÆÖ—îZ@ôŒ¦ãúd;"5L¥\wf#º† dñƶÒ®@*þ}¸žGþ.GÞô& >FúD(®QÿëYþGpó5iDKÞû´íkIžC0ó©ýùîY°kÃÆì¸÷UiŽó©§”å3¨n7ñ*`*Î_£˜c/]ÆÿN+ù«Ðîƒ>GõDhùæ³,ã¿á ËÒ:Nâp á~U5Leì4*È~@0`Ùª$DõÆ?PŒah®i·CäQt;¾`镆=¾ßø]•a¥ÌüI=µŸMžþó5d?‚¨cZír´aæ)Ééa+’Qõü ¤µŒ8|:zvîÄmŽjÖs’"éËs·£æ9EòÜ 1 6#}¸ô~¸’#ó!Ë]Ë÷º¹žAäÑȤâÞ‚¾×Í<—…4<âtÙª~¯ƒ_d¥­?šß{ÉÆóÛæ76!ìØš`o§_zäå)„'Ç’Æ5zß®ýqr;‚=â.(º³ô¦ì¦Ãz6¤í®Sé̇è ‘­í ÂM±Ué›$5½IÁ°qmD]ë7®ä+$ïª{$?#¹Úz¦ljÜ@ò\%9d=·IÝ{ǸÖT×6¥üfÁ·‰Û*?æ³sH~@ò"ÉÉ£$_&9j½Û"¹´â²ËB¬|¯Hù~ÓQne •2_ †ëô½”ï»h5Éq#Í ’çINzò0Ni×»)mFã‹ yée¸\f{ÎJV¾{#žkXå‘„3$”Ç,´ÒÊÏË9ÒUi´2¾ßÃv™‡ÏØ.‹|Ic$¿×tÞˆyî¦ñ\Ó¸Þ4®:Þ6î·÷‡¬ò0ËÑlƒ¯ÅäÍ”/zð|Ñx~w³Ëèî —)cFžv»‰nóYÂ{½Ö{Ïz|ëSãùQÏç®æäχž·x_ñÜõœ¼ñå¹[©›xî#¹…ä‡$«´?£è¡Eê’à¹A‘/.]ÑËbÒ7å‡K‡íÏyê„ý8JèÖzî4eáySÊw$Ñ W™ ÷[yÖ˜¤_¿ßm¼sÞãù¸4†(2è3Êž¤£N(ž‡I¾®®%­qõÖ¢è;6Åé滹ÛП¾Wˆ®ö~,±®ÿ#Ä{±âmß ñî_†„4,,ÔKÆBo@f)ŽAªÓ›x…g®Óc9Ó³gþñ.‡»=€ô=Ž»üwþ3dלÁJ»IHY3ÿvX±-'4¡=œ1 +{!ùum$XÌ}; }–¹JèÓx÷;ydèIãw\Hº¹[Ïqèð!D·<iŸOCÆ¥ÍðÜÓ.x6ç·€êy^iw{­_^ƒÈÉ“*Oö¦›÷™jF¸¸¾Ñ õ‡Ó}h"Í>_.ÔýÙç··$=~ÂÑYŽÝ‹ƒNod¬è‹y¶ὃ²êe:Òn.äd»¿„ØiÿáSyž„È¥UêÿÇü9€Ÿ#èwyö†ƒDÄÙT]´©á h*ÏÂ+Æ5=û7Ö ¹–2k4axK.R¼»¯¨û<}O¨ö_6ÒŸ ¹É^#íí1=ªªkÃ)ós^½wˆä9†±Z}c’ÁŒÝmõÞ +†g¼¨žÉ:S×)2=¦L7“Üd5h¥È“Y§YÞuÑñ˜¼MPÚ͇”™ÅeLnÏ￞"eÎü›dzM?Žyn!ã# n3}DN´ÂÊ×¾œéªtZ9Óég» 1q‘ùg5Fr¤aÎ0L2z†ÁŽ(Òuß4®:Þ6î·÷‡¬tõu³ŸŸ‹ÉÿÇÆs¾3 «­o®ô|¯[Èœáõ|ÇŽ¨hÆA £7áZþÒËp[ù4¿®´È|“;ڔФËÀU~¾ïºÊ65™ÿè™›› ´6z³¬=^H‰¡D­ t™¢ï¦xZ²1·­Âêe`§Qšõì÷”Nob„bÀ˜ê*e=¹785M¦q{—þuÒt”EhyæÇæeœùgPÍ6f¦}“Ù0<@ùìaz©ÉrPq“ }”þr™íh±;fý5Ù†¢¯ã3Š Ï‘GsO4ŽÌ8Ò8ž3¬†áÇ,^ÁX̰Q_–ah8i££|)ÏÙ(2gàÒÊ@[‘Œs ÚÊsÒ W²e8‡ùÉ4<÷Ó=r†ñk¼£¨‡¢¬Û +“Œw¼Vɳ‹šŽü¾Çh§ïZ†ؤŒ¡iúc•°ÞË»oÚMJ]fy·ÇÈG›A—A‹î=âhÄx7ÿ ÃSm0®‘Ò9Ëô–E:œ÷sãš6Xn¦H§—¹›a/u‹Á@6@QÐ?P×m©ôtŠlôçžï5åQZžù± צç{iÚLN3¤>XµñŠRb+kšß‹Žë¤ûw<ø©’0<¨Þ¤¿pßM m2ùo˜WÓ˜Êë¤0ÉĹž|”Â<†¡Ù~GÏ÷[ŽûC1é‘å†} +r#)ßw‘ÞLÌäaœ¢¼±qìÃõôA†4’I³|Ì "Étq<ØuÜŒy¾EÒ—gPÆÓ!fb”âM’ƒ‹O®ðò›”H¶¸÷«æÙ${œ½I¿%2 ¶—Ûyú;Áªäy5ÃNƬ†³) Ç)NÍï2¶//´ûO'ë9 ±QQYÝTÏàôéÏvxÿQë¾éÐ6ÃM‹_;Ýaã~ËqÈÊ»ë{ ÷s;ò±ˆ»s –h§%mWf}ß.ƒ,hP°/hc6=¸æY/Ñ)ÒÕ”Ú JÓˆ\³n¤(øvA?Å#hb’Ù\7ҨşϮÑ͈2,-¼ØK8®³¸Ù“\N€´žbZœ´.°Æ¿¦ÅŒ_Ÿ®1Îø™ŸNQƒíž}Ÿ6Õ\h˜ß~Êàs•ÅÎ +û`Ä3­<†¡Æ¨ãùaã~Ëq(&ï͘ü¡T™iL2ß^®qÄÄ$óN† Šqfë—¶"ç^Êv¥÷PÆï‚2QqÛJ/î {æ1«"™†gMæÉI6ôîÒ2˜éyO•M+âÒo–¹“`]×këûÖn²ýQ}YÒÒ<Æí%Gý*<”F?$û‚¹1“6Tt#g¶0—N‘λV][f\K£œÙG nQee+‹Ù®ÌN° Êê"²*½/BÜ;MVƒVB>l÷¤—Y?¶ M¨[¯ñ^Ü2œNÿfìrÕ¸ÈðlFê£ÿÛ̾œ"Šì¥:igG#øn1P€[çy Û<ÍK—ÙnXiŒx¦•×0$‹uTaÚQ-fkóv¨o²ör—<á¾qФ«¬íº¾K<¾ÕCÏGeWÇsvRæU$Óð¬i€íë]³à&ý60î4ÏG­ç÷1½¢û"ÛËqën;ÉsK;]Ë lØã{§ë9+-dØÉ9Aÿ¨Ànày€S»?ƒí}ôE‘ß2èf”Êe¶÷W3:â¶ã¾­k™÷LÛéCÅ›ݕǩnÒˆJ/˲í”Ìr`W‘ë¢öübÐèZêZžµÌUÒó „è)‚ùqÍ7­Å ãù˜çìjœÅ­Ïí627§#“Ã󚬭˜<€í¨ ·MY¦Ã*jÃ’4ÆÿBJHñê÷BJt̛̿Ù&{&•™W92Ë"ªf¡a+¯iÂL}èœJ·U`še‘ÆHAéå5 'Tf”Õ°qß,Ó^Š1ìZ£Y¥aø¼õíÏc¾EQg.˜{öøÒR†3ç2¤a“©H&­aíg´ƒã2ƒÓƒ†)Ž®aÊøqœî³š' ÑËöhŠ"É4<›ÔG‘¹Q‘/.Lªïù:|:ͳ9™T4ÎG|³Ó<E (†”-µ#Ýì«S™çÑb“ô‹Äì6ž§r¶#ð&éÞ°³jœcûX^äžM•fÚ¨0˜èz'û]E®‹CFë¶‘q›Ý;£mï"}‘1´Ò¸¾Ö#-»¡ÑÊlïüw™Í»4•Èö(»ËD+âû`ûæ-V7SžÅ °ÉxÞe<¥1þ{(Qúùq†€"wýuíˆü9Ó/³XI1¨t¾^¡ E蛞m¹Éâ!šFò­¢e¥†Q#¦[”axUåËToSzÇéí”ah;ÓîzŽéf#ÍÅ ã,¦ÍÛŠäxB¾”¾ìò…SŒ_®ÑK‘{&ŠR$Óòì¢eÙþ)¥í_¦ŒK)}Go€œFvvÏQÑ`EÁ;»ç2h¥ºêªòÜC1žlù=w»ç©ÖŸA·ó½ÛPôDÖQ³ì{£' ²8ºŠþ’pà;\ð€GÞ°À,§¼à®:€õöXà€·ì‚ä½À%ƒ>ð×)Òm©÷à€¿²î÷¸`¾qí +€þ5Åw¦"zœ°Ü¸vÀÓ~°žmBê¤lŒøŽëox×øÿ€'Qmõ8à)õÿ}HYý6âù×!mžð+ã^?€“–¨ÿ¯X່´| éQðMÌý4p ÀcƵ1¿¾2cÀl;üCAùÒxÀ'Æÿ÷¬BñòlÀ ê÷'nœ~QxÀsê÷»þWAéöAäããêÿû¶"Ü–M4 cÏۺϊӶøCÄý^G¬3®Õξù”qm€¿ñ|á~“ß|@䵫Búã?§øVVBäÛ\#ýÍ~óN?¤¾_2ÞóÁiˆlŒjG€ÔñaGüEŠï$! Ïe¢xÖ}kVß´qÀOïušçª1•y€è÷ cÎOÞ›Êã9s–+Ëšÿ^Æ{y³„'ÑJ¶/‹™ ÿQõüZ•ÿÏ™-’À¦×­eÿšV3|th·â"ËÛãe&† ÙæzœÉ×±šqHê»Øî„ò ·ÍJ.Eòs¾‹¢Mlw•¥HÖ<×<×<§£´²v:ð<ê]ŵIëË,Ïñ°íz:ÙnwIKÕ7&S¾§—L”\•PÒM£2N±ÝãÑOYÓbv”qÊZÍgYlgY@™9ü˜a¥êºª»c¬°žË²oùþ¨q½ÁöÝ?²»Î5¯š\' L2˜ej²´Ô÷†Ø~äÊ8óÓS$Ùà¸6ŒÔå©×ÛÆ–h×úü×Jæµ—Á®«&.Ò?ŽeÝànfëgöŽÃº\«ÜÔt@Ñ2†7)]lÜ+›–1pF´ŒëUx³g¢RµíΟ›Œ—CoÐwÝzvbk¼Y"¿š\Šäm–{n?Ý»r—©HÖ<×<×<×™áÓwénüý¥Å5Ëu“¢d}H™ñö¤7(³„£tïý9E¡³;…ÞP7ªIfÛ¬ÁÞýß —´•ª*;g7S?ÝgWŸbÐqÊÆMŠ‘h •»,ȵ ®vTõ׿`»ñŸ'ÚÄt”-hMz‘îpøÝ,oÙLƒ2hÙ2ä\‰ßL¢!#Í|¿i|¿ê0¶™¨TõÓ­P¢[ùè¥Ĉ«ÿ6(rÄåÛ±hˆàû<Å™_TÙP"DlçRŠdÍsÍsÍsÍótâŠ/{鬯]Šm6”ÿ=p4"í«Œ?æ³HÒH3)¨ÇÔO+Êc©äûà0ÊûqF¯û_A™©;Ãb×¾Þ¤úF{ †6’n3ÝŽÿ&ÙáÒºQî¶®qÄÙt¢s6j‘¸Èâww/Š¢œKkŸ³8ã_ÓÇìÌ1&tÕ6¡òS¤Q¾’îÁ{„Ö2òÒìÀ÷›Æ÷:ðýÎ<¥ªÁö±ƒ*o³}'{WD•ÝÖ;=ªü\KnZ¬N±²ùŽR$¯«{Y³ý§ÑqºÏM¯R‘¬y®y®y®yžN„ìò}Dýý>æÝ~ÈãË!»–/‚ì +mîöxÀE· »O޵»ùÈîÕ›!»xë¼í…ì,—¯8˜»ÖßðØ 9Aã-Ÿ1ýéŽç!»ž§Ùͺ ¼«èÇç# ìÂþ²Cé Žg£NYH‹t®L^…ô/{Ç×{²ØàwÓ_ é§­ë÷Õwž1Ý¢0Ù%2ø»Š¿oʶAwòC4 ýr§ãÞ ;ô¦mýý·ª¿öNä× cÅ¿¤L·(¬‡ð6ÏqïkÏ_ªßs!;ÝoFxwæ+±ç—ø}Z‘+݃þTÙ°rªˆû÷ '\Ô¿Öƒð> ¢3,A G¸p_}ç}ä—‘yQóÜŽšçšçšç©Ã³Æ&ȘódÁéÞ‡èzïø¶à´“ð¢ú®9f^ƒœwR‡ó ÈÑ/ælÿDÿ>àUg¬Ldu˜XQÜâ”÷[¸³…Ìó •±Ñaä:Tú]ÿê™nœAØh½™e,;Âaºb%$û9DÏ|eÅ—%*G<*8í*árLgãßÄBˆƒo+ü¼±q¸™ñýÝ×j@4f¢RÕ€Œs›!ýÜÁ’„Ó¸ÝUŸ>˜NФ/jžkžkžkžObêò\cŠ£€ÆBÈLÆÈ,NÑž‰³ÿý(wVg%Ä œ™c„U^H¨öÓKE_‡ƒ(ùÓÉ)c:fb»ë¬ß×ëš} ¢1' e÷U)9+=™H;®zm¶Ž¨$œ¼Û$3U©ZˆôäĸNíã¶ ²±µÞØñÆ ûÛðûª3U;jÔ¨Q£F5âÑ 9Zt dóÑgÐýêGÒ ¹²éîtØ|¶rŠÌcêï,E®“eî@”r}ÊÆ=õ·Ûë¸JÌlØ È $ßw0/e£b´=…ðFæ7 ›‘ïE9m£ÙxüIˆÁ¸Ò^çBŒÇ{ŠôÈ_BN>ªú4¡nFäxø }ø}H¿ï„`dymo÷6¿o!8Åê7Ud¬Þ°F5f6>‚©yÀÍNWcÀNˆR¶À¯;›ƒ6ôn¡Øú@:ãqºbäHàAˆ7)ëþ¥S™òÀ§¶xÀßyB³ˆI®fê®AN!úÀ H{*a2N˜G|Ÿ° Ó«,ú!ýåÄgþ2ü´Ào¯„kí{ô±Æˆ£b:ÕCV,€ÜCtšÍè¬3ó(dœxâˆ0óbž˜÷Ĺ ÈXóeg¬Ó€ /ú<ˆ@=†p„öÀ­x¿NøSgPªý²z"˜ôyØSI™†ÞþÐÙ¬t=†!‚m6¤¾BúÏ3ÎN×ýê Dqy2¨Íð*€ŸUœgz +j7äe¦b"+©‹_t.+]!ˆr6Oýÿ¢üÒ÷ªž ëôç­ãgÄHyÅÌthÅ*Ý“cI§û¬6¶@ ŸYú„ÌÀí‚´ü²CyK‚®Ãûv«õH›¹‚ð,æ+™M@ƈ4î­Pétƒ‘Ñ ÿ6BøÈzÌt܇_BúÿtÖYú!N­oœP¿Ÿ†8–`zèå/BúõÜï„Èà"dîeHYjÜ‚èncfý5ž°A^߆Ÿ“oºã8¤]ž…Ö<¾}Ä™zÀ_z<¿büßðïKÌ—€d'hÉ/èF‹ä!’çHN:îß&¹¡Cù.‚úI.$¹šäɾÒ&9á(«›$·PÊ{!É•ê›ýâ}%¥Þ{"î ò]D™LWê%y”n¸úK&HQÚC'ùyQåçµçc&ÓnU”öÕéüt 5H6I¾Aòyýë<Éq†ñ…z¾ª¼=K‘ïWI¾Nrù¹²€ôç¨´ŽªôÞTßšTåÑ麩Št™ÞTe~Jý™2îêvðfäÕE/3€Ù.tŸ¿ÎpŸŸÃ@—øØ¸¾L]›¤è.âg-E?L3ÖU…Ë”vÐ)ýªLzÞàs“q]·£×» yIóbã J½¾¦ž¹êxæÓ¾ß0Ò{ž~cq/ÉÏÕ;Í.(ÃN“·ÈÎÊ)M屮,LñŽcJÏ_' +d5ňσINƒa)¥cža»Ò¨q—"dÞ`zƒlˆÁ`Ø¢¢Ïc¾eóõ ßÌJÃêÛQƒÅ!•ïN×Y·Ð¥.'(}fÉ‹,w)Êm'x<¯ò0ÎtB²¦â躪ƒÏ"î³Zã¶[èC¶ã3U¯;î]¥Èã²óõŠúÞQ†ûL¿º~\Q‹"/Ž2zlé¥8á>¥8Ý[ä3•ÖZãÙ£LöUÀg'©—2Q•Ëýd’"¯´ƒ]_ÿ”ÑÎíNÑB0eü{ÆõMÖ;Z1®-` g|ÌjònÒE‡ŠÃ¥®>¤ô‘õý+A¾@¥±‰¢s~LéSqˆ Uv :PNeѰÁŸ97‡ÒŽvAó–©&ÎP_®ç_c{x¹€|hY2œâ-§š]Pަ£>:œ—eŒø"å{zì-=UÈJ¶¦W)çeºq]È!ǽç+ÎZJQ²à úy¯ Êí(ÃJz/e°òÅg,ßkPêû.eà°ïŸWõþPÉùë&Z@q8Céfß¹MQîÖªò¡($ãêù¨69ÉêÏS<ëTù<Ï©ãØ›.¤göÈvC fG9=g¶¢hƒâû2e ºKé?ZÆöSÚj“aÜ¥Ÿ²¼hŠQõ­CcÇ4:µCÍ…IŠáÞÃÀ‰q7æùq+í¦úÞ8ÅQÐé:*‹2p´~ÊðL¿ÆeЬ§8P´ >Åîê'CFžMcfµqÝŽèÐãÎ{Öuy6ZaþçPê +ç(³l«Y­ó¥—â`xѺë]ŠaÙé6P­5ø²g»GUt:YiÛù™ìô¶Þ¹ÍümpT¥õAŠw´Ã®ÙeY&õQúÛŠ|>ÄvÐiûPëieÀˆz¯ôOQÚ„é®(Ó‰zH® 8q†m¡ÈÇ82‡bä»–æ,e o/Óí´›nÔO{´|Rå°ÖQ> 8µWÒm¤”%«FUú®Pÿ¨0V§èçœ>îH_‡©¶Jâ­Ó´–R÷“”v C8]¸l<û +E¼Ei3æÅl×­ëf¸±¹|Át ØíKÏLV”÷ºë›”ñ«›"Æ–RŒF—Cm„Ó#‚ª¥ø™dx,8Ã@ôPdæN¥œvdÉîï~n½»%g^FU:#)Þi©wš]P–eуèKJ³íZw¾ÌÎFdéIë”ïª÷JÏcUÑ`08jd]3·ša'ÀMvǽ‡îH…ó vcChß ;Ämœî™Ù ›‘„<¹Ö,Å¡ÌðN0Áp½iÏKøjcñ»§®Ë¤¦UMÊÀ²bø¹Æz†ûÓ„ú^YÊUƒáÙRdÃ&ΈWXGøÐŠÜ¥ŸÃñ3Š,ñQF{^ž±¸ ø­‚Îe6A§Ç0¥ß¬g`´¸ è"hT¥ïR6׳8¸ú )o•Ä['i˜A´Ôó Þ8\eX׳äãìü^E Šò;Ö=½\„ Gþè W$^ÒR¡"©—íÆÿ$Åðïæ}JæÐ½t¨ˆ5⤫>tè¥!ã –+jL2¿A\6m²ê)íR†eÖûæÌϨJg$Å;-õN³ ʳ,Òv•9Q¡eíõìJvv¹TÓDÊ-V|,£´›U䳪ÂÐ}iÊ™Þà +oYŠVj°Ýx•¢ÙÏ QäC”ÊÖtˆÒÀ]ú½ÃðŒ¯örM0ÙÃô<Ó#¯ ‹ó¼m¡ÿ9s¦¸›þ<´Rñ×b{dˆOÛîUil¡ÏM›—marû°j·)múeæ÷¤.¤(o×)íÜŽL9E I¾Ì`Öªv¸i1E ϺÖMJYÇÕ©ŽÈ˜dç ™ªÈ $£×&‘–Y7Y̆|&õ0Ow9ÑmòÀÅ¿vÞÝæÔ™áó!=ÓžRgæRŠ»h÷7½oÂuãÚ‡ –Þuz¯¢!#_¶CW/í±7þÔãݶViU±T¬.j޳û¢=ãèY¶·×«©BærR=AÔËä=‰Ò8Q;Aæ„ݳíÛ`N°¥]ïm“–;#)Þi©wš]Pže‘žìVÿ/3ÊÝ59aF”v ¥#©Qô^S¯¿N©³ó &C5ÎSlÁVù¬¢ zÌ!ìM˜:íiÔk™5>gx`mP 2ŸÐÿ(b°3µ†+”Þ&s& †=ÒvÑ +Ÿ»™oƾŸÁ3ÓÕø`ô†—­d/cüúC“ª _at}¬f|Û<—“ÏÅ ·ÁQ¶Ï”œR|ia1ç7§õP–MùþI›€’n¥Iï0:Rk¨ Ê£ ºHi§y"`Ìh·"ׯö3l˜FÍ*Æíà‹»i›Îü›ì®0lß2|C•ÑÅPÓ3ýG)ËhLƒžê¹¥ ¢¥n«÷\F)ãtÓøß\®U% ypµsW}­Çx~Øz^;loVÄ‹]/v üò’½±Ü©.ÈS2ûü)õ¿b¨š´›â06õánv|˜úSÖÈ3R(¯¼×ãvše-õN³ ʳ,Òå¢#™3ˆ¸‹zgD½µçX™¤'Þ¤Œ3Xš9Ì`.MK)NÙE/«DVTQöìQ ÁpÈümvÎÓ¸”aEàs†É¥,n÷öQã[çè?Çm¤…qf›åYÈ ”I‡”g­›¥)xœŠ4b”÷EÑ ûè6Ö—1y€8LP„¨köwűf/×ÑÈ»«ñjŠp{"ìô’§(Bs’Óãh¡¢h1£ »/(ʦޔìuãÙÅið:ƒ>ib’~i2wG_ëùÎT!½Ií$³;.íÐåIÐ`{ý‰x6;/QˆŠ<²×Ä_d÷í|ª\\Ñu¤ô!†”‡8EÇ)Êæ +Š|…nãŸzGG4égFY½~²ÅÈ—ͱظnNœ˜ûØ€z¶­ŠÓÌå d´3ªÛ©Áö=¦B_1iƒ>7!áâ]c¸ øˆ"ÓQÞ̘†)[9ËZ#ÃKëki6œj¤÷¬I³¬DOD’Õo¨í-Ý6†<Þy…bÓÝfþ(y/ú3”mÆï~UPºì0þŸ`{Ai§Å³Ôï1/@ò«œðDAßZ£¾uÀFã;I¸á[x;Ã{ÿ +àÏ!y=«Òðr†´þ§ت~_°Rnà¯|g<ÛÐð5€u9¾9À[*ÅÖ½?ø €ÿ éO/¸gÜß `NŽoÿÀOø"æØk<ó€§Õ·äøÖtÂjH}-·®ï‡”ç´‰yîxÀ\ˆZào!õºáúD–¼ +à€Þ„|,…È‘çÔÿo§ä£Û± "ó.AÊ5 ~€´_]γ m9/¶A䩉EŽçz!}(/–Xà¸>hýÿº·4¬ð9€+2œ é#&v8 éóŒëOCtН!íâ€Íþ²Á˜ob€ƒäçvŒ…¶Ì-_¿7¿ç¿/¿¸¥~?‡0t[³åG˜mý¥ tRP^<‚èi&æ¹ìRô8©[žð}ijzŒÿKÍY1è…ôë¼xX@@X¯;›â=-ϲŽYS;܇ÈÜFlHxçO¾T¿‹ª#_ØuqÉùTû; 2–¥ lÀROÿï,8ýß"ÜQ^…ù*±Ꮋ Òð1ðŽ@”ñ"qK}ó»¤ œpé;ÂÿÏÞû‡ÊUåù¢Ÿ¹•ÇŽãåø8>ŽÊåøˆâ%}‰Ê~ÄGú‡øÐKŽ—x‰ƒqHñ¢CÙè`_´‰Mt°›rˆC¼Ä&±‰Ml*Mlâ›ØÄ!iâPi’&iŽMÒ›“æD>ïïZ³¿{íµ÷^{×ÞUub}àË9UµöÚk¯½~|×÷çã  ~†Hð)’ûׯ b"ßCº c#"AŠé,ƒ{ ãÁÇä²Ñÿ"´³x +ÂŒíèã¾_AÆ”e4o<»+x²àݱò4£ò1Dð_ü +ò>4¿Ý HÞàS_A#€œ40÷IÌ™ûÚƒÀkæš› ö`ô)dí*‹/ sËÂíë2ð ·oG´67lƒúª6¯†0-»«SÚ–'<$æì‡¬1BæÆ/ød޼bÊ~ é3wŽÁ|þD`údíý6òù˜§!c膹öÛµìns¿Í%Ÿ«(~…hýÖ{¯>Ä»BE+tu÷»^bÎÿÚù|7Âùº)Hÿîð:€cθ y +,8à d.´?èfaI!Ýo¯´@dâs¸ «!c÷AÈxr±ÀyH]ƒÌ ~à 9ü k)_,îð €>ãô# ³{ø%ˆâ+ÌßMüùgPø%díþÈ|ÞÈ0“rM²~á1‰;!cáÈüIœi܇h­J虵Ƅá(#ÓäÅ¿!Ä÷ï%FèÖdư›qdù„€b¢¹âc£ŸëMó}QssvÉœ«#JW…EögR:C1J3…ôarÙÎPL^ ˜×œ¤˜Ê4G meÈuñ™5åå@®g™mÚ?Ǥ?&Ù¿)èÅ4ðŬëýî7k쇲&é/1¹FuÌo=f¯ :@Ü:SÖ!¡}<]z2nÆ €óæùORLAËf=p]Ó.²³_×$Zã$eÿò¥« +‹”qÑeú¾Ñâðß!(~ùvÎ,PLÙmjÓÅ=o#¾Áº|da™bBêÆÒ¿k ¼÷ÃÓùEÆÇDÿÞ~ɦesÇ uuðùšn`r_í¨ö";žÛe×Qø‚*b_„`‰‘«Zìf‘XÈ(;j0ÊnÑKy®ÃÞD›µûÜvŒxßeJß»ïì*GÇ/}‚2ïyÚiÑ ¨ÇL¶&åsŒ¯‰eù¢Ù>êØ®®D€ÎaS‹ñ€ëi›”9: bRæD‡an!“ŒÒÉ’q>Îùž7ÏÓ6ÿ÷íN”Õ˜óq–²)¦ùéƒC]A\ôÄ!ý›kƒ213³?Kñó ½¿ŽºK}?ŸsŸ²¨j‚7é÷ öaYÖ0›±Ð©ã(“ë0Wf$êYÆv‹žgo2,À_X`vlŽ)ú׃"ó$íëÍø“yÌ¿®B€5ŒeÌò}› ¬=yýd}‚uŠ™IFét,Ò‚Ë58Úû¡S”±X³ ç÷2ûÑäè£Åá¿ÃiFûûy +Ó4ÉxÜŠEóy>ð¹l:¿ý‚Ðeo²ñ7v0)Ȥ¹v‰ÃVlÉf5MO7gžñ"³÷<}¨3*LPxÊAú³p’2žôÚáîcdÿtû!§(æ=u5ͧeÆyÒ9ÊZ°‘£ï`'Âo/3ÎON™gi2oV`hcj¸i¿ËòDmUGQß$#>ê,G§ß릎ê³a·E“=“3m è·2?­y†2÷Ž1ýÌz‘}áõ}é 6”åPkMZN™:¥Æ:h™Ž>AÙ4|wBµìMç:Íè•YlóPudÈÅ K¬WŠö0eke”™¦Œ¯›aqÓr—™ ¦6ÍzÆOòRV¹9Æ«Ðo¤,r3c_w!@ƒqë!—É*KiÁ‚LZšì +¨ïf¢3Œ4½MŠõX|½±JZÀ×oÀ&G-ÿNÒp\ Ì§#Œ4’[=å.S2Xíø"e}r÷H÷Ðùå­§ÿàGÊzn#XMr4…zin_gÿÙ”êÂÊúq4å÷.‡Ó—iÙ*(‹ceŠkmv‘IK(}ø'\­M1}Ù`ÄnÀTUk“ë‰Ý#À¤gÙ€ Fã¹l½ªý¦ð^ ´›Ñ˜v-¯‡MMӮޡnÀ5(cñå¼¥­JÎRÎ×{)B'MYk™Wº­¾/ÝÔ\—ÍÍÚ†0ýpb%ÊMÆ'VÝ) \7€&£¨Ø>,Ré—Í3½À¤Ð#$]á6Uþ¼ú~3ëAÙ4%y5z¾`Ó¦ðIʘʲ±®"ýj”G&) ¢—>ëŠ4" Ë”y¶"`Øeþï¬'Ëݣ锭3Çõ×Yà8ô;™b¹ybÍ}Ö& 0!zÜÙÔgÃî‹AÑ<“8ÈâL»[O¨†5‹šž¶…b2Oó\¾žeqA¹F‹Ã‡v¯§ì7®e‹E“2¶}8ˈYÃ$“OÊAÏf*±ØÍdÚ7í +ž¯(MR„{(ÌèIÊž¦Uºjúà(e ÞÉxAQ'¥}{)B™‹¹1Ö%J›62ÉC[t8ø~ÜÌø»¾Jáw}.NSž¶/12£vÿ£œ¥g’I\{>Ù¨ÊÍ0>ŽôßöÉFç»'ºB•å”> ¡yUOYwÛ Æ-Fo¶ =ú}uÕsö2ú}Xʦi[‡a€#+\{¶¶ó4KÃߢŒ»Ò™õÜ/æÔ3:q åàæ;d»Œ½5w¸/mŒ‡(›aÚ3msž?Ob¯}¨ïÓ´ýâ*û7'M€)‡ƒ3”…³Çä{2àþ;éYŒð£¬+tiPÌ&C}yf(‹sÛܳëÐa +s÷$ËØ¸éÁ,\ÁˆáÌÂiÊa?MXÕ`dº‚e¦3óSž²í”²UP¨ A‘Ö?iÚó&emÚC™ïE +“°›²tÌß²õ¡uL®Áö·íŒiϨs–Ñœ¼ÌHêð§?vꞦ00ûL?íâʵÒÙÎdºÖ¢.»™‡ö_5YÖ".+Íåuú¸O‹Ã.­¥_S<Ãø{ra×™L?(÷(ëªæ5ò¤uóAz¼ì5Ï‘çòŠÊ~ºƒ™ß>ËD·ÿl<§×98w93æÞÛ™Ü|í´fÖµˆ9Á0KÜL*N3.Pu-³á(ÓS/1‰£”=v ãïvyvw^•†4úØo±Aµ§×g]£HŒöç% +£Ÿq 匧×u{®˜çàb4ͽ;†Îç”ßbžÇ¦gí1üœw€}¸¹_èEë<ÃzkfŸ¶™’ƒÑ$é ;.2ÜW¢­®[`ö Ñý¥wÔé—v–å%Y”6àÖRúľß³ýî·Rßý”Y+§¼%ë7y•r˜hQ6«cæžg™¾ÍPë2ý~•2I[%û-”t ‹SŒÏ±I†›6žg1³p×ß> ™þÎ\Sq²^¿Ö,!À “>,S6ô<—…5”q˜×OK”5¥’6Y\ ]&ï÷Ë }1Ãlæø(ã¿\Óè¬1¶‡þCÏI®,æc޲–w)LnÏ;÷q0îNÓæ~G)üd/§üAFÁ7ÉbÖÖëÍ5¥Ü Ý/´ö£è`œ¢,8¾Ir™Â,ÖÑùöÀéÃgÒ]k‚¬Ží¨rmõ}UR÷4,Q¼ïÙ&YÏÆ<ÃHRY—ô÷aÊDX *íÁåF™³Œ„9s” ¦!‹”÷þ‚©¯Eb4)÷Ê&n'¦ÆÖEu^Ýç,…Qq7¥6ó±LaDʰ\sÀ,¼™QÛÎn‰¶!ŸÀÕ¾…¢Ëäæ1ež·Ì¼ÝÇ꘡–S÷NúðYî4îœu5Ú>,0¾–h!DšO¢}'Ç(óªÅøé¥”ëFôÝ»ìd4>Ž2.¸³ûÚçÚª‚~ù„‡EpØ´ÑwP]¦ìqifË¡¥÷½Ñ;½Ìèàm…hvNl£ð%e÷ëS—ïÐ}šñùЫñyw0;f̲iÏAÊ!tãû¢¥uæû”÷y˜Ù.dK”}¶aß|Æ=­%g™u·@eù§õ”½9M =_C?¥Ñ ã°²ÁÂæ™„zàem©`…è!×e¹ §á ËïÿÓŒÞQ‘vf‘¶úXfŸAâFŒ¬rÂåMçÌ÷/Sø{kýa÷¤FkÿIÆ‚ÉZ´™½öO0 +k]0[ïuÞÓ'A¤?4GY’i +sèÛT¯R~5gS)ošÆ÷d‰NÔÔSueÃê¨rmóÝlJ›êÂEFæí§¥T«cP?¬îYçä™a’ñØÇ(2z2¹5ã~„ÙLA“Q„Ú&#‹‡u¦n}˜ì²z«•gú}c:ï@«™Ù²”ȇ¬yÚVåz}¶)„òÜj–)®£à>Çè×â-1:D¯g:“{š‘ùÿ›”1櫯ªøZ qžñÿý{&°®u,H²Çhcl9¿¹–v°†YFÑ‘­%ÖRE}R'¹¦Ÿvüè÷¼Ìd )kQbë9o®µì«æ÷RRyE Š >Ô×9Kcmý~õ³œ¡0L;˜íŠCŽ¿¸¦'Õ³ôö¹V‚–i²–YpÍÌOSö}î«JßÚ{V% ÒÔdºòã"e~nfÿó°IY/Ñ?N.²?Ô +zYaÿngÜ­¥; ‹ŸQueÑ ê¾eýÊ-¹1­ê´üè—&_/‹Þ´ÑþóWÙ ½ÿôûŽÒÞW§âþ6½ÌHj¿[CVêr§™ÌêcyðAXFœ¡¬ Öý6­Ü.ó{“ÑÚÚ*x/ëŠ_X¥?4G³Ïh2=')/è%ó°!ÔZÊ$9Êt†è*«Yd»ªÎvF9<ïeFƒqP‡¿aSÕ_æúíÌ_'™®µì0i¢|ˆIכ¦®´ñ²D‡ûi=lÙEV—ºòIÆ™ónJßdá²ç9ËR¨À ÐÒ¼*׫¨]yä\¥Œõ4­Ä„i«Ï þ“‡¦«”"ÉiPúÏ­ÏÝ€Š’ƒa±‹Ñá⣵4d}Ûìy®hW=µ@Ñú,jA„•¸[ù“ÎçQ£ãk÷e&+N3ßo~’þ`r»+hc‹Åüšß¤Œõ¬6`Ä$L1Ù.®šr»2ʤµeÂí’w†É9ìcêµ æpÆ3¤ôų%Æ4“fÃW){ˆ{gMÝös¿!MóôÏñ.e¨ËD{–éQø_®ð¾-OýyXb$ijñZÖ±Íê4£<Üû(kqë³VŸí(BVø{žÕ¼-èªÓå¯_r…îºJ.?vŒòîwS{ýj‘g_'ªž¯v-[æh lÊГçSwŽ[áŠË3Û¸(u[FؽÁfÎJ{¿§){°Þ»ZïÕ*y]­€-,Æ„ž¡ Ú…èPË“ë©Â$·«êkg”ÓZ]Ë$· +´µnTiž F‹ëÕ×î¦L¼³ÌÞÛ9ÏdI™ðÖ% Ìá‡æºcŒ3Šo²¿>lyîã“@úÑèv•ÝÈÒ(Tf 1¯Ê\®¸miä;l…ú›7(‚˜,mê› g'™<dY å‘þ¸ÌÈÊé,£l#'žñ%–7iÖqLöªïµ6ßnh68á,“q»™j ¨Žz¶,ÁÚ:U®Ç¸V”ylc»ædÅÏ(3B°Èˆ!]Çì1®…ó9õjF?+ÆŽý +ÄŠPƒñi9Í3ïe”F‰Œ²y1dl½“L÷µ_¤¬>ë›Ó=¯Ï¿ÜZs¤]c÷Æf{dÕ7I٫ݽö0«þ̱Z,2òçïRÕfhr0óaBݳ*!켪ss»(é¸KìÏ<_£Uq;µËU–!: à cOŒµSÞ›Ý[_î³þ<Ú£îOúç¾=Ome|ÙÊbÈÖ °žþàš®÷cí;\2 1• +õ{–ÉM¨ß %šÙig”ÓRBë+»ž£….«ËÐ5u(x]”Ï2)œu¾Ë:[s®™eD°bùñ4ïÔušþ÷‘¥¹K“¸OQµ‡Íõçe:h3ß]ÀÇHºH[(] y3ç^UPšEQüõLj¯–XÎ?³Áxê<«1-ól:j±>LÛ€RËÌb8Ëþ€uT}®%“½·µÂ¸LÙx¬vXQû]žÀb¤5Þ§˜¿6^VeíûvV@W…°µÁâÚE·Ÿ÷d”Õf«g”Ó 0l]v1ÍÓ$ãëB‘µÚ +oºæsH„“Ì·ÌXbd­¨Q£¿Û©s™ònÒžyŽ2¯-?ÖÍ(k©¥ê?MYëÓ®™eÒ ápÀ=ò¨É›u ›¦Œ;Í¿^dÄpeΗy7:6ÖBÍÏQ–fŸs½>ëÓhUØÎiFg–#5öGÏÜ£;ïfÐÔ¥¬y®0¾eú¤Wóý­f‡¹WËSæe¼Z¾­cþ¶¹ro§ðÍš£Ìç”y^¨îYÒß,ÚÊd~L­uhP$¯³˜*ù|ídüÅúü]‹R5éÂ|F¹¦sÏÏw£€«¦¼ŸMÙjõ–YL8d 'è׌-2ibœ‘Õ º²…Å·”AY¿!×$-­\šÀçР,*‡vP8ËôÍk‚ù¬Ó|Î'¼õ£ý!­%“Lg!€ö­_ÌèŸÐºô{(ë¨×/Ÿ yÚAµA¿&® \÷=6¬tù˜SÞšê¹m…C½”6‹ô!6t¼tMùeU^oZbµœ&‹£«®_Ëì± }¥]Y WàôrJ¹,Ôí—=ÃøºYÔâÍ +@í7ǤâÂÆ€xÓôÇA†ããýÛ¯ €Äõ*Ó×®u”=Â}žËŒ3Sê{½Ïø„=Và»WƒÉñá +ÊÐ͆ºæÁExj­pŠåL µà«naF(Í2=T¯`];ŸO­‚ue‘¶$«s´ó¸Kˆ•HVHÚñü¶Cõ}Ýê«”uð“<]Ëí~ò2#á„]K÷™g8I?¯oÏ=»Y~rMq¿Ð¼ #»†qæc™ùQÕg) Ô^Ê"Ö1Ö1Ô¦Â×1{û¢e·K<ÔSGÞ¦­÷Œ›_z”ÁUtñÖZ‡"þ­ö0ŸÆl[©²«e¶-®vg¯§L(c6äš’¥ä\óbRæ’.¿–Ù–YH‹gׇË)×ñM·Q® +Ò ¦5¥ucœf5»f˜Ë˜ùºkFH›&)ktUUdÒbD ⬦¢§¾ÛAYsÏ;×µÌïYcgФÍêÏ2|œèù¦ûgåPXµkÎ$óÑ¥Œ3¯Ä>ÏÊ»Úæ¹Î}O`Ä€œ§Ìa}ˆÐ¿“ªÜAfûË[Tey棵Œ ¨Êð+¶zê;+ÄßjhÊÔmË4žû4ýqú â:ÁøÜKs]iÒŸª•L¦ÑÕBUW{´“é)>Ó-m§l¿‚±Aö…ë› >žà£4h§˜ +^fñçWeÇqUdßYBP×ÄIFëà1ókÉÛª¨ÝZéR·+…u×#«ß§F•lØýçm)\÷>@Ù/·2.¤Ÿ ð ]Êø=c¾³nOÖJ±éÔ7mÚl¿o0 +o÷²BÏä~¡¥ÛÇŠTdÀÕÂ:Ô “ ñæ‚uhÓf­õI#ÍüÛH¿=Ž6Šh"4ã\Fªß`zZ3_T×ÏòãÒ-_@¸A (SÓq®OcŠgŸ?çŸÌ-ö§å]¢ßrÃuýñÁ×^7h]Ý´°A3ûýª’Š»æòE%Ë®¿kÓù}†²™[Iï1Vë›Jú£”káPÏ|×SßYžkÆØReê¡äjNC™¡ãs®5 öf ù´¹ƒQ¤ùS”qØ¥0˜v¾Qÿû¬âìAõYõ¼‹”u«GyLJè–e™Ì×i&¼‘ñ, e×;ï–2Êh~ÀjMõ¾´—ñ9q€2¾Ò¯Ý’mm«:é_Ëw0}ð¹ h!ÑEO}>ËJRúÜŽ÷šŽ*w™ýÅ(j!:ÊH³¤ë—ôf‘2NÒxŒãJ²«,fÍ©Ae-ݪ _ ŽeÊÜs-Q|"+äkRxÐSª{fq…hÍŠÚ¾UÕYôlR¦Ÿì¾çã±o&š`´]¤ßÂeŠqMz«æ6YkƒµŒRÛØQ -3.ˆ³ã¸Ç0+ü×)ûWÓÜ«Pb÷‹yÕ9K,ÌÈxíš;7\+„‹mBZëâÃê2ÿ™ŸRhØØË°¾XËxîëªÍˆìIèÖ—uñMmX‡R˜šPÍÖŒs­ïåR“ÉÍf=«1ñ>Iÿ;Ìsðµ³å”é7ðYM0~€s™Ÿ ß(½EI÷a–¯~H_êß6²l@ËeCÉ +p–&ÚÃÎeF›Ž쯥®ä;ðÑÆ7ýƒ®uÝwšjsVl޶§¼Ö†éƒ§u—²VH>“ò,2ÃÏšßÎPúîý{¨ff]ôã‚—EÛ­…‹,ïªhÉÖå[/´;£¶ÆÒBñEÊ<éRö«5L_O_O¹O­c|ý÷YUndÒÜŸÌÎŒäÆð•ñ;µx3¥|O•é°¼%H7å¾Ç(ã±n«»ïî§ðW=Êz|˜‘²Ýu»iL§3dq-|¿ÔQ÷n÷ñ|L)3˰±àcˆ&(sÇn.KŒ& ÊšÙ¥@_gr\háAWµ{>ãyù\ÒšË"LÜëL¦½«ÛÅESš6—Ì[MÕö&5£Ú-/ÍýÇFÎ3n¥\OVorª- ϳ:ÃÎ)w|¼iҧó¦¬5}öN}n9¡šYM¾x0­”kšŒ˜ä³ s¿tŸ!¯3Œ›kg”M3ß/¢qîdôƒEǹ&-þÁ°QEPÄ´1R¦níFC† (Üõ¢Êç !­"ÓÓÌN3)èîѯ¤˜¤Ì©}ô[‘”‰û”F-Uï 4òZ0Ø ¤%Â.ÓgëX_<—)ÆãËìʹWÓôãÃk6eoÎ:«í`r?Tÿ·Íý,ÿ0EgËôï¯Vy½Ža.T6f¡÷¤_°Æé¬¼@³Nù´Iiie#µAö0Ì,®EaèÎRÕÝ̶2p£†ç™SlqʇZ XÒfÿ ƒjÚÌ~+@é䔫ƒ´%ŠeJ&Y­&¼_„˜À5EQm‚‡‹”yµÙÁ“|ã¼`Kiík;åªÐÈ¥Í}‹^NÙ)ÊVw„W—:ªí‚׺ĬEå=§Å8`îÿ‚ùÿTJY«Á·ãT–Câ t™.ÐÖ!ƒ|š´¥ÐE†ûºN0im1HsW—1wñR@s¦ŽÓ,f ³Ž‘5[ˆF±•ÑÎeæ!kÁ`qšÕÎí¶§í—)|ŒõÅtŸk “¥4ƒäò-YÂOKEúÆu +mëó•#;™¾_‡?kgô……«%{3»øÐÐfucŒ¬“–X~>laœ?ɳâsÝ]«|žÒ‡ÙEf[sù‚‚“2Ÿ»”Cg?éî—ÊÓî‡|ÁHËb‘²?T¥\ÑîYÚû²4ÅxÚ_óæYže½¼¢µ†j›Ï6f\Ú>n­ÿvQÖ²]÷X¤ìWv|·/í×4¬QI[•[ÎéÌíôŒów¥™}çù¥ëCy–Öp‘Å#å7Y<ó0‘e’nžýl.ýГæþÚg^[äuK]uMÈdÖÔ hGIfÝg‚iáγFNýYÁ¼¦Ÿ7í‚ÏJš)^¬éý’>¤„ÆØ°äjVB´›Ö_îÃ.R„šÑsXg(ûžù|q „3Œ€-§mMUnïb£>9Èbk¹+tëq0¾š¶ßò|™;Î5(LŒ3Ç( nYÇŽi‡Ý[ç(cÚ]gò”Ëì/ÐÕ$ãëç±>ž)²ÖÊ4cÉ9 e¬¢\íÿЧ—J—_©#°›Í¢ ù¾¬ ‹š|n .ºÎ5í€k†¬çÝõ«ÉÔ¼u^ B}.†I¹¶ê yîfǾIÃe½«zεÕ=êt™|Øô•æÍÎPûM;Ú~tÞГŒ+ òÎ2UX´è´eë˜6Ï4OÙ÷×Pû=ϰDÙÏO1.ü¹Êj„Õ>j™{ì¥ì]‹æ~Y<ÉyÊû[ϰ¬R=Êžm÷²`Eã*øñ€Mî5ŸŸp À÷=e¿¥þÀoSêœðà½çýæíùm-€WRê|ÀS)í€7Tûî°À/œ2kp«ù|Àã~ŸRg~ àsÏ•€[¼éŸß©ï×øùÿU¤¿Ï:ñùû–ù;àé!´# « íü»œrBæÜQ þ&€Õ9e>𢱺2Ò®»àÎwwçÜãËŒß~à3ß0ŸÓîÛ/.©ÿo0 à75Ý«,t?~^ðÚ߸àUׯr®ù=€špŸ¡;Ü®Ê]0ô)ä]}¥~[àm$ÇÀ»qõä~À÷Ôï¸ÇiûÊ 0 iÿ-õë¯ +\Û€ìC_"¹>Ö‰7¿F¬Vÿ¯ð¤¿Ÿ¼—|2ܹЧ!sî^È|{Ñþø€™ÿoM^Ã*È~€?là dí´cì">~«Àû¦ÞÐ1{„?„Ox +Â3\€ÌûÕˆÆÐ»%Ús§óùQçEB0à6综÷Y¿‡¬÷AÆ' ssùóê‹€úW;Ÿ³ö«aâzÅõÙw÷aŸõ|Àc¹~€-~â)·q¬ÌØî÷ªÿ? +(ÿ[ÈÙâUÈ3æÍñKýp|oQ!S3Ø&ÈÜy²¾‡ð«!ë×-žk¿4múјºé³;!ó׎xòþ±ö~À9ßí£ŽßAÚûd]^ Y/™öð1„÷qyªiÓ†g ûË7<V…s„¬±/"{MѼ +ÀF?Ï( òŽ®™ÏáüW†t é‘ ¸f nÄÍ,³ÁOWÖµ«Çø8Óf 6àVË©¿¥Ê ú]XàE†û·(»eÉó\u’œ‡žºf^}‚²—Ùuí†þù¹þx&')ãð*ã{Ú›ªL;°Í-OýY4Ǹv}_Áëë¤elìd§Ì:Ðvú®NSa׺¨»B(ÙÕ¡-æÃåç®Z¬®?›ªÞ*Ôél>Íú ãgó|–ôÙŸ“”5þY&Ýu_¨¨ó¨­î[‡EµÐ;Dy?)ï³ËäeÊ^`Íþg¥MìöÑVË3ÕÍë„u8ZCÝ6£Ä #Þ¤™sµx}²Ÿäµ«Ë¸Kf^ýÿFÿ.C6ðkˆ†]KTŸp"iDºfqÙÒÈ<͆+ù¶Xs+ÅÖø +ñ6mRÿï2¿év½àäÜ/ é^]¸ò^ß‚HÃn…HË6¡¼©Ü ‘`C$…}líÁ7r~Ѹ¾Ñ؇"M»jñ<âÚ°GêôIíñ|§ñYÆoúÚ/!RÔº çq^›‡Ôÿ¯½÷ácõÿ7ûjM6f|™ëŸš¿wAÆ' Ú¯iEßF|œý +јÈ£*iq8æ̓® |"uÊ|¾‘Öÿ¬ÒÖUƒ´}ò5ȳ[ë­uÎïï¯øÒW3ê»IÈ:ü d|hÍŸ®C[šdáJ`9@,Ð>Bd•ò4ŠYqÔ¯ ãÿÈܰx¢ÕÙd>_@¹uà-ÄÇí«"ù>«ÀCˆ4„/¢z­î€ ë+¯^-¿Hb>„X uµ+¤òðcDsôAˆuˆÆ«ˆóÙO¡¸EOÕ¸‘_$†?@,þÑ:È\þdkXWæ |Ñ—ˤ?BöƒG‘}FÊÃ*Ÿû ùü[DVÎ÷õQï]æï(œ•,_þÄ* JÜÑäÿÂ/ƒœ­³ðKÈšùdMþÄ + 7PÌÂ2ðÏÐøƒÆq#âàSdó^ô¹‚ß[\Èù]› +ÝÙ”B±6y{~„¢øÄltTMѲðdÐ݇á˜þјúÔüÝ€t¦wظb†›õ»Å»ùŠ<áÂÇÎgŸY—ÆçHº§l ¸OS¨MÇ?A½#-\x²áˆ3e… Z8tä ^~àÿð¿øóÜß#æÚõÒŽ‹ãž:òYvs/rðësC0 ‡ào!l Û éo;®CF>3Ø:ñ;„™µ®B4öõó1€Ÿ"2?ÀnmG ïWX-~9D¼  cÊ¿éw .&ÿŠè ¡ÝqV´÷ÂÂ!}p„¡yéî}ÃÄÇþ¼é£ç¹‚m2‹{5~ a򵃿#ýð0Ä5¬*ü3€ÿ àO!‡ *Ý+ö@x³çß›Þðßë=Üêë¨ò]U¶K¯«U í€ýVDcxÀ~çï`ðk£ý¸™Ý•_¤vä Ï‹ÂòÍ#2/²—Y÷Ç(>¿„ì§Ï¨ïìP…ËPáCk ÐëS?\þ·g™ÛÔÿyxÍ” ²7?ŸSþ"÷‡<ÿ!Oˆ4â>ƒo±Â>¡¾Ë{°÷g\¼–òýÛÈÞ~ño×í‚«¹|ýkþ5~eê,*¥&®C„;‡áJwW›¿VðS§6´ +¬ÎøM½‡ Ú­Päù滸ñ›ãú½6>çtÇ3~׌H?RæüјXÑXCÄPÜ@þz”†ãˆ´D« RüAaÑû³k­> WøäÂ^ûIf©ê0 aLo…ì3O ì0³qm¤õùÿ§ªˆÐ1mû÷#DþçvÓ "ìû2.µ»éœ„0@wBÖ²ûÌõ÷ʹ‰÷Ôw«Úg=äÐ|;ä=<à^;h¼a\¿@d±6 ÌX†¶¬ñç¼>ˆþ}¾ÝC‡»'Ü€X”„"T€¨Y<æ0Ì”àˆÖà§ J’Í ¨yˆ`¿(ôZýDIvqáöÎçAC+ïO-Ç$Ä +å„úîÞ”²uCÍ*š@tˆÕ÷ø$^Ë_ø3ÿ Q,€PºÀC<^G•‡öÇ!¼è0¡-8C­ÚBð*¤¯ìܺŽðX ï@Þås=t²çõç½;Ëb7 Z£û?0¬B|Ï[xÿ9xûóo#=˜Úo!ŸOrõ +òƒP¸íÒƒ÷d"þÕã'3ËXmË(˜AÙ1uÁüÖbЬãDãoŠmžy …»þ~Ó È!õ—Î÷/"_nÍÁÓ çä ¬4ôä[pÏ,L#Þ¦·!ÚÒ2ø +q í 7ÆÕê+µë¤O‹îìÝwÿ€ù;¨ÃÊ+ˆ®!âÖA´Í Òb\ZSCð„™DZÀo! ÂqõÛWgùÄ,ݵ}ò¼!Zþ6€×Íý>†¼÷;!šžï@Ö_×Âà}DA’È_?®#\ð-È»¸av†ùòðSD}~7ä|Ñšœç‚´ëï‚KF¦|ÿŠÔü#Â4–ZƒWu°½*P‡UÂsqvdn~±®x 2Ï¡Øþ¡×oAÖ­áýÒ|7¨€¨>Wÿ?ޤ«‚‹ÍÑsˆö³â.¥ƒ´Ñs:T€Q5þF…’OØ` D cù¦» |ϰ„{¼ +àeDnîe°"pz²Y¾îdo yÖ?BÆím}ü-Ÿã»öVDgÙ<åL ¡Û ¿„,¾Ã~ˆ´öçˆ6Ì· …üyÎu?3×=¯®»a&ûiízr¸ü—€:Êâbô¢×ûð8†§õr±Úù\µ©TÕÈüq“ð"&Sy5›œÏ?‡llÔwvÁq\믉¹‚læÝÍÌ0k—@ÜLú Ä}— zÿ_"ßL+¯!êÇ;18+mNù<ÄÌ8Ë¢ã׈¿o­ÍØ ™³WП4#²D{ùn(; Œ¤55džÜb.:u!D‚¯Þ«<,ZÌWõÀ +l~aHV#Zg¿ é÷ ë“Þõ¸8îÜãn„¹…,#~â Ù¨Âuר„hMþý»Ce1r¯¢?µN<ŒôÃMˆ‹‹‹ßy} µì0@=þÿ?…ðâ¶îáÝwÍw!ÊV‚¬ƒðqÈ;¶PîDûÎjÄÍÒÙ·^Ðp².®†ìEvMyqž2-ÃXø5VŽekV›¿E„mS@žÿ9Ï`•Á@ÞU¿îM6æÈNˆÔçÏ߀𿻜Fòýßá?C¾ß½Æ,€}q÷d¾\ƒ<›U +½ÿ¸MÃ?@öÇ!ýs'ü|ûjÈœ¿Ù»I”Œl8¥"'ZÌ×A±*Ò8Cɯ8Èû‡ä³êŒ2\†º¦]óæ³Îe:ŠÈË¡#ÎvrÊjšÏ¹ï‘Œk§™ž tŠñˆúiؕӾCNy7CH]´–ñ¼÷GYODÝ<ÒÀÉêæÑU瓃~‹ó,:óJÚ5=Uæ*%âð6FYUž@»gEïä”mP¢êºY_Žp8ÙNÒ(/·<ÏÌq†Q¶PÞCO}Öãô2e}½Ì(ÃŽßQ×uÏÐ0×ÙüÅ3KÌÎw¬i–ñhÕ8œyG J& ›Iã4£9±§¢{eEï¾LáÁvQæï>2û%âôFÊ|ïf´—Œ"‰¡Þš²ë5ž¡ËúÞÝ/t¦Œõ”q¹Ìp^WgwYb”dmm/CúܱLr³úmŽ’?Ýb‘–27ô¼¥ùmÐíß§î_å9Ä®ÇÝÚÈ$Ãü²ú?íº3LÇ1æðÖ5÷»Ê|A‰~&‹×ÔÎPr…Ji¸jʯ£¤d²×O2:ˆÚï6¨ëNS˜ˆÓŒŠÃê÷yu]—²^iæ#¡€¯?}è0üùݱxŒ£%œ™d|=ßO¿p¿Lú?¹)…{ž{i,QÞiÝcºI9 æÁ-SF˜y”ù˜w®é\3HÔ‘^ ŒÒ÷õ˜œ'ó[7°®ª½/×ÔުƞÆE¦Çü4£Cd“2G]ÁïY<,UD›UúM9®©eêì àìA;+E´%{@¥ùëzìbòp~Âôn6)û]‹’ºv7…ï;Íj°dêµm²‚š‹Ì'MUÏK¦-ÊütS«N2R…ò–ß=JZ-šz­åMÊÞ|2 ®qðA»T²¸þ©ƒŒL­ñ}ˆ‰ê¨|éq† kŠ6ª‘ÿ]ä™A鸷CLtB"ØÿÙæÀw < æLÇæ{–DÍ Pø8›2ò‡W }ÿ—tïÍæÞÖ<úª5ÕÿWÄßëC Zu`‘é·FH kzz 2N¯˜¿Ï@ܺªŒ(îÃ^D&×O#ÛÔ|-’î*Ïø ÔßÎP<‰x<‰,Ü19¼‘É_2.uÌ” È»¸1%´®ïAÜVAÖ[»ÎlBÜ¥ævˆßÿ¤ùü "wPÖÇ ¦‘!ø¹iƒÝ£¿‰dŠÂaab†ù-óùˆK¤¬¯HÖƒ<¸±6lÚ¾4Üqáy²ÞWíW;Y‹>Ev³ë=Dï_EÜA4Bø5×]iÔRÖÁsÎ@æ»ßäî¿Ö´yÂbFlRÿ¿—Vhàº5Üq¼ÉvÒ<ûô .P¯ î&r§â÷<Ž#Ÿd”+ +[çjÔë4‡ˆ?È‹WÓ€¬w +ìú O¹¿G|/dù.Äœþä=~jʼ ᑇ?FXÑÔ˜˜z´«ì_Aæ×Èwíü5"7¼g ãÍÆ´9‡hÿdžþ?qü²FýД2Î?0×Ý€ì ¯BÖããuÅQTbàÐA%ù8Ðg]uQ‹q [㳃q ß ±Ì¸¤kÔÈšï7ŸGë˜ÿL®õÇ©€kÀ¤™½™-¡\Ç|ÓLN@»ZÎ5ÍÀç©’Lj‡ê¶Br5”—Y¶OÓãv×Ô±*²fƒ®v¤£¾K»¶k~†åFkh'§lƒ2ß,–(kð ÛœEe¬Ã¶1;(š|« ¹JÑDœ¤Ì ­ÅO£9sÍyŠf¢gê:Iy×[ÍwOR´E÷°C ß{×0®Åí±žyJsŒ\3–™?Z µ¯`ÝY´•ql3ß·(ïè4óßCÏÐ ŠæieÞ§¹ˆ­¡Œ™Ã”÷n-JBÌêÏR´Çs¦.íÎRÖ’éç>˃¶sM7 ­uµ²«Z£>¡î‘¥Eî™2óuÚýæbÅm­’v™6^¦¬™y&Ý>œæpøMûM[–Y‹Ÿ¶-ãjJóê>yÄz_Û™SÖÒzÓ?g˜½¶-Qöõý”q±I>xÎôÅÊzy„²6t)Zó'­Ui}zÞÜ+ï=5(sÑç +@Fnš,B÷¶}¦O¶Pö€yÊXž2õl ¬çߨßÁ }EO÷YW]ô¤jãùh(ða\3—Q${(±‡äQóçÓXf¸‰ªkÞrÍ|`;.SæâFÊ‚°žÒ‡3®ñ!Ô,®å\× |žªi’ñÃY_,‚-ŒÅEÖ빎qgÉô{•÷xÉÔÝfÜë0£ *mãëšß;5ö¦m²]¦*g(›¼¢-ÖЇý’6 -‚¶¹¾Ma–캾™²n„&Óhƒ©Ã +ÖPV(Û*Ùæ"&¯³Œ¬÷}­g$ K?;ÌïËÌf(‹’eì,žõ”iPÞÏ<‹›¾/P’ÊœOc^Óp2V|¦i§lYá¬ëb±“I¡À~çšö1Γ՚zƒÑ2˵@·¡•S_K•uûrT¨E™_Ú/;$‰ÅUÓ'ÃV‚qw‹ù +ëµ¼P.‘znåñ?v= Uxù¨iîÓ2´‘éÂË:ÈΣP({ï“”¹t„"´ì1‡ GyWEb· Œå¦úÎŽ§ÂBò~;gã†OMipÚª4ÚÎr̲Xd=ZĪÉ£YbR:j(²°¹±(B6¢ã³:z aRóÞ ¸®.šf2pZ•Z8;WµÀn‘ƒ9Œlsî»Ä¤OY?Ô1õÎ3.,ê2:à§$íïôƒ&;ö²âN4EÊagÐÁ_C¨ÍrÈ +Z7¹°P+x7fÉ"+ÀÞÌHèw™ÙëãNV;7-¹‚¹¼þÚÏìàUà,óµŒ.oX–÷˜wêi›ï·0=¨ìm°–8`t@·˜guãaÞÔy‘éÂÙ£}ã³yŒ[€"8ÇhL[-§wB +ÿee´u)šß|€Ì,j0»UƇ°J¦EÖs›atfÉS¦êØ3£fqW„¬Vݱ˜Bi’²þžf4¦çM ñ~c¸>ßòRh Zÿ_š ÄÓm¯ðÞýâGÿAä­µþ7ÃNã‚_Aü\nôOH^ìa¡H®ç¯÷M I?ó¢guâÄ'./%fâ¤}×>‡ø@ ¿ƒø/žSß=p¿ã/BR"í ¨o +À£Å› žV0€¼oë“|+dü?YòþE°²ÖY?Îû½>þ’ö·jèt€>W?@âü{ˆïêõãyˆ?ë{ó=ñ³}ÃÁÒ&ÈzðøqN÷9ŸÝõ%nÊi¯ä'¦-:kÚ5uã]Hj¹4ŸÝ<éUÅX‡(Uì£ðÇT˜E|¿ºÂ÷îƒìek ûø4d9®Úû F‹G$ÖÁû8/"JWýd>|‰ð7þ+€ÿÀŸ*ú È{ñå³¾B;äÈ{­?€Ìï[‘Ÿæ¹ ^A”úõµ¬‚ˆÏÿ¬¸%£Ëÿä­½ƒÂ<iÏóæ;;׋ñ +$ZÓ’¥•h)Š›¶¨,½Ä|©¼k"T¥y^Uä‹Â]%®r45_Yd%ø‡{(Ú¯®IþQ†Í…ЈÛePÄ2dÞsý¨¸”Ì0i-Òa&óŒkà¯r8YDv0i-Ô3í+ú|-Ê:¬Ÿ«Í¸èiFþ{í”zºæ÷΀ú@§¶j¥”™¡Hìõ³Õ§¡*ê';L§†º;ÌS!qIÒP6NPƒI­jiGõžs‚õltMà«ð^G±Xh+ÚE™cUe]ÐVbýø•¯sžß7†Ü=ti—)|Špcå&)Vl]E'ñ‰>W;OB²3øp–ƒ5­íÛ—ZkͲ/²š³Ä0h­êû¢–QYdûf‰Õî{Ú¢§Ç|m³åYG9¦Déù´<íÑt‚QšÝyÓÆÂ󷊆ØÀirÿò"Ë›ÐN3~Ê2ÇíªrÝ +;¿jªK0êÌoµLûmÀ¥QD¿¦&ÍÕC|[­ð¬jôXÌWø¬sm«Àµƒ _ÿ >¦éI&Íþ‡•BÔÎ ŸîEŠùãú™÷ Êøzéî$ÖœÌ +ìúL¦›wÍïuÄ,M©¶·3Êdü"Së’{À±XfXÊÎ4w—~ Çè?ô†¬N0}/+âGé#W|€Õúô6çSqø¦Ã[œg.èiH¤sr÷ã®â¦œ I=¶²>UÉSé c[˜=.zὲ6[Òþ|È¢½nÊœ¤ì_‡ÖŽžû®úf´·ÙƒèWžbË%íO_Uà>}hÍS†R“‘ †›‡>:¦|oú¹,¹®nÃn&{.z’¢„cà{‰ÑŸì×$a’¢Áša½1ÅÑh@Ì’RßÝ€˜‘|ÀoîÓ€˜=½‚¸É׈iš›zg3â&Ú ½ª°ÒÞ[ò +"­_V +NÄކ<Ǩ¥|‘É_LAæ‚6£ÿbâ–—’l'd¾„¤iË ˆ¹Ø·ž¾o#ÄÜÎâÛ¾×g;êÀ ÄŒQ§*|À)PÇNHÿX\‡¼¯ŸõÛ¸˜„¼ïÕÓ¾7=.@æþ SnuFYk.¸ +âò˜ù Èx¼›ÿ›çÚÓ®§P:Ñæ]ŸBÖ=Og¼ñÔ›kBö–aã4’&†ß…‡ìÏÖdüˆ nž¿5=u]œ®AÆc¿éB7BúÄ®BÞs¿õN@úÑò(¯BžeØi"çwƒ{À_©-¡˜EÜ ÿUHZ­²XF4î.ø®m@ÌxWCÆð¦®;àçµ®@Öû+g¸`þIç2ÕRàÚ6Ä´÷d\k—KHvϺY#i¾o˜Ï› ©ÂVCÖöÕyô¼*;JØÙ[¬ûÍ é ?†¼¿obe¸´fa2·oƒ¸µÝr©2]¬E”‚³ßsÀ¤Ï-?õ$m_:~âKÿkÉ{»OÇ|Åֺр¬ CÎ"W ®[¨–ФnÔÓ–§Lƒ~SæEŠär EÒ¤%úÓ Ö^úµWgè×ð¸ÁãÎsø’üª*;À ‚”ÕIÚ}£[AŸT‰3ìOóä3i •ÔNQ´TeH^5×–ÑŠvœzFMc iŽÉÔvûöÎ\·¡ºRðåÑZЧŽl!]ÊZ£5ž‹Œ²‘«™\K´ùb?ÑæCÈj—RîõEC¤5]ÇX)ó ÈÕò’¢ÝZãù~Ô±Éðdµ):×0Μf¦ÀSŒk]ëN'Z”ôØ>9íÉ£yÆ1ßg}=§¾QˆäžFîØ¿\àÚ9Fë}«Àu›Õu/Œ@ôKÖzi‘Ûî £=}Ôæg?¤³”U½ßÍ‚ÑcùõQ§zÏ BªIkÏëÌ–T5Myú¬>°ttŒ2G@ÙγàÚXUCŒ›Þ^fº¯Ú&Ít‹b‰é~P`2 +ì(F6M#ׇµ(Y?S>(:¢žiT°Ìêú·§ê-šŸv‚²Qfe X2õ¦,ÈeESLº´+zþ:Éç·ÁnwÊ/q8‚47ÇñeÊ;ÜO–ž`|X`väï%Ê¡ÿY&ã Ø¨².^fdfæöÛ üû´0f—ó[“ÂX¸kå \ê ×¼¾IÙWÓ}ES¶U‰«L_“­pQ·¯Ãêûkšqç˹»éub™£ÓD“»þŽºés×io¿nˆnFQæçÜìEܬ"­ÈAp–‘»ÅY® EWYþW ÞŒt£”É« +r3=õËoØ´²Ë”=Óîeâ h~¨ÇbJ}í(ž}ïa'“Š#2;ãÆ0©cÚFJ„PEÈê`<õ).m1jP´ú¾ÎÎÃfósct*|ÆAÑ|‰~!³d­Djr´ÿdµ‡ß}ñªÿ-Wm‘…¶AH´m`5¾Ï:ÕŽÅGs1ôÑ&J»SÊ®gü°µÌêüòŠŒwÍìf:C0Çè``.³”÷¿Q÷µÌßf˜ ec,™úmüƒªŸž¬±/Ö0j,1®ÁØJñÇí©öZ†gØc®Ò ˆÍÇí êu„q‹œA£G<«í´‚›%Šà±.íãñ€B⩸cÌö÷([͵œ~ÎJ9lrù¯ŸýÁê#+7E¥/%èyކ°¬.Úà<¯õ÷¶HYG:)¿Á1¦[è5mp5³Ã@ïf´†.3[€·‘°m”Ó,ò¹ê,RæÄ°µ¢ké·TÙ[á=ܱFÊÿâýBÓ2|Ïi±Ì8OÛ5ß_æhÇäɣŢ‹Œ –ulƒA[ã š&(ôËc™"„j:u[ÁÔ!†·GïµeÏQSÎó\äðõ³~ê³Ý%Iºòx[¯žáå”23ŒóÞu²ŽÆéܧX¯´Úe†FÕ—¯(¥iˆ]t9ZÒð:¨Ž4x¡“8Ëdð‘Ë”Ãè Þí$¥{ôû˜¯&9‹ÚNß3ýê®Gkîï F>›‹”Íæ(e±~™r™§h{^bøa~=“›m»¢gi2r-©û°¡ç€f }iíº\ÙŒo(é= m¾sƒUêßݘؓ~Ažœ6¡&MÌIYO^à`Ôñ‘¦¹ ±^*z?ŸÐt™²oµ8Xh’2Ó¹ý?¦hÁ÷Rö‚yFó¹­ÊYžh‘+k»dcviÍõZFûdÚ!çf¥Êxž§Xy´ í§ð –^2ßï4åÓÆ@Çôã™m°nE‚XúH»YYœ4m®‹§œ¡hø÷0âió°H‡£îF£-×ö1}ͳ +[Ö+Ä©"  “>€¤f²¸àiÿPá}f!i±tÊ£/!)ÿ~\á}†‰ ´fié¯@Ò»üzP |©$O!iµ‘Nl $í‹ã”*u½ã$Ö¦”ß¿…›c>A|­x ’BŦ˜ú’r¨Hʧ¢°)²¾€¬]·CRSÝIMµ’Êé8d¼¿‡xj iHJž»ÌçÏüÂü? IÕö8$•Õí(žq˜x’zí$¥Í«ù~'$-žÅ HúªïbøiÚ]±È:ðH¦‡d/X àˆÒ0•ÁÇþ“ùÿâû8 ëáOœ6<à;%ïW%6xQšÀ·!ýð¢ñïBø„•6~& ó≔ß?ƒð^øÕíuç~¿ñ $夋 ¦m?©è¾nÞ@ú¸¾yöO ýð)ªÛ·g!©:ï…ì“÷ÃÏ“]‡<•|.ìƒðÏŸøæ»íq È:ù£Šï9< Ù£®CúôT¾Aö¸ã”+mžŽŽAúð:d/ÍK58áïƒôÿŸöyÿYHŠÊ<¿ƒÌÕsµã È<¾x*Q@Öt»æØ4ž«Íÿ6UòÝð¯K>œƒ<ß{æï¯ÖCÚy+¤>‡¬¯BæÍzȺü €{Ôuoø _…u aFßGòPñ„¹ë'§ö”©ã Ä_ö—Aöó>êEìA2¯²Åƒþi€m&žrªrLÁËÆÔÍõþ%d½²à}™øýnŒy‚••w:“ÆøÏo_B6¼²ùr‹Àæ}¿aRíýí‚þ¢Mz²¦=ÙÄW{êûrè×ùœÍtVF^»ÆÙ5üsóùQ§ÜgÀ/ðõ‚eâ^ð7滓Øŷ|Ïüï +>„0I÷:õÞ€ÌÝÏZ @\Ȱ2Vu®îQÀÈóÚ5ôCH»í3Þ kÚzˆÐå[9åìºr Qn{˜¿7<åoshµ¢,\ðš¡:¨€Œ»Wà_Ç]؃ÄH¯¸Ï1tÒ0@éuì!ëíøŸˆ}žâ9ÀGÏ"âçî€Œ× ëÔç¡À ”/73´àó„_øÑš`¿_YÇA$@­r\mðü‚€ºqÂ;|™GÇQÿ:U5Î@Ö¼÷ ]€<¾9g¯Ve/A\o#c=ªS`ñäжÊùþSHßC˜”zòBeî‚ü d3¼Y Ëj¼à/‡Ð–ac+ä0|GMõ[ äÿ¨©þÌ@æGÖbùdQ» Â|à_œ2[ ‚²/!íÈ||²H܉ø¡àDpw27o6aÚ:ÈÇ]?žð÷jÃaDRZ÷}r€ù&d=Û„x[o@\_ºÛÔcßïÛ±ð dŽ|àÿ®áªÄnˆ0 Ãæë~îkÏkøzjƒ&!‡‹Ûü•ùÎÀ-îðóÿDÞsFúiÈš¡ñ!dœ}ˆHÓÀ0ÿO@Þ‡´kMãKwô"òµJƒÆ dýÒ’FøûCiQ=˜ƒ¬]¢¾ý0 7 ãæCƒÔ 5 ãö ç@aqòì¯".€­v߸™s« k" {ú0ù•²XáÝWAηB.× swù›“µÐ=?äá=Èz_õ~;cÚr"þÅUx…å‡.!ø}ÙûÎat„Óý`‘`Æ«…¬ …×âA ÙŒƒ ªÕÔw¢íz+wá+ +í z?Æ $4!“â1ôÇð¼aûqM© k!Æ[ ÏøT ÷ø Iot!̲բRƒ¹r OóU³&jöП§Yk@4aO!²^¸Œr솗 Â-ç Ïþ.Æk\vAöƒ?Wß-@CÏ .$Ö&·¯"²&DÛÿ +d,݉ˆ±z2ž^ÄʲÏAæZÝÚQƒŽ²q¿YUˆ»|ˆÁ¼Ù.`4„â!h@„ö¹m|{°¸Ù¼Â%Èó[—ÏÌwŸbø±–f!?ƒàCŒ¦NQÌ"Š+ñ†ßÏ73¦ óÂ$Ñxÿº*¿V¤@cä°ñÂ6X| 9ø¿Ñ>]Ȇü߆ÝÃ"³éû @–ßÞ%ˆÔì8ä ±’6Ðm&]?ß*È3ûõ/‘œgŸC6ÚkÎGX™Ì}Y4!ÝãÊAc2^íýä|ŠþÖµ)ÈuªÑÖÙ`†×!‡Œsøz®ëUbrØI;°u óþ¯R~oB„_ÁúcŒ1Æc|­0,€ErX³Œàj$* Œñg“³ab-D2½’¬ÃÂ,„Öå/ps÷ß:È|ºòœ! +Ðô È\²´¯Ó߇-¨'ZõcŒ1ÆcŒ1ÆcŒ$†-cŒ1ÆcŒ1ÆcŒ1ÆcŒ1€7ìŒ1ÆcŒ1ÆcŒ1ÆcŒ1Æõc,cŒ1ÆcŒ1ÆcŒ1ÆcŒ¯Æ€1ÆcŒ1ÆcŒ1ÆcŒ1†‰Hæ–€´ÓºçZH*ÕºïÙ°Ðý*X4ŸçÍïYhØ༹–ÎB²õÌiÈ8ÀcŒ1ÆcŒ1F½˜9¾Qª¹ºƒÑÎ@RÞÝ + ;ˆ{æaÜ‚q?Æý øºöÃZA²ÂÝf¸k pÇQMšÈµ´“¸7åž_B2d}PÑ=9¼¿gMÛ~ëùm’ +>-ÃÙ Oø»ÆŒcŒ1Æc¬t¬‡äƾ’ùŒç LÃO‡Ó¬¾°”zJǪ0 aŒîE”Çý„„)¾aÊ>Åèg1ù:1¶ym÷øt›Æý0^1m)мàç¯Û +à9HF¬¢xÀóHO¯›‡)È»¼;¯ „oÙ„¸`äð‚§|?¯P¿€9³µ’{Úæ ·¥k† þ¿ÙÄÿµŸg`-€÷kª; Ïø‡!ÜwÐØ€té“Å5¿TŸ×@¤šyø™ù;…l ™Å¬<æ¸iþ^Ã8¥eÌAí{K ‚á—š~°²èßYÿžÂÍß<ahnÏ){²F¯”ô—/ø6„{ À†Úšz0a€„¬÷wfá +€g0š{î×±Møã~ŒûAðu©ï«2Ê}ü}ý=¯ó›œrsÞ‚( ²wÏv/§x¤@ùã¾ áW6@Rzgõ—Æ Èžú/™¥H†ÒÉ]$;$O“\fX&y†ä’;MýEÚ“FÝ>ÛUWIN´o¥S/ /ºÎ5€k¨Ê·Ë·Û\M’ÜAò eì.˜v\¤Ì‰ƒ”92«®™!ù,É“LΙÊøß<àçX)4Ir¯éÛPœ ¹}Ú>HÚãé‡3$'F muÐ'H6Gà²hŸÓæeÞ\cz É7I.yßP1œ¦Œÿu#ð\ ’/°Þˆ$3¾¤ÑeL÷‹eJ?².´«ê~È»ç0ú!_‡ñp1 ]_‡~ÁJí‡ ’‡Rîq–äF&ÏQ“æû½>ÚÅ"³÷Ç]ô÷ù1’»I®7÷Ð×LSøòÏu¤ì_Ͻ6¥ž<Ì›ëËð;‡òÚ•g0Ñ><1Ç«ç š7PÎeD O¸^Q»òð*Dóö€¿Ð=‡…Äâ# Çü©úÜŒ£<ü‰ùÛ2uäáyß (×/©ß·Y¹äáŸCÆaˆÔîˆ63O’ùuÁ¯!¼¿]¼éÏ›] ¾"¡÷±Ç0šÒ²˜€ì õYϾàŸûmP x¢áqñ%DcTTó3J˜ƒ<[–ä€Ï ‘UÀ*Ⱦ“e%p À»†ÝOÞå¡ +ë̳þØY#CµB!ødÏ*k%“Ö–·ûÐü¯­ß¦ f±› cõþ+ÛA4„ÇÍ=ÿ ~›†X“}ÓÔ펫ºúÁâAÓ®/!|ªmûǦÍ"©­-ÛÇM!êÛ+þwH?<„tÓâºúá3Ⱦ¥ÇÃ>ˆ ¼ôus]Uýð!dm¸yÞÛ™Z[é&"ÉãÖ=Ê`¥­ Hÿ?¨¾ûò^ž@ò܆u¾‹¤Åwüwç~oAÞ§Å È{xaVèö¼ó]ÈÚ´Zýö€¿ ¨^€Œé¢ø rö(cÕ~bÍniœ"˜¥h&C$UË­ðIŠæ÷Eãkéùþ„)RçÉ—X\ƒuÐ\´àuýÒ æ¾|ßaPÏ÷Âtk:×P•o–o¶¹šaymcQ\¦hdžýއI ŠtUc‘²Ž¼`þ·¸H™óúßÑE޾¶·ÚÌìõôÙhcU4ÉtMÆʘÙK‘˜[ÚKÙÇ|Z¿EކÖXÓNÕ¾%ÊúvÌióÚhgQjPÆbšÆ‘òžf¾Ý´é—<ëE +°—õ¯© ŠF®.¼ä¹ßï·ŸÕõCä¶‚õl ¼;¡ýp€ÅæIƒ²^¸ëD•ý Çë2£qÞp~{SÕ³ÛólEúŒkFuŸöÔ÷®vÒÝSªì‡óômõ´ÛùmûÖÂx £÷|–Âß¹myØSGÕýP%VÊúð¬SO‡rÆ›7Ÿ»ëÛʤ†¾CyþI&ÇLr¶(rž¹¶E™³n;ëéÇ +ãL×nÍj—ïËíŒ3Ù ”¼‡b†b‚â£sýnÊ@M3ý9ËðÍ{’ÑBúRª¢9ÕæÖ€ï=hÚ`žÑ’kγìéƒ5Î5û™Ä U~Ê)¿•ÉÍy™2†ê|ÖÊtqšÂXn¤0›æÿ')óÃÝ옶N«þ˜§ßœ©Ç¯‡+Iéñ´La lØqs‚þw?CYS®ª:nVSøL_§-6Ž@;«"wã]&ù:ÃýÍL +‰.²üV5Í3b¼/SÖYû[[µùrgZëéw‹“”½ºÌü´sÝ2V»RîaqŒõíÍ.c[:Lglë@Êí‡EÊž8_’ŽxÚÕav?tú¸ß&×Ô*úá0e¼¾N‡óNù‡Í³bܶAÙóŽyÚ•Õ—)‡)÷`¸Î´å(“ûçsÍË”5±[C?aÒÔÌ>üÛ~H3ÏꇋŒ»W†þ·3Z‡3yp«¢ê@‡£½>¬e\°¤]óæ»nN{)Ï©ùš&“äLŽßŒ¿ïm¦®9÷ì™ë[ŒÆ¢^—®Ò?Ž\Js%¨OfµËýbžIéßeáò1“”«EYÄæ)Ú6´›ÑâºÝ”kÒï;±Ž²h攎 X©–®’ìAñõßw-e2î£Lü3”…ÏB/Sñ жteQ¬âP4Ï$ò|U}ZËôo vÂsÊÂ'Öwø_dróö‘ް!§ìÃLnîe%¬+^rúZoÞ;)‰mÒ ã›‚Ë­tZÃü eß´³ŽqAÊš¶¾D=–¡Ö8Áb¾|UÓãRgé·Z™g´n.ÒÏ(í¤_Sšùëb(µLöoº¬V€â2¶Ep•²7÷˜/Ì#ýŒmõ¦ÕÂØVÑEÚU ß~8ÄjÖ—9&ù‘ƒNYr-®úí‡Ã)ýPäð¿L9иÅ´~° +°øáß¾·I’§*ì‡:1ÊóBóð§?l¤ì{sêèšëç律­a?Ääy§m~ëäÜóeSFŸA§·„~3§d´­n´3Ú4™Ü,2ù’7S¹ý˜%Ø€û™ €6ä´/D‹×1eO唫‹,cy~÷²Â’ )iXd$N;|g‘^,-ò˜RŸÖòTÆýÓ$¿—hoÙû›”E¦çi'YŸIoN¤ô«Þ¼¦)ï¼eþV±Áµ§«L +‹>ó,#aâU§?W2Í2?ÕÍtøßâ<[¨@8‹\“a¦×3ÎÔŸdö8u­óº]_`JëÖP¥ENËÔí +‰ÉôÃï2Åb Šûû% +Ÿ²•~%Å,eo;Èb‡†%ʘÞNÿø™1¿*Xocëë‡Êج’Îg´óL ÷Óc§l?œg9Þ*²Ü HÿA§ša\Ð\¶z)ýPôðo•>Eû¡ìá_ÏK­˜,Û7BûÁu1)k™Ø5×Ï{~Ki¸¶ù½S²-ÛÔ=–˜ÏŸ ™BýÁeŠ\-äÆ%o§)÷,å…lcÜl[ÓVS¦m®9ɸfà “L]ÇiO“f7ˆaiOµ b][é7L¿BÚá;üçiY}‡ÿ´ÅL?üWɬÏP6¡ÐhÔ—)ï¹ázÆûô%Š -MÈs•"ñ½blVϹÈêL×_Vý•i +µB(Í%Eãf²™b|ü/³šŒ“Œ QÁÅúÄëùžfëÒF§OB­’I¾Ã—ý +^gòà>Å¤Õ MMSÔi{f‡ý­åE";wXLˆiMƳìK”¸(E„›s 7al}ýPµ€,Îà÷KÚÿ¾l?5×.2nj<ÉhLžaüým3å­°Ì~âG¾Ìä¡ìMóýãûª¶(8âôa[µ[•²ýà[³Ëþ‹Ž‡~ÿ–:ôÃ͆Ð~Ðﺟøl]SÇ|Ê+¦³,‹Û¦L§öè{åKB2žÔ̵XЛèã´£¶{Pœ ^v0nþoɺl£h/êº-Œ&ñEçžSŒo~§3dJ•«*eGQj©6TeÞhi=³%ž‹”ɱŸQo5mÚÆ¸ð%ëaŠ,)²ï ßÉi¿«á&³ÿ`2Yíá—ç9BÑÍi{(Y÷Ke·,qô¡4Ϥ9_•ñ;ZªÞ~6žQ Í4¦¡.fxXÔqžï… +ë~Á©{PûÆ:ÆMJ—)ks‘÷6ŤôAކ•‹ÏÅ+k\±h:CÿØIÑ2ž2ý²É´Âè?@¹¦ÂEÈ·GùÐϾµþÀ»§ÙŸð÷åd•¥Û®ûáLmÊ£IÆù—.ë‹ï2Á8ÏR´N2nµpV•ÓÚC2¾çiñ’ú~ÃaÇó´ó}GÕçú¥k—*Í`\àX¦²~/søýÂð¬VóoÉŒ±h?ܬé=|ïrŽÂ æÅôêš:æ3ÊÌQæMžP¿mêêd”i0:?ùÆŽtwsÚî‹g2¬Ëj—þ Ñu +6Í÷îdž¡_úž÷ ß`´Á¹›vO]×Ëx ªÜ|Ö×H:`^`‰Pj0=oèeÊSF[:EÙtÒÌ“Î0ÝÇÖgŠw‘‘ÏaÂŒêk|÷Yp®é©ò=å—=åË0V Šf% §L½ë(ã~e¢»ÕSŒ +õIÞHÙhBçÍiÆ;{)Œ¬;&æï?*äÛT0Ÿ¯SÖ¡£,­½©ê^äÊ Ø`~ÙÃÿeüìá蚎[rMÿO<_ZãÔ_çÁÅÒÆçíy–‹e`Ç„á<«>¡ &÷‡¼qy€ÑÚeŸiëŸ[é·D+c’e–nQ…`išqßÞƒ¬Æ´ü_¦ðŸgŸuþ5X´nVt™ÝMUÖŸm’q^8ëìÔ5eæ3Êèù“e Ù6e:e´¬çù][xèyç£<.f´$SóCº9Q¿€äμ’wÚæü-$×öýüˆY9»/úÀÕ÷›Üa꿤¾oäÔ§q—sŸaà†úÿ®ÔRᘅäI½ßùþ3ÏCòº–ÍIú{ÿhh’ßþ ·˜ßïð‰ùþ{ε¾1㎗ ×ÜnÈ_y›Z£LŽø!ÏêâcH¾ÍŸ9ßÿ’/ü{vxÅ´å>HŽQK|¡o ùn¦!9TD>Ι²ïøMJ™9óû}æó| +à—õ¾å|¾à)óÿ+uuáA”{®ëêÿ[!ïýû%ê&ð¯ïBrÔf­ó1bçÖówàŽ÷QÀ$ǮŠÈx(ºÞMø]Êo¿‚Œ-»†Ü  ™ïUc’{XÏý@r^ÿÁ{E>¾‚ä<~òþï2ô¡©÷‡eÛžA|ïûùãòÏÕÿo š÷@òWý>~ Y3Cø@rп࿨§‰ü}þ]$÷Ï2ød®¾ Y'ûÉG®ñ d]qó¬kÜ¿iãÔí‡[!kMx“†ì¥ý@ó!Eûá}¯fs¿¨~û)„Oø„ÏzOýömȾu+âkà¯!óúAõó 0ݽØîuAÖüGÌq?™»w¸9?¬ð¥jÓDóûœ)ó[§žíæ^«¾îðªjïdž€âýp³"¯îUÿ†dNúÛçãïEÐ×oê³.ýþV#ùœÿw·BÆÑÝ~‘R×»¾¶Ì™¥,ÞÊ-¡¤.\É›–œ÷ùãµ(RžíÚEj²•"]±Z-7â7(>»½Œzµ¤¦ÐŽ:¨©Úp¨Ïº62åû2ëÕò6é÷¹?ȸd´ç)ã¢ëÔÝ ¸†ª|+°|›Åž1­Þ—®]ôÅ?pq–q­µk®¶Dé×')šÎÍŒÜgZžgšqó¼nÁþ&Ysö7™” +w)ãßjGËjî]¼\‰è’õÞMÑj¸¦d!šÿ6ý¸ÜGßÖIîÚ_4®Á #Ü,óò®sŸ:2‹4×.²x^ô<šfr\ìç`ÝAÜuqÅ´øV3ªÁÉ#kÅ¥¿›Umò¹¥=[ ~׌ÛÅ2“ýÒ$«§!¦åYV*yýp3!´zÔ`˜:4ÿ¶½eûáfGV?hKß¹ÈuµÉÚƒ»¦Ì|F™*-tÛÓ,µ;_^ì—¯©A¯Ó,´ôÀJà~ ‘ˆ|"¡óiQ‘Ê]w¾»"%qq "yqMçD’·èûÝ‘ZjpÈê×€b–W"½w<çùîyß)PÇ cìDš¹À7!b+1¼ÀG>û"¿Ûüv"‘OÓìÁï ’z«AØ„ú´˜Ub "­ÓÛHJ…?1ß[iêQw;Ÿï°"¹] x²Î>àïÍwO!²žxÙÖDKôXÊïw@$æÿ\A[«Â âÚ²/àŸ·Yx ÑøzÀŸ¥”»ä|^]ð>yØ™›vO²ñªççïüg{!}· +2Nî‚ìÕe­ B±‘6Íâ1„?çÈúy²^Úñ}OmºIžã ÈÚòˆÆó!Èz¬­bÞCØú¢ýÿ×€zÖBÆ„µ¢dÌ™ß?VeÝ÷Ø€<ÃylµKŸCúñ-促_Bú`SF™»®ÙÒýpɽ¥C÷kh?|Vk‹¯ ïÕjWCûásó·.Íÿ¯œ2uiþm{¿2Ïd×¥Ð~¸Ù‘Õú<æî·€ðv÷BÞÕçõb5ódmKƒ]¯C¬áÒðd¿ù<£Ì÷ ëðíu]Bd…›wö|r&øfN¹~açPþyQIÒp”þ(ž³)׊t¯Cñõî¦ÐŠDf/EÊ㓎oaº_z/C’¡¥mÊö­ãÑ$¸Ï¯µ(ËCzžYÆ%[d2RìJ£&q8°/šÌTeã5h\eÜ?ïhM}¨}ͶŽ@_çõ§¶nIÓ’åõS“" Ί +¿Ï¼Ý?yfF…¬ÂMãb³dE¸…ù-$Ѩe‘p#”Ï—¨CÇKèf”ë8÷jWø[÷5ï°Ú”`iÔb|~b½Á'˜´ ++²ÿ5íyO2n-‘—Îr7ý)C‹ë ²'€ùþóyÙ*&)ü}öʸí2n-v–~«°mŒ[õ˜´L 0™çŸšåׯû¡Hz´•BZ£Ú¤h5µft=å}ù"õïc©_›&Ó#õïa©_œbd]w’q뺇eÐûJC=çYÆ÷äÍLZ£†öÃ>ÞšMGs~O73²ú¡£Êµ3Ê­T*ú|z~Ö«,ÀãêyèQÌQfu¦ms”Å++Ý™¾Z=ÚÔ7i¨‹Vm(sÛÀ8ÃX‡©hò Üà~+‰\“¬%¦§=œ£lÒn ¾óÓ%¦1SKì/°ÕZŠ«‚AݯîÓp¿!×âõ’õìdœÙM›'g(sQgW˜~È£¦­îZf˜¼Ãÿ,óÓ’Âô ûY5Í;íë–¬g-e?Yd¶€£ãܯ]ÑslcÜT´¬@¸,Í2°*/ãJ?Ôvúð@‰:ºô#/@¢¸ö“²ÁÿŸ½÷±«ÊóE?÷ž@ %”PB •ÇÉå#ýˆñ¡2Ä!ñ!yè%^Ê!^â#^â ƒ:”â ƒ6Úè%=tˆMâ ÃqˆM2$¦‰MÒœH2TšØ$M¥IšŠ|Þß½îúîuÖÞ{í_ç쪜|©:ûÇÚk÷úñýµ¾«_ I:ÚI¨3)ß>miNêÙe¬tÌs4>äy¿¥o»†µ²8Èœ:FR¨ú™(Œ@‡Ð® G$ùÁ·Ñµç!akR‚ VCB©VÃ&ñ- 08]’4á—›žÐ¦NèçK¼ÊIH8’áÇuHåGå«U¿‡„«¼’ùäÝ–["5 ?œô§ð‡áï†$ß¹Ésn lÂÄçàçÃßAB‚Ü%2ï"èï$d¹ÀðaF0‹xò¶c° ôž‚´¥&…¹O@Ú΋°ËG>‡­sÞ²Þ‚Œ7Ç mt3úûJ;ºîŸ aaËÛ!anøsuÜ„.ƒ„¸%…u¯‡,¹É +G3Ièš‚µˆ'½º›./~ éï«Ñ&ªáò(mþ +ÅvÈ·[…äpÖºñùè]HÛ7K’îAHlŒ#Þ†¾F±ov/d޹/ú»Ê› + Û/“ïÈ8tB{ÉËFBð-Ò—-½ùoø1m?„wIË랃È«!ßôsˆŒð8âýƇeI ¿Cøûè݈ôºË›!ë›îDýk³°¢ô?€ø@iò#Ü/@Ƨ_A&wŸ!ñ;?‰þ×BµoZS° 2|i?îñ,å+â†D®CœŸ¤\3hŒ£¿ÞÏ#l u~›[b¤½¸k<[ây°Vù¿ùV?/YfQüÒ†^‚0¾€ŒãUå’q38?ƒbù:~€ð>‚(´&;zè½eñ È|`úÜý±+­ý¥)FgSεa3Š?Q`>EXþ cly#úÿ„ñžƒýÜ|+gPL–Ó|¸ õï0h„ +æš c¸–%^(/&S¿ù?@æúG cÆKêž·!c”ÉÔ¯úCúõuijû +»ÃÀ±è·Á3°Æcë—QY÷Cd‰·Õ¹— }|3Âòk¹ýb%)ÿy e '+ ZÞZ“pÍíöÿ’ ÂÊð@ú—o»6çQ’`=âFÓ³Ñ|Ø ©÷ÛðÊì@÷Hn'³;ØKo®CÆ‘QFNRá]'T`-%,¨Ëxhc0!­óì_ZÐS×õ2Âôúë—Ϭޡ¬ÝéRÖ÷ +Òñ¨ŒC”.“Ï@‡é°¯r÷CÖ†4šb<äì4³žµ +c>ƒEÏu3ì_CÙ¥|ß6%,tûÃvæž«Cþ.&\£iýËè©—»†°í¹§ð̺I¯ç58Èò™çóÞ¯¿YÓÖ¼ZGi—nxÿ¦è¸»Ï±K{˜½;…»Æ´ ¤Ã@ ޳º\sª\ÚÚöð§Ì¾âëi—p•]—^5é9æ(«»]Î&\÷4óÏ‹i´ŽÙË QÖDf½óç]²êû,“ÑI¹O/[˜`öÒGö0¾¶:!{lû0—r_VæƇ²»@5‘ô2™P>öœ¯#ìÿ+Ööoê»Èø²†P>¬tÌ1™;ÔuI»cÌEç»)åÌ;Ï\—p][]“TÖ¬SVZƒ^tÍlÂy½l{cJ9!ÔŠê’¥cŸbEòEh¶ú_øëˆZ«œ±L®†Í¸ëç!V± Ñÿ'!V»“¨ÆŠÿ>l¶è§"úb= ±.-ùŒUw¼òî¡ßÊÝ›R0xÆëczŠn¼î_"y_çí°Ñi!43ˆ{Á“¬c:„Q}~±Àkòí^ÿeBMÂ3è÷lø2›ìÙO!2ùÄÒþ0¬GùmÄ¿ ßãqÄ£f¾H¨ÛZØŸåÏì†ðFTgã!uû­oiÁ#(k,ãa5™Ü¿‡ô ãÈ]pô0mòx×Ã~¯+ž5Ì@,ÚçÏÚ¾ ÒçLDV’ç?ú#\\œ„ŒÃl.Ì.Ú³rÕísÄ#)…Ìa@¿7ç’½£YhC¾ÓÍ6v/š!õcÈÜûÄ3øÄÛW³ð>’eƒ"xÒ§ÿ8ãºõñf ìÿ-áZ÷{eyËf»¿2®ÿ $;z¾¼b; ݇d9" iïªÏ]Gz†îåˆÍêÿP>”Ù½¢‰02¿A(ÖxÊ©Úóÿ%üQqU{þMD×'ê|(V:ÒÞUGrÝÑyŠì€õ äÝùöeø{"ýÒÆ>I¿<_¶wW2?@Úàçy˧|‘í«‰îUÖnÖ… +¨§êÔ ¸Þõôž¦xëç)ÉPf)¢"6ųƒâÑxâ•Ó^·¼û¿vÔ½W€ÐYD»)e¼xݬÛ$¸žíÓõ]b¹¤vƒ 1úm¸|j1nÉÓû‡¾C±P.1îw{Í09»ç“êº Š'æHµ:¡~¶/Û²eöÑ.Kª®'`†ñè€=5ÖC÷£" Êê&ãíX`Ü‹a<ÿi ÜÆ(ãU>|ÌæEìL²?ã?™î¥,Bz|ìEÇZŒï Aßm¥Eë=]by/@¤3Þ¿P²¬ãóÁE®M0Þ'¶±ßcoúÏ9ÆÇ€´dˆÝŒ:´™Œ´d¹‹´É7}Ñ^u"i/k09`‰éWmçúº’Mƒtr¼¼|˜¦Œ)&S¿ׯie…oߥc;m¦þyu¼E‘eIÇ´W|#¥ÿùv8@»Ã€ö®eòóªÞ;JòÁ´‡:<ÿIÉpëðüob\6Ρ•Š,>€ñ¹ÖÇë¹è\7£œÓp»|ÏêßÓÌŽ4ìEeÍzÎéyåHÀóòÐû»v*~Fm€ ౫d9š½€ëwq¸ÐŠ^¹!çûóZX륔£ÃgÓµN]“2ë,²n¨ü$ãBKÑ,îƒ"~¤ÑÍà™´ÆϦmxâN^fÒÖ8M ÓÜøÅ޲ã‚£:m¥L¾®QÆmgôã"‡³u£›í_ ç-Ú~½HQ¬©cŒ+ÅMÛp<âÓEÆ…å’Öˆ4¯ÊsÛWYE¯r·0#e,L ÅËÓöQÆÅñˆF<š®1[)\bñe)&{‰Íß‚S×—,·ÄÍjînW9HÚÄxÛ™ ôû«”>¯Ç¢vJ9Ý€çºF$ƒ£ÏèPúû ÑK©W’ñ0D°Õ|¨Ú€7LÒÆÃ¼|xÚù}J]çîH¤åd½óÒUu|½sϼ:wÀ9g +“ÎñŽºÇ Q×Kj´,Óe|—¡¼|ØË•¡üƒñ0ô¼|X©áÃ~u½Ï9딕Emõ¬*Æ€^TÖ¬sÜ•-ëpbm mË]Ö ËëÝ’o‰Ê9U²Ã|2ÌТ_Áòz@´õhÑsïV§ü$Ë—n„YÛMé=Éã¥'“ãžóóêü›mñïÐwÚ¤ÎõØÿ} ܽ}A`pŠéÛ7ºÛaqŽ¢·_Sån=CöoÖ1³)u©ƒÚŒ Üî$ÜŽŽ¿Êò¹²HOô_Õøœ"4Nù®ZÀ­“¦üïÍû×ßu¢÷u÷‡nµÙ¿Þ¿ÊºŽ1Þö|‘2kÙïy-ºMß¶ +Ê%ã"ãÞÇPr 2|Mþ È8޲ìL›¯t»‰æÓ‚­FÚ6€¤ôÑÙ„{ëD/¡NÓ)÷„¶š>™a9R‹q#e^>ô‹´Qh ãÐ +ñÇê¸ÎÔvîÑN­ /ÑÊ’ãŒË&Úa£Ld\áÖ2e—ñ~Q¤=¬å¿Åü +_Òø°’ÂרéÊÇsÑñn@YYÔVÏ©bèEeÍ:Çu;ºÊúô W)ý/+ò¡YG¦1Y{º +²ÆîkÈš³êkH†ç;#Z]û +êÉÒo¶ôùÅÖÈ•Á3_—ÑB|›¸·<÷~‰øö0¡ŸMˆgfý"ã¹f½ ëšÜLà-Ø|€ðÑÅw½ Âã‡ÐÜm“ÖqÞi—†çgÕ9³¦ç-È»™5š_CÖÍêõKÛ k˜M[ YŸó6$¿€YSw7d-èK°}âÓÑõ:ŸÀ—èßîC¯9<éü¾ ñêÀ¤M|Y·dÚ¤oíÝww Í1 éy×<#¾.>kü Ñ‚dp½Ò¦L¦x³¶µÂ¾1r#d}ØÍÑ5úÛnƒä“8éÇMY‡>›—ÅÝ6ç[Hɽ…·!¾VÕÝv²ÞOg®ÿñœ'¡0ÛQ²Nô¯S®m‚Œg«!ãWÞ-ïîp~ˆrmíȼ};ªÙ¡À¬u¿ÿ·H—;¾„Ýò6D~xþqå&Șý/žs—!ïy= üªq9áø½ ǯ!,§ÑÛ°|¸ ÀÓ¨fKÍaÂl# +ãÃÈúò3Ño+è_`3õŸpÊ~*zÞ͈g*ÿ²ú¨L½ÃÀ‹1Íì0`æÊßCòž< ™›ŸW÷¼»÷'ˆ¯³Ò¯AÚÌæèxÑöp–ïš37? +×áÃJD(~É‘ct§Pl‹ó÷ }æ)”ß%m¤ |à/rÞ;†øÖ]ç^‚ð¹HÞ„l(k€FKÌãžÖK´–ÓÆ-æË´ÜS÷örܧC·_¶Ó4r-ÀîkN³ß¢©­ÅçžëzŸ}Þl¤õ¬ï©kšæYÕ¤Ûžrì†ëº‘ú÷!ö[œ§Ï/dqöÑögú¯\¹ókVÞƒ1Š—2©ï¥Ì#Uòq+e~4ãþ%f/ê¨wê>Ç—Ç‚L^¯y˜6ßÏ ‘´dﳄëóÌI|X (ʇS¬?Ê­Nr—|–iËÕóÊ7Ôáü£~!ÈÇνsêÜÚèwÖøÜõÜëÒxt>íÐF2w2®Û•5å¹—”v—¤¿UEµ-ãÕ?4º•Ú1ð8³· 2Âé› _+ÙS÷÷r2ÌjzŽþ¤p!¸Dÿ:¹SÌF©¶´54®¡ C;¡¸!\!k0Ýu+§hCKÖ3>ا)ö¡Ë†ISNßa<$ïs½»¦Õ`?ý°£®)²m™ž´B>7Æøw[Çþ¾ºx¬'ÆEJ›|‡Â˲ƒ–ÍöKô÷3ß±u´¼]d³’Uš5ØZ Qþ÷EïtœñÉhŒ¶-v*à{Ô¢±ÒÖ'm㓇¶RÆùÓ´sÊ8E¹Õ“ò4ã}ß èzåYUFÓ¶UÌCèz WTÜPØÐÄ·=Úäwƒn‹O2̸`øaxR¾+Ø$……šü»ÙŸ7¦nøì¤åcy[— ”q{9’–Ëò!O^¨¦‘ÎR–sÎùå¢üƒñ| eù°RPDñu—·äÕ›ºÑ½s9ïóÑ|TV'ç}k—Û‡™h»4éÝŒgY>ÁÅ)f{_zêú^ΗcrR’yÊ@ðe=¸ö_ŠŽ¢(;(“öAú÷‰/âmÓ¼›Ï¸¶ë<Ógˆ8ÇpÎM€u•ýÙ&Éô}&Ç^š¶Öì_37Ï~%_{®\Ah‰É +Â4m[Xbqef Ãö>ÇäµüÚd’UǺëBZ@xµâ²×ѵLÖvß„s•ý9ôû7))ÕÓQtÂϵLWþ[ŠÏn$ÊTô®U%Ы‚¶Ó¯l3:^eÂGNÂ5[é7ú–Ù—¾•á—MÒŽã¡IütÞ—Øœ\-ÊÜ–Å¥Žz¯^Žû´`›ÄCã”9ü4Ãv‚© +¾BÐï(!‹ ¶š—ØœH¤<4Ãxä]Y>˜„¾(óøû=§¯Òfê×Å6“3õ?I›©_Ë_´óßQÆ _Òî0 û{KÕùTTßYÆQe{XNÊÕía¥ ÚŒ;«3ŸÃ¢Ý7WàÙ.ÍGeurÜ3ÎxRðs¬'úoeŒ0yžñ­Ké·•=SÿÐè¦Ü´qåç %$0kK›‹” Q‡Ä\ezø`O]Û+ø’³ôoq³Àì[é7tœfq¥×M 4›qý4Ó•ÄEæßzê=oI!™Ã»êúª•¿*¨í¼ÓnöGTœb|béDÇ/1ý»è0û²JÀ¥a|¢1ÞÞ}LN.ÙfÜc¢IºêX·dý’H/'Yb²çº*òE™´(ãÊíD¢"¬¹NyÈÞ´ðg¡$!hœvÐëŒO–¢û.±^èuLVh¾a5“¶K®wsŒV°vQ&aŸñè”1ü5‰æ£÷ Ý Á\o £’zѱ*žMXhš!:L"@2},ßJ»¬ª£îéåxV›~ùç*ýýÚ(%E£‹À'¯lJ¸¶¨`ÛfœŸ(c˜4Æj|—]ö;£Ì|ÖrŽkyâiçœî Z&ÔÑš:÷èïÞUÇ/©ã®—z?ãroU|8Ìå¥üëí«äÃrGÅ×u@>M‘_:”v—–H½Ý3—rÍJ_{“é +óQY”k¦(2Ĩ\-[’Õïúcv0ÊÂ%ß¶8Fú‡F7ᆠچܣLœûW\N©kŒ¥Û`‰"|mSלf²ÀÐS÷öJ¾ìFŠâë +„IëâܵԤ ´»X.ÌÖlCvhÓoÄ8ÍbûN¯¢Ë ÆR†öþvKð£.j;ï6?ê?B;˜…+K™Õk&«ôh‚2„,©§4Œg¹«Žu+®ß4ívRÚL/[Udú3)íx‚q£Äqn_ò,2ŠTŒ ä®U×í É»?Gs·f˜ïÖ¢´;Ÿ¢Ýcùñ2>¦´ow2ÜB¿áv‰åCrM›[îÞC“´ß.Ĩ=ïðtVÛÍê¶CZñ¸hdË&Zog𡿭A¨£ÞëRÀ34¹‚­A—ýí¿ÅÁîVäË2ÆäH2‚­Ë‡ùe š:5òAêÍ|eÚ‚–ŸµØ•Au;Öß®«Ž»:ú´ó­§Ž»Ñnî¡*ù`äþ¦+ÿ`Äh•|XÎ(«øêˆˆ%ÆÛ[šq¾]3—rWÓ óÑ5”k´Žã.ת:ô†þHì4`IÙ*o¦üG ÙF¯C²‘ÞÉf’™ôCHVů£ë.C²{¿6#éCÌ·Gçþ±T6Ãlü€ÿ +ÉÊùDT¿ŸFÇþ8ºvñÌÐF¿ŽòД/ ,»ùwQÝÖCvS$sý—èÏt‚ü9äîðá +$ëÿïËøVý¿¦@ꆛeÙd÷’y×ü¾òýðkdgćÍÊ=º·J„dd«½S;‹bÙÌC0Éä{¤ŸÞ +Ûü&HVàU>ô($“µÉŒü}T¯¼;ÔYÈ·:ic?Àf>^ á©Ë¿HfæÛ c§É˜Û‚d…}*:ÿ†û޾vÈXòä{ü¡Æçÿç÷$ËóCžk/@øïËÌŠIÈ÷âY¸—3~ ™ßvBúÑ?”(ëï*©‘à—è‹§ ýü dgEþ9¤]Gz¹þìø·DÏ Íîü?!;Üïß ‘9ô.?@Úè1ر´.\@|Ç!ƒ×п› ™çÿ©Äó\><ÉbÝô]~‘ ªæÃÍ9ú $k¸‘³~ˆžûdÜ|I•ñvT/“©ÿ—êÜãyà:âÙý?…ÝaàâòÉ3°;K½¦Žÿ2*ëþèy·ªsUóá4;Û¿ÁÄûMÕ|X®(ËÀîBs;ä;j=ôVïáÐ;üTY–§O@úKU˜€ôÓ59ï{"ë†î¨Õe Ðè&X Œå&+´ÖXÎÜýÖ]2ÞØ¤l’Ú"Ò+céðP›ÖK´—ñ=WMh\Ö…"¤Š­¸ìA’N?ìúøHc^×ËX )áH!á«ë)ßqÐ @Æ£÷p­‘®5]G¼Sò™{Øï źª×xNEüÛÇÁdEŸ¢xÎÇØŸ˜¥)9)6R¾Õ7´ž íù÷y6Ñ.kÐcÏ­ç?ÙŸŽâÒx‡ÃÉŠ¿'¡>¤´Õ*•š°òK à•´Cñ*‹OÚ³F†í °–=WfÉÄ&Æsß|C‘3ò&’J£ŽónyóŒ39òÄ—€Ï7U‰¤ås ×g5Ë7’ø°\P’¢½šBÛouòÁ·Ö~žÿqf{þÝÍ£~!¨Šæ{»rì9¦Gßv£ëæR®1;ÔdåEš®ë¤\³‘ý2Å«Ïm’µ$; E—ÉåŽ0ã/2®ûb=;‘qÝ—Kåí9ëQ¾ƒÔóˆ¥èŠ:göû< ‰¨šç×*.{p=ì-‹F¨—a­xzÿñ ž¤O`-{7C,çC¬œï"ÙËôï¨fßòP´!‚'·JÒÇ@¼®ÚòY¦m„ð´Ù/!^…óÑqó½§£z˜~ó€ÿ«ÄsCðXïܯ£ç›}¿“ö»$f žÕó¶ö{ˆ¥÷ XÏ¿ëuxÒîÎ@<¿vÊZ ñb—ñÒV]ï”ËL$FYï@^¬ƒìeïîùHÛ +ÀO*z–ÙÇøš7Ö•Á§ñ|äÓ<ùnß +™»Í~ÑW².L@2Wß +xî©ï,×…+}ŸóþßCú­Ž03å~€þ>ÿÄf<šUÂx6]ùe¤¿¸¸©{;I|8›„Û!ãªA|¸Ò6CäÏ&aâípP|øçù‡Œu÷ Ùó¿ ñ¹mýb9 J>òÝwBdpÃë¬1ð!ˆŸ6.ÿ¤ \Gz4ókïœ6'¹Ñ ¦Í„F……`þˆÅ4uñìOZ™”bдýy;|Q\ei>…ïyÐ.ò|ýC£›pƒ€Bý„á&\#éy=U§^‘Ì NTv‡ƒ34=y^(µGCbuFÍs)uÜÅìЬ«ƒB‡¢xÌÑî7ž7$h,âßÊRŠ=#Ô!Š@59|Æä°7Éd‘$…nö[ÒŸHÊP7º&K1šŠ®Ó[Y/P?P–íô¢gkáå‡Ûuˆ¿™4ð±Äþéí’©wœº÷(›±¥Ö,ûÛæAÖ8JŸsÛ§AVè_QšPÏ {_nd³–í¹ Ã¾Ê¸¾ +JCÒ¸ô1óí<1å”[6ƒ½+Ø$ ÓU®Ò/¨n¡)W]‚mN±c™94ô’5`øª:¾Þ¹g^;àœ3wÇ©ŽºçYú1,> Jù_ ß0¼žq9b˜í¡I¨›î÷#å 3¹ñö·…ºæüª¶ˆ,T?ýC£›QÙ,/AÞ—FP”.RF½>:^Vð‘);ÏËLžƒa×ÇGî$—¶÷w‹2')¡X¤´U•ÁEJ?Ió˜·Ø¿[^Ëm‹q!„ÌÎ6ú2÷ÜÛ•e²ð.å¬èϨ»DQ¤‡™ùßWi 4iÊÿ8ãëúÍñ1Ú:¼‚í£iÆf²oêAÐv&¯õï²>ÁaƒzN]Þa’^;™öMµ!„쟗[ÑwèQ”½.%êçAoÇû˜üÍŸ,CÓ8eLÛ­Ž¹9mªØfÉl ’¢yÊéßt û×Û’õ +¶i|¶À§üƒZÁÒ +ÎKÕvîÑ‘}z{²%Ú9pœñö¤w¼JšC‡Á‡%úÇí:”ÿ¤\oï0ÛCS0(>€Òž5ÜoÕ¦Èæ=&ïÜŠœÒcº¾hdÏEÖÕ8›Ø?VÖ™S*i'–¼(äôÈ»îìKÈ:µ•¡ã}˜†]SùE‰rÊÀ¬ÿX ÿZé:Ö«éµó·%^Õ|èµèMXsí÷Îï§ k™þÖsíµÕÿ`-¤o†¬Ë“MÔ¬q«'!}îȺã´lÖ&³í=êØäÏUð.dͺÁk#ÒðÂs |¤þ²V/f!ù ~ÑHFóa¡Yç|7dM×Ïaךc?S×OEçLöé¿WÇ?¬q~ +þ¶: ¼…øxõ-쮃³õnî¼uÀ‹¨n­¿z­{Ó3šÁÙèï*È|˜´FùwqEçNÑX 7OBxvGôûñèØÿY n?†ôñÇ ßYçsù¤@y·Âîbò¬v®©bNû1„Ÿîî,·Aúþˆ¯AþŠç¸™³þÕ9¾2¦ßÔw‡Œ;?ó¯.î€È|/%ÝP#VAÚËÁpøH;ûZý~ +2—ÞŒø<÷d®|2×é]H^„Èc·A¾µ‘~içfç­çÕ=_Âæý0xÃáÃ*H?Þ »¾ºê5ÿY;èqì ¯=4 `0|Dιû=oƒ|—Íoö0lžŸÇ <û5ú± +ÙÙôï†ÝÍg ¤mý’ÿáSضpýr[Õ¨:÷K>(k€F7Áb0IFÖ)aõhÑz¾.2Ùk×Suê•x^Í«÷Õ_‚wL"½†v±†òEÚ‚œ6:,rÃ: ö3Ÿç²M±„ÎS<³GXÞ£o`ös?L±lî¥xlòdRŸ¢?—AÞ]&æûËî P5M2î¹iÊZl½§ðu,É󿎲$ÅõØmŒÞïë»ËCîÞÒK¬~w”,þšˆï°ÚLðI¤½5ÃþuÞ +«°»‡½>·6:6ËþvC–fÙ@;$Í;cÑóÓž5Áx»198 fKÖ3©íh$­Eλ;@Þ܃ôì…ðaXh +Nq°¹†‡)ÎóoæÛ¦ñaØ@‘Ÿô˜Õ£|;7š·p[]“ô w™ìnúÃþ‘Kʶ-Š"K}s[~ Éšÿìž©!_fÈqˆ•ÒxÿŸÁðö²NòäÔé™?£þ¿ùönôÂg¯.~ñTºû?±,>ŠøÞºIø."Ÿ%pâQr³ó§á<ĺxå=¨sk¨/JáSϱ$ÌBön78ÿþÑÃÄ3°}ó{ ǃäÃk‹ò3ý~u4ÆNÄÛÍH¤ÀewÁz$æ`#@¿§b˜xÎùýªß% c^>à? iŸÿ< zäéßË:³r–\p¹bІ¸3úû8úǤO ²ÂdÌ*Eø Èxþ$*ʇ› òÉI$Ë&îsÝÝ Îæ¬W~ ñêêU™ÿM„ž‡>‚x¼ÞEö·¸ŽþH@Æ_$ÁuȘô$>œDþòb5â߸I|¸Ò–ïEýãþH?4óhÓøð5dܨÛó¿27‘ÃÄ0ùˆütv'†5H€`wŒ{åvÑ8áõ}Ñÿç|;Ç_‹ž7Ùââ·eÊÉe ÐÈJÌ¥Ù¦$ÛɲìE×õÔ½¯fÜ£¯í±pdМ*»«Žw¢ãikÆ‹R‹q,ׄR:;ý 5>§,™<>˜¬¹íÔ3/mcúdxÖø1ÆûÚ"›‘‰Õ¥½ªŽ½Ô´k§ÍX¦£\Ïĥͧ]Û¢Os¸9 |ä&}»Ä|Ñ)e¨E’œÎë`h>zv¯ߤšUüÍò&èùŸŒG±øöw&%ÒÉŒ)cN“Úº»³Žgìb¾,ü!žAß·JÊöŸ” pÐäò¡îœë÷ô6• Œ·ƒ6m»tó­<½Ç"ãk”'hóe|œt³Ü7•¾÷5T…ç¹´‡A£)|û£—Bwh«{BžãÛù!+®JÒ¹…Š¢h"íD™½…Ò>ƳÊ^¢¾ÏR]CÏR²›»I6²’÷¸Œé}ÉÚ¥Êî¨ãF€Ÿ¯á™`|{º×kzFä&—É»ÝÒ É׎ÜlÈK” g›¹›¡6¥ßøv,X`èTh¹óNYEk ‚tX·õ1ˆI€˜¦üL«øLІ€å]–2(2ƒ,£m•äf·^ä𠦆½|“:hVñ9‹Ç»ïÒqί§U\Ìßݬ¯î¡ï·—qëiJ?5Ë ê\Ò––Ÿ$x¾î¹ÖÀ7N'-´`›—§XOÏM”e¦Ë…=ZEÇ]–¢ë}N×;q¸Ùåq`Ã2ãƒOá«*ìßÝò°É|šÆà -«‡Úêú¬ò‡­ü*»@a£þáâ³×V¶)“¿o{–(k6³z³•–F¯èK¦ÐlTö9Æ…˜nt¼®5ÆZ¨>]Ó3ê$-.²YÊÓ¨§êk¬ìn¶|ý>ïP&ÎA®ËóQ‹2 ͧԗ”ÜnëùÀgŒ1.œf³¾ç^Šgü3Æ'Æaç'0k¦3¾«Nôúõ×i•ü™ˆ×WYo–Ù²¤•äà2àëhrøûÏGõ¸: ç šf¯g3®m³_Hu³Ï·hƒŽÖðQ‡ý2çÜ Ôó5×Ål ÙŸ[ÃìªàÂ7þ%yþ›(ÜûøPuw3z/>œ‹øàŽÚ)§åã®:îæÝؽs“•ÞöP•ç¿ÉF$>Ô¦òÁ´çYä†RoÔvö+8.NS„­}K[»¦:ŽQ¬ô»(˺ô‡Ò\êeC$m)G=·;åÎå¬÷:JßéR [E¼ØOÒ¯'YÃ/åx¿:ÈÚzïbÃ-œŒG|Yb|Û¦m”o›´XSÈM¢y®âògéW×3þÝ/qøKRæU}‘tpФ“ÓÎ\ï.XÈÉ—6Ũ§ »Y<"n?ã},‰Ž³ßsî.¥j€ß®`kp‰ýÑ—Sì7Òºýf6¥¼a ¶Eø°@is%i/›#àåÊq¿Ëþ¶½…b|þ˜ñ9¤Eé Ýèïì +àÃ~õ»¨òß$…¯êBÓùàûv™,´ÕuyÊöÖ¾n4B’d“þ‘†C¬_PmS&ÿ¤ð—^ ÏœQåwÔq3˜ÌÕø¾:Œ;tõ&.Ùd率IÆ-à§ï8›h÷¤ÁRTF—ÒnöS„¹ˆvP&^MæÜžèÚ×I¾GY§ç†sÑóttBÛ©{‡á¼Ñ!¦™Ïû?Í~žå õ£Í|¯Ÿ½ýˆz~˜J³™<ôºU£ iÅb:ºÆ [6z—£î^Ø!ä‡òŽS&ÿÆ’ç]Qîûž®óÜ&¬KÔQOï±™Ë5Š’ë!lÜ3Îx2™¾?³K)ã”6~w(cA‘wxqå`“3ãaïAöGNuÌwŸÐ·Àþè3Ó—Ø?þ­K(§ ‚m>T…åʇ²MTtÊ´‡ª”ÿå·ª°\øàã…‰’q¯kQæ¯vB9îaGjšav^/R怢ζé!øŠ"Ànd5aÂë(–Z7¼×‡^Ïs©­Ê×ÂK/:æ†5VIz}×UÖ³þ­Òžæ¼ +ã0I¯'ý“É$¥=v9Üd,.ÎQõMôwúCêÚ%æÔuDÞ°ú)J¿ÙJQŠÈ|ù&oOmU®6Šœb3éÊä±À~å_¯7[•-ÐZ×ÇÕ»¾ÃåÑoÜõÿûsÜ;çÜÛvÎkïÆau|Ö¹¯Ó>€ÒÆIë‰=Èf%±+JfÛ¥%õMBÛ¦«8EÄd“Û¢|0Fö<䥖;ŠÖßõ(.w>ø¢ÀBÃþWªÂrãƒá…–N3ß2]7ùcSy°‰2}C«‡\¢ªlIþQfÿòÅ«¹þp¬ÝÑùW)ŠÂqæoÔ=·òФ*ÿ€:Þ‹ŽÍÖðLCãŒ[¢ªŒØC z~W%”m`\1®+GB4ÁþupíŒï³"p}æÜ[')ýãuJßÉà¶:÷ȸÞ%Ý÷æ¼×¥9†/gyšñÁ¼«ÎµÕ¹º3D‡ÒZÊ„¡ÃÏ|Ê¿ ï×I­¦)ßt‰ÍM°è£ã˜Ïq¯»®ºíœ×ŠWG?ìÜ×” ºÕç0mÇ9.ß]\6Ñf ¿Jáp*g9Ú€GÆç±qÊxTÖË4Õw‚Å÷fnSä#<ígÿØyŽÃ‰ìp[ƒCÎu“ŒgZ´ßP£©‚m^>hCkÍpy+{I|8G™CD¿{Î{m¤ÌKK”v½ŽÍõr–mæ=B”ÿ.…//Êb¹òô' YzÖfÜ8Øä¼#ý£éè±&tÔ±^t¬îPc×+]E¨«ëµ#¥Ã·K–Ûb<ÝE.?؜×.ó |S”o´—Þ|"€õžÄ£G1Îti=:{(Šc;çûL:ϽÄ|ëpÝ5ÞuF¼¸4ñ±Ci³º-µÔ{å +®‹LRR=iø”ãM=B«hl¢ô¿E6#”=uGžmQÇ£û_¥´m׫l¢GÒ +#î–ƒ®4lZ bc”¾b–q¢(—y¼àE€ê*Ÿ¢(è&©å{9Ëœf¿pjæÍñ¨Ü²óh‹2®™¿EË1K–Ìwr«ú¢ÂEIùNÒ †oz®_î‚­OÀ1¸ÊÞJãƒÙ0¯®=àœ[É|0Ñ€YÊÿZöom¼’øPË`²Óohå-cœ7FmPÆ{Wù_.Kj%ý£éè±&ìQÇŒ@Ӯ陆Ƥz,çíœ`²¥0ðî#×X1ìmŠ’ÉÔnP4éÔ°É5ÈùsV´ûgð^`܈5Èmç|4N1Ø,Ñ*ð󞺙DEïЕvG÷5e C^rû|V”’É@}Šþ0ò#ÞÍÓƦóQÍTÌ2ã…‹ÞE{ÛŽSÚÅŠAc˜K=Æ(‚ÎÞ¨î®wtŸª_':¾' \—\£ó7L6_dúÜaêœt~/ûÛÅ6†GÖ´)ýsSçYNRŸaÖÝŠ‘\9‚­Ë‡,#€‰ÎZé|ÐÐÑzû®Yé|HRþWªÂ—ÖB°Røö;óÌnLîö˜ãŒ/s]bsäÜ¡Ó"‰ÿ럆â,€?ª¡Ü€5nðëè˜áÅßÕðL->W¿?ð§ËÚàË„s_øãŠÊ-SÇac +À1È·5xÀ‡R›bhxÀNuìm–³œI߫߸ÇR5ëG ÀóÞð›”kž‚}Ÿ»Ô¹~VqB1é›÷Àòf€×`ù=à]H=_ðW÷y Àã¾ò€ß ¶ê•`;€Õïóþ·”ë;‰þÀߨs[!¼0xÀGê÷€ nŠ~ðç®q½ØùÖîø7àQÈ»ÿÈsßùˆ®Aæ±kw5Ëb5€Unpkô{ dNsñ9dìxÀTýÏF÷¯Fr?MÂ8€3nSǾ„|ãß:×ÎCæ¢M(ëUÈx|€Ÿ{Îo‚ðì×êØÈûþ¥çúÓ6üêØ €÷5xÀ?$Ôi˜ƒŒ-߸–—3¾†í+pÀ½HæërƒË‡cˆAø¬|>Às^ðCô{2÷<¡®Yé|¸àN¿t®‡Œ=wªëV2B±ÒøÈ\ò¼úýäÍXð9€+yÈ )ã|3 ¬EpŠbýßN±Ä%Yý§i·8{ýáL!èeY3 +’ 5Ö–1ƒA%4r-¸E½õ“LF§`™¾Ðºö€øRù²&/—µÙã”­4޲¸÷Jó¡Žh³Î6‰¿ëè_ÇJæ_¢Q%µh£ELh°É\o¶_™¤Da,Ñz5'i×·¿<ÄúWÕÖÜ~2›r}7ºæûCµ79帑î¶riÏÑŽ…IkÑMîW)m£Î,ÎYX ´Å(üLj‹&ò"oø¿&7! y~Þ-¦¦Ø¿+Dšcü[Ͱ¹V™÷®ƒæ=¼ÔÑ7nä¹’:‹Ï;®C=]\¤(uù“aYã+^HÙÇ~A£ìqM%£Ìi˜ítš °–ý!ÿ¤ôË*”qÆCb¯²ºÝ/fèï'wyîmZ’\e—ó{EèøŠÖl¼rÇÙŒ- «&×ëx‘ÙcÒ.çž'=×èe¼om¡6°¼nÔ¦*~‡9úwEù†%°ƒý;&¼G1>¾G“L„H/º7mËÐÓì³&£cûØoÈ6ïÜôÄœ®`ë{‡vê9h>˜wnt>¸¸Qùp”7¦Â7j–Üè¢[Ç®xÒ?thñÓ U…ûÖ &!¯‡bŠþ0™s!sE°=’pÿ~Šâµ‹âÕð ³zŠýk¢³2'Wùlw ՛㙭‹f(©‹s߇aA¤´;_Ö×W+®“/#vÕ[`î ømZÏðE†{“ÕÌ6~c´[ït#~?ýþ˜¢¤ŒÓ®3{‡Í0ÕA-öGlœbºp1MYö±Zmösi‘M#c(2¼hbÔPm¥5z^e=ù&é—4zcú&Šy†Òn¦(í`:ºîöQ>~·(m.ë¹ËiWŽ‘`;âÈ#>ŒøM®ŒB.ß]¾BúǃãÎÑ\tY^ñ…~¦a6GÙcŒ+tKA}«ª÷nŠðÓ£úkiÃ+·Ð6&mxXÏxx=)†ª½—ãìWÄÕ©AsŒ2¸!æ—¸üö./Ó}û*“Òör0^êuìocú{ÔeŒqe‹¬Æè4Í~/¯AÚzòa·EÿcÀ­ÑâMJ[iÓn¸Ò–ÆøÈl‡¨±ÀüÊ£k|áØË-zB®RÕ¦D²øh-㉑Yo²Åû1%¡G1ÈOSúÓ&Ê¼Ì¨Ž® Û¡ôÁu”1±CÔ‹Ã\~#ÁvćF|ñ!¦—+Îqù8†BîŸÒ™”¨¯Œ2ºžù”ÿ¼{ëðÓ£ô‡«úùàæ0 M'Û+š°/‹|¡ø¦NÚ˜Q”¦)k$}»2ç>¤i#ãû†j\¥ô‘]¬VYYO~ÓÖt`½‚ëûŒøM:R¬É¹„Aÿ‰¤Þp²Gï]Þ=ý8ÙoñkÈ^Ǿ}WCö¾ Àfwç(ÿÈ>¯?d]¨ðd¯TDÏõík¼6ªÙ7Yïa|ò.—œðo ÏYˆîûÀç¨_¬‡ìÙœ´¿ô'}O?GöþÍcýQ7¸²×ò*çšë^ð/ÏWZ=½_D¼]¸øÂû“…|“?$\?•w;ä{šoqKÊ3ŽAö÷MjƒUbÒß6{΀ìþ9€O¸¿ iS÷؉ø>Õ€ì{~¤=à'¥k\=Ú½b¯Aöþ)ä[=àgvx ò­ïð«aTrˆ‡ðä!Ϲc°ýá:dlYi›Ñ?Ö2oìD|_÷å†IÈ~Ä!þŽ×`yrò®ßÕX)ÈØr'd/ä{`÷Ã6¸×ÞÂàÇ÷1ÈÜoä€{Ñ?FT…ó±ìsÿWÓs…=oÈwýùë2LŒø ñA0âƒ`Ä‹.€3þû°+Òt¸@¼7 ï0q¢„þM{÷x-úÿ ˆâ²¢°} i·A;£ÿµv"(} Q°ÿÙ) +ÀK°<úÀÿS ž¡hxÂÕ)×]ƒ¼Û÷ãÅM­‚†iÊ,|àÜxJMZEçqä3Z¢ ¬†_ùIÂ5H›zƒQü5Æ +ÂH®óuXcß5ˆ’w+€›®?à©èï¶ù•Õ¸ŒAúÒ*ˆ‚z ò=ƒ(;±ü•Š2Ø 1¦¯Òp2F?‡dƒÙrC2V<Œä±ö +¬¡ÐôŸÑ< k ýíÖèÿ¬1怷!Æ›¦ð{À~Ý‹|c¤‹ë°†ðOü¢t횇‘`+ñA0âƒ`ÄÁˆ‚u9õ·Ã®HÓá3ÌB”ܼŠOø"þ²àý“E_+Ëßà +[FhDûb$øÛ”2Ç!BÊC¡Åx.®@Œ ƒ8Æ!F‡GÑïÙ)ŠkwÅù}#  áýýÈ!ŠËcÕ‡ [¹Üi›K”qbLø¨Š + mÈØð$ÇDF¼1fܨÑ1“^<†pCÀ/_Äòöú§¡™7ï‡xcî€Ì9ƒÄH$Ƨ¥¸é¼ž†O´áäˆáÚ‡ wûb¨? à÷5Ö¯  ¶‚#>F|Œø0B.¤ f! +ïN¤{ŸËÂ+o¡aeâí¸Ïsî2DéÄspâ1ÇŒ7óˆ@r$ ØõPœ„(…Ãð6¬…#y¼'ßCxýAô·)¡å‚IˆànH»¸Ò7B•  à·°¡ÁÇÐÌï°Öèµ&àú“ÆH^*° #VA¾í£þ~˜•j(Æ!ãн°ËªL4Èeˆ!å$DYû+_QóaÖSoè6ˆ!yMÁ2ÏÃF«]€Œëg"Z)<6KõÖ@xu2V:2j„Fa„V B 3Éø.ˆeþvˆ “úëƒ < TN@úB‚7@÷{‘ìMÈ£<¿‹þ¥ÃÂì÷X«ˆÞñð›È‡³A¼éá×Ëã°Êëñ3ßà<–¯÷x +vÉŒ 96ËMÎ@ ÃŽ\¨ ‘H7AÖx”ŽFa„Fa„–5ò’Ђp•ŸË]ÇðÏiØIÚxá[?y¢´‡UnNb´>~„Fa„Fa„Fa„eˆª #Œ0Â#Œ0Â#Œ0Â#Œ0BƒñŸ‡]Fa„Fa„Fa„F¡~Œ #Œ0Â#Œ0Â#Œ0Â#Ü(Ø`bØ•Êì»;Â#Œ0Â#Œ0ÂÊÅ$¹ðHbaCç!¹®DÿŸð›aT° Æ [M®$¶=Ù‘ÇݽÆlëiòF®kÚ¶Éz꺚¤Äg! {ÍÎCǰ¼¾UÆ 9¾ÌîL&)ö*/®Ã¶Ù³°[¥~‰å½cÑrÅ4$9ûšè÷È·T¿šƒìþv²ËÕ ×F9Fa„F¡ÖA„Ï»ßôVÈ.`“Êž‡ÝþóK4sûÏ,´a•B£dAÛÅØ-vÏC’/G…1›¼pÝ+þ©æºäÅDºv«ÛÛrÜV©ú"¢¦µï È®.À¿uïYÈ÷{ÀSƒŸ'£ëþ±†:æÁvÈ»ÜkBñ-ìŽVÃØÊº +ŒA”H³ÓWžÉ4Ìî^oCÚìrÝ©i9` +ÀK†ß }²ûR»¬µ íÿ&Èœu-ªÏÏj|fã02Œ0hLøí°+qƒa "è4Q؃®¾ÇÊÙ¿|Øloð!€g0AæFQ†×Cïð+¾!¸ñƽ à4·ýo‚(›!ß¶¨ íâ{Èû +Q¸š47ô`½SI8 àœcOB”û,<„á+€(Ä@¼`w#]‰4^TßÎI>\ŒE/¡óH[[ýþÀçzÞá™®ÁòâLt¢{7Ãöcq÷6ÈØv ƒÙw2ÆßQAYŸC &Ê>ŒxÀã(>ö&á[¯ø)F†€ª±ÂWŸáÍŇã[mòl´Ì+Ñs>ð§5<«±”`dZ™<–› 7H´ “ñAù¬ŒAÈXývB³¾nunŒC,©AÜo!“f–Õl‡›a· ½¨.@BãAú·ÁWoYb2^h¡üm6 çßHÊð6H¿º»âr¯x "|{Ë\@ÆÇ!ÞµÛsg!ÊÓX~ÖÀ†[ÿýíä:D{ÍðH‡±Òpý€¤/\ƒŒ½›£sˆÎ›±îXôw£D=ƒ~üä[|ùÆç‘,‡LAÆñ5vbŒ?R×\ðäÛB9v1ÕçØpÿÇÐ1ióÏAxràzÍuÏ£ßv=zΨGÎY'ܷü¿—Yæ ‘IóÌYÈØômô¿16_‡Ýú{ D'I‹p9 ù†UQée³Õû¿´‘ð,ì2 4e}dnÓ8 k€þ1yðT+> éßwAúø—£ÄãXºV0ê6쵌j|Tÿ¾Î‡/CŒCßûÔ± Aþ5,ë¬F v¢4BÆ gif T×;p"€þà+šÞ‚€¿‡5\ƒL"·B&’Û Êì¶¿R auÀ„³¹J ßÿW5>ûFQ†1d¿†dÁû +D˜9 «7ë¦×Dt7’=w× ^‰1C¹o̾O>šª˜‹&!¼¼Àýˆ ôŸB´aŠ»…èx;:w Â[!c–ŽÏøßûæ!|MÂYXƒ@ë!†6#pãËûÑß*ž; ù®Àòñ2äýß@ýãù4dlzqlj¨^imx +¢x¼ô>؆Œ ·A¾÷Hß^éûøy‘Ê'àAˆ²R4ç:¬Aç<âËs>A3 oI˜‚|û<美Î}à×9Ë®†L~26):©nÌ@ø|dŒ21K€N@ÆÅ/ †|Wù? 1,ÿ‹sÿzÈÜw¯:vÒÜk‹`;DÇzbüû*ªï« ìå’uÑfcÏ_n4NòH +¯®’ìœn@]Ci†ä©„÷™k@ýV*m y)ï$¹DrÝ€ê2FrÉÃ$z\Uÿ¤ôvôw’ÒF>ŽÎáòjûƒ¤™Œkzæ¦W‹$»$_'¹ò-·‘œ%¹=ú=OÓ’ÆRÚÈ ”v4,þ¶¢:,yê·@òU’› +”;ArÉÏÞý +Ÿù®3$«:,Q¾áÔž=KÛßIùöOøý5éïÒvÎu˜ÏZ`¹ñâE~¿Îjúæ²¥: +mÓ/Ä$á«ÏXKQ.Þ¤L²Ï²¼uhX4Æþ& ¯S"C»88n^Ú–ò®4¢r´žéžÃ5×¥£žu‘2¹˜ ÆÔ±“£¼E ^¢´÷aóº)4Îä‰»ÈØšF7’2 Šr¤½–¤!s5>³M]¼W!“ÞÕ[=ŠÇmP|öQ‹¢¬š¶}œƒ7wÿgsOGÇ;žû^ˆÎÍ{Îéhßù¯˜ŒÅèü{cCÞ÷Ù®Ê +ñÂÕõ]_Uõ8M+—¡Æ K¥y†#C룺,²\ß ‰¦5ø8âŰ޹jÒm…´QAƒˆd§x‹] 3*©Jš¤èIòÃňõ*%jhý +x+:¾…âüí0=Š`‰Â×~¿Å©ßÇ%Þ÷Rô¾ è]—Xl]1TG¡¾ð™,„*¯Sô GG8kojçeV +NQä*&Ô*é½”:×¢|£Q›þ¹$Ô¥Hµh½cÆb¼ý—X\H™Ê„v0{*|Τ ƒb¸t#iqpÑW®7žïi +Íõ¬ÃlÖü±žv\´Òª•× 2ïxî3}Ò§(èoº#åü7yÆ; òöíuŒx†}gŒ$¤´ë2ýyœVùï‘ÜÍòm¸E1ú˜åKE,æû½ža8G³†ùM«¦7w\`}ËbÒÈõD“¢è›?eh“Ç–£¬¦ÍPœ³IÏé1Ìqû´s_‘¨¥™è^#7cèJ2–妪 ÔáeyÒ™f¦à,ry­ÕÏÁ'ƒK´kÚ|áÞ—88+iM39*ä"«8×R”…¹¼ï0ÚPÚ:jçX_h k±_¢|ã#ÑßÏè|ó±Zψ¿M¦$ïÐ"«Säò*ÃÆsª¬ŽS©$¥dÊ0(Ÿö:,±Žš¦´¿)c΃Ñï*«iö/ û˜ÕŽëkiçÕƒ—]é¹ÿ(«ÿîmfcιgKt¼ý‹ê¹ñ1ð­ò7á”é*…Sêœ6Œ·(ßI‡¶ç\[´Q†W9%ÊGõ>ó%Ê1^Ú*ÚÆ$eLõÉU_1ÿ’U15[ .iÆ]#¾A§jr•¾aE¬šatårô·èj en©CwjQÆ3_¤ó³™-Æo¨Ãltï,ãí+k¼ØÄ•±ŒÆKU4Aÿ:Pd%ÔÞœªè½ê¦6ÓCþ|X`òœ6Åbç†çvYŸãÚ ÷j£E‘¥³Ñ½&`>ú=Fi[I‘ã)zT“çÆÂTô#î¦XI0_Øq̺Œ$ÚŸ|k"f3Ê6m§Ð}Ê’ ìŸHZ”Æl¢YƽÁ]VÛxÍÚLí5 +½O{0\dµ—&(ƒ‚/²`¾Â÷m:åíe½ïI´žq\e\Q:À¸a¦¬ÐÒ¦L$ƒHââ*`MYèò\£Šœ IÊpÒõZ€6È:ÎõiÂ^Ê0(J¾Væ–hûË Ã‘¥ LPÚ¯¡,Åeœý‚Û¾’ï:Ƹáe9(:¹p•Šl[•;çœëDÇçSîѸD™ƒ u®ó ±:‚Ò5b뾞'wN›vŽ<šã¾A‘1¤ÒóÞor •Y Š|bŒ§Ø¯ØQ–Í#THû3aÆ—˜_ó)j.zlÖr*Èdj7X`³–õºI–—Ë7g6~R¼éƒûÛô'=5å=ö÷ +/–XýzµqJûÝMñ,麸 +ÎÅS?]?/kU5^›¼Ñ#yȆ.ªô<¥nBÝf+(;KÖTTùO»ßí¤Û^•Ê0W°H¿7âAŠB5G]erŒÒ/³…C Ã!‡SŒeN³˜÷F{]«Þ)¢nÒOy—Ž­ø·ño·N•9çÜ37Ù°»L7>»Ê¹ õÿ>§‡1lùÞKlB×ð먲 +r´–V¶ÈëÉŸ‹î+ fÖ'‡ÌIæÚ,LJ1è,0|,l1îdY ? êe0M ÝÎ;6%ÒÎGZ!mz>"_^¦º"A'(}ÑÕ¾¢ßøêÖì_n5Éø˜›µ\ÀGíèÞs´xd¼oî£È±íè·™'_î[q Ëó0/t{±¼È +J OÃ\J™Ã¢1ZnE¹0žÉ:»›"tzš~!Ïl‰¶ƒÒ M(\W]c¬^d5Yß;Éìæwèšu³öæ+æYb½Ja­£ &(í×·Ft‘¢ô¦|Ëí %›dxNŒ‹¬>fããAÚØ •ÿ—)­pŽPô]5o¨äÖè[”þ5ËjCò\k¿~¯v…ÏÉKIÛÿ® ìeØÐ û£‚ЬÙÌk¨J%_·²Þ5yŒÚî¸íF¤Qìtví¹ß³r—½ä‰þÑBûiÚõ ³ê¸;VºJ )ã]W‘gÕ†(=ÿ¾I—L¤ˆÏ kÚ¿ï›ãÁ¥ïk„ëªíÖI¦M.1ߨ±1ºïËõÙw(sQˆ—o¿zæbôM²?ÂÂäª!Ãó‚ÌÑb!z?ßüº…Ò6±ßà¾=·]S67 HËÆd²ÂØró’o@|äFשü¯eº\šä„rw{X¢5rºÆ~­ ç!UcÆh³œÐìBbJG)}¹_Oé¿E’6šB/ YTiŠš›57žM)wXd„‰ƒŒ[¾ò–³¶#Sí&ZGoc¾]Ù5r`z6ÿ<°Oد +G8œÄ,mŠ`Ð+Qw“xh“‘“=¿.αúðø-Q¹_QˬğIëNS<)K!ÆJ ”ö'Üê3Š¢n¢”ª|ïvÊ»¥)ÆuSR˜hÙpø<ʰog–2k6óªP†Á¸aój‰úçiS;h÷UnÓ;´Jbïu}ó¢Æh¿ïUÆÃ&æhQúõ­‚ÕSïê ÒK õ˜õã;iÌ:÷ͱ®·Ù ÿ^sÑ3w©cfÞwŸÓR廞&½Ü toѶ£ùÀ{†IS´ß'ÏÖ¢ƒå¡Ó¹4®²_¹š¡mo!K0ÜÝ\c,£òò:E޲ÙYë]£èÆÔ)‹\åz[…eWA®çœÌž#·Ò:ó Ufb®ŠŽS›:Ñß¶/›^à[/ï£ùèz³\äYú=«³Î}¾ n˜¸é‹®Ìaæf-ãlRõÖB¶Vò]™HG!„†EÏø"›ïý7dä¢ÏrÜ3KÛF² ²f‰Î,ËåCXKwvQÆ› Œçbr#̹,åE/Í1ß¹jG‰o‰å°©Å¸Q/ÏÒž1J[Ÿe¹H‡vTÆæs>èèŸ<íväÊG˜>¦ëD{—˜/R ki/™¾lrŠýKÌ]#W‘e—&ßšYF}öûÎEÏ|šfäÅugê³´IïÉzs& …B.Ê“h,/²:Ìþä[ƒð›ãÕ0ဋ´^Ïvt,ÏÀÕ¥]ßî†'û,Tf}c¯¢÷˜`r«¼F†)_âap˜ÃQüÍî ETæAÖ³á Gõ!$™b^2[àheØ—ä"ûרúÈ„ò®£LàÆh`³mÑóÞ (ËÅÌމʮÊb›²=¬d£=O]Ê*¯E”a㡪Bù7¤ó×–Q†Á¸As‘Í™/²h^Õ;OØ´Î?`­xh,R Ê{8%r=¥ï¦åšdÿ2€vF¹c´sVGŸ¤]Jg0ëÜ;멃aÖ‹ŽÏ;ÇÍXéŽCÆu„¶½ig‡«€tÔ¹PϨÈ—“×ÊA=<ðÑÚù·Ëä¾;A›äKcòͪêófi£•b«NÆýÆrš2ç%%š¬uÈEi‹S·6Þ¢(hî7ýŒùŒÀëÙŸÜÕÈ0!÷ïrî­;z,”ÚN½–RêÖ¢ÈPSìßæ0„—ã ["ÞÍ('M¾}‡ùÛ«‘ÛQ¾Ó“Œ÷õÙèüzʘ܋è0­,3­ÎÝIç?IyÌf<;d­xzÏédb§)“Òxô»XÆZ s›þNç†!µªz—´Žº)gYc!<ý"e²¬:¼=”¦h· >c¶±á*ë³Rî¡UÊÜm+õ$œæ­ué8­€:F+Œ¿Lé&ļËl!m‘Öbm’JUµN_‡»†€í «x×¢Êð^ÊwŸ£«ŠxbL”9Êw\Ïpoç¼Ã‡< ·tÛÍ›­{˜ä¶ÉPUÏÆÓì +±>\d}ù¦)ÊQÈ0Ý£óNdyªÌ|•$¯¥Ïgs:A Á˜s¯[7ÐÎídÞÔ¹#”þlŽù"zÑ9w‰A¯ó° ”EÉMBšùèP +_ŒáÚàe>9ç«b¼1⸎­¹èx'ãþ^t™C}áÿUâ36ÃàÙQu +u"½“ò^ › Ýpo!ð1–OPW¹ëêÓ–ZT×lg|ž xVÒ’!|7Úr‰2¿çUþÍÒ .í’éEƪlšþ<G£¿žxuYQÈEu BIkƒ5¹ŠFÌ<¯NêFõX`\`Yd¸•Mg0Nòœ/0úÜŽŽ÷*|7S­FÑì´k)0é›/Deoçp-q›X_BÌ2¸Èú¶ÌÑŠ¡¶–¿I;Y˜µûyêMáxV›¥´ÕsÑùµ”¶¦½e>:Îx7žÎ¢íÑ¥¤¥+æuù"Ê"Š*Ã[è Þc¸×ØD{h,1ÜKUTv=OMñÞ„Ò{ªî_\ßV×_U¼c8º¬6ù¥YV +³,HçÐÉj«FQüŠÉs‡q6Ì:ÇÛÎó]Å¿WUÙmö Åóêž4ƒ‹þ¬ŸŸ'ÄØÒMPðòù®»2®3}w!åÛ´òÄqö{–giÇ®S,¿dÌ,é:ÇC¢1|Ѻgᥠw(Jèë´‰ Ó”ÜÐću’îÿ!FߥÁ!ËŽ'Þm¢øiÙ  ÉÇÿæKô¸Æ(}`­wŠÖ8¶Ä°¥2nEBs»QÍÝœïþdôFF2 «Ÿ¥5°¦Œ/£wõ=Wã‡çl¬•B.2kɪÆ\Æs'kxæ³Ϭ“) Ð$¤0Ë)†[+Í·¬¥Õ}íèX¯â÷IK„SFèhEïú ¥lcsóí¬o+Ì2ø†õe¤×áÁ§h=UW_3VtýÛÊ«ÃjÇ)“Å"e‚2¡iŸ1Y!|•q ³‰ ³…ÉJÛ³.ÃK}æ©CÙ>RDÞÂ2]á2´-£Œƒ ÷¹”Wã‚Û‘À{ µ)cÔc·ëuÔ‚é|Ê{º´Èáæ()J&Z#ë]ç£ëÒ” +c>Êd™D/7*›åÛÈenÌxg¾³n_! +êaʘ“e(ÝÕËÉ:ÆÖAn„MˆÂbYbº:tyEH¢_wŒ¶ÑÍ50&CŒ,÷1­—\#$"i7"B’$Ž1>.ê¥!4Ãx™v7 Ì2¸,=wÃI.^+…^˜äí-Š%ÑH«znhxh•d) L§\Ït!Ùê¶0¬ÃOI;úÝ«øÜÐ'ß³Wmb3•ÿYß„Ób²uw?㉵Ê$UÚFôgãÒ&£1ázIÞ¾-ì*2‘ =VãåHöç+(;”ÆÙ/Ä…fO£"ÊpÈ2˜4£«^›†ñ$¯2 ÆçµùÀwÞÅìÄ\iõ:†E… +KzLÊ2ti£­öF]k<PÇ$òÍcû)cÎ!&Ãa:ô>-àý +C‡qÁÔ¥í)CÃ.Iú–/Sø³—Ö«½›6  Iȵ•ñd‡n&{š:›òž¾:÷¢ÿ'9x#e£5ìE¸“qO'ºn.á|[ñ-kn2F€<»øÈ(úÚˆ4MÛ¶ÒŒªÆx ¿ÉXd19k’þh¶"ÙÕ« 9U‡K÷„zœÓŒ ³e„Ì­®‘pØ»¸Ë#’Œµëiç2c048Ȱ軹töý/„R ½îÜ뎉Y4ïÜ?Oÿ’‘Ó”>i’§ga‰2åÿax<ðºP|à÷×ü¨âgÀMî©¡Ü,ܦž¿3úÿëü;€ëZžû&¼ïü~ÀªŒç]p¬`]Cñ$œ»·ægçÅ8€Wœ‚ŸÏY˜‚¼ëÍUVª¼à¿ »/Åݰýå‚:þ!€¿T¿/¸Râ9ÿé˜SÇÿÀf¯EwxÀ6Og¬vŽý4ªÛmQùeñRÂñû*(;÷BÆW*(w³úÿó€ë§ÜpÝΔs÷ÀŽix8àš/oƒ›3®Ÿp»sƼ àŽŒëÒÞy'€[žuÀ5pBý¾+ãzÍëoÕÿ¿B±þû€ î›@ÿ<ödL¹é}ÕÔû×°uNkC¿ð_!|ÿ^2f쀴å´9UóFó{#’¿å1à'ÞˆŽ=à©èÿOüàŸü7Ø>§¿ `Ûq‘9ݼïMù«óþAá Øönæ™[ïuÇBƒ»£¿—ü2£Œßø?ü8ð™Ix2&þ›:¶Ò¶.@ÚlÌXt"åƒ ÷û¨@ à¿xÒ¦ ž‡È9ƒ†–ó¿¼çzàu—k.ÃàwΪ߷'\7(lVÿ_ð©çš½>÷8d¿výÒ>~ÈxN 2n§á +€ÇüyÆuŸ8¿óêl¯A¾Û§¹ä}Èû¸¸2\@Ø|» +2o|   áãÈØZD·*B ÿ àÅ +Ÿ2ÈÕ¥¨‡œUà w;ÇŸþ>¿Ðø„FÈzýJÎeUŽÁ+I­n$) +Y‚è ±"T=ÜŸJ¿¼-È2Œv“…ï³/)-ˆëoí +©×7ÁÏ!ýã%/æÿQzŸ´ýg Ö„§ ·oü +2¾àÑ’õ€_ n3¸ bd܉ê€-Yfe8TÈISvÝï•„e ¯2ìÖ?dNúâBsÒúeh?9xšC 2gœßæý/ø2°Œ› F;__LÃKˆûç Ê×Äh—„“ˆ;ÏFC *?CÿØ+DØÕò*ˆ0·À,Ä@ ¿ùIõÿ½ñåsÈœ»v|ÐmÀ¼ë°cê‡êü8¬ñnˆtÀXcÓM±/fì4†‹ÿ€ð<·ÃÂ&Șöœs<ËØn¾CR?7†cfUø d¾ÒøÒ~nƒŒ³I¸Ò–´‘à¼çºë6”eÔÈÂ?B”"£ߌdwÐãðÉÄ«âŸ.ø.å¼ù.Y™€¸L´&ðž:0‰øØú5ü¢ :Ýç¥Ö TùD?Išs®CŒ¼?ð?ÊÒp¿o^]ðwѳï†È2Ï!Ûišk |{Âów^pÀAˆÓq/ÄPƒ|–îGQ_[,‹—ÌÔTö â‘?CÓg Vû!ÊQYü +2hßÊ'Ôñû íú d‚x>¡ WùbQ¾Çs®^Aÿøµ +ƒk#® Š¾^DñŒéBVˆ„Ï9y”a=F]@xëðáÔsŸ ì}Bž<]€Q”nÌEnOÂjäS,gŸë>ð×Ñÿo!}îp=Yy  IQÚ y"Ì„ŒwÀ Î@„Kƒ{!cÑŸø ˆ‘!D¾8 Ó vªûÞ‚¯oGÿk¸†×$ø„÷ŸBƨue +CÞõw×¹0ma'üŠõ‡¹*ÔhRþ;.¥Eµ®A¿Âï󈿆x„A|„¸cïa > +@ïBûó×fÍ‹¿¸æ<¤m†@»aF¸±¤¹\+Äfìy áÊÿ ü£³Ùìv†t#L~øüTDŸx bÔúa„Uá6È70Ѫo@œ4—ð d Èc€¿|Œ·Q.ä7Ës?ÂCÀòâlMå†àfÈÀ¥ÀO p3â!zÁ †°z 6 ì1ˆÀò"â“i]|’CÚB<2u¡àIˆç3˜Ü‚pK÷dŽk5NB¾Ùío¸&ªËWœB° +6¼´j< ©ëIH›½ i_ƒxtÉø¿÷¯#ÝëáÃwe}dà4}âß!¼· Bã}ÖzîwërÒ¿Ž¡š¥)¿€_(ÄÒ¢ ˆÏ ]Ù Eeø$ÂÚò)ç¾D˜2ê‘Σ k£àÙÀòiƒiï}ÉÆ)@¼±YÑto!Üç¥5÷ýÆÙòä=C;!žò,L@¢Ø ®Ã÷!î‰ò¡l[×¼ºéÇŸBÚ¨/2ÃDC^iå8ÄXéz-×Dµ|ä\¾õ„??…´¡§œ:‡ t4ª“kødÎlCÆ—Ùˆ6¡xTÓÄëeÊi#yøòÝPi÷KH{¸%úë–ÿ;È\•v?(˜wÊk°r£®![™€x;HºM׿Û†W¡ßU7Ö¨ÿÏÞóˆó,i~ Àß”ó<âã‘Æȸj˜Ò€a.u£ê|ýèçÝ0ýå2nš÷¼™?îðG‡dÅ_C×û¦è™yðd\hÊrä›`—#œ‡ôÍa,¹‰£D“¸e.…vSð¸É~Ò’$1;ÉRQäÍ(Y™Ä?¤ðã0ýÐY7³lf’Ž)ö';3Iuz5¼—NÄäbI-Ú O’)k·²¶«›¦Ý²*̦<¯(¥ì.`ͳ?QÚ\tΗpÍ$4[°äMÂ×¢$+:G»K+ªÓ³”Hu};ª‹›ð齨žO3_"š4šb"¾n ßÀ%³”ÁÞŠÊ}V•²=kR}\„lqêî¿ëâ"÷º‰cÓ®W×us¼3(‰èzžºžbøvA/ПÌ5tëCC³Îýi÷êwžõœ7‰–(cû$÷è;Po·½˜D¸»™Óžòºê|¯Zêz7qàã‰øt›3I õül’Nº™ÝMRÀ¶:6缋Þ)b’vGÿLFì« ç“è"mRµ‰èSÿVôŽ™žhîó%šÊLJR|•2¾¼@;g˜dÂóÑo³³L'àyS´‰<(ãØºœ|ª›L–ûÅŒzõØ/£¹ѳ²õ¯§ÝÂMãŒgïP׆î RõÔ³çrÞ;Ii7‡)cA‡a»°¸´5º·•õ,óë óê=ºæaR=Òxª·Qí2¼Ï´hÇÝ%ʘ:?ÏPÚâAfgÔï8ïQ$‰édôþϲ™Xd1Ù¸2*³.âÜYø;ˆ¥íب´õ™o ¾òw!IP m<±.ú¼ÓÚ+ó-ÒÃXo‡x5ïƒ}'ߺŽtÄ:œ7Ô. IÉšòz*ªÀ.Ød&i¸‰œÈJ83ŽüÖð³è•4ê@¬’ï#=YX<…òëÀ5Æ!}tlŸ}ý _ŽA"UþÃSÆ÷ûâ}zvjˆ•ùH²¢§!ž{!a³ÏGe¬¬íšB¼Ý»/× mâKT—Çä7wy^ói-ÈXvÄ2+üëÞM…óÑß3ˆ‡èðÿ ¨nM¯žBÃò‰Jº~ÏíeH}³<OÀFȸø2Æ„æ3q£ Zkky£Ù~yïû`Çè¯HÈóYR÷SÈûÝ›´È÷ÝÓpÖù½É<×óÏÓúä›­‚Œ¥ù>¾¼.VCúxÒzO_¨·!žÿe,n8<`ûzh›ýÒ·nG´Äo ßã ot›ûòôÜb²¿ŸÛ'ÿ™gLÿø"åÞ6düðõkÍ÷?îýÂ³Û m¦j9±.üâm.‹F˜.³àÊ¿IQ':¡hÈØ2iGÏCÆO!ËkÜœix v©äÍþ4åZ·ÿÑU IÄšSW <<×îD~½õfÈxõ0dîüy• ­ ãŒï_íó”dy”Ê`Ãñþ2VqcywqéÿgïýCäºò{ÁïnÚK{éYÚKÚK ÚÐ^4ö"ƒÚP^4‹&ô<4AóÐ,ò£'ÈÍCš‡&hš¥4ÍâY4Arèy”ƒf‘ƒüƒ&ÈA~”ƒ&hMh9´C;”B;´‡ÖÐ +­¡Êá³|Ï÷ï=÷Ü{ÏýUU²ë _ººêÜ{Ï9÷œïïï÷ z,Ñ ÂŽ‹ÊòjžRmµ7µ,N!Ù;Ô©è¡jểð³7à?Ͻ(4s<; ‚×ë.ØB¼ŽŠxVæÁë¤öƯ#ÿñEGÀkW¼FwÀ–çeXÏQÓÌC˹¶cÚL™{T5GâUÓ°ÏŒí<ØÓå;s9vÁÞ˜ðZܨgít…ci«û9R°eúÙEqŠDttMN#ýg69l¦´u= UÍå ÑsÚ]Ví’ÖÏÕFŽ ¥SiÇñ-9mw?î) \Þ((ü§—ò\õƒnä’Dö¸Q0Áw]}'z:ÚkAÝ[÷÷„úÞ=“[æÖÇ—´g¶“cŒ{ìÕE3¦¶ù~òÃÅ€çI$Cö$ø¯ÀFaä=JÍÑpLW£\TÀ)ðü¿ +a&GémÁÌÚ¬œ·l/©D.ºtsv­¥ÉÝ„9Öv|YGµ;˜Ò®jÔѾn4ÍÄm5ŽCìGQh%´Óûµt™Ì¥Ó·‘ß#¿èÜ#+š¥í´Ï{ F÷˜Æ²p~~ÔG7…èm.H4Å@£—½8'` UÛùí¤3!ˆ;à UdR¶®øÕ…ª¶ŠCv£È5Ç=ífî·Íç4¡KÿIX&r§‚±4~næ H;¥}°R’gs%¥i$+Ø…à$ÂS² í¼õ¼xQå5éÙP”s–¯Í-3î¡~ï%<Ó‡¯ªë| +UÇü¦ÏlŸ4߉qÆüï¦%R÷NZkÇÔ÷"„'ñä³êº¼ç´k¶6 ´ºÏk–¼¯6âo#=. ]Y`Þ“vOŸ@ß@\ù‘´ +—wß4Ï]¿7 ÅßAŸyÊ·&çÌ}Z ׆îÏWSžTµóí·º°«žÛàs«ÆŽGgDú¤´#²^¾vn:r‘4‘«Î=²dʶÓ>¯ÓÈŪœm¾Ôk§‘Ú˜·Q­3/ó, ÿLòöEÃFÏ‘ •z›lXäoW’ü?ˆè"óú1å;rì}⳿.Ñï*@ŠZCA‡|f½G½®’Âÿ”l…õGˆ÷è +§¾ð……œûàò:Õý÷—–YÕ¥@¼6tåèߘ~§ ID<¿":k>WatIƒâýpÇ<3 ´{7£­~ÏiùŠß&«lÈQJ¡ë§À|™ŠŸFóòÓÝÿ<ûZ+í¾ýû÷äçq¢øIí¢¸R¾'¡?².IÑ|qßHèësêsèyä÷ɾo]Ã!¯@ +e‡þ5Y!=©ryøbšú’}_Ïó³"êÏÑψèGÈòáwÍßgˆ÷Á‰×ïgdëX#–£î¯ï¯Óý7Ì߯Ñ¿¢p¹@h|R]¥¿¢d'V¨Â¾Çümϵ¦cw=íš·eÝ:Ê xF ,w§ÕÄúŠÒ†÷Èï\ý[bÙå›Ä{à壹/S4‡?¤TOÎ ?¥jް–«÷ÿ*¦=A¬×ÕQ» y ³ÄG»4³Àß‘µ–> ~Ù¿GáG¶ü ñäþ1aþ +ñDŸ˜q?C|ÅQ5Ê Qù3Ä…©}J<戋hüˆØú½H,¸—þÖ´¹Kì)t½Å{rôA„ˆ<×, ñ\LDç‰ivUÆ€)":DD×ÌýH¼?¾GéÞ÷ û4Ðsò%Jæåÿ@,ì 3ŸENú„x¼`þƒX›!±úmóÝŸÓýß5“ÖmhS^Á?ô +}xšxLz—‰¸(Z¾xšFèŒô0KQiÕ2Sp÷”ÏÈ©áe²Å‡ÿwâHÙ$ø+²ÑÇ¡ëe‚âòñ{×íqþ/ë¼ù Usdò£ÄŒP¾ÿŸ©ØzxŒ˜ÖjȪ¬¸@Là¾AQ ¾T²}‹xRóTÖßO,Ô|ÙÜã•”CLlóÜX"ÿ d™ÅgÄ„ô#boÂÄBŇ”¾)îš¿ý âMwXq~‰x>ÿÌsí+ÄŠæoˆ7á3Äû1ʧ|±þÏ ÀYë¥*è à% •¢ü—‰ú­æù>ñ¼øŒL“æ·g‰ßÓ‡Äs”æøb£Ö±’û-ʉð qUå²ð1ÁÝCõTþ}bÚóñ{üK⾿Iöd‹$càÌuß"f$OS”ɹa’OÏý,g"‹ÄÊÈõÝgÄŒàu*ý‘þžø\ëÿ›8Uè;d+¶±0÷œù.ô yŸ2\†& ò(îGõybƒ‹\/ÊÄóÿâõö1-øˆ˜Îß#¦C.½}ÜÜëKæó²§D$ï!ö +þQÂïZYÊ4Üþx–¢i`ENõùˆÒ½'ÚH›Çãökb:ð¥”~ý 1ù™ç·×œÏ¾(´'Éñ2EÇô%Ÿ€  EHYOnšÂ?¯ÙÿCÊg„v×»æogw¿EÖàò2ñþû9ñ^–}ñýbúúžùþ9sݲ)_? ž¿wˆSfª€÷Íó5ÏI«îÂ{í$Zôó÷[=)áÙH‡¢Ð"æE¿Ï7(ý$Áú(ñ\×!Ë× z½Þ§lþ;G<÷O¯«ŸPu2„k ÍÚ¿&~_¡^yåê—(¡ò)eG35(Þï~ŸŠE·à‚t›ˆárq\X© .µ +{¼®ì={þòa3—yûxQ:Ø7ýv+ˆ‡à”yGRt¼wŠœqKàŠÔnq›ä/ÂÙpîQ¶è£Œõ(˜®ÝF¼ˆë:˜oœFú»Îƒëêþ!E1o«öRÚµ1\H*0ÚtÚµÚiÔô<¤°œ. +'œ{¤ŒõÁ&²O«Ñë)ïú¹¥®Mâ[nÕꪡôbkº(^;¥]JA®ç·nŽ~oÎ_M¸G¸Uß[æ{·¸b8kî½­¾sO’•¤°4¥m~Û{BNU'* jZž—†gÉ«»°ïì–úÎGÚ(Ö}Ú…~nÖ B]Õ>ëT+yO‰Éƒyî­ Ü¥ÉIzUåªÜkÜïÜ{§Æ9 +A}ª VPÔƒ»N‹bÉryØÓð4ݧxżp 5àûR*k]°Ò{LD.zîuÅŒTÄOª@9hlÀVwÝ1c8¶ÁÕu_ 5Zà,=ð\¥Ï"%õ½„ìá[˜R:­,ËÐ*ø—<Ï©“6q摆݌1ï ùT‰½È>þ-o?"Ì×)8^'PÎДg¯]C|=žï­¤£ä΂G9:î:lE~Ýîø((+ííœýÓGhLÈÓöjÎÃV†Þ¯1ÍΖ˜Ç#ˆ*v}ä;’’® gá~3çy@¼ ^çEݬs¿VÀ5ºÊzšÒÑ@¹*ö¡°ižsѵ—Ô7]í\ ]YcÖt=ë(&Á¼Š]Û¹¾›ãÚ-dŸØ³Wµ/¢,ê +ÍiÏj‚×Q˜e@ÔF“"°`ùb ñ#õBÍMRL^¯7—N"ß»ÖF„iX%¶®ãà„ÞJ¿§¥S2Ö–ÓÏMXGöOÈшyQŸÜ°|Jè,Ò•16p¾oª{™ÿ&Òe”H–)4ÛD;Öª6˜‡m"LNs¿LR䛈òX’Ž:͋Ӟ{·j˜£ôQCœ½mçš*N. ¥}y`ìØiÁ:ÁàñWuú@•§|ý7t¿˜@qå?.#¾¹å…ôQç©,¶MÖæå› $‡ÀBÛ°E°ëà%0A9 fÈ¡ÄE3G‡ÁŠ̗ëel˜1ì"‘!GÚ¤yÀžÅ›»)}¨}N *fÐË{šµ6$r¤üä!¼“󞣀“à½ÖRß5À„³ ¿0°Äľ¦-ëÎ}å¦X Ê£ëc‘€r†®iXáìœsŸ}°FÐ2‘P³ˆZÛ}z†*ÃI8j˜Ý:ŠyCŠ(ÃîñYY‘§nØX‡5ò¤ÁX¼ +Þ×G§]óÎ5¾µ§ÊËžß}xÚéoèüGø9ïmçÚnàu=„Ñp}j8×W¥ÿ¸Q»¡ý3à}»Œj<ÎÄ!ä8v÷˜ôPCuN£Ü‘ò²G£zÑýB UC1Ûç´{õ†ö¤á˜`ö¶P‡…—à·”€e7aÚj:ÜtÚ¸a’¡B°ûžóÌñ”y7)ëšð­´åt!ð\%õuP¹· \?xè­{v·×Þ¯éÓð+hú¾=ç¾i΄9°LéÅ65.ø<…u¼1ê^ò|§å‡–3oBû%Ô;+‚² º)7nÄlî+q‡a£è$ÚÎ…u@Rä]¶ÕõMõý¢!òÛðËŸÚq’æñ€Ÿþ^D9½aQº"pÉó?èÚö­‹ÃˆÊ5´ÔoU¾ÜùI2L¸¨e×ð*cèê<žÛ€k\¾Tïý.’Ö6 +Fk ¡þÇ ‡ªzHgî®Ò´ ^€ÇÀ̺¥p?Ѝ<?ˆ5¹–|”@œIè[A) ]áICZ7 9 Úú••KÔ)pÏQÁ°ò¤×ÖQ$+Åk° +‰„NjK÷%s?‚?Í tž»ˆ¯÷ 0s\1s~É‚sÃŒalˆÐ ÃþųÖNé—Du`é£ËØ›ˆ*ŽyÂùó*ÃÓHVî®™1éþ5`=ƒâí˜ >¾ðÕ-„)x-çº<,íÑy²!ÏÌJ“ê×á 0Ýp…©90Ï9Ë›f.Öœ9i:×êgçØè©kó"¥ßâ-òAÇißMh·žÿ<ü¼»¾wQ,*G§$ÕW&j:q­ÀõB·ÀïúüJ×§W–÷ß 'w£‰ŽÁÆûð+p:íã*Xæiæè¿}s­ë‹^ë#9=;Ë`; Þ÷ËCx«6 ´J·‹YP£ +®S·4êÜ×*!Ë;‘–“[`æxÕy£ÛæÞE„¢²¸,Ÿo‚5ĽjÛà$–Ü$¯[V¨ÒÆ•À¹Ò‚ºÀ5”'LUaR„BU‘#Ý„û#cÒÒ\(bÕLëP.w{Ø(aònne~î5ð^¸k¸&7^÷GÀL§ðµ+u2¿B8ä‘ˈ¯Á¦ùí&â4¶£ÚM˜ï| +IZQÒâ{Z S}ÏïI˜GžAE0$½µ™Ðï-Øt_øyØ’ùÆ-änJ“¶­°‚>µ¬*ƽ¦n¢x!c>ïQ#oæ­k3 +PU1Äÿ†úŸvMa°y«û ÉÊÛæ^gKÞ' çÁí4x³®"<·2´×`Ó<ã$ò)ÈRív£Q›Ac7aÜEr×|˜–ÇŸ¥L…äÅ଀ªC¥€tîzËŒÍÍg¿ë—6-uñLuÏ˧•I×1ë•w ¼·zæû5DmÓ| ¼ÿ´WW “æ;·¯Ú·öÔ´À˜XË7¸¤æ@hžteø¢°ƒðâQmsMÇù~þªi’ZNÛ"uI\ON:2ØVP¬Òpvým#.˜ŠAwQ:ÐC~I×èc0?«ÂÕ÷2ЧVfë0Ë æ?Ejè‡")YkÆ…*£(„¦Ý®in%º/-ÕÁEM«Pt²°d§Ø:²S5fÀÆ‚¬: 2Ç’R„­—$#¥†ø½ø’š!ÆØEdãÞ„5>f¥·®"{mødIЇN³êÉ„ò³IØâåIâ Ú æËó*¢F'1IT¥§køÍ»æ}òm#oºõ6h¢ÂyÐÿ´kêpˆð™J™ÊäIˆ‡nå“k‚ÉSà uÙ nLX. ^<ˆÂ.Öô¢Åú–0zÂ!¹’g¨õ: Ó¬ƒYJNs\G~K~H €Q-h•»ˆ ”7Ú¦Ý9X%P”Äl«<õ<&9v·0ýÓˆŸ” pG}ßïû]Ó¿&xýúÂxî«xƒ®›gÎ"ž&Øtß:ìŽß··’”aÐC¾‚ƒšÙ»sÜržŸÐ@¼æAzåæ6÷P^)^Óð+HP¥æLvý÷5Šëüd—¾º4Ï-S|r¨±]”{G:Ô4ÏÚêõR4ºQB¾7KΓ` ÉЭhÜmuϺœòÞóì‰0«²yÎ"Û™° –+oÀ›Îc|”è‰z ÉÑÖrH6âgq¢¿2ínùÎ>Äé[ˆìÚ@rY(ônP¼à\+5_Î"j"ÄîõKÎõ}3Î&xn.ÃÎO¨ÜW¿Àeœd:5i¼þtºlž:K.&ÉÍË%ú›…¾H›Q‡&*œƒALFȦ*³q]p=ˆyPõèƒ7Õ!°"Ñ ðó`f¸ ž³s°G‘­–KËéORÈ]ô`7¡0®ª<㣂’ç‚(Yeᅵ2¿wNä&‘þÞvP̸tÖw3FM-‚{ßÃ’¯…áã`áç$˜Æˆð"ÞŒY°°—Ç;å†VOx~» fàb½ïª6’[ÖGtŠA)©8Ý<8DÏ®¿^3{aƒmD+H´2-s&š·šG–ÂIEŒXÅ× M”ñÜFºÁÍ– ôCð€s¯ª=àwÖÓåðﰇ¸@ç[K_ÜyÓ4ê{b¼u¾¬“µ‘w”"ܦT¿Ê¶m†_Gùº=iÝ +ƭӣʬë,Ú’ÇQ$ƲAGØÍ#<¢°´ÌsÄpR„N‡i»ÆjB¼Š~’? æ£nýלdz,µyn Ì»¾6´Føþpë`øR¨¦Æ&¨iÏüÑ :Â.‹w»¼þ¦ç;M7*¶Õ˜%BeQƒe³À}“ÒÏwPCå{…®áa€Jëßé\¨*Èò¾-$_ZÊ0ª Éßo”ËÈÏâ/·HµJíÍé˜ï†â¹ÌTdü=°…ô2X°/³˜“ +õµ+èwš°d{ÌfàO#XE±Ó%ZÈ^“;nqÆ*qQŽf\:Âc¼¿ƒêõýUðÚË“ÿNˆ2¢Mç7ñŒŸDÉ+ ’ŽÁÓH§U»°…¯Àæ‡k#—(rgœçhÈy2(eX,ðkf¾'Áû· Á¤C$]eØý½,úxàÔ]Óƒß ëÞoH¨n(êw<ª5D&=®YÁ=¥>0\åÎEí=­Š¦kÏå&üBwHýáGëˆòǬ”¶øyµ.v9åŸ`å¢n`{ñF*( gÀ +W2ó~Øz7‘¾5œs.ò¦±ÄêiŠW¼ÆÜu³’³¯eQø®† ¤,úˆè}Ñ3}Xz›á²æšÎ5-ç÷4Gæ6ò§?Fôœ;ŽW‘oÿ¶Sú”OñʃyŠ:*çÏI þª ‹È²¬/WðŒ$hf<{Шs§€xìi° $$/oQ̪jŒÎ žë¾käjƒ÷ÄQØüÿëæÿuóžíuæU ¶MðºÚF2£k™ëV+œ>’”]1ZÏ•!S$¬vPʰ‚gUHÛ`awÃô¿…¸ÐUG»iÄ£áVQ_p~ÀÄùpÕô|ŸzFU‘U£VŠ« Õ‚laçyPÓþ<¡ÅY¸„ì +èÍŒ{ÌÃ@àõ²;Ͻ‚ÁÍ¿’C>=Ó¾ªÓªÀ†éÏy0½Ô]0_ì Ù‰± ++;I}™<Ïwâ>X6=‰(ªQBæPÜ +â½y±¨¡ì<¬çæ"xï\3!) +x,Ôñ&I­—ùŠ¢º†xøÜAØB~EŠ<¦­q),èfaw è¼À2‰A(Ã:àŒzÎ6¬'ÉÇ‹òЊ¼è˽ÝB=‘6=D [ˆ ƒ¾÷_jCê-ŒÖÉ/ºXáªõë5U¤6K(!Ù¾”À²86 ¶ÁB{QOn]u ºæþ[`Åg¼–Û̱z›ª/YmgÕ»¥=‚:jÆQtúÈŸ¦£ävÀï0+Úv¶x¶|§éüñŒù݇¸“©âé£!k¤ã™·,/÷$¢ÅšÂ¾‹xÝg­£93.mLÈÚ#:5Çç9ד` ¬KÔeˆk‚·!҉¶£k¨Å™Õ`å¼»iaÝ!–©¢ÐKyî0q¬×¡Vê7`iÀž+Þ6(–Nmý¡8‰0,›ß«ôDêÜM˜÷ª@g^M¸P^sCÂÓà*Šܰª<ÐGù‚X£ŠS`†!Ь0vÌ(×a½À¼]â™ZrëI4`½}°’ÖUû¨§¢¸Îã]3ô°Ìô¢‚E Q(k „2,R«ˆ +,×à÷8å*‚“ðÓ—¨ÖÕCÔàB‘"Xyp +Q>£QP´‰¨@¶\ñýWj¼wÑõ&Pïö¡®R—AMŒYY¡AÏqV[‘Qõ.ªÄÒE¢‰ôžñÉfÞ:H§!Â3C+Sð§Dî‚ óUÈ@ûL¿}JêÅÀ~ΪkÒŠçN›gH˜']ä¶ñLmL‘tH÷„:ëvM¿ZcÍÂI0] )€:Öºq?ª­µQTQ Æ‹!B‰úHWˆò,м0 +ùZI(»tõË]=ÏU~;ëͯ¿lú$¢'ĵj†Þ@¾civÁüIØ +'MŒÜpi¸€ät•¼¹m>Ìã•ß BŸ)Å}ÊÀ s¥†mD‹Ÿl‚×Ñ*˜Á0Ÿ‚×Zå¼5nñ<_tÅqÄ÷ÁMd¯ÙIÓ_mà;‚0áeqOüxýèõæ2ûTã%„2,ÅÎ":¿g`#š¶1øbP'á +¯›¾”¥1=$nb0aùi"PE¡½28ƒ¨Q¢ŽZ6ÇÔýQq: ušà û#ó\—‚.÷Ïcد² öâÍíŒ@Ÿóà2²A׋ɃZˆQú/!ª<%9¨ZªMÞÂfáçƒÛà•sÆLƒåñ H–È£eÆ$Þ~ÔyÆŠé·È.º†BVÍ—)D ¥kˆóü9ä?¢|LwOš¾¥E?L€yˆ¤1w‘?üFÃð¼ˆÑ1\EsÒ¨h…Ä´Šóï[¨',¨Jb#¡û—Á梛̗ƒ›E¸¥jm]yáZhJ‚›È>[5«ºýÂßcÇs}LTˆîÍfôÓëÈö/ |á·îÃç›°Õrå]Ÿ •WÀ°ë² +åЭʻœÐNŠ„¦…@6ÀkáÒâ:Ø â ö„·pX¨ò#…ÉÚˆžX#ºP~ÑèÀªkjhœ€U"v8ÇI¨S_š|®>ÖMrM˜wqvý5ÌçEóy V©Ÿ¯‰rþ«iÒ¨8fzs,rN•…~ë²u}TcXÊŠZܯe·Ü¯3­´—r™5cÎëÙNƒØØ\v­êh¹]ÄéèaÓ&KyΓ¦q鶇¸Œè;UfØp£éÈšAýéÎIpqBu +tÞÍu±lqA¬âáPþ Ñ0cц›d(i'ÜWäº<&‚¢p ¬£xxßA¤[rC=º¯Â†‚×1梑0uÁ •‚aãA0M™3fY/WaCÞ«•r€³Ð"dÚó%Ñ2˜!kf7 «8icAAí âLý&êeªu*ÃgœûŸ‚5ö0<â$X© ) +}ðšq…E™¯A­¸2«ÞÂ<²çbÙ…Œ|{®n:§û=lƒjÏô£7àçjï¡xLwM?$ÕêUð»éÁ*-æsL»:ê÷ð:’=¾6ä¹õÍs–“@Úº\¹Ùûo Õº\¯ íÀ¹ +^K®'w qCx•).°¡üy S÷ÁswÉùøE°¸—qž5 –»ªÝØpV„¿¹)Û}ðþÔú@õè`E`£öŸ†'QMäDl£ž:R^ iä'íŒ{VZ± f2ËýEä¢(ë>  ä;&¥Jl#n¡ôåfÕ‰by=òsŸfQ^GXhP£‚~d¡ëµ2ÚÉœŒJä‚‹û‘^f ¯¢¾ðê®yÎâò×âÆÄ-Ô¯àLš¹9 +^ËmX:$Ÿ—Á‘ºÃÎO å*©¿ºÝìzË[ÁÅSˆó"1*´ÁÞåa‡·o`0zJU8 –çê¬ p–gBžÇúqÙÂg/Çý4ôÁ†0¥a/Š2¨Ï_vA |IÅoÀ\­ü×V1ÒÁITeÐH'0üÊ ºŸ¾J´ƒ„Q.pY'¾ +ë ½fðÀ´¤N¢9 *Nõ›“† f|ô£=„þ–U†/ÂzaZæ×BÛÓ¸eóÿ(Ãt!$]èQð X(Ý躙„õ”êŠã’z´Áeq…ü&üVG&HïCœo')1eO®ÅeõÌ: + †¢ÿ_Âó…¯í‚× ýòÕ7i"9J¡eþ^G”§W™’W%´¿•ÑN`Øýœ…­’ZvõG/È;Ö4ªÿž¾„Ñ<ž{ïÍ•ûf>$*£ê +…À.òóë¢ µÖu0 æíiúJ§®4·T m¸„°ÒC˜b^tò†u>d]˜V A”{·¸‡†Û°‘ÀÃN“„M$[×v‘}Öì °újX¤A AÜ^RTo +¬  *<ó üVóØã|ê|þ ØàTc £Sd‹¬ Ÿ5OƒE$QDhZòŒW¾[±Vs`¯©6fuÀÂÁ6†Cÿfà]3B¢T|8 ^¾pÝ] –ÏÏ:Ï¿›ã>¨9î8}hpüººàð˜Þ6¿ézØÀDô»9¯y CDßò|ÿe"ú["jчDôTÆ}Þ%¢oÑ?Ñ1"zË|~˜à4ý0á·ŸÑ¿`_²àý„ˆÀ³>"~·3€g2ôˆè+Dt—ˆ~LD?#¢¿àó'ˆè»Dô=òÓÁ{Dô½GD¿ Þ¿Ea’ˆž!ïW‰è¹„v÷ˆè"zˆþ¥ÄóF„6¾@<§¾NDoÑkDô{ƒìÔá}˜Wþœˆþx}˜ ~ß%?ú¸oÑ'Dô±§Í“Dôñz~†˜·ùàmâ½õw¥zœnѳÎwˆè—Dô>1ýý˜ˆîï·9ïÿ(ñøŸ$¢=Dô4Åçâ"úíœ÷¯ +¦‰å¬¯©ï¿×G‰èyóÝ“ÄòžüÿM"ú>1]Öã¹ODß!¢?©«Ã¡KLS>!¢OSÚí!ÿÿX—¼p‹’é¾ ËHoÑ?ÔÕ!,ï¼GÌ›þrPyHàñ¼<ãùíSó}•4p‚XŽxž˜þ|JL¯FDïiûUbð<1* +ËAo˜¿Ÿ7ùÄ“Ä:ÁóÿãIJâgÄ<äâ½:s‘Ç@D4G¬ä˽GÌ$ߢøBJƒbfñh`û{ÄÂÇæЦÁ!â…±‡üÆ õ÷ÍçoÞ÷ž¹ï“fŒ%h \>ñ>ñ¥1MòoÑ#5ÜÿSâwÿ#"úM ÷Øà1­¹G¬ Ë 8I,Ø~›xŸ%Áb&ø1½ûÄ|÷11C ² âqbæü1ÓÍb¼A~JDÿ\` œ"^û/ÑKdùÎOˆ÷ÆËÄÊÇŸ¥wõCØÐñ#b!û†Ø—†éËKÄbUð)±2ùcžsžXÎ2²× o[†Më—ˆùšk …O‰e—ѯ*êS•°LLCBxöOˆèßÕÛD˜&– _¤¸Áù±RõñÚ´ÑLÃ1?ÞCÌãÞ%ÞÓe à_ØOìØù +}‰X)ÿ!–Ádš˜ï>E,ë"VôFÍS¾ØÀöb )ú“ˆßéûÄQoÓh¼Ó4˜¡0^=Hoz4ˆ×ã—ˆ Èwiôçw cÈÃ0 DDWˆ‰4x…†ëù¨ö+·{ÔwŸ+~_¥¨ðmbåçyJ‡wˆ &³P,¡¿+zƒ ó.SÄïíëÄJÊ9®½Kløøñ;ü¼zuËÀñ>¸K£—4E¼ï¾Fùß}|Hv]¼G_¼u±H>"ö’ýœ†oÈÃÆ0†1|Á`Ø€±åû»÷"|b¾ÿݩñä)â0I§˜0ß=N¬üŠX(yØêÂGÄžÿaä‰V “ÄŠÿéáVxfÈ +:%ð)ñ¿K,Ž-úap˜XùÕh&±×öâ5 ¹¿_¢¸2+©w Š¢ôK¯ "ÞG/+cÈDf#çÆ0†1Œa cÃP`ØYbÏÙÄp |˜•¿:ažlq˜ûÄ‚aæ€a cÃÆ0†1Œa cÃFFÅ0†1Œa cÃÆ0†1Œa cÃj„º‹Va cÃÆ0†1Œa cÃÆð0Â^â”Îg)Zóæqâ‚¢r¬¨œ† ÇÈþœF4š}0†1Œa cÃÆ0†1Œa ÃÄuÏ%.(úñé7O×ÀùOÃëZ0Ì×.Ó5î+Èw‰Ó–†b° ÄÉ¿AéG>§ÁâºU?%~§#s<âØ0†1Œa cÃÆ0†ªàñѸ÷ˆ=dw‰/½G£sœe]0K¬èŒ ¸V Äëé+ÄŠØ=bëëDôgCìW•p€ˆ¾Gìaþ±àÄ…Ò? ¢ÿex]K„y²'=Cù”ä»Ä}ß182Š1-Ñ÷ÉÖZ« +¯ÙÓ²Æ0†1Œa cC0Aþãò>!‹¤7E‡—éóMbe屄ß?#>ÊøÿXê9ò÷}Š`ÞK¬Ô< {ú˯â0I|ºÕ·SÚ¼Kì!Ø„=K¼?Þ">úõ}â5ö8q±ïÿxÝ}‰ˆþaH}$b×KÄsþTE÷|@Do>Ì‚æûˆ•ó¤ãÖž> >­é>±1êÙžö|Ž¢G¹kø”x]ÿ€†˜06ŒaØÐ"¶ì~‹¾XLòs—O_Ä1× r,èëDôWÝs–˜1½D£e‘$L’=Ïýc7˜Mb!õ+Ä{;K ¼KìÕz‡XÈ­ƒæÏù,1Mù½I|²Ðø]Ö WˆÃe‰X™ùˆxɑƇÿ~™Ê¿‹yb>ò4ÙãVADÿ¾ä}CàªyÖ7ˆ,ƒÆebåàqâ5þ4qX÷KdþŸØ³ÄÊ}’¥áCb¥íóuqX±|8 à{Äžö·ˆåå¿BŸöÑ+d÷wð±!à»4X} A<¶ï‘ÿHú7‰ç>¯œ5EüÞ¾EÌ#]øÀüö×9ï[ Ú0ELøC‹Þ7øyÂö3È=Äã'Ì÷OPT1’°§·èᘽÄÄêuò/ð“ÄÖ¶ïѦÜçñ&y™F l¦|®ó‰à‹8æAA›˜i½BDPÁý‰•²Ç‰…ŽÿXÁ=&8JìiÒÖÿÄ‚ü÷i,¸ ÿ~Öü}žÂ„ó$ø”x?ÿˆª ¿Nl”pAä‰ÏˆéÉ»dóR–œÔQáç?!â÷oÿØPô2±`OÄ<á=ó9K¾k¯·§Í_ùì‹2xƒˆ~·`ÿ“à1ïú„¸ÿ÷‰iä¿"¢9bÓ7‰Ù?!^{Óå·ˆ÷ËKÄsñœÃ="úÛŠûúyyâõñ„óýÄóý±Z瘿MD¿3ˆÎ ÖˆÇ#ëí1ó÷Eâu#Êä»TJÍñ¾–u=¸G¼g‘Þ1K¬à»^ÿˆ÷ðÛT¾5Kü>¿M¬×iø.ý?<#Ôm˜$ëxž˜è…Oˆ­É3ë_+Ã"ìÂ}xnž£äp¹$xˆ~¯êNU ljûùý‰ç÷ÃÄÌñSbfêSê&M›¯šûüçZzZ?|!ò‰ø"ŽyPÐ VÐE˜~…Ê3Áw‰ië÷‰½j_u’ظôõ”6Ÿ _ÿe =˜#¦½_£pþ-!‘Ÿ :™o¯ç²{z†XVÈ Ÿ+h?'VH?!6|@§Œ1h8NL—ﯗ׉Ý—ˆ•âgˆ =>øŒøÝ¿IÖ“¯½ú¾µó)±±ò#Æè»DôïLÛEb9…ˆiÈw‰=‰_!æ_7×0C,Ûk‡Áâyý Ùý8CüŽ4]zžª‹†Ì¯å—‰'/Ó¤šž"»Þd_ýy ý˜ ^Çߣ¸Â:(ø‘y~]4X;=>1Ïôé-U@“x\n$Å›Ä2ÆÀøM€iâEúuâ…[§Å豕ðmƒ£þÓ Ë’”¢{ÄÆ»æ³x+>&&†_'¶&FL$eÔ£—‰-ñ“¿pÉñŸ ö®ývÂ}Ä“ó± ð° b_¨|"eÆ,/OõYŠç ŒÒ˜«€iâñf…öÍ+«Ïªï¾MD\âÙKÄôóbóÙŒ¤½ùyí1þxM½cþÑü/û³ôÅ0ŠÌûE +çá¿$žGž"Þ×Ï‘u +¸Bå}âµü§ú+ †e"æµË!Ï Ëyå‘ûd‹T‰óa1>BÌ÷!VÄŸ'¦#ï™ïµ£ãCâ÷tß´óßDÉwñCŒñ÷±¡õ±üõEÓÚÄ|ê]²Î‰)bcÁïG¿=EÖ0"4û—Äôö9"ú×õã¡‚Ibc‰VêïÓ _V“ø-ù YÃÌà +ç‰÷ÄóÄûæ=²‘#¯ï­Çˆ×ä]óÕ4É'g Þ"Ö)«–ÿ—ˆé–¦Ko-¡K"žcýüw‰iá@xL•€ýÄV“¯’ßZtŸ˜ð}HLÄï3"^ÄD6GŒˆÿ/‘=NbÙã%|ðñËû^™£Ä^:7?ò#bÁB¼nY–ëiâ¹Ò æSsíÛÄeØ^Ñâq=FÉÄø˜ùˆ•Åÿàis”xs1C}Ž@ø"æÕ5æY²cöΆšC•³ÄóZ¬ç*ñ8“¼î2¿rL†oR9¥išl¨ªx¾jîû]"ú­÷uÐtæ5ât$WÐX$¡χ€™G‰çÂõ¼¾oð®ún±`*Êõˆèÿ +xƱ õЧ%½‡8EÖÓüUŠÔ&Ȧ0¼`0IžHƒÈV 5YcÐp‚˜‡ ̓¬‘ç—Ä´ÿ‡d÷QüýΚ{hÿ. W–Y æeßt¾Ÿø½ÿ1u‰ù°ŒCœ<_'¦åYQ/D<Î7ˆùãÜb4K,ó¥í'IeM≠âð~¾ó!ñ§­…kÄóMÄïç èoÝpŒX.ù„ˆþMŽëöËóÏ“hù%±ƒdñü¾O¬ïì!«'}•ª£EG‰×xÞÈä:á-Ê7Ypx­ ÝúŒ˜&ýQ…ÏYbÝMZ~FLCêwx(‹ó®#}7°7ð^“θ`9¥Í>§Ìýûžg_0WÁØÊâ€[Nß¶¼jæ­È=/«ùu¡oƾ4Ä1ŸUýi'´¹ÐæŠjs`ˆãÉ‹³n"wШð9çìzžujÄÆ< `¼§—B±ý¹@þµ?è1§aÀm$¯m'aßã„6g¼kæoßÌo}^1÷܆¥!S#0Ÿu¢ð®+í®™v«#Ð纰ø:Ûp¼ÇÓ®ïÁMGrŸEt­ÝÀh¯¥IÓïà÷ÜE¾½¢aÓÌÑ%ðú8 àªÓf ÀL@¿.«kzžg•]lÚ)s{¼¾Nšï–Àkl ,_%ÉÁÀ|¬ŠþŸÃèÂT3Æý`$°ƒáî»IXú"pyÏ.{ƒÓˆ3îu0CÏJeqWß5À›ç˜QìW¿Í‚7Â50’ïgÌó4Ñø¥.b=Øo$­¨l8`¢ä½›û’ !«`=è±ë…ÜNhÓUmVÚôT›ÖÆQÁëVÃ&ê]‡MÄÀ¤*cC™1Ÿ÷ôM &êy•ÌyÄ æ Çœ…mÓŸv`û£Î8\ftÄù½ +lö*îû0­yöÌl«ë–ìÓ˜>¹ýòÁXQ<‚j r¶Ôø×Át©VFŽß_V±ëßVêDVê˜ö]ƒwLû^Ò„'@§ÄxDþ\ËO>8 ~ÇçÌ5ûL_æƒg¦´j<ž#‘áÖÁ +ñ°ß/yíð;ñ9ê‚ „)ΈÊ×®© #. ÉÑI0ÍX¿ûmØuE`¢8QÒž{,g•éû¬‘; z`ù«æm…+æ>ë÷Ê e›Óàµ%ÐÇhìµIÄçÿdE÷NÄ¢ +¡Ô° +ÿBo€•„õݬ¹¦&*®±d^Ê$¢Ìô,ØÚµê¹†À‚³K¸kŸD›ˆzý·ÁJzUŠÉ>sß®óý$˜tñ_E!­ +µ™DŒµ¥w#anzªÍñ„ûŒ.!jU”¹”0xÈóü¨W‘ óqdÃòy ¼f|F€ºÇœ…ó°‚ܹÀk\ÏG–¾M ʰ65ªôjâÆ×Ï3Š!%Í0¥ÚUå…%œATÉ]ó™A÷cñH¢³9ïÑV×VéEY€Uü®Â/èkXGúÄàŒ(Ã@Wì|¬ ôÀkkÖi¡¯O3,ö®Â 4JôÁ±‚ãаXñjÁF·ÝÓˆ Xyå˜Ö÷Áë¢l´Ô¢Q}·0œ}8v²‰acаƒð¨á¶smY£_Ñùꤌ§í´o×Kü®ÅÃßG4‚åvŽy(ƒ>´†°üò·¦Ì5—Qñhåö™ŽVå_¿×_ëþ/rQQKÅ’…§øå¯švúGÁ^¤~ +,ˆl"ߦnÀ†œ ” Å¢‚AÑЯª Ìs’Ú4ÁÌW6Ý6â¢Ã±vá''ÓîªßG=ìö ¢}D£T…³`¦¡áêñЇŽyVµÙ„ez>èöµéç Æ‚š‘Þ +h?0²'´÷_–6ºô†4ÎÏ Š±v~ÑfÊ} Ö˜:œCÔ[sÃõ`O"ªxô‘/’혺v»Æ~6ÀQ#+ˆ†~û@èAÉ!ƒÆe3×€5\+>=ó½éׄ•#wÀ†že° 5ü^ô²xqL¯É[ˆ*§Mß{ˆ:·ªÀXC€ÁÏfÁ¶4emL+;°Ñ-ð;k¦Ü[Ò7Àûù¸£kdȳߗ•AÖ4O‘¥Ò1ó³ ;¿—aSdúæ-ußismÝé¯iÊÿX«" PRÄ6PŠF;¸z‡{Ÿx=_Eôn G}Í‚i›DyL+o›ïÝT¨Dçh5:´Š\¤sD®dt® qY‡Ÿ°êœ.÷·%0Ñ]w~o€ OVè°~Ùݺ&Pá!ØÜGxøo#˳0‹¨B>ˆhˆ¢àSƦ`€7˜+X»žãAGr„â1Ÿ(ï˜[ˆîÕ†ùÎõ|o#Û`6¿ÀíF" $‡ÊÁ9O¿²ø²iw Q믄?ëý{qYƱƒˆ¾9ToÐ6j…qö}M™ßzê÷Û#Ðß*q/¢{©hÞ}.ä¸÷,¢ü¡‡p/ú¢P´ÖN^\ïÍ,÷6†[£§.œËjØüðeX¯ýŽ{×üYiÃ6ZË `Þ)Ƈ °à¿kú/Þ8¡«¨×P1Ë#»5>k¬Œ$)þ·ÁrÿTÍ2…xzM¨œ·ˆ8Ïd­¨†™37õÖ›¦Ý-؈‘Ûàµv¼î$ÕHô$q°Ôm4ìxú+F§¢ï:M/›G•>òË!³ˆ®—[ˆò£y„E¼¬"ÜàçK‘÷å¬Ó—ƒN›ÐHÒܘ÷ ?¢Š]¶Ø‰;é-øÒA0ÑïC(S<»qBó6z7ÒaXB0P¼ŸÍÀö:<|!/n.Ë +âÂß!§Í¢Æ¤ D=S}ŒžàôEÌ'ªzÌÌýv½G]ë(`•6Ÿá£Š1»œÒP¼Bî ]ñi›vëˆÖe³«¾Ûxèqm̼ߴ…z?ØŠ/at®WïaE_ 쀦S`¥á(¢…ÈZà5ÜÄhÔ¢HCW€îÔÜçÃàuêMr… <©z´†0·ûÁBnZlÕ{އ]ð::o>‹‡ÖÈèapš$œ¯áag`Ó|¦ÁrI 6*fÖc;¨H™“æ™®3¬ +”b.”-V… Ä‹‡w¯õ)ÿíšúéÃÄSm³ ^K»°{ä"xý5Áïà&˜î5À +êÅšÇá“W6v~–_ÌÂÊ fŒY{c²#§ÒàÕœcí¨kw•kæ58gAˆ¬*S\JéoƒGæ½ k:´‰(#_ â7àÏ‘<˜ô5ms¯ÛÈ⿼pCªÈÎÀZ`Š +Áeõ¢BF(ï!ϳ›k¶QN¢x4t<íVœ6Wß[ÎïÚ +? +øEÌ'ªcÌ33îÌ ªä_Dt-û‡ˌY˜Y¨’í; H/ÙVíöÂ{æ÷®úý¬sßm .T¶ZNƒÃ‚1ic{˜ðâB@L“B‹#¹°¦{G1Z§)CÔ3Q· )xᕽ Ñè—‚×µ†<מ_ÛÁç'­¤‹h€4åïx݉4 +ÅO‚÷ø"xôa ®ƒ÷þ ðº=æ/»¼ñæxôPÝ W>ÃŒ„}×]GÇõw&—ÊUäQ‹0°‹ê‰Z QÏÿ rüĺÔÊyÀ ï<â„ÚUò&7¸Ñçœß×0E•²ò‰F«Î'ªbÌÇP®°MÌp’bQ`™1K¸}ˆñ°èz×Öíõ”ëÚª]6ä\j¦$)ŸÛlNñŠß*¬Á¶…Á!êFác"äO¾Ï>òy vÁë¨5ÄñM nttÇU0M:°6-$µŸ¡ÓÇFÅð2  u`]|>ŠK^Ë[—Áò›ð q>\ÆhðnÁ˜žI.úQðkšß¯‚®ë`Z |åôú+žo7Z²jåTàCËu¤M¡#mv1ZQÃblÃ: DgºnÆ¼Ž¸ñfÙû‚cVAËEspL!IyÙ´R¢ üκæóØzGë°õÉšÈ>òÓWø5B#‚µ±iѽ³ìÜó’ ®ÁÌ•6‰¨|°†dy×MÁë9Ïn«ßú¨aoæi,Jçzʹx¼Öæ)Q‘1»( ¼ncÙŠÆ,L2$ÏÞÍ=î ª¼$ч¶jÓ„5H4Ì2âÐÅ`sñ‚äëˆqõ÷ƒêKxÑ5®®~zï6L»&˜¡+>+Hönt1øH¦9Ľ—`÷ð4¬ç¶Þ3mƒUF0Ì +H½€ûŠG ^Óµ8FÅ ñ4ü¹Ã£hD΃gÀôà*ØØ!òß²ß(ÕИ¯©Þ¿–§®›~6ÍßË`^ׯ¿U 7½GjM]+ùž4ô‘_¦šóðc`E¨cæ® ¦{=…ëæûëˆóÅm„9$ Â7Pß;i€õ‘Ð*ö'ÁdÖ3©K`&è*M0³XFu!VZÁ¬Êr+9:yò«À®yn+Ç5Ú+2¨©¢E´vÚ­f´YFêJçÅŽÓß,e~?üyv×nÕ[B>{̤D™lƒã óý%ø#ÏòæÂ»ŽŠ>’ë<,‚éèMð{º-ûf LÇÎÁ†¸¼öšÏ̽^Eº#F§?†BˆcÆuùäÖ°²ö‚éAZmŒIXG]È;¹hîésÌjEÈxsahCíÉ­"ÜFÂÄ$´ªÒA9ØT}¯*B[P‹xBËb×<»™ã1XôÌßã9®-ƒn¿¯›Ûìþ>¨¯;À¹v1-Ÿ(©½› +¡!ÉúªQ¬þIÅÊæåsºEgÊ*´Ëê>®:h*@Þ1/# +Yc>8¸)IïV@?SÌع_Î9†ªpL7NiÝ)°€#ëv¼¾FA8΋óˆ)uˆ¿[˜GrûŠÖQ9Œ¸ïêMÉ:†8íȪö¿€xŽb¿à˜}Ø€˜Ûí¯:óòŒµ€öm0/‘÷} ƒ‹ŽÓ}paeý¨ê½6ü¿ 6®h:8ì¼YÃð”h9¡@ŒðÞ™7×lct"ĵ‹üaÁ]D!Í¡7iæÀ½`™æXŽ?gæqLãZ\B\Ê27໿V<õýŠ8%²ž­£Òà,,]GÇ%„%fÀÊ…¿^‹i²ãòG8¹uŠ|^åXO´ð¼WÁº_L[Ï€ '`£ù†à/|´Šz>×ø +ä;êoÑð×*#ÝD° ñxë4¾>„Þꚬ5©SÄÛ5Èuè3Ò¬aøÇãA€iáiØc Ûj\Í!öm?xß+–gÁ²ÐuX#`ËsDwùÕcé#^89ë I +Ñ$øiúX©£Hž¾67"¸ÆU}¹á®ÃÀ5°_@¾~¥õ7¤Š»~þ3Æ#æož:Gaמ׉·×¹þNB;I·8klêæȼ>n€÷wÏàyð¾—(“[`™é:,]g_Rþ¾›¦–Yd­ÒÎh;Šè:?³"ærahC _ìŒÀ„äŦš¼*ÂTµE²=¤1É¢5žtL{±HŠ×±LY(¶Ô|%…îë6I›Žj3¬YùD.N"Œ¨'bBܘ!QEò‰òŽ9}Þ€ä«êª…“ø ÓÎsòŒYß_ ‡dEÍÎÛtîÓLy¦ö6AT¸hgôwÒÜ[P:ö™nÂÑ ØÐIøý¸™£´qŽ +Î"nXk©ùÀ[»ÁW<ËÛ¦­OœA|}U™ÖÔ@Ü€?êo6‚¬Š´AÉ“ÍjçÒÑ>èýÔ h–>¦úêB_³>âgD2JpÖÐqÞÅ0#ÄÓ +0_¸–çƒ ÓWÀëñ¢¼â&szR^Ô^Öön(½/äy Ñq×Íü”Yƒn}VÎþ¢QY.-ž@”ŽöJôQ£Ž8raQÃê-ðZ:6Úm›~ä‰l>^!Ž;ÈÿNÜ÷òÞë}3Öð>¾ –MÚà=ÝïU3æÛ°‘‚'Àrúóy¯¹æl4fq¹Í ÙÏ‚4^0í´meÌϨbW¡Ò±ÿžÂà1ó÷íG WŸ?*y¯½Dô óù"úQÉû…'Ìß h;GD/Ñ}"zÍ|÷gDôs"úµ*ï]SŸ’Ðæn@›{êï›%ûT^ èx^Ïhÿ8=pßÇR~{"å7÷Yiðk"z[ýÿ­Àû¾@ùÆND_!ÞC/¿×ÉŒk§ˆÇ¡Çûýµ§mÑ1?CþùÜCD?L¸&iþ5͹ŸòÌïѳDôcóÿ÷ˆèT»i":FD—‰hˆv‰èñü„ˆ`ð—Dô}"úvʳCáWÄëá+DtÄóû¯ŸÑBÏ«^£èÞºO–¿ý†,úE!‰>¹ð%â9ÿ€ˆ:]׿"¢7œöß ¢¥À{§Aƒø¼ä|ÿ +ý.ýK{þ=OàÞzß¿HÌ»Óà?™¾¼H¼gŠÀDÁ눈þ 1?Ö4ñâ½ûs"š)qïAÁ³ÄôîQb>ý=ILŸˆˆ>&¦ÉÂ_¯Ÿó´¯ÓíljyÃÓDô©ùýEsÍasÍ›Dôσín&ü€ˆ>#^#! ÷Íb^£áñ¾y’x¿=GD¿M¼6‹Ð "¢6Ù¹$²rgÒýöï¿=žß^¦(ýg"zOý¿‡˜?–Dôõ”ß¿O–oÜ'¦‡ŸÑWÍóï Ñ5&‰è ñ{ù1…ËzD,äy'S×/‰è/œ6'ˆh•ø}}“x-üŒ˜7½ODš¾>GDOÏý“ÄópŸxÉû}š˜|‡x¯½BÌ ß'~‡ÌýÞ3}ø¯”þ¦ÉÎO9ÿ¥ëÆ÷Õçg*½s ¥@`y¬!yQ{PË?FˆZЕCïâ¬êƒ„â¦Y%”©0/uGHñÁ´ÂƒR<¤›ÒF¬²Uz òbÞ|¢„ùæÃ#÷Éq/’OTgÕ<â…n"9Ä×JØÎx†kQ³ZèBËs/  ë9ÝÌxæ¼i'^À]Ä‹ÐCx5bªÌ_•Ðyß<ذáîÕ4œJ˜£¶j#ïcñõØKžæDèÂzlð‡:úª +çE·ÅŠ…âTWDVÒ›Bµ94ìYÏñêM7”0ñ]°×´hÁ ¢é ½šû_^{™/ƒ×É2˜H*Vžpõ:QŠ®ÉûÚïý)ð^‘T§Û°üiQ!!(žÚf@[íÙw Šé"¶çPMÔ‰[w é©NG‚¹»Ž–ô=ÚNû¬TÈ4l"9ç~Sý¶^}ðúéƒu‹Û`ÞšjxaE]H““ð°s_í¥Ø}q œ2rÁŒ÷"lêšDÁ]6ß]ïíuX:Ý1óÒ…•ݯƒ£;D'Ù„_¹ë& ÒjH-«vYòWN€õ”eð\²F‹.àÞ«òÞ¡ –8èªP„ù>Ê5B½á…ƒ%mŽM°²vvq.«ß|J•HuÖ1¸[-<©Í%0!I"œR„gÐ5É'r\¤)ïRx% Bò‹äÕC¥Ã2’‚ݶMd3Û"cÎ +ó^Eœ–õ´k +]i¡[r'ÐCÔ¨§³@ß|×…=ž' –Sž_EPNRJŽ‚çý"F¯ ™6 +†Pvaç]ŸáÒ"B`…]›â¢¹®y‹zit W«¨'£Je¨…0þÓVãêÞ[ò¤6Pßñ‹R×Hž×GqXþ£Y„nÑZIÂú¤™g©r,°Þ2ã¿KO«¬!Q÷Ã'¼ Þï«`#™–O΂iDÃÌù6F7 Cœ'!ç4赤+°WéØã·@Ò>oÀ_¯äì{Ù Ëã4/m;×´Jô7-ïÿ ¢© +æ³ð‚ë¯Ù±ü¾ò„ük("»Åu*Î,Ÿ€M·íÃæú¼ovÀ{f¬‹,‚eÏeØú9=0O]S×JZÍŽºW’ì0…pGG;eÌgT»2Æõ Äײœ€0ˆ=î:±*»whC!Ëp•Ø5}ïƒ GQaT[a}äÕز¨Å[`B² &BnET“œÄxeü^ +#Mú]ò‹Òr0ü‚HEó‰–‘;È.R•Uö6”®º.+Ÿ¨îª °¢¨û¤w²í´Ý5ãHSœòŒ™/Üxq†´ì¹î"¢B»(z›H^ßMD÷ê%DiÔ¢’UðœÍiR[¡ÏsÔwNrékol¤èa´òï´¢,Gö¬›ß7ïô“æ9 "šëÝ¿_íiS ѵ7ŒŠöub[­›ã:÷ä‘$ ªµ!på¢}u–0×RðÓ…m°Ð> æI×¥‹«`úuÈü~Õ|#òxïtÀïe?ëHY6}\¿›ó°ŠXÓÓ^"ø² +Ö ° Ym5èbË¢øv*î›|¸€8¯˜„?çÞgÐ:­#\cl«`_[ž>hýp ¶ÈÝ ð¾‚0Z;‡â¼C`ù+ÿ¢Ñ®!Qô€ °!f¼WvÌß °2È%X:à{Î4øÝÌÃFÞ NÀžØ$õ޹·+uç#Í`ÕVíºs”„IÿÛ൰€z „-繕=+´aÏËP%œTÏÕJR‘\í¡è¸þa@m/R Ù'P^C=Ʊ XÚYEÞûDiÝ-Ôgài{æÉ²¯¯‚çö0˜æ¥/ƒ×xèý\¸–/ª6Šò˜v­Áy6§™`C¡“¼£‚¡i=gŽ/Á:ÉêªÏM⃠d–U—cw(fpnƒ÷Þ˜gC>ƒÐ ½Ù!P$¢hɹGZÿÀÊ}ð~è‚׎Ë/Cð8lÀ5ó¹eîwÉѯ‡ç#-šKÓünF?Å£ï§û £(]ƒ²Àê¡Mç9‹˜EÔãQÔ{>hœƒ5ZˆwJ[ÁòZÑZêÚ:­ÁKˆË5°òRV¹]4÷í#n1;bž•剞@<_5 $÷g,3Ïil&à¼jsÔ<¯ E¥<^Aù#k’°ª|¢acž|¢ªÆœD0n€ßwÞu>ƒ¸± ˆ n$PÖ}{ž>Î!^«à\Æ=|QÇ=ºH„Ñ+°Æ¡k`Á#²¯a鯉ª±¶ŠX¡ÚÓ݆Áާ[¦Í ù‰ë5r*__«7ÂE§øäåMZxíaôŽ*«§œù+êˆ8ЏÑpõ¥—íC>ô¹¦¥P¼‹‹ˆÒƒ4ÚS§á÷îoyùIÕ/W1?¦ó·ÍßmðÞ¾ ¤oÀ*;¦ÿb(HsìÂz{«XGw`£?Žªg¬‚•Ê«`ú{¼66Jêñ4 SÞDXQ·<Ø„Í5Ö¹Xâ}ZN¹6”íCý¡§“æ9'ÁkÑg]m•Ïm«ûwkcØræ*í}U5fŸ5wL<«°˜N™¾Ji™1üÂÊIĽˆIaeæwM+§-ô·múœÆTàýyÐÌU~aù&˜~Çà +ÓhœÓÆ}¦n”TËÓgMsÍ BÖ]cPÇù}ÆŒeÇüæ2óB,äˆQGó}ˆªË3:±hѹQG×hY†¶ïE\êcxaÞ‹àuæöIÃ0ý9+Ãè’²8iîï®õMó}–Qi/˜žIíŒ6laÛ]°cã*¬_Þß,oØ1ã9 ^Ó.»‰òÑS`¾³×Üë:xÞ%à¢yÖ +¬£c”å]·Ìœ¥½+]kÆ_XxÕxÑh0KýÖèKëÕÐÌÙ'¡÷$ +ëøý…-¨ªüBq~„¤‹ú°íÜÇ•¹ *ól‚užË`êŠóç°n!éÀ«à=¸Vž~†ÈPY¦éˆ¾¤”M×° +ðÞ}g–^íuÚJÄÍ>õݪo•òŒŽàخ𾉀¶z`LÄz +0±¬3O+/N€7­xý%ÌÔ÷²ûÈî$9Vuy~u8ðeÔ盀õÆ®šw(Ö¥å”뺃º<)Y¸¬œõT_ŠZK“°­î]6¯s˜ØDš)mµÂ[fÌ °p)!þuåJMÁïÈ3f‚¿(Ñ Ä-±IU¹[æw óv•Ž7$N ê%,âñ¨/™y;ƒ¸R­S0’` ƒ‰Zð½[×›*mšàµÛïÿk;Õcü¾WÁc#„LËsfá7`†ÎƒN¨ªŽË(¢ŽDªÂ#; g‘ô‹¢ØD|-Ї\ÐM­Û+$¢°HXr™~Ì Zí`ú´ò|À|#äŠsý˜W¬›9<K·Íõ§ +Ý{,ˆQÔuʈQWå‡Í<öÌßUÓ× æïب,_¿FE®K3ûÖ¼À<uC’j! äÃçú>XV¹ +ëT¥ï: …G^£'Òê"eáŠs¯¤vÓ`e¿ öd_W㸜r]ºi§WÀûj?ÒßWdñíxÚõü®úÄrÖFÖiDyÇ|?…8ýXÿ¨*OÏߊîI€ß ­›ˆ +ë³Î`År3Œ´€yóìذµ>x£4=íÀ*²y'Q®«ÃJª=ÿEr‹ 0AÀn€4ÆjɼÞÜ]ƒk°aT½À{HÛusàÍvöláà÷/¬aƤC´‹ä+¥¡cïV|ïAbÓ™ï4œ·x^îÃð“Ýp²,!á(âÐ÷Ì]/ázìçÀ‚ôŽj_—ñcØØ‚­Œ¼ k5Ïë ¹‚úŠœ5Sž{v]ˆÁb9á>¢@î€iÜYðúnšßZ°Š‹ÌEÖ£JˆóR ¡ÂÞEu͉šælP§!VÅ#ˆŸ®R¥W=í¹§`÷Ä*Òe¨˜fè:Ú%ú2 »·`‹³ÉïGÀŠðX Ý¯_Qâç`sèÏÃ:H&`Czo‚ëesíyðÞoæY¤×4Ø‹¨à]Öø.F3Qä€×טÇu溨×uИE³qEÐMG%7 ŠxG5 ÞÓð `zzÄü=eæ&$þ0ªWþr‘’ç^ú·&ØÈw ¼/÷C¼o¯ƒåÀf‰çï…5´]6Ïè¼ež}Î3Æ,¹!+:Ç-@ªi›Vè…î/;í%ÕlÑÔç›°éÚ¨¶h¤´Ï ­ñ8x^Î#ïhÝ£ÒZ¾/E¨Ø…ßË?…¸n×|wÕ‡ÈKÈ÷qðƼÿQ`+Hö†¹Åò +=s]Õa‚:´c¥â{gáxÓ­!»pÔ(ƒx–}PåZl«ûv+¼ï ±åÌÑxÌqlÀ.yÚù¿ç¹V¢n#Jw® Þjü£€n„¢°ƒzNœÑïã"âõL¤Ø‚úß½‡ö˜nÂ2|M¿»Eȸ {@lЂÂ.lÞ´Œ?ËX&Q5U¤ÒŒ"Î" +UG™¹ÀM¤{™ ¸ov쀕‹< +×AÄ•‹-7¬¶Õ˜}i—Ár×ðš?Þóæ=HDÂ)óÙ]ƒ]0Ü0×_ïk·¿YýŸA4R¦LªËÄ™ÝkæUrÁ×a#F}_M×ä9Óß´ˆw­ßAV^é}P8‡¸w°Çê¾ç¹¯K[€h(¼¤²A´hk@=Ê¿Ô×)Šç~ú·y0ïºÞ£'Á +ÏàðÜ)>(¸6ºFy=…RÃ}FVÚqHtŽÖ –Õ÷z=Iä—ÖkµŽ¨ íë°† sêûM؈A‘º}ëªëÓ",´\Ui­ß—"ø®›‡]ÅÿÏÞÛ‡ØY­ù‚¿¹[(¡„r¨ åP•!Br†rˆMÙÄ¡Òä\â%^â%^"è¥lâE‡Øä4ÚÄ&Û&ñ=ÄKN/e£^b›¤‰MŸõ|/Çh¤ÓT¯cºK‘uŸÚKiPfJâNJзñYypÂ|#±žñêåÃ~Æ{.XkÎtäó18D7Áó4àý€¾ÞAö6ã,X%”uö©¿yÞÉî¶¾[ÔBÁ³¾Æý‡ÒæX+Á*k ÓBfͽ–ù»Ä8æá‡€Eš²&êýMœ¢Á!Í8Hmð¤ÆÎgJ¬ÅsÎ:Р³¬Yá´E§XMǤng{Vì+tÞW~ÈMQ.ßS¯V·À>CŸÉê šeŽå‘«£ÍCÔ³vfÜOÜ—(&sšZs*rü6—–Ò,n>ÌÏ1i•µñ¯Ë=æ½B+8× Xݵ‚w(H¾Ä¤RsPߢ¢&]Ï^“†#?à Sæ/;(§·¿ îý%4vOB{ÉŽCcü?3Ï}Íã Þÿš‹vm¥í«ð-4€æÔ HÎß³Þÿw´çÑŒ÷~Hð}» +à½.}ç[hì¿„»7A;ÍþÀÜ»Ú_òhîÄOÝÍ¥üm õ½ZC›¿ŸæÁÒ–Güw¿ð‡f ¾Ôçî1uxÖüþÚ{¿‚ãÅÊîq 8>ñG-?ž· ù÷&ï÷’t2¤ëEð0´O¿ÍçO 9ÿÔf儬¹ö3Ó–n@ž, ׃ß+¤kwCíýêóИ܄ÖÃzˆÿü êŸoK|û^h½Û”û4w€úÿSóÌ æ+ãÝÀ»‘ßÿš7¶.Çáö”¡yx¢ûW!ºø-ij~à•ó€ŸC<ð'püàëþÆüÿ3¨¯­Ó,¹bŽþÚ2²æÖ3ÞÿÇÑ.w)Z†Ñ:4fÃZM®0ÿ øn$È+ÒÅœ†I -úf¶XþXÕåy’F3ÜD×ö ¦g˜. GéÂiŽÑÍi› 7ϳ/¬se<æRÞÿÚÛ-oè»ñ0^céÀ0“û®OÃñ|¿ÁÞÿ7!W¬"ðÛü8Db`+’îK½ëR´·ù‹Êý%M´®yÛ ×Ãû ·¯ÇPÎE®,ŒØ `r]³n“1cÙ ø-:ëã,xZÏuÐÌØP¤2°"ø]…fE¾?„$¬Ã%¼_`š×6\ã*œûq·á{ó-¿ï_Gù=ÿ5h|üð²ÐþÀŸÏBm^¹¬Aèn\fü߀ søÊüºÛþr7ýÀ~ˆž}¹ß њǿÄÀ§H†õM@!cA®Ç~¨ŒuÍý‘¹wÀÓß°kôcÈ-y=\{~ñ‚/Bc8~·›°À¨¿…öø#…º]~ÛÞH{ÈÀ¿ø©©Ë½Ð˜¿õßùšêsšgï@ãý €ÿâÙþÙ®ÑÃHò`y¡,i`C™ï5_‡øû× ð4þë¡6§…[¼dˆgð"ʇ·dÁoœË÷߃ÚÝü}ZW¯@óå,´Fl˜Ô—¬·’Ó†àö®½|š'›w¿„Âß,]´rÕãêô(²áµœ{ið1’¡ŸŸ@4Ά*¾௽û¿ðœùÎ3Ð8¼ ç¶.T`)ÿ.hßøNý DÛÇ|Ñ-+{Þ„ú3 ëµ°ZÞFý´ 5VÑ +ÿO")üޱ»š C ï¿@“ç SÑЂ.ŠQZ £ЄyùÌÙ ¸‰ì?gãI²Ï5Pç[fù´Àþ&ãy¾ȳ¦®_Cmÿ šÔgQ.ëYó÷º+(Ô ~ Ñ–/gA±½$n‰wÚØ|-Î'½wÖ£¸mÃÅ}?À*¨³̹·²Ãû1ð¬÷ÿgˆÛ`ü6ßõÓÏ#Þ{¹àþUˆv| ­)›ëÁ抸ߠ |0½˜L° ¯„øÑo Zò2€ƒÐ´YüE‡e¢¿÷Cãmÿ>àaÖø¨†oן =ηøÚOÍ—$7ìð n0m÷@tÒ +E—sžÍ¿^yïw‹éŒ…IHæBȃ)H ›£Ðܱ ªå?²˜¤nÀ?C<Œ¥_÷@ëýQÄÑËUMø +Ž¿†èƒå;Bø1DóÞðß"¾æØ¸ñÎ0$ä>až +ÉñØ 1µ×!æþˆù÷•!_@tØ*>‚èk,M½ õAÈã]D»’ç=óíGÐÞÞ7 Úhß¹޹Îë?›[êkóÿ}¦üËPßÜ„æÜ +ïùnÀÔo¯@4ýÔço¢|\Y8Žä<…¸9÷¤Ìòãší^eñn¨ï²Œ4×áúø²Á˜>ið’ñÿe+!¾â"Ds¾„”¶îO™odÕo$$vÞE1­, ŸÁñ*@´Ö*Ü^„øáßBsóm8Ê“p9Õ>‡úí.hþÞõÑ;кºß»Ëüÿ…Á•ÐØßÕ›½¹š‹¾,4Œì݆¹’u)ã6ê»ÅƸ_åeƒ?I¹L•uo¡ÆÇÏV›gLùë‚ëuÅJûY¬­Û`™÷Ç)7ÓjNï§Æ¯ª;á\Míª '*¶# üq³îÕUN°û@Ùó¢c°E··ÕBM6zmžÈyn‚IÈ{¶8Ãö0Šð0ó×ÉF&sÍ\âòí5Ãl?‚¸(_ŠE{\ž¿¿ÛLÎYack©˜Ñغùü̵Èwü°7?–´Áö£0/1Û5õ}S– {:™ólÖܱ{è¢é“´µ¼šrN o™ æË:&÷¦y‡4ïì ö2÷½ß\÷cº§K´+m~-Kç[¦Ýήâ¬×Æ%VÏð¾œèïÁó,ÏOØu:ͤ+xLˆÙËç2ˆ…yÆpVg‚ïdÑbVqšê›½ÿÝi&6ìкğ¢[‡~Íõ]taèâëç˜Þßa]-,²ú‰@»½2¬+}#ãû!Skv‰.´Ô‘'“ûC^èëiïkaøC×òßd-Šk9•ôC«EÇ Ö{Ù~VãKì,®ÆÆ]î¤ ¨-Õâ‘üÏ¢O —óX3{4WöˆºïZL•ñ™‰xÇOVmšíÆ€^'ÑLÃ0Q° TZ‰5>Øë–©Ž¥yò_19üØÕƒAÝÂDjþsieR<Ü)ŠŸaç :Ëâ(%D ™¶øŠü¢äŒ»(:p‚ú¯Pqñë(!aŽŽÏ««M &-jOíU®˜ýãFÉxåS¿à8“k³ln"ÐŦϙ²NSîó˜bqòñª°Äî%t ‡YG\ÎÐå^8HѬ}ÔÞô!ÕGWÌû'L™stGn·¼òíºÜãý¿×Ô¥I—K.¬Ã\FÿìNy¶Ìxçµ;¦ÿ|Å̬W/Ÿgå.X4m.â;BÞ¹«¹üaöæÅ|¥%Y éõœc2Ó-YOGÚ„hiÙaÇ)Áh:­u€õ%÷èúI‡ºus úŒŒ-sßOpc• yL–Ía&ϨÍó˜ÊŸЯû§ƒgg½ûs%êQ6¹QèùSä]~¬¶IÇॠò­ççØžø¥¬•>ë[ö;‹Œ÷¢ØÌîZ úQ™8SCÛN3›I>ÌòY’÷{eO×ÜÞµ^§¨¹Q…Æ[&©ˆI O$éõ 3æ»±–K{æ¼õ¼¢hmx®ùµ·öËþØ êW$èZëqÈX£Gã*­‹˜bÿì÷Pø³½Ž–˜½öÆèåM” ÐJ)»[Ø0ß¶ëÄ«wÑÞ6Ng1ÞN)æ¼¶ÎÑYð&j¨ëf:ÁžÚ«–KðO›“d—Œu}T²Úº²ÙíCØóÔø§ÍåYv7±q·“NÎßËShZcÛ Šæí§h5n§Öài:“tžÐ{(Ú0Gõó$Ýþf“Ÿ±}ÞMgôM+åÙ2h÷šÙúÑŸ3—è”Õiɯ™¾ˆQh¯f’/°ËÊ}ÿGÞq õÍkÈ¥í¸ó^¯a‰à tZ\Û¡ÖJÜ Z“wtCÞà’ZXÝ\äÝÀ ¯ë:š¤ +fÍ5›%Ú·øYkÖ°ÖFÖ#Ôòeim§ƒçÂû3Þ½VÄý¹àÙ¦w.£afkk9)Û÷aL^Kš@·Ý Gè2;‡PµÍ>ŽÑ1M Œ÷„yšåŽS* ½ÌT]CEYY8ÇüMÓÕSÆbâ+¹ë¦c¨yqÕ²ÖûJ¶˜ºµ¼¶Y=ëÆóÝ42 -]ž£˜È4eØöçi¡Ò9o^ZÙuÁuë Ó©k¯|}˜.xÇÒíÓi`ä);tôvœšÿ¶/·šöøë̤bèáa:ú½ŠÉcO°À:¡c‘ZÓ½võÏÃÐàׯûHˆãL«ÒÚyJ™Ö¤d{Ä$%à±¶uÓ{¹GN®fNfn÷-Ôœ^ h\‹’gvSB®U°7)Á[ÔºÚnÊò½u²öí4ÏÁ%v¾7´LYu¢lÂW¯)&eÎÝ,>Å"[®ms×½­Ã S¦ƒlgeÁIJš4 ÜÍåõ8cê0aÐ +ý6–ÍÖ­S üŒ)Ç#‰Å!ónåA? œËU_ËÂ~júGžð0DÍa?¦CL®‘VÆ÷¦ƒodÍ'[FÑý¹àÙ¦w.£®á±?3‘m ±Áäx%£Í`ûQp—*~³ +Ž3©";w½¦›/e³ïF¼Hw„ÖNºøSÛby¨ó¨ nàÞ +m"“Zõ<Üdže¬ýyºiwоr•Ûÿñ,ñ-Á±ñéu¡/<)`BA#„+”ðѯóØ_û,cœ6·¬uyŠN‘cC;:­‹oÍ'µgõ[Ó<›¥TÊ:V—,v·çbOSô«WîŠnÚ|4þºž‰x“^lV¹;iúiÖ”5Q¡n£tG +Òü¿Üá,iò0ÝŠ=¯C˜PÙƒkèøYkµ>CÍ©ÍtG¾­2¸ZGÝ’q:qm/‹³Á·CÞajî~hþ·á"û)š6Cñ”[¨õ±ƒê;›WcÝqÝÖ³Ä*ž¦Ëƒ‘&ÐgíuìouzÌP4ÈÊ“ãLz†–“kØnÜìIXNÞÍ :6©N³è\ }Å ì¦U·ËŠÙz‰šœþ¦c7$2™ÇÀºNwšLa«G•Xs¬¦<èœ5í^äò¸°mb6ì Š…pšåæ÷YîLrO«3ë5Že’kúh±!Û¼vT±‚u‚V±cìYÏm`öø_¢hÖ°Ú¸wŽ1Iû¦ÍuKc›L*ec½ËbÇœ,NBkëAf{†‰p-yL®¡ÖêІ六4 N˜÷:í‡qj/²}ZF!jÝ/2òg×ЧçD‰:5(žÔòÈsìOC¯ß²ç«÷C0fþgµÛÊ §(Zô!5'ÓÉ0t¹ÄÒxÆ:ÀºÃ÷ +mŒ…´„º>M·®ýC ÙGñ1{©ù2EÑ€µ&'M›l>¹ÍïsÎ`V½&˜®Œ|¿¦v[:7Wsú2'Fìã¶ï‘u„«FaÑM¯Ræš¹MƒKÔ♤&Ì”iÌ~jeÅ›…°HM¨sÔ€í§achÙº¨ØësæznŸ–¨âÊo§^»lÖ~€:çXÌJHŠØíýž Þm˜úgå¨kZ×»íÆ5g¾Ó2¿›Þ·Ãú¯a’Ð_c=nøa›³ôöà¹*šúNÑ[¨ºöýx¯k”±A ßÓ31KÍÓîmtÖ•3Ô›ÅhW…fÅöôý¸û"ØÇòÊÅqjýÆ* ü8½,È^ãj:åÏlä;¾re©DûëÀÓ¦ïò,¾kÙn0X¤ÖÈrЂNѲàóÖ:o÷€&ëg6Ã=0ƳÉÒ¯, ïHJ»–˜ŸëgÌ´³E—H-kþ5(áú-jÖ-ð„–ì"/„qjþŽxïïgrïnš²&"ë°Ñëà ìϤ¬Yè+DÉþ XÅ$=Ydu~f;Å·œ¢[SÖä0Eƒ·ÒŶwlþŒåèË™ .g˜½ïî¦ ‡˜§S”¦K¦;G­ÁaÓ®Yj¼¬'èBÆÓ¾ +ÑÒ<­ª¢¥ƒe<}‹ÐzŠXh–xwŒ.9¬…%–W t„EøšÕÐ}¾åÝ»Æö;E-²mLj}‡è4ÁÓ¦Ü ƒ¸Yp‰í «N÷«ü¨âBj­Æuiµz‰Ctº^‡„Iè|X ;¦ÃÂJù´“Z ynŽió%lß º©°®¨-ó»é}×·‡ÉDØAÓÚ2 YXŸ8žäò¸ùZM4YÞ•l’I«üóÔæéÇj-eÿºL‡hôçY}¯­SL·1Ц·Ì7šº„h­ëk̳Y¼¯ÌPüÎ9v'ùOßcø’­tûÕ$¥ X0õÜD ‡–_Lë+‡éò,R{ÿàÑâã(Ûy…å0ðäáÛ]¤; ëkRëg‘.o˜ ;kQ2Ë[t +®ºá—?,$ ¥8Áb….érŽXã,(~Ä®½9:o ƒ,¸Óh*)…@!)~ίNCB-ú´'V¦bÒSÈÂ<»wD&=à»Ü„aß2Ö4 [M§a%“‹ç5év°~×Uß•)¬§Ÿ8§Œ«hÞ„µƒWv"Y!:&v¯Ñ·æõ’q­É>XfŇX·ã+ì|Ñ¥Y†ö±þñõã?­öiïšµp¯cû†^·Õe”í1ë6ƒÿÜ0“Äý {Ï Ò­ÿÅ’ïú±¿KLž_}”¢5V¹i›vc¡‰ºˆ£ì,Òe0Ïcl;;[+Ö#%Ͻ0Dß•ú\‡ßïý=¶¬+¿OY›ySë>ÏEq“ +Ÿž$3ê!ú‰¬Hñ: º53Þ³yîîLæ*²6†Clßcò,ô!úûöóÇošé +Î+=\mê;×›ï•YŸ±ãà{xÅγJPoRô|7%°ì¤öíe\ƒ’ý8òÐúNÂ0T\ÞÓž|\Ív^£S>~7%¨î4í>G—(ø4E‡w§|·SXdÿä; ­×¤æq–ÐÝ`’žµèæH“N½‰Îê?AÑ›,:¸ŠéÂÿ1v‡Ç±Š=K³;)Ë7Žç…ÂZ7ý”F[³³]Ç¢&¼J¦Åo£¶NP±Í¦yŠù‰Û.Qš·™¿ŠŽáH³‚øÉ•:Í`Ñ2Ubª­õ´Ó„„Ë«éÆû {#Ì0_ˆzžå-²×¨1¬Ë"5Êö#O³^¦Àwš6×tŒ¡µ@„y·â‰FRÚ|‚íny!Ã\§[W>Ϥ¦µL€O7,\ „Ù2šéq¶{LTc¬OsÝk =eæ(ºSú1Åä|/3.þÜíIÂfÒ²UE€ß罿Àîæ…ØMÇÜ¥µ%tQ¿Òåú,19n–&ãy k9¶.Ÿ£Ìvi“i–õÀ i0éÎ<Ïz~EW³³u:gÚXg¸ÍÛ3Æ +¬[¨½tŸi›Íïp‰ÎûÁ*¦SÞ÷sµ¸ V».aZ¶n‡4á¶3²sáí}jŸ¡Æ|#Å'Ù¥Yvv‚MçÌ÷úÍj˜.¬ÔÂÆå®xžqt!kOžfzHx7D>O×Éž¿Žï¸Àto¿ÓôqZ~§%JY6…PÌC¾æ9Mh]Åö¬Û¶qe_›ˆãiÆ»ÇøŒeVB¿u d£t¢L¢— :aõNÌ&Î}]þVƒésËÂ<Û]™òž}Ÿê÷n˜1¶3%×XŸÒÉBÈüù¹|(Šã¬«Í¡÷Ûã˜Bms/Ü•}+¯…2ãÆg½_òý7S´¨L¢?k¡ª#qÖr£MŠX—°=Âv·Ð2JUߥz9¬Ô &iWÙ$¤~?ø +Ðn +Ý[˜®¼›b»öïl«hL_ø}nÕ±ãØb\³MLÒŒ%V§»‚²)úÒM…ìQºd:,kŠít™,çá6nú~–Ú§>4ÿŸ£[7Öãp:xwÆë¿ý¼óÜý‹Ð÷¨°0ÇÞï? ÊZî•Gkèó5þ{(#ÖIj,S™ý9©õÝïÞOÃl—Ó–(ºÐù=DbÒú¹í"´{î«TÖ1éávZ#O0.×Ý!ör<桯Òy®SÔe='\ &Š=n"í›–P·˜®]󅣺>5M¹ÇX¬Á¡6)ß¹Îø–^bèþÝ-ëÙ‹§ͳӔ{{£ef:ƒrŒ{|X˜ ®O¤|¯—ñDCtÖ,N2™ìËOô²Èî –éô!–àïUñôÉÃU¦~3wQôä%Š)]Ës ºXÎNSi¹7ÈòI¡üšyöÖ+Ë·–ç%aŠÁÐ…÷‹Ï‡¯W1];Ûa{îô½H¬Ëp+òÝmÌ·6(z2ÊZeײ=£ù5Šþt#.yµÿ­eµ¬ø£½½ÍH íÓ%Ë¢ôYjŽž¦”WþÚ·‚°Ío0N§À¾Tá›wneû¾iEÝæYMÃ]HñuÐc KèN8+ëIšgXÞKp¹±Áô$Û-jýÖÁ‹ŒPòZš7ï5öNQ2L7¿–XÎ@·…ÅùŒò`‘¢;}cЉ}pÎkDl²ƒµL2·Ÿ§ù:jRL˜k6aDÌ›gž¦ò¸éЬ“uLnžëRžétÑØM)K½š²’[‚º@ǸÆöc?b˜dî ëeøüøº2p‰R­ãòÆY¥íAjÓÙX±nfƒëÁ7Nryâ‰ve´ù$»·®cýêG)ïÇÚÆ¸á…–*ŒëÓÑÒŽN²Mû1Í.U,kWÆvsn0©0«ËmßÏÉCjïÛÉîÐÁ”¢3N¯±b‡{[½¶/ÒÑ™NI›™žû$ëS †áQNS{èfÖç²\v~OR<ÕÓ-…WX=wÈVºP°¥ôð…Þ7gÌ=+´ÔÍçô+Ú$!,PüìÚŠ}Ÿ7?v1ç+ÊYQ­Â×z¥¤­±*pš’mîİ^·2]³žMYŽþ SJ´Yfë²÷¡Ö ÈÂQæ‡ßmdö bEpÝõ<îÿ'’ˆ€Õ¾pùý€Ÿø>æåÐð(€ÇüÀÃ9ÏÞp/€güMpo+€wáêû3ÿO­5LøÀ]žpÀJxÂü€[>ðª©÷gP;à§]¨W/`#€áúøk¨þ±byCPŸ½à¡’ïð&€¿¯øínÀ$4æ?J¹wÀŸCsá·e@óÞðÇÞ½ Íÿxõ¯ËX˜„Ö]Úº½ µy´¶­êA½f ~€7üyÁóÇàêxÀÿÖjýÞÂZŸxÀß–|w'4†!T¥¥ xÒü¾ +í)?¯PV Cëã)óû¶ùîßÕTþ[P?øpÚw>Auº0íeA}sÊ3xÅ´ì‡CÎx ¸þ€?)YŽíß§ "„óÖ£ÞþƒöÍgržù +Ú§ÎB<à×~Wc†<í@m¼/ãÙ³P}?@õ¹< ­÷O vßÍçoŒBëÿ.óìqS¯[^ðW¿y'Â0Dg_€ë®Bkþ hŽœGܘ4 ñ~ï#›ß;ñ”¿.QïA‹¨,¼mË%ôæAªÛ«Hgš-Ü‚ˆÏuHп۠eNüþ}Ù +€×üEǵî¶AuÉk3 ù0Ú×fÃü­kL÷@› PÌœÁÐÞߨÖÁ1áÿñü4viÂÊWÐ<ª:_Þ†X@‚ùЮk† +Á[P[Ê*@Š`/$¬„p¢Õ_BýuÙ ß¾qˆ¯€càúön¤ÃWÐÚŠÃ"¬…˜Y¿nCóéSó¿+ >¾NzÙý hÜžA½‚·«¡¹ÿÚy¬4¸ 1¹—¡yõ5´ÝÊyç.hNÙ½ì~ó{eÄ÷¾€ÖãÔ³§ ¾ã84No@ƃИùp2LüK ß½a €×¡>ȃÛP_]‡æÁMhÌ-Ow4æ+#¾y“а×)LC4øuh¾¾ Í÷Ð\~×ü½ +ñW¡¶üüXXÑõgO›ÊÀ-h}½ê†Â:¡ѽW­t´pš¯¡{t¸÷PÒe`WŠ{ÃöÎ-jŠrµ9A¹d4èâ†æRÜ/°7®à›(w"{ÄŸývÞ;«)¼ÓìC×8B¹…1¨i1èãTÍv~<ÚÞ9±xÔcY˜ Êžðî5û ­íQIabÄÂu²†ê§ ” f™µaãM™~:ʤ«WŒ»µ´Ù½S¨PkÌ?K¼Áü㯰|ìî Ê>]P·g{|åëIóq+ëÍbs¼sÙÖ[X_ò0, ìe[,uŒÝŸCY°`¾¿“ÝÏÓ¤ á +=Äß—ÿ\M埈IpV–¨þÞÄîñìÃlçUI…5 Æ9»ÏžfqˆvÌSãú<û7/µg øÕ–Á“æÚÓüÎ2¶Aš3ßZ{²æ| ¹4[‹v"«Ø3f2´fê¸V‰qóý!m×sÈv±ç·ä~‡5µÔwÿ~²Úý&ãqH+ìãÊàw· -Ü›èO«¬‚,-AÖµ,©,xýïÂ*|íëõSÈÊóyÆï“ËÐX¿‡|Íë&ÈB”_Bnm¿*¨ëÓ•ÀÂÃþ¹àT‡uи=‡¤5¼Ñ÷WÑîbmá*´ÔiÛ iú}KèEhþ}ù­a8wùp>Ÿ‡<ÒŠæa§0 +YºžCy“7 5ô)´××å–ûCk],òz*‚›P[7õåÞãÖ@ûÔ žæ![ËbáDß/B^6Ìà,z×î)ˆÿú1äÉa]‚_G½@?hÀ¹î¯‡æCÏM@ÞC_Aóýº/7XXY}W@k¶nOƒ2¬†hÁJˆÖ…co½XÏìö>7€ Š;泫a¸áÝ‚˜ùã1ÿõ„ ŒÁ…¤…\…˜´w±üÌÉ(T—Ç¡ ý HˆI CØ ¹Ì?„;±4 bþãàúuˆؘ¡,°nb6Ž($.Ý`ø—† áÆºB†í½Ç}i®½‡;OÂj¨Í¯ =öî6ÔÞûà\oBLñ{hè̃æ÷gК[¹¯ð‹Èºí‚˜? ÷ wŒÉï+LAÊãw úñ8g—'L7ÏuƒÖBôúÙ”{V¾Ñ#ëâºu‡Bw7 +b` NñʹsZæüSH8Cù0íåÏ!N`C¿ÎCôëshnõ{?7à”õw#^!`÷3>Ð/íÜ­w¡ö\Ç@(,Ð\X í¹6/ÔÝpîõ€Æþºù}Ý ËÀUþYH(ϲ4\…‹³ñcá´¿7¡8›QˆxÜÇL=YáV¦”{ Ò¾1)ý²¡XØ1}÷@m} Ò8ú„Ï&: à?ô¸~Ý€QˆqìÔÂmH±Ð±CËv¡Ú¤+¬Ò¸sF¡õk­.·ábô¬`7 1ÔÏÀ)H®CÌò×ÐÚzŽ ý ¢EUiAêG@ÂÞÿ\±œ”ƒqÈâ™—øÕ‚ ÛŠk)z +Õ­è7¡ýé ôGB «|[ô=ÕÆtR¬cïaÎRfçŽ7ý10€ `¿‡Ð©À‡1Hð²]6뀛“ÿ1$<ô;“2 4–‰¼ %Áðî0×Àò{/Ôk!km]óà:4¯êÊ–}'BÌB} w–ñYH ùÙá"ÖëèYdg >­³NÃèÔ§ /¦?ê ¬”›4ó5¤[ÏC^g½>ícR2Y·×"‹çy¸>>ÁÀÒ5€ `ÀúêTø°b”…,:æ>áŽÛ¸S\äÒÀZ“ž„\£nCí¹õÕJôîX´^€ÍÓ°²„Ü y÷!ß õ"¤ä¹1ÒÇ!Fú÷‰ž‹xæ=ÝåzôL@óêAh>]„æH]kg²0Œl…ĺCËúzÈÃã¤ÜéÆÑ|U`.dç.ˆžYÏœ‹„Œ `À0€>†n)B°g½ÚXg{ôFÑž¦ß-üeÁZ“‡úä¸ã1~‚;S¹1€ `À0€ `èsè•`À0€ `À0€"¬Ë]÷ \bs›”ú*dô½lðK8/÷žz:À0€ `ÀP?ŒBÉŽ2x?¾x¯Á^„KÄúîìd¡wŒ0Ü!LBù©žDõè7¡ñþ +?íz(á@0€ `À0€nÃ*H xIÀæºwRÔe¸³âãÎÏ­Q$ ]4ÏÙS²ÎBÑçøá·ý‡"ú0 + …O ý¸ãX8 %“}wF’ð;R®›¼ +w’U]pJFý6º¨(0€ `ÀrÃt„縓Aƒ«Ð ýÊÖC¸sž,XçS¨~2Ð-H(üÈà7µÔ¬ûP‡0dF DwÊø}}X ѪgŸðº,܆r…½à5–[ÜÑÂpIX Õ'K±s¢Wg!oŽpÊMëõ±Ò U†¦Á-oBc^û¾0P `À0€^Á$¼ …6Ñï‡ÐA “M”{:Iæ H¤¸ +1†wrâܨ¿pjûO—µFõÁ:H x¬æroAá›þ¥æ²ë‚n C·¡9ÿ&ú÷„šß'AЇQ¨Ý/ [ð·- ZåæÝÌ +H(|ò˜È*Ç& ï‡ùÿƒ†#¡íQ¯@'ùp¢ß£ü‰T#Ð~÷,tÜpgͽ.Yn. @5†˜Rë¾Ö„¸.…ˆñ£nÝõVšû–h_†sÛ³ñköÿ«±ÿmïªÝ1 CDØÓyÚ¬ïd#¦<m¾ÖBg´ûڼϛÿ/B›ï(´á¯‡;’ñnóÜHX»S¬t€¬”–yû¡Y`óàiˆá¸ çr|Ýíƒб@ +€×¡¾ÿÀßCîÂ7!÷O!æèIóüÝæÙ[ÐXÝ Ñ§wQ3sÔEð"¤ÌXµÿˆyüÀ ž7ûQèIƒÕÐú"ãþ-8AèkˆÖØýãH²ûŽ›NƒÛи¿‚þ9-ªah%4¿WBôô!¸=7„Ûæ;¯¢èÕï“ ÂÈE?ôt¸¹ï Ѽ2ótêË'!:yopÿ&4þË¥0üA Ã0µ)œßg¡~øõðŠãIš"éeYÃ7$—GIN_¦ïw×’LruÊõé”úoîƒúv³¦´¹¸Âô>^.lœ!9•roÝzÞ–ñþ4ɧû uâ¾´#¹Dò4Ém˜¢æJ§smÄü¿“¢7 ›#{)ú0Br«« æÞµ¯îð~o4ãñ¼)c›y'küú '¼~ÞoþßC²EÍÃsÔ8múãµç,w½cðy¶ï¤ö•Ô˜–Ý#‡):|ÈôY—èæÊraƒäîŒú]!ùÉuÊ æýÉ”rIÍ™éhÛG¨5~,£íg(¾»Û¾`®×ÅËQk«•Ò'èhk¯pÜ|7„3$·°>>xœš?i4奶wÅËúp…ÚsºõÍ ¦ógÖտݪø0E”všÊždúĵpÁ<·ý-üeáN:°§ês'â:ºMîtÔ' §¨EŸ‡ÙßJ€qŠñ¿PÐŽnÁQŠy_޶¯%ù>µ™ìM¹¿šÚlš÷e”³šý=Æ18Ìl¦².¸ÄÞ3&i¸ÊkëÑàÞ¯¾Ø.è›ë¤„˜¡>hO¸†åÀ*ö³üú£úý$ÅМ!¹‰ŽyßE1R ”x–ZŸï›ë#Ôþp˜Z“sÔúó÷Ú ÔX}H ýÊGL0ÉH^22É#-˜¿sæï¬WÆó\~Á'ÄJ@¡Eñuu­›QŠ6§)ªßâòÐå^ C“ÔüNƒ´ýì‡Ôö~}fºrb»G†(ycIh±w +÷¤0œƒ›Rúû{·ÇlNùþ1v®”¯U0A-ÄSì –¨Ípï &ûySï Ô¦Ôos'ãyÝ'®ãt›š%îçú ýiõô…ÿyŠnRóÕ‡}Pß”%!$$Yp†b:wSÖû-”R/7Sëa/Ŭ[æ6 Nš2{ÙÛÍ·©M´j9¨9ºÜV§NÐZ» oõ°Mi¸šnÝZÁÓÞÛh®/0ÝÓ£AÇÜÎSëçNØ“bpoÊXÅÂ|ä7F©5·ŸbÑyí4÷^¢ý]T_¢ðß§”;Í»3|ˆRÆž SÒ½DÑá5”À¹»GýXwdôé¢ikÚuÒ)fÌï¦WævŠî.W›V±ÝÀ³Àî®—Q¦Ó0;ÇzÕöå†V3]ð<ÄvEËKìÞdµ}5'&)å_§ßixå­åò ‚áü;Ôá³=†)úë Ñ0mÊâ‘V±]ÖºÆîËe…áE«Ê««rîuMÎÀLzw,Qô¶WóÌâ8ÛÇ»cccÛL§¥.‚EŠñ?@ge³›|´(BÚ¯L×s¹š˜e˘¤ˆôj²MôA»@1]¤&|®L‡Í7é˜k«èGW[k$Ó]®60I˜ÖôAýº…›ÕQÊ‚¶›Z¿iî{G™t™ž º3ÔÚœcñ†3JÑkyá${'HPë´qˆ:lmê ¬"ÜÂî0öe­¿À"—Ï `ˆnÞïcû>b7Ô¬1´.ò'Ø?á+vOQ®ò;¨}ô%$úh÷ÙM]GLJʹæþóÞi¦ÓR +°˜z¾eÊÝCõý[lW´´è\ûA 7§‚k0u +÷ µÔÙEí¡‹ÚFÑ®Ù.ô}6gñ¬êuó¡yß*¤šæ÷´ù=×ö†c +'Ø;>fší^y§YàY„e…¡ajNÆÖm„Ú7³ž·<§Gé„¡is­ew™¶Ÿ£æa¸Ï·(0Qò[(!',ï‚ùN/AGM[}8Êüq·ëv‘q†«ÜZÊy¾Á$_Jj-vË ¬0Ü SÖcœ·½ Í`—„áœbrŽe +z…i'vRf§“!*² E lÞâôã}BÆ£_­mO›ú¢&Æ©÷©E2G1eÝ(Êàj#õ ×AÓÎNÜù†)†í +µ št.žd#3B 1½rÇmЂyfú—è ,Pk™®œ;fî7©µ6O ;3Ιû/Qã3Om¾{(ý5ŽYã`-§)­î˜é—4÷Í£Ì×üVÁn +žSì¾ËÛµîêff}·÷^@¯z#ÔÜ·VîKlŸÛÖd>åÞ 5¿í>´Ó»¾•û^[›¶QÂ@+»›£!Ü_¯d|wˆêÇí}8Å8ï™j;F͵ƒÔÚþ.|`”NXÚM·öÇ™¤k)¡iEƒ†¨ùt˜Na1GG“@)Õ')šÒ Aæ;¤öKŸÏÙI›½2ì±p†š×š¦<»? ¾^@þØ„´|9B GÙî…wºË}QVò…À˜ºùÏŸcö<^Åv>Ü +[s^Ýê䟳Ú>Æt%¿ÿÜ[9m±¸™ÙFA MöNôq(図9ßôÇÑ™‚:NÏ Ä»ƒç[¬_WVö… ûsž‡i£WEm®]p”I%yQ}z…ÃÔ÷!T–Gc•—ÆY.q”¿ùÅâ*j# ‰IZŒær¢µXOSBÒ\ä{Ó”¦îÕŸ;¨>í‡xYP‹—tŒûF&ð,0Žû8B»·hÞ·‚ôµÉemtã”%ôC&c×Ïô¨?&¼oæ™UÞs{T·¬ñÛËvFÿ4GÍ~s/³×TƒÚÜHùA&7.ËZ¦Þ2„V¨jѹôî Þk²y\dÄ,À=ÔÆ»\cPZvWÍåv¦U²r)t³Ïº gØýÀ)jÍeYâë‚y:ElQbößÛî8¥¬½bþӔ2å“^D«©¾ÝCÑž§)FóC:‡µ¦ì}Ô¾;N ü(AçCj<Ïî[Æ÷ÒÅ_Û½éœi—U˜n oȈØäýßdRP°<Ù ÕguÑÑ,\Ťå}‰Ë†`CF|8Áîƒe…¡4!0ÌEb¨(ÊS¤•zš\Éy¿Î¶¿Åbð ?~ÙÓŒó&ž÷Þí¶ b8ÇÞÏy6m\òÆÑÇ0Th‰ù‡ðùS¬oî—†Ó„ÿ˜¤Àim.RÔ& è+ûEøÏšWK¬úQö…lw÷ʃf‡ µq^>tŽý“]úEŒlB¢˜äu›M{štÄ«ÛÚê*xí;k‰:FÇØœ¡ˆàól'è ÊJ³Ÿ"úVð Ê´n^6bÚôÓ.&5Á¾Bè{ç2á}w6ò¹C=ª[ˆ£lßDO1™)غYÅx›4¨1¸ÆtK?éÆþ5––xZ…Á!soŽZ¿‡)Æ}5Bç;[›M9ó–³Ü8nú½nÎ24¼°'ÝFÓß+èVâ­1¶36!ؘñCL†Ôí Åt‰,?¤†¼œ¤ÖË.vÆ8ŽS{”÷ÛæYcʶ! û)ð>µ¯ì1÷ŽÒå±^u[¨}ÿ(“»Ìï+¦?¶Ñ­—u¦ŒnЀaŠÖZFwó=k.™÷tëïÛ]‰ÓÀî{;½kMº¤{~’e_8ëÖ:b»…¶Û +‡Ls‰~«æo”††Ø..°8|Œís㳕tiß !Ö »“¶Q{ûjŠZG­å4¯?Î gV#X®1ãÓwV0›Ì¸?lÚ±ßË”ÎQŒ›ï6¿'¥›™-Œ\1e¢³3ušíaŸÙ¶Ú¹ßb6ÑßâÕ9ˆÆ0“Ö]ë®»Íôã1ºLºe6ÈÔ8…ßÚkÊÚM}K„¬{õ>&­bǘŒÝ›7Ï®c{gUfeÄ+«×®çC¼3²Ä÷æ:¨kœ ¾;ïýKA=Üó{íÛ•u[ÓÖÍwSë%‹&Ç O˲à$«Ó× ¶{Gl§ø‡ ó{/%Àž Ö˨ùÞûÔÙ¤óRJSö¿O×ïûéhÙ~Šþm4å®6}Ö¹vÍô£µž¡ cË‚L2«gçà+ ,øŠÓ,%B·ÖÙ~&á¥.~«,¦ uÆíÖ! Åò®iJ€0ÄÄÇá”çChö¨í!Ž0éÕ›:ØôÊ?Íržn‚>N0© 8ÇüqHþ«.Ë*ÏnÌy¶Ê÷óøÚNç»E? ¦ÍµÃÇ™T¢ž¤Ûk¶Ñå×Ù–SÆfï¹<ãÍj&söd=7?í×w‰%i}ÌCϳ<ä ?Ör¼æ¨Åe5ùEÖ]ŒOÑml™:ŒÑ1“Wè45MÓ¶+3r”šT—¨MiŒZ83L2åÖµóµè|¦â(;ÛÌ|á, ÎQxŠ Ëx®c÷±1¢Gé¬ý,C³“NI0ÍÞž}ê×çE˜7PsÒ£^¹<û¸Íû¾ÝpN²=vlÆ\+SöÓ¦ÜKÔ¼¶šp+m¡æëj: “ÅînCtëÝLÙF:ïš;­`Ø«¼ ÏÌôz‘luðMkù°1Y99¬÷ÛU6žõJpÏWT5kªȸ‘ÝÉyæH°î´kØ.hT¥cÖ{g'·VƒbN®0©Ø[Gõó Ó¯6vuµ©Ó%J©6Aw¼ßAóÍó–Îì¢;¾ÖÒ‘näŸ2 ó=keÜï%øcY—R2œ£-fÏÏ!j¼Ps`;WÞo¤ÆsÖüÍ a[Ãä~Ýi\x§ÂÐV÷Ü)£”;èBÉ,Ä„ªVmûrc]‚`^™Íœg·Ï^c=“YÅ `¹Ðz4tâ¢Ý/ó¸NèEøŠê+tÌ‘¿y¦íãt³p®ÐíWMﺯá¯KIµ+è³¼|„Zs/Ñ)LOÐyYؽ½ªkݰÈäé=GY-&>d®³,[,1*«8–^Ìÿë5¾×`’Ÿ:Z¡Ýv¬0Q‡ðoÑW¤ 7¡E1Ü«|Þô\ÛŠ®¤Kú;]¡½–O=epãÙNAý012>¯Ð:ÕÕ‘õNCeùêMŒã1C/¥²†”"a8 w°]ø/nšöü:jíÆÔ¡éÕ»Œ0Ü`RO !f’oJó¬÷Ï"ï9—Q/ŸGO[£A½òB%˜wó-–‡´¤HÃL27óÔ …Dq˜b +ö²}™cº`ékx³6*¸†.¡PžÇÂ&•$‡¨Á=QãDðþût“=´Ê]aÒúŽšpeS®£ÆÃg,/ÑM\Ë@7Íÿ[M=š¦Î[)5gÞ]`’©ÜLç¶w´y“¹F:Âhµ¬ç˜LÆ5oêóëßf.¯ ZƒIBsË+¤¶L=|¿íßKÔšÚÈôM¨Amj»˜¾Á¾D鬇˜ l_,Rs}†. °ÅUÔ¸YÍt(XØ Ç2ìÓ^ÿÎ-cß6˜dögSžòž­óÛ›L_WaØ‹p–݇%ö.g‡¿I†ý5ãÕ'm7÷Ó<«†˜žTÒÿ^,S˜‡>øÂÕÛOõ8GÑÑ—è„åp½Y\G­ýæ+.ýqjy÷æ*´å-&÷÷ÐÚÒ¤·LýÑ …“íjÒ%Z:hþ_K­‰!ŠÖ\0¿‡é” +!Ô¥ÝCËIjžÌ0_‰ö³û{¹ažå­¢¾9o]‡ÂºÝóçƒ÷c= }ÏÒBEX3ãý™à¹*ŒC[鎲¬ª(´ÆŸMT¿§ 'vŽZXd;¯®é.µ}-Û½q–Xnk0]ñ3Ǹ}¶|»*˜õÊiE~Û†?ùs~NóÝ1jÝøÊ—ËYÖ}á²LØGŒ0‹ëL?ÄÖ{‹y¾ªçDUa8\Yü¼ï‰”æ â{^\Šø®oÈ&ÛéÓLp?+LJÞ3Ñcuc «oyI«ØIÆYꇨ Çg²®°}R4˜œäÍØ†çà:jò/Q9KGÈŸ§ñAJøOcNS‹w„Ž ûqˆvAû}µÙ¼gs „“jŒb(ZL?J¯ +ŽPÊvJÙ1ï•ío;ÌwÓ„Ç ¦þ8-˜ß~|žÿô¥cL2ÜVÓZ ǩ;-n7pÆkskëák›æÚ^Ó·Û˜œK#Lgü1ÝÓ¦Áöó„-ì1ß¶„r#ã#ë1àç1sÍתÎyß‹qa¤ÖiÝ^«(¾—éÓ.S×éš¿k-6ÝðncºËtÐ ãP}+Í"ÛiUƒ®/³+ä§Ý³–eŸfûûÚû5´!´²5˜dèOP빓¹zÚôÚ½DG?|…W–×Dî`’þïcZæúÕ·vŸ£‹ó^¤æÏ$µ¾š”’à]ßÛr,ΰêšc›MyÖ0ríGÎùp"¨OžWÔr@ÙܾÀ}0ã™éྵj5Û"Eßô•o¤æ¥ÝcBq鯑!&4e=Zª +CkÙ~TâÅÇÄZƒ§Ø®D²ÉzÜËó0ÍͲSX¬±b° + ë5,1ÿø­4Ú‚õ…|í +Ê-û“LÝnVøÖ&-­3)å†ï4ƒû;©½|µÂûdû^>S·òÌîųÞ7B¯ +¶±ýèâ~2JRî\Éx&´§ 9a m‘%7ôM{Æ7ËxfuÐö2BEa(Ëk·¼Ñ©?ÖÀÅ +õHûnY0ͳóæÚCΚÿWä¼û´gYZzWÄ÷¾®PGÞ€x‰‡¼Œv:nᑌëi°ÞûÿÓŒg‚x3 Ÿ¤<ó-´¥•›þº>’ñŒÿ¬6ý ’ýZô]üg?‹x~"§>¼sï1h/‚§¼ÿäý<ç=ß]Pþzïÿ˜¶ùëÏWEõï‘ÇÜô~¯xLJ‡¼ÿG¾ópÄ3+]ÿ‡G'b¾$ë³OŽ"I»g<—[ ùɧoøËÈ÷ÿÉ}èSÞ–uøÀ—Þ +ùÚ/SŸrð¯P_O¹÷5$£ý¢ ŒžÚÒë›ÿ½kÃHç+¿òþ(å~¤M´*Â$ÐÞi~9ïT,Ó‡ŸBDñó÷ˆÐ~gî¿Ä»¡Mðï+|c Ĥ݆“ß÷¿…„Ó¿‚ÊS@ü„Áæý7¼wÿ¡à›¿†„ŽŸABÜ“¾ žù€¿3ø´ZEŧÈÞ‹àMhq<à7ÐÄzÉÅúï*–máçÓàûœû¿„úöYhìñs2(– dÁyhœú„æuYðù—ðÄðø` ÖÑ +×ýPpšSo „ Ý'_‡6³ûÍ{\¢þ™÷_ðŸM½o@µ]7ŸyuyIBÂw¦¬çϰ„ð8´&Ž [¹•¿ð_½ßÃІð´Æÿ©bÊÀ0Ô†Atò*¤è9ŽöyˆN=ёƣޅ¦iЀæºe¿†æf'ðTʵÛÐ\ü¢qBé³pÊŽŸ@4pJÏ^„›{¯˜ò²î Í;@L‹ý®yL}š°ú)ÜÞð]Êý2ðŸMYwC´Þ‡h_ISþWQ}‡ä\Jk[ÈäߪðYZü®Cð4Î7 qx¢»GºÒ`=4/ŽCLa |Žv†Ô‡³ÐÞõ$4Ÿ‚ÚùDãï1ß{ÊÔý]Hèºjêû2DBPÄBþ\¿‰là€¾Â’BRSî¯É{ Æ8¦|ׯ±ÂSahedÙymÏ»çƒ_7_ðÎ[³1Â5P],RÞ,¸d+­|ˆ¡KV\o~?Œr +õ¿Š˜º×ñ~ìs¾P¸Rd†re…a¬ðïÓþ·!¡¾ ü)´Xžø.SîSþ6²Œ¯àƽHö×ÛUHÎ+‚ßø#ÈxeË¿Ñïï#ëèÃ÷P»ß„èøÝÐZù ΰâ—×{u}nN[5K‡—€ðèˆ2ºxXwîVŒ+B$6˜Œ3 “˜ì÷îeÅ©eá*:·‘²±ækèÜÛI¹Vùß_G¹TÏÜO¹¹ûîóS”[I‹Ånîct.(1±@i8mÞ÷õ`çG Ö‰ClwÛÚÏø#lÒÐÂ\´/ ²œË•ý•»SÏ®b2¶Ì†`œ¦s¹c.C¸@·®·šw|7¹%–ORvšÉcÏŽšº5M[ZAêr‰ÎÂEºøèNËšb2V<Ík”ê÷C¦ÝU¿kC¥òb’/0û$‘Ðõ® +¤ÅýQ.àG™{…ê—²!$`z¬í5ºœ)-s-+llžÙnȾkq–»®ïbj“®b{~ YklwÑ÷ኹ_wXÅ:jßÊ‹Wž®X¶ï¢:šRîLÊ3÷gƒ2fƒûuäñ¿»D·¾æ窻í±ïy°—Žf줣·çèø‚Õk(—c› 2 GˆI–V„¡;vVl¹ßƼýyÆ{®•óÜDð݉ŒçF‚ç²\oýúå}×Ç0oF +ßÉ‚´G,†1ÁYà»åûîúYIÁdh_«D;bésÑŒ,'ÏÅúZd`r_›+ñ^#øflØÈ\Aû‹ê†ÉdÁÑÈú„îíEí˜ñžÍ +÷IÃMl§‡en†ÒÍ%&“Ëæ¡¿†ZÏú{oV¨Ñr£ÏgŸ¡Ö¸ I·ûB˜³¢°Ü0à±T-Aø.V£pZ•ã”Â÷ç¢ùý"j`Á·âä¹X¥Á{ùs”·.ÿ +rU\ ip¬ö¦à}Sæ+PÝŸ5uûÔg‡¬†\F¬«öçÛaüÎÚô.dÁ) óý†oØ\ÿªYbê„pí¹íå÷ ¹UäBúû¾Öÿ*Ô7÷˜6×F!­ìAH;è»ÐßcðY8gšë¢µüÇMƒ¶,ë}ò1¤©½ +`ÀÆÈ61õXo~ß6õxÅ”µI«A”kSE‚Öî-TÓâ†ð ¨þ¶-SžyòÌxjwšE;Þ4ßɳð<`ž» ‰dÈÒËpnÍUàÔk©6ß°óò1$Ý-ÜY¦¿D¹p‰ôËüš?‡,D6¬è!´{_ü#4Ÿÿ+ÒáªÁÇá t¿~<¥üuf‘ä›ò ´FgшãpüM^éçÞs/ç¶Ó‰²IŸ|eÜþ‘µg.Qýà[×ó¼«Â„Uk©y[¥«À)*AXhu©zìà.&­M¡Eo&x~&¥N÷gƒ2æ‚ûUhn¢Æ5/yÃ%º£]›Ô<=PÖ0ÿB ‹tk`e1¶ó1–>ûÝ2Á~Ã0àDÄ;U-ƒáq`!Ä$I-Ê?ÏäÚg’vŸ`2iîÛ–Ëó4íÄ*?g¡ŒwépJ}i®•ñ+m5&C?H­¡ÍïæyÓd±—_ƒùžEÙô‡©ñ;fÊñùÁ™‚w›Þ³smõq„î›:<(-î hO™dçÓAŸåÕÇos•co»‰v.Ù$ÞistÖüžÚÏu*g¨E`7ñÓ̈Ij€­Ëß9¯-3ÔÂ=Ìl‚·É¼WFÙŠ0,ÑSÇLUÅ5¦3Þï+æïtFýöS‚]•ïY˜[Æ6‡hÛIv®%$MlPóç$Å„["2Cç†è·w̼3c~/PЍtôa3]¶ß÷™d<ÖÒ1[>ÁÞÇt÷QëÂy’wÿˆÂÔ2Áog™þ±!A±|A Åe‡ÍL?›¹W*iÊÂA&…²`χÞÈüó‹c ÏÅo’r a?ݦ½ÆÙ”ú\3÷B¡#yœ ž¦[Ë3Ôºˆq -¨yë¯Ë¦w?ÏM¹·2¹ŽNßÃìfRê7Qp¿” +ìÓë>›ò­^ÂfJ©Ÿ¥Ìs&“J£lwg¶s|ëŒ÷|+âù~ʼn í1GÚ5½ççJ~/+þ<ã„Èaf+¯1¯Oî!µ§¦)÷w±í x +K«[¬f°£su^4ÿ—UHNíŽÝ£Ã÷|ˆ‘ž¦ÖÞ’ÁS%û A ¾v?] æCQhóó÷à™‚÷›Þ³U„áav‡*ú9´{"çÙªa"ÝÄ!¶‡õl¦›ÿctû”5à†m.ßõa¹åù‰%|7“X×™²ð:\¦ŸÀeÖÿräV\”ôcä{ ÕO@ákÈ-ã*”ü'Lêgá—›Ì+kÖËp™ø_ƒ\û>Ü^C{ò¦¿‡\œ„\²³ÜYCxr{ró©’0±.øÔWy¿W¹¿†v—¸ÏQ.‰Q˜„Ü1ï?Ñ·pý¤ÁúÈç,l@2üá¿”«b-›Ô* ž„;]ä (¼(6YÔÐü9†øDgyð²éÑSHO¼öʇ|u ÎBóö7¶÷η?þ? tq^ íißA§­ü5äæÿ(bðyÆ&àÌsG¿‚r¢gŸ#}žû. $Ñ»ˆdHaؾn„„}P¥þ ä'áëüyÆõI¸1ºµ9l÷e¸p€G‘ +h ²x“4èG÷ØX“ÏÝrI^c’×ùðgPxÛ³Ð:µáHï ? ›…oü[ˆ†< çM¸Ð´ÓA^…è‚¿îÒöΑ m)‚²m”¬-6a[üruî.¿ïC–wZÁ“иü÷œgþàó=äŸ~–ï ?‰d™SªÐèØP‘²Ðéi8yrh•“nº 6àYˆçyé úÃ…Ë„a+…a¬þÆ›y4 Òˆ«…n)~ wôÙãðó D4¬PÃ[¦õÔ' =ýŸ!nƒýZèï@‚Õ«“vRJ¼ËnïBÂð ˆS4 …ý™ù®e¶G঴láÝ„¿~ûÂö_xÿ¯ƒØeˆe4­[ þ\é]» Í«ˆ‹ _cž_\?ŽîöïH¶ñË.váß½Oà„½Ûs¨ý·Ì½G j+Àüb2¾€úæ.ó®O ÎBë`5¤¬Ëƒ›Ð¸>k¾¹.>ôm$ãËÀ?ÀÅd?ޏõQFøœqñqyuCѦ÷BsöYHQsdÐmhn}‰zNòivÕyÐKxnùm¹…üuî=iŒûwÈ?UeI¦í:Ê3du)Œ9Æ«,„eVÉðc´ÏýËPý;U´ÅÀÐi?iÐ@’Æ\…²Ï…9(²èRÙŒå±JÁ~„*Ê¡N…¡DòÈç*ðß‘/húð=´Ï½íŸYBlY¡ºʺ^A8gc•‚Ïzÿß‚ö¸GàæÑ‹ˆ—^Á$’<Ø ˆûtë1äç8ëGa¸ +”†}:X/HžzÚO~É£þ\¼ ñÈVÎ sùûü0DÓ6hsq} í¶mþzG? `U+¿ÑÖ‘L+ Þ3ïBÒúdÅ¢cz·8ª¥—Uæýh?6ª¾‡„áá4ÇCcs óÖm½„¸Äx¶OBæî.hRõJË?—¬Î‚ß¶µpÉ -ü"¼¶ ÌÙ4x êï•Áuk?‚âÄ“и¯O¹·ÚHÖvPGü1¼Ú ^ð¿ø¿ 9dÅ %G ±^gð×ñ×Ñyò Øç!ó6D`ç~¼ÿ ¤ËcÇ þ>y¼lðsó}{ôVUxÍü­š\¯à4”4ídÊý_AãúïÑùQmU¡Š…& Fœðˆf<Žú„ ßòZÐo@žå´MÖ·¾ùŒWÌùî>sZ…¶}),V±ÆÔ¥øIfêbp?œ3Uö™Ë,cÝ´ß¼–rý2z£|² +¸Æ ¤ÀŸ"¹¯¬DÜÚ_™rí+ÔgðXàPMeuÞBú]åØÉ;QúÀÿ­ãG ùÔ/Ç/„t4Fi )O<àÿF2iå#hçO—|¯ŽÛÐ>þpž@±³[Âð ”¼ö4”$š^‚ÓîF|rÒ"(# _ôþïT1½j§M~ü Ädžôç~ˆWxâu/ØŽôd¾ßB +‚ŸøOÐñƒÿ’ýù¼Òû?jïö+³êc8îýï –Ùº ÅB±&Ë +ëYð)d]ÕÏ"·Š€‡ -ÒmhÂ<ˆvm¿=;ˆ;ÅÁNÄТÜe‡ýšTe- Uáq$‰ì4´¶B‹è#8fè-SGkq¶D½Î z#’aGàÎQ¶DÑ.Ø<øNcþdý~nNÞäâ Åà·?íÔ ›±9´MBsón¨}÷øCˆ°Xü·ÐÜú3Hiñ¢WÎ{Ðz»ÎÊgÃn,Øs××#©¶`s[ïçL»ž„ +/£\6Úþê‡G¬ªð¾m÷½P›ÓÆ-ÔÞöb„Ë;ò” ç‘dP>ð¿/#†´°sÄg¶bNXèTP„'‹ÔaY+ îÇ€/Ä…Šñ‹%Ë‚öîPÙø9D£Ög¼w.üä#hü_…öí¼Læn›o<$ +(£øÿÙ{û­®<]ô™)¡„ÊK •Ky©ºèA/æ ƒ^ÌP¹T ÉA3èAqÐCyˆƒ’‹t0CÊ!â‡ØÄ&±)›ØèmbmªšØ$MlbÐClª‚ 4hÐPÊïþñìu÷ÚëÝk¾û­w=°¨·öÇÚë·÷úø}/ŽïÃð×ËÇáÓ·é×Aµ«€ t¥°Éw€Jóó ½Òä2*©O£q®7…›w–&{zÝð#¸ ÍÏÜ-ÀVY÷Ý[ ¦By ’ù€Çáóp·à‡2„ÿþf!Ÿaà®,ïøT ­ÉYŸês +4NAÀ\Ä+.¦´ßU ûAžù Û½³ ´ßI°Î?ÍEãZbƒNoƒëüf¤÷–Z*€/a¥Y {ñ[ñ„³"~· +þÐyZû§´ßó-Ôvƒû-çJþ-(HG ó+prØŠpEÅA±Ù"í`çØ +v¸ýà‚Y5ö Èì,ôÚt<Ã÷nX2Yÿ ºuŸ™¿"ÃKvk¿w"è&uPg Æ¿FÔ1ž'dEãk^+¼kV#îþ©Ó-UŸƒBÓ:øq¡*† pçßãµ[i“U@ëÑFð;ÞCãS¡§Á0Ž=Þñ•^]jU.kÃ&=:ÎÁÀþ:àýŸEPPÞûàok.eÝ‹Š1û‰w¯Z ËôhÊŠ©f7 @Ä1¨?‚ýYÍõen iƒ°ç+EÑ-]gm,ÈæÖÍÀ€ö;ï6z÷@ÆèǺŠv'7ëKÛö…ŠçƒŒT^€óþ\¯”ÇÁo¼¿¿×WÅôÎçÎ+ £g +¶.Ø—Áõð4‚[»Úâì½Cô5FT¾•ȇPMXDZ< ¾ß#àºþ-‚ßïìbЧ´ßeÁkÀï» |·×Àµ&*Æ?+´ß¶<“é]XGô€üÈc^™ç•ùÞß¹hôVaµq±õú=ºâöGp¼k×E…c%a Þ>ë,Ú…®ºñÑ\{æ!zü‡ Ãie£NpÞÛŠlr¥òÝ ÎsYÞqaØÜZð D‡a…aÈWšaôÊk{ìGºÒq!8w®Fp|.¿Ý^Dç‰BZƒCàã9Èu&®Œ8mWÀ­Oðºæ6®huÔ¿F´Àxö +€ ã°ÓG¹ß' +¦ õ3PÐVÇõοÁoºd~’„±Ø' TÚÜ+hŒ‘ú=|~èæ>©ÀƒFû~õqíÚ°ï¹Á áøn ÷Û   kNì¼²Çûÿ8HÃÂ…ÿpÒÝ ¾“½ 7€Â× Õg681 Ñš²ÈkÏ-Ôuà;| +òsà[fT\¼çª$; ´¾eQú¨¾³Î+a¸*×&¼¢‰?!]¨ªQd@³—(OW Zž¼5E J(|LE]@ó™nsïð¼Sà;ú<¤®"q +“´ +€ÏAeçËò ˆöŽÜ_qnð9|K\„%kÛÎGNp|Oir•˜¼Ñ2ï™{Àyõ¢“ 6 çAEËV°­;ì6cÒ>Åñ²]à·3×¢P õ2¨\ÿ Š.ÐÚÒ®_7 óÈÓmÐ_xìÕo—áÏ3+» .Ì Ž÷)ãÜ%øüȲaá¡>€r™6O”©èÐ…þ4}¶ŽÂðsÙ 0ü¤[Ýó4ìiç@3ä`?ÈwG­ ¿ƒÏ×?®#ÃÚù—AúͤÜQèAÐ#ÅÊ£½,«¿ÎÈ<†rÌ<1ëÞßVPÄA ZÛìŇÁAµ¬ÛAAs6ü ÊÊX?2aÂgTGÿœXÔ| A·¶(ÌAôDkB…(¦Wg(£Æ¾à„¹Ú0¥*÷Ž(Àwà5~;¥ÒÇÛ¯-AFícp¢ óúèòŽ+O‚uð'Âõ`¿x œìö¡—œl^ðÎÍ'ÁïÀo¯¾ã S¦âå?ûïNðû‚}ó˜÷¬Ç|ß¶ ŒB‚.pQPï]¹ó^€¯ +›ñÉ‹ºZh²Àd@L\‚ï5’ÕBQ”õIá|&,,/‚M¿mv€ÉOå¬O%üŠ»$&ܺâ+k²/ÿ ¾÷­–Ï>„ró~Œ \Èx œ—^Ç‚­7ÅÓHâ÷ü¤ÊçÒ9 #¿ÅkŸRêÞƒÿ]ÁŸwõйhÌDz A¥Ä°qþ1Ãm6Âÿ¾¯Á÷ܸÎ…—ÁXÙ5 ¯sÁµ×6Ÿƒ9=‰ü™íõ56 +sA¡bÒ _QЃ¤ùUA…–ªï¹ÙÖÁ¯Žùàwœëýïýžö¡¹hœ.€ßíiÄCy9Nyu+ãÂÂó€ $Ô'鲂-¿m"nåeú÷)ë4î8CÉ8Ñ+¿áAøŠºSð™æ>ð=@0Tâ¸øÏE£6>­%þ²%³Y.<—À˜´WÐØ/ê‚:ϱi‘´X›Ì{³ÂL†kqNgðÀ΢£Ï s/2 LERÞ9JÝ)C #ޱÁ˜ ÊFøø}†S>Ãýàš¸ ~’c A!âØ'x›@öü>º²}È\šÊ„+Æu ágÁ××êÚqUÌ1mž7焽ãçÿ*š ŽCç0鉃††-ï‹Ã^Øå_˜*Pl;Ç¡Áw”&ו~­Î»¨>ú8nvxtk?à0œO@^é +ØÿŽßh8Î6€ïtáó2$AÅ\߀Ÿ õ‚¼ˆŽ«ð °OéóåÿN‚®T€¥bº(ÀlKèzÞDIÓÖÙz6 x[Ý…Vì¶“Û~pQÜ ÒóêùfâðÝyv"è¸ A!k>¸X¼ Û ~_[-¾‚Êi…PeIW‰8Á߉à¤?5rÝ *.:Á±±~Ù +îm³MФ·[áID»x*¯„7‚ ŠÚÞF)`®ø¿à'ö»ãSã¬~"«}àD­â\÷ƒ‹¼bTŸ™…MÞu³\ßÖ ë‚“´ Ö¢q1µŠ2°TLLxŒ­²0"uEÒ¸6Í +Ðßù=Ð2xÍû½ÙÜnMÅbÕ^Æÿy“¬NÁÃBê3CÒB¯/O€P0±U&í¿ï¤x† úÁùé<’­ž¯y×ï‡äDŽv™Þb{à+lÕð1‚ùU†‘-éjlD?ö¹eð•g_¢Ñ,MÎ#ýÚ,‚™Ž^øf6˜ƒ`æù,ÐÛüö +€ +•ÀpT²Åó Ÿt\Û_y§Aw@»w +AžDy*&aô:HjóAAUñ¾!žN£0•¢úú4;ƒ››œH?7êí4׳Ióz]…áÍ !& Y„áÏTî$Ó#¾óˆÎ –_ƒcC§{è]…†a…%'…®È»ØëŒØ—ðà4ÂL(cJ;¦›˜á"³7¶ÖÎß~3ø­ºáO:Ed¨·Á<…¿—\(®ZÜÍàÔŸGú•¨NÓmø5ø}e1¸H 8Wku¼Œh|ß8œHx÷íƒÏ,½f´ÿG£miâÜrýóŸ0žðÚp\ÐM ã€W׳ ä¸Àÿœdæy´<2Y/‚ʓ޽gAEÀføÙ­_„¯Pmxœ@£˜Ü9à6y‡"®B˜õàì-@&fï퀣¨‡G@'fŽà’†/xš¥Ð•Sj±VÖ½Ë2C¶J'sWÚa2ÆyC+þ„  `®³ú;Êʧó,溗Fðìæ„‡àÜýïºC÷‚–Ï@Áé…˜:ºÀ¹9Ì»ã øï$I0N×!Ù¢äÛåé‚F§Ów@8n\÷ZŽg&¡Áµx\;Ï‚Ê ]ÐÇÑÇHׯuah!âñ$„…%ÁÖÝ£eöÉM%æøyr°ѼÑ‚|Ý’yî{ð½/’rV,y5Žyõo‰¸~ ¡¾¸yåã|Úï“ôì´×)èÊKS`Ò4_ÔY~ % Ãò—ë­À\àü|yÃòà[ïùú\zÑrÙí÷-¤0”é +€¼M&T¹]<òå^øV½“èц®¨d!­ˆ4´¼NÁÉ[ L7ÀmñÊÆKà6s +‡ti|.,_‚îè*A^^­x¾ƒŸ=8 ·@E@’+ï¿"Þ-s/Š™u„MrÇШù½2oÃð·”ì'–AøÛµÇï|ïµÐ½NP?€ßç08ÆÀÏ)¡x¥,øGøLã9€¯´Ó¨¥×’§MŒÓ‡p+ÃF°ßåUxnçœm¨Na†Å(w“YÈûÞâ`뉥ÏõuPíù)È<Å%dŠƒ©¨Ú@^–d›I0™þù1çÒÂ\÷ÒÖgëjüÏ༺Ì_22ËOƒóà>Pi­oéµ +L¢öüü5çáϽ;@Ë–Mt,ç_›5?’ðG­û/Jâ1PP<&¬ûÁí`7"û–VIØ N%ûUÏ?º§"h?œò9¦0”öéÈ¢ÐË£\‚ ²æpŠ{u¾ù2ø®ÂwÝ×1¾ï(¾çrIsÛ9ø^&'Áõÿ0¨ Ø +÷SÞù=àwÚçµq‹×ž(ïã$}î ó”Ô•…{ÎZok KÃÇ?‡ ÂÀTÒ˜4ØÏÚNûŒâof#\Ùa¿Œ|sB¾D0WÄãhôZÈ/ëÇ÷#M^QeDòám­.ˆÈ³Ú¹WŒsE•MÚ3žÓŽ{Çî'Ü?ê]7ZRûª*]Ú{Jy︈Ü~¯›"Ò#"¯f¨Ç¶,—ƾ¢—ˆÈ"™ôî鑯DäDŠgõkïeÌòžï]¼ë½›"²]DºSÒ¹TDÞ‘3^yÃ;VF»H8Þ7®ë‘>Y+üæ""ÓÂq""r[ØÔñÚ½ŸˆÈU¯=Þ±íÞµw…ßiZD>~¯µÝãÞ=Ÿx׎ju>åû@ø­WyÏÃÅ{Ð˳¡µo‹È Gox_üwRu‰£3¾¾ó>ñûÇí™×Kxæ¤ØÑ<¦ÝsÛòž¢ËWZvçÞ0èzʲÎnã¾mÓ¤¿× +ªóDDýæ{é—FôkçGBÎ÷jçß2Îés—MYR¿Âñ¿ñ DÏQ&6‰Ïc„á áÜQÞÓ~OJ¾ï¸<â×%ø®»Å_CÔùWÚ1dÔižï7Î?'\kÆëG#ÚzW|Þ"MÙ¥Õq_Ò÷­¤v%!ë7{W«ã¦·É2<'œ‹T=ÂùAa½¿±Ži!Ÿ°T8¼-üÞ½"²FØîzõy×õY´ï9ã9ŠÿïŸÿáú°JD.×Çսĸv‰q~Ä8Fìßí¨ØáYËúÖKp,\—F^Uï¿_YÖÛ%AþèhÈ5Â9Lá É6¾lʈñ~6…\³ÔxYäN³›k÷*ãüÚ’èUåSíYæšÜ!Á¾~SR¾ýŸAɇ/ŒÊ;Åï@_IºÉǶÕž¯O깟$ܯ˜°ÎÝJe‘ö†2Ü«·*ÚÚe|«°Ÿ2s+½k_ðŽïðè[”âYýÚ{«Áw*³ÝJ8Æ%\ñο)\”¶‰/Ä®ôŠº¶Ï»ö)!Ãz_8)ÁPý}_8ÎuÅÀ‡ŒvŒG´[LJ ´‡•Ñ„:7 û’ÉdÅ'RÞâWôŽ(œ0hQÌÞ¸v¬Gøm‹Ä´ØÑ¼Ã¸¯×ò¾¢J§ñ|“ 0…ºžuë ÌhÅtéß³¨õàmñç{S12¢]×/è×΄œ×Ÿ3fœK£°]/|ד!ÏÐçž•â+NmpW‚ß³J• ƒþŽäûŽºÒXaTÂßózã:ýL†\?d\ožï©ï®„ äƒÒØ'®zÇÓÒn +Cïe¨C½Ã´¸˜ñY¦ÂÆTR&•QíÞ!ãÿ%â¿Û3Âñ5.OÑ)ÐVyû…¼‡z¯¯Š½Cç‘‹Â5`¹w͛ڹIïØ¸qOÂstz¶‡œ?cÔ÷žØÉ8£b‡õu­Ÿ÷á¸ãõô¶¦é»m% ‹ßO'µz®JpŽÓÎÙ*SòÝÈ-œëL>H7‚[= oVõźúÿˆ`VÖ4ûÕÚ ¾[²¾¾‹O’ë¥ +S°IÌQgèî¨i]7¿ÝFVƒ®ˆeã]Ô@Ê]ë!ü8õ@·Ú~е'­x;!j«»a°Ÿ›ßV¹¿¾Ûƒ`¬g€?xEA}›ß‚î—½cw@·<•(i?ü<*ûê_ƒß8Êuü +’]¿÷$œC’ ÝAÐÍk…WÞD +À÷Wu8€í`¶Ø~c=VtÊû«»m~†wØf!·Á,Ø…‹™kUÕafÞsYÝõt +é!éów3CŠÊ‹£ï— /t·Þ‡°Od»t݃ƸÛK «9¬C£Ò´yÊ Ï Ã^/R[f©¤l—±¾>0·™äK!ì=ÿÁP€¢ß^ß„ï ó{4ºÏÏÝ·ßDºyúø!çÇ,!’§‘>„*M ³=þ-¿‡ ô±ªÂùÔX{ò{=.€aO€ü¸Ê[1Ka€ãì +¶•oH½ò®[A9`;€ЮQt˜siR€žü1LvÙŒà\½v!¶ß?)tY팥¯ÿσ<šŽ~C!OÂûÌ­vÁ°RÝõü +ŠÙ²2©= +O –ð‚t¾ û|:~D0oÆ|p}Pó…NÅs‰“Ž=•ß`‚¼×iDo }"ý,y˜ŽÍ`6y…ýà‡QñÇPܾ¹ÏÃïüz¼Šó”´çéçà@[*ê¾ßwT|ߤß& ó³ìPç@áo \4þ}[!ø%øþU»ÕÖ?:ƒ Lac!‚‹Ë 0n±èEpbɲmÝp‚ŒZˆ÷äó ægð·i¹Ntgá's¸`¦µGÅS.ó®yœ7úÀEý|&züoú-ÈìFpÑìõîSm¾& ÒcªÎ¡qQ³A’@?œ\w¥8ŽÕ Üå ƒsžÍ²E¡(Aí!ø=Õ ÍT6<ðO  t(ä|ÌErŒ¢©Ø]ŒjDzSùA…D/‚}Çvßm…kðÇP–>˜:S\T€)ð}ý}5}fnЬm‹\‹:Á¹±î¹‚T²Y]áô Ò'ÌUXÎÇóð>ˆ—½ÿ? ¹÷Eðûšñâ³Á÷™†ŒÖ^ù‡0lC06ù<ÈÏìõî[Îõ¶BÂ>P0ðþ? +!i +þ®QÛÓ™PIÓb‚JÈH¿³“.€®Û½ÃÀ÷wü6Iƽ{~C3'€Â|×Ûf71 y}Ž€ý[% Ü?OÔe°ïö£Qi›¤8¿ï®sYè|È·Þù øëÞfPþDc*á¹ +qŠ‚AOÓå·×¾vïÑ®K¯„ae(UÂðjpío–0¬æágü Ã~ g €óÈA°ÿëòñ“ œT6À§y(«‡ÿ]ï!Ýî"ÿ?LÍì94NØi`*¾'ÎÝð·tû§õ+tÃ×ðÝBPó¦·ß&³ï%ø‚Q•Œ{‘PJ¬ÙÍ¿Ý8±,'Èu(^°ìÌz½ÁI‡ÀIg%ØÑê'vS1O"¨š@}*™SüàÕñbÌ5Ï€ýýipëœoá30wà…ù^QY¯•@¾Çû»Àϵz¿ñîNV³Ñ¨ˆ: Ÿù9æ]«’Pž÷ž£I»‘ 6M³À>ñ¸÷ÜàdzO#=Óÿ¼WWS\Î&_’ˆ à7jsÒ;øøíÔny`“ ^ebVL\Õ;èBãøÉª€Fo„´s²ÎxW­ÐŸWT²Ç+ð×dS0O³—‰¸ºÒ(ÅLï ŠÙÛûy@y°Uý žuÛ- “©æéŸ q;°ÙÞ5ËÐ(H?-„‡ÌÆþ(öJœGß w¯)`>×¹¨m— h-HÇÏ@áà$8ïïð÷1Ï×a +C`ûÿÚò~…Ÿ‚¹мé÷§LRvÙ„3}ÚèÕ³ üæûÀï¸|Ÿ—A~üüµô1£.5>ïyÿßûN˜¼5÷|FGµSW>¿?iÚw÷l@a\óp½?¬Û ÒeL´Ý&n^:ˆàsLNjb‚ýì Ò`ÛF6°A™a+•VI;µ”'TF?牯#0"ùaƉè1ÓŒ-ÎZôŸÚññãîZÖ¥’›Ü–æ%òÊS:ÅWz!g]*¶ê]¯Þ´‰ïlÊriì#K$¿4*Œ½\àÑö¡dË!Ñ/Ñ/ñ›¤-C1íKQϱ‹9½.Œñ}C¢Ç£JHv_Ó<*~,Ù.alÏéßfÒ»Æì;oxmÓÛ÷©0P¯pLëñl"é>š¥O¢ñ‰0æð9ñÇÎGÂ÷7*ùãvÍä‹e=ÙWÜÆù%-•_b2áºá7ËŠûb?ëI¨ŠJXg[ôÜ3fÝ&A,¨#ª¼£Ý;Y!Mf‘‚êí?ÇŽž«F$8·õH#úµó#Æ9óÝLjçÒŽ?=‘•y¾˜6ÏÅшãyÆ… †¤Øþ ’‹ê‰´T<ª™ô‰ŸC¶KãÜ®p]ü± +ã õj­½ì úsõ¾vU8ÏÛ$œÓËëF{ÞHy¿*¯Hô:ó©¤Ëu¤Ê" ~›ÛèS¥?¢m +ÛÄOÄ·\£gDüØð›â'üë2J¯w.ìè|ì*! þ7ô©¹eÌ8þ÷ •ÀO%%V‹ëë·:¢bÜÍ1—ä’œD4.w™™Ûá#‰{cÚuw%].½tHcŽ©¢óÿdÁWìïQ9²–^i\ꆴ¹=Å<  ÐY–W¥lŸúž'„ ¤úff¶s˜»(˜Š¡¢Qt®Q¯Þ~í˜J +6*ëLR´~É'4L ßm6nÇ%ȧ}oaÂPV%@¿g}O(œ¾íµ'‹±£W3k2Ô£J—DãSáú¦ÆÄÇŸˆŸ$uZ(¯&¬SÊö‰76*>s‡ø<†Ú)ä§½ú!” †¼ë:Å7:œò2zÆÑšÃ¾µ¾Û˧þmº%øî“’›I MèFM³è 6ïK´‚g©Q§¹Neé_3ZŽ(=\ïÞö¡*Ê«ì‡ +y ¾ ®jßyî«Cœl±tÓÝk~º%©P€ ÐÕ8MüÀÄ*öå!è–¡\Z:t 2]‰£ ’îñêû}Ê65ð]s"½»˜‰G ËÐ)Ðåé¿{Çï€.`y¥)ì]Ç”ËñÐ…ë— KØó^ž@¶~¢ð‚®ê@²«½÷Xf®J‡A—¡ÿ™pý4¶9 ö€ß0ê +aN.{‡à縦]sìw³AwÊ­ Ûüg ;Ö0ø çyרÄ%—Áyà<è¦g&±1éÈæÖ¬ãißÅ<4Æ*<ÒòþÜcut1Wí|ºñßA”ójÐ5¾ +| ºª‚Ÿ5 ÷àï¥l›+¤þXHJL¤ðS°_ìCøÞµaЮÙ@ñ˜ ÆÞg'ÒBÏ`†š h¿' °îÚ>\óŠr뎃9ß ã{ø!B@¾œf€¾0•²® {ójÇÖ€®µQãû4Âù¤¨gµvF!O8ET{—óp|WþS`¿_ ?Ö|8÷oA8ò5è.¿äÓôÜ/q¸®¿,ðÚ¥‡ÃæÁeÛ ®*Œ'm•Gðc¿Õ³v‚}ù%¤ï_#2›K@¾]Ã/øuŽ:@p¬êxœ«õ1§rrÌyj«½ü.sàï;hÜ›^áèþþ.‚îë«Á5b¿w^¹_ÏÇâÈWÜóê~þ˜xAwmÝ<@>F…},óè1×õïá'RÂóèxÍ«'ìº Æ(èí¾èüzÈäOÖ«xŒ³h s;ûІ¼˜¾;³ÿ¼òEã;°ïD0¯Æ3à·*ã™:úAžÍÌ;´Eð—!Z5!š†´Ó€uHp{¤IIÐ+Am¼©uÕ·KH»mX·ÐŠ4-VÐ:=|!««WXQïR¹I½ ù5ˆª¬Zõõ÷|ÝøfK…ÚÍ$Wª,Ea<â¼®í»ê]—§|$A¯š°í]†´ó£ÐhnßR¦…cXY¢,á_CJ…ßõ]Iö2º(Åme‘‹¢i‰°ß ­Ý¹fT|mì IÞ,«U(oY.«ÇÔ¸ÐCc“dÛG_²„d,jË£<î{ï*mÛ†ŒzV¥¼?ké7žkºøëóǶ õõ—éu÷Ü"ד£âßIí“Æu&úcÚ7®3­•YÞ»Y&%æL +æÖX +/H¸%) ®Jãü“6Ô$©ôˆoÕTîò"Á5¹K·W»š¢-ýB«ì.ñçÖQ!ß±Fì=·Iãü¢Ï¿â[/okï.ÏV—a–ÁO%|KÂ2ËiÜ +®ˆþ5ŽŠ¿u´Ârñ×Ùqi ç’ømuÜ•|ãä]¯î]Â9c­ø^ý’í=èg"®2Ú‘Tç Ê3÷…^5IëàˆvÏdÄ5føcQ¼;¤QSmÏm¶(ýÒ8ßL y›²ŸÝ%áa\ŸH±aªt û±9Ïß–y¨fLV„MBTL ”$ïA ºŸ˜1gœ¬²¸>z÷V¿›µô‰/t•áúòª÷}Ö +;Qù:Äwåê÷þ.— Ëô!óQF…ñsýÚù¸Øª´Eg +ÃöaÒÎôŽËŽ9ÂG ±Oø>…LŠ­+í})Vèé’F—Í0L •3&cÿ†4.Ö6P±‰­^twÅ©ãuãžO%Ú` Âoô…÷üw…Ê…Q¶õBoÒ¸gº`Úõ2b<'¬ß íÙqY:„ó— ¯Ù!Áyz2â:Ý*’-ŸD\™‘°e‰Êgò‰0Ô5ïœÒ//akË'’?,6P¢NDi±Ó஄3@Òh•›Nf/;Šå‘ÆIîŒ4jÉ^1ÎgíÔJã]Ó•µ¨øx‘bU³(Kgï£ßk»0»„ß^M^eMæ +ã!çVjçÓÄ#Ûô-…°þ9¤-ð™i…Ö: (ë…^z%^©y[8é†1T"=B倹©$•¦WÃx t4£èŠ×2¾Mž¢Ç]–á-VôÄP×sCÚ¹‹ëï— ª°¬@‚ m]Û2"~¬µ)ë×™è7êС+ØL}(g{ÕtQ((†´û]¯ &£¶Þ;gâ¦$Çþ&AñIE[ûó–0žN„ʳR<Ò%äL!ò¾T#|›m †ÎH9Þ;íæ:tSІÌ>ÿªcÐuÜ®ƒa‚ýM¡ÒeÜ«ó!Ÿ³MØ?†„c8ÉØ-äËÂÖà2As~ ó +¡ûºGg^oªá:0iÔ?q½ž¨ò«ßËŒ†S”¥®äa_®!6ÞäÝB¹ç‰6T)…jár^Tœðo½E‡-怱 ÃÆE=·Û;ƺ,ã:ž+…`¼•¾•Å"øÛ“=@pñ4øŒ›9àµûIÄoQÓLãQî1ËiãLm¡¶T}!OL™‰Æ-nc¸öyø,[\‚÷¦Ú“w?ìYnƒdîa^~ãÞ>Fü^×uÂNDoí”ß‚óÐ!„ǤυŸK# ëÀ¸·'Áùa÷‡/¢1çBQû¨7‹Œ©­ªïÚâü8l3.±,èïÃŒ{Ô×Ë4û-ëøÁ­ä¢be‹†Ztß=ëO3æº ö{±ëз‹4óLe¨OÇIpΞ€wþ18þŸ×…ÕÞß9Þ±[ }OzÇÍmÞæ!û{=Ò{õÌQ¤xºsð÷†˜ã³½\Ó³|k…>p®ÝŠÆ-2§Àñ÷ÇõgÁ`®¤í`œµŠ™œŸNƒ´ŸE>>­ämÃh¿öÁ¢ùU3ç‹Êu°/ßñ®¹®‰O×ßyó#È÷ݱø[Иëâ8Ö¢¶Ý+æ–|¶Û³ª­÷€cã8§\Büûè×™§Áyfér:éóa™köO@zŽ Èc®Ç½Úêñ¬×ޤoÔíÝûH·ÙŸ®jkù²äž$|ò[áçµS˜öÓ-ÞÿÀ¹Iñ‹ê;ÎçǤ\c'AÞ´Y4F; ¶JÉ‹·bžÑ!Ô(ž‘ø¸à÷%<ºiå|%æY6¥C|Káu©_>€N Zž­à™*ûç´cZ)ÔÖö µ_Ê=©ShÅ)w7…ñˆóæ6?E⮄k-‡´kF#Ú•µ,xw»º .óm‘e»$ÇïGASI¸v¬"zÊ,æXÈ’C Ì¢o[ÕNãÚ3õµ­O‚ý*õOý´šz$hÉ)#E§p}6­9ýÚ5æ¸ÔÏçÆ´s¦ÇbUýt¹pÍ2·²‹ó$вÅ¡nÿ¸¢\íà¶”}Aü~âêRnå¯H´7Û´p(;ÜÀ¦ÄY¯ +ûÊ&±ÛÕHÑ>*ñ–ÁQ)ÏtHì­ô ¤14@á®°ïo»ïÞ%´Š¾*Ñž{÷¥Úï®c(â]¥ÁUñsôèe2E“mÓ®‹¸¦ÈÒ!ü¶Iòâ}ñC;ÎH0O–¹ƒENHñá yK—›ßEÄÏQºü™tÁdÛÎÉĨEc:…Âá&áb¿Mèzµ–.0Š$ïEk[zÄßraZê³øöˆ¿LK5¿*ú £’oÒ}Nüä;£âOPK=ºÂbä‹, +ãç;$دŠÂU‰Nz9¤]7š¦¤ò”äßÞ³,LJñ{X'•%b—@‡ +Ý.Xý¿åb³’U:%(¬eui/³¨}¨òl/k[ôw¢¢æIIÛ@%3‰gÙnÍGç•ÉxôJpÜèëë¤ÑŽ~í܈qNÑRaHµá{^_‘àÄ'$ZpIPd¯*Ë4ƇA¹† ¿ß¸pn¶1>½+õÒC=zOh´dIû iž t\Y+ÉJ®i ~wUÒ‚Uçt …œ2®Y"Tg56˜¸/¤[µ™Œhë˜vÍXÄ5e”–† ( ÄwåOËoßÎgk¥Be柉H’“Àè‘Æ% ‡Qœ»zèb¢\.'@—‘£nH‰E »ÎBÐå€*¨î¬í9 ßý´¬-/âк nÝ!×!ÿ¶[C ËÌiÐEh±Wl·(ËÕá'üUÌuKÀ>e³]L®€®PQýsÈk@w±)à™aÏ8†â¶7,G@×¾<îyð,ö“äf} œkƒc`8/ìöއ¹ªíA9ß±*< ö…#HÞ²j,Ý­Vƒáke¡ÁíñV{ÿGÐ p3òmÑÓ +N€n„ü*Gaè×¶çµcgü·‚Ÿ†• kô%еø{“n£8ßÁ°°ýàVtÀµã Ê]7’ÐÎó³Áou?ëÀvx玀}e8¢žàZ B•†ÜR¹Õ0ò+Ï ß¶ +÷À9ø ê¢ 0´e Èóž¤\ª÷¡\—÷¼è¿÷óÈ·¥¸Žðiÿ,áÚ20¦ýދƾ·Á0ÂÿåýíßÁ:p,¤xæ-p.8 òÿßû”:ÿ!÷=Ÿ'9àg)žY€sØjÐ¥?üx ¤ù¸÷·(¹®Jt‚|åB𛫵|.Ø—€sý¸FmçX*l°\Ìò*΂7ÏþÞ}`ÇP{2žWÑBDH³Ú?ô8ƒUõ‡Ò÷¥ª_VÜÛ@¦Q E¶1wg@aëw MSðösà¢~þÄYlU¢ +À8Â#î‰Û Ü™ƒföc…P`Ûƒt‹³Â%øyLt°À?4§9‰xñ[8–[àºPt|¾e-6מ¼˜ûio¼21ö¹àÜqõjŸƒƒƒƒƒCK#‹@¡¾¶¾ˆä.I8ï=¯qÃCðcº´ãS ³ò1È~ŒxÁ½ tÅ\çÕ§´Ý]¢5 ÁOntdˆMk’Ù Ò¶þW£ºø.Õá•»Y0þ·ßƒæ&ë07a[\ûïiÔsßê¬Pãõ Ði!¨¤ S„Þð®);¤¥h˜Éÿî4ÖÕri¶·Jœç°ªÞMØ÷TõãH·ö>­ý b¹Üè +F€Bh5ÜŒâcŠï.ö‡P_A¸´ž®óŠ) L‘ž=ZŽ-DТx´|ìGëŽuÖ¤­ M§A¥À|¹Ë;ÿ2(ðžè*“»äîð%cê“=¾ ~¼â5Û2½ìkÁWÌçà[ÆÕΔ¤R9P„@ÇP†o!Kƒ; q'Ð|+ :AÚWÃÎBs ôl8Ò=ÖÏtºT`è[£ÝÑùðÀ8㪿ïdÅÏK‹ý¨_¶u‡€¢&TÆÓyºÊ? +û¼¿×@ ÅL³v€–ÁøÔY`\ôǘÙ™• 2d1üdTÀï|Ào›Õ0‡Âиºþn +sAùb6|c›òÈTÆÅshÍL@{Ò\ ÊV8888888888TvÍ3—æ¥`˜õø[f¦Å=Ðèx4ÀÕÝÓ¸i®Nàààààààà0óà„${´šÀàhΆV¡y ˜g扂ë½&áÞú%÷mGš›§ppppppp˜ép°=œT_ÁÑ\êHsX-ÀyéN|Ë+÷Àñ> ;~œïbê‰Ûº»J$Ñ|œ/4ßO³ +1ðʈNH_'š›§ppppppp˜‰pÂp~´¢4Gs#fÍà.P/#¸;@ºŽ{eéÚ¸À3àNma[;_çHsëî*Gó p·ãH¿Q7HóO‡œo&͵S888Ø ]¬g:ÍŽfGskÒì„a÷´êBÒ<ð»ÏûÁ +DïÞTw!i¦ + Žæ f"Í} Mæ¾`/¸zcn98/® 9·À¿ð [DÑ| üö'QÌ.a} mÏ£qW¶ªi®œÀÁ!=f:ó¬ÐNÖ3Gs68šÍu€³·p +\wÒ0Ò½ð-†Ã!çë&$ÍdÁÑìc¦Ò<Ò4O;vœ[ö¡œ­²—‚óä°qü8îËÞž;Œæà\öó’žÙ¾Ï Æñªh®ÊT´‹¤ÃÑ Î1Ul¿äÁ«¤¹–(ZÐNB’‚£9Z…æv`žÚÉz¦àhn„£ÙÑÜJ4;‹!¿ÛË~VÒ38€F%H³„¤™.08š‰™Ló*ÐCGW¬íò*­Ñ‹¼vè¡?§@º‹n‡IóCPÁøÓ‚Ÿ“„>°oé9Ê¢¹¾‘"ÊùHŠÇ]yCDú +jg‘ÅÑ<³i^."&´y\DÞ‘í"2"|?C"²ÖûTDÆD䋘zî‹È«"ÒÙDZ;¼6L‡´ïºˆ¼)"ƒêí‘M"r&‚ö‹Â÷ìhv4;šÍYÊ ˆÜ ¡q¤Ägö‹È{!ô¾û2é]#\{t¼/Ñkg—p²mW—pÍê8?""·çŸñî+ƒÞUìÇÓ"òBÉï8¬ô‰È'!lïíhžù4¯”à8ž‘g›@¯*ÝÒÈï-™æ»B^¹Y4wIãZV4͵.y+h'!ÉÑÜ4·ó á‚öm/ŠÈz)náëóÞÝýgíp4;šÍŽæ”%L>!"==mÈó«†_‰¹¾Kü¾ðE»ôë¿h%Ài\Ç«’ÚA`p4Ï|š{DäªV÷´pnn½:ÝæÚ±½ h~¿$šk_²ÞØnB’£¹=hn'æÒ~Ö3G³£ÙÑ<3hnw‹á]‰g {¥QHKxƘq}œ l‹a; + Žæö ù£Þ‘ЫӭÏÓR /þQg¾±N³>—EsíK–›ÚMHr4·ÍíÄgPD¶Ic¯3Í3á;;‹a<½aœ0Ÿtß‚ˆë;¥!©]Gó̧y»ñv è4Ë ί_I¾yܤùÍÐh–^ αyin‰’ö†v’ÍíAs;1ÏôÖ³A­}6“÷"aá7ú~.ÆÐÑÜ š;…‚¿R:fsø‰P(­3Í3å;;‹aü:œUø»ÿºpN¢ûSíÚ2„¤vÍ3Ÿæ>iäó>†ÏÖ­è4‹¤3þÄÑü‘įýÂ~±KDž2Î-õŽïàzÛ!ÌŸðŽW¶‰FÜ!\ Ç<¢”™®£EÐÜ2%ÍÅí&$9šÛƒævbž!é­gƒÒø=†ž1n\§p1†Žæ*i^+"“F;¾’ôyGÖJ#Þ‘à2–ï +[}N»+yTyCqQʤê2Ï%F¢··aØæû¾ê][„ð¯¿[5‡Z\[””$0Ô©Œjí.SH‚0Ì( ïÄÜß!a"a0㯛Is]JVš;$¨¼ S°èu7ýlW¿ç![>Ф9.t Ò6j‹¬^£1mé‘àü>c·Lº Ý„$Gs{ÐÜnÌsšx»¢„Ž4J€fÅvxÏÒ؛…ÂÖB¼T½V>‘äœ .®²<šMËÂûB÷ý1!ÓqF(8¥˜Özu«:F…¾n›–`l®ûÎÙh޳vxô+Ü&Š +›_º…Œèm‰Þ¾vÈhïnyï‘FEÁ[Æù¢„áûbŸƒg—o±êõêMÛî—ÄP•A‰fΦ%9œ¦jšÍR„5]™šÖ ÀfÍì4ÚcCsË•¨cá6[7Ü÷^jѱ<ƒÂäºÄN½½ÎªRÍ3ÁJÚnÌ3$[¼]—p‹•>¡Es•dÓ€v™×µB··~¯>›{Gµv—c˜$¼‹Ð‚uÿ‹ûEâhUMóëÚõ“B¥Ï‡âÏë#­¾­iÙ—`|ôW’,PWEs§ÇQâßE÷‹„[þ«¤y©Ð2nSÖG<UŠ:’â…óÐg1ì5Þ…R¸Ø$”úTÂß‚r£‰©cLÇÿ¸Q_^‹á–÷Ô©‹¶Ö~/³¼'-Í\°¨×œãtœ³¸`_JÂaíw4¿¤ýýV;nÎ7?0ŽÛÁˆ:žð}L{Áw»À‚˜6Ö~—õ§,ê€+1ç.[ÖqÃâšÃÚï²hN‹ຖ³@º¢æÄÃÚoš{œ7'b®½¥µAá’÷W_OλêÚÕF=Ç´ßà÷ý½¿« x¿‚ëfÜ;ûÁ¹#i4× ›¾T7ô"¸Ö.K¸^_onÀŽÿº®é6% +§-ïßkÑ 8? $\›…f…Ÿz÷ïÇÔaï÷B¿´¸ÿ€¿ùôýÞý‡@¾b€oR´¥ +šÿÀÿiQ¢ðËûÿ`Ùž44ë|óTµ°À=ËvÀ»v5€/½ÿ7€ý: nxu|s¾.$Ô—†æ0ü øniÇÂç;¢ð"¢ç˽~–²ihnM¬:;„¢°8ŒÛoñë—ð$;"´>¥ñ$(ÓªÒ+´.è1®:¾jUmµˆZžjíÂÞÝM¡õLÏ:\%Íú÷µA­¤Y’Ï$¹#‰ÄDZuIrlÒ}±óbÈëJ×N½ØÄR}sÿ&‹ûE켪Š1\oÑޤąEß*"ôª° û(›æ¯„}No‹JÚefÂñŽ›[€Ý—Æ­¦Žjuè1ájÜ4‘fUÆ%quÙŒg»<eÒ¬vXÑKØÞöaxÅ«£7¤Ž÷#î1eµNKs’ÅPwûóŽ=§»)ì—·%háÓ­Y£ÒøîLo·‹Â¾czF}àÝ3¤û(„ެCZÐ’òhôŠ}¾‡¨:XÖ‘4š;¾ˆ$[Ït¯°÷×*Åä«ÍŽæQíºqËúˆÝ\ûžDçÁÚ&v^»GÅŽ—2î³õƶ¥9¬ôˆÏ·'YÿUÑç…¬!ÝihnÉbÈ"$é¥WÂÝ0&cî ¹þ¶°§}áed%í.à6‰SÆ%Y¨Þ&1ÒqøJÂߪ2±ê.}Qˆ«ËŒÍŒ‚ËcUÂðM‹öÆ Ã6qI"åÃYâí:-Û+1uŒZÞo›¿a\»§¬CH0)ž ›ïÆø*\•d&¾*šE‚óqŸqÿ¨vnÈ;¦«.ïØxH½ +ïhÇGBêmÖw^"ñ.–Jrìë‰ÏÄm#]u߆ÐEÞc–íÈeI4h׆¹’.ÕÎ+Ep˜¯×Ñ-ñ +UoÒÚ|WüdTú» £)+©.$éíN34«tIt"²¸ûFµëÆk@GÖ2dÐ\…Ôìâh.æEBÞcLh$ý@¸¶n;žWm“7*”ËÆ½:ÞÎiB=ú šû-i~?æ:Û2(v‰fÍjþŸ–äâ¢hnÉb† k¿Ïfp(øtŽs—µÁÐ%)Îå? ºÏ [Ü£_Fó ÛóìíXº¬Äaèn‹…m˜@ñ4‡áµœ×üÉ.ЗAwù$L Íi\I:Áo”ÓeSGœ+}Úëòº’ڌɑÜoxµ;÷ö®­º{~’+išþ tƒ; º­M8ö­ŸXÜÿ-øMvƒmžòþîÛýeä(“æ;ºçÞAð›]Ó~«ëtW<å¶9רwJû}Iû­æ¬¤~QÅwþá!kÁõf5|Wï(üڻΠxΛ-ÛT×·ÓàAÌ9›¹!éº44'¹’^‚ß7—X +º±>ƒÆïs ¾›«îö ø ˇÐ8×=רÞuý¶jç‡Ô—Æ•tVȱÇÀ5kQ½ÍDèzµ.Ù†I¦q®¦ŒÿmÂ&Gs«aÊø?ŽfsLƒ/AÞãøoþ ÝøØ…i<ð;Ð¥þø+¯Ž¿ÃHÒ„z˜›7tšçD^eßø­åµ@žë28ýGÏWˆ£¹%¡+²I::ì‚ÿâuÄ1açvƒ öª”mH+$ÙÒ¼lç0^j3Èp x÷?27´ë¿Nxö^øñi0~å ¯ÎPðØ ŸaÚàW!õ”E³‰_">î%0'DÖ!:ŽöšwÞFéS•0lƒ¸…Ìv‘»•| €tÌsÖx;›8õ8¥Ñ„åslãæ«Š«Øÿ;ü˜Àÿ. ¶øÀ¿ø ïþ¿ð`‡4(“æ  bK ?€ãg 8þô8¹§½¿º@¯Ú· ÁØça­ŽÆñ°:LTõ?ðƒJÝàÜýÈXÙÖó[ÿ|oAr€F:¥u•}ûdò%âǶ­²8nl§¡Y†ÃàÇóØ»Áo¼ü>Ã`_ý¯ÞñMà7¨¨ˆŠ—}2’s½º†Áud.€¿™ó^ï~¥äº2«auéÈ’3¨ÎJ%ü?s­T„ÀPT)$ÕŽæ l "u‡9~ãÖ¹fÓ|œó?ËYOš[º …á)ÁÛ‹à WV‘'bîý•wÞdƒ‹ÊH·è•aUùdò@mÜ/ÀÎõ5˜ˆé× ó72a‚º‰G ó¸ ÔÊýLBòµW~àßA!bâ¯9+i<²2Ï6BjÜ5¶ ó„åue%ŸÑ±ñ¼‡ˆ÷ôø áV0ga¯Ñ­2ùL]P&ÍêÛèßðO`Ò?}ÞZZ6ï Ñ+G%JÓëøZ«C-”KÁ¤D7ÜÇˤ¹ À€7ŒxÝ{ÆqpîN« Qø#€ÿÇåVoƒ‰owXnq•}û·Hžë'¯(8Œdæî0â•ßY+E)S_ƒß¦àº0 +å×ÑÏÀï1† Âà0­`½à»¸Î‡¼zþ*†ûìyµ¶rî<Ò¹I‡YϢ怬4× eÒ|ÌÞ¿À› £nÖ½<怂­9Gì÷Žoû×BêX öýY°›·Ë¤ùP9Q¾†ÔDÕ}{#8Ÿ „œ›ðÎÇ}§o½kTß0¡<Ùâ†f‹áwàüªæéø™Ño€ïê14ÎeçUú$üurWT¨Ì¼¶<ß‹­ÅÉVVõÇ+à+†‘Na^:À¶é¿ÊJn IA8š[ihžÒ~Û†GÔzÛ“\á§"îk5¤¡¹%¡3Y„¤4 +7—@& ë¬Â‚‹ïK ò@ ´Y Ë¦ †³Æ£iÎ# ¿º4›J% ')†6ƒÔásj‹4[¤ažu¤·û +ð<|ïŠA¥€Âê0fíYÐ#f>æpdÓ¸RMÿÏ·lÃL‹1,ŠæG`Ÿ›çÙgÀorœo‡½c³@Ïœ°­s¾•;ç@áH …ªŽ§A!`èöŸíš2þÏKs7Øß,ê8*­ÒôËAPÈŒRêØ Ž)SÆÿe÷í?ãùyPh›2°ÇÀïgCÿo´:–ô_óî·ñ|›2þ£ÙÖêò;žc~ï(!ãØ÷£”ß›AOÝsq.Âãy/ƒ}'nÈj1œßS°nJ%ü?£SÂÿï¬ÑŽ;!©S÷µÍñÐùÔ9 wÑ·×Öºá0n«\ó|»ÐÜ’˜ñÛVHú¸lüÝÈ–¼OÇþÍ«ç5ÐÊ4 ñ–VÎbèhŽCZæù?@a+|aø°_î6ÎO +ظo÷%èr­<ÀÂêØ »}©Ã—æuðÔlð$Ò)­×Á>Å0hO +5¨¢o®¯ÿ–£Ž"æ…8šÓX ÿ2l½ò‚ïì +(4@²¥þOþb7‚ó·þü[ðÃ%lšy-†QJ€ó°ÏS4f#øNn€ïésï'$ÅÃÑÜ4›aWO"ûšØL k¿“òù´#Í-‰(ëE!i'|7Ðïs·ÈÇw`¶Êý FÞ–9›2þwÃh´ Íy™çÏüC†ûÀ0+`¸¸Ê ÍöøÌ ü¸Ð©qq\Àm”i_ƒIû@K¯Ã&dJG‘4/ç‡Ã)Û`Ë®„Ýn%::]®oÇÓ<s_~C=ôp.¤sSø5‚!}YëÊ* ÏÇÖ7WÌA=7Ðèð¸öÛ Ip4·Í@ºU¢êa´Í]Žç¤DÑíHsKBWd’¾AqÖ€0| &ØË +g1 ¢inGæ¹ãíÍéñò/ÎßPG‘4›îÛ¶8 &yC²3ët“w};EX ³ +ÿEÖ•Çb¸~¢Â0%@³qtû7•ïz^'$5ÂÑÜ4Áí1ÃòcD¡ÙÔ&¡ôâ±™Ó6—ïÁ.¹u;ÒÜrÐí($9š[NŽÇ”ö»]âí¦"îk5Ô‰æµàbø8(„]ÝŸ¢X¯"iÞ˜± 6!Q·.{½sÌÖé;W…44;‹!ÝêeœßæQ‚Èiø[W ðÐ(ü÷ ¸3OBÒ w4*Ç/8T%$­BµsÍÒ +I{½ßJ`°Ùi§ÙØ£ýÎ"$9š«¥¹\§÷ h”T‚a”exö;-Íàom>¤ÿD\ûÏ^ýûàËQO€óÿ¯¤y_ÏzÏ^f¿ ®#Qüÿr•yû‘Î3ªin-ˆˆ*ÄZíœMY$"_H#¦E䌈¼âÕ9¤•çDäm™ ¹ODd4e "i÷¿šp­Ióú Ï«Cù´Ei~ND®km¹/ìGEÓ ùD»þ­Ú~Tì1-"Kr>¯Ë«GaÅ=¯j×UÍÍè +wE¤³f4¯•`?a¶íÃu¤yHÒãœÏ,šfó›Øâ]‹çög¬[$¸¦Võ«Â¸E[²Ð !­ +ïYÞcó“p[DzrÏe ·]in™òg"¢;¼ +ßÝî€ÿÉ`9èÚ¦ÇTœÝ0³lç° Ðë;îYmsïï÷=Ð¥'É}C§ù +€ÿqÝRÐÍÌcPÎø»ˆsÏÁµ)šæ¢Ñºø„eé>ºìظùd¡y)ï¥ð$²»wn]ƒÒà€ÿ-ãó`~À)cyßWð]I#Ú«nX€`hÇf¿°¼·jš;@wfåž}À_d¨§4ŸAÐ…×![(QY4¯ÿ=lp +ÀS\¿é¶QÝׄ*¿ó¤msâcs>Í] ?¢¿fíß:`‹¬ëãrð(wÖÝþ5e¯€¹dôm$õõ`Õ†LÂϵ4†ÿ˜s Ú-#íÖ‰ ›®ª +t®ch¦ù}¶"[¨Ÿ£¹xš‚ã".Ñõ-0 )t©(šà)ó€œð×–÷íEº5MÇÐ~/’å²A0þ^Á¶QhGš[†FÀ´0 %hzEäªqO­¯Yú¥1œÀ¦Þ÷µë‹¶ªŒJsÕþq횺ZI;…ï/ÌúrQÒ[0²Ð )Ε4‹•T$YóUŠr%Íc=«ºä±žUEs·0„梱«…i>#Ùµo—Es¯4~—(¼'ö^fª +­6Ø^Íu.yh†c1•lHûœ²,†×Å÷¨׎e¨;OÑÛÔ/áß'õì)£®*¦Ï¦ ÜFGs±4K4î ={l¼“‹¦Boi¼Œ…si˜›|>‘B^ŦþE´¨ß{Ï8Gs‹•°ƒºt4¡“YÜQ`ãz¥Q '¨æ’lÃQíš1£è1E×s:#p×8gº¹¼So3h.¢<+á®W7Ed›¤g¼ë ¿B š!$•o·MØG'…sEQÂH«ÄŽJÓ’-oIh®2 .4WYÍÙŒY\IÍ2*Ù¶­e +ÃãÞñqíØPŽú³”IíÙý^õïÛl!©ìRG!ÉÑ,ãÒˆº†¦‚0+ÝK…®í£BžtÌ{Ÿ;„a±¶têôêÝiáØ.â{´#͵/am…¤õDÞDPQG·²\”h±l«Ê¨vMܹqã܈vnÒ8×/Aô§xf4ç)K¥qÀ‹p€½!éj4Å«ÉglJX2­ë’l¥ÃQãÓÞ{I«ÔªͦÅÃYæþ*iîðŽï~³R¬×SP9ê•ç$|>­Ów®ª™X)¯ÅÐäYl6_LUÃqíÿ¡ž‘¦LjÏ^%õ’Š.­ $9š9××Y0 3p¾%éy‡¢Ê E²{2:š[¤„4…¤0/€ ~È/¤¼l‰#Æ +³ø.•ò­*£Úù¸sã1íŸ4Îõ´õ§xf]-I=B@o›Âû’OÑPaxQmIHò¦ +ÍL>Wº%:™VÞÅ»™ÉgÒ–~yAµÑ§Y¥JÂ]É6¦ëFsÅÑœ?±R‹a—؇md©¿J‹¡NÇë’-)eÖ¢»âêípB’£ÙÑl_z¤qG‚O¥ú°®íÒÈϽPÒ³Ú‘æÚ–¨æ¢mN꫌ói· L[ôó‘q®C‚Úð²¬*£Ú9ó^ýܸqnD;7iœë7žÙoùÌ:Z’:„ÚVs7znäe ê& §Ýpi†gÔ5®2ÎJ<^`½uŽ14û¦•ÆÛ£Ž4÷Hø–®&¦%ÛÜ_š{¥X¡¨h®º”a Ïk14çÔ8Üû]Œša1¬œähv4§+½ܺ\„óNè{…[ë阖taµŽæ.Q'L!éª]hÆ´si]ä²”M„>)ì0ΕeUÕÎõåMíÜGÆ9½}Ws&ƒ4S¯ÞÖºY’VI8sr[8y¡É­›0l+$‰d[@ê–|Ƥ= +cëlµC½, Åàê  ¹[Øç¢pSì¶ß¬+ÍC1´eA+Ð\e)3±R‹a‡$o1¥Úk&ÒL‹a]à„$G³£9[é +y¶ +Y GI¥SÂu·¥ºp²v¤¹v%î¤)$ÕöÑ +jºî©¬Ê«¤Øä3q‚á¨4ªu²$-’p!aZÈeó7K]…á°KÇ}a¢¼´õÖ=ù $˜‹AaZÈ g¡·Õb ! Iy_‚s­U¼Uh~Jü„¤_yôn—lc»N4I±hš«*U$VÊk1Ü%ÑaLŸ¤¨§C…«âï]F óîsB’£ÙÑ\L ›KDÈï®’ü†´>¡sUñ‰4'ó};Ò\›’t)$½#\€tœ‘Ƭøe=îì]¡ ¡+ʶª¼ ̓ʲ]KR·wMXœÿ^;‹ê¤u†;„ßQ¡UjÒ«÷Uáä“…ÞVH>Ó)̪&ï/$Û‚ÙÊ1†#FŸŠ]B®V¦9k©ÍCR,Zæ™òuÚóX {… 蘧xKìç°:Z ?MÑþ4E­÷&£î„$G³£¹Ø²T¢·¯½*ä¹6‰§n§ˆ¬οãίO ùÿf­íJs-ÊŸ‰bÐ`À“Ú±ÓVÇÝT®˜à1ïÿ‡`›~[@Ýa4ï°À:³ xFZ\pÀYó½cUÐü!×m°À¼6¾à7´GaÊ£zAºkÇ€t<*èi°ÀI µc/ø·‚ŸÓ¾×eÚ± 6øSÁÏŠÃv°/écêE?-áYeм +lïyÇ|nqO«ÓœŽfÂÑ\<º×fgìðYÁÏëiÚ `®vü€(výKBØû8íç¤sÔ¿¤u ‚´ªglðuŽú³b)øÍ9w À)çÀ>ðmB]à¸y‹'Ì2®yŸl_8šMÌTšòÙ[½v̹î( ÝçŸÙ^™òEß +€¼æË¾ÌÙÞ"ÐŽ47Z‚vL>ÓŽVš{$h¡`{ ïÆebuq•ŽfG³£ÙÑlSœÅ°w…ži#bšÕ-ô6{U¢s ÔÅzÖ! ¯ û:î{ïg\ØG?ð~(¼LNH±ŽfG³méò€Eæý¸/ôxʪéhža%É@!ÌÂPÃ|©h¥Dfö…ÆqgU)64‚Vs8jì¾+¸U[’zAÍàÚ±[ ¦ðg%=SöA-XA«Ë/J~v;ZÏÍ>ÍÅÁÑì£ÖpÀY m¬gSn€mWôÌ0€Ö´žukåV4ò§YñÀ1ðÛÚxuU Gs1¨;Í:€sêjO5ç¢8Ü=·{óxU‰v¤¹RØ*€p!éÈX”éâýƒ‹±BBR; +†64?àc?i:a¸^®¤§AWÒ³ÈÇàö ÷V42¨Ír%u4ûp4g‡£9ˆfº†ííJꄤöÍíA³ŽNpŽZ*îÿ8¯@%ßh ý¦òv¤¹t¤QÑBÒyp1,*6[¡ŒÇÞ Æü+8«J¹hGšÚ•ynG뙣9G³£9 ­B³' ;!©ÝGs{ÐìàPÒ*â’Ïìµãy~σ‹·™lÎYUªC;Ò ´/óÜŽÖ3Gs4ÍŽæV£9 NvB’ƒƒƒƒƒ†¬ + ^Hº.˜gÁò$my7€à⬄$u’ÚQ0lGšöfžÛÑzæh.Žæú¡iŽ‚†Úy@{&ŸiGÁ°iVhwæ¹­gŽfGsÍ­C³ƒƒƒƒƒƒƒ†¼ +…v’ÍÅ î4ëhwæ¹­gŽfG³£yæÐìàààààÐö(J £…$Gs{ЬÃ1Ï-…2:ÚQHr4·ÍU` è}»Àb0$w.˜,}6Èg?ós]“i_ótµ¢¡ hOš+AÙ +‡*ÐŽƒ£yæÒ¼ ½Ý€ø\q¸àc0¡÷q?Ò²òÐŽ4W§pppppppp˜ypB’=ZM`p4gC«Ð¼L¼ýDÁõÞpÜÊ»nÞ¸íHsÓà3N¶‡’ê+08š‹Ci^¶'l;t€m>†Ó^wܺåŸë•¯<Îuax&ß~ ÍŸßÚ‘æ¦Ã)f"œ0œ­*$} + S + óÌ……ÅàûŠÚ¢¸NC; +IíDs€=àVØfRíànYÇü>e½ÝžçÁ§CÎ_òÎý1e½E i® œÀÁÁÁíb=Óáhv4;š[“f' ûh!é€ÃNøƒE]ý`ââù†¬ƒŸÀØ„’ªE»ÑÜÒdŽáKà{8 àQAÏÙ àypž×±À¿ðŒ4mi7šk§ppH™Î<+´“õLÁÑœ ŽfGs$ ?€?O‚ð¯<† ex…÷;ªž: Ãí$$°ÑCø-õ5{!üµú +¸Nßñþàqpœ˜ïÕ Iå£Ýhiš§»ŽëŸ—ôÌ~pþÚ`?`3Šy¿qhGšk‡2í"$ép4Ï\šÛyVh'뙂£¹88šë…v 9N¾ηÇL £×Z†7€Vbu†ÛIHšûõ/Œk{¬¿×0¨Ä¹?$à¼wïįÁKAÁT‚8!©<´Ík¼çÌÑŽ°ÀwÚ±NÇ^èý éç²0¬ùQýùgÁ9¯,þÔ–æ²Ð šk‰¢í$$)8š³¡UhnæY¡\IÍp4;š[‰æ(aø +h>‚bÚµz7£¹–a'$ÑÕ'|¡ÀF‰NƒBÒò­±Û@Úäh.«Àp5—<ð€Ÿj×ôãz‹Ñ. ¸1ß¾çÚ±S ÝEkš«@•4×"RDY#"Iñ¸+"oˆH_Aí,²8šg6ÍËEäÄ6‹È["²]DF„ïgHDÖzÿŠÈ˜ˆ|SÏ}yUD:›Hk‡×†éö]‘7Ed0C½Ý"²IDÎDÐ~QøžÍŽfG³£9K‘›F;n ç䎒ž¹(â-ñ™ª¬®=:NˆHOEï{mÈóψHWIÏ[%Á~<-"ÏyçzEd‡ˆ|âûHDv‰È‚Ú±D×ñ÷¥œïFó %½ß¸Ò§½[Gs±ÏY)ÁqtW8¶ôkvùÃ$¼Z@{º¤qN;Úš«,UÐ\ë’·‚v’ÍíAs;1Ï.xaßö¢ˆ¬—â¾>ïÝ…-h;ÍŽfG³£9e †?ê„áM!ϯZn'!éÿcïýCô(ötñg÷õËÆKü2^F—É/qI .ñ—¸Ì,ñ—xÑ/ñ—“‹YtÑE]tÑe¼˜E/zÐEzÐerˆ‹.q‰¢K<è2sˆ‡xÐCrÐC”(3‡D’C<$2‘‰LÂóýãÓÅ[]ouuU¿Ýý¾ït=PLÏÛÕÕõtUW}~UõEž˜ êË$OPú[΃Q’;)Ή#ÉýÌþ•¤ú9·(2åL{­¥Ì6öóÉ“ZÙË”±Y_MÇl8I‘CMl/¡^Ô÷Xǃ5qîeÿ®Šsß§¢6MIŠœ›Á¹IÂ3h÷ž¦L®UÝsœä ï:¼g‘sä9¯ Î6eøñž±ÿg÷^y ëL½P’P KåÏ¥ÄIc”è‚WIÎ'÷ü„2Wï ´u‹ý=*IõpNî«+À¡râŒví!Š1©nκroòeçx²ÄÎÙmLõ'XΘ3Ì´ ¼Ìrdqg³?eùFÜwIn­™sß§"5MIŠœ›Á¹IÂ3ؼPÒÈ9rŽœWg›g¸—ŠR¯=†½ä]‡’¤pœ¢ –Xÿ$_6ž¯ÂÚçáEIQ¨[IêU[÷J1¥8¢Î±ûîµ–vgÖÚiUp~и÷óÏ–ºg”µ=©ÓAsÄe¥Q¦ß‡ìnwq6Ó=Iž{yBÓÚ¤LW_)›ó@¤Ð š¦$EÎÍàÜ$ál^(iä9GÎ+ƒ³© /±œð×nÓ;•Ö:<†½Nu(I'(¡øeÔw}RþaJß9LYž8A‰J4Ä,#À(Óžè:•$•Z¹i¼‹û®N®÷‘uêV ×R–•f­ƒWžqßûmbÚpcâ(EÆÕÛ»LÎcLËyGŒ{­cºOÍ09lÑ¥/£xVÍ6ãÙ<]g3Lò}Pð~®~¶˜ó<Ëâ<0)$sÓ”¤È¹œ›$<ƒÍ %œ#çÈyåp6•ì]=äjã^¶g¸iŠ¡©0|Æî÷ÚHæ•wõ ¥ßØê¸ƒF€éŒr·ùêR’ZɽtøÙ¤ž¾òÂFv¾§Ÿ0;$^¥ºÃ{h÷Ö3áý4‹G‚l£ìY•…ãL÷¹²8Ïhe,ѾYåxrŸ÷\™62L{Öw™ÅÆÎ* ³mìYfyûzèÊe”¹Dé;f¾-lG}tÃy R^†&*I‘s387Ix‹…’®¦ â>ߢuáЇ(ï~½Ü|¦W)rŽœ«äÜby³¬”%ˆ—ÉyF+ÇUHo‘¤?·]”3kÔWßϦj!¸2C]aX¢p‹¢èOîÿ<åù)^‡)΄¼è‰‰¤œ”¾ëk,˜Öê]–’”•òÚˆÃEÖõÛ=®'É{û€óZ¶×ä¯ggTè2¥ùŽ)ìÜdO}zº•ppÉ—E9·˜6¬U¹Ô¢xÓ$|ç“t$y^÷PÆ:Ÿ¥5#L˾ò·‹³ëSà¾0¡/—P¦Úx°(çKyš¦$EÎÍàÜ4…!4”¡zžÙ8A1ÎÌ$iRn–‰Iž<½Ú|+𣔇ž¦L¡^†”%ÏS&½û™/Èö‚óê¤n3IšfwëÝZlï¨=ÃüO„ö²«L®þÒ ÎS¥èþ +žË¦äÞGe—ÁÙT†ÍñzŠÅ1«•3ÑE94ê4Ê´YµÇpÐCSa˜ñ¸fˆÒ¯ç)Ñi÷3ýœZ%è0ÝÏo;;£Û–)ó€Ï;S…’”•ß>íã‹9u©‹3(Ê¿K®˜e~;meöž¤ß׊r6÷ŠpEòôczC«ûÑ8Ðþ•œ¤]®PËŸŠ`‰ãZΗ\'›¦$EÎÍà\TaXO4w±í]ICaxŠÂæSÿ:7ŸÑÓ4í8Né/ã9<·RBêlî æ¿Y¯oë*7±2wŽ"(Ïk÷žùíµ–í…-Ü÷Ó­ÖÉy+íŸT²M„>i”òÙð³Ÿ]œ«NJ>Pߪ9·˜öx§_$ŽO{ëu ÝÞån9›žaS©œbqÌjåLtQÙYïçµsUz W‚bh* ¶0l=ÝK‘ æ)s²Í›¹ŸÒç]Q ÛéV xÖ¿l%©›v^r”ñ¨g>²FœA÷Ò×øÓ¢Û™¡àó5‘"œõ}"{^£§‰ä¾³lo`é{í0¥Í%×?Åp§†)‡úDæøp~œîwÏÄ!ºo£]¶ÉB–G)‰ú};E€Tï‡Ë‹´…²ÙÖ<%ôî …3)ÂhVŸ©‹ó&º½)dØ7x‡(²„èº×ÏV‘lʰK@«“s–W÷‹Û-Š0i°æ+âl*óì\¿©{~ÎQæcWšÕòÕÊ1áyåÌùÍzí2ÎWå1\ Š¡®0œpä»2Žž ŒµYaÌÊøò¨£¬!úíkã3÷™ïZYJ’™|Öv»ÊÚâq½/çªC={Ö×exð,Ãg©"œu#ì´G~=ÝŸQW߈[¸ýi†ʇ˜ƒ} ¾œ·2ÿ\¦û=¶õs¹ˆ .çDΗ²NÌhÄ{éUñMz}£÷¬|Î*5I;÷F0‘ç]¥O¸0íQ‡º6Ÿ™1ê¶L±û¬s¥ÍìT—éîoÓFÞ*Ö®KÎë›Cµ˜`u¼k)c„2¦ô…Ç3®Up…KW͹ÅNàPÂwɸÞ×âm†Ý}FéGæ{3Õ#ÎYi”"nf±þíR†ó¢êä¼v!P…8ûî°ëgU9/3ß3S”³© çaÞ£ÌéŒkMä•3X·*=†ƒ®ê}Ë…¸Ž"gœ£È +.G…nÌp=sß¾å0ÄôZ¦’¤§õÍ‹òÉ’7ŽÓÏT¥búŽÍ;ʘò,cÖ£>¡œGŒ{LxÜC¥qº=äyKugºäª§YíÚ¼(áPÎSŽz’~ÆÛ³sádÉœ2Ù~ì¯JhŠÞ³ê½gMS†Á´ –Wxæóû‹!cÚÈ_U(é(Û¡rgYN¸°JÃL+ÖyÝ:Ö¤$º¨?kÌ0Áç)}Rµ‰KWïz–¡°jÎSF}ô±j Ý묳ú‹^ßwÙ‡™Ûæi*ë\K +Ê»6k<‡EŠáÆ7ÊÍ¥ ?Í|ƒBÝœ[O’ÍXqŽnÃõ8³×kfþržn9ûŒÁ:æë·Q¸ëÆÆiϲôç·#)G{'ëFVç1dÅÐTô1v5¥œ£¼[y2†Å1ïÈ;•ÃWaÖƒ3X­’¤'×ZgŸ÷j”Ù±dXtPÕœ7;¸êpEìô,ãú„r6ëb¤Îòþ+ä)Æy²gÈR}9ÓlÉœ³"&Î2<ÝlÈ›»B8d²ýX÷ç*ÊJÓZ½£÷¬Îzjš2 ú­%rYÍÐ,<œS:7ŸYG‹„ûö;_kj•k WSúi°ËÛLËœtÏ2m<³)† +)J²ËW%g=,ÎV}Â[d¾"«G;ØÖfOõÊZcY×ZÒqºÃ óªqf+ÃG(K£|߃º8›}þEvz•æ×LY¸ž¤Õ!÷.ÊÙõ>Ù sÑûç"Ûí3íY–*GŸûN³ÝÏ'ëFVë1TÅÐT”b²3¹ï,ý M;ØÙ·çä÷¯bX¥’d¦m”ùd>IÖW†)ïÇÑäú£”¹9t}xÕœ‡™/7’î±{­Çõ¤D;–ÍyJË{Ú³|•¦sêk‹HÔSÆê¢;ïæKäíØ‡óÒcãþÀ’vg\¯ÿ~%ìsËœVΤG9× û½Ðë´FKúóv½û@ç\ðiN~ÿéŸoXHÒ[^ÿìqýï’ú=àXrý1ÏAÚ+dN8¦ß“W—«ÎCÚjò¾>à/ü:§ŒíÞ„Œé:æ×|Œ¶ÜæÂGy€t;¯ÉÉ«s>ƒp9ûgþ?œ¤ÿo}ñ=€ð§Éõ +™›X/´ã59y‹pþéyɆK>š…¯!}Ã… È— B8ëòá‚gù +_ÔÆSŽs!mP¤.krò†p¾À*íÿc1Èl‹Ûà7iÿ ‘=îC[wð)3„ó@Â4LÂOIÚ(]hØP—q›<òm…].ª$MÂóÚñGþEûÿHR{ +¤ {Ðîø“ÿ/'ÿoÜo :O zÎ +MT†€Ÿpp¾à9®ZaŸvì«0LjÇzÖ¥Ÿ0™˜&=®Ñóøp6ÛxΑ÷ ¤'+}Ryö‰õs/@ú„­ ýþUp¾Y;¾»÷5ÒB…ëÞCH+3ïeäÓ¿)#ϪoçÕð"îöÈ£ã¯^ÔÃYÇj/C,S! Âô“Ûë0‡0ÎÝ(À~:B^W9æÿ6üVKº¢ 7E1Ôå†U±ò ¤ýÿÕã^[`Wþ/xÆ’$¹æøÍ½×˜p?€)6¢sÖËZ“Sf7Ša?¡*ÅPÇÈVà/Bd»<ÑdÏí òõ7žõ á¬÷É‹™¹ìxÙcÍ%¤eB\†“× 2®/L9ɦƒ)„pVFYeĹÀ¯ü DiÿÖÈçƒ;´:¼`€wü$)_'o°ÖQNç„iðQ’Æ õ+¯B„€u~28>žœ~BB ò‚ à]È »Q+s€{>YÖ¾}Úqôže#*Ã~ðÉçÊã{Ÿ9Ï„ŒOz?VeèÆ±o Êöûwæ"¤¿Þ ás Ü +DUœuÅâ d+kÇ.cܤ'ú,åL/ïúŒ +é«§!ãï›þñDv{2#í…%Ö@úÁÈx>éLÊ<šäÕQ–’ÔϨJ1ÔqÒÛGçÿD¹ûw2¾‡ÈäwCÆ-UÆ^ȸú‹€úU mr… ßA8›2ñˆ ŸqöìcÞëð‹RÖ±`üïröéÈã|GRö-CãeíÜ;ù~.¹ŸƒX•y"ËýO¤u«ß@æ³—´¼YX0þ÷å<00-¦“Úq–ò²mwO’\ØiD×äýÚBÈmÈ÷Ô<éï¿ÏA^M“È· OjÇexÏ”Ð2 à?2Ê ñžmHŽó¼ges6ñ!ìQfž"çtÌyæ á\Tx~20™ï‰Â…$O~€]ïÈ{ð›|”ð<™ü#Üœ»õžõ Ž¡Í9Ï{Âù¤ýîDz"ýò®½Ü÷¤ ÷B roiytï@z,ú²<Ȇ;RZg}iƒËȶ »¢~LE9+\Qÿý +ˆ1Õ4vÕµ³‚¯Òeè|2¼‚ö¸Œäx"œ>EµjÎ!}צh‡Ôõ—þ;Ä0ÿ Òmd^x"p^6/6¹[eøKRà:¿ðG]\_—ǰŸ`S’òú c¬)×eaD®x¢¤o€<³ †Ç; ÊÎUI¾!ã¸Ë‚¤^“¤ H¿k×Âïý +U û ÆÿUr~þ}ÆË™É'ªÄ…ãg}Í[kÃ/ cÿ­IY!ýØ'"ç2€¿†ŒËJ8†üh ¸dˆÎAæ¢,>ß@dðÝðŸö%åfH~ð·Ù;$*ÌÇ99PÐ#|”¤!Èdæã V8†lJá<ü4$u°MŽÑ{V'é ¸ÛÝWv!TV¨j]å¯ +¢m²:ŸœË[ùÒJ£ŽῇP|]e‘PÒ~AUk €Ž¡3‚ä7þ€ÿÀÿ ±L?òÌ>üÄ«°1§n°mã‚ Up~ 2‰îF§§JÇÛZ>[ø¬ÂZ¾ÝÈîŒ|Y‚_ÕkI¿„_èöÇ9çy÷îCçœu„Ç´Ç}€ê9_αñsˆþW÷¨ÿ4©Ç3HÏ« F{/„³>Gú´]¿ÂìóUy û Æÿ.ï™ÏòB£yáMÈøü·%éu´=Å« cÎÕ¥?†ÌéeÍ…—!ïÐ/!Š©9Ï—¥$ êâ¼b*‚)”Îíâ¢×dáHÿú)€Cørœ/“kŠâÊ¿ùþºÆúÎ?F>ŸË%×¾¼ÿ~ûñü îçÂy ¡O°>JÒµ{!ëmaÈ\ÓúD±| 28æáÇ«Í]¥ê&tN +ߢíeyÙ½gnt« ¿{¸Ý]ðS†¯‚}=Oex29®R~òÌö ýì¾€ôW[[˜ø"|lƒ¼/WBŒWï!;B$ 1”ÔPÎ{!mòaò7k)̃ç3èœX^ôÛ÷“2~•QÆÈx¸ùkr«àü ø×~ ?!áw"ß{æ«k-©k¿“ Èßp +¹ç'ÿ¤#|V!…(ø®þú=Ä ÊxÈ8ÿÄ ë»öpÁø?®%ÍF(翇wCÆKhnB”¿„|ðž¤LßÏ.ÿWÁùwÎU!t_0þwqŽÊp6V’b¸ ¯qäk¡½_Ò“åï†äØGN +ÁZˆñöæ¤N7huûRç3ùámˆ‚p ÚóGYJRÈrÛ^ nÅðH—2âÞ™só>s9„ôò=)R!œu9õJdGñö;tÇ¡Ë jžwqÞy¯>„´MÈgt»Á$úã.ˆCànØ#ÕC8$®È8nŠ’9.¢2CIMåü=€ÿñlÐÊY€ÿ:éËþo’Ö£½lè ¾ŸmC\KšF·œްO£ùâ_ò³8Û9 _eø#øÖ„©gFæ•…*<†+I1Ô…ëUµÝ昩¾u5Äðñiòwº_Óß‚o…(”7@Þ±cHƒ JçWp;»vkÇe)Iý x¸êP…b˜‡Ç †µ±Ý“¾àŠpz é>¹ÅçåÎæÛ›á÷Õ‚~ävüyV¦¾œ•qmÚ»¿1ìU±|g=DÙ¿é1ùzØ “Úqç„kwóAÅ‚ñôže£)œ›(<7Ñ{Ö-çË(g‡Ün-Ù½XWÙkDΑ³‰Çu:¾Fþ§l}à™Š*<†+I14†›Ð©œ½QNA”…[Q܈×Jʺ5I7@”ý Šäç(6†ë_j*KIúÂø/Ú_TÚ¶Ñá:#Ïn…(¾€ºÌ=–n@Ú >©ïC:â! ú5eqÎÃeˆ÷)D‡¹ +¢Ðÿ(#ÿP’_áí‚÷U˜ÔŽó8_†ÔSmÆ:Ùå½{a¤¿z“·Q®/ç/Žø™LÒkcÀ‡wòs3òCúø-w!kcvÛøÊy ¡š¨$ùr…tæë“òþ­„zù`íÏ}ä}¼ÜÑ“”F…ç&nÄ9."g7šÞÄðÙ2Ã*±å+†¦Âp Ò†˜çÑVàŽ!|¯@”þ›’rî@§ìs ípþ"ÞÇQ¤Û¹,%é;gµ±èµh>&µ|çÑiY£_´œ7¡Î×f}¶¶*Åп†,¹#ùÿ.dnFzÌt}'EÃ÷Ñæœ÷)í~Ä]hëŠà7ÎøpžË8· +mãœÂW²ß‡Íyy-d~YQö}ö¹{ᨑtTãð”GþO´ü/zÞã3æã°ãú­ד~m0Ìô;°½"Îý”úó4Ó8@r|…s´vÖlj™¸Œ1%rÞh”½%'ÿ(ÉãIÞy’›JäÙ"ù¬V—=®™Õò¿p/]Þ8àÈ÷†–o‰äºùêiF»Ï2¥]lùÖ2 —Üb¦GkOÓ¯ýZɵg)sÓíø­¦ŒmzÿT\óæ*½ Î’*Èy)y~YÏuIË{œé¾8k¹fJ;?o9?ap½ÇøÆQïý5pÎKC dzïÕ-ça’ç´ë]ï´«ºÅx@71ý><p­/çÛã5Iždû]T˜µ\7¥Ÿ·œŸ0xƒ2^똪€ó@%} €ÍÃ0ˆ˜ÔŽ‹xU²ðšv|7ª·{iÏË +u£v\&ç~Ƥvì»®Òví  ÊPRò³¤ú[È97åg)¼ÆP¡_6ÜiAÚÏýÎùÒK¢î„ôÅe&êä<7ýÒÎ+)4<4|ö´=Ck ž¡ûÑý²½qH}õðë Þß,të1TPÞ3ž@ûs¾« r‚oôÅÒ!î¯#ûk)Ojǡ޳—^Î÷ò×ko…Ìÿ{’:þ9€wî©ð$zâF¤Ç·+ m‘õmBzwý¶^Xç¼ +Ù÷¯ÑÞÑ>^v(ù+Ú±úÚ‚ uq΃)«|„ö"&!u4û”|cC·œ¿GÚ#}'ÄÛݯhA8ªñú[¤¿áΗ‘î××B¢‹V¡\l3êò):ÃÿËàœ‡™6¦é˜µäŸÒÎÏ[ÎOd”EÚ—¨•Íy ’ùC%IM´o0ÌÂíÛÏR”<ëý¬V÷*8Óú|:§ìº`1ÃC]ÊðJQB½g-Ú… ßëA‰É¼—™/¼×±ùLUi'Ó›°)äµñ pž6x-³xˆyÝœÍ9EÕÿy†L¡WRhxQ¡¹±Y·ð©k¯<†YŠá J_p=¯e>ÞÏÞ+†`§ly€"kͳÜ‹¤uL¿ƒu*Iz{Ùd…y¦´‹ù%k^>N·lÓKÅÐL;k” ®3JÆR}qÓýú(óǪ8›B_Þuôk݉·ÌüH§²9Ð p„ÒîJöÒÎÍkׯMÊ5#·–i‡«äÜ÷Éöcˆ’´…ÊRRFQoé:Ú;Àœ2ëò$µØii/#úa3³•ésåÏÔÄÙLSŽº†â]† ªu*Ã+Aaýg­ä½O3ì½^G™|õºÀ|á­ŸÖúö© Š 3O;fr8 çiãËA4t¼ïç ÚÇ®eÊ×Dî¡}<Ôv^)¡á`1á”QOÓøš‡ÓÆÿy÷ëµÇ0O1ÈNèk™g]œ×Ó¾¯ƒ/Î1ÛiU'ç¾MY'B•¤<ÅðÝäëŠáŠWôYf¯^dþl½ò$Ñ®ÐL®Í°Ç(Ó&\>J™äôÉõƒsÎ3ôøNÊëi3$݆ž^*î0€qó™²9Ï2K”qÍgÇÝAâ¬'3j1àÚ~ἕé C1(í¼’BÃC•á)-ßbòÿpÆùyãÚìÜL0ë>ýê1dÅÌVªÚÔ2+é“ +ý $eõÅùašÒžÓl;g|å¦~U AqÝ^à>C93kÌ®[1egÄóYÖ³ý(E_ѱ̰eµupžHêé;†ÍSú¾mIZ¯8÷eÊ:QÔ“´“ö]s‹à ý<½ô$­fözésùU¶7z–¢HÚi²Ó®s[b{²7'£ª9Û–z,RË¢!Kkiß´%k©G?(ì0€qó™29ϲG(;Gû~fhÐ8ëi-Ó +ÀÉæ¬\ßeMƒØÎ+%4 S†§,u_¦Ì=ϳsIÙ£toh«O¯•ᕬªö6†EÖ³à8;Çú~T’ʾ÷ (†+3(ïyoRô‡nöœÊJC”ùËÔÕঢ়’ep¦4Ÿ¢ŒÛ³I:Dÿïw\Ûœû.¹NU’†)Lž4 ïÒs¸~ñ$ÝÃî×Äb§€dÖg-åX6®«š³)h–±ŽT%ŸÍûMT…¡H(i©ŸÖú¦G)}èaÊ;úmáAä Ê2œw™~g—éçÎ)Jã4%Üx†+«WBh8è¯ ¯evtbÔ(f=úAn²’t„ҧ˾ŸÚäØ4€õ»’ÔMê%©‰œU²%¤Œ_>QÅyiŒÒ§O²Ÿ°7;ß7‘sߤ¼ Ý(ICl.+ÄŸlïN:Ͱµ/ýàUÑÓ0¥3g­swáíKvùv1=!ÕÉYyJ^eù•laöçû]$…Œ›ÏDÎÝ•;e”y”ÙÀ­Î+±=4\q÷U†×QÆe› ˜…eŠâ±‹~T†›¬$}@1Bvû®Sú‰Í¸•¤È¹ê´‘îÍì^¦Œ1>ÙCãØ£O¹m¬_f¹Ÿ¸Žœ(åe(Ó“4Liè -l„~óªØêw%Äð ¦CU^¥tά æaÊw/;£(tå¿nÎ-ú­[/šÖ±3ò#*ÃýJZVêç5†‘³=m£DLSúk8¯ôvÔÐp°˜2¼1©×«”yù8%äÿ“¤¬g)ʤÍx;Êp“•¤³”vÝéY¿aŠ,:Mû×§ÈþPš¨$5‘3’ûßË|cåRò|f)ãÖ¡äø0ý"°²þ½4"ç>J>™š¨$ÕÁy­å!DÎýÖÎ`3ÕÞM %œ#çÈyåpÖST†;•¤´Âpˆbš¥¼+ƒ¦04QIj"g•†)2`7K¶L,Q¢T}÷‘ó +N¾›¨$ÕÁY n¡'2ç~kg°¹ÂsCI#çÈ9r^9œõ•a7¢’ä‡~W"çfpÖÓZJ„Öaú/ÛR8KYÂ{;{÷ ÍȹÓ„'F¼ à&í·o<à_| )ˆQ¯¸Cûí€ÝþµâûÖÁyÀÝnp=€U®J’Ž•Ä9ëÞ½hgðºqoøÀ#~]òý†<à ¤Ûù<€»ü¬äû¹ð €g ýNÇû^€<ƒË]”?`O’®5Î} +àN¿í¢ü"ˆœÛˆœ‹#rN£WœZz=κé¸à+ÈÜvò¬V¸Àu®É¹ÏÛ9ñË.ë[&†!så7”TæEoxÀoJ*³*¬…Ì·Bä—+®ýò~¼•üý¡ôÚUƒÈ¹œu Aƨë¬A[~¼ +ò¾^pÀ€Ï|S{ ËG9WŽÐL%©nÎ#¾÷!-À­dÎýÐÎ +Mž7BÚ|ƒåÜ)ïøÂÿw9e AÐIÈ$}3:'éK¡ò t÷<»AäœFä9Û0(œuDe8*IMS"çfpŽˆ(¡…&*IUs^Ởÿ•ʹÛh®ðÜDïYäœÈ9r4Î6De8*IŠ€f*Ier^ F&!¡ÿ¶2WçAig ÙÂs½g‘s9ˆœûM䜅¨ GDDDD4Ý€f*IÝr^<šÄyÛY¡éÂs½g‘s䜇Èyp8GDDDDDDhèÖ ÐD%)r.ýÎYGÓ…ç&zÏ"çÈ9r^9œ#"""""² :š¨$EÎÍà¬# +Ï…* :š¨$EÎÍàQÖC¢oo„|2üZˆœ}5d¹íˆ¼}*IŸ8Ù§km@39ׂª u ‰ +Cä¼r9o„,½½î=¸\¸àcȆÞoø¾”šU‡&r®Ñ±ò•$ šÂ9àpÞÙxû¦’˽àȧ¼û-·‰œ{†hˆˆˆˆˆˆˆXéˆÊ°?¢’Ô¿ +Cä\ú‘ó&H}nÎ826}ùêÖyȾZ ãÙU¥¸k ÏëúŒr.B6ßÞ‹ÞoMäÜsD@DDDDDDÄJDT†»GT’úCaˆœ;±’8·< ù¶¹©öÈײÞð‹ÀrW¸ 2Þb9ÿyrîWå–&rîD@DD„šâ=Ó9GΑó`rŽÊpQIÊG?+ ‘s+‘ó„“ùyo¸\Ò}pdœ×ñ€•pº4s_!""± 2hm@[x¾éÁåDÐú"IŸB„çß×ZÓîÐ$ï™Bä\ ‘sä܈ʰ *IÝݧ_†È¹•Êy „ÓÕÚog ïõO+ºç8düºÓøýMw£œçëB9÷ª4¬tƒ MQ u4¥7A‰n„çKæ BÙ[èß6o’÷L!r.‘s¡ œ£2ܮϓˆJRèµÂ9 V2çíÉ}®Ô~{ÀÔ#Þ1æê÷ÿÀ¨Î¸ÛDÎ}‰² Mð0˜h’b¨Ð”vnA„¿½£N™¸`_Rv¯…g…&yÏ"çNDΑó qŽÊpT’ªDT’‘s¹Øà=´ –—<àÇÜË…1Ès¾Qûí=ï²ßë&rî_,#m'y„åc‘ä³$ÇJªgY©Eòv’ŸUÀy‰äË}ȹií¼ÅÁu™ä'$_$y/É­$7’×Òf’;H>NòÉÓe-‘|šäP¹¶H>•ð2qšäóÉó-w5É]$?ÈàþÉM‘sä9GÎÓ’g-§*¼ç8eL7ñåÙWÉw;e¾ÔqäHMÏûvËý? 9\Ñý¶1Ý—IÞ_W=Qæ|ﲚöŽœW>çÍL¿G‹”w«n¾* ³s\#r^Ù©Û6‘<Ìl,’œ¥(JR&åí$'( ?Eršä ÉãŽr–(M/•$•š¤6±‡)Æ›ð¤V1”4rŽœ«å¬ y‡™oÑóg¶ Ÿ9oa{¼óÆÖ±m”>ààPg_ex˜¢\‰Ps¥-Ól÷~P†{‘z¥$µ(NsÞ&Å™ð”¥&ÜleE%)rMcL÷×#¬Gž/’¶mb,n:çI!™›èIjšbØÄvÞÊtôÁ"É5qÕÓ(;£L2†’FΑsUœGÙ¹'Éœ{Ìù]F€~ä¼…ãëDÎ=f-Ï(k\ªš³2Üb[_dyFýYÛÚ=z U+I*Ü߆7(΄"÷¾=©»‰¬eu*Iãô“ÁƘ=éiÄó9­Nò©úôJ1¬Zit•_ç­Œ%’k+æÔmÒë»ÌbïU9LòÍØDORÓÃ&¶óf’ç´{,R uóUÉæEzµÄò›J9GζdSþ]Ê|ÞuY‚M?q¶´}êbã|ÙJ^Uœ}•á-LÏceô(Û²¼è1T¡$­fg¸¿Â',ÇÐ3ÄìÈ‚Óì4®éõ­BIÒϹŒ“ÓZ¾YG¾ ƒSV¾q#ŸÎ«jÎfÚÌê"P×S –!†ß"œ×1=& ‚wy„iùøåÈye%ŸLy†­%å3¶{‘äQÊ]öf +uyUš¤ú´s/8WÙΫIÎke/³w›-ê©ÅÎ¥÷–TvÓBI#çÈÙ–Š*ÿ®ëOSž~弃KÊB”rçÃtÊäª ßcÔu‘Åwˆ·)ÿ.…!z «Q’Zìt œfûËCÓ”¯+™ÇG)óì4Űƒä~v”‰ªV’¦µsGå<¯åûÀ‘o“Á'kÌÛjäÓßµºC½ÍË2ôŒ$õÖëá?»åü¬ví"»‹h¨8Vÿ[¦ÿY6ç)ú?[ìÎXÔ çJy\†ìŒ³0Ër'¯*½*MT ›è1£"óšMù?Ä|aT¯oôú%…acò\Ô'ƒw÷T8BÿwúÚ7!>DQøUf–ÑgZ»¦l%I7dcv¿›Õò¹žûjƒc–Ü£¿;'kæ¬§í´£èR%ªÕÖgŽæ\[”s‹iãå³êm¶‹ï¼~o`~30ýnøÎerVÆ-×Ò3=)Ã]Ýœ.åeÈò0L±3Dêʤ÷tò×4”íE¯Ê«Ò4ÅÐÕÎýªhç{™F? +W¦Qæ3ß{Âå=»‡ò¾Î$ÇYeÜ®ås}‘b–o&‡ŸžO­oŒ›ÏÔǹê}=\å÷‚³M™;ÍâÆéP#@/8—¥ü»8»ŒepîF~ܸÈüf0ò¸š}¿WÃqЬµ•ŽW›’ç4xïiãYW¡$íÒ8ºpœùŸf6#EL|¶Gq,£Œ*•$óë6ï÷°qÿ<ÇnÍR’ôè˃5s6SÖÞ ÊäÛ?·1{ïˆW™?ålFSoLƒfÞ8hŽýEb}ÙMž‘¤lÎÏåäE?m䯓óÀ¥Î¦äN¦;Õ‹ÌײÓ^¦rY¶W¥iŠ¡«û)•ÙΦ`v˜ý«šƒèSË™ÑÊ0½gº 9ë(ã)Ï|F³ÚÉ EÔ5½¾qó™j8«=Ngù›šn¦(¥‡ûŒ³9¾»”ußdSˆ]xÝœÍ5Óex3L΋te»åÜ2} wɽP Ç™½dH;Ÿ£¼¡ònκ¡jºç"Ê¿J6…Ø7”^¥!£Œ]=àâ<弚Òôý=Šp¸”ubF#®{Žh¿‡n§ üE-B>õ-êUišbèjçºÓúäÙÍÔ·H;1-ù( z¿0ácMµ…+œcþr†v·–*Ï{æ;¡éϹ§^ß,ï‰Þ?±œŸÖÎ×µù̽€^¯©€ûŽ%¼”²³H™x|ß«º8g…Îβ˜qv(©»MÙ²µm¯Ûù~J[OQÆë"Öý%ÚeŠ"˜l¤{iL/9k<·SÞù¢œ7QæþÍl‡aWɹˆ2<Ìô{lb‰ù +¼ih1ñý„èº<†úÒÅ,ä9 +|<ê>NŸ:”¤ º*øôIf=êS¥’4ÊôØzšò>ogçRÛ û‚饤˔9}‚é¾Gºeœ^(†êyØöËÊ?eÉ;ÍbήPÎ#Æ}'ï×ò¯RF€YíÚ<¹·lÎE"ÇC8«9ÕŸC8d²ý˜åaÐ'âP¯…Júd8Q"‘n½*MT ûÁKºš;±ºÖ¡wÛÎÓÚµ‹Ì_˜åÒá˜l»›˜g¾0ª‡ßûÔ[¿^1×>lɳŨsÞ¤‡ÛÍfÔ묖ÇÖ÷êÞ|&Ë«@vÿ>ûNÚý°®r™ò^ùw±stH9u·óÖ ÞoÐÿ½ÚÎζ^¦,‡«2Lº›ÐpsYÅÙ·mœÏÒß@V”seØ µ!OpŸ-¡ °eظ³pÂQ†éÎÂŒG}êP’|#Î:ʸ߳ Ÿ³Ï”­$=Ì|äEµ˜Ï/oùÃIæ‰Ur6S‹bdµmàwÎqÝíü>aXøΛ{†,_*Cù×ëaŽß!F}L­‘så_¥Mœ×2­Lä<Éöc–‡aFû}¼à ×ieø(oC”?Eé®Íi­ìP¯Š~mCW;û¶ãNÊÀZ$òE_WªÜ‰U¿Ÿðìò")¸„RÓ{•…<Éô¸Œ$®ûgyÏtïÑ vN +ïjç]!•zÛê0YSÆù¬I¸®5†>ﳫZÌÞ\Há$ý†ûe]å9º×²od:"LÇa†mNZçMt{u2¿¶ç”‘µSx¯8¯¦»o~Æü±Êq=é·Fº(ç"CW(¼‚kÜ÷¸ž´oŽf{ǪV†'<ëKG;]i˜õ¨X’ä±ðªãú1ºßeßþ]µ’ô¢£Ž¾›Sêi³§é V—b¸•öqL^ódßÍ´ËÜÊP";‡pžÒòž¸‡ù>v£ü«dsRL{^«ËHóqž0êÖòïâ<¥W²¯z·t9-„ó@&ó—‡A½|Y!÷S<oÐmUSkO?säQ¡ñ¶Áé3Ú—tãUišbØ'风Ëôß lofB•“'€mç ã~>ë}°ä¸þQÏ2|ž¿îÁ;â‘ô÷ž™ýq†ív0=>aÎCLºÇÙö|mdÚ‚ïRêZcè#HºBÙ}ßç)ºôÓºÊyÇ5Ó–ü'Yl/º8››ÁÙàZÞböë,ø,«‹³7|Úq½ZéÂ’gýC9Q†‡<ø’2ßd•1áYƬG}Àê•a_o¸¹×ŠžòvÔWðõ†×¡$eyvõ²òúØtNŸÑ_¶©CIRËNŽSæä¢{7­gg×ú/ªšó8³—·bø>.S´ágé/?‡p~\Ëë+·é¯_•¡ü«¤+ÄŸÐßcÊ8UpÛû]”¡üÛ8ëÁõÉoJU{_¨~Ây Ó"IWjÿ¿¢_ŸüýxÀKnp€l¶äÓ¯¿.ãü:ÇÜ`UòÛ)’ã ÞNî©ã÷Éï +»3Ê7q3€«µÿ_ó¸fƒGž žÓqCÎùßxOûg¹“Ènç,ŒøÀ-ÆïWx À›Z9׿š”q“qîc×ðCN=жóÚñ§¾ÌÉ?äYîÏ…âuíø&ÈóÌävü¡#ߘÓþß à €ÓžÓ~?àûþàIíÿë|`òn_¥{ÀQÎÚï=æ“=‹³Ž¬±H‡ë]4ûs|Æ9ÔÃYÇo<y/ºÁ›H¿›¾˜CõœÇ?žÀŽs7¸Æ£Œ»=òÌ¡žvÞí‘ÇUßÛ~_mX÷sS˜Cgó½ôéŸyó‡ÂEÏ|.\òÌwL;Îëƒ×kÇg|ïQþçIÞ<¸ú̧ðãó‘GøB;^““÷ZíxÁ³|x"ó\°œûÒ¿¾É)ãÿØ ;÷ òÎeÏú|¥¯ÉÉ[”ó¿øïþ Iàÿ¿Ž&.¢sL»ùÏM¡jÎWBÆ _@t¿D¾gâ§wì¤ÛüjtʶYá¬Ë€!cÎ÷Žï'p­ _BÞ‹9Èsõ_€Î÷Ã%ëå ˆðDü÷Àk³ 8¿Ñ+îJþ>™ü}&ù»;ùÂy aîÒŽ?ðµg9¦¤mPu•åܤc^ Ô¼˜à¿@m5‰=à)ãú}Úñ ¡/MT ‹´óspvwÂm€¸Írþ<ä…ü3¿ñ¨ƒÂ>íØ·õÁÝGxþ~“Ô±‚çtØŒj&>Dz0ÌÉ?‚´=—“ÿnˆ‚¯pÒ‚ÁHû +Ø?(„ +«ÐÙöÂ=±ý€´ÐŸg8 å ø¿Ïu¡Î:†LC„ó^.…à¼å·G }yk`êàìcäÜÊs:®ÎÏR[ßÎSÞ÷³ñ}n×çg æ\Dü .EöK¾ K]¸„¶€kÃïïü8?gP’ÿé£@êöD¦Ûåð“2<ƒç JןCž‹/êR’ÊÄè”Goð°çõUsþ Úýò<¤7ø™çõ6|Q4¯GÛvÒþ>(ªÚ U.|1r”¥ü+| à/Ö·Œÿ}çÂPÎðÏ(OùWøÀß m(»Ò§Tø D~Q£ _Î[€‚¯‡ave>KRƒ€mx¢t\€(l?JŽ×ðKÈÀ¬&¡ÇlÔ®ŸC¸W¥iŠ¡™Ç‡ó0ÒFƒ,øF (¼¿ˆ skçÕH{_}ûöKyö9ν´ d÷ðóš~´`›çuõž}™øç,羂¼'¿Ì)ÃÄÝ66'LeÜûG2B¼gE=†ymdÖÃÄÇ×ç•‘•¯ +Î +» ÜŸDz ¿é×7;®ýgÈXü…ñûu÷k?üŒ‘ +Us¶,lp ¦¾Bkžá¢}Û§..!Í÷¹ùx 0ÎE½¤Ï圿·ÂüòÝ3ð›€z”á#[Á¿™¿óÆïG s– § ïûwžõ©KID‘ù1DÀÿ{Hd@¨Gü·yó¯“2Š(˜ ÆÿU*Ie`-ÒÑ?z›í…DãæaÁø¿ +Ρí€ú1ŠG;˜øÀÿ„ôëàõ°`üïâ¬`¯ÌÌ5x8å87(œ/AÆF½?]@öœéâ<Ð y†…ä¯9iN!ÈŠ•"f^3Šö`ôd²Ú’ÜW…¸í‡L@&Uu¬êah¢bXÄ“t5ìF®çm$Ÿ„„eëmç¢JÒ H/±0ñdBÊÂeHŸÎšì”`æ+TéÂs^8yïÙo!–á aP»!Æ•ë®üÂÿï ÷]IywB&Ìy–â=+ê1ÌS÷Ò‡9ØÇ@§ ýÅUs^à$zÈ^æ ïÓÿF¾‡àg~ø:ßï»!cÜ=õªçü9ü”Ù9ǹÐ;ÏpѾícœrÍ{sž÷©‚sQeøßý¾^‚DåyÕA6§óqì÷žõ©KþÈØý +¤Ýæ cÛøyÔ”ÇñHôÖDVy,)#$JoÁø?*IiôgÝû";ª1rŠ9gªàüÄ(ã+'…âgH’¢pqö5 ö;Ì÷×e„ÎÇ ç{!ÑrÛ!²’³C8$t@ž’¤&ÃŒçö ­Ð^‚º6kô8Ú³ü›!ƒÑEÈÀ3 Q¾ô0ä»!“Ñe´-ôæº:¼gƒ¬vã1̃ëÅ2Á˜÷Û4Þ@g¿r¡h;Ÿ‡ÿs½ †ž€dNADŸ¨ˆ_B•÷‘?„ôùÿô¬ žóBs‹zÏà×µr?ðst?ð}Ê +DC&ò:ÖUšËL¼Y{™ÕO²¼  }ÅwùDÕœ/¢óù +Âá/ íï‹Ë±n Ä0ª÷ñ«PͺʢaÒ®h@ÚÉ•çä Åߢš0é¢}û ¸yÞð_#ßpõ!üDZÎ:B•ῃôç9Èx½áq3ü„ý ÆÏ‡ sÍ)HÝ_ƒ¼;!a¹ ÆÿU*ÿ†xÂÿ"Iÿ¥œ +ïø«äú¿„¬1ïVùŠJR½æ<Š´üò +€_!½t÷f;sÊ$Îe!„³>öúìÓ¯ÐÇ¥¼vÎ/@dêW 2‘ÒéžHþ†pHè€<ƒ. ?fœû€ÿ±®ð¿,×í tzÈ•B£î}ìëÕš}¿Æ8âah¢bXÔ3ìþ2—sþ— lv£SYº Âãqûaí¬Ÿ÷ ÷ÖqÀ?ø¯ÿZÈž?‚¿bü%Dº*©Ë•þd A]ë*û u­«ü+ˆgP_vó)¤¯þÇõ_BÞç×О,.@”ŽP…¡jÎ_£Åt2f]ü‹â; 1è©0âªÖUmçç™u +úÛœ2Bv˜ô·yÁwmeœéök”¡9oÚì(Oá·é¡Bçn•áw Jìøcˆ\Ét²ÔåO“2þ$D<¯ä!*Ãi ŠÂ‡AR’C;ªó"ÚQp?EZŽÛ ÿw´ß9—…Î ÚqÑ5äÃhèÍÕC÷-Z\·))«ôºçé ×õ¾ƒ8%÷@¢‘•¤t¯Î ]¨Èó0üD8Þy`o¡SIuy¸v ½F|±ïºI%Èdm¤¢$éç‹*†ÿ„ö&t¾kˆ”b8 ³ÿþ¡:êð$=wô%ä{Ø~ +YÞðä¥SmiÛ(. !œõå ݬ· m_ߣXû*èB|ÈF’½ZcXŒÿ¯…Ÿ^„óO’Tß@„¿î¢  Î{µ¿e†Vª1m¤Þݬ«,›óeÈÒ†}¥õ:È;õÄ àÒý„ßíeMRUFȳ\0þ¯ªoÿ+d)À}hG~| 1VùÜï{ˆÁr'd3×kÑ^¢ö&Â"„Œÿ]œ£2<¸¨[Iê Š’4„ô×A^Gzœ~ í¥C×Aƹ¬%$ƒÂ¹L„pÖåÔ+!‘¾âÄàüÒïÓHý4çúˆÜ~7ÒK=^‚(¼!²¨î8ÌÓ•ºáì‹1¤eàS(©ú²#ÂB8$®È8Îò0ì:W@&ÿ;àç©Þ‰önõ`ÿô—zÀk æDÈ07Taj­»¹QžÍÃÕ1š¨õ$ý3Ú»íÚî7¼+j'Ö× †…Û mð„ë" !í¬c…J3jÂ5°öÃÃ*Ðïë*«@•ë*«B7»4Õ¶óÏ“Ô ÞAw6TÉùktßÞÿ–¤2áâ•áÁE]JR?¡ß”¤!´ß›3h;èîFºOš{àü⤛Lþ߃l@¿qn¡Ý÷Š:ÔòÂÙ¶ÔÙw‡û}°GW]“œ[…l‡Å¤ ͈àU§ÛMˆ7ßç3©çmNÞ ç,l‚è›·@œÐ¶9ð ˆáê}ˆ~ê»ä2 “ڱφìó+ +YÊð/ÑV¯„<è‘ý¶õµÝoBOµm3™ÑVHtÌÛ’ß ûL’FÐþž£š¸`üï;‰®4ÅСF¿…´É›CÐDy÷ÝdÈ}'Ö‡à?!,ÿû®«´-+˜›2vïîwÄ5†‘³‰ÈypÂyÁqÝ ¡[exÑ­’4ˆ˜ÔŽ‹(IÝb€Gp"/,$é"€³>@ÚÉ2ûç÷iÇ“È;ŸÔŽ{ÁyiÎ—Ðæ|À"€O<ùSÈ_Zõ²÷ÍzîåÀ7ÃÑ«cé½Åò6–-ÊÙD ò¥¢£IyO@ Yðë!‘-oBÆÙ§Q|ü å<Ð ¾†Ÿ@Œ—ÐÞ…ÿä%Û`À' /‡Z¯6ÂÊÚLë{´×¥>iø_BBÿÀŸ@<ÆWB¬;W£Î₯W¥)Ša·ž¤ÿ€¬—þsÈúÊ¿Cø&C6ôËN¬»Ìx¹‹º„bSrÏrò™Ñ0.ëm½g‘óà"rv£‰œ£2Ü e¸,…AÇ0dÙéËÙô,&i"Ÿ¾ Q7f”z¿^(I@[IRN²;`7˜] ñ ®Ñ~{Ý’Hïs² +ö–{ÉyDfZ€›ó•½yBÛ™8 Y_ECýYÞê‘¿…ÎYŸƒ´¾ùø*Ø¿`´ éqã„ÿ#Hë{ ²gîB;røü¾–ÊÙÄdÜxù›|Ûp5d™„ÚW,ÔðS„óÀA7„(I?†t0}'ö!«ÝOäèÖ§ –›U÷AdS]Fº"ŸÞQ8à~„o°¦Ð %i3Dñ/ª$ÙŸšþÒ‘¥6or/8op8)g²Àõ×BôŒH{סê_Q¹²¡_Þ=ôqòÈò­ÿ„èVúØwBt#…„ŸŽ=%¼?Bçå>KnõH„9ø…Ö‡rVhxò\¯7Î]„´ûƒÏ¤–îƒ,'6甫 Æ”9H„Œ/Šp8è€PÃ/!»ãÞ + úm¥äbòÿ+Æùsø}Cöû$ÿ\òÿŽ4é{“º]„4¸Íc\ôÓ eEŒA–ýÁùÒ–çy‡ |ŠO8:BÃ~ò$ x +2ùÎC¾M¾#97àÕä÷.]!ig}PÈžÕຠ+þŸ0ë·÷ÎB %u#rŽœ ýƹ )GuÆÏÎe*÷CæÝˆ x7ìkI•b¸"Ã…|'ºhèp/•á^¡%ÉÄ(DæRQ§«ÜÙ;p=$št~ÚÞu+ICk6ÅÿLRöGÆnˆø%¤eŒ3po|š··T/8 +»!ðcˆ7|Dn›„(ÇABÂMñ*Èó˜°Ö³@1οFz¬{(+£å‘VÒ@ç>\¯¡½à1¤5ï!½oË mô¹ "kga-Òã®ësÉ:B9•1‡ôÆà€ôÓG òï_B6^í½|~‰LÿkÈ×Z&Ñù™ö›!}g+òQ”óà¤J»ØÆ¢ö{/R‹äÉÃ$—µz&ù2ɵŽkïÕò–sŸ{´¼g»¬óÉC Çi’O‘\ÝŽ§´òNääí—vn‘œÍx&ÛI·üþ Éa†·óV£œaGÞVò\HòžÃ:­^æä}ZËûnNÞ–ÁyGÅ<¦H¤¼SÝôe3Õ8<Õgœ«J‘sýœ‡)cãË”qæœq”þý0ÝóÏ q^KsÞ%y’XLêø"ÉÛIÕÌI…¼¹Í–¶÷,Šùä„Þ_—1é÷ 7÷ÞR྽L³ZÝóæ)=Ю;pÝNv¾¯ +§)óøÃ”9J¥§(ïóbÆu‡IŽ{Þ­qí® +9Ó.g.“ÜO‘C󞕹œûè²÷ösþÀÂYÉΣe´(ïïK9‹~e·ó£ÚuKì~9hÔe)y&¯q˵ÃÉï*¹Æ¤ýZygsòvÃy”2ÿ2Eæ-:ïlÉ(óÞœëºá^?x}g½OÒ>yò°OjQŒú:N3»ïtËy ’ù t˜†±¤QêJE­.!†PÅÐLëi÷œtƒ.T†(†½ð ¿AtËLÁçóÃÛL TÓ9yõÉïé’Ÿ‡žFØ4OæäÕ#H?Áª[ïYHº2Q›;ÝXº‹xϺå<Ïr1xÿ•Ày*ðþ½à¼ŽÅ"¶Lœ (ƒÐ·7²S˜.‚Ť.¡óTÎ`¸2Ö¶(í¢°ß’gQ§Ùr6ÓÌrð­ÃþtÑ<ËjÃÇûmë’ÃfÚõeJÄK7e·˜Cϲ˜ƒ4„³rê}Âò“SÉsY¤èmUr˜dþàò0Œ³^!TÄâêií^‚eŠEöQÊ„²‰ép›ÍAàEãÞ:lƒrV*¢öÊ3|Žò’¯fqÀ!kgÝSp$'ïj¶=‚‹” ±Šg£?ƒxŠÅÚÙ|Nyƒ¤>z„åJúZ¼eúèB‰o?ë%aZ?T°œ:×êižåb:àÞ½â|˜íÈ+]ø[fv„–~¨Ÿ ‰*ª“ó³÷y—"„æ%k)–-üò,ý¢Èêæl[?»D}xµ?‚©X«r|¥n8‡(ÃúÒ0Ræš2BIW³3bd™Ùóm?z «Lu+IúšáÓÌîÇëiç—(}%«Žjy§3òôBIj%õéfŸ!ÚßeLÇD¯8?ÎjCלU¦bhÊ¡Eå£*Ó–’ëØDΑÌò< ú ñ.Ë]+«OEþ¬Q¿"ÓÇzf +3ì~ã³-ì4*øxxŠ(†½ð odzÀ?Ìðu·dç„îÛÎCL+7y÷1#ÿ_ïkkk{^ưQ—§ÃLu…’ŽQŒ3¦bTt²¬k¡Çx’ÖÊ9Ét$žtƒÔ²q.d\èg=ÍhåÌ;ò™¼¢ý¦—› ‘2 ^MCL¯ú2ó uq^G{ÔÂ~÷<ÝÎÎyŠ£HUœÁ0/©’%>ë‚gVšÖêµÆ¶Ÿ=†U¥^(I£#V–̶ƒÙ{9(|Æì%!;™Ý¯]I²­­×±ÌÎ¥•ƒÎ¹HªB1|Ú(3oì¬3­cz|ÏÚH0r^Éö£ËÃð¬v.oçõÔ2 ˆµ¼¨‡!T1ÜeÜ'oçö4Æ´zœn¥³ŰnÏð0Óë)g™ŽDðÁìΓ¤{‡N3_Õ½¤xÒºÀv1Ýf§™µ¡ ýËu¨+”tÚxVK,¾­Î5†®4¥•qÖ‘Oÿ"Åü€sžöäü®–/oÿŠ~àl†õ.±ûM’@1˜ëÄ—˜ýŽÖÉÙ¶ù‘+Ba3eÌ›f~˜´iZd¶1¢ oxˆ2<Ìr6!ÍJ;è`£Ç°û2»U¶Ó½™°Žy†mö»R”¤E9ÈvôÖg‡„i])œCRUœMa¿ð^ÇôžË ß-r dûÑåa0w/)™Yñ^uãaQ uÝ´–‘Ƙޤťàv£ÖåMîezî§ +¾›R£ ¾Ý´ó8ÓBAžñ¦ÅÎðÙ³,¶Ôc=ÓJ“ºä…u®fº?¼x_°žPÒi ·"Ʊ^¬1ÌJ¦`›õ~éŠVÈòŒ~ä|Q†m\h1­„øëæ¬G„®]÷á¢dz ±usÖǯÃÌö”n£=:B-ÈŠbQëg]BS™+EeXЂ³Jýª$™?³loþµ•i£Ïut¾QIŠœ»M¶ˆ´"€—•Ö³3Z¬LçfS9÷u²ý˜ça˜eµÙH¥n= ãôS ·iyްºŽ{»q[žnÃ^y†—™nŸqæ‡é‘ŽW†'Ißoáó&æšvýÚW)^âõL÷…EqÚF1e9î÷¨¯®X,³ØÆ?u„’Ž%ÏbÖà"\½Û|Æ–VuÉ2Æé“H(ß~ãlFØL[ò˜Š˜-O?r¥x»ªú´ç£¬Ç3ê šÙJ·©\Ú0Ïì“ë\?k«o?( *õ«2\%ß~V’Ôõ¶1y˜"ó„Œ×QIŠœËL#ìŒ;Êú¿øñ ;—ãúȦ‘󀧬.ƒ©„•‰ef Y©,ƒb¨{ŸËØXÈ•tϳíå(C1ì•gØ ßA7žbyí<Îεýy׌Òþ9¨¢X¦ß`c¾kÝ|±¡NGÆ|Àuý¸ÆPïsXÎo6î±=°ü~䬬N³ó=37- õ¦÷#çªS?r¾Ÿþ8Çð}nªð†Ge¸¨$Õ—¢’9W‘F)N>gYÏôÊ ®c™aËj#çNY'ò< ÓÆ\dû“I¾éAvz~‹LäeyÆ™¯*{¦.à™PYŠažáqJ¨¨ù›už¡jó½2=IfY>kÕºÒnq’~ß±fºmN²û&ëðž™›=ú†Ä÷ëCSI2…zÝPwšay¿rž2®U;·•é±'tÉC¿r®2õ+çÛFíåäzµL`+Û‘O‹ Wf«ÜX)*ÃmD%©Ú•¤È¹ê{[îMŠlQæR5•†(N8sÃæs¬ïK#MäÜwÉuÒåah±s=óIJ˜¶Ï·²ós[0|/ÛÃàR ×k¿×e-RÏH7F”­Öé=Ó_ø%ãÜZvF–¼Aée·³éEZ¤ÿ 3ÁbË`Î2ìó=ŒëËð&Ué=›`çR‰³ô{®ý¼ÆpˆiEæ4eœÛÈÎåB6=ìgÎ-v¶åAJ¸¬ëу̹ª4œŸ¥=Œ˜ÒÇmß@ïg•¢2ÜFT’Ê¿_?( ‘s38«dKH‘w·±{çE=ÉN|ÂÞì|ßDÎ}“ò2¸< Cìü)–ðÇ)J›ò&P^Þ‡i_}˜ááÜUx\Š¡ +S_*P×¢I…ù×~«B1¬Ã{¶–i/ÉIKž™äÜ2Û늫ò$™›-žfØò“uI?0ÊQX¦(Q3”¾ÒgÌHƒ¼/S„¤ª¼gSZyç(Ê¢ÏZëAXc˜·D…å÷¼A༙ùK½Þ¨Ï p.;EÎÕpÖ¹Ge¸¨$­L…!rngPÞ_ÛžSLêú2eŒñ‰Ô¢ÌãRœV¶ù|™"_öj¾h*ç¾Hyò< -¦×¢Á~†¸JC–b¸¢ÌM—tŸ´)¹çLòUŠa•Þ³uì|—hÖQ© íÿ*=IÛØùI¾¢{; ³ýí÷±‚e 1ýE +²XdL^ªÂ{¶…2膠ƒ´ÆðAf+Ä!ß$Î[Ø)ô+¨èœ•ƹ¬9WËY¥¨ w"*I+Oaˆœ›ÁÉýï¥ý½Ó±”<ŸYÊx(9>ÌίnÙpÅö‹œWHòÉäãaØÂðMÒNPv»­t†2Ã2RŠaUž¤ ­¼eú¿€uy’¶1-D-³œïƒyþúzrR·ª&£&zϺ弙s–íÇéÝ1¨œG)›p¡¼è?n*ç&öíA䬧¨ w"*I+Kaˆœ›ÁY¥aŠµÌ ¨—(ÅÐÍÖ#ç˜|3úzÆ)ñavZÈ)åÓ,n™¯ÓÃÐDŰ +OÒFŠ!aý#=êö$m·Üïù€úv›6±sOŒC¬~©I½g‘sä9¯ÎzŠÊ°QIòC¿+ ‘s38ëi-ÛºUÞÒ<g)‘Ö·³>™6r€ô$á‰Qo¸Iûí[ø—ŒkZ®Mò}ï{£Œ{¿àí·Kvø×.ÊÍÃvoX¥ýö„óÞWaSrÿ5Úoï¸Ý=OŠ´s™÷îE;À6o¸Jûí {ü¢¢{xÀ#®Ð~ÀÝ.Wt_xé~H_{À‡]Öe ò÷@ÆŸBúóo»(¿"ç6"ç∜Óèg…¤^O ³n:.ø +2·‡<«Uqø:×äÜçmÈœøe—õ-ùr€J*ó"d>zÀoJ*³*¬p€[!òËîì)| y?ÞJþÖ!ߕȹœu AÆ¨ë º’Y¯‚¼¯œ°àsßÔ^ÃòÑDΕ#ÄÈó:Ò + Å#~]R½†<™ÌuÅì‚ôßå”5@'!“ôÍ蜤/A„Ê'PŸ¡ÃDäœFä9Û0(œuDe8*IMS"çfpŽˆ(¡…¦yšª6­`5äù?d9÷!€}þ¿/Pö&§=®6Î}Ø~U Ü²ÐDïYäœÈ9r4Î6De8*IŠ€æyšª6­¶BŒ6Þ— ŠOƒN§ ‚”µÁù:7BO›®øîEuË:BÑDïYä\"çþC9g!*ÃG7 ™†&*†Mlg…]ÞfôG·¸à5H]rÙe¢‰Þ³È9rÎCä<8œ#""""""4tkPh¢‡¡‰ŠaÛYa+Dp¾ ù† >‚Я£X´H/ÑDïYä9GÎ+‡sDDDDDDãQ–@GÓ< MU ›ÖÎ:6A8oHÒµ¥Wjy¾…ϧ ÂóÇæ0m±Q…@GÓ< MU ›ÖÎõc‼‰­6+WÆ×Ñ;çb+©“J×AôÁ«Ð¹Ï›Â·hë‡ åÔŸ'©’ýЪ6DDDDDDDDDD 2¦Ü‡î"=û !ÊÒ“¾«éžãÉßSðSlÆ ¦g0xÑ¢Ý` +²Éö ;ËF òyò`ßD\Çdsõº6Pß ‰¿b”¸ÒÝ!Nâ9È>i¥í‘ !˜€ì t+€—üSë²" ¿ù"Ó/J.?€»K.³Ÿ°iDz7`^ùêÓ-°ox}²üõmˆ²{)É{G’ßÜcë $jöýäš¼/O *¶B¾¬uúo/°^aÄPu]À5 ýºìñ@a d ìv xŽA6¢]Ä¢ """""""¢÷‚’WC”~\.· "€Þlü~€wê¯àÄÛ§p ²Ió”PöÃMŠ>‡„ê®èžÊSÍËð8ï‚|ÑiD ûbd8¯å¹.9¯6”V_ËR¡ÜJÙÿB;wÄ(päy/¹O¯”äµózÈs\éé>y¾ ð{¾³ÎYv…ë F½› +^ +ÒÏÊŒpÙàt¿úHÿ¤?_ C™¤¯  ! """"""""z‡]ðrsCÝóOç^ô‡'ð)ˆÂe†ÞƒlêÛ‹(€Ä q:=ÌïA¾ZTÔS<Q VA”º»PŽQ¡_0é_ʘó€¿î¢¼õI7AžÛ3Éÿ.eu’ÿÈsþò)íßæÜk €G íþ +ÄàSW¸ü(„×mÚojí¶Rà®AÛ˜¡ã<Úë»ç ÆÝз¢NøyyUHLA¢‹²Âé?‡<¿¯ ïç¼iœÜ àK¨Ï¤¯ÝéÈsb¸º öö×qÒïõ±}bHÚá¡–dá+È’ˆŸåÜ«Ñ1Ș€ Wø‡×¥L¬C{à¿2!¨IPyNAÿcA¢®5œƒŒq¤7f½òŒoL~ÿ2™®ÔÐRÆ ýìz´ûÜ5»_ÖÞ¡êRF!›UÝ¢ýv*ù«+³— ÊTBl A|]á¹”üö €_÷¢Rl…(…·j¿ìE€ï‡( HÊýQr¼¢hdmèeÃyÈó2ë1Žz÷8ñ¨ªpÿÈLòÉã$ß%¹­êš†˜ÆhÔ©›´ŽäÓüÿÙ{û;«5_ð׳Ê¡„ +”¡„ˆ—â‡8ÄK¼”M¼Ä!^b‡8$CÙÄK¼Ä&6zÑA›F›Øä4±‰6:l/±‰MÒÄClâ!i*‡ØÄ&6±‰M<Ħrˆ‡²©*‡òP9T¿ùãYϬç]{½ŸûÝ»v<ûUûýXïú^Ïz¾9Ëj8Or/ɱ(Ë ÑÉWI^+QÈwÝ4FrÉ$_&ùÉÓ”þ¶”R‹+ÏXÝOÒK €uÓ=¢Áp'D +y"íþ"ù"Y»]%ü¿‹e^I¨¿dž©Ø‚IˆyâÑSßÄí¥EoBLî÷àöÔÜ®‡HöŸÈ{° TBþ&nÏú¨[ uq¢M¸¢ýÊŠ ˆ©ïßö4g½ÁdíYcþ®hžV¥½”/üoõd-­á*$}_7C´+wAL>C²_Âû¤?€™”‚Q—·Ç ZÔ'×JÅp2æ¿vï§ùû7!AÏ4 Úk诩}ïÈøøµû­‘¹wAÊq„ª; \ˆSÛ.O"i; +Ñ ?ã~ßrù,£AmA4‘€Œ£›vÄ"àÓi= +é§w@Æ£ú…¯‚¬ËÇK¤u'Dùʥ¡ãÞ†¬ƒŸCæÿ«Á{w@¬!Þ€ð£÷AxÏ6|=ý^‰|ŒCêþ~ˆÃJÏ™ã-íröbýÓq{'êáÛÇàÛðÌõ—!m¨§4üS ߺp2,n¹kÑùx*lŸdŸõŸ*ägd܆øÀå)ìcÛ kBY¼ é»çÂî%ï„ÔÁg¾ðSH,–wÑéðdnø5òÐ…D$Fë$£¨¦%†E'Ř.#ÉXAú],óJSƒ¢Áž7ux…"ÙLoÅ`qºy‹­iÙiÍöº¹¿H±‚)ú–y·IÑ2“b©>»ž2Û”¾¸“Ò»zÛD¯=Þë~“éÚ¿¦Kc}QÞgÂלweºD?—i?Y`RËoé{Fï·M9‹ÖÍjJÛϲZÌZ—ºY³®Î¯°\[¥“®žê´t¹äò^¿¬ùÆ(}µŽ¼îd'(óLÙ´6é,³<ÿ¿ƒXdÒŠÇÒZ¦óua™RO ¬“íÈ3…Öíº:ÀVÊDT7)ÌÈJ™ Ë&Çõ”ùKã€+ÓÊ\Ô Ì_#ôs{¿rØÕÁú‚e*Jº)<çê6Í ¥©{Ú2eOÞŸpu´×•çe=W:EéëZ_ýwÛ(óóH/PnS6©e„$á|CJû•á…º Ó+“Ö$;Ýs–ª­¦Œ©ö¡+Ü;‘g^dN»í(ƒ ‹”Nz˜2ا)|ŠÒ¦é5Y1)²b‰²ø #ö»XæA¢#¦Ž–]ëF*œŒÚ”öÚHYB­Wß¡ôXlˆJ;Î8ºDß¾ ¬ç¢ mdr^ÈÃ2¥ìdöú9ÊÎØGiB‘2æug‰wcF¡ÚÓ/ePVpp>ÈGÈÓ2†2-sªVjƒ²9z޲0Wa6Ç( ”f®|‰½1é–ùö =AÝì gÄæè%³óôÌäÊDÚb2àÎíô.V3Ûü2¥ï63Ò°Ú¥é(SMR˜®ÐÜy™ÂDL @³(¦q>Âú¥÷“ì\ÂÀO?4ÒÉ“B®môóö,“&«a°¡YÊXP¡íz ™ <ë˜Mì\“Ò6žEÉ2#ý˜'—]Çî-Ræ¯Ø½Ë”¹~%\\tl] ¾?Ê$ck‹îÞµ +ßµèeùöšï,0¹v3×­m”~¼Ä6/—(›œ2üÌ÷NlÓ¡Ê–}LŽK»– ¯ÿp“Qd.l™ç›LnàOPø¾eÓ¶—^tžÂ×-Ó¯U/2_ |à"“:j}‘ñþ®åz'¸~ɤ×v´‘Ý ´~­pp”½Hoù`×èsæûú­”;Z(\95H1Ýÿú®µ]vtžÒO¶1¹ÑsiWQj4çË—è7¦#ôu9O?wž£ï“ã”uFûÂy÷÷ã–šóDÜFásÓx„qz —Eö.ç>v·Ñ§ôØz(ò|«†<‡–A¹ZqGS‘üØM÷f–„X,PÚ÷uJÛªMÌý! ±þ¼!òÜLä¹ÿŸªTèãðK.Su-ƪɊù5mĺèw±ÌƒFcL2¦)“¯Â=”‰t‰I“¯wÿ$eqÔº ÊÛ•FØiI²HY$w³¸öeƼ?¨›D+ÀÉÂ1扡?í"ËI¤Ë’ +--–8¸íÛ-½ÇN­Ôz&QÝ^¬¹Î‹”96m.W«ÓPÎbŒCU!Àê ^ûšëI¡FCI5ºÓ‘{³”5¡ß–ê¿OŠP(dÌG™¾½Nï'»žžYŸ/ùÝ“8Hé—j®ƒ“2»ÑÓù$gÓŒklÓpŠÙ¦ÙëØyò@˜ÔÎY˘×Íuë|!ãûJ-ó|“~~.ØÊ$ÚáÀ,¥wº<a¶àE÷û(;-CÆLÚ±|Κz°&ù3îúlJ¹¦Üï¶ÉV}ŒRÚގ׵.ϳLâ0ýX™Ò‰Ya¾ÊNGÕiÊ\kš4C¨k^ÏÎ[jYf>ÜDÏo^¦Ì§¯SÆ[Œ·ØJšÊiJýÎQúÉ2elluùRË`UNé7^¥þ_…4vK,VJ·Ôb}˜grŽ™þwkµ¡ÔÒm|ï(;¡ÖÓ%Ë;K™¦™Ý¾Ö2, íŒ4b«T!~ÙÊÜÄÎI^}%ëîpJMÆ}¾²?’ÿßÅ2"µL=œ§ôBÊ„ªZ•pc?©ÇØs·+½jÊ´@Ùô—eíijÈÁìc#,\å +K2*jÚoïfra™gÿ‚ˆõ‹1iá ) QÈPï gðæXÌOt·{~zÊR̲¤Š œÔ¹@5`1óUÍO¨=“Öo€qÊOq™súHç¡Yâ»1 b‘2ê°P™6éÚžµ6™6×­ön޲QÚH/iPÚn'es¦i,3®Øx‘ÉùJwï0ÿˆT]×ôJ›e&Ç·e’§rê¢ežmÒ×M›>>†Î=K”~¡ïÎÑ›ä¤lÆõý“€ÕôÁüÒÆœ~W¯¥Ô‹í‹tß=L¯ý\f}€Í.=þŒ2¹YjÓ 73¹Y×4šŒk&·0\qžI§¦9E/›fg¿Õ9„> n‘þߤ<Ú ú&ŠÐ'ãÚûc®.ø'UIç‡VMé)¥i¦/º:oºçÆ]öRú^^PÚË”6•« ¬w 7òEêf<’÷%z¾º zåÖÐÐj3ĹœôöFÞ9•ö|™ŠÜÊNíÛ v£ m‹|ÿ4{k’ù»XæA¤“B˜ ôRCõåk¹{–‰ŒEðTô›iì)ó¼D‘.VaØ­cP#[XÇ ß r¦Xdw’þ*¤›WEš)éíH/3ɬmt¿˜26( ÙA&7³,t†ƒCD5ˆe…–˜íS¾•Áœg< ˜n0ÃÍÑFzëŽ~ Ó,µL]]f²5()³ìdcž4j»w)ót‹>Ø¥ÍG·Ì³Ý 똲1,Ci-ŒÔ*OïMPæÃ.Ÿ3”1j©T±ÖÙEÊ&o-³Ú†Pÿ:zAŒɗ]KÚÌ®‹–y¶É¤@ÓÔMÆ “u=Ô¶;Êt€Z‡eYz.¸tÖ±ü9ãs)åš2ùSdÕÇWíºy;Áä&û +eܪ0@ƒ2ŽÑŸÎ¦½‡kö¸{ÿ"}Ýê|1Eá÷–ܽuîºö¡yúuö‹[¨òmš¾ívuö*“Õ¬¡ôq!êš´ÕiU8ƸeO«@]ŽºzËrO¡Î¸3¡paºÀ;±M´µ*ƒ²– 1W‹<Åͦ”÷š±ç‹fj “Ùeö'8PHììL'ÙFöw±Ì½¤IÊâv‚ÂHÌ:ºD|ßNÆ;ª]°uñÑIZ%ѧ) Á¨K#”ŠÇpŒ··&TÍIYô¦(“uY‘õƒî÷Æ´(M3KôŸ)ú wݾõeÉ2ÎäÊúá‡îe6ƒJ{)s³¶½úù.Ò·ýÆ¥ö×X~³¤–ýgÑ$½æk‹Ë“šZ”ع`¦e9â¾shЯÓÁ=µ€ºÆ•ëVè2GiE¡ùÚÍäœÜ¤Ôj§ÓÈ®SÁ½ &Íå»îYk0»I³Z@¶XfÓjWײØúkqŒI«ÇƒôB»2®Š)—«Ô|[‡<7Œ–y¿I¿½N™cF)e ãhÝè\‚²Fëû-&Z_šï&ÜýÊZ·D™û´|ês%¨‡ôfø¶Oh¹ô{móNZ]¨•‚–É®'-ÊUáh‹Ò2]l…ë(«e&ƒá†îmJ;ê&K7Ovw™ÒF«]>òbšLл‹Þâ!ÄV÷ì}0¾c”Mx“R¯–&éX6ézµJH£u”9{–>ÆÀ;”¾®ßêf^´¦Š*.S,vuž†»,…sÇTwf"ùš1÷cîàiX,™ß,¥e‘ü7SÞ‹ö³"RmŠ-PV¤É» Ôd¾ŸDL‚\W‡©Ræ^S?ÊÜ+ZÉ{æ)B¥ÞC“½Õ”ÉN¥rjþz‚VKÌ÷«9ÉÛ3( 5+Ÿ¦×’”Ý`*ÓP§4ºnÊ›ß žWÆhj…óÝ +ò9½Âù ƒâÙ| *m§ŒokªL©öå ÆãFÄLÊ‹ +ݦV°ÜLF4·P&:DQ!ÀŒy§ÝÇ2ÐÏ_1³[uñŠYõèÆñå>æ×’ÕÚh°5RÅ,A‘F‡Ÿc6ϳ‰¾§™s6˜ÜtWÝXXë;¯« Óö²¼ÈÆÇ[QX“h[î²Ð¨RØ5¢m®gÕ}Ë<×drš>J?(|É^z!Šm«YfÔºœ*eJ;i¿›¡güÐ[î\£ô?ý޵’Ñôô{m“~Z]ì¥{°žÉyF] H2B¿0G4X× µ=@Ù,gõ蚢Âû½”ºRwº”~£ëÌ8eÌÍPêÿ“‘úg ]¤OÝðºOY ŒÕ Æ­Àè¾[ÅÕ ´¼9R! K["iZœd}Îë#éç CÒüðgÌ3“,çP†ÇÚ–’†b‰Ò×ÓÊÑLy/ÊÛçefœÉ³ª—™Ms3=RU“ØvïÊ(ä(;Ùn%iUË\åùm÷²Ì½¢Ì÷"e‚¼–û” IÏäï¦ßüÏQ˜û½#ô ›ö© L_œ®°·AÙê †+ç&&%‘Êü]`¹MæZ“ÆJi¦‹JðÓОױ²’ ª1Qœ€zœ`2˜æÌä© +m§?T¯MÒ÷ݼ„ÉîªUºÚÄêg q‰±“VŸË¦›Ï˜’j@c‚僚—êëØc +7ߤ0ÜE4oS”þ¸Hé«V`0ÁΓ‡N0AVëRúh•À€6–„š6OškªýÓõ½ŽÉnÐvi…J˜*ÐõLÜÖ ~y.k,·ÌsM&7ð{ß©ÖZ7Üj½±žé€Y÷ÿŽHzcLŽù÷è•"êæ¤‡óô¦îû˜.XŽ–kÊýn›ôÓêbe=eõè+…í”ñÇ3Ÿ ÷÷V—‚pÝž¥Ôÿ« Iu®+cI6ÊNkàËLZ±6(‰S”µý¨Ë«ŽË2üíH¤CK—ª´‡ésÅ•š¾s H÷BwÂ8ŠKÁsc”¾TĽ!Ïbbœ2~³øÚ¾@ü¥M+ÍU6ær“+°feYá v[˜ÉI;F¡ÄfŽév”É Ð2ëé4EË\­¦—Ø*.2ý¨Œ^•¹´É~‘²€XÉÙIz-œ¬ó®œ1Ó¿÷(¾³k;Ùz<Ĥyèz&M3/Q¤º¯2.åÔ8 i]ùÛL.ôyd¾n¥»½¦˜9šBM"§èͯ­p~­9õ³ÝM¶PæžW ¦=Ni¯*n,¶ÍÉÛÏú%¶ùƒ®©Ô½ÍN­ã4š]¡:›d'ƒÐ¦ôù&½íF¦Ÿ&s(#ýñàÙº‚S%]ÿc€÷ܽ˜Þ;5®ý¦pSTÆb°Ôû5GWè5ˆ瘾>Ùm!W˼¯{kR­sºš¨@¦Éî7ìŠ,§aKƒöuë£ùŸ2ײô–y®Éä~œÂ£XAÏeÒ¾ØtϨξ?eþ×DLHÜv÷tì/;ÒylœIÞgžÉ§'\úóî1V(•uï̲˜@l~ï¢ëd8ç,»g¦˜=Ÿ†d-0N0¹Gj2K AÙÌÓŸêtÎ}ï÷î{,nÞ¿ŽÒ³£f¤ëš/³øXº:îF7ÊÎ9¤Èº?‘Ÿ´9w­K;mβëÒ8…wx‘Ò¦¡ËNY\dRˆÔÊx¶#ïY2‰±ŽÞ ÀBƒ’•i´ÐGUq.%­ÕLjޝ°»[‘2×A:¸³ÌyÆ…u—¹4Î$£zŽ2éèF;dÞ§è…瘜Ô&ݳ!t˜~Ñl3¹Ù:D/½§Ÿðl°ž°Î60éjg¾¹´Ö”y!R')ÌSSþPøQgœ‹mLš¾ÕAe°¼{…ý3Ácr|gÍ%ë™Ü¬ *dûû–Óö5˜\xʪYIŠmþ­ðÏ2Æ`§¿^è*R…æÙk™ÕLöÿ9æ÷“´àii}qSð\¿…*œµ×}_Ÿe¼Ÿ+ß°1z¾I–²Þ=§q®š”>sÏв«@©ˆ_zhFÖ³î…ë2)}4´"Wœ`¹u{’ÊÕ¢‚ÿé”<ñµ!Å,zeJ»çÅÉêÈoZ!Úæ¥ÐtuŒé uõhFF˜nY0ÇNó:›ß.R&Ü4ÍL̇g™ÞŒs 㤘ïfeîÒ/„j¢’Ôpóo-..ÑO.{˜î sŒÉ:ãòŸ×| +àkoøÀ¿r÷×8ßwîtižð—&)HýR¾g| ©Ë»‡”Ýö¹2¸3åú-—ï«Óµ¸Ò怌‡ë9ùy Ò/©³Ïݵ?¯!/ Hû)Žg<ûDäÚw¾ñ}ðû>k‘>o…ø-dŽÙï~? wUÛ»WŒÙ§ýÀfAÆêߺçö@êò>Hÿ½Û¤ñ=d ü{ ùy2þú »6}Y#Êà·öýÉq©ó컿÷›{×!óq¯q 2߆Œáߘ{ÿæîý"òÞ @úÁsðóßJBç–û3ŸêÄîï~ox²Î¾ ™ëƒ¬a~&¯¿*Ðþ`ÇÖoÎ VAúF]}ù§ùü)_Bø7 k }ú%÷ÿݶþ ²nÿÒŸÒºêþ>†ä:ò-¤MoAx–; ¼Â3晇\Þ²°ÆÑ(¾^(¾€”oUÞƒˆ¯rîk™¾‡¬áYeüRÿ7 +¤y/d¼êZÿ„ïxÎý¾·}iÛ°OÝÛ« ýä3ßóSóÌÝqxËý~ÀÏÜÿg!kÖ3¹þ8¤Ï"\|á‡øÇœwò°+øýü¼ÿW2Gr¯÷¤Ü#}uï…óï+}@ÜB’ Â{gÕA^?‹áH»¯‚ŒÍ²ãëm$ë+ÌwÈ/ +"R+½Xd\겞þÌÉ×)&-1íy—ÌïfÜŒìEª¥æQi’«–yg¹Äw‹–Y%„1éTÂ#ª”öP¤·Y­ÕéaV0¡nÊÜ+²æG“ôZö0*±š¥Z$ë«·L‘²j}/2é÷¼×Õ­J(çMújE¡Áð4ÖUb=Ôç«e®-Ò${k#År$ÍêaÖåqʼs„ñ •ê‡:OîphÊÛ ×,ÑkûG™ô3îÆµ$Ë,tŽõhß§LšEÌ9ÇÙy’éQª«=C?ɬ´Û‘üÉK+ò^Yé|3x¿Jа^Ò8½­–MáYs<Õ¼Æ`ßí–F(㪛àDi4J™“v0Ù—›AyŠšþÇè0ãPK«Aèg\ˆfŸß«‹ÖRæå‹ìÔ”•™ßt½*ãÂ0ÃbèE¼ +kÝ5Â|­ÙJ¢Û8>-“VÓ]k묔Å)vúk¿ÃîOO(‹#Lö·¶¹—W'Ö½ívÁEæ[״ܳSôóîlðŒZ»´è-w³ÒÜI«­È½6…_^p霢÷Û)/Ðï6Š¥Ô´Ë_h%6K_MÅ‹¬÷¡UX3ø,š`'bóÓãÖ¯—Óº_ +qŠåܶï‹äc‘ÙVx"ùˆá€Ë4;#ú“ÅŽœ¥ ‚fÁ±›8)mz^n«)ú@ƒÓ.½ðd U¦5胾\ Ý0Þ Öe…û¨,×Å1Æãb\dr,­c<@tø\Ú¤¡ní!±LáÓ”¸3‘üÐ¥s”åÄ;Y.®ÀIv +2¢¼Chbü(’fdï"ãþžÉ1M¸bÚöÇ)÷Ç!æ Yxb.óWÏübÂü´ûý ’&Ïixùe^o®ˆ9ÅóþGäÙ× ¦•oBL0mÞ¸éÊ—¶šf~)C“µªeÎÃNH›¥™öÝ1gzRÎ!f6ûÍ3Zêî`ûÉÓò~ožø$’¦FwD¾¯}é[øúU°Ý]ÿIS¡û!fuÖÕâa÷÷H{½écg f]¡™[³ì<䙸1‡:äÕb+¼ÙûW.¿×!ýñ8¤K}è®}1 zRZöëú²ø÷Ìî÷“§-RÀá¾ûVäÞ]¾û<€¿®¶ÅÕ’Ïÿ%Ä,î8|[å~¿ëòÔ)¼í·yæ`Ç!u­}íµ‚ßø¤}ÕœîCT3ƒþ~Œ>–õ`1 Y¾…äéó¾OáÍû¾tŸBÜÝä+ÈüTÕô/D2îÞGÒL½¬†”Iç=usZ×û!s¤âf—ß³f€Cæ"ųÁ³W»üV·X ™ÔÇuHž>Ì‘+åª2©»G íñËÓ H?|2¿?漣¶–owïb&\Ä$W¡sÌ×yÝò?ð÷uüHŸúÒÏê_BÖ‘‡QÏÚØ |™ÿHe¬ƒ´óÝ9ÏÕï!ëÄOƒëSðn eð-ª™ÿ[<éwE¾ý d>ûÒWt¬<™wbn½€ð@ú®š¶ß YuïÁkHç§b¸éóŸîn¸¼ÄM«‹ÃöÑ5]¤sÕ½Õýyç/!|áý^î’üvÎ@Ú̶ÑüçŠù|2øýIô)Á¯ ëÿ§H¶õƒî½Ç!ýðtº?]u÷Y2¿„̱» ýPyö; {†§ õñ’s÷ã}ÎC.oßCÜ‚>Ay>ío í n¹YøÌ}7ä¹ï¬©É=h °Z€"&€EÉ’nO—j”•V dV¤ÌVÚ¹Ìb&uaDÆvä™4L‘²vSæ4š`2p–²Q,P¤W6}V¡ZÌíæš•Äi@*«qµù9J}fºY¼ÅL¯}Ís©êj0åÞ/Ïöƒ˜µÇ%æ›Üe‘íËE‚íhÿ(rü_˜ÿ—)ý§j«0áJ¼T²Ñàg˜ :¦óÒ¬û«ý?¦‰êÅ)˜´®SA&é¥úËKÊX±óÄ)&µÝhr§L:{˜myjúIÖµ+†‹\w7Lñ2ÓׄzÓÙYW—æÞ㔋Z Mл`æ­÷Ö¨lpÂ,RÍåiîÑpuœŽÔ2é5éûgQþa™fÔyXbüh?káÙ­~èÕ6÷ŠÖM^.3ßD~„Öœ?o ^Ëdðâ޲¸ ¸ZNÓº 5§ÓîúfÆAfÑ(¥/è8×2jzݺ]©k%ÙÉwè^C¿}žÅÍùc.v¯VÈ_Ì-tª`½Å‚Ø¦í ªhþ•®DÒÓq·=’…º ofoN£™dú‘  += L]Ct¬/Y…oÈÔTN†,ÒÒh|¦@~F˜dŠøjæ•9ôY‰=“Fv#°ÄÎÉ"+Â{Q¿½*eŽÑ6&Ô1 +“ee6ìÆ>†=Lž5n'#õ\br X¡ÂfWþðh›4¡? :Œl­Ç"µÍµÍ,†k3Ÿ*“I–‰ÿ—ßnÌÇbtùGïé‘iy‡uLNví’e_fÒô4kò$Ë-ÔJM—¯#%ß išŽEVKíŠõ¶d#z“Ý™÷uCôLo›ÒÔ ÉŽ¡%ʼ +Ê\bû”n¤ëÎÛ8en¬ËÅj-=ûÀNÁÏ8³Dªú]˰4×b›™ºýÆcÔ`ò¼êqÆ…â±yC™åuæýº„3i¤„k,&€ÈŠMÃ%cÕ…ë½Ï6èHÖå®[²›þõÌcë˜ËZ&½¦£°¬W(üéy +¿rŠÒWv3yTïnz>å”»wÚÝßHéÓÛ]¾G)c}ŽIhŠþ¤¥y +¯µ™IAöiÊ8Úʤ µÆÒ¶®Ñ¯¹mó\™ú™f|þX`9—Ö +¯°åø­0n‘b™åçëi÷nËýVžt,òÌzvºäåóeŒ«ð¥M/€ßMï6[•ΛôBWB hÙŽ°¸ÛÑ;ùÊe–‹5¤a£ÿ©¿˜;@ˆc%ÒŒ•3†+ôãdã±Âr¢Ìÿ[Y͵{½›ILáj±ä¾¥yL[w:ÜÛÃZLÈhQÉï|F¡lŠjÅgÌ;áf0VÑS‘g¦Íý¬1jé[ŸçØñ_E÷*eŽ‘õY¶ihÐ({ÌÒËôþ¬û¶êR,Ò[[bR’«ß²B©œºÈÃ4eÀÅ4t´ÅjZæÝW†6½OÖNVÓø7(‚”Sì\¯Qêµ—GÏ©6ôœ+Ë!WÖ]™6°Üähë‰,¾!¶~TËôGålb¶fï{ÏħÑZÆ'ö0XRj›÷Û+Tž2d˜ºâ ”¡­ôçOS暃ì\ø.1¹ÐÙ v³ìÝØ:Ié›eT1ZMÏL-2;FAZ`ܪq ¬µ›õñßÉä|5_SY³hó…»m&5ç»™œ?Âþ±LYWº ü#«UÉ +ÌR¨¹ºH˜µIgGëÿ³ëÞj“§ æÁnwÔX'Z¶£,”°_è6X™RˤÙd’ ‡ T‘<¦L`—2eñ¶ùÖHy÷A[Ü‚Òú$à̳zzR®z6×'À4ä#so£{÷|Ÿ‡b¨ø +Äâ¤_<€lhÀº[HRj·²´4ÞqÔwFò~ăª<ˆÎ —±³^Ëâ^ø “÷÷ÂóƒëÂ*HΛbqÞ„äóH “O?/û~H°”'üsåœVÃo ÁJÏB‚½éÕ<½ l˜‡«æÿ°m_Ã÷—~éÝ„Œ¿‡ A*Ÿ„Ì]òo ÷ƒÌwÃÈ{¾^߇ÌY½ +·2·<…îf)>€Ÿ{öøqwþɽc > úøŠ—{?’kÊÕàþ æ§[¬ƒ?õä#ø Z» ëÉ=>ñwÁûÿ tôdžÑ`GOÀÏ¿÷¹ëÿWùÖàP_”|OŸÀÏxîŸ!}ý ÷-Œö.Äù…¼uQñ°ù¿ÛuÇâ§1ü'€( kËOz˜þ÷¾âo{ø Å:¶Áòôìùq$ƒœ=€Î>1 +™3ïG2ˆ`líí¿€æ;ëÒî68^üäî!ÈZQõœú_AxÏL@> Ù{Øà¼û!¯L÷ø`½v<îÒÔ6½ÂcÜ‹êkÍ×¶þ2®~¨Á?C~$@7  é? +®ß)Ï75îcăF‡ì> ~O¸g´c^ä ÈÙM€Þ÷ëøqÿ?øuí HÞC¹z-‚¯ õõ d/cƒªß©»‘=®;Êg¶c\-‘±CÉ[èŒÄø5dÏÛdý©ËË+茌þÊ1:ߘÿ×ä<›V椓¿<_6Ú*ÐY'м òVÎ}‹2e¶Ø ¿ùþÖýÿ<Úò:øvü0’FUØè¦vƒµÆoX| ¿ùïÕ7bÂ…ØI!ŽCê>Äóo„YPaQˆ{ ŒÄ3(Ïp×/!íù|?Ó…ïa—¯,!ˆhÓ"WA2'Ý©Ÿº¢¡[bÑME7Ø™OV¹¿/@êécÈøý[› ãsMF:o!ýt™n1éòóêÙL¼YÇY¼ÿ´Ä»?‡Œ—á7sOBÆYV”yÅ^$7Ý€Ÿû]ðkürÙüï‡ôëOѹùW|™—¾ð'æ½·àç0Út·Ð<—=‰á{÷NXÿ1ü+díT¾c•£/!cá{ˆCÌ]Æ7+ªô6$™Â¯Ó¬ˆ\~ªðF½À $•6½À]èŸ`÷×>þ|Äx]ß…”õdMzÒO[µê.÷Ì]î÷·Ó!6ºë·PïI ÿîò¹¿Æ4Ëà Tßü+>„(+žðg“¾>…ÌSwBêð kqQ!ÇMH»L@êçyxžMyß»]ÚkÐyÚCQ\uùÔ´× óôƒnO’ù ?­ýÊâ>È|ô¤O~™£•çˆ'!{ƒû=Qã*d/°Ë\{ÒÇÿ¨`1ü +R?Ú&ßA„<ÊÝ i¿Ç ó¹wÿÕÑŸ»ßk!ezR/÷À rÓö„×!}ê*¤Î®Böv_ßjï=™‡ÃúýIáï7aÌZÆT`&4(@j +þÅ”e«õz‘bsÕ̸¦³‡¬<¤•9<«R‘f–˜F£LúpZ3™Øùše‚=•)³%kŽº…I?sAR©©IxŽ|œC¨Å|QæéM“F˜ àrÙÜS„&MºltÜú~²Çå94 MÂö˜ëuEë´Ô²ÌD’׿)[FÐM ¹A¢f õÈ’x§ø›1×[Lw+zP(}ñ‘v\ÖÓì•)³RÛ<¯Q$5ŠF +m¸ò.ÓK +³‚L„¸H‘~îcz@û¬æM«ºÂdž§‚ü‚Ò±3s5ˆØDð¾Z”=¤LýßÎ5«ö¤"‘•mÄé<ÌÑKÙËž•¼Ò˜bv=Ø~žì¦¥Ev­ëh/›~ÝÑô÷Q,!ègi4lªl2;(lÑù· +i€ÊViΘ¼×•nÚ¹Èy¸Âú‚žÉc¼i‘²~h_ -,F(V!)õ6ËN öŠösOJYô$”%Æ=É$¤µ&[cõx¼w +~ô'9õh2(Û¬«ŸØ\qº`žËÐ&Û0Ô8õ6ÐôjÖ7G´Ì7šôÇÞU9%¨[ZbïN•i›r}§IÑ–Ûq¨õ5ÕçºYd’‡?àòVÕB.<~Vq…I­ùúlNS‚èna¶fx+%p\ƒÉþ5Éâ§¥ÑEz ñ9—×”uÍö[ÝÓÔ5NÖSæínâÍQæð},¦]ßI£ÕE9ÂÀðöÀ­Œ[²Y,Qê¶Mé ;\šEÊ¢4Fi·m.£,V¯3ôíî-cûÏ„ô'+Âí„Ð7+Kâ]Ôæxéë½IÊãHײ¯sÏ[éûþÈsoB´‰V¢óû]FŠT¦Ì€H’ì7?‡h5T*øûû¸Kû}ˆva¼?áqHý=†t?ç!Ô¯ ’±ï¤B-޹¼ÝBÒor¢¾ /Õm¸ôc~äLä-xŸš‡!Ï[HJÓëÄ ˆæ­M}¿ Á¶î‚´•Æ€8ï‡fÛ6Ï`’~Yg!š’! ñø€ìÒ_i-RQäYIcO ;˦&ÒýÆî€h»µ¾úÉ ju`lÀûeŸhž)ÏGHj ^€Ì[Ï"]+¡1eŠÄ¡(‹MÃè¾.›!V€Ì?uõí_Cêá,ŠÇlø2Ÿ÷¢îbеC¡¾í¿h¨wÁ¯3ã¹þYd[~Üëè!x+†3zÕùê[Ggü!¤]?1éîB5Í翹4ƒ´©ú_§­µ“ð–P–øŽµÊËÃÏ íªãv£«èœ/΢^í ž§¹2k,< ¸ºqÞï_-xÖ@Ö?‰¿Ò»Ÿå=X#¶E®m…”;mmH÷þÛ­¿üÏ!u}2.l,~ZŒ#Y; <û~Tׯþ½£QH[?)ã“uâ?¸çþ²–= ™óžGrÞÓ@ž +ßód<®1÷Ö ûàqW]œÓZ½é³#>ü[Ô·ü‹£ÿ± |Ä}CýßG²l_:ºŽ¤¯{Ùüü¾¬ŠW {–*¾ÿ IßyµLü3H8 ±c®·Üµª [{ÀÊ z3IÒ3¥zޝ.ä”ޝ‚} š£LO{‚2é½G1…±ƒã’»¾b⢘uï¶Ýï©ÒëvÁ¡ŸT–79› ,”'Ý7®Q6ÿu/ÞMS–2Ÿ´M¬š5Íoå¼o]eÒ‚Émeœ‘_¦J´Ñ¥5[€ÎQÆkt„Ò×ò¨Èâ5Âd »nƒÖÍ2ulØ-C +øªÐA&Î1ú`¢Ë”¹4 kç%Å5ÖØË’špö"hUÌ<ñë5Ŷ®fsfóe¬nªù[Ei”Éy#Mþz¤~.Ræ4ë1JŸ:ÂN¦ï2ã½qóÌ»;k{;”×(óÇEv +t²îNiô²yw_Áü蜻'å¾åqæXM´ž~ζå™Í~ ŽÑ÷ï¬ÍÿJ»¥”¥LÙ[æ{M +os‰ýÝà6(}c‘²þ4’ŸfrÓ«.UM +OŽ—9ólÛ\/›¿Í.?8•ìïæR×®wèûét¾5åÒ¯K=Cïîô:…OèÆï0³Ý/ÖÒ S«(« ’­¨Û-4y_fwó|è’ºÌô9¶Aª ŒÁ4%F7¸FY×_dgÐÕ¶ËG“n+ ÌP>Ù¡Ô£ŸÎ:É6\ÞfÌnBI¿°Í˜k­à‹i(—ؽïïZÊÄЦLhi‹w™27èÆe +“j™]85M]Ô-3› &)‹ÔIJýfvDNkµpˆ~C³`h³3À&óþJoº›&/íÈýu®n޹º9íê'奈 î½ôZ°Ó®¾¶1¾SúJ›ÂÚMè¼Kç ;¡½Å‡=}ÃFZM›•fͳËÏ­fº…FžµÌíD6ƈ£Q…ÒN&!“Ñœ«Òj&çµS¬¾yœviìp¿7ÑÇ9Àεe5;7 Kì½æºÅb³nH«çX¯vÊÎ¥3\¹SHF)Lx¸Ñ˜e§%d°fY^гš1Gbíc@/Ó÷ϲ´ÙZ=”1o7Ï1-ü;Ok8W `Ùmn5õU­ìø´q8Ö2ëáËK¯…i›ÿe&˸Éy­l”ð–y·I nk¡<Òù¿Í¤EË1ʆoŠùóØxð.éù€¶¹V%¶žÈ¤ït¯Iùmç#=ü–žÒQ—è…¿;çò½Õ㔨rÅnìÇ(óª=­k‘ý=Å¢ÉNÔýð²;ÅHƒñSÔÊ$ïýq÷ÜNÊØ8HcGW>¦W0½NéÛ)ý-äóÃúœqχ‚‡e朤Ø¢ß\]dµ¯ç<W6í®Ï˜k­È{k™”6Z\£4v³†²X É<Ó'Ô2enFòló +î“éz÷]5ïMÜ·2ÎäÚ4_d'Ãkm¡—jÍFò¬ƒÆ^³æÿý”ÆçÕiÛ\ßÀü£Ræ˜dDÕÔ2À*Ä¥µn5Øšb™RŸçÝß1?MY6š|ÚüƒÉM}óšøg1[Y b›^sѤwI£”±£}”1£×™­é?Åä$}…å6Û¡IûyvÇÅêk‘õ kÛAÚ'Y^K°š2W©ÅÃnJ?\¦.n Ì‘'ïçGØÛ`uêžp™½æ3É#eήSÈn7½<"1«Ng"åT2φ¬nÍ^C7‚‹L +ŽBå†EÕµ£IéC1A@˜æ“îqç)íÕb:AfoôBÔ™œ¼¶MšyüA…'/Ó÷_ ž©Ð͹uªÖŠf’~ +7曘\ó^fùr·ÌûMÊšÒí<^¥îµ~ÛAžbBù#L …§ØÙGªæs;“s]/-·”Æ™ðeo…ƺg°‹ÝÐ5ÊQwË[ ¯£Âþ€ÊÊÐ:¦4äáZM醺ÅtkÉh•b!ôH•¶7Sòd±È8à –ï±Ú 7Êò>o3æù#‘k­åÙ@a2ê4©gró&Í*[æÓ͉—([M5{±ƒ@™’õÌß܆iŸ Lš{Í7–(“ê;îwlášaçÙëv!«;jyYjš¼´éÏßÖv¹Fa€wÓoL2¹Xn¥ô%Ë(^vïí1ïí¡,r¶ÍO³ÓšÅúF*°SRo1Ç$#jÎòê9Ôê]f§ ¬áò:E3½`{‰²šü—ƒ÷‹šö¦ÝWé­:æY/“ÕdÒbD¿à¥ÑAʼ5Æä‚¬q +&™nAu…½Ë£”9î"ûgn³¬OÐ`Òü¯ßLÞtP¶ÊÔvu­‚–µLnš­&·ÚÂd¿²&È¡ =Ìg7†Š Ój`b¦§v ±Lé“(sèEs=& ˜`R;•³É +»áëF™ìc¡ÀÖ­„ëB78Ìäæ_ÇU¸ùYÏd?«ªn™4šôýüPÅôªšò_f§`<ß”«—y&7Mv*ô~Û\ë&¯#ôãíBêF××+ìŸVÛ +0°º5—ZÞîvu6뮟fþü=NáÅORÚô$“Vj±;Oá÷QÚºqòhŠIÌÖfŒÆØÙ¿»µÂ…çJãYÔ-g…wé¥@`œ2ÖóæÓ+,¨Ø/¼$RG¦G)¾Óì”–_¡,Šu1}Ö¼i‘Åö–yGMéf̵VMy+K¡icÚ¦£J™Ç)mm-Šà‚«Ÿ}Œˆ*Á0®P&ˆY÷;&¥¿ÌÎIÃ2@+1©Yj𼴙ܸ\aº5ˆ•0¶˜´\f|\ŒR,¬Ùå …é´m²Ls]Ú(LY–Ò“‹Èdp?O+æAóqž^ˆNÐ'XîèÀA@ÿÆpc¶Äî|Ó”&Ø›Åf+;Ûˆ”vœa¶ˆº©°Ë¢åžy1^¥<ÂÞùSRÛ¹>|+¤4!€ÝDuK;ƒúìgù¬vøJF™ìfôrÍí`ûÜ2ý¼«‚ÏY÷¨-kžF³.½,æ=œ§Y¡X7ƒK”1բ̗±ñ™æÛ>ÁäºÜ­ÖÒšÛkþó,@™3»…ÝtgmþCaÄ Vò´L:MzÀtÅôº!¨iž˜.ÄÜG™t­c<ï”»ß6׺ͧµ¬íe=­¦çgúmºÛ”ñ˹֬¦êÑ8 ´ÙyÊÆ½eè0¥/_qå>áò›k[î™~¯s1šf3=üVèJÕª)ÝISx.Qæë“”ùêeWþmô«ë˜´pmR„Wz'¥?´(ãò;×iß>À|axa}`·Z„=ÌŽÜkq’Ý›ÍÏéy',ó6®¼À2rd¶IP•2[¥l4÷P:ì)Ênä®QA˜·eÊÄ´ŽÉ ì ʤ8FéܳÌGC¸ÈN€jÏ—*”¹njš2´Ù9áÑå÷$“&æê“µL56/ ” e†ñ:¼H¿1Ÿf±‰b–¢yßIiSQ°Hi@Â`#EÇ|YlaºvlÑf¹þ±‘ÉñÔOÒ&¥mËl271}ÞΊѠ¦Ö{Ù) œazÿ¨bš[–ÖÒÇÐ襉hM0~¶t]BìîTŸË6k¾fºnŠË,­YÁp¨íÖ1§ñfÓ5}[­·òâ˜èFl–Ùíš°+–ØéÒëCãL +f–s¾W”V39?\ _·'™´l«KPtóß òvžÝm‚Z&­&ýÚþ:ûkþ;Iiïv§Ðbr5¥ÿµ#i„¼.Ùè-ûYÀ;FÊoªÅY¿ÚBi-“î¯Wè-6·Òoè6¹¿{˜ ^j]Y”ײJ–)úS®Pxê—é£üçõÛÙ¨“M3‰™~K-üÈî]ËÒÚü=ö&Ð_·XbIAXìb8ywÛe°Èê&­kƒ´²üçB²šðÓ\Y@´æÓ¥¼Ý”¹ÓK¨”IÖn0éƒL4é}£là‰­L–EÊ¢|‘›„“ìœÈuÑš1×FLå™?öƒš¦ mwmÓ½S¨é§5]¡L˜Ö#† î¹p!¡Œ¡Côg(“Ö>f›i01ÍÕ¨•ñÛŠ 2² î-uh‰úi–ï#­ W+¤Q…ÔE™Ç¢ÌØ…‘ JYBái÷ÌiƱƒÉ€£d~`É:h#ejsåä)…TE·ñBÅ~Ô«¥Yóí´rXÍû;iuCÖ +i‘é àŒÉËtMßn›ï¦YìÙMØŽiZ«ÌeÊ@X#î·–wÁÕqËý ™Ô47Â*jû­UMØÇ­@¤Š ×ö•ð»ÓæÞj&ûa‚µ–I¯Éä×Í\Ò`ö\ÜdòHGå%ÚL +Q·DÞI¹¾ƒÐù¼m®ÕÑ?Æé׎ˬ7¦KèVÒï¹.¤i–Ûαs£¦¼|]ÖH'YìD°~ÕÅÌä©[¥ðÙm‹×Õ/,²D9b­ÏjsÕƒ³L&ì 7˜¢0Á³‘BTñ“µfÄó,§å µR–émUÈKj°óX¤%f3ÜÝ”¹ +Yíe“7ë6akk¢EÊ"f7ø J?°>ísL2FZ'–yÙH~kºbÔ4ùi÷VS&ŠéM¹öÑ[Gd¥«“ŒFm»w{%QWæTÛµeÊu¾dZãÌ€(æÌ{»ÙݹªóÌœ(–(ù{‡I‰ÙïV1]nÐ[|Òß»Ùð¥p3¾ìÊZ$ÿ &Û0OØ6m¾‘Û6uQÊ£ô•Þü+M©›,Óù€äõ&€'áûÉfgÜÿ/øK÷ÿ&wýÎÈ7ŽøÒ÷ÂûøCHÙ¿”vø›*ªMWÝÿ@òy»`5¤ÿ½`¤µßÍxÔýÿ€?®~ÀG>’…ï!óÌ?šk£9à>÷8Ò~ñ¤žE¹~?àYȼô0dÜ}à}"}®Ú +àóûSÿG‰ï*^ð¦ùý€¿Oy¶íòyÀqó1€_•üæjÏxãêmHÛÿ&'Ÿ:æ³0 àëùùR÷EÖ…*h@Êõ,¤Üÿo¾S H{~]âcãsÈ8Ìë×£.­Ç͵7üI—y-‹QH¿|,¸þ(ü\rÒÏY'~Üã<ÍBÖˆ›yMûwRgOºß×!m’6Ëb5dœ>\¿êþêæ+ k!ëÝÈ^W@Æ÷-Èšø·îú¤iy_ðg9ß,‹íîÊÃ| éÓYã» ™îN¹Àƒ~¹×0iO@êû~÷û;_ôo󞇄’|ð$Ç]¯ñ!€®mA’ß.Š[¹èŸÌµË:¼à®’ÁŒøÀ½æÚgò|Y/²úÉjH?Ø)«å“³ÖÎÛï@úÔ(ÏË7 ýô5H> àïêÌ\ØYÓßø+”— +6@ÖÓ{ ¼óÈQŽ7L‘ Œ0)9že¾9UèÛy’å¥ÍSLJN/HÃjƒÉêÑ@ÃhÝŠVÅôBÚF‘ìì¦h­­$Óâ<óƒ!ÖU梃SOÕî^`ÒÌo”¾ÿØúg¾oø9Šë„Kã‚KC- Â(ŸÍ—½5M~ÚŸ¢F|=¸o}›ª¸å(ÅÜ[bX¦h9ÔbhŒ"íÜFÑ$½G×àÅr¨L ±íÌî—÷eN´˜é¢.l½fY´#y\¢ÌÍ +ßž`Üü|–2®¦)íºṉ¸¦¥ˆ?\))uI§h:YŸ?e·Ô ×öÛ hÚÇcÒüSÌÖL¯eçÒkÍzY+Ÿe—=LZ2¨Æw‰ý‰Lm}„m[ÏNíìËí™G£”y,ςɯK#u8‘ó\Û=;ýaœÉ8½pÙÄòÇ;®O©£%›×Ãxu™ý[ +ÍØ{麲RdcïœîAú!ÿb޲…”eBò*?R+©ó,nÁ¢1Ÿ¬¥c™ úEÖB©[+‡!ÕDi@Rƒ dk¼F|ÑÔ)¾p’‰²xI©ðsþ:åÙM)b‘<ÁF—ž•2îG÷cnäˆ|ËÊ*°Vœ7!eÍ›7ö@æR‹,žÏâ +ü˜ù +Ò÷ŠÎSe`-á®CÆ^Þvñ¼%é-÷l-ê‡<_SZoø£šÒ4Øõó dþÂ2¦îƒÌ%9R«¾ <ò ¬{!F Ö 7 k@¿×©!bÈ‘„ÚÖ´ó¯«ýUsŒK’Céï"ëчšÊ<É{jf”ožRÏEŽ1éU™³Èún’ÞoX­BI¬ö™ðŒÚI“Æœ+ïV¦[BØgc’à%ƃM­5M¾ÚŸ²4BÑâ-Ñk8&‚ú®«®³ü'»…ÆØCé§»)åŠõŸcÉù«ŸÌ(ú˜e뫇Y“VšD|œÞâÆx¼ÀòZ©Ý)uâ0Ëk G˜^Ÿdo|ÿôZ¬v…<÷ŠFéc»„±JôÞ2E<Âø9ÃçLyÆÐuN·d­Ñ²² h§ûø”1q’b54•òÌ6“÷…>Ö™µN˜c§¥Jƒñ`¨±“"ôxKE,(ZxZP³‡eÛDo¥Tôðøà¢ïµÜ;X.nF•¾[~HÐy¨WuØ`2ˆtUü5ÿ!M±xåEʼڋ#U‡ô§¼ì N èÒ ÂÀ!“L2™Ë¬×Ü34cí6ÐÜFz†{–b£‘a‹ºIôºÌidgˆHÛ€5MÞÚŸ*¤A…” °´ÈzM‹n@-æ(í~”²1=]! RúXg„Rþ¢GùÄÌlË’4Î|g„² +³,n2ºÍSÌŒOPê÷´Ë[7›­9ðeÑò¦ ‘«Òzú#EWú8(Ke6ÿ±w,ŽQæÈp]Zbo™ö"Ô6ùi@½—¡fPŸý:K¼ÁÎÓ9®Pæ•cÌ -QæÀ–û3¡•ž¯ó}(ßv– Φ§-°Ü:3æê±í6NéßuDö4\fÿÜ¥¶°3`e\d}§uÜ.´žâæØ¨Eá¡7pp„ÝCº )Ë@±b¶y¿¹ö6$°Ûo!fŒ/u¾V+¾„´bÚgÍ%_ðç5~Ïš|)Ò‚eõý(s– ¼ö.Ä\õCwíÿy~¼ùþ¸{÷ˆ Ý=H7š€˜5ÝqQ3囀1gÑóÅnp»º(Ô…çnH½ÿäè#wÿ&€ÿ¥æo†£B‡ôùoÝŠ~»h;2o=„¤ËGn@ÖéQ¿Kc/°Ûý„€YC¹vtÜÂʘŒ¯…¸ÜqM ƒAÞ„¬û_ALÆ‹®C 1DA²;ï/Ȧü)ÔmµöA˜XËP>à¯jþNLˆ/N¿}KûUæ4XßÁgügó[ã|à7×_„øT?Lÿ-+øÀÿ½rY©„c±lOT°þúumÚBl‚ln†êdÞûRWÝ +4R9P¼ßŒA|½÷#^oßA„'_A˜¨ ›Œ‡#Ï=Þ3V#îÛCúØCèNxÙ€`öC|÷#?nJ¿¡cç{c«Bc»ùÏšÃó6‡ß@Ú.æÞoXî[u3O(1ªÇ÷÷.È:cé®”÷¿ è¤?[úyNF uü¨û½‘©¾ûâÇïáû÷C9"Œ¡øRîg3¾÷¤¼ƒ4V,ltÿ!†bˆ!zˆ4-Wˆ_B4EÃ3’B4X¯ ÷RÛÕ&ãIsí„îõp·àëé!Èàyøcvz…•,³ÅÃföit!ö]ðû÷÷Óàú.óÿGøa#MX2¨8Ù˜½d¿²Œæ7=úö?B62öøÏAÆ*ø ÃÐýæù-ø€?» .o¢“ qß} +2³êêä[úÌ}/o“T~9 +î§MÿfH™×@67Eƒv­…Ì/Ϭ|­Äûý„΋wAúÉ!¹ùÙÜ_CÚû$çN@„;Ï ·G¾–ÁqHŸ]Y'ÏÂçú=DnöcGÀ– +ò +¾‚ ¥5æÙ·»ÌSüÒ7Þ†´³–IŸÀ5ý'H]> áÅÖ¸ë_AÖTº|ø1º£¡e/1Èybˆ!†øA¡¨€b"…~2¸~bŠ[·iö„™} Im× #ü“ØK5ÀZü²ð†g¾~ +)sÝf§+Uæ<èyñ/ =üCxÓâ· BŠ5ðŒùˆEoþ»ÂZÜ.gœNBÚíI³þ|»4 Œ¥ºý„fÌuãv³’gœWÅ„a_c®Ý€ú«§í’pÂô?˜òŒBO×ø+;yä5ˆ0â ¤nšgVÁGiþL÷!sò h¿ÓЀ´¡¶Ç§üßi§?)‘Ö4dãv Ò΃h"½’·º…xW#×V¡þyâ# þæ¸ Æ!üÊ}ðgDšÛÜC 1Ä+ˆ²EÌ,Fç-$Ϫ‚ ˆ¦çYtJú¿€Hï{©½²€ýð¾¦1Éúqˆ¿ÛÍÀJ—¹(VCÊœfž%g¹Íã‹À +€¤_iîEq+œ"¸Õ˜ð3ðÇÌÜ ƒAÑ—“u.Eަ¤ÝW!å.Ónº|IäD óüò¼6ñS Ö&§ ´g誸 ‡lÔ~•òÜ a ’çÇ̵nŽŽt¬…¬‘O!{ [sýДß^Ïë§ã1³Æ}o’î*<ËêW_@ø•n7bˆ!†bˆÛ +U°²¡{ rï[éÚ<3͈¶äQˆäútnŒnA4?¯¡÷Ll(Р9 LÜC‘w´Ìg ŒEÄA*s¤Y‚(>s÷?ƒl†• {½wX „€E÷®"˜„ô—A\‡l2ê +º"D|4ç¹/!¦¼ïc0Ïú­ŠdQK‡; šË¯!–(ƒ4÷•A2w?™÷ãö-KŒÃo¾¿‡Œ—• +6ˆpýx¡˜ +~Úbˆ!†bˆ!:Ðð™^C¶OÞMˆiôuˆàNGw@4y ÿÇXý2ûL(¦!Ú·¬2_‡h3®C˜ ;0Øe®‚iˆÆç.³)€X?$ŒC·ƒ{YÜ‚´[¿4¯“ÍRLÈV:æÊ"í´‹[­áßWH?“ñHßpyúâ¦1ˆþîC 1ÄC 1ÄCÜFèV …Дç‡Z7!&Ÿ?BÿwÊ"üØ)s‘£|Š`%Ë\ÖÛô†Ö ¡kÀ ã>³é‚€:`塊[jéºþbÍ2ÈB¨!†bˆ!†bˆ!†¢ êX¬…l‡øÉ–ÙŒ\‡ø©wWJ[\D`1 Ñ„? +”Ùä J™ë„ +ž€øfÞ€ô…áFrˆ!†bˆ!†bˆ!†b…Ð €ÅÄÜý>ˆfT£÷®‚h»oBÌä¯B|=ůu>2÷Y”÷^‰ø|/nŸ21ÄC 1ÄC 1ÄC ñF¯C 1ÄC 1ÄC 1ÄC 1ÄàZé 1ÄC 1ÄC 1ÄC 1ĽÇP0ÄC 1ÄÙh`MtÀTéÍAÜíêJ8.ƒ€Õ¸É×,€½Óš°À{ölØXC‡bˆ!†â¶BÙháC 1ÄCôã£@bª¬2÷¾…œÖð €ëÖr19Öñ~G÷@â£Ü ˜ªG¢^u¿‡?«ýkG_à‡q âMoBê¡.¼‰zƒÇ~ à_jL¯*vCŽÜ´§ª¬ð6d¼9‰çsÈé9±£JG< à9øÀ¾ûÝ»»ü¶–\1ÄC 1Ä€c`ˆ!†¨ ³ýä8Ð5ðÕë Þç ÆYtÏp+sÿ8dƒiƒn~Ù@Öù½~CË÷,dóRD`û€7ü¤wÙÊÅ8¤M‡lÔÖÔ”îUH;~ +vüº¦t‹  9ê¶[¼à!gkHï;Hýþ¢!¯be ïBú½âKt1ü‘»v?d~yÀîÞÃþ· ÀÝߺ +éOß!ÿ´Ÿ!†bˆ!†øA`(¢W˜€lup7ä\ù³#yg³{çˆVðd÷€3þ¡Çy¾Ѐ0¼÷Aêô^sOëë:¤ÎbuÜ«<½àd3ÛßB´o üÆ|Ä}ï¥ß» +¿AtA@ÀóúTíø—-ø×ð ÅÈ8{ +^ò!DëÙ¯Mr2vŸl¼Ê…Z7!‚ sC¯Û´À-ȸý9ê¼à/Üÿu,ægü~ éTE²±*¸þ8¤¬×ß„Ìß@ú¾Î‡7 óà}æÙï\Úg ýçȸú "Høóº +1ÄC 1ăŒÛ]0ažhÈnAóõSCÔOŒÂo|®c°Ê¹²qy² = Ù|}ÑÒ>a¶>‡0bß@60»Üß/ mø5dq„é{²éy¢Š™{þP±ÀÓ:}Å7W7 õù)d<ôâÈɵN¨+ŠÏ!m_Ôt}¤,÷å=˜‚3î{ƒjN¾ À åû¢1>Žd~G!˜pÓ;ª¼±øbAÐËÍñ(DSûêÓô—Å×zúõšÂ[Ô!øÀºÿë܀Թ΅u,æ¢ü±·uâ=$5ÿ€zþÀVHŸ¶¸™ž†ÌA« ëÅ“¡ ëÏ›èì#ðî%Ï`°ÖÑ!†bˆ!†ènWÀDCöDCö d_1ý{Â|ñÆnЄ0f@Êö@p_MC˜¥^1ÁY˜†ß¼ ©÷´Mݼ à~øê¿Lyg-„1|Îý~Í}gе¹U1)ï.TßìZÜ‚l8Þ@} þ:—fQ-|n@´Çÿ˜óÜvȘîV»ü-dõB RãáÖÓ¡ÞK²þÖÝ{Þ:F]¾‡h0?lnTH°2ÜÙøü?=Èo2_ƒ·RHÃ-ÈøþÒŸWe?ž€Z´Üüv¿ +€üéÅAtj¥Ó`ã(nAÊ sâFÈÆµ(îE§ È~$ÍÖgK¤w7’¾õ€¬!ÿ±DucDcq²N¨ã$dX|Y¯Ccºë· ó]VŒ„1ün “‡bˆ!†â¶ì†0>÷B¨ý~<3a¤Ÿƒlž¾€0Ô+©Ù(ƒÕ-Æcff»~¢UÿÊýÓ]¿ß=ûÄÌñGFª›ã ÈFåÈf?zËPA6/@êa€íá÷ú&¤|»ßðÜ€h­®Â·¿b dã‘`ì D€Ž›²ùüÝoþßCÌ|Ó„[!›Úº—~  ó? ³« ‚³W ùj@„@o¢3ètÿ¸ ¿Ùù-DÃü)¤¾ìƳl‚Œõ,«ï íõ1Ä¢Gµ«‡!}¯ >‡Ìß« ›ð'‘-DøRo+5/‚ÌOÇÿ¯½ûµ´¾óÿž¾BJ(]ÊE—ªA‡rÐA]ÊÁÌ’ :è¢MlÆÁ‚8´Câ›8ÄÁZ’!6q‰Câ4V›®¦mâ‡Ø´‹Õ´KWÓ†8´M ©%µL-©¦kH5©&¼áÙ?>ÏÃ9÷Üóûž[uËçõ‚‡ûãœóœç<¿Î÷óùþʯ-¹¾[S‰ža£µÿ‹Ø•ºŒ&)Lò_–Xß*Üž:O†ïyçRß+•ºß<š:çÆ%b^H#ÃIòû+ßR¸Ì]N €;S…ã®)ø‘TáB»LjÒ;ܤv»jöjwª s*¿)U{q¢]ÞiÎj¶|kªày8à<’ímýp0U°=×¾çŸoã{::îH¿}ß{;ìIpOdsûnj?_HúïÊ ØïœIÕÆ¿š +ðoKSÃMa‡­§Î•ÿ´Ä¶®¥ÎÉ»–xí4gÚuŽŽ]p µFk,·ªkZ|©tçðÝ©ï‰ ®¡iAöÓ©}qdÌc'R‰”¿MòùÔ=ïå$ÿzÛ;ÚÅ`œ7Û÷›HÈ kЩûÔév}]òªK~ƒë©ýóÛ©óïáÔu?îÜN6'D.–½©àz4y·•õ¾ºŽ‡uƒ .c\Mû{I~uÉõmÕîöý‡[:u Á÷Sß߇3=ù÷zªl0¼Ž+òÑm!K»7¤ ++£ÍþÆéþ9 +&ÎeЄôéTáàá$¸-[º˜}Œ˜~wªÀø^ª}<kÍ’*|wß¹Ôç;™ñMæoO5‹¼1UhÞŽ&±¥Z`¼™J4\ªþ“]mÛ I~ómÃV}*uŽôRÁü±TAøñÌßtúÝÔqÿ^û÷u©ôãÙÜOû¥Ôþ[¤ ü© o;¼•äú{»’ Oæâ˜]ª–ÿ‰ll¦üËö±R×Ô8ݨïw§öÕ8'2h}*ƒ&é[é´7dM:o¦Z®|oÂãîÎä®>Ãï÷L*ÈüžMò†þ¾'µ¿î˜°žã©{ìź?}1µÃ¶’hWûß%—Çb-õ8Zû)kË¿•ªÝïœO}7~,uŸ¹~Ü‹Æx1[^Ü’Vë0X‰œèú˜¾ÐþýRª6àŠ +Ãý¯Í ÖåÚT°4®oj72ð¥húÛ}¦ÇS5BR…ø×Sµaã +tk©äŤÏϦ¤·R…ð®©ï® æI~*É\Õ‡È ø=Up¼Ôµ,]`+µb—Âu©DÍðÈÖë©Bïó©}{$k¾/¤‚š“©óaR x!užýîÐÿv¥£MÊf08Ù,k©ZÛUŒK0Ép0òéÔy¼]ÞIòO¶qý=© üñTÒáŠÔõóLª+Æu©c=©ëG§KXìJ%'=÷KIþ}éVSɨýc;º7-<îMKë©dÅè=ðöÔ~gcRs-µß^ÊøV"§RŸ+]^æ±§}¯ÑDÝ]Y¾uÔhpœlí>÷XSåuN¦Z^\ŠûøèõÝÿݨÿ‹x'õßÝ›.e—عš¦Ù‰Ë­MÓüeS¾Ý4ÍuK®g­iš𦹝iš/4Mó§í:¿p‘>ÇÞvIû¾ß¾ÿš¦ùLÓ4{f¼~÷Ð6«išƒíÿv5M³¯iš{Ûõ|½iš´ÏûNûX·ŽÏµÿÿÔŠ>Ó'š¦ù°}Ÿµ)Ïë>Û íö>ÔnûÕs³}íûÜÚ4Í‘õMZ¾Ý~ÎϬèsn÷ò™¦i~ÚlôÝvímǽ󳦎åî‘õŒ>oÔCcÞûꦎ߰/ιÝ÷Îx¿UøQ38~|ÞïæfµÇö@Sûý‹Míçÿ>ô^6MóMÓÜÞ>w_Ó4¯´ÿŸås#ïóÇSžûÓ¦®»ûÚ¿¿ºäg¹³©soœWšÙ×å´óèGcÖùã¦ižYïÞfpkš¦ùy3¸/ /×5u ó³¦îŸÛyM~Ìû¾½…õÝÐl>/>lß)‹.kÍø}þØ6ï—IËÍÍÆsë§M£÷¦EüÞÐï«úγX,‹å#µì´»Sµ“O¦jRžÈê›ç~=Õ\ô]ñz“ª•ûd}ù÷·ÿ7Uƒumkrý™öùo¦jôNfz³ÏÔî æüÙöõwekM"÷´Ûp.µǵ¢¸º}ühªõÆír[5Ç/§Žo7˜Ù•©ÚìkRµ6]K‡kÛßo—_Ku7¿ýîT ‘ëÛmÛ©3?ìMÓá¬Î¦Îùßo?‘µ­'Rµâã>÷3}úµõÔ¹8n̯dP˶žª¡ž5ÿ—SµÖÛíþÔy±ÈHéËžK}{R5§w´?ïj×BŸJ5á>™Á”Œ›ºNžÍæ&î‹lã¬Öw¥Î­“Yn~÷ƒ©Ú÷q-–ÝgI}å;gS5ß4ôü÷2hÕu<ã?ÏZª†|Ü@ƒgRçøv´˜4°Þ¡,?øì¸©fþÖ:£J%2ìLêžy±kÿw§®‡nÀÒ3©kþ›Y~JѤ¾®L}¦ýÙY3}Àް“¤£kSã—²ú~›]x2ûoÅZª÷h*¨»2o—+RÁëõ©Ài‘A×JøF›€ŸI6Óþ~¡}ε©ÂÓñ$ÿ|d]_Kõ¾#Ëö¾’J^Ü•Í}}÷¦ +pÝÝweu#¶wÞH#O¦>ïhÁúöT°ün.ítV“Ü—jJ=ÜDøõÔùñ?RAĉl,¿•Ú§ã®…Rçò,§²q*­aÃ#–ÏÓøí ú—o§WSçóÇg=q¡ý@*Qy6žãÝtœ'RÁ껿ϦÎåyÆt8—º·ü×1ínßsÒzi·åT* þŸæx¿Î¤×Sçë*ÆùzÓz޳žú ݘ-£óÀÊäàústv&u\u`8n`½­L«·/u=Ÿ_£S .êûÙ\¯º{ؼ†“´¿ÍìLæq,µï/Åç€o'$ö¤ +N‡SÁùãÙžÑä÷¦ +úw§‚Šÿk‹ë»=U8=œ +JÏ´ë=€¯²FåæTÁh*‘pUµæõTñDª4:à×Zjÿ¾”åF~¿º]ÿ73lo-Õâá‘T 2<‚ýÙÔ¾x/5SW£ûD*°Xo?ÏÃí:ϵ¯»"µ¯MÕ–žh_ÿÉ úvžÏ 6õtjwú/¤’G÷g|Ðt)ìNmÓðUçS‰Œá@j¸F> æ6ið¶EjãGO댲÷h6Ž0ê'™=ïû*œOÕ¯:‰4Î"# ß—º¾®Lï¥ÎëRçóþö÷nºÆ×³ñ~¶/ƒZÊYÞH]/Ó‚Õî|çP»ï´_•ùÆ>­6ëüørêó½žÙ ÜRûhÚ1¾ºgw Çáyàg%nžËø™ÞOï«J0Oc+}ÐÇM%x4Ë×þ?:&ú%·28ä2†[®tSôËêî+ïf{ZøÀGÃ%îƒpOS}>?lšæ+Íô>å[Yhšæ'íûl¥øMÓ|¹ô£üYS}óÿE»Þo5Õçó;Mõ¹}¬™Ýçýb.µûaׯ}®©¾ÌÝk45öÀ°Ÿ6Mó7íï·¼þóMõÏ]ïcÞëëcþßíóŸ ½ç‡Mõ…¾³}ÎZSýâßÞû;McÐýÐù~³¹óÞ¦ú6w~ÖlËatÙÕlC`šOY×fÐ×ø/f|ž¢7óË{›Á~úNSçøW›É}ä;¯ ­ã«slÏšê»?Ï6íj&“p]Ó4Ÿú{\¿ùqˤ~ôŸŸñº½CÏýy3ߨ +ßnf>'?1ò³îeߘ°Îo̱mó.Yÿ÷·°¾Ñ{AçÖ-¬sÜX!k,œáå`3¸†Þnêxκ~–±ï|6‹Åb±X.‹åW.QÞaWª¶óxª¦ìîT­òªû!^—ª1êj>îÏüµßw¦úàµ]ÇOS5²O¥jLÕXœJÕf¼”úëírwªÆætª'x#Uó8iäøIö¤>÷Ó©Ú¢]©c7Ü|÷™T‹„®ìÙ‘uLšÊi\ï+3¾èÙT­ßÿœÁüßW´ë8‘ªQüeªÉ©V—ÊZjöÑ&ý/¥¶m´ò#ÙØú¥Œïóßy"óO ˜TMß ý0u<ÓnÛ ¬·/ö¦j)¯HãÝØOevmþáÔÔ‰Iµd™ä\ê»)ó·^ùEÆ7£/Õr`øýæ©aýì„m|-ÉoÍxíÝC¿ŸË`¼‘{Ûõîóš#slÓ©ûqR]bη¿,“§ÿë<•ªõxjúÍU­©Oª‹È²žÉæ±^ÏòãšÜ“Ç&©ãóÒ’ë[ÖÁÔ5Óµòz9õ¹æi ³¨íš6.{£yí¨[Sñ-©ÂßóÙž&ˆ¥ +êW¥‚›G2ß¼É{S…”á íTû¿7²±iëw3(,¿—Á|ÍÝDI­Ý`w—Ú/RÉ‹ÃY¬ïãßkôÏ>ž:–GSÁÑ/SÇ5Ù ß•ÁØ÷¥ +ðW¤ +ï§öïðœæ]rå³ø¯M÷·Ïù ýù|ûØáv»ºé¾^HS¿¾Àç\•›SI¡áBèéÔ6Nêz2šyuÊúwe¹ønÊäÐN máLîg|!Ó§©»­ÏñœçS ®×SçäYìþùp’ÿœñÍê×Sç˳©± :k©ëé¦Tóòî¸êŽózê8ýQê<<ôÚS ÐEÆP¸!㻜IÝfþl'†~¤}ý³© ó¥ >çKÝGÍX÷'S])~™ºÏv÷—[2}àÊ¿Ku[è¦öRêXþÑ-àlNVžÌæÁöæµ'ã÷õ‘%×—Ô~õR.îT¸Rß¡W¦ÿ“©{Üv•A.EÙ. ûKò ©‚Ì©Tn;úú_*L?˜ªåx2‹õyÿd6èN§úо׮ïúTáå—©‚åŒø(ƒAú^O‚_ËÅ-hÍrEj;¯Î|ßÝ©@ú›©äX…ïã©ýœT@úF ‘Iìcþ÷lÆRGÕJ*¨¾/ƒ€áÊÔ>>Ü>v"lZﲃf-ªÛWÏfãµu<³P£5™Ófkx:Ëõ—Öb`x0Á»’üö„çÊjêÚINÍx|oêZ¿ªí=‘Åï£ýÃ;oµëü«Tð÷@êܾ;ušö>/¤îK¯¦¶Ïïþ÷¥·ó¥Œ¯}2óÝÃöý>|>uŸýšÔýÿ™Tøbª•Ëó™Þ'3¸Ísü°}ÏÑA¯ißû_ͱŽIÆ%â¾”å[³kQòF–¯ý¿5›“@rqkÿ»Ù$®ÌàŒ q•NÌ~ +ôÓÅJìJHNg{‚⃩õúöçS™¯ÖXW»yªÐy(ƒQþ‡ND»‘¿_k?Ó.§³š. »Û÷ïü;›JH,³ÿödÜ8”ÁèÚÓtÁæ“í2Dúý‰LÑ{U>–I„n»:7¥šüžIßÏfù³ñ©T¡v¸«Ã…Ô>z!³Ï…Ñ@溌üí@Æ'KæqfÎçM +V“ªIý¨%ÞŸñxXwÇw™ä˹¡ŸW¥îO·?L%ØîÈâ÷äÛ²1ay¾ÝÞë3~*¼Iöf|ks©šÛy oûù ÿOê~*µ}Ç2HdL›þm«ÄMû£Ûrª¥Å2÷ê{²¹©ùéLo½3M×ÕjÔV‚å#cþ÷rÿ^\Ö'RßÝì87f4Þ.Çrñ’¾pÙ¹ €;3˜ÞçBª&t;šü1UÓÍ'¼ìð]A³{ý±TAýÆT³ó3íïÝrw&ïÇót8×þÞMÛw:Õô÷TûÜSíãÃ#S?Úw£5·ëŒ¾HAîÁ¡m½;³û2¨áZ¤¿ù¥ö± j#MÕvN[¸ +k©}úl6/ë© àÙ,?ÝØ±Ôy<œèÙÝþÙ&øãúB³Êco¦y%oÍx¼kÕr4Ë¢ÇÛŸodÐ$ý…LO¶,êBê|ü«T÷¤Ñšäi  ¿N†£Iƒ«Rçñ¿›ãý‡ƒþáûŤ.W¤öÅ£™ÝMjøñáóžîÉäÖ[©­—ˆ›'Ù7Éh‚5©ófÒT‡³ÜœÍÁöz¶6>Á">:§ºý~Õ˜íYµw2_wè­íLìI4žHL“*ô®:øß—*˜j>•­·.è +›Ý¼ìצöÕƒ©ÂêèüÂW§jè¯Í †°û{ªÀÚõß?ã½Ï¥’¤­wSÍ®Ií©Z§Ç3è;;oà‰Tp.ÓkÛ’ +6_ÏåßßûŠTÐu(“û¿/j_j_ÎÆ€ðBª&÷Å,^u:[Ü:^È`ଗ2û¸Mòf¦wùØ?ôû´ûÂëÙX¨¿ÜÏìÀmíó~˜JÒ­g±Ï.ƒ ëK©ëzÕÐùTÂèOR]­Æ ä7+È~¦]Çþ‘ÿwÓ´Íj†>¼þáu¼—ÙMü' Ún¥1Ú`–{3y Ä—çxý8ãšÖŸÙÂúve|‹#K®/Ù8¥hçÕ\œÚÿÏf|®íÒ]c[IÀ@/ü½¦iV½ÎµT`ôB*ã4D¿œ +`þÍ +ßëÓ©BÆz*0_żï_LÎÿqªöéö=žO’×$ù+xŸ½©àúªv¹6ƒÂM©æÀ×fòÀmݶ}Ú¿ëíß]+ƒSíc]‹‚{SΣ ¾÷¿LÙ¾Ïeûûi^Lo$ùç[x}WÛÿd63§Rç÷Ñ,_¸þV6w3Y•õT;m\áùÕOeú9þJ68w9{1É¿òø®TbçBªFý—©LÆWãœOãÃÕ=”ÁŒ«ðnêÜùa»îqÐLòçX×=´VÖñÓ’«ŸÈ »ÀÙÔýë—SÖ¹ˆý©ñv§‚½nßÝ’éçõÞÔþM0\H]Ë&¿ÍIœ§“üŸK®o\Àü^’_]r}7¤îÿÃçØzêûd»›Ç>¯•Áé Ê;i¬رV]‹w0ƒZÊnʼ?OM¥—Ìßy–]©ÂÒ©‚å£Y¾©õ¨ë3˜ÂîÿKmóS©ÀÿBV×¾ 'Mõö©TpmÆR/¤ +t×dÐGyœ3ô¯}3Éï¦>ì·wS…¸³©n³¦ÛÚ‰ÞKCëÙ<-á¼v§Î³'³±Vs=UþÍÔ(ì[õ|j?¯úš<ß®wZÔ31¯#Ùåµïd0KÄ5©ò?j×y"ËOÍv,ƒûäð5r&³Ïë×2þ^÷d–þoÈæàÿ\ê^°ŒI³zYr}I%#Fï%¯eûƒÿ¯föu±UgS÷Þc™<« +0IÓ4«X®kšæ[MùIÓ4ÿbäñ?k»aïukÓ4Ù4͇MÓ|nEÛ?¼¼Ò4ÍÛCïmšæÚ÷û°išç¶á=Ç-kMÓüiÓ4?kšæËMÓ|¢Ýûš¦y ÝÓnßð¶hšæž¦ikšæ‹í¶ÿ¤Ýÿ׵ϻ¯ý{ßÛs°išo7Óý¸išO½O·M÷ÌñÚQo7MóÐÈ6îmêÜúÁŒ×~·}Ï­ìÿ]M럎¬û'Mí×½K®wÚò™¦Î±Uy»©ëeÖû~väuߟã5Ÿ_áv^*ŸmfÎ}CÏÿ›fãùxsÓ4_išæ/š:÷Üþþõ¦iîœcÝ»š:æßŸs{ÖÔ1}®Ùx\ך¦ùŒ׎ޓg-ß™°ž¯ÍxÝï =÷»Cÿ?Ðnÿ¢þ{3¸Ÿ¬5ußë|eƶüÁ„u~kÆëf-¯ŒYçs[XߧǬožkpÒ²·išŸYç<÷‚e—µfPXµ›:ï¿Ð4ÍíÛø,‹ÅbéŲŠ.¥šà]H5!ûùïJÕBžOò÷·ø^¿‘ªù?“ª ÚŽi/Uë÷OÇ<¶+‹ap_ªæìšT“ÌwR­$æ™ÖiWªèÉlÐëtjL›»ó\ûÜÔþÝ5ÉÝŸÉ-&9˜:Þ·ŒyìúLo‰q_ª†rZ+ŠõTíãoMyÎîTíçè€lï¥öÕ<ûdšÛSµeû‡þ×Õ¶Ëö bÙ¹9U{w3?,âLª»Ã73ßõ1n_¾žé5½Iu‰x=ƒn—›cI~}ŽçíËÆi?Èôq7v§®ÙÛR×H·_϶¯}+u ŒÖÄîKµ²¹1ƒ–çÚ¥›qdܵzk3Lr!u.ýÝ”çŒûïf| …—Rµ¼ãúZß™S°=’ä÷Ûßf0ü<ÎdãØÃÝ’¦5gžufÔ[©.Ëö¿.u>ŒÎxp}–k‚¾–:/Fƒ|8óÍÒ2θZøy®éeíNíïUŽkñ~êX½™úÎ\äܦØJàêT`{êËÿéŒ/ßž*Hn¥öîö½NvŸÊöÞnŽK,jOª°x:U»1µ¿®Ì`Äíy +¢»2’ÁÔ\ó¢_M$ÝgêŽÉ¡,7ÂôZjÛdc0ÿ±9¶é@j_Œ ,ΧŽñ¬&õ»R…æýíßgSçıl}¨‡Rçs„MÛ]3ë‹é†Ô~ê–¼"›3ŸMí³Óíò~ï +ól5ûùÌ7êûîÔyx÷¬'î0¯¥Óy¯½ #ÿ;ºŽ'%ñ¾›ñƒðuÖS÷±§³ü}ì@ªÙø´î?£Yn*̽©ã;nàÉiÓ¹þAÁ÷¹TÓÿ.ˆ¿¹ÝžY]ŠÞj×ßÏSIËî³¾ä7'ló«?¥á;©ã²•ïŽqÁõ¬q$¦y,µ?†L]÷ËÜoö¤ÎÏÑ$ËÝÙzbtœ}©ïöq áEOW¯eu]ú€QK6øDSM¡ÐÌnjý™¦|~É÷º§iš5Õ{Ñf¬Ë,o7Õô~ëê>û¾¡ÿíiM%g5§]ÕòJ»tïkßÿž-®÷êfc“ß?hª)è¬×ím÷ñ°7Õ¤zÖkw7ƒî6MóÕö«ØO÷6›à§©ãu1ŽÑ¥X&5`uìn¶¯éïvøF3ß9:¼üdÌz~ÞT³ïIçÞ=Íæs|Ô¢÷™]MÓ|ª©¦õóú°Y¬«Ï¸ã;és|¿߬üº¦ºKt~Òl¾¶jêÞñƒvÞTóþWšÍ÷¥ƒÍÆî?jÆï÷;›É݃ޞðšE–qMëÞl­;иí}l ë{nÂg_õ½£;†£]¤ñaÓ4ÜTˆ«·i-‹Åb±Œ,‹¶XKÕú>ªõ8’Ù5¾ÝèæËÔ@<—j~¢]Ç¢ÍÕ—ñvªÆêDÍõ—Ùý¹Ô>×4þ;©Ú¨k²ý£¿Òþìj»f͇²üÓæj4oJÕÌ?™Ùƒ3íJ5©ÿdª–ñHf×Ì=”ªùÛŸjÁðD’ï-¹Í£v§¶½«aŸÖÌù£`Ò,ÝÀ’‹ž“ŸNµX¦ÛÂÅp:u¾,3SÈg|rR5ܯ¦ZŸœÈæó¥0לH÷Óöó®Tíû©ëäPæo>ßùR’¿àkFMkâ½Þ¾ÇóÙø]p_ª6·«±?Ÿºž~{Á÷þlê<^Ï¡l¼î÷´Û0n½d±Ót÷óa¯fó€‰Ó¬gð]ð@j Ûjíÿ©lîbu(«¹Ïwv§î÷,ñÚõTMÿ±ÔgŸ65)° I\—úÒ¾%õÅ?ïÈçßOh®ÊüMÖ¯N0L,ŸÍÅ Ä>j¾z[ªÙõ™Tòb™Ñ“»þ°¤‚áBX€íÏö'6FÝvÊê +†k©þ‘Tr¼ý{ž±f¹§]ï¡TðLª Å*ωá€x+…ðn-•¼›,½™äŸ-¹înÆ„4kÄñTë­táøs6•4|7uJÝ?Îdü½ïêÔµrm*q²¿]nl—­6«~/uïZEw©.ùÛÍ€0êLûøÑ >ë¸é§îéoeòñØ•êbñl6v?Rqwêód6’Ì7žÈ¼&׋:•Á›ßÏøî‹:”º›JpG’üSÿB*á2¯õÔñî‚~ÓõÀ%4oà©ô™TP>o0Ü x"É?™ó5·§ú^‘ªõ_ÅkËêúƒ¿™åPz,U›|e*0x3U|&Uè¿&ÛhŽ&ºAgÍ¡=ê±Ô±™Vk³7Uíj‡ÞJø—™®éTÿPû÷´±&:»Û÷û7 ¾×_d´Ír}¦wºëRûðДç Ú¶R}¸Íì)'WídêÍjúwcf\NΤÎçU÷¥¾'µ_÷OyßWS ºÿ'õÝq,›ç.Yò~*@LjÜ[2¾¥ÃÉÔ¹ù½ÔÀ‡‡ÛeR@~*uî­ªßûª‚ëS©À¸ÚÿeJ}ÇžÊøDÈ¢Ždzà¾Ô÷À4'3Äï­ÄvŒy]í׫©Ú½E¾È¦ +yó6Cý\*x{?•h¸MþgùZª6êÌzâ{Sûîá jõN§j®þËÈs»Ú¯»2hN}6°¿™å’“û³Ø>¾7Uèþ—s<÷`ê¸jÿ~?•9–é5@»S÷§3ôð½T"`žÖ +ϵ¯›g;£½OÕ±­—“ÇR-¦5Ñ?Úw«œå`-Õ|þÉTíí¬ë–u!unÍj›;wVU[{1œN]wÛ5ç{7ÓÁ“ –9Ω ÷ƒÔ½o™ã¿žúîy+uOüxÆ Úéf£9’Õ%VweuÁõ©ÔwÉŸfuƒgJ}¯¼´¢õÉô@’|&uL?–º_žLÝãßm—bë)øH˜–Ø“ê;ùñTày,0^“͵3çR€7³±ÐÙÕšÊôBùZª÷HûóñlïTk‹ø½TÁÿÍzâ&M'øÙlYØ™T`ü» ¾ß+©cökíßÝÈÓ³¦íµ+ƒÐç‚ñöTðÞ/¤Î“ãíºÎ¦>ïõ©þƒœ_ï¦ÎŸy?ïÞT°ñhëë=:Õ[çñ,Þgy'YK«#™/xÝîÏ»74>™­7¥îœI|/g{kç©õÜ ÞI]kËŽ[²ˆ}©„í<}Á×ÛeZÂ`œ ¼æh*é¸êÄÇo¤Î¯U8•J¢_Ñú’úŽ~9›§\Ö‘ÌN—©I €IÍ5^̋ٞck©¤âª‚ëS Àº*GSû~UŽD>²Fk© üÙT ö^»|ÙsŒß“*ˆÝ˜j9ðkI~Ú¾nRÿÿ=©¦ÝÀ‚£Íá/…¯¥¶çÆTx:mç¼Ä¯¤ +pï¤&“úØHµ¸#UƒôñÌWØÿrê3t €¯¤’‰m=:¦¯g5#k¯­`I}ÆgRAï.ñúŸgcðr*uÌ\^—:&·´ËM© +µÜgR‰síÒmS†þwU»\™:WÇ%Uæq!µý‹Œ± +7¤øI#ìO2ÏXÛaO*95­ úŶžJ|=íkò?¯Ý©{£Ym€;ªTîÕÔwÍv¶»/«kZŸÔ¶¯º̪×ùb’ÿ¸Âõ;Èp`-U³ü`*p,‹×¨ìM‡×¤Ú£™\›°7Ä^“Åš”o·nʯ£©ZÑW³¹ø­©îûYnp»a݈üï§‚ôYçZªÐû`æ[á¹TÁ¼ëÆðT°¸l·†.añr’½ä:V©k¢ûNælrÔŸ¥öÿ°“©Âÿ[©šÆ¤öÛMíÏÛRÿNún^—º«ÃèTo“œOwË$xVe_ª Ë¥N|ºÍ¥üǹ:u=”j‘rS–R/¤>ï;Œ…bP9€% '¾˜ñóŸÉ iv×<û½L®µíú—ŸI5?¾-›§‚Û› +ª®Iiê½ÝºA'5¿7Uí +³ï¥ø[6ñÕ úÈÏØìN“«RûpVaø¹TàÔ dø£Ô±\vfƒ®¯ýU©ÀûÉ\ºAŸ>“ÁèÜ·dùsiÑ©­>*^Lòo/õF¤jZeò<÷gR‰ÂïMxübÚ:hïÙ °v"uÿÙ ¤.bWɳë3÷c4)°žÁØ §S÷™SÙ9cÂ\Ö†™A¿Únà¥ëSM™oZ®hŸ÷zªÉÿèà~»RÍ“?– +RÿáÈã»S…Øü'ƒ@ðšŒoŠÿTé¡TöH*Ññt–k6ùv»®«²Øˆó]¢âþÌðn8ÐxÿB’ß\hK7ê=IÕD®¢;À¢>—úI%¯þÃÖ5i À²—Rɧ2b÷ÁTp;š8“y¯¸9u]}2ƒÙ=¶b=uÏ<• +|O¦‚þ÷£Æ€®}¹*ÄþÑ”çïJÕè<ðÏæÀë©ë©æóîNÕüïoßiúd0¸á•Ÿ85ô¼?É î‹©ÄÇï,ù¾‹N7×mǼÍÏ»¹Ø»©§¶:¯ù車²Ã©Ö ݘ#PYKÕÀ>ÞþýNj4ò­øS5ÐóŒhþQ°Õ„Évø¿SçÓkCÿ;Ÿü'5fÂo¶Ë® Æ~¸&ƒëm’Ó©€ÿTê3žÎÅÓ€žNÌ3EÓ/RMÝÿ<Ä—Œðƒöï›Rc"|5ɧS3CÜÙ>vpÌë»Ï»{Ìc·¦Î››Ûõ<é¿,1©äÉ'³ºšÓ¿MÕ6¿¹¢õí4ÇSûn§ÿgR‰Y¾E 0b8p<îšóµ×¥j}_ùÿ—R- ºÕº9îïNÿ³ú«_jÝíÓšðN)Wµ¿ß‘ +àŸšü’‰þkjJó·ÎxþZ*ipc*ñ0iÊÀqno_÷ÆÂ[9Ù_g0#BR‰“§R­?Ž¥ZL|%¨?Ö>çÓíÏÛŸO´?ïúy[ûúã©ýózjŸwý÷«_ø_'ùg©ÞN®xÝ—Ê©ÔyúO³3GŒõ‹Ôýc™ë ˜`xÀn´'’üç9^ûùT!}5ýw¦‚Øo¦¦‡ëšý<Õ”÷?­f³·Õ=$C.Ötck©}v¸ý»éûÝTׂs©„Ä]©ãsc&Oø©DËkìï/¦‚çn°¾›²úÀyw*1ñà„Ç»iôŽ¦Î‡»RûùWSPNµª8›J,­græDû>£Ïô½í{ÝŸ:×—ujè÷³©n2Ýç»&“G¿ßŠ÷SÍé_Íå7ŠúZvÎà„ð‘0œH’ï¦j^÷gvÀðg©ZØn*¹Ý©€u=Ü]™ +8ïNÕä-3Bþ¥p 8]‘ +ÒÞL­oeû¸»'¨<“» ¬·ÛóÔ„íùyc9|)5NÁ+©„ÆÇRÇä×W¶Å›}*t^;뉭c©{ÖøI%BžOü©‚ÃëR ˜n +³kÛŸÝÔeç3˜Ê,Y¬«ÅžÔhò·µïq[û÷¼=žM%àÞÌÆ.8›]í÷3I~kÊëv¥G2¨%ÿFû÷]©èT"áñ\~ýxoH¥w§‚ñ+SŸéøÐòn¶¯VuOªyûM©àïšT²åƒT"bR`×Mñ÷Rûš‡ÛŸÝø gÛu.Òm`{RÇýÑT»Uï¥j±¿™ÅgKø(¸:uÜnL]SW¥Žó…Ôyq:•´ºÜæ†.¢Ñ@’|-¼Ý‘É£¹LÕ4îOŸKÕÌÞ +ø^L&'ùÞª7ú"[K㤒]mìz*0=Ñþ|/„]ê¦Ö?Hˆ§RAÿ©„Å•¹¸Ý:{SçÅ]© ¶ d'é‚Ù2Ø¿—Ã(ð;Ú¸ÀîTàu6¸kjýXªú•©ÀîÍ$O§‚ÍGSýþç£W[»+õy¥>ë¡lî»}2¼žZNµËÅHH%cnK%iÞK5™?žn'Ù•jB6Ûß½ ×Æ%’-þTMþ¿óøçSAæMíó.´ÿ¿6•¸\úûoÕZjÜ‘ê«ÝýœÔgûÌÈr:ƒþâëÙØw|^ÝrW¶¿_ß.7eã u÷gçÏÀÀ6™”HµüãðûJª›À… {{·ýß[ùV^ž®KàûSùþÔ¾º*ƒäö¯ø=O¥jÓO¥Z¼Ÿj0©+=1-ÔôqϦšô3P^Õþ½¿}Ιö9GcÚ®e­eò”w³¬ÇhïÌ0+TK€ç³yZ·RI—£ÿ6ìhó$:·f0zûû12;\6I—©_¹Ôl? è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è èÿ§Ðoi³éêIEND®B`‚ \ No newline at end of file diff --git a/examples/text/text_unicode.html b/examples/text/text_unicode.html new file mode 100644 index 0000000..53e4066 --- /dev/null +++ b/examples/text/text_unicode.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_unicode.js b/examples/text/text_unicode.js new file mode 100644 index 0000000..3055a5e --- /dev/null +++ b/examples/text/text_unicode.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="text/text_unicode.data";var REMOTE_PACKAGE_BASE="text_unicode.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_unicode.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["_d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["de"];addOnInit(Module["asm"]["$d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"a":___assert_fail,"F":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"hd":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Qa":_fd_read,"La":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"d":_glBindTexture,"ac":_glBlendFunc,"m":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"kb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Gb":_glCullFace,"k":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"Rb":_glDepthFunc,"C":_glDetachShader,"id":_glDisable,"l":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"K":_glEnable,"g":_glEnableVertexAttribArray,"vb":_glFrontFace,"n":_glGenBuffers,"Sa":_glGenTextures,"q":_glGetAttribLocation,"Fc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"j":_glGetString,"o":_glGetUniformLocation,"Ba":_glLinkProgram,"$a":_glPixelStorei,"Ha":_glReadPixels,"Fa":_glShaderSource,"Ka":_glTexImage2D,"J":_glTexParameterf,"e":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"p":_glUseProgram,"h":_glVertexAttribPointer,"Zd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"f":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"c":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ae"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ee"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["re"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_unicode.wasm b/examples/text/text_unicode.wasm new file mode 100644 index 0000000..278ede9 Binary files /dev/null and b/examples/text/text_unicode.wasm differ diff --git a/examples/text/text_writing_anim.html b/examples/text/text_writing_anim.html new file mode 100644 index 0000000..83fa63d --- /dev/null +++ b/examples/text/text_writing_anim.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/text/text_writing_anim.js b/examples/text/text_writing_anim.js new file mode 100644 index 0000000..6e5b956 --- /dev/null +++ b/examples/text/text_writing_anim.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="text_writing_anim.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"n":___assert_fail,"F":___sys_fcntl64,"Oa":___sys_getcwd,"Ra":___sys_ioctl,"Sa":___sys_open,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"gd":_emscripten_glCreateShader,"fd":_emscripten_glCullFace,"ed":_emscripten_glDeleteBuffers,"dd":_emscripten_glDeleteFramebuffers,"cd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"bd":_emscripten_glDeleteRenderbuffers,"ad":_emscripten_glDeleteShader,"$c":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"_c":_emscripten_glDepthFunc,"Zc":_emscripten_glDepthMask,"Yc":_emscripten_glDepthRangef,"Xc":_emscripten_glDetachShader,"Wc":_emscripten_glDisable,"Vc":_emscripten_glDisableVertexAttribArray,"Uc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Tc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Sc":_emscripten_glEnable,"Rc":_emscripten_glEnableVertexAttribArray,"K":_emscripten_glEndQueryEXT,"Qc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Nc":_emscripten_glFramebufferRenderbuffer,"Mc":_emscripten_glFramebufferTexture2D,"Lc":_emscripten_glFrontFace,"Kc":_emscripten_glGenBuffers,"Ic":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Hc":_emscripten_glGenRenderbuffers,"Gc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Jc":_emscripten_glGenerateMipmap,"Fc":_emscripten_glGetActiveAttrib,"Ec":_emscripten_glGetActiveUniform,"Dc":_emscripten_glGetAttachedShaders,"Cc":_emscripten_glGetAttribLocation,"Bc":_emscripten_glGetBooleanv,"Ac":_emscripten_glGetBufferParameteriv,"zc":_emscripten_glGetError,"yc":_emscripten_glGetFloatv,"xc":_emscripten_glGetFramebufferAttachmentParameteriv,"wc":_emscripten_glGetIntegerv,"uc":_emscripten_glGetProgramInfoLog,"vc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"tc":_emscripten_glGetRenderbufferParameteriv,"rc":_emscripten_glGetShaderInfoLog,"qc":_emscripten_glGetShaderPrecisionFormat,"pc":_emscripten_glGetShaderSource,"sc":_emscripten_glGetShaderiv,"oc":_emscripten_glGetString,"nc":_emscripten_glGetTexParameterfv,"mc":_emscripten_glGetTexParameteriv,"ic":_emscripten_glGetUniformLocation,"lc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"fc":_emscripten_glGetVertexAttribPointerv,"hc":_emscripten_glGetVertexAttribfv,"gc":_emscripten_glGetVertexAttribiv,"ec":_emscripten_glHint,"dc":_emscripten_glIsBuffer,"cc":_emscripten_glIsEnabled,"bc":_emscripten_glIsFramebuffer,"ac":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"Zb":_emscripten_glIsShader,"Yb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Xb":_emscripten_glLineWidth,"Wb":_emscripten_glLinkProgram,"Vb":_emscripten_glPixelStorei,"Ub":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Tb":_emscripten_glReadPixels,"Sb":_emscripten_glReleaseShaderCompiler,"Rb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Ob":_emscripten_glScissor,"Nb":_emscripten_glShaderBinary,"Mb":_emscripten_glShaderSource,"Lb":_emscripten_glStencilFunc,"Kb":_emscripten_glStencilFuncSeparate,"Jb":_emscripten_glStencilMask,"Ib":_emscripten_glStencilMaskSeparate,"Hb":_emscripten_glStencilOp,"Gb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Db":_emscripten_glTexParameterf,"Cb":_emscripten_glTexParameterfv,"Bb":_emscripten_glTexParameteri,"Ab":_emscripten_glTexParameteriv,"zb":_emscripten_glTexSubImage2D,"yb":_emscripten_glUniform1f,"xb":_emscripten_glUniform1fv,"wb":_emscripten_glUniform1i,"vb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"sb":_emscripten_glUniform2fv,"rb":_emscripten_glUniform2i,"qb":_emscripten_glUniform2iv,"pb":_emscripten_glUniform3f,"ob":_emscripten_glUniform3fv,"nb":_emscripten_glUniform3i,"mb":_emscripten_glUniform3iv,"lb":_emscripten_glUniform4f,"kb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"hb":_emscripten_glUniform4iv,"gb":_emscripten_glUniformMatrix2fv,"fb":_emscripten_glUniformMatrix3fv,"eb":_emscripten_glUniformMatrix4fv,"db":_emscripten_glUseProgram,"cb":_emscripten_glValidateProgram,"bb":_emscripten_glVertexAttrib1f,"ab":_emscripten_glVertexAttrib1fv,"$a":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Ya":_emscripten_glVertexAttrib3f,"Xa":_emscripten_glVertexAttrib3fv,"Wa":_emscripten_glVertexAttrib4f,"Va":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Ua":_emscripten_glVertexAttribPointer,"Ta":_emscripten_glViewport,"La":_emscripten_memcpy_big,"Ma":_emscripten_resize_heap,"s":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Na":_emscripten_thread_sleep,"P":_exit,"G":_fd_close,"Pa":_fd_read,"Ka":_fd_seek,"E":_fd_write,"t":_glActiveTexture,"x":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"jc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"H":_glClear,"I":_glClearColor,"tb":_glClearDepthf,"Ea":_glCompileShader,"Ja":_glCompressedTexImage2D,"Ca":_glCreateProgram,"Ga":_glCreateShader,"Pb":_glCullFace,"i":_glDeleteBuffers,"A":_glDeleteProgram,"B":_glDeleteShader,"D":_glDeleteTextures,"_b":_glDepthFunc,"C":_glDetachShader,"hd":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"J":_glEnable,"d":_glEnableVertexAttribArray,"Eb":_glFrontFace,"l":_glGenBuffers,"Za":_glGenTextures,"q":_glGetAttribLocation,"Oc":_glGetFloatv,"Aa":_glGetProgramInfoLog,"z":_glGetProgramiv,"Da":_glGetShaderInfoLog,"y":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ba":_glLinkProgram,"ib":_glPixelStorei,"Ia":_glReadPixels,"Fa":_glShaderSource,"Qa":_glTexImage2D,"m":_glTexParameteri,"$":_glUniform1i,"ja":_glUniform4f,"Ha":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"v":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"w":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ka":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"u":_glfwTerminate,"b":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/text/text_writing_anim.wasm b/examples/text/text_writing_anim.wasm new file mode 100644 index 0000000..066336b Binary files /dev/null and b/examples/text/text_writing_anim.wasm differ -- cgit v1.2.3