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/models/loader.html | 236 + examples/models/models_animation.data | Bin 0 -> 359587 bytes examples/models/models_animation.html | 1 + examples/models/models_animation.js | 1 + examples/models/models_animation.wasm | Bin 0 -> 314103 bytes examples/models/models_billboard.data | Bin 0 -> 22374 bytes examples/models/models_billboard.html | 1 + examples/models/models_billboard.js | 1 + examples/models/models_billboard.wasm | Bin 0 -> 143853 bytes examples/models/models_box_collisions.html | 1 + examples/models/models_box_collisions.js | 1 + examples/models/models_box_collisions.wasm | Bin 0 -> 111346 bytes examples/models/models_cubicmap.data | Bin 0 -> 37324 bytes examples/models/models_cubicmap.html | 1 + examples/models/models_cubicmap.js | 1 + examples/models/models_cubicmap.wasm | Bin 0 -> 156473 bytes examples/models/models_first_person_maze.data | Bin 0 -> 37324 bytes examples/models/models_first_person_maze.html | 1 + examples/models/models_first_person_maze.js | 1 + examples/models/models_first_person_maze.wasm | Bin 0 -> 157154 bytes examples/models/models_geometric_shapes.html | 1 + examples/models/models_geometric_shapes.js | 1 + examples/models/models_geometric_shapes.wasm | Bin 0 -> 113683 bytes examples/models/models_heightmap.data | Bin 0 -> 10883 bytes examples/models/models_heightmap.html | 1 + examples/models/models_heightmap.js | 1 + examples/models/models_heightmap.wasm | Bin 0 -> 154258 bytes examples/models/models_loading.data | 14846 +++++++++++++++++++ examples/models/models_loading.html | 1 + examples/models/models_loading.js | 1 + examples/models/models_loading.wasm | Bin 0 -> 311396 bytes examples/models/models_loading_gltf.data | Bin 0 -> 5434134 bytes examples/models/models_loading_gltf.html | 1 + examples/models/models_loading_gltf.js | 1 + examples/models/models_loading_gltf.wasm | Bin 0 -> 303053 bytes examples/models/models_loading_vox.data | Bin 0 -> 222573 bytes examples/models/models_loading_vox.html | 1 + examples/models/models_loading_vox.js | 1 + examples/models/models_loading_vox.wasm | Bin 0 -> 306027 bytes examples/models/models_mesh_generation.html | 1 + examples/models/models_mesh_generation.js | 1 + examples/models/models_mesh_generation.wasm | Bin 0 -> 139334 bytes examples/models/models_mesh_picking.data | 3938 +++++ examples/models/models_mesh_picking.html | 1 + examples/models/models_mesh_picking.js | 1 + examples/models/models_mesh_picking.wasm | Bin 0 -> 320160 bytes .../models/models_orthographic_projection.html | 1 + examples/models/models_orthographic_projection.js | 1 + .../models/models_orthographic_projection.wasm | Bin 0 -> 114069 bytes examples/models/models_rlgl_solar_system.html | 1 + examples/models/models_rlgl_solar_system.js | 1 + examples/models/models_rlgl_solar_system.wasm | Bin 0 -> 110787 bytes examples/models/models_skybox.data | Bin 0 -> 6022110 bytes examples/models/models_skybox.html | 1 + examples/models/models_skybox.js | 1 + examples/models/models_skybox.wasm | Bin 0 -> 164499 bytes examples/models/models_waving_cubes.html | 1 + examples/models/models_waving_cubes.js | 1 + examples/models/models_waving_cubes.wasm | Bin 0 -> 108727 bytes examples/models/models_yaw_pitch_roll.data | Bin 0 -> 829087 bytes examples/models/models_yaw_pitch_roll.html | 1 + examples/models/models_yaw_pitch_roll.js | 1 + examples/models/models_yaw_pitch_roll.wasm | Bin 0 -> 302110 bytes 63 files changed, 19054 insertions(+) create mode 100644 examples/models/loader.html create mode 100644 examples/models/models_animation.data create mode 100644 examples/models/models_animation.html create mode 100644 examples/models/models_animation.js create mode 100644 examples/models/models_animation.wasm create mode 100644 examples/models/models_billboard.data create mode 100644 examples/models/models_billboard.html create mode 100644 examples/models/models_billboard.js create mode 100644 examples/models/models_billboard.wasm create mode 100644 examples/models/models_box_collisions.html create mode 100644 examples/models/models_box_collisions.js create mode 100644 examples/models/models_box_collisions.wasm create mode 100644 examples/models/models_cubicmap.data create mode 100644 examples/models/models_cubicmap.html create mode 100644 examples/models/models_cubicmap.js create mode 100644 examples/models/models_cubicmap.wasm create mode 100644 examples/models/models_first_person_maze.data create mode 100644 examples/models/models_first_person_maze.html create mode 100644 examples/models/models_first_person_maze.js create mode 100644 examples/models/models_first_person_maze.wasm create mode 100644 examples/models/models_geometric_shapes.html create mode 100644 examples/models/models_geometric_shapes.js create mode 100644 examples/models/models_geometric_shapes.wasm create mode 100644 examples/models/models_heightmap.data create mode 100644 examples/models/models_heightmap.html create mode 100644 examples/models/models_heightmap.js create mode 100644 examples/models/models_heightmap.wasm create mode 100644 examples/models/models_loading.data create mode 100644 examples/models/models_loading.html create mode 100644 examples/models/models_loading.js create mode 100644 examples/models/models_loading.wasm create mode 100644 examples/models/models_loading_gltf.data create mode 100644 examples/models/models_loading_gltf.html create mode 100644 examples/models/models_loading_gltf.js create mode 100644 examples/models/models_loading_gltf.wasm create mode 100644 examples/models/models_loading_vox.data create mode 100644 examples/models/models_loading_vox.html create mode 100644 examples/models/models_loading_vox.js create mode 100644 examples/models/models_loading_vox.wasm create mode 100644 examples/models/models_mesh_generation.html create mode 100644 examples/models/models_mesh_generation.js create mode 100644 examples/models/models_mesh_generation.wasm create mode 100644 examples/models/models_mesh_picking.data create mode 100644 examples/models/models_mesh_picking.html create mode 100644 examples/models/models_mesh_picking.js create mode 100644 examples/models/models_mesh_picking.wasm create mode 100644 examples/models/models_orthographic_projection.html create mode 100644 examples/models/models_orthographic_projection.js create mode 100644 examples/models/models_orthographic_projection.wasm create mode 100644 examples/models/models_rlgl_solar_system.html create mode 100644 examples/models/models_rlgl_solar_system.js create mode 100644 examples/models/models_rlgl_solar_system.wasm create mode 100644 examples/models/models_skybox.data create mode 100644 examples/models/models_skybox.html create mode 100644 examples/models/models_skybox.js create mode 100644 examples/models/models_skybox.wasm create mode 100644 examples/models/models_waving_cubes.html create mode 100644 examples/models/models_waving_cubes.js create mode 100644 examples/models/models_waving_cubes.wasm create mode 100644 examples/models/models_yaw_pitch_roll.data create mode 100644 examples/models/models_yaw_pitch_roll.html create mode 100644 examples/models/models_yaw_pitch_roll.js create mode 100644 examples/models/models_yaw_pitch_roll.wasm (limited to 'examples/models') diff --git a/examples/models/loader.html b/examples/models/loader.html new file mode 100644 index 0000000..86e0789 --- /dev/null +++ b/examples/models/loader.html @@ -0,0 +1,236 @@ + + + + loading... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + +
+ + + + + + + + + \ No newline at end of file diff --git a/examples/models/models_animation.data b/examples/models/models_animation.data new file mode 100644 index 0000000..c7a884a Binary files /dev/null and b/examples/models/models_animation.data differ diff --git a/examples/models/models_animation.html b/examples/models/models_animation.html new file mode 100644 index 0000000..a1368fd --- /dev/null +++ b/examples/models/models_animation.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_animation.js b/examples/models/models_animation.js new file mode 100644 index 0000000..8ea1f22 --- /dev/null +++ b/examples/models/models_animation.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="models/models_animation.data";var REMOTE_PACKAGE_BASE="models_animation.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","models",true,true);Module["FS_createPath"]("/resources/models","iqm",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="models_animation.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"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["pe"];addOnInit(Module["asm"]["me"]);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"])}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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"r":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"o":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"q":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"t":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"s":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"p":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ne"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["oe"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).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/models/models_animation.wasm b/examples/models/models_animation.wasm new file mode 100644 index 0000000..38700da Binary files /dev/null and b/examples/models/models_animation.wasm differ diff --git a/examples/models/models_billboard.data b/examples/models/models_billboard.data new file mode 100644 index 0000000..8c99118 Binary files /dev/null and b/examples/models/models_billboard.data differ diff --git a/examples/models/models_billboard.html b/examples/models/models_billboard.html new file mode 100644 index 0000000..c0512d1 --- /dev/null +++ b/examples/models/models_billboard.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_billboard.js b/examples/models/models_billboard.js new file mode 100644 index 0000000..8edca34 --- /dev/null +++ b/examples/models/models_billboard.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="models/models_billboard.data";var REMOTE_PACKAGE_BASE="models_billboard.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="models_billboard.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,"b":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"Aa":_emscripten_exit_pointerlock,"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,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_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,"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,"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,"jc":_emscripten_glGetUniformLocation,"mc":_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,"t":_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,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"g":_glBindAttribLocation,"a":_glBindBuffer,"h":_glBindTexture,"lc":_glBlendFunc,"l":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"vb":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Rb":_glCullFace,"j":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"ac":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"k":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"s":_glEnable,"e":_glEnableVertexAttribArray,"Gb":_glFrontFace,"m":_glGenBuffers,"$a":_glGenTextures,"q":_glGetAttribLocation,"Qc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"i":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"kb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Sa":_glTexImage2D,"n":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"f":_glVertexAttribPointer,"Zd":_glViewport,"w":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"d":_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,"v":_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/models/models_billboard.wasm b/examples/models/models_billboard.wasm new file mode 100644 index 0000000..cf37192 Binary files /dev/null and b/examples/models/models_billboard.wasm differ diff --git a/examples/models/models_box_collisions.html b/examples/models/models_box_collisions.html new file mode 100644 index 0000000..c6439aa --- /dev/null +++ b/examples/models/models_box_collisions.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_box_collisions.js b/examples/models/models_box_collisions.js new file mode 100644 index 0000000..63d83f0 --- /dev/null +++ b/examples/models/models_box_collisions.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="models_box_collisions.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={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_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,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_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,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_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,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_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,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_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,"Rb":_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,"Gb":_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,"vb":_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,"kb":_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,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_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/models/models_box_collisions.wasm b/examples/models/models_box_collisions.wasm new file mode 100644 index 0000000..c685de7 Binary files /dev/null and b/examples/models/models_box_collisions.wasm differ diff --git a/examples/models/models_cubicmap.data b/examples/models/models_cubicmap.data new file mode 100644 index 0000000..97220c0 Binary files /dev/null and b/examples/models/models_cubicmap.data differ diff --git a/examples/models/models_cubicmap.html b/examples/models/models_cubicmap.html new file mode 100644 index 0000000..ec16354 --- /dev/null +++ b/examples/models/models_cubicmap.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_cubicmap.js b/examples/models/models_cubicmap.js new file mode 100644 index 0000000..673fe0d --- /dev/null +++ b/examples/models/models_cubicmap.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="models/models_cubicmap.data";var REMOTE_PACKAGE_BASE="models_cubicmap.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="models_cubicmap.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"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"c":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).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/models/models_cubicmap.wasm b/examples/models/models_cubicmap.wasm new file mode 100644 index 0000000..be0b429 Binary files /dev/null and b/examples/models/models_cubicmap.wasm differ diff --git a/examples/models/models_first_person_maze.data b/examples/models/models_first_person_maze.data new file mode 100644 index 0000000..97220c0 Binary files /dev/null and b/examples/models/models_first_person_maze.data differ diff --git a/examples/models/models_first_person_maze.html b/examples/models/models_first_person_maze.html new file mode 100644 index 0000000..93b6b9b --- /dev/null +++ b/examples/models/models_first_person_maze.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_first_person_maze.js b/examples/models/models_first_person_maze.js new file mode 100644 index 0000000..6b1440e --- /dev/null +++ b/examples/models/models_first_person_maze.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="models/models_first_person_maze.data";var REMOTE_PACKAGE_BASE="models_first_person_maze.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="models_first_person_maze.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"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);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 _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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"c":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"ta":_emscripten_request_pointerlock,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).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/models/models_first_person_maze.wasm b/examples/models/models_first_person_maze.wasm new file mode 100644 index 0000000..b44956f Binary files /dev/null and b/examples/models/models_first_person_maze.wasm differ diff --git a/examples/models/models_geometric_shapes.html b/examples/models/models_geometric_shapes.html new file mode 100644 index 0000000..b67add6 --- /dev/null +++ b/examples/models/models_geometric_shapes.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_geometric_shapes.js b/examples/models/models_geometric_shapes.js new file mode 100644 index 0000000..71166b9 --- /dev/null +++ b/examples/models/models_geometric_shapes.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="models_geometric_shapes.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={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_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,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_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,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_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,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_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,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_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,"Rb":_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,"Gb":_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,"vb":_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,"kb":_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,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_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/models/models_geometric_shapes.wasm b/examples/models/models_geometric_shapes.wasm new file mode 100644 index 0000000..7ba17d4 Binary files /dev/null and b/examples/models/models_geometric_shapes.wasm differ diff --git a/examples/models/models_heightmap.data b/examples/models/models_heightmap.data new file mode 100644 index 0000000..474db87 Binary files /dev/null and b/examples/models/models_heightmap.data differ diff --git a/examples/models/models_heightmap.html b/examples/models/models_heightmap.html new file mode 100644 index 0000000..8ea2f88 --- /dev/null +++ b/examples/models/models_heightmap.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_heightmap.js b/examples/models/models_heightmap.js new file mode 100644 index 0000000..4d28c71 --- /dev/null +++ b/examples/models/models_heightmap.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="models/models_heightmap.data";var REMOTE_PACKAGE_BASE="models_heightmap.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="models_heightmap.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"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"c":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).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/models/models_heightmap.wasm b/examples/models/models_heightmap.wasm new file mode 100644 index 0000000..dae9031 Binary files /dev/null and b/examples/models/models_heightmap.wasm differ diff --git a/examples/models/models_loading.data b/examples/models/models_loading.data new file mode 100644 index 0000000..a38ea69 --- /dev/null +++ b/examples/models/models_loading.data @@ -0,0 +1,14846 @@ +# (c) 2018 Medieval Assets Pack by Alberto Cano +# Licensed as Creative Commons Attribution-NonCommercial 4.0 + +# +# object castle +# + +v -17.17 7.76 -10.68 +v -16.55 7.76 -12.98 +v -16.55 0.00 -12.98 +v -17.17 0.00 -10.68 +v -14.87 7.76 -14.66 +v -14.87 0.00 -14.66 +v -12.57 7.76 -15.28 +v -12.57 0.00 -15.28 +v -10.27 7.76 -14.66 +v -10.27 0.00 -14.66 +v -8.58 7.76 -12.98 +v -8.58 0.00 -12.98 +v -7.97 7.76 -10.68 +v -7.97 0.00 -10.68 +v -8.58 7.76 -8.38 +v -8.58 0.00 -8.38 +v -10.27 7.76 -6.69 +v -10.27 0.00 -6.69 +v -12.57 7.76 -6.08 +v -12.57 0.00 -6.08 +v -14.87 7.76 -6.69 +v -14.87 0.00 -6.69 +v -16.55 7.76 -8.38 +v -16.55 0.00 -8.38 +v -16.78 7.76 -13.11 +v -17.43 7.76 -10.68 +v -17.43 8.57 -10.68 +v -16.78 8.57 -13.11 +v -15.00 7.76 -14.89 +v -15.00 8.57 -14.89 +v -12.57 7.76 -15.54 +v -12.57 8.57 -15.54 +v -10.13 7.76 -14.89 +v -10.13 8.57 -14.89 +v -8.35 7.76 -13.11 +v -8.35 8.57 -13.11 +v -7.70 7.76 -10.68 +v -7.70 8.57 -10.68 +v -8.35 7.76 -8.24 +v -8.35 8.57 -8.24 +v -10.13 7.76 -6.46 +v -10.13 8.57 -6.46 +v -12.57 7.76 -5.81 +v -12.57 8.57 -5.81 +v -15.00 7.76 -6.46 +v -15.00 8.57 -6.46 +v -16.78 7.76 -8.24 +v -16.78 8.57 -8.24 +v -17.17 8.57 -10.68 +v -16.55 8.57 -12.98 +v -14.87 8.57 -14.66 +v -12.57 8.57 -15.28 +v -10.27 8.57 -14.66 +v -8.58 8.57 -12.98 +v -7.97 8.57 -10.68 +v -8.58 8.57 -8.38 +v -10.27 8.57 -6.69 +v -12.57 8.57 -6.08 +v -14.87 8.57 -6.69 +v -16.55 8.57 -8.38 +v -17.17 16.89 -10.68 +v -16.55 16.89 -12.98 +v -14.87 16.89 -14.66 +v -12.57 16.89 -15.28 +v -10.27 16.89 -14.66 +v -8.58 16.89 -12.98 +v -7.97 16.89 -10.68 +v -8.58 16.89 -8.38 +v -10.27 16.89 -6.69 +v -12.57 16.89 -6.08 +v -14.87 16.89 -6.69 +v -16.55 16.89 -8.38 +v -17.13 21.30 -13.31 +v -17.83 21.30 -10.68 +v -18.23 21.30 -10.68 +v -17.47 21.30 -13.51 +v -15.20 21.30 -15.24 +v -15.40 21.30 -15.58 +v -12.57 21.30 -15.94 +v -12.57 21.30 -16.34 +v -9.93 21.30 -15.24 +v -9.73 21.30 -15.58 +v -8.01 21.30 -13.31 +v -7.66 21.30 -13.51 +v -7.30 21.30 -10.68 +v -6.90 21.30 -10.68 +v -8.01 21.30 -8.04 +v -7.66 21.30 -7.84 +v -9.93 21.30 -6.12 +v -9.73 21.30 -5.77 +v -12.57 21.30 -5.41 +v -12.57 21.30 -5.01 +v -15.20 21.30 -6.12 +v -15.40 21.30 -5.77 +v -17.13 21.30 -8.04 +v -17.47 21.30 -7.84 +v -16.72 24.76 -10.68 +v -16.17 24.76 -12.76 +v -14.64 24.76 -14.28 +v -12.57 24.76 -14.83 +v -10.49 24.76 -14.28 +v -8.97 24.76 -12.76 +v -8.41 24.76 -10.68 +v -8.97 24.76 -8.60 +v -10.49 24.76 -7.08 +v -12.57 24.76 -6.52 +v -14.64 24.76 -7.08 +v -16.17 24.76 -8.60 +v -16.69 28.50 -10.68 +v -16.13 28.50 -12.74 +v -14.63 28.50 -14.24 +v -12.57 28.50 -14.80 +v -10.51 28.50 -14.24 +v -9.00 28.50 -12.74 +v -8.45 28.50 -10.68 +v -9.00 28.50 -8.62 +v -10.51 28.50 -7.11 +v -12.57 28.50 -6.56 +v -14.63 28.50 -7.11 +v -16.13 28.50 -8.62 +v -17.83 17.36 -10.68 +v -17.13 17.36 -13.31 +v -15.20 17.36 -15.24 +v -12.57 17.36 -15.94 +v -9.93 17.36 -15.24 +v -8.01 17.36 -13.31 +v -7.30 17.36 -10.68 +v -8.01 17.36 -8.04 +v -9.93 17.36 -6.12 +v -12.57 17.36 -5.41 +v -15.20 17.36 -6.12 +v -17.13 17.36 -8.04 +v -17.91 20.21 -10.37 +v -17.91 20.52 -10.80 +v -17.91 19.21 -10.80 +v -17.91 19.23 -10.37 +v -17.81 19.26 -10.03 +v -17.91 19.26 -10.04 +v -17.91 19.12 -10.04 +v -17.81 19.12 -10.03 +v -17.89 20.75 -10.80 +v -17.98 20.75 -10.81 +v -17.94 20.29 -10.15 +v -17.84 20.29 -10.15 +v -17.68 19.12 -11.55 +v -17.78 19.12 -11.56 +v -17.78 19.26 -11.56 +v -17.68 19.26 -11.55 +v -17.89 19.07 -10.80 +v -17.98 19.07 -10.81 +v -17.82 19.12 -11.45 +v -17.73 19.12 -11.45 +v -18.05 19.12 -10.16 +v -18.05 19.26 -10.16 +v -18.08 19.23 -10.39 +v -17.98 20.52 -10.81 +v -17.98 20.21 -10.38 +v -17.93 19.26 -11.46 +v -17.93 19.12 -11.46 +v -18.01 19.24 -11.24 +v -18.09 19.07 -10.82 +v -18.09 19.21 -10.82 +v -17.83 20.21 -11.23 +v -17.83 19.24 -11.23 +v -17.73 20.29 -11.45 +v -17.82 20.29 -11.45 +v -17.84 19.12 -10.15 +v -17.94 19.12 -10.15 +v -17.90 20.21 -11.23 +v -17.98 19.23 -10.38 +v -17.90 19.24 -11.23 +v -17.98 19.21 -10.81 +v -17.82 19.26 -11.45 +v -17.73 19.26 -11.45 +v -17.94 19.26 -10.15 +v -17.84 19.26 -10.15 +v -18.02 19.26 -10.05 +v -18.02 19.12 -10.05 +v -17.88 19.12 -11.57 +v -17.88 19.26 -11.57 +v -12.87 20.21 -16.02 +v -12.44 20.52 -16.02 +v -12.44 19.21 -16.02 +v -12.87 19.23 -16.02 +v -13.21 19.26 -15.92 +v -13.20 19.26 -16.02 +v -13.20 19.12 -16.02 +v -13.21 19.12 -15.92 +v -12.44 20.75 -16.00 +v -12.43 20.75 -16.10 +v -13.09 20.29 -16.05 +v -13.10 20.29 -15.95 +v -11.69 19.12 -15.79 +v -11.68 19.12 -15.89 +v -11.68 19.26 -15.89 +v -11.69 19.26 -15.79 +v -12.44 19.07 -16.00 +v -12.43 19.07 -16.10 +v -11.79 19.12 -15.94 +v -11.80 19.12 -15.84 +v -13.08 19.12 -16.16 +v -13.08 19.26 -16.16 +v -12.85 19.23 -16.20 +v -12.43 20.52 -16.10 +v -12.86 20.21 -16.09 +v -11.78 19.26 -16.04 +v -11.78 19.12 -16.04 +v -12.00 19.24 -16.12 +v -12.42 19.07 -16.20 +v -12.42 19.21 -16.20 +v -12.01 20.21 -15.94 +v -12.01 19.24 -15.94 +v -11.80 20.29 -15.84 +v -11.79 20.29 -15.94 +v -13.10 19.12 -15.95 +v -13.09 19.12 -16.05 +v -12.01 20.21 -16.01 +v -12.86 19.23 -16.09 +v -12.01 19.24 -16.01 +v -12.43 19.21 -16.10 +v -11.79 19.26 -15.94 +v -11.80 19.26 -15.84 +v -13.09 19.26 -16.05 +v -13.10 19.26 -15.95 +v -13.19 19.26 -16.13 +v -13.19 19.12 -16.13 +v -11.67 19.12 -16.00 +v -11.67 19.26 -16.00 +v -9.24 23.34 -12.52 +v -9.78 23.34 -13.29 +v -9.10 24.92 -13.76 +v -8.56 24.92 -12.99 +v -8.63 28.41 -12.92 +v -9.53 28.41 -12.29 +v -9.18 28.41 -13.70 +v -10.08 28.41 -13.07 +v -12.87 27.21 -14.81 +v -12.44 27.52 -14.82 +v -12.44 26.21 -14.82 +v -12.87 26.24 -14.81 +v -13.21 26.26 -14.72 +v -13.20 26.26 -14.82 +v -13.20 26.12 -14.82 +v -13.21 26.12 -14.72 +v -12.44 27.75 -14.80 +v -12.43 27.75 -14.89 +v -13.09 27.30 -14.85 +v -13.10 27.30 -14.75 +v -11.69 26.12 -14.59 +v -11.68 26.12 -14.69 +v -11.68 26.26 -14.69 +v -11.69 26.26 -14.59 +v -12.44 26.07 -14.80 +v -12.43 26.07 -14.89 +v -11.79 26.12 -14.73 +v -11.80 26.12 -14.64 +v -13.08 26.12 -14.96 +v -13.08 26.26 -14.96 +v -12.85 26.24 -14.99 +v -12.43 27.52 -14.89 +v -12.86 27.21 -14.89 +v -11.78 26.26 -14.84 +v -11.78 26.12 -14.84 +v -12.00 26.25 -14.92 +v -12.42 26.07 -15.00 +v -12.42 26.21 -15.00 +v -12.01 27.21 -14.74 +v -12.01 26.25 -14.74 +v -11.80 27.30 -14.64 +v -11.79 27.30 -14.73 +v -13.10 26.12 -14.75 +v -13.09 26.12 -14.85 +v -12.01 27.21 -14.81 +v -12.86 26.24 -14.89 +v -12.01 26.25 -14.81 +v -12.43 26.21 -14.89 +v -11.79 26.26 -14.73 +v -11.80 26.26 -14.64 +v -13.09 26.26 -14.85 +v -13.10 26.26 -14.75 +v -13.19 26.26 -14.93 +v -13.19 26.12 -14.93 +v -11.67 26.12 -14.79 +v -11.67 26.26 -14.79 +v -14.41 23.34 -14.01 +v -15.18 23.34 -13.46 +v -15.65 24.92 -14.14 +v -14.88 24.92 -14.68 +v -14.81 28.41 -14.61 +v -14.18 28.41 -13.71 +v -15.59 28.41 -14.07 +v -14.96 28.41 -13.17 +v -8.43 27.21 -10.98 +v -8.42 27.52 -10.55 +v -8.42 26.21 -10.55 +v -8.43 26.24 -10.98 +v -8.52 26.26 -11.32 +v -8.42 26.26 -11.31 +v -8.42 26.12 -11.31 +v -8.52 26.12 -11.32 +v -8.45 27.75 -10.55 +v -8.35 27.75 -10.54 +v -8.39 27.30 -11.20 +v -8.49 27.30 -11.21 +v -8.65 26.12 -9.80 +v -8.56 26.12 -9.79 +v -8.56 26.26 -9.79 +v -8.65 26.26 -9.80 +v -8.45 26.07 -10.55 +v -8.35 26.07 -10.54 +v -8.51 26.12 -9.90 +v -8.61 26.12 -9.91 +v -8.29 26.12 -11.19 +v -8.29 26.26 -11.19 +v -8.25 26.24 -10.96 +v -8.35 27.52 -10.54 +v -8.35 27.21 -10.97 +v -8.40 26.26 -9.89 +v -8.40 26.12 -9.89 +v -8.32 26.25 -10.11 +v -8.24 26.07 -10.53 +v -8.24 26.21 -10.53 +v -8.50 27.21 -10.13 +v -8.50 26.25 -10.13 +v -8.61 27.30 -9.91 +v -8.51 27.30 -9.90 +v -8.49 26.12 -11.21 +v -8.39 26.12 -11.20 +v -8.43 27.21 -10.12 +v -8.35 26.24 -10.97 +v -8.43 26.25 -10.12 +v -8.35 26.21 -10.54 +v -8.51 26.26 -9.90 +v -8.61 26.26 -9.91 +v -8.39 26.26 -11.20 +v -8.49 26.26 -11.21 +v -8.32 26.26 -11.30 +v -8.32 26.12 -11.30 +v -8.45 26.12 -9.78 +v -8.45 26.26 -9.78 +v -13.04 12.70 -6.81 +v -12.09 12.70 -6.81 +v -12.09 14.28 -5.99 +v -13.04 14.28 -5.99 +v -13.04 17.34 -5.64 +v -13.04 17.34 -6.74 +v -12.09 17.34 -5.64 +v -12.09 17.34 -6.74 +v -8.98 12.70 -12.20 +v -9.46 12.70 -13.02 +v -8.74 14.28 -13.43 +v -8.27 14.28 -12.61 +v -7.97 17.34 -12.79 +v -8.92 17.34 -12.24 +v -8.44 17.34 -13.61 +v -9.39 17.34 -13.06 +v -12.09 12.70 -14.54 +v -13.04 12.70 -14.54 +v -13.04 14.28 -15.36 +v -12.09 14.28 -15.36 +v -12.09 17.34 -15.71 +v -12.09 17.34 -14.62 +v -13.04 17.34 -15.71 +v -13.04 17.34 -14.62 +v -10.73 23.34 -7.35 +v -9.95 23.34 -7.89 +v -9.48 24.92 -7.22 +v -10.25 24.92 -6.67 +v -10.32 28.41 -6.74 +v -10.95 28.41 -7.65 +v -9.55 28.41 -7.29 +v -10.18 28.41 -8.19 +v -9.46 12.70 -8.34 +v -8.98 12.70 -9.15 +v -8.27 14.28 -8.74 +v -8.74 14.28 -7.92 +v -8.44 17.34 -7.75 +v -9.39 17.34 -8.30 +v -7.97 17.34 -8.57 +v -8.92 17.34 -9.12 +v -7.23 20.21 -10.98 +v -7.22 20.52 -10.55 +v -7.22 19.21 -10.55 +v -7.23 19.23 -10.98 +v -7.32 19.26 -11.32 +v -7.22 19.26 -11.31 +v -7.22 19.12 -11.31 +v -7.32 19.12 -11.32 +v -7.24 20.75 -10.55 +v -7.15 20.75 -10.54 +v -7.19 20.29 -11.20 +v -7.29 20.29 -11.21 +v -7.45 19.12 -9.80 +v -7.35 19.12 -9.79 +v -7.35 19.26 -9.79 +v -7.45 19.26 -9.80 +v -7.24 19.07 -10.55 +v -7.15 19.07 -10.54 +v -7.31 19.12 -9.90 +v -7.41 19.12 -9.91 +v -7.09 19.12 -11.19 +v -7.09 19.26 -11.19 +v -7.05 19.23 -10.96 +v -7.15 20.52 -10.54 +v -7.15 20.21 -10.97 +v -7.20 19.26 -9.89 +v -7.20 19.12 -9.89 +v -7.12 19.24 -10.11 +v -7.04 19.07 -10.53 +v -7.04 19.21 -10.53 +v -7.30 20.21 -10.13 +v -7.30 19.24 -10.13 +v -7.41 20.29 -9.91 +v -7.31 20.29 -9.90 +v -7.29 19.12 -11.21 +v -7.19 19.12 -11.20 +v -7.23 20.21 -10.12 +v -7.15 19.23 -10.97 +v -7.23 19.24 -10.12 +v -7.15 19.21 -10.54 +v -7.31 19.26 -9.90 +v -7.41 19.26 -9.91 +v -7.19 19.26 -11.20 +v -7.29 19.26 -11.21 +v -7.11 19.26 -11.30 +v -7.11 19.12 -11.30 +v -7.25 19.12 -9.78 +v -7.25 19.26 -9.78 +v -12.26 27.21 -6.54 +v -12.69 27.52 -6.53 +v -12.69 26.21 -6.53 +v -12.26 26.24 -6.54 +v -11.92 26.26 -6.63 +v -11.93 26.26 -6.53 +v -11.93 26.12 -6.53 +v -11.92 26.12 -6.63 +v -12.69 27.75 -6.56 +v -12.70 27.75 -6.46 +v -12.04 27.30 -6.51 +v -12.03 27.30 -6.60 +v -13.44 26.12 -6.76 +v -13.45 26.12 -6.67 +v -13.45 26.26 -6.67 +v -13.44 26.26 -6.76 +v -12.69 26.07 -6.56 +v -12.70 26.07 -6.46 +v -13.34 26.12 -6.62 +v -13.34 26.12 -6.72 +v -12.05 26.12 -6.40 +v -12.05 26.26 -6.40 +v -12.28 26.24 -6.36 +v -12.70 27.52 -6.46 +v -12.27 27.21 -6.47 +v -13.35 26.26 -6.51 +v -13.35 26.12 -6.51 +v -13.13 26.25 -6.43 +v -12.71 26.07 -6.35 +v -12.71 26.21 -6.35 +v -13.12 27.21 -6.61 +v -13.12 26.25 -6.61 +v -13.34 27.30 -6.72 +v -13.34 27.30 -6.62 +v -12.03 26.12 -6.60 +v -12.04 26.12 -6.51 +v -13.12 27.21 -6.54 +v -12.27 26.24 -6.47 +v -13.12 26.25 -6.54 +v -12.70 26.21 -6.46 +v -13.34 26.26 -6.62 +v -13.34 26.26 -6.72 +v -12.04 26.26 -6.51 +v -12.03 26.26 -6.60 +v -11.94 26.26 -6.43 +v -11.94 26.12 -6.43 +v -13.46 26.12 -6.56 +v -13.46 26.26 -6.56 +v -16.15 12.70 -9.15 +v -15.67 12.70 -8.34 +v -16.39 14.28 -7.92 +v -16.86 14.28 -8.74 +v -17.17 17.34 -8.57 +v -16.21 17.34 -9.12 +v -16.69 17.34 -7.75 +v -15.74 17.34 -8.30 +v -12.26 20.21 -5.34 +v -12.69 20.52 -5.33 +v -12.69 19.21 -5.33 +v -12.26 19.23 -5.34 +v -11.92 19.26 -5.43 +v -11.93 19.26 -5.33 +v -11.93 19.12 -5.33 +v -11.92 19.12 -5.43 +v -12.69 20.75 -5.36 +v -12.70 20.75 -5.26 +v -12.04 20.29 -5.30 +v -12.03 20.29 -5.40 +v -13.44 19.12 -5.56 +v -13.45 19.12 -5.47 +v -13.45 19.26 -5.47 +v -13.44 19.26 -5.56 +v -12.69 19.07 -5.36 +v -12.70 19.07 -5.26 +v -13.34 19.12 -5.42 +v -13.34 19.12 -5.52 +v -12.05 19.12 -5.20 +v -12.05 19.26 -5.20 +v -12.28 19.23 -5.16 +v -12.70 20.52 -5.26 +v -12.27 20.21 -5.26 +v -13.35 19.26 -5.31 +v -13.35 19.12 -5.31 +v -13.13 19.24 -5.23 +v -12.71 19.07 -5.15 +v -12.71 19.21 -5.15 +v -13.12 20.21 -5.41 +v -13.12 19.24 -5.41 +v -13.34 20.29 -5.52 +v -13.34 20.29 -5.42 +v -12.03 19.12 -5.40 +v -12.04 19.12 -5.30 +v -13.12 20.21 -5.34 +v -12.27 19.23 -5.26 +v -13.12 19.24 -5.34 +v -12.70 19.21 -5.26 +v -13.34 19.26 -5.42 +v -13.34 19.26 -5.52 +v -12.04 19.26 -5.30 +v -12.03 19.26 -5.40 +v -11.94 19.26 -5.23 +v -11.94 19.12 -5.23 +v -13.46 19.12 -5.36 +v -13.46 19.26 -5.36 +v -15.89 23.34 -8.84 +v -15.35 23.34 -8.06 +v -16.03 24.92 -7.59 +v -16.57 24.92 -8.36 +v -16.50 28.41 -8.43 +v -15.60 28.41 -9.06 +v -15.96 28.41 -7.66 +v -15.06 28.41 -8.29 +v -16.70 27.21 -10.37 +v -16.71 27.52 -10.80 +v -16.71 26.21 -10.80 +v -16.70 26.24 -10.37 +v -16.61 26.26 -10.03 +v -16.71 26.26 -10.04 +v -16.71 26.12 -10.04 +v -16.61 26.12 -10.03 +v -16.69 27.75 -10.80 +v -16.78 27.75 -10.81 +v -16.74 27.30 -10.15 +v -16.64 27.30 -10.15 +v -16.48 26.12 -11.55 +v -16.58 26.12 -11.56 +v -16.58 26.26 -11.56 +v -16.48 26.26 -11.55 +v -16.69 26.07 -10.80 +v -16.78 26.07 -10.81 +v -16.62 26.12 -11.45 +v -16.53 26.12 -11.45 +v -16.84 26.12 -10.16 +v -16.84 26.26 -10.16 +v -16.88 26.24 -10.39 +v -16.78 27.52 -10.81 +v -16.78 27.21 -10.38 +v -16.73 26.26 -11.46 +v -16.73 26.12 -11.46 +v -16.81 26.25 -11.24 +v -16.89 26.07 -10.82 +v -16.89 26.21 -10.82 +v -16.63 27.21 -11.23 +v -16.63 26.25 -11.23 +v -16.53 27.30 -11.45 +v -16.62 27.30 -11.45 +v -16.64 26.12 -10.15 +v -16.74 26.12 -10.15 +v -16.70 27.21 -11.23 +v -16.78 26.24 -10.38 +v -16.70 26.25 -11.23 +v -16.78 26.21 -10.81 +v -16.62 26.26 -11.45 +v -16.53 26.26 -11.45 +v -16.74 26.26 -10.15 +v -16.64 26.26 -10.15 +v -16.82 26.26 -10.05 +v -16.82 26.12 -10.05 +v -16.68 26.12 -11.57 +v -16.68 26.26 -11.57 +v -15.67 12.70 -13.02 +v -16.15 12.70 -12.20 +v -16.86 14.28 -12.61 +v -16.39 14.28 -13.43 +v -16.69 17.34 -13.61 +v -15.74 17.34 -13.06 +v -17.17 17.34 -12.79 +v -16.21 17.34 -12.24 +v -16.83 28.50 -13.14 +v -17.49 28.50 -10.68 +v -17.49 30.29 -10.68 +v -16.83 30.29 -13.14 +v -15.03 28.50 -14.94 +v -15.03 30.29 -14.94 +v -12.57 28.50 -15.60 +v -12.57 30.29 -15.60 +v -10.10 28.50 -14.94 +v -10.10 30.29 -14.94 +v -8.30 28.50 -13.14 +v -8.30 30.29 -13.14 +v -7.64 28.50 -10.68 +v -7.64 30.29 -10.68 +v -8.30 28.50 -8.21 +v -8.30 30.29 -8.21 +v -10.10 28.50 -6.41 +v -10.10 30.29 -6.41 +v -12.57 28.50 -5.75 +v -12.57 30.29 -5.75 +v -15.03 28.50 -6.41 +v -15.03 30.29 -6.41 +v -16.83 28.50 -8.21 +v -16.83 30.29 -8.21 +v -16.78 30.29 -10.68 +v -16.21 30.29 -12.78 +v -15.03 30.90 -14.94 +v -16.83 30.90 -13.14 +v -16.21 30.90 -12.78 +v -14.67 30.90 -14.32 +v -14.67 30.29 -14.32 +v -12.57 30.29 -14.89 +v -10.10 30.90 -14.94 +v -12.57 30.90 -15.60 +v -12.57 30.90 -14.89 +v -10.46 30.90 -14.32 +v -10.46 30.29 -14.32 +v -8.92 30.29 -12.78 +v -7.64 30.90 -10.68 +v -8.30 30.90 -13.14 +v -8.92 30.90 -12.78 +v -8.36 30.90 -10.68 +v -8.36 30.29 -10.68 +v -8.92 30.29 -8.57 +v -10.10 30.90 -6.41 +v -8.30 30.90 -8.21 +v -8.92 30.90 -8.57 +v -10.46 30.90 -7.03 +v -10.46 30.29 -7.03 +v -12.57 30.29 -6.47 +v -15.03 30.90 -6.41 +v -12.57 30.90 -5.75 +v -12.57 30.90 -6.47 +v -14.67 30.90 -7.03 +v -14.67 30.29 -7.03 +v -16.21 30.29 -8.57 +v -17.49 30.90 -10.68 +v -16.83 30.90 -8.21 +v -16.21 30.90 -8.57 +v -16.78 30.90 -10.68 +v -16.78 29.42 -10.68 +v -16.21 29.42 -12.78 +v -14.67 29.42 -14.32 +v -12.57 29.42 -14.89 +v -10.46 29.42 -14.32 +v -8.92 29.42 -12.78 +v -8.36 29.42 -10.68 +v -8.92 29.42 -8.57 +v -10.46 29.42 -7.03 +v -12.57 29.42 -6.47 +v -14.67 29.42 -7.03 +v -16.21 29.42 -8.57 +v -12.57 29.42 -10.68 +v 15.69 11.78 11.98 +v 15.69 11.78 -12.46 +v 10.74 17.79 -7.40 +v 10.74 17.79 7.40 +v -15.69 11.78 -12.46 +v -10.74 17.79 -7.40 +v -15.69 11.78 11.98 +v -10.74 17.79 7.40 +v 12.89 0.00 11.03 +v 12.89 0.00 -11.03 +v 12.89 11.78 -11.03 +v 12.89 11.78 11.03 +v -12.89 0.00 -11.03 +v -12.89 11.78 -11.03 +v -23.42 0.00 -6.76 +v -23.42 0.00 6.76 +v -23.42 6.95 6.76 +v -23.42 6.95 -6.76 +v -12.89 0.00 11.03 +v -12.89 11.78 11.03 +v 8.74 17.79 -3.62 +v 8.74 17.79 3.62 +v -8.74 17.79 -3.62 +v -8.74 17.79 3.62 +v -12.89 6.95 6.76 +v -12.89 0.00 6.76 +v -12.89 6.95 -6.76 +v -12.89 0.00 -6.76 +v -9.46 12.70 7.57 +v -8.74 14.28 7.16 +v -8.27 14.28 7.98 +v -8.98 12.70 8.39 +v -9.39 17.34 7.53 +v -8.44 17.34 6.98 +v -7.97 17.34 7.80 +v -8.92 17.34 8.35 +v -9.31 28.15 -0.00 +v -9.31 23.30 4.54 +v 0.00 22.65 4.30 +v -0.11 25.84 -0.00 +v -9.31 27.72 -0.00 +v -9.31 22.87 4.55 +v 0.00 22.23 4.31 +v 0.00 22.65 -4.30 +v -9.31 23.30 -4.54 +v -9.31 22.87 -4.55 +v 0.00 22.23 -4.31 +v 9.31 28.15 -0.00 +v 9.31 23.30 4.54 +v 9.31 27.72 -0.00 +v 9.31 22.87 4.55 +v 9.31 23.30 -4.54 +v 9.31 22.87 -4.55 +v 4.76 26.71 -0.63 +v 5.87 26.95 -0.63 +v 5.91 26.75 -0.63 +v 4.80 26.52 -0.63 +v 4.68 27.10 -0.11 +v 5.79 27.34 -0.11 +v 4.72 26.91 -0.11 +v 5.79 27.35 -0.00 +v 4.68 27.12 -0.00 +v 4.72 26.93 -0.00 +v 5.91 26.75 0.63 +v 5.87 26.95 0.63 +v 4.76 26.71 0.63 +v 4.80 26.52 0.63 +v 5.79 27.34 0.11 +v 4.68 27.10 0.11 +v 4.72 26.91 0.11 +v 3.88 26.49 -0.63 +v 5.00 26.69 -0.63 +v 5.03 26.49 -0.63 +v 3.91 26.30 -0.63 +v 3.81 26.89 -0.11 +v 4.93 27.08 -0.11 +v 3.84 26.69 -0.11 +v 4.92 27.09 -0.00 +v 3.81 26.90 -0.00 +v 3.84 26.71 -0.00 +v 5.03 26.49 0.63 +v 5.00 26.69 0.63 +v 3.88 26.49 0.63 +v 3.91 26.30 0.63 +v 4.93 27.08 0.11 +v 3.81 26.89 0.11 +v 3.84 26.69 0.11 +v 2.89 26.32 -0.63 +v 4.01 26.46 -0.63 +v 4.04 26.27 -0.63 +v 2.91 26.13 -0.63 +v 2.84 26.72 -0.11 +v 3.96 26.86 -0.11 +v 2.86 26.53 -0.11 +v 3.96 26.87 -0.00 +v 2.84 26.74 -0.00 +v 2.86 26.54 -0.00 +v 4.04 26.27 0.63 +v 4.01 26.46 0.63 +v 2.89 26.32 0.63 +v 2.91 26.13 0.63 +v 3.96 26.86 0.11 +v 2.84 26.72 0.11 +v 2.86 26.53 0.11 +v 1.88 26.15 -0.63 +v 3.00 26.29 -0.63 +v 3.02 26.09 -0.63 +v 1.90 25.96 -0.63 +v 1.83 26.55 -0.11 +v 2.95 26.69 -0.11 +v 1.85 26.36 -0.11 +v 2.95 26.70 -0.00 +v 1.83 26.56 -0.00 +v 1.85 26.37 -0.00 +v 3.02 26.09 0.63 +v 3.00 26.29 0.63 +v 1.88 26.15 0.63 +v 1.90 25.96 0.63 +v 2.95 26.69 0.11 +v 1.83 26.55 0.11 +v 1.85 26.36 0.11 +v 0.78 26.08 -0.63 +v 1.91 26.12 -0.63 +v 1.92 25.93 -0.63 +v 0.79 25.89 -0.63 +v 0.77 26.49 -0.11 +v 1.90 26.52 -0.11 +v 0.77 26.29 -0.11 +v 1.90 26.54 -0.00 +v 0.77 26.50 -0.00 +v 0.77 26.30 -0.00 +v 1.92 25.93 0.63 +v 1.91 26.12 0.63 +v 0.78 26.08 0.63 +v 0.79 25.89 0.63 +v 1.90 26.52 0.11 +v 0.77 26.49 0.11 +v 0.77 26.29 0.11 +v -0.35 26.05 -0.63 +v 0.78 26.11 -0.63 +v 0.79 25.91 -0.63 +v -0.34 25.85 -0.63 +v -0.37 26.45 -0.11 +v 0.76 26.51 -0.11 +v -0.36 26.25 -0.11 +v 0.76 26.52 -0.00 +v -0.38 26.46 -0.00 +v -0.37 26.27 -0.00 +v 0.79 25.91 0.63 +v 0.78 26.11 0.63 +v -0.35 26.05 0.63 +v -0.34 25.85 0.63 +v 0.76 26.51 0.11 +v -0.37 26.45 0.11 +v -0.36 26.25 0.11 +v 6.98 27.27 -0.63 +v 8.09 27.50 -0.63 +v 8.13 27.31 -0.63 +v 7.02 27.08 -0.63 +v 6.90 27.66 -0.11 +v 8.01 27.90 -0.11 +v 6.94 27.47 -0.11 +v 8.00 27.91 -0.00 +v 6.89 27.68 -0.00 +v 6.93 27.48 -0.00 +v 8.13 27.31 0.63 +v 8.09 27.50 0.63 +v 6.98 27.27 0.63 +v 7.02 27.08 0.63 +v 8.01 27.90 0.11 +v 6.90 27.66 0.11 +v 6.94 27.47 0.11 +v 5.87 26.96 -0.63 +v 6.98 27.20 -0.63 +v 7.02 27.01 -0.63 +v 5.91 26.77 -0.63 +v 5.79 27.36 -0.11 +v 6.90 27.59 -0.11 +v 5.83 27.17 -0.11 +v 6.89 27.60 -0.00 +v 5.79 27.37 -0.00 +v 5.83 27.18 -0.00 +v 7.02 27.01 0.63 +v 6.98 27.20 0.63 +v 5.87 26.96 0.63 +v 5.91 26.77 0.63 +v 6.90 27.59 0.11 +v 5.79 27.36 0.11 +v 5.83 27.17 0.11 +v -6.20 26.77 -0.63 +v -6.16 26.96 -0.63 +v -5.05 26.72 -0.63 +v -5.09 26.53 -0.63 +v -4.97 27.12 -0.11 +v -6.08 27.35 -0.11 +v -5.01 26.92 -0.11 +v -6.07 27.36 -0.00 +v -4.96 27.13 -0.00 +v -5.01 26.94 -0.00 +v -5.05 26.72 0.63 +v -6.16 26.96 0.63 +v -6.20 26.77 0.63 +v -5.09 26.53 0.63 +v -4.97 27.12 0.11 +v -6.08 27.35 0.11 +v -5.01 26.92 0.11 +v -5.32 26.52 -0.63 +v -5.28 26.71 -0.63 +v -4.17 26.51 -0.63 +v -4.20 26.32 -0.63 +v -4.10 26.91 -0.11 +v -5.21 27.11 -0.11 +v -4.13 26.72 -0.11 +v -5.21 27.12 -0.00 +v -4.10 26.92 -0.00 +v -4.13 26.73 -0.00 +v -4.17 26.51 0.63 +v -5.28 26.71 0.63 +v -5.32 26.52 0.63 +v -4.20 26.32 0.63 +v -4.10 26.91 0.11 +v -5.21 27.11 0.11 +v -4.13 26.72 0.11 +v -4.32 26.27 -0.63 +v -4.30 26.46 -0.63 +v -3.18 26.32 -0.63 +v -3.20 26.13 -0.63 +v -3.13 26.72 -0.11 +v -4.25 26.86 -0.11 +v -3.15 26.53 -0.11 +v -4.25 26.87 -0.00 +v -3.13 26.73 -0.00 +v -3.15 26.54 -0.00 +v -3.18 26.32 0.63 +v -4.30 26.46 0.63 +v -4.32 26.27 0.63 +v -3.20 26.13 0.63 +v -3.13 26.72 0.11 +v -4.25 26.86 0.11 +v -3.15 26.53 0.11 +v -3.31 26.05 -0.63 +v -3.29 26.24 -0.63 +v -2.16 26.11 -0.63 +v -2.19 25.91 -0.63 +v -2.12 26.50 -0.11 +v -3.24 26.64 -0.11 +v -2.14 26.31 -0.11 +v -3.24 26.65 -0.00 +v -2.11 26.52 -0.00 +v -2.14 26.32 -0.00 +v -2.16 26.11 0.63 +v -3.29 26.24 0.63 +v -3.31 26.05 0.63 +v -2.19 25.91 0.63 +v -2.12 26.50 0.11 +v -3.24 26.64 0.11 +v -2.14 26.31 0.11 +v -2.21 25.88 -0.63 +v -2.20 26.08 -0.63 +v -1.07 26.04 -0.63 +v -1.07 25.84 -0.63 +v -1.05 26.44 -0.11 +v -2.19 26.48 -0.11 +v -1.06 26.25 -0.11 +v -2.19 26.49 -0.00 +v -1.05 26.45 -0.00 +v -1.06 26.26 -0.00 +v -1.07 26.04 0.63 +v -2.20 26.08 0.63 +v -2.21 25.88 0.63 +v -1.07 25.84 0.63 +v -1.05 26.44 0.11 +v -2.19 26.48 0.11 +v -1.06 26.25 0.11 +v -1.08 25.87 -0.63 +v -1.07 26.06 -0.63 +v 0.07 26.00 -0.63 +v 0.06 25.80 -0.63 +v 0.09 26.40 -0.11 +v -1.04 26.46 -0.11 +v 0.08 26.21 -0.11 +v -1.04 26.47 -0.00 +v 0.09 26.41 -0.00 +v 0.08 26.22 -0.00 +v 0.07 26.00 0.63 +v -1.07 26.06 0.63 +v -1.08 25.87 0.63 +v 0.06 25.80 0.63 +v 0.09 26.40 0.11 +v -1.04 26.46 0.11 +v 0.08 26.21 0.11 +v -8.19 27.32 -0.63 +v -8.15 27.51 -0.63 +v -7.04 27.28 -0.63 +v -7.08 27.09 -0.63 +v -6.96 27.67 -0.11 +v -8.07 27.90 -0.11 +v -7.00 27.48 -0.11 +v -8.06 27.92 -0.00 +v -6.95 27.68 -0.00 +v -6.99 27.49 -0.00 +v -7.04 27.28 0.63 +v -8.15 27.51 0.63 +v -8.19 27.32 0.63 +v -7.08 27.09 0.63 +v -6.96 27.67 0.11 +v -8.07 27.90 0.11 +v -7.00 27.48 0.11 +v -7.06 27.02 -0.63 +v -7.02 27.21 -0.63 +v -5.92 26.97 -0.63 +v -5.96 26.78 -0.63 +v -5.83 27.37 -0.11 +v -6.94 27.60 -0.11 +v -5.87 27.18 -0.11 +v -6.94 27.61 -0.00 +v -5.83 27.38 -0.00 +v -5.87 27.19 -0.00 +v -5.92 26.97 0.63 +v -7.02 27.21 0.63 +v -7.06 27.02 0.63 +v -5.96 26.78 0.63 +v -5.83 27.37 0.11 +v -6.94 27.60 0.11 +v -5.87 27.18 0.11 +v -9.18 27.83 -0.63 +v -8.10 27.48 -0.63 +v -8.16 27.29 -0.63 +v -9.24 27.64 -0.63 +v -9.05 28.21 -0.11 +v -7.98 27.86 -0.11 +v -9.11 28.02 -0.11 +v -7.97 27.87 -0.00 +v -9.05 28.22 -0.00 +v -9.11 28.04 -0.00 +v -8.16 27.29 0.63 +v -8.10 27.48 0.63 +v -9.18 27.83 0.63 +v -9.24 27.64 0.63 +v -7.98 27.86 0.11 +v -9.05 28.21 0.11 +v -9.11 28.02 0.11 +v 8.19 27.28 -0.63 +v 8.13 27.46 -0.63 +v 9.21 27.81 -0.63 +v 9.27 27.63 -0.63 +v 9.08 28.20 -0.11 +v 8.01 27.84 -0.11 +v 9.15 28.01 -0.11 +v 8.00 27.86 -0.00 +v 9.08 28.21 -0.00 +v 9.14 28.02 -0.00 +v 9.21 27.81 0.63 +v 8.13 27.46 0.63 +v 8.19 27.28 0.63 +v 9.27 27.63 0.63 +v 9.08 28.20 0.11 +v 8.01 27.84 0.11 +v 9.15 28.01 0.11 +v 9.46 12.70 7.57 +v 8.98 12.70 8.39 +v 8.27 14.28 7.98 +v 8.74 14.28 7.16 +v 8.44 17.34 6.98 +v 9.39 17.34 7.53 +v 7.97 17.34 7.80 +v 8.92 17.34 8.35 +v -15.48 7.80 6.90 +v -15.48 7.80 6.03 +v -17.46 7.80 6.03 +v -17.46 7.80 6.90 +v -15.48 6.95 6.90 +v -15.48 6.95 6.03 +v -17.46 6.95 6.03 +v -17.46 6.95 6.90 +v -18.47 7.80 6.90 +v -18.47 7.80 6.03 +v -20.45 7.80 6.03 +v -20.45 7.80 6.90 +v -18.47 6.95 6.90 +v -18.47 6.95 6.03 +v -20.45 6.95 6.03 +v -20.45 6.95 6.90 +v -21.45 7.80 6.90 +v -21.45 7.80 6.03 +v -23.44 7.80 6.03 +v -23.44 7.80 6.90 +v -21.45 6.95 6.90 +v -21.45 6.95 6.03 +v -23.44 6.95 6.03 +v -23.44 6.95 6.90 +v -23.40 7.80 5.50 +v -22.53 7.80 5.50 +v -22.53 7.80 3.51 +v -23.40 7.80 3.51 +v -23.40 6.95 5.50 +v -22.53 6.95 5.50 +v -22.53 6.95 3.51 +v -23.40 6.95 3.51 +v -23.40 7.80 2.51 +v -22.53 7.80 2.51 +v -22.53 7.80 0.53 +v -23.40 7.80 0.53 +v -23.40 6.95 2.51 +v -22.53 6.95 2.51 +v -22.53 6.95 0.53 +v -23.40 6.95 0.53 +v -23.40 7.80 -0.48 +v -22.53 7.80 -0.48 +v -22.53 7.80 -2.46 +v -23.40 7.80 -2.46 +v -23.40 6.95 -0.48 +v -22.53 6.95 -0.48 +v -22.53 6.95 -2.46 +v -23.40 6.95 -2.46 +v -23.40 7.80 -3.47 +v -22.53 7.80 -3.47 +v -22.53 7.80 -5.45 +v -23.40 7.80 -5.45 +v -23.40 6.95 -3.47 +v -22.53 6.95 -3.47 +v -22.53 6.95 -5.45 +v -23.40 6.95 -5.45 +v -21.45 7.80 -6.02 +v -21.45 7.80 -6.88 +v -23.44 7.80 -6.88 +v -23.44 7.80 -6.02 +v -21.45 6.95 -6.02 +v -21.45 6.95 -6.88 +v -23.44 6.95 -6.88 +v -23.44 6.95 -6.02 +v -18.47 7.80 -6.02 +v -18.47 7.80 -6.88 +v -20.45 7.80 -6.88 +v -20.45 7.80 -6.02 +v -18.47 6.95 -6.02 +v -18.47 6.95 -6.88 +v -20.45 6.95 -6.88 +v -20.45 6.95 -6.02 +v -15.48 7.80 -6.02 +v -15.48 7.80 -6.88 +v -17.46 7.80 -6.88 +v -17.46 7.80 -6.02 +v -15.48 6.95 -6.02 +v -15.48 6.95 -6.88 +v -17.46 6.95 -6.88 +v -17.46 6.95 -6.02 +v -7.10 7.80 -12.06 +v -7.10 7.80 -12.93 +v -9.08 7.80 -12.93 +v -9.08 7.80 -12.06 +v -7.10 6.95 -12.06 +v -7.10 6.95 -12.93 +v -9.08 6.95 -12.93 +v -9.08 6.95 -12.06 +v -4.46 7.80 -12.06 +v -4.46 7.80 -12.93 +v -6.45 7.80 -12.93 +v -6.45 7.80 -12.06 +v -4.46 6.95 -12.06 +v -4.46 6.95 -12.93 +v -6.45 6.95 -12.93 +v -6.45 6.95 -12.06 +v -1.83 7.80 -12.06 +v -1.83 7.80 -12.93 +v -3.81 7.80 -12.93 +v -3.81 7.80 -12.06 +v -1.83 6.95 -12.06 +v -1.83 6.95 -12.93 +v -3.81 6.95 -12.93 +v -3.81 6.95 -12.06 +v 0.81 7.80 -12.06 +v 0.81 7.80 -12.93 +v -1.17 7.80 -12.93 +v -1.17 7.80 -12.06 +v 0.81 6.95 -12.06 +v 0.81 6.95 -12.93 +v -1.17 6.95 -12.93 +v -1.17 6.95 -12.06 +v 3.44 7.80 -12.06 +v 3.44 7.80 -12.93 +v 1.46 7.80 -12.93 +v 1.46 7.80 -12.06 +v 3.44 6.95 -12.06 +v 3.44 6.95 -12.93 +v 1.46 6.95 -12.93 +v 1.46 6.95 -12.06 +v 6.08 7.80 -12.06 +v 6.08 7.80 -12.93 +v 4.10 7.80 -12.93 +v 4.10 7.80 -12.06 +v 6.08 6.95 -12.06 +v 6.08 6.95 -12.93 +v 4.10 6.95 -12.93 +v 4.10 6.95 -12.06 +v 8.72 7.80 -12.06 +v 8.72 7.80 -12.93 +v 6.74 7.80 -12.93 +v 6.74 7.80 -12.06 +v 8.72 6.95 -12.06 +v 8.72 6.95 -12.93 +v 6.74 6.95 -12.93 +v 6.74 6.95 -12.06 +v -4.39 18.64 -6.78 +v -4.39 18.64 -7.64 +v -6.37 18.64 -7.64 +v -6.37 18.64 -6.78 +v -4.39 17.79 -6.78 +v -4.39 17.79 -7.64 +v -6.37 17.79 -7.64 +v -6.37 17.79 -6.78 +v -1.66 18.64 -6.78 +v -1.66 18.64 -7.64 +v -3.64 18.64 -7.64 +v -3.64 18.64 -6.78 +v -1.66 17.79 -6.78 +v -1.66 17.79 -7.64 +v -3.64 17.79 -7.64 +v -3.64 17.79 -6.78 +v 1.06 18.64 -6.78 +v 1.06 18.64 -7.64 +v -0.92 18.64 -7.64 +v -0.92 18.64 -6.78 +v 1.06 17.79 -6.78 +v 1.06 17.79 -7.64 +v -0.92 17.79 -7.64 +v -0.92 17.79 -6.78 +v 3.79 18.64 -6.78 +v 3.79 18.64 -7.64 +v 1.80 18.64 -7.64 +v 1.80 18.64 -6.78 +v 3.79 17.79 -6.78 +v 3.79 17.79 -7.64 +v 1.80 17.79 -7.64 +v 1.80 17.79 -6.78 +v 6.51 18.64 -6.78 +v 6.51 18.64 -7.64 +v 4.53 18.64 -7.64 +v 4.53 18.64 -6.78 +v 6.51 17.79 -6.78 +v 6.51 17.79 -7.64 +v 4.53 17.79 -7.64 +v 4.53 17.79 -6.78 +v 9.24 18.64 -6.78 +v 9.24 18.64 -7.64 +v 7.25 18.64 -7.64 +v 7.25 18.64 -6.78 +v 9.24 17.79 -6.78 +v 9.24 17.79 -7.64 +v 7.25 17.79 -7.64 +v 7.25 17.79 -6.78 +v -7.11 18.64 -6.78 +v -7.11 18.64 -7.64 +v -9.09 18.64 -7.64 +v -9.09 18.64 -6.78 +v -7.11 17.79 -6.78 +v -7.11 17.79 -7.64 +v -9.09 17.79 -7.64 +v -9.09 17.79 -6.78 +v -9.92 18.64 -6.55 +v -10.78 18.64 -6.55 +v -10.78 18.64 -4.56 +v -9.92 18.64 -4.56 +v -9.92 17.79 -6.55 +v -10.78 17.79 -6.55 +v -10.78 17.79 -4.56 +v -9.92 17.79 -4.56 +v -9.92 18.64 -3.82 +v -10.78 18.64 -3.82 +v -10.78 18.64 -1.84 +v -9.92 18.64 -1.84 +v -9.92 17.79 -3.82 +v -10.78 17.79 -3.82 +v -10.78 17.79 -1.84 +v -9.92 17.79 -1.84 +v -9.92 18.64 -1.10 +v -10.78 18.64 -1.10 +v -10.78 18.64 0.88 +v -9.92 18.64 0.88 +v -9.92 17.79 -1.10 +v -10.78 17.79 -1.10 +v -10.78 17.79 0.88 +v -9.92 17.79 0.88 +v -9.92 18.64 1.63 +v -10.78 18.64 1.63 +v -10.78 18.64 3.61 +v -9.92 18.64 3.61 +v -9.92 17.79 1.63 +v -10.78 17.79 1.63 +v -10.78 17.79 3.61 +v -9.92 17.79 3.61 +v -7.11 18.64 7.48 +v -7.11 18.64 6.62 +v -9.09 18.64 6.62 +v -9.09 18.64 7.48 +v -7.11 17.79 7.48 +v -7.11 17.79 6.62 +v -9.09 17.79 6.62 +v -9.09 17.79 7.48 +v -4.39 18.64 7.48 +v -4.39 18.64 6.62 +v -6.37 18.64 6.62 +v -6.37 18.64 7.48 +v -4.39 17.79 7.48 +v -4.39 17.79 6.62 +v -6.37 17.79 6.62 +v -6.37 17.79 7.48 +v -1.66 18.64 7.48 +v -1.66 18.64 6.62 +v -3.64 18.64 6.62 +v -3.64 18.64 7.48 +v -1.66 17.79 7.48 +v -1.66 17.79 6.62 +v -3.64 17.79 6.62 +v -3.64 17.79 7.48 +v 1.06 18.64 7.48 +v 1.06 18.64 6.62 +v -0.92 18.64 6.62 +v -0.92 18.64 7.48 +v 1.06 17.79 7.48 +v 1.06 17.79 6.62 +v -0.92 17.79 6.62 +v -0.92 17.79 7.48 +v 3.79 18.64 7.48 +v 3.79 18.64 6.62 +v 1.80 18.64 6.62 +v 1.80 18.64 7.48 +v 3.79 17.79 7.48 +v 3.79 17.79 6.62 +v 1.80 17.79 6.62 +v 1.80 17.79 7.48 +v 9.24 18.64 7.48 +v 9.24 18.64 6.62 +v 7.25 18.64 6.62 +v 7.25 18.64 7.48 +v 9.24 17.79 7.48 +v 9.24 17.79 6.62 +v 7.25 17.79 6.62 +v 7.25 17.79 7.48 +v 6.51 18.64 7.48 +v 6.51 18.64 6.62 +v 4.53 18.64 6.62 +v 4.53 18.64 7.48 +v 6.51 17.79 7.48 +v 6.51 17.79 6.62 +v 4.53 17.79 6.62 +v 4.53 17.79 7.48 +v 10.85 18.64 -6.55 +v 9.99 18.64 -6.55 +v 9.99 18.64 -4.56 +v 10.85 18.64 -4.56 +v 10.85 17.79 -6.55 +v 9.99 17.79 -6.55 +v 9.99 17.79 -4.56 +v 10.85 17.79 -4.56 +v 10.85 18.64 -3.82 +v 9.99 18.64 -3.82 +v 9.99 18.64 -1.84 +v 10.85 18.64 -1.84 +v 10.85 17.79 -3.82 +v 9.99 17.79 -3.82 +v 9.99 17.79 -1.84 +v 10.85 17.79 -1.84 +v 10.85 18.64 -1.10 +v 9.99 18.64 -1.10 +v 9.99 18.64 0.88 +v 10.85 18.64 0.88 +v 10.85 17.79 -1.10 +v 9.99 17.79 -1.10 +v 9.99 17.79 0.88 +v 10.85 17.79 0.88 +v 10.85 18.64 1.63 +v 9.99 18.64 1.63 +v 9.99 18.64 3.61 +v 10.85 18.64 3.61 +v 10.85 17.79 1.63 +v 9.99 17.79 1.63 +v 9.99 17.79 3.61 +v 10.85 17.79 3.61 +v 10.85 18.64 4.35 +v 9.99 18.64 4.35 +v 9.99 18.64 6.33 +v 10.85 18.64 6.33 +v 10.85 17.79 4.35 +v 9.99 17.79 4.35 +v 9.99 17.79 6.33 +v 10.85 17.79 6.33 +v 11.17 6.95 -11.03 +v 11.17 6.95 -12.83 +v -11.17 6.95 -12.83 +v -11.17 6.95 -11.03 +v 11.17 -0.02 -12.83 +v -11.17 -0.02 -12.83 +v -19.96 4.66 -6.77 +v -19.60 5.22 -6.77 +v -19.60 2.88 -6.77 +v -19.96 2.92 -6.77 +v -20.24 2.96 -6.83 +v -20.24 2.71 -6.83 +v -20.24 2.71 -6.75 +v -20.24 2.96 -6.75 +v -19.60 5.63 -6.83 +v -20.15 4.82 -6.83 +v -20.15 4.82 -6.75 +v -19.60 5.63 -6.75 +v -18.96 2.71 -6.83 +v -18.96 2.96 -6.83 +v -18.96 2.96 -6.75 +v -18.96 2.71 -6.75 +v -19.60 2.63 -6.83 +v -19.05 2.71 -6.83 +v -19.05 2.71 -6.75 +v -19.60 2.63 -6.75 +v -20.15 2.71 -6.92 +v -20.15 2.96 -6.92 +v -19.96 2.92 -6.92 +v -19.60 5.22 -6.83 +v -19.96 4.66 -6.83 +v -19.05 2.96 -6.92 +v -19.05 2.71 -6.92 +v -19.24 2.94 -6.92 +v -19.60 2.63 -6.92 +v -19.60 2.88 -6.92 +v -19.24 4.66 -6.77 +v -19.24 2.94 -6.77 +v -19.05 4.82 -6.83 +v -19.05 4.82 -6.75 +v -20.15 2.71 -6.83 +v -20.15 2.71 -6.75 +v -19.24 4.66 -6.83 +v -19.96 2.92 -6.83 +v -19.24 2.94 -6.83 +v -19.60 2.88 -6.83 +v -19.05 2.96 -6.83 +v -19.05 2.96 -6.75 +v -20.15 2.96 -6.83 +v -20.15 2.96 -6.75 +v -20.24 2.96 -6.92 +v -20.24 2.71 -6.92 +v -18.96 2.71 -6.92 +v -18.96 2.96 -6.92 +v -6.81 4.66 -12.83 +v -6.45 5.22 -12.83 +v -6.45 2.88 -12.83 +v -6.81 2.92 -12.83 +v -7.09 2.96 -12.89 +v -7.09 2.71 -12.89 +v -7.09 2.71 -12.81 +v -7.09 2.96 -12.81 +v -6.45 5.63 -12.89 +v -6.99 4.82 -12.89 +v -6.99 4.82 -12.81 +v -6.45 5.63 -12.81 +v -5.81 2.71 -12.89 +v -5.81 2.96 -12.89 +v -5.81 2.96 -12.81 +v -5.81 2.71 -12.81 +v -6.45 2.63 -12.89 +v -5.90 2.71 -12.89 +v -5.90 2.71 -12.81 +v -6.45 2.63 -12.81 +v -6.99 2.71 -12.98 +v -6.99 2.96 -12.98 +v -6.81 2.92 -12.98 +v -6.45 5.22 -12.89 +v -6.81 4.66 -12.89 +v -5.90 2.96 -12.98 +v -5.90 2.71 -12.98 +v -6.09 2.94 -12.98 +v -6.45 2.63 -12.98 +v -6.45 2.88 -12.98 +v -6.09 4.66 -12.83 +v -6.09 2.94 -12.83 +v -5.90 4.82 -12.89 +v -5.90 4.82 -12.81 +v -6.99 2.71 -12.89 +v -6.99 2.71 -12.81 +v -6.09 4.66 -12.89 +v -6.81 2.92 -12.89 +v -6.09 2.94 -12.89 +v -6.45 2.88 -12.89 +v -5.90 2.96 -12.89 +v -5.90 2.96 -12.81 +v -6.99 2.96 -12.89 +v -6.99 2.96 -12.81 +v -7.09 2.96 -12.98 +v -7.09 2.71 -12.98 +v -5.81 2.71 -12.98 +v -5.81 2.96 -12.98 +v -4.17 10.56 -11.04 +v -3.81 11.12 -11.04 +v -3.81 8.77 -11.04 +v -4.17 8.82 -11.04 +v -4.45 8.86 -11.10 +v -4.45 8.61 -11.10 +v -4.45 8.61 -11.02 +v -4.45 8.86 -11.02 +v -3.81 11.53 -11.10 +v -4.36 10.72 -11.10 +v -4.36 10.72 -11.02 +v -3.81 11.53 -11.02 +v -3.17 8.61 -11.10 +v -3.17 8.86 -11.10 +v -3.17 8.86 -11.02 +v -3.17 8.61 -11.02 +v -3.81 8.52 -11.10 +v -3.27 8.61 -11.10 +v -3.27 8.61 -11.02 +v -3.81 8.52 -11.02 +v -4.36 8.61 -11.19 +v -4.36 8.86 -11.19 +v -4.17 8.82 -11.19 +v -3.81 11.12 -11.10 +v -4.17 10.56 -11.10 +v -3.27 8.86 -11.19 +v -3.27 8.61 -11.19 +v -3.45 8.83 -11.19 +v -3.81 8.52 -11.19 +v -3.81 8.77 -11.19 +v -3.45 10.56 -11.04 +v -3.45 8.83 -11.04 +v -3.27 10.72 -11.10 +v -3.27 10.72 -11.02 +v -4.36 8.61 -11.10 +v -4.36 8.61 -11.02 +v -3.45 10.56 -11.10 +v -4.17 8.82 -11.10 +v -3.45 8.83 -11.10 +v -3.81 8.77 -11.10 +v -3.27 8.86 -11.10 +v -3.27 8.86 -11.02 +v -4.36 8.86 -11.10 +v -4.36 8.86 -11.02 +v -4.45 8.86 -11.19 +v -4.45 8.61 -11.19 +v -3.17 8.61 -11.19 +v -3.17 8.86 -11.19 +v 3.09 10.56 -11.04 +v 3.44 11.12 -11.04 +v 3.44 8.77 -11.04 +v 3.09 8.82 -11.04 +v 2.81 8.86 -11.10 +v 2.81 8.61 -11.10 +v 2.81 8.61 -11.02 +v 2.81 8.86 -11.02 +v 3.44 11.53 -11.10 +v 2.90 10.72 -11.10 +v 2.90 10.72 -11.02 +v 3.44 11.53 -11.02 +v 4.08 8.61 -11.10 +v 4.08 8.86 -11.10 +v 4.08 8.86 -11.02 +v 4.08 8.61 -11.02 +v 3.44 8.52 -11.10 +v 3.99 8.61 -11.10 +v 3.99 8.61 -11.02 +v 3.44 8.52 -11.02 +v 2.90 8.61 -11.19 +v 2.90 8.86 -11.19 +v 3.09 8.82 -11.19 +v 3.44 11.12 -11.10 +v 3.09 10.56 -11.10 +v 3.99 8.86 -11.19 +v 3.99 8.61 -11.19 +v 3.80 8.83 -11.19 +v 3.44 8.52 -11.19 +v 3.44 8.77 -11.19 +v 3.80 10.56 -11.04 +v 3.80 8.83 -11.04 +v 3.99 10.72 -11.10 +v 3.99 10.72 -11.02 +v 2.90 8.61 -11.10 +v 2.90 8.61 -11.02 +v 3.80 10.56 -11.10 +v 3.09 8.82 -11.10 +v 3.80 8.83 -11.10 +v 3.44 8.77 -11.10 +v 3.99 8.86 -11.10 +v 3.99 8.86 -11.02 +v 2.90 8.86 -11.10 +v 2.90 8.86 -11.02 +v 2.81 8.86 -11.19 +v 2.81 8.61 -11.19 +v 4.08 8.61 -11.19 +v 4.08 8.86 -11.19 +v 5.72 4.66 -12.83 +v 6.08 5.22 -12.83 +v 6.08 2.88 -12.83 +v 5.72 2.92 -12.83 +v 5.44 2.96 -12.89 +v 5.44 2.71 -12.89 +v 5.44 2.71 -12.81 +v 5.44 2.96 -12.81 +v 6.08 5.63 -12.89 +v 5.54 4.82 -12.89 +v 5.54 4.82 -12.81 +v 6.08 5.63 -12.81 +v 6.72 2.71 -12.89 +v 6.72 2.96 -12.89 +v 6.72 2.96 -12.81 +v 6.72 2.71 -12.81 +v 6.08 2.63 -12.89 +v 6.63 2.71 -12.89 +v 6.63 2.71 -12.81 +v 6.08 2.63 -12.81 +v 5.54 2.71 -12.98 +v 5.54 2.96 -12.98 +v 5.72 2.92 -12.98 +v 6.08 5.22 -12.89 +v 5.72 4.66 -12.89 +v 6.63 2.96 -12.98 +v 6.63 2.71 -12.98 +v 6.44 2.94 -12.98 +v 6.08 2.63 -12.98 +v 6.08 2.88 -12.98 +v 6.44 4.66 -12.83 +v 6.44 2.94 -12.83 +v 6.63 4.82 -12.89 +v 6.63 4.82 -12.81 +v 5.54 2.71 -12.89 +v 5.54 2.71 -12.81 +v 6.44 4.66 -12.89 +v 5.72 2.92 -12.89 +v 6.44 2.94 -12.89 +v 6.08 2.88 -12.89 +v 6.63 2.96 -12.89 +v 6.63 2.96 -12.81 +v 5.54 2.96 -12.89 +v 5.54 2.96 -12.81 +v 5.44 2.96 -12.98 +v 5.44 2.71 -12.98 +v 6.72 2.71 -12.98 +v 6.72 2.96 -12.98 +v -6.30 20.76 -3.63 +v -5.94 21.32 -3.63 +v -5.94 18.98 -3.63 +v -6.30 19.02 -3.63 +v -6.58 19.06 -3.69 +v -6.58 18.81 -3.69 +v -6.58 18.81 -3.60 +v -6.58 19.06 -3.60 +v -5.94 21.73 -3.69 +v -6.49 20.92 -3.69 +v -6.49 20.92 -3.60 +v -5.94 21.73 -3.60 +v -5.30 18.81 -3.69 +v -5.30 19.06 -3.69 +v -5.30 19.06 -3.60 +v -5.30 18.81 -3.60 +v -5.94 18.73 -3.69 +v -5.40 18.81 -3.69 +v -5.40 18.81 -3.60 +v -5.94 18.73 -3.60 +v -6.49 18.81 -3.78 +v -6.49 19.06 -3.78 +v -6.30 19.02 -3.78 +v -5.94 21.32 -3.69 +v -6.30 20.76 -3.69 +v -5.40 19.06 -3.78 +v -5.40 18.81 -3.78 +v -5.58 19.04 -3.78 +v -5.94 18.73 -3.78 +v -5.94 18.98 -3.78 +v -5.58 20.76 -3.63 +v -5.58 19.04 -3.63 +v -5.40 20.92 -3.69 +v -5.40 20.92 -3.60 +v -6.49 18.81 -3.69 +v -6.49 18.81 -3.60 +v -5.58 20.76 -3.69 +v -6.30 19.02 -3.69 +v -5.58 19.04 -3.69 +v -5.94 18.98 -3.69 +v -5.40 19.06 -3.69 +v -5.40 19.06 -3.60 +v -6.49 19.06 -3.69 +v -6.49 19.06 -3.60 +v -6.58 19.06 -3.78 +v -6.58 18.81 -3.78 +v -5.30 18.81 -3.78 +v -5.30 19.06 -3.78 +v 5.89 20.76 -3.63 +v 6.25 21.32 -3.63 +v 6.25 18.98 -3.63 +v 5.89 19.02 -3.63 +v 5.61 19.06 -3.69 +v 5.61 18.81 -3.69 +v 5.61 18.81 -3.60 +v 5.61 19.06 -3.60 +v 6.25 21.73 -3.69 +v 5.70 20.92 -3.69 +v 5.70 20.92 -3.60 +v 6.25 21.73 -3.60 +v 6.89 18.81 -3.69 +v 6.89 19.06 -3.69 +v 6.89 19.06 -3.60 +v 6.89 18.81 -3.60 +v 6.25 18.73 -3.69 +v 6.79 18.81 -3.69 +v 6.79 18.81 -3.60 +v 6.25 18.73 -3.60 +v 5.70 18.81 -3.78 +v 5.70 19.06 -3.78 +v 5.89 19.02 -3.78 +v 6.25 21.32 -3.69 +v 5.89 20.76 -3.69 +v 6.79 19.06 -3.78 +v 6.79 18.81 -3.78 +v 6.61 19.04 -3.78 +v 6.25 18.73 -3.78 +v 6.25 18.98 -3.78 +v 6.61 20.76 -3.63 +v 6.61 19.04 -3.63 +v 6.79 20.92 -3.69 +v 6.79 20.92 -3.60 +v 5.70 18.81 -3.69 +v 5.70 18.81 -3.60 +v 6.61 20.76 -3.69 +v 5.89 19.02 -3.69 +v 6.61 19.04 -3.69 +v 6.25 18.98 -3.69 +v 6.79 19.06 -3.69 +v 6.79 19.06 -3.60 +v 5.70 19.06 -3.69 +v 5.70 19.06 -3.60 +v 5.61 19.06 -3.78 +v 5.61 18.81 -3.78 +v 6.89 18.81 -3.78 +v 6.89 19.06 -3.78 +v -8.76 20.76 0.36 +v -8.76 21.32 -0.00 +v -8.76 18.98 -0.00 +v -8.76 19.02 0.36 +v -8.82 19.06 0.64 +v -8.82 18.81 0.64 +v -8.74 18.81 0.64 +v -8.74 19.06 0.64 +v -8.82 21.73 -0.00 +v -8.82 20.92 0.55 +v -8.74 20.92 0.55 +v -8.74 21.73 -0.00 +v -8.82 18.81 -0.64 +v -8.82 19.06 -0.64 +v -8.74 19.06 -0.64 +v -8.74 18.81 -0.64 +v -8.82 18.73 -0.00 +v -8.82 18.81 -0.55 +v -8.74 18.81 -0.55 +v -8.74 18.73 -0.00 +v -8.91 18.81 0.55 +v -8.91 19.06 0.55 +v -8.91 19.02 0.36 +v -8.82 21.32 -0.00 +v -8.82 20.76 0.36 +v -8.91 19.06 -0.55 +v -8.91 18.81 -0.55 +v -8.91 19.04 -0.36 +v -8.91 18.73 -0.00 +v -8.91 18.98 -0.00 +v -8.76 20.76 -0.36 +v -8.76 19.04 -0.36 +v -8.82 20.92 -0.55 +v -8.74 20.92 -0.55 +v -8.82 18.81 0.55 +v -8.74 18.81 0.55 +v -8.82 20.76 -0.36 +v -8.82 19.02 0.36 +v -8.82 19.04 -0.36 +v -8.82 18.98 -0.00 +v -8.82 19.06 -0.55 +v -8.74 19.06 -0.55 +v -8.82 19.06 0.55 +v -8.74 19.06 0.55 +v -8.91 19.06 0.64 +v -8.91 18.81 0.64 +v -8.91 18.81 -0.64 +v -8.91 19.06 -0.64 +v -23.42 4.66 -0.35 +v -23.42 2.92 -0.35 +v -23.42 2.88 0.01 +v -23.42 5.22 0.01 +v -23.48 2.96 -0.63 +v -23.40 2.96 -0.63 +v -23.40 2.71 -0.63 +v -23.48 2.71 -0.63 +v -23.48 5.63 0.01 +v -23.40 5.63 0.01 +v -23.40 4.82 -0.54 +v -23.48 4.82 -0.54 +v -23.48 2.71 0.65 +v -23.40 2.71 0.65 +v -23.40 2.96 0.65 +v -23.48 2.96 0.65 +v -23.48 2.63 0.01 +v -23.40 2.63 0.01 +v -23.40 2.71 0.55 +v -23.48 2.71 0.55 +v -23.57 2.71 -0.54 +v -23.57 2.92 -0.35 +v -23.57 2.96 -0.54 +v -23.48 5.22 0.01 +v -23.48 4.66 -0.35 +v -23.57 2.96 0.55 +v -23.57 2.94 0.37 +v -23.57 2.71 0.55 +v -23.57 2.63 0.01 +v -23.57 2.88 0.01 +v -23.42 4.66 0.37 +v -23.42 2.94 0.37 +v -23.48 4.82 0.55 +v -23.40 4.82 0.55 +v -23.48 2.71 -0.54 +v -23.40 2.71 -0.54 +v -23.48 4.66 0.37 +v -23.48 2.92 -0.35 +v -23.48 2.94 0.37 +v -23.48 2.88 0.01 +v -23.48 2.96 0.55 +v -23.40 2.96 0.55 +v -23.40 2.96 -0.54 +v -23.48 2.96 -0.54 +v -23.57 2.71 -0.63 +v -23.57 2.96 -0.63 +v -23.57 2.96 0.65 +v -23.57 2.71 0.65 +v -19.96 4.66 6.78 +v -19.96 2.92 6.78 +v -19.60 2.88 6.78 +v -19.60 5.22 6.78 +v -20.24 2.96 6.85 +v -20.24 2.96 6.76 +v -20.24 2.71 6.76 +v -20.24 2.71 6.85 +v -19.60 5.63 6.85 +v -19.60 5.63 6.76 +v -20.15 4.82 6.76 +v -20.15 4.82 6.85 +v -18.96 2.71 6.85 +v -18.96 2.71 6.76 +v -18.96 2.96 6.76 +v -18.96 2.96 6.85 +v -19.60 2.63 6.85 +v -19.60 2.63 6.76 +v -19.05 2.71 6.76 +v -19.05 2.71 6.85 +v -20.15 2.71 6.94 +v -19.96 2.92 6.94 +v -20.15 2.96 6.94 +v -19.60 5.22 6.85 +v -19.96 4.66 6.85 +v -19.05 2.96 6.94 +v -19.24 2.94 6.94 +v -19.05 2.71 6.94 +v -19.60 2.63 6.94 +v -19.60 2.88 6.94 +v -19.24 4.66 6.78 +v -19.24 2.94 6.78 +v -19.05 4.82 6.85 +v -19.05 4.82 6.76 +v -20.15 2.71 6.85 +v -20.15 2.71 6.76 +v -19.24 4.66 6.85 +v -19.96 2.92 6.85 +v -19.24 2.94 6.85 +v -19.60 2.88 6.85 +v -19.05 2.96 6.85 +v -19.05 2.96 6.76 +v -20.15 2.96 6.76 +v -20.15 2.96 6.85 +v -20.24 2.71 6.94 +v -20.24 2.96 6.94 +v -18.96 2.96 6.94 +v -18.96 2.71 6.94 +v -5.42 9.62 11.04 +v -5.42 7.88 11.04 +v -5.06 7.83 11.04 +v -5.06 10.18 11.04 +v -5.70 7.92 11.10 +v -5.70 7.92 11.01 +v -5.70 7.67 11.01 +v -5.70 7.67 11.10 +v -5.06 10.59 11.10 +v -5.06 10.59 11.01 +v -5.61 9.78 11.01 +v -5.61 9.78 11.10 +v -4.43 7.67 11.10 +v -4.43 7.67 11.01 +v -4.43 7.92 11.01 +v -4.43 7.92 11.10 +v -5.06 7.58 11.10 +v -5.06 7.58 11.01 +v -4.52 7.67 11.01 +v -4.52 7.67 11.10 +v -5.61 7.67 11.19 +v -5.42 7.88 11.19 +v -5.61 7.92 11.19 +v -5.06 10.18 11.10 +v -5.42 9.62 11.10 +v -4.52 7.92 11.19 +v -4.71 7.89 11.19 +v -4.52 7.67 11.19 +v -5.06 7.58 11.19 +v -5.06 7.83 11.19 +v -4.71 9.62 11.04 +v -4.71 7.89 11.04 +v -4.52 9.78 11.10 +v -4.52 9.78 11.01 +v -5.61 7.67 11.10 +v -5.61 7.67 11.01 +v -4.71 9.62 11.10 +v -5.42 7.88 11.10 +v -4.71 7.89 11.10 +v -5.06 7.83 11.10 +v -4.52 7.92 11.10 +v -4.52 7.92 11.01 +v -5.61 7.92 11.01 +v -5.61 7.92 11.10 +v -5.70 7.67 11.19 +v -5.70 7.92 11.19 +v -4.43 7.92 11.19 +v -4.43 7.67 11.19 +v 3.43 9.62 11.04 +v 3.43 7.88 11.04 +v 3.79 7.83 11.04 +v 3.79 10.18 11.04 +v 3.15 7.92 11.10 +v 3.15 7.92 11.01 +v 3.15 7.67 11.01 +v 3.15 7.67 11.10 +v 3.79 10.59 11.10 +v 3.79 10.59 11.01 +v 3.24 9.78 11.01 +v 3.24 9.78 11.10 +v 4.43 7.67 11.10 +v 4.43 7.67 11.01 +v 4.43 7.92 11.01 +v 4.43 7.92 11.10 +v 3.79 7.58 11.10 +v 3.79 7.58 11.01 +v 4.33 7.67 11.01 +v 4.33 7.67 11.10 +v 3.24 7.67 11.19 +v 3.43 7.88 11.19 +v 3.24 7.92 11.19 +v 3.79 10.18 11.10 +v 3.43 9.62 11.10 +v 4.33 7.92 11.19 +v 4.15 7.89 11.19 +v 4.33 7.67 11.19 +v 3.79 7.58 11.19 +v 3.79 7.83 11.19 +v 4.15 9.62 11.04 +v 4.15 7.89 11.04 +v 4.33 9.78 11.10 +v 4.33 9.78 11.01 +v 3.24 7.67 11.10 +v 3.24 7.67 11.01 +v 4.15 9.62 11.10 +v 3.43 7.88 11.10 +v 4.15 7.89 11.10 +v 3.79 7.83 11.10 +v 4.33 7.92 11.10 +v 4.33 7.92 11.01 +v 3.24 7.92 11.01 +v 3.24 7.92 11.10 +v 3.15 7.67 11.19 +v 3.15 7.92 11.19 +v 4.43 7.92 11.19 +v 4.43 7.67 11.19 +v -0.84 4.66 11.04 +v -0.84 2.92 11.04 +v -0.48 2.88 11.04 +v -0.48 5.22 11.04 +v -1.12 2.96 11.10 +v -1.12 2.96 11.01 +v -1.12 2.71 11.01 +v -1.12 2.71 11.10 +v -0.48 5.63 11.10 +v -0.48 5.63 11.01 +v -1.03 4.82 11.01 +v -1.03 4.82 11.10 +v 0.15 2.71 11.10 +v 0.15 2.71 11.01 +v 0.15 2.96 11.01 +v 0.15 2.96 11.10 +v -0.48 2.63 11.10 +v -0.48 2.63 11.01 +v 0.06 2.71 11.01 +v 0.06 2.71 11.10 +v -1.03 2.71 11.19 +v -0.84 2.92 11.19 +v -1.03 2.96 11.19 +v -0.48 5.22 11.10 +v -0.84 4.66 11.10 +v 0.06 2.96 11.19 +v -0.13 2.94 11.19 +v 0.06 2.71 11.19 +v -0.48 2.63 11.19 +v -0.48 2.88 11.19 +v -0.13 4.66 11.04 +v -0.13 2.94 11.04 +v 0.06 4.82 11.10 +v 0.06 4.82 11.01 +v -1.03 2.71 11.10 +v -1.03 2.71 11.01 +v -0.13 4.66 11.10 +v -0.84 2.92 11.10 +v -0.13 2.94 11.10 +v -0.48 2.88 11.10 +v 0.06 2.96 11.10 +v 0.06 2.96 11.01 +v -1.03 2.96 11.01 +v -1.03 2.96 11.10 +v -1.12 2.71 11.19 +v -1.12 2.96 11.19 +v 0.15 2.96 11.19 +v 0.15 2.71 11.19 +v 0.43 20.76 3.64 +v 0.07 21.32 3.64 +v 0.07 18.98 3.64 +v 0.43 19.02 3.64 +v 0.71 19.06 3.70 +v 0.71 18.81 3.70 +v 0.71 18.81 3.61 +v 0.71 19.06 3.61 +v 0.07 21.73 3.70 +v 0.62 20.92 3.70 +v 0.62 20.92 3.61 +v 0.07 21.73 3.61 +v -0.57 18.81 3.70 +v -0.57 19.06 3.70 +v -0.57 19.06 3.61 +v -0.57 18.81 3.61 +v 0.07 18.73 3.70 +v -0.47 18.81 3.70 +v -0.47 18.81 3.61 +v 0.07 18.73 3.61 +v 0.62 18.81 3.79 +v 0.62 19.06 3.79 +v 0.43 19.02 3.79 +v 0.07 21.32 3.70 +v 0.43 20.76 3.70 +v -0.47 19.06 3.79 +v -0.47 18.81 3.79 +v -0.29 19.04 3.79 +v 0.07 18.73 3.79 +v 0.07 18.98 3.79 +v -0.29 20.76 3.64 +v -0.29 19.04 3.64 +v -0.47 20.92 3.70 +v -0.47 20.92 3.61 +v 0.62 18.81 3.70 +v 0.62 18.81 3.61 +v -0.29 20.76 3.70 +v 0.43 19.02 3.70 +v -0.29 19.04 3.70 +v 0.07 18.98 3.70 +v -0.47 19.06 3.70 +v -0.47 19.06 3.61 +v 0.62 19.06 3.70 +v 0.62 19.06 3.61 +v 0.71 19.06 3.79 +v 0.71 18.81 3.79 +v -0.57 18.81 3.79 +v -0.57 19.06 3.79 +v 6.58 20.76 3.64 +v 6.22 21.32 3.64 +v 6.22 18.98 3.64 +v 6.58 19.02 3.64 +v 6.86 19.06 3.70 +v 6.86 18.81 3.70 +v 6.86 18.81 3.61 +v 6.86 19.06 3.61 +v 6.22 21.73 3.70 +v 6.76 20.92 3.70 +v 6.76 20.92 3.61 +v 6.22 21.73 3.61 +v 5.58 18.81 3.70 +v 5.58 19.06 3.70 +v 5.58 19.06 3.61 +v 5.58 18.81 3.61 +v 6.22 18.73 3.70 +v 5.67 18.81 3.70 +v 5.67 18.81 3.61 +v 6.22 18.73 3.61 +v 6.76 18.81 3.79 +v 6.76 19.06 3.79 +v 6.58 19.02 3.79 +v 6.22 21.32 3.70 +v 6.58 20.76 3.70 +v 5.67 19.06 3.79 +v 5.67 18.81 3.79 +v 5.86 19.04 3.79 +v 6.22 18.73 3.79 +v 6.22 18.98 3.79 +v 5.86 20.76 3.64 +v 5.86 19.04 3.64 +v 5.67 20.92 3.70 +v 5.67 20.92 3.61 +v 6.76 18.81 3.70 +v 6.76 18.81 3.61 +v 5.86 20.76 3.70 +v 6.58 19.02 3.70 +v 5.86 19.04 3.70 +v 6.22 18.98 3.70 +v 5.67 19.06 3.70 +v 5.67 19.06 3.61 +v 6.76 19.06 3.70 +v 6.76 19.06 3.61 +v 6.86 19.06 3.79 +v 6.86 18.81 3.79 +v 5.58 18.81 3.79 +v 5.58 19.06 3.79 +v 12.89 4.66 -3.98 +v 12.89 5.22 -3.62 +v 12.89 2.88 -3.62 +v 12.89 2.92 -3.98 +v 12.96 2.96 -4.26 +v 12.96 2.71 -4.26 +v 12.87 2.71 -4.26 +v 12.87 2.96 -4.26 +v 12.96 5.63 -3.62 +v 12.96 4.82 -4.17 +v 12.87 4.82 -4.17 +v 12.87 5.63 -3.62 +v 12.96 2.71 -2.98 +v 12.96 2.96 -2.98 +v 12.87 2.96 -2.98 +v 12.87 2.71 -2.98 +v 12.96 2.63 -3.62 +v 12.96 2.71 -3.08 +v 12.87 2.71 -3.08 +v 12.87 2.63 -3.62 +v 13.05 2.71 -4.17 +v 13.05 2.96 -4.17 +v 13.05 2.92 -3.98 +v 12.96 5.22 -3.62 +v 12.96 4.66 -3.98 +v 13.05 2.96 -3.08 +v 13.05 2.71 -3.08 +v 13.05 2.94 -3.26 +v 13.05 2.63 -3.62 +v 13.05 2.88 -3.62 +v 12.89 4.66 -3.26 +v 12.89 2.94 -3.26 +v 12.96 4.82 -3.08 +v 12.87 4.82 -3.08 +v 12.96 2.71 -4.17 +v 12.87 2.71 -4.17 +v 12.96 4.66 -3.26 +v 12.96 2.92 -3.98 +v 12.96 2.94 -3.26 +v 12.96 2.88 -3.62 +v 12.96 2.96 -3.08 +v 12.87 2.96 -3.08 +v 12.96 2.96 -4.17 +v 12.87 2.96 -4.17 +v 13.05 2.96 -4.26 +v 13.05 2.71 -4.26 +v 13.05 2.71 -2.98 +v 13.05 2.96 -2.98 +v 12.89 4.66 3.26 +v 12.89 5.22 3.62 +v 12.89 2.88 3.62 +v 12.89 2.92 3.26 +v 12.96 2.96 2.98 +v 12.96 2.71 2.98 +v 12.87 2.71 2.98 +v 12.87 2.96 2.98 +v 12.96 5.63 3.62 +v 12.96 4.82 3.08 +v 12.87 4.82 3.08 +v 12.87 5.63 3.62 +v 12.96 2.71 4.26 +v 12.96 2.96 4.26 +v 12.87 2.96 4.26 +v 12.87 2.71 4.26 +v 12.96 2.63 3.62 +v 12.96 2.71 4.17 +v 12.87 2.71 4.17 +v 12.87 2.63 3.62 +v 13.05 2.71 3.08 +v 13.05 2.96 3.08 +v 13.05 2.92 3.26 +v 12.96 5.22 3.62 +v 12.96 4.66 3.26 +v 13.05 2.96 4.17 +v 13.05 2.71 4.17 +v 13.05 2.94 3.98 +v 13.05 2.63 3.62 +v 13.05 2.88 3.62 +v 12.89 4.66 3.98 +v 12.89 2.94 3.98 +v 12.96 4.82 4.17 +v 12.87 4.82 4.17 +v 12.96 2.71 3.08 +v 12.87 2.71 3.08 +v 12.96 4.66 3.98 +v 12.96 2.92 3.26 +v 12.96 2.94 3.98 +v 12.96 2.88 3.62 +v 12.96 2.96 4.17 +v 12.87 2.96 4.17 +v 12.96 2.96 3.08 +v 12.87 2.96 3.08 +v 13.05 2.96 2.98 +v 13.05 2.71 2.98 +v 13.05 2.71 4.26 +v 13.05 2.96 4.26 +v 8.75 20.76 0.36 +v 8.75 19.02 0.36 +v 8.75 18.98 -0.00 +v 8.75 21.32 -0.00 +v 8.81 19.06 0.64 +v 8.73 19.06 0.64 +v 8.73 18.81 0.64 +v 8.81 18.81 0.64 +v 8.81 21.73 -0.00 +v 8.73 21.73 -0.00 +v 8.73 20.92 0.55 +v 8.81 20.92 0.55 +v 8.81 18.81 -0.64 +v 8.73 18.81 -0.64 +v 8.73 19.06 -0.64 +v 8.81 19.06 -0.64 +v 8.81 18.73 -0.00 +v 8.73 18.73 -0.00 +v 8.73 18.81 -0.55 +v 8.81 18.81 -0.55 +v 8.90 18.81 0.55 +v 8.90 19.02 0.36 +v 8.90 19.06 0.55 +v 8.81 21.32 -0.00 +v 8.81 20.76 0.36 +v 8.90 19.06 -0.55 +v 8.90 19.04 -0.36 +v 8.90 18.81 -0.55 +v 8.90 18.73 -0.00 +v 8.90 18.98 -0.00 +v 8.75 20.76 -0.36 +v 8.75 19.04 -0.36 +v 8.81 20.92 -0.55 +v 8.73 20.92 -0.55 +v 8.81 18.81 0.55 +v 8.73 18.81 0.55 +v 8.81 20.76 -0.36 +v 8.81 19.02 0.36 +v 8.81 19.04 -0.36 +v 8.81 18.98 -0.00 +v 8.81 19.06 -0.55 +v 8.73 19.06 -0.55 +v 8.73 19.06 0.55 +v 8.81 19.06 0.55 +v 8.90 18.81 0.64 +v 8.90 19.06 0.64 +v 8.90 19.06 -0.64 +v 8.90 18.81 -0.64 +v -5.91 20.76 3.64 +v -6.27 21.32 3.64 +v -6.27 18.98 3.64 +v -5.91 19.02 3.64 +v -5.63 19.06 3.70 +v -5.63 18.81 3.70 +v -5.63 18.81 3.61 +v -5.63 19.06 3.61 +v -6.27 21.73 3.70 +v -5.73 20.92 3.70 +v -5.73 20.92 3.61 +v -6.27 21.73 3.61 +v -6.91 18.81 3.70 +v -6.91 19.06 3.70 +v -6.91 19.06 3.61 +v -6.91 18.81 3.61 +v -6.27 18.73 3.70 +v -6.82 18.81 3.70 +v -6.82 18.81 3.61 +v -6.27 18.73 3.61 +v -5.73 18.81 3.79 +v -5.73 19.06 3.79 +v -5.91 19.02 3.79 +v -6.27 21.32 3.70 +v -5.91 20.76 3.70 +v -6.82 19.06 3.79 +v -6.82 18.81 3.79 +v -6.63 19.04 3.79 +v -6.27 18.73 3.79 +v -6.27 18.98 3.79 +v -6.63 20.76 3.64 +v -6.63 19.04 3.64 +v -6.82 20.92 3.70 +v -6.82 20.92 3.61 +v -5.73 18.81 3.70 +v -5.73 18.81 3.61 +v -6.63 20.76 3.70 +v -5.91 19.02 3.70 +v -6.63 19.04 3.70 +v -6.27 18.98 3.70 +v -6.82 19.06 3.70 +v -6.82 19.06 3.61 +v -5.73 19.06 3.70 +v -5.73 19.06 3.61 +v -5.63 19.06 3.79 +v -5.63 18.81 3.79 +v -6.91 18.81 3.79 +v -6.91 19.06 3.79 +v 1.22 3.89 -13.04 +v 1.22 0.00 -13.04 +v 0.00 0.00 -13.04 +v 0.00 4.45 -13.04 +v -2.44 3.02 -13.04 +v -1.22 3.89 -13.04 +v -1.22 0.00 -13.04 +v -2.44 0.00 -13.04 +v 2.44 3.02 -13.04 +v 2.44 0.00 -13.04 +v 2.76 0.00 -12.61 +v 2.76 0.00 -13.28 +v 2.72 2.63 -13.28 +v 2.72 2.63 -12.61 +v 2.32 0.00 -13.28 +v 2.28 2.21 -13.28 +v 2.32 0.00 -12.61 +v 2.28 2.21 -12.61 +v 1.57 4.51 -13.28 +v 1.57 4.51 -12.61 +v 1.32 3.79 -13.28 +v 1.32 3.79 -12.61 +v 0.00 5.20 -13.28 +v 0.00 5.20 -12.61 +v 0.00 4.45 -13.28 +v 0.00 4.45 -12.61 +v -1.57 4.51 -13.28 +v -1.57 4.51 -12.61 +v -1.32 3.79 -13.28 +v -1.32 3.79 -12.61 +v -2.72 2.63 -13.28 +v -2.72 2.63 -12.61 +v -2.28 2.21 -13.28 +v -2.28 2.21 -12.61 +v -2.76 0.00 -13.28 +v -2.76 0.00 -12.61 +v -2.32 0.00 -13.28 +v -2.32 0.00 -12.61 +v -23.02 0.02 -7.19 +v -23.81 0.02 -7.26 +v -23.50 3.76 -6.94 +v -22.95 3.76 -6.89 +v -23.10 0.02 -6.35 +v -23.01 3.76 -6.25 +v -23.88 0.02 -6.42 +v -23.56 3.76 -6.30 +v -23.00 6.77 -7.20 +v -23.83 6.77 -7.27 +v -23.08 7.23 -6.33 +v -23.90 7.23 -6.41 +v -23.14 6.61 -6.66 +v -23.14 6.39 0.01 +v -23.82 6.39 0.01 +v -23.82 6.61 -6.66 +v -23.82 7.03 0.01 +v -23.82 7.24 -6.66 +v -23.14 7.03 0.01 +v -23.14 7.24 -6.66 +v -23.14 6.61 6.68 +v -23.82 6.61 6.68 +v -23.82 7.24 6.68 +v -23.14 7.24 6.68 +v -10.64 6.61 -6.65 +v -17.31 6.39 -6.65 +v -17.31 6.39 -7.33 +v -10.64 6.61 -7.33 +v -17.31 7.03 -7.33 +v -10.64 7.24 -7.33 +v -17.31 7.03 -6.65 +v -10.64 7.24 -6.65 +v -23.99 6.61 -6.65 +v -23.99 6.61 -7.33 +v -23.99 7.24 -7.33 +v -23.99 7.24 -6.65 +v -23.02 0.02 7.20 +v -22.95 3.76 6.91 +v -23.50 3.76 6.95 +v -23.81 0.02 7.27 +v -23.10 0.02 6.37 +v -23.01 3.76 6.27 +v -23.88 0.02 6.44 +v -23.56 3.76 6.32 +v -23.00 6.77 7.22 +v -23.83 6.77 7.29 +v -23.08 7.23 6.35 +v -23.90 7.23 6.42 +v -10.64 6.61 6.68 +v -10.64 6.61 7.36 +v -17.31 6.39 7.36 +v -17.31 6.39 6.68 +v -10.64 7.24 7.36 +v -17.31 7.03 7.36 +v -10.64 7.24 6.68 +v -17.31 7.03 6.68 +v -23.99 6.61 7.36 +v -23.99 6.61 6.68 +v -23.99 7.24 7.36 +v -23.99 7.24 6.68 +v 8.74 6.44 10.70 +v 8.74 6.44 11.59 +v 0.00 6.16 11.59 +v 0.00 6.16 10.70 +v 8.74 7.27 11.59 +v 0.00 6.98 11.59 +v 8.74 7.27 10.70 +v 0.00 6.98 10.70 +v -8.74 6.44 11.59 +v -8.74 6.44 10.70 +v -8.74 7.27 11.59 +v -8.74 7.27 10.70 +v 8.74 17.79 -0.00 +v 8.74 27.72 -0.00 +v 8.74 23.62 3.62 +v 0.00 17.79 -3.62 +v 0.00 23.02 -3.62 +v 8.74 23.62 -3.62 +v -8.74 17.79 -0.00 +v -8.74 27.60 -0.00 +v -8.74 23.62 -3.62 +v 0.00 17.79 3.62 +v 0.00 23.02 3.62 +v -8.74 23.62 3.62 +v 8.34 17.58 -3.11 +v 8.50 20.48 -3.15 +v 8.50 20.48 -3.73 +v 8.34 17.58 -3.92 +v 8.34 24.35 -3.11 +v 8.34 23.76 -3.83 +v 9.14 17.58 -3.11 +v 9.09 20.48 -3.15 +v 9.14 24.35 -3.11 +v 9.14 17.58 -3.92 +v 9.09 20.48 -3.73 +v 9.14 23.76 -3.83 +v -0.81 20.18 -3.56 +v -0.81 17.74 -3.56 +v -0.81 17.74 -3.74 +v -0.81 20.18 -3.74 +v -0.95 20.13 -3.74 +v -0.95 17.74 -3.74 +v -0.95 17.74 -3.56 +v -0.95 20.13 -3.56 +v -1.04 20.10 -3.76 +v -1.04 20.10 -3.58 +v -1.04 20.32 -3.58 +v -1.04 20.32 -3.76 +v 1.04 20.32 -3.58 +v 1.04 20.10 -3.58 +v 1.04 20.10 -3.76 +v 1.04 20.32 -3.76 +v -0.39 20.29 -3.76 +v -0.39 20.29 -3.58 +v -0.39 20.51 -3.76 +v -0.39 20.51 -3.58 +v 0.94 20.15 -3.56 +v 0.94 17.74 -3.56 +v 0.94 17.74 -3.74 +v 0.94 20.15 -3.74 +v 0.80 17.74 -3.74 +v 0.80 20.19 -3.74 +v 0.80 17.74 -3.56 +v 0.80 20.19 -3.56 +v 0.39 20.29 -3.76 +v 0.39 20.29 -3.58 +v 0.39 20.51 -3.76 +v 0.39 20.51 -3.58 +v 0.00 20.34 -3.76 +v 0.00 20.34 -3.58 +v 0.00 20.56 -3.76 +v 0.00 20.56 -3.58 +v -0.01 17.69 -4.00 +v 0.78 17.69 -4.00 +v 0.78 17.66 -3.95 +v -0.01 17.66 -3.95 +v -0.01 17.76 -4.01 +v 0.78 17.76 -4.01 +v 0.78 17.75 -3.95 +v 0.78 17.85 -3.95 +v 0.78 17.85 -3.64 +v 0.78 17.75 -3.64 +v 0.78 17.82 -4.00 +v 0.78 17.66 -3.64 +v -0.01 17.85 -3.95 +v -0.01 17.85 -3.64 +v -0.01 17.82 -4.00 +v -0.80 17.66 -3.95 +v -0.80 17.69 -4.00 +v -0.80 17.76 -4.01 +v -0.80 17.85 -3.64 +v -0.80 17.85 -3.95 +v -0.80 17.75 -3.95 +v -0.80 17.75 -3.64 +v -0.80 17.82 -4.00 +v -0.80 17.66 -3.64 +v 0.86 20.19 -3.66 +v 0.86 17.72 -3.66 +v 0.02 17.72 -3.66 +v 0.02 20.45 -3.66 +v -0.82 20.19 -3.66 +v -0.82 17.72 -3.66 +v -9.14 17.58 -3.11 +v -8.97 20.48 -3.15 +v -8.97 20.48 -3.73 +v -9.14 17.58 -3.92 +v -9.14 24.35 -3.11 +v -9.14 23.76 -3.83 +v -8.34 17.58 -3.11 +v -8.39 20.48 -3.15 +v -8.34 24.35 -3.11 +v -8.34 17.58 -3.92 +v -8.39 20.48 -3.73 +v -8.34 23.76 -3.83 +v -9.14 17.58 3.11 +v -9.14 17.58 3.92 +v -8.97 20.48 3.73 +v -8.97 20.48 3.15 +v -9.14 23.76 3.83 +v -9.14 24.35 3.11 +v -8.34 17.58 3.11 +v -8.39 20.48 3.15 +v -8.34 24.35 3.11 +v -8.39 20.48 3.73 +v -8.34 17.58 3.92 +v -8.34 23.76 3.83 +v 8.34 17.58 3.11 +v 8.34 17.58 3.92 +v 8.50 20.48 3.73 +v 8.50 20.48 3.15 +v 8.34 23.76 3.83 +v 8.34 24.35 3.11 +v 9.14 17.58 3.11 +v 9.09 20.48 3.15 +v 9.14 24.35 3.11 +v 9.09 20.48 3.73 +v 9.14 17.58 3.92 +v 9.14 23.76 3.83 +v 12.59 6.44 -8.74 +v 13.48 6.44 -8.74 +v 13.48 6.16 -0.00 +v 12.59 6.16 -0.00 +v 13.48 7.27 -8.74 +v 13.48 6.98 -0.00 +v 12.59 7.27 -8.74 +v 12.59 6.98 -0.00 +v 13.48 6.44 8.74 +v 12.59 6.44 8.74 +v 13.48 7.27 8.74 +v 12.59 7.27 8.74 +v -9.92 18.64 4.67 +v -10.78 18.64 4.67 +v -10.78 18.64 6.66 +v -9.92 18.64 6.66 +v -9.92 17.79 4.67 +v -10.78 17.79 4.67 +v -10.78 17.79 6.66 +v -9.92 17.79 6.66 +v -12.40 7.80 6.90 +v -12.40 7.80 6.03 +v -14.38 7.80 6.03 +v -14.38 7.80 6.90 +v -12.40 6.95 6.90 +v -12.40 6.95 6.03 +v -14.38 6.95 6.03 +v -14.38 6.95 6.90 +v -12.40 7.80 -5.99 +v -12.40 7.80 -6.86 +v -14.38 7.80 -6.86 +v -14.38 7.80 -5.99 +v -12.40 6.95 -5.99 +v -12.40 6.95 -6.86 +v -14.38 6.95 -6.86 +v -14.38 6.95 -5.99 +v -16.55 0.00 12.98 +v -16.55 7.76 12.98 +v -17.17 7.76 10.68 +v -17.17 0.00 10.68 +v -14.87 0.00 14.66 +v -14.87 7.76 14.66 +v -12.57 0.00 15.28 +v -12.57 7.76 15.28 +v -10.27 0.00 14.66 +v -10.27 7.76 14.66 +v -8.58 0.00 12.98 +v -8.58 7.76 12.98 +v -7.97 0.00 10.68 +v -7.97 7.76 10.68 +v -8.58 0.00 8.38 +v -8.58 7.76 8.38 +v -10.27 0.00 6.69 +v -10.27 7.76 6.69 +v -12.57 0.00 6.08 +v -12.57 7.76 6.08 +v -14.87 0.00 6.69 +v -14.87 7.76 6.69 +v -16.55 0.00 8.38 +v -16.55 7.76 8.38 +v -16.78 7.76 13.11 +v -16.78 8.57 13.11 +v -17.43 8.57 10.68 +v -17.43 7.76 10.68 +v -15.00 7.76 14.89 +v -15.00 8.57 14.89 +v -12.57 7.76 15.54 +v -12.57 8.57 15.54 +v -10.13 7.76 14.89 +v -10.13 8.57 14.89 +v -8.35 7.76 13.11 +v -8.35 8.57 13.11 +v -7.70 7.76 10.68 +v -7.70 8.57 10.68 +v -8.35 7.76 8.24 +v -8.35 8.57 8.24 +v -10.13 7.76 6.46 +v -10.13 8.57 6.46 +v -12.57 7.76 5.81 +v -12.57 8.57 5.81 +v -15.00 7.76 6.46 +v -15.00 8.57 6.46 +v -16.78 7.76 8.24 +v -16.78 8.57 8.24 +v -17.17 8.57 10.68 +v -16.55 8.57 12.98 +v -14.87 8.57 14.66 +v -12.57 8.57 15.28 +v -10.27 8.57 14.66 +v -8.58 8.57 12.98 +v -7.97 8.57 10.68 +v -8.58 8.57 8.38 +v -10.27 8.57 6.69 +v -12.57 8.57 6.08 +v -14.87 8.57 6.69 +v -16.55 8.57 8.38 +v -16.55 16.89 12.98 +v -17.17 16.89 10.68 +v -14.87 16.89 14.66 +v -12.57 16.89 15.28 +v -10.27 16.89 14.66 +v -8.58 16.89 12.98 +v -7.97 16.89 10.68 +v -8.58 16.89 8.38 +v -10.27 16.89 6.69 +v -12.57 16.89 6.08 +v -14.87 16.89 6.69 +v -16.55 16.89 8.38 +v -17.13 21.30 13.31 +v -17.47 21.30 13.51 +v -18.23 21.30 10.68 +v -17.83 21.30 10.68 +v -15.20 21.30 15.24 +v -15.40 21.30 15.58 +v -12.57 21.30 15.94 +v -12.57 21.30 16.34 +v -9.93 21.30 15.24 +v -9.73 21.30 15.58 +v -8.01 21.30 13.31 +v -7.66 21.30 13.51 +v -7.30 21.30 10.68 +v -6.90 21.30 10.68 +v -8.01 21.30 8.04 +v -7.66 21.30 7.84 +v -9.93 21.30 6.12 +v -9.73 21.30 5.77 +v -12.57 21.30 5.41 +v -12.57 21.30 5.01 +v -15.20 21.30 6.12 +v -15.40 21.30 5.77 +v -17.13 21.30 8.04 +v -17.47 21.30 7.84 +v -16.17 24.76 12.76 +v -16.72 24.76 10.68 +v -14.64 24.76 14.28 +v -12.57 24.76 14.83 +v -10.49 24.76 14.28 +v -8.97 24.76 12.76 +v -8.41 24.76 10.68 +v -8.97 24.76 8.60 +v -10.49 24.76 7.08 +v -12.57 24.76 6.52 +v -14.64 24.76 7.08 +v -16.17 24.76 8.60 +v -16.13 28.50 12.74 +v -16.69 28.50 10.68 +v -14.63 28.50 14.24 +v -12.57 28.50 14.80 +v -10.51 28.50 14.24 +v -9.00 28.50 12.74 +v -8.45 28.50 10.68 +v -9.00 28.50 8.62 +v -10.51 28.50 7.11 +v -12.57 28.50 6.56 +v -14.63 28.50 7.11 +v -16.13 28.50 8.62 +v -17.13 17.36 13.31 +v -17.83 17.36 10.68 +v -15.20 17.36 15.24 +v -12.57 17.36 15.94 +v -9.93 17.36 15.24 +v -8.01 17.36 13.31 +v -7.30 17.36 10.68 +v -8.01 17.36 8.04 +v -9.93 17.36 6.12 +v -12.57 17.36 5.41 +v -15.20 17.36 6.12 +v -17.13 17.36 8.04 +v -17.91 20.21 10.37 +v -17.91 19.23 10.37 +v -17.91 19.21 10.80 +v -17.91 20.52 10.80 +v -17.81 19.26 10.03 +v -17.81 19.12 10.03 +v -17.91 19.12 10.04 +v -17.91 19.26 10.04 +v -17.89 20.75 10.80 +v -17.84 20.29 10.15 +v -17.94 20.29 10.15 +v -17.98 20.75 10.81 +v -17.68 19.12 11.55 +v -17.68 19.26 11.55 +v -17.78 19.26 11.56 +v -17.78 19.12 11.56 +v -17.89 19.07 10.80 +v -17.73 19.12 11.45 +v -17.82 19.12 11.45 +v -17.98 19.07 10.81 +v -18.05 19.12 10.16 +v -18.08 19.23 10.39 +v -18.05 19.26 10.16 +v -17.98 20.21 10.38 +v -17.98 20.52 10.81 +v -17.93 19.26 11.46 +v -18.01 19.24 11.24 +v -17.93 19.12 11.46 +v -18.09 19.07 10.82 +v -18.09 19.21 10.82 +v -17.83 20.21 11.23 +v -17.83 19.24 11.23 +v -17.73 20.29 11.45 +v -17.82 20.29 11.45 +v -17.84 19.12 10.15 +v -17.94 19.12 10.15 +v -17.90 20.21 11.23 +v -17.98 19.23 10.38 +v -17.90 19.24 11.23 +v -17.98 19.21 10.81 +v -17.82 19.26 11.45 +v -17.73 19.26 11.45 +v -17.84 19.26 10.15 +v -17.94 19.26 10.15 +v -18.02 19.12 10.05 +v -18.02 19.26 10.05 +v -17.88 19.26 11.57 +v -17.88 19.12 11.57 +v -12.87 20.21 16.02 +v -12.87 19.23 16.02 +v -12.44 19.21 16.02 +v -12.44 20.52 16.02 +v -13.21 19.26 15.92 +v -13.21 19.12 15.92 +v -13.20 19.12 16.02 +v -13.20 19.26 16.02 +v -12.44 20.75 16.00 +v -13.10 20.29 15.95 +v -13.09 20.29 16.05 +v -12.43 20.75 16.10 +v -11.69 19.12 15.79 +v -11.69 19.26 15.79 +v -11.68 19.26 15.89 +v -11.68 19.12 15.89 +v -12.44 19.07 16.00 +v -11.80 19.12 15.84 +v -11.79 19.12 15.94 +v -12.43 19.07 16.10 +v -13.08 19.12 16.16 +v -12.85 19.23 16.20 +v -13.08 19.26 16.16 +v -12.86 20.21 16.09 +v -12.43 20.52 16.10 +v -11.78 19.26 16.04 +v -12.00 19.24 16.12 +v -11.78 19.12 16.04 +v -12.42 19.07 16.20 +v -12.42 19.21 16.20 +v -12.01 20.21 15.94 +v -12.01 19.24 15.94 +v -11.80 20.29 15.84 +v -11.79 20.29 15.94 +v -13.10 19.12 15.95 +v -13.09 19.12 16.05 +v -12.01 20.21 16.01 +v -12.86 19.23 16.09 +v -12.01 19.24 16.01 +v -12.43 19.21 16.10 +v -11.79 19.26 15.94 +v -11.80 19.26 15.84 +v -13.10 19.26 15.95 +v -13.09 19.26 16.05 +v -13.19 19.12 16.13 +v -13.19 19.26 16.13 +v -11.67 19.26 16.00 +v -11.67 19.12 16.00 +v -9.24 23.34 12.52 +v -8.56 24.92 12.99 +v -9.10 24.92 13.76 +v -9.78 23.34 13.29 +v -9.53 28.41 12.29 +v -8.63 28.41 12.92 +v -9.18 28.41 13.70 +v -10.08 28.41 13.07 +v -12.87 27.21 14.81 +v -12.87 26.24 14.81 +v -12.44 26.21 14.82 +v -12.44 27.52 14.82 +v -13.21 26.26 14.72 +v -13.21 26.12 14.72 +v -13.20 26.12 14.82 +v -13.20 26.26 14.82 +v -12.44 27.75 14.80 +v -13.10 27.30 14.75 +v -13.09 27.30 14.85 +v -12.43 27.75 14.89 +v -11.69 26.12 14.59 +v -11.69 26.26 14.59 +v -11.68 26.26 14.69 +v -11.68 26.12 14.69 +v -12.44 26.07 14.80 +v -11.80 26.12 14.64 +v -11.79 26.12 14.73 +v -12.43 26.07 14.89 +v -13.08 26.12 14.96 +v -12.85 26.24 14.99 +v -13.08 26.26 14.96 +v -12.86 27.21 14.89 +v -12.43 27.52 14.89 +v -11.78 26.26 14.84 +v -12.00 26.25 14.92 +v -11.78 26.12 14.84 +v -12.42 26.07 15.00 +v -12.42 26.21 15.00 +v -12.01 27.21 14.74 +v -12.01 26.25 14.74 +v -11.80 27.30 14.64 +v -11.79 27.30 14.73 +v -13.10 26.12 14.75 +v -13.09 26.12 14.85 +v -12.01 27.21 14.81 +v -12.86 26.24 14.89 +v -12.01 26.25 14.81 +v -12.43 26.21 14.89 +v -11.79 26.26 14.73 +v -11.80 26.26 14.64 +v -13.10 26.26 14.75 +v -13.09 26.26 14.85 +v -13.19 26.12 14.93 +v -13.19 26.26 14.93 +v -11.67 26.26 14.79 +v -11.67 26.12 14.79 +v -14.41 23.34 14.01 +v -14.88 24.92 14.68 +v -15.65 24.92 14.14 +v -15.18 23.34 13.46 +v -14.18 28.41 13.71 +v -14.81 28.41 14.61 +v -15.59 28.41 14.07 +v -14.96 28.41 13.17 +v -8.43 27.21 10.98 +v -8.43 26.24 10.98 +v -8.42 26.21 10.55 +v -8.42 27.52 10.55 +v -8.52 26.26 11.32 +v -8.52 26.12 11.32 +v -8.42 26.12 11.31 +v -8.42 26.26 11.31 +v -8.45 27.75 10.55 +v -8.49 27.30 11.21 +v -8.39 27.30 11.20 +v -8.35 27.75 10.54 +v -8.65 26.12 9.80 +v -8.65 26.26 9.80 +v -8.56 26.26 9.79 +v -8.56 26.12 9.79 +v -8.45 26.07 10.55 +v -8.61 26.12 9.91 +v -8.51 26.12 9.90 +v -8.35 26.07 10.54 +v -8.29 26.12 11.19 +v -8.25 26.24 10.96 +v -8.29 26.26 11.19 +v -8.35 27.21 10.97 +v -8.35 27.52 10.54 +v -8.40 26.26 9.89 +v -8.32 26.25 10.11 +v -8.40 26.12 9.89 +v -8.24 26.07 10.53 +v -8.24 26.21 10.53 +v -8.50 27.21 10.13 +v -8.50 26.25 10.13 +v -8.61 27.30 9.91 +v -8.51 27.30 9.90 +v -8.49 26.12 11.21 +v -8.39 26.12 11.20 +v -8.43 27.21 10.12 +v -8.35 26.24 10.97 +v -8.43 26.25 10.12 +v -8.35 26.21 10.54 +v -8.51 26.26 9.90 +v -8.61 26.26 9.91 +v -8.49 26.26 11.21 +v -8.39 26.26 11.20 +v -8.32 26.12 11.30 +v -8.32 26.26 11.30 +v -8.45 26.26 9.78 +v -8.45 26.12 9.78 +v -13.04 12.70 6.81 +v -13.04 14.28 5.99 +v -12.09 14.28 5.99 +v -12.09 12.70 6.81 +v -13.04 17.34 6.74 +v -13.04 17.34 5.64 +v -12.09 17.34 5.64 +v -12.09 17.34 6.74 +v -8.98 12.70 12.20 +v -8.27 14.28 12.61 +v -8.74 14.28 13.43 +v -9.46 12.70 13.02 +v -8.92 17.34 12.24 +v -7.97 17.34 12.79 +v -8.44 17.34 13.61 +v -9.39 17.34 13.06 +v -12.09 12.70 14.54 +v -12.09 14.28 15.36 +v -13.04 14.28 15.36 +v -13.04 12.70 14.54 +v -12.09 17.34 14.62 +v -12.09 17.34 15.71 +v -13.04 17.34 15.71 +v -13.04 17.34 14.62 +v -10.73 23.34 7.35 +v -10.25 24.92 6.67 +v -9.48 24.92 7.22 +v -9.95 23.34 7.89 +v -10.95 28.41 7.65 +v -10.32 28.41 6.74 +v -9.55 28.41 7.29 +v -10.18 28.41 8.19 +v -9.46 12.70 8.34 +v -8.74 14.28 7.92 +v -8.27 14.28 8.74 +v -8.98 12.70 9.15 +v -9.39 17.34 8.30 +v -8.44 17.34 7.75 +v -7.97 17.34 8.57 +v -8.92 17.34 9.12 +v -7.23 20.21 10.98 +v -7.23 19.23 10.98 +v -7.22 19.21 10.55 +v -7.22 20.52 10.55 +v -7.32 19.26 11.32 +v -7.32 19.12 11.32 +v -7.22 19.12 11.31 +v -7.22 19.26 11.31 +v -7.24 20.75 10.55 +v -7.29 20.29 11.21 +v -7.19 20.29 11.20 +v -7.15 20.75 10.54 +v -7.45 19.12 9.80 +v -7.45 19.26 9.80 +v -7.35 19.26 9.79 +v -7.35 19.12 9.79 +v -7.24 19.07 10.55 +v -7.41 19.12 9.91 +v -7.31 19.12 9.90 +v -7.15 19.07 10.54 +v -7.09 19.12 11.19 +v -7.05 19.23 10.96 +v -7.09 19.26 11.19 +v -7.15 20.21 10.97 +v -7.15 20.52 10.54 +v -7.20 19.26 9.89 +v -7.12 19.24 10.11 +v -7.20 19.12 9.89 +v -7.04 19.07 10.53 +v -7.04 19.21 10.53 +v -7.30 20.21 10.13 +v -7.30 19.24 10.13 +v -7.41 20.29 9.91 +v -7.31 20.29 9.90 +v -7.29 19.12 11.21 +v -7.19 19.12 11.20 +v -7.23 20.21 10.12 +v -7.15 19.23 10.97 +v -7.23 19.24 10.12 +v -7.15 19.21 10.54 +v -7.31 19.26 9.90 +v -7.41 19.26 9.91 +v -7.29 19.26 11.21 +v -7.19 19.26 11.20 +v -7.11 19.12 11.30 +v -7.11 19.26 11.30 +v -7.25 19.26 9.78 +v -7.25 19.12 9.78 +v -12.26 27.21 6.54 +v -12.26 26.24 6.54 +v -12.69 26.21 6.53 +v -12.69 27.52 6.53 +v -11.92 26.26 6.63 +v -11.92 26.12 6.63 +v -11.93 26.12 6.53 +v -11.93 26.26 6.53 +v -12.69 27.75 6.56 +v -12.03 27.30 6.60 +v -12.04 27.30 6.51 +v -12.70 27.75 6.46 +v -13.44 26.12 6.76 +v -13.44 26.26 6.76 +v -13.45 26.26 6.67 +v -13.45 26.12 6.67 +v -12.69 26.07 6.56 +v -13.34 26.12 6.72 +v -13.34 26.12 6.62 +v -12.70 26.07 6.46 +v -12.05 26.12 6.40 +v -12.28 26.24 6.36 +v -12.05 26.26 6.40 +v -12.27 27.21 6.47 +v -12.70 27.52 6.46 +v -13.35 26.26 6.51 +v -13.13 26.25 6.43 +v -13.35 26.12 6.51 +v -12.71 26.07 6.35 +v -12.71 26.21 6.35 +v -13.12 27.21 6.61 +v -13.12 26.25 6.61 +v -13.34 27.30 6.72 +v -13.34 27.30 6.62 +v -12.03 26.12 6.60 +v -12.04 26.12 6.51 +v -13.12 27.21 6.54 +v -12.27 26.24 6.47 +v -13.12 26.25 6.54 +v -12.70 26.21 6.46 +v -13.34 26.26 6.62 +v -13.34 26.26 6.72 +v -12.03 26.26 6.60 +v -12.04 26.26 6.51 +v -11.94 26.12 6.43 +v -11.94 26.26 6.43 +v -13.46 26.26 6.56 +v -13.46 26.12 6.56 +v -16.15 12.70 9.15 +v -16.86 14.28 8.74 +v -16.39 14.28 7.92 +v -15.67 12.70 8.34 +v -16.21 17.34 9.12 +v -17.17 17.34 8.57 +v -16.69 17.34 7.75 +v -15.74 17.34 8.30 +v -12.26 20.21 5.34 +v -12.26 19.23 5.34 +v -12.69 19.21 5.33 +v -12.69 20.52 5.33 +v -11.92 19.26 5.43 +v -11.92 19.12 5.43 +v -11.93 19.12 5.33 +v -11.93 19.26 5.33 +v -12.69 20.75 5.36 +v -12.03 20.29 5.40 +v -12.04 20.29 5.30 +v -12.70 20.75 5.26 +v -13.44 19.12 5.56 +v -13.44 19.26 5.56 +v -13.45 19.26 5.47 +v -13.45 19.12 5.47 +v -12.69 19.07 5.36 +v -13.34 19.12 5.52 +v -13.34 19.12 5.42 +v -12.70 19.07 5.26 +v -12.05 19.12 5.20 +v -12.28 19.23 5.16 +v -12.05 19.26 5.20 +v -12.27 20.21 5.26 +v -12.70 20.52 5.26 +v -13.35 19.26 5.31 +v -13.13 19.24 5.23 +v -13.35 19.12 5.31 +v -12.71 19.07 5.15 +v -12.71 19.21 5.15 +v -13.12 20.21 5.41 +v -13.12 19.24 5.41 +v -13.34 20.29 5.52 +v -13.34 20.29 5.42 +v -12.03 19.12 5.40 +v -12.04 19.12 5.30 +v -13.12 20.21 5.34 +v -12.27 19.23 5.26 +v -13.12 19.24 5.34 +v -12.70 19.21 5.26 +v -13.34 19.26 5.42 +v -13.34 19.26 5.52 +v -12.03 19.26 5.40 +v -12.04 19.26 5.30 +v -11.94 19.12 5.23 +v -11.94 19.26 5.23 +v -13.46 19.26 5.36 +v -13.46 19.12 5.36 +v -15.89 23.34 8.84 +v -16.57 24.92 8.36 +v -16.03 24.92 7.59 +v -15.35 23.34 8.06 +v -15.60 28.41 9.06 +v -16.50 28.41 8.43 +v -15.96 28.41 7.66 +v -15.06 28.41 8.29 +v -16.70 27.21 10.37 +v -16.70 26.24 10.37 +v -16.71 26.21 10.80 +v -16.71 27.52 10.80 +v -16.61 26.26 10.03 +v -16.61 26.12 10.03 +v -16.71 26.12 10.04 +v -16.71 26.26 10.04 +v -16.69 27.75 10.80 +v -16.64 27.30 10.15 +v -16.74 27.30 10.15 +v -16.78 27.75 10.81 +v -16.48 26.12 11.55 +v -16.48 26.26 11.55 +v -16.58 26.26 11.56 +v -16.58 26.12 11.56 +v -16.69 26.07 10.80 +v -16.53 26.12 11.45 +v -16.62 26.12 11.45 +v -16.78 26.07 10.81 +v -16.84 26.12 10.16 +v -16.88 26.24 10.39 +v -16.84 26.26 10.16 +v -16.78 27.21 10.38 +v -16.78 27.52 10.81 +v -16.73 26.26 11.46 +v -16.81 26.25 11.24 +v -16.73 26.12 11.46 +v -16.89 26.07 10.82 +v -16.89 26.21 10.82 +v -16.63 27.21 11.23 +v -16.63 26.25 11.23 +v -16.53 27.30 11.45 +v -16.62 27.30 11.45 +v -16.64 26.12 10.15 +v -16.74 26.12 10.15 +v -16.70 27.21 11.23 +v -16.78 26.24 10.38 +v -16.70 26.25 11.23 +v -16.78 26.21 10.81 +v -16.62 26.26 11.45 +v -16.53 26.26 11.45 +v -16.64 26.26 10.15 +v -16.74 26.26 10.15 +v -16.82 26.12 10.05 +v -16.82 26.26 10.05 +v -16.68 26.26 11.57 +v -16.68 26.12 11.57 +v -15.67 12.70 13.02 +v -16.39 14.28 13.43 +v -16.86 14.28 12.61 +v -16.15 12.70 12.20 +v -15.74 17.34 13.06 +v -16.69 17.34 13.61 +v -17.17 17.34 12.79 +v -16.21 17.34 12.24 +v -16.83 28.50 13.14 +v -16.83 30.29 13.14 +v -17.49 30.29 10.68 +v -17.49 28.50 10.68 +v -15.03 28.50 14.94 +v -15.03 30.29 14.94 +v -12.57 28.50 15.60 +v -12.57 30.29 15.60 +v -10.10 28.50 14.94 +v -10.10 30.29 14.94 +v -8.30 28.50 13.14 +v -8.30 30.29 13.14 +v -7.64 28.50 10.68 +v -7.64 30.29 10.68 +v -8.30 28.50 8.21 +v -8.30 30.29 8.21 +v -10.10 28.50 6.41 +v -10.10 30.29 6.41 +v -12.57 28.50 5.75 +v -12.57 30.29 5.75 +v -15.03 28.50 6.41 +v -15.03 30.29 6.41 +v -16.83 28.50 8.21 +v -16.83 30.29 8.21 +v -16.21 30.29 12.78 +v -16.78 30.29 10.68 +v -15.03 30.90 14.94 +v -14.67 30.90 14.32 +v -16.21 30.90 12.78 +v -16.83 30.90 13.14 +v -12.57 30.29 14.89 +v -14.67 30.29 14.32 +v -10.10 30.90 14.94 +v -10.46 30.90 14.32 +v -12.57 30.90 14.89 +v -12.57 30.90 15.60 +v -8.92 30.29 12.78 +v -10.46 30.29 14.32 +v -7.64 30.90 10.68 +v -8.36 30.90 10.68 +v -8.92 30.90 12.78 +v -8.30 30.90 13.14 +v -8.92 30.29 8.57 +v -8.36 30.29 10.68 +v -10.10 30.90 6.41 +v -10.46 30.90 7.03 +v -8.92 30.90 8.57 +v -8.30 30.90 8.21 +v -12.57 30.29 6.47 +v -10.46 30.29 7.03 +v -15.03 30.90 6.41 +v -14.67 30.90 7.03 +v -12.57 30.90 6.47 +v -12.57 30.90 5.75 +v -16.21 30.29 8.57 +v -14.67 30.29 7.03 +v -17.49 30.90 10.68 +v -16.78 30.90 10.68 +v -16.21 30.90 8.57 +v -16.83 30.90 8.21 +v -16.21 29.42 12.78 +v -16.78 29.42 10.68 +v -14.67 29.42 14.32 +v -12.57 29.42 14.89 +v -10.46 29.42 14.32 +v -8.92 29.42 12.78 +v -8.36 29.42 10.68 +v -8.92 29.42 8.57 +v -10.46 29.42 7.03 +v -12.57 29.42 6.47 +v -14.67 29.42 7.03 +v -16.21 29.42 8.57 +v -12.57 29.42 10.68 +v 17.17 7.76 10.68 +v 16.55 7.76 12.98 +v 16.55 0.00 12.98 +v 17.17 0.00 10.68 +v 14.87 7.76 14.66 +v 14.87 0.00 14.66 +v 12.57 7.76 15.28 +v 12.57 0.00 15.28 +v 10.27 7.76 14.66 +v 10.27 0.00 14.66 +v 8.58 7.76 12.98 +v 8.58 0.00 12.98 +v 7.97 7.76 10.68 +v 7.97 0.00 10.68 +v 8.58 7.76 8.38 +v 8.58 0.00 8.38 +v 10.27 7.76 6.69 +v 10.27 0.00 6.69 +v 12.57 7.76 6.08 +v 12.57 0.00 6.08 +v 14.87 7.76 6.69 +v 14.87 0.00 6.69 +v 16.55 7.76 8.38 +v 16.55 0.00 8.38 +v 16.78 7.76 13.11 +v 17.43 7.76 10.68 +v 17.43 8.57 10.68 +v 16.78 8.57 13.11 +v 15.00 7.76 14.89 +v 15.00 8.57 14.89 +v 12.57 7.76 15.54 +v 12.57 8.57 15.54 +v 10.13 7.76 14.89 +v 10.13 8.57 14.89 +v 8.35 7.76 13.11 +v 8.35 8.57 13.11 +v 7.70 7.76 10.68 +v 7.70 8.57 10.68 +v 8.35 7.76 8.24 +v 8.35 8.57 8.24 +v 10.13 7.76 6.46 +v 10.13 8.57 6.46 +v 12.57 7.76 5.81 +v 12.57 8.57 5.81 +v 15.00 7.76 6.46 +v 15.00 8.57 6.46 +v 16.78 7.76 8.24 +v 16.78 8.57 8.24 +v 17.17 8.57 10.68 +v 16.55 8.57 12.98 +v 14.87 8.57 14.66 +v 12.57 8.57 15.28 +v 10.27 8.57 14.66 +v 8.58 8.57 12.98 +v 7.97 8.57 10.68 +v 8.58 8.57 8.38 +v 10.27 8.57 6.69 +v 12.57 8.57 6.08 +v 14.87 8.57 6.69 +v 16.55 8.57 8.38 +v 17.17 16.89 10.68 +v 16.55 16.89 12.98 +v 14.87 16.89 14.66 +v 12.57 16.89 15.28 +v 10.27 16.89 14.66 +v 8.58 16.89 12.98 +v 7.97 16.89 10.68 +v 8.58 16.89 8.38 +v 10.27 16.89 6.69 +v 12.57 16.89 6.08 +v 14.87 16.89 6.69 +v 16.55 16.89 8.38 +v 17.13 21.30 13.31 +v 17.83 21.30 10.68 +v 18.23 21.30 10.68 +v 17.47 21.30 13.51 +v 15.20 21.30 15.24 +v 15.40 21.30 15.58 +v 12.57 21.30 15.94 +v 12.57 21.30 16.34 +v 9.93 21.30 15.24 +v 9.73 21.30 15.58 +v 8.01 21.30 13.31 +v 7.66 21.30 13.51 +v 7.30 21.30 10.68 +v 6.90 21.30 10.68 +v 8.01 21.30 8.04 +v 7.66 21.30 7.84 +v 9.93 21.30 6.12 +v 9.73 21.30 5.77 +v 12.57 21.30 5.41 +v 12.57 21.30 5.01 +v 15.20 21.30 6.12 +v 15.40 21.30 5.77 +v 17.13 21.30 8.04 +v 17.47 21.30 7.84 +v 16.72 24.76 10.68 +v 16.17 24.76 12.76 +v 14.64 24.76 14.28 +v 12.57 24.76 14.83 +v 10.49 24.76 14.28 +v 8.97 24.76 12.76 +v 8.41 24.76 10.68 +v 8.97 24.76 8.60 +v 10.49 24.76 7.08 +v 12.57 24.76 6.52 +v 14.64 24.76 7.08 +v 16.17 24.76 8.60 +v 16.69 28.50 10.68 +v 16.13 28.50 12.74 +v 14.63 28.50 14.24 +v 12.57 28.50 14.80 +v 10.51 28.50 14.24 +v 9.00 28.50 12.74 +v 8.45 28.50 10.68 +v 9.00 28.50 8.62 +v 10.51 28.50 7.11 +v 12.57 28.50 6.56 +v 14.63 28.50 7.11 +v 16.13 28.50 8.62 +v 17.83 17.36 10.68 +v 17.13 17.36 13.31 +v 15.20 17.36 15.24 +v 12.57 17.36 15.94 +v 9.93 17.36 15.24 +v 8.01 17.36 13.31 +v 7.30 17.36 10.68 +v 8.01 17.36 8.04 +v 9.93 17.36 6.12 +v 12.57 17.36 5.41 +v 15.20 17.36 6.12 +v 17.13 17.36 8.04 +v 17.91 20.21 10.37 +v 17.91 20.52 10.80 +v 17.91 19.21 10.80 +v 17.91 19.23 10.37 +v 17.81 19.26 10.03 +v 17.91 19.26 10.04 +v 17.91 19.12 10.04 +v 17.81 19.12 10.03 +v 17.89 20.75 10.80 +v 17.98 20.75 10.81 +v 17.94 20.29 10.15 +v 17.84 20.29 10.15 +v 17.68 19.12 11.55 +v 17.78 19.12 11.56 +v 17.78 19.26 11.56 +v 17.68 19.26 11.55 +v 17.89 19.07 10.80 +v 17.98 19.07 10.81 +v 17.82 19.12 11.45 +v 17.73 19.12 11.45 +v 18.05 19.12 10.16 +v 18.05 19.26 10.16 +v 18.08 19.23 10.39 +v 17.98 20.52 10.81 +v 17.98 20.21 10.38 +v 17.93 19.26 11.46 +v 17.93 19.12 11.46 +v 18.01 19.24 11.24 +v 18.09 19.07 10.82 +v 18.09 19.21 10.82 +v 17.83 20.21 11.23 +v 17.83 19.24 11.23 +v 17.73 20.29 11.45 +v 17.82 20.29 11.45 +v 17.84 19.12 10.15 +v 17.94 19.12 10.15 +v 17.90 20.21 11.23 +v 17.98 19.23 10.38 +v 17.90 19.24 11.23 +v 17.98 19.21 10.81 +v 17.82 19.26 11.45 +v 17.73 19.26 11.45 +v 17.94 19.26 10.15 +v 17.84 19.26 10.15 +v 18.02 19.26 10.05 +v 18.02 19.12 10.05 +v 17.88 19.12 11.57 +v 17.88 19.26 11.57 +v 12.87 20.21 16.02 +v 12.44 20.52 16.02 +v 12.44 19.21 16.02 +v 12.87 19.23 16.02 +v 13.21 19.26 15.92 +v 13.20 19.26 16.02 +v 13.20 19.12 16.02 +v 13.21 19.12 15.92 +v 12.44 20.75 16.00 +v 12.43 20.75 16.10 +v 13.09 20.29 16.05 +v 13.10 20.29 15.95 +v 11.69 19.12 15.79 +v 11.68 19.12 15.89 +v 11.68 19.26 15.89 +v 11.69 19.26 15.79 +v 12.44 19.07 16.00 +v 12.43 19.07 16.10 +v 11.79 19.12 15.94 +v 11.80 19.12 15.84 +v 13.08 19.12 16.16 +v 13.08 19.26 16.16 +v 12.85 19.23 16.20 +v 12.43 20.52 16.10 +v 12.86 20.21 16.09 +v 11.78 19.26 16.04 +v 11.78 19.12 16.04 +v 12.00 19.24 16.12 +v 12.42 19.07 16.20 +v 12.42 19.21 16.20 +v 12.01 20.21 15.94 +v 12.01 19.24 15.94 +v 11.80 20.29 15.84 +v 11.79 20.29 15.94 +v 13.10 19.12 15.95 +v 13.09 19.12 16.05 +v 12.01 20.21 16.01 +v 12.86 19.23 16.09 +v 12.01 19.24 16.01 +v 12.43 19.21 16.10 +v 11.79 19.26 15.94 +v 11.80 19.26 15.84 +v 13.09 19.26 16.05 +v 13.10 19.26 15.95 +v 13.19 19.26 16.13 +v 13.19 19.12 16.13 +v 11.67 19.12 16.00 +v 11.67 19.26 16.00 +v 9.24 23.34 12.52 +v 9.78 23.34 13.29 +v 9.10 24.92 13.76 +v 8.56 24.92 12.99 +v 8.63 28.41 12.92 +v 9.53 28.41 12.29 +v 9.18 28.41 13.70 +v 10.08 28.41 13.07 +v 12.87 27.21 14.81 +v 12.44 27.52 14.82 +v 12.44 26.21 14.82 +v 12.87 26.24 14.81 +v 13.21 26.26 14.72 +v 13.20 26.26 14.82 +v 13.20 26.12 14.82 +v 13.21 26.12 14.72 +v 12.44 27.75 14.80 +v 12.43 27.75 14.89 +v 13.09 27.30 14.85 +v 13.10 27.30 14.75 +v 11.69 26.12 14.59 +v 11.68 26.12 14.69 +v 11.68 26.26 14.69 +v 11.69 26.26 14.59 +v 12.44 26.07 14.80 +v 12.43 26.07 14.89 +v 11.79 26.12 14.73 +v 11.80 26.12 14.64 +v 13.08 26.12 14.96 +v 13.08 26.26 14.96 +v 12.85 26.24 14.99 +v 12.43 27.52 14.89 +v 12.86 27.21 14.89 +v 11.78 26.26 14.84 +v 11.78 26.12 14.84 +v 12.00 26.25 14.92 +v 12.42 26.07 15.00 +v 12.42 26.21 15.00 +v 12.01 27.21 14.74 +v 12.01 26.25 14.74 +v 11.80 27.30 14.64 +v 11.79 27.30 14.73 +v 13.10 26.12 14.75 +v 13.09 26.12 14.85 +v 12.01 27.21 14.81 +v 12.86 26.24 14.89 +v 12.01 26.25 14.81 +v 12.43 26.21 14.89 +v 11.79 26.26 14.73 +v 11.80 26.26 14.64 +v 13.09 26.26 14.85 +v 13.10 26.26 14.75 +v 13.19 26.26 14.93 +v 13.19 26.12 14.93 +v 11.67 26.12 14.79 +v 11.67 26.26 14.79 +v 14.41 23.34 14.01 +v 15.18 23.34 13.46 +v 15.65 24.92 14.14 +v 14.88 24.92 14.68 +v 14.81 28.41 14.61 +v 14.18 28.41 13.71 +v 15.59 28.41 14.07 +v 14.96 28.41 13.17 +v 8.43 27.21 10.98 +v 8.42 27.52 10.55 +v 8.42 26.21 10.55 +v 8.43 26.24 10.98 +v 8.52 26.26 11.32 +v 8.42 26.26 11.31 +v 8.42 26.12 11.31 +v 8.52 26.12 11.32 +v 8.45 27.75 10.55 +v 8.35 27.75 10.54 +v 8.39 27.30 11.20 +v 8.49 27.30 11.21 +v 8.65 26.12 9.80 +v 8.56 26.12 9.79 +v 8.56 26.26 9.79 +v 8.65 26.26 9.80 +v 8.45 26.07 10.55 +v 8.35 26.07 10.54 +v 8.51 26.12 9.90 +v 8.61 26.12 9.91 +v 8.29 26.12 11.19 +v 8.29 26.26 11.19 +v 8.25 26.24 10.96 +v 8.35 27.52 10.54 +v 8.35 27.21 10.97 +v 8.40 26.26 9.89 +v 8.40 26.12 9.89 +v 8.32 26.25 10.11 +v 8.24 26.07 10.53 +v 8.24 26.21 10.53 +v 8.50 27.21 10.13 +v 8.50 26.25 10.13 +v 8.61 27.30 9.91 +v 8.51 27.30 9.90 +v 8.49 26.12 11.21 +v 8.39 26.12 11.20 +v 8.43 27.21 10.12 +v 8.35 26.24 10.97 +v 8.43 26.25 10.12 +v 8.35 26.21 10.54 +v 8.51 26.26 9.90 +v 8.61 26.26 9.91 +v 8.39 26.26 11.20 +v 8.49 26.26 11.21 +v 8.32 26.26 11.30 +v 8.32 26.12 11.30 +v 8.45 26.12 9.78 +v 8.45 26.26 9.78 +v 13.04 12.70 6.81 +v 12.09 12.70 6.81 +v 12.09 14.28 5.99 +v 13.04 14.28 5.99 +v 13.04 17.34 5.64 +v 13.04 17.34 6.74 +v 12.09 17.34 5.64 +v 12.09 17.34 6.74 +v 8.98 12.70 12.20 +v 9.46 12.70 13.02 +v 8.74 14.28 13.43 +v 8.27 14.28 12.61 +v 7.97 17.34 12.79 +v 8.92 17.34 12.24 +v 8.44 17.34 13.61 +v 9.39 17.34 13.06 +v 12.09 12.70 14.54 +v 13.04 12.70 14.54 +v 13.04 14.28 15.36 +v 12.09 14.28 15.36 +v 12.09 17.34 15.71 +v 12.09 17.34 14.62 +v 13.04 17.34 15.71 +v 13.04 17.34 14.62 +v 10.73 23.34 7.35 +v 9.95 23.34 7.89 +v 9.48 24.92 7.22 +v 10.25 24.92 6.67 +v 10.32 28.41 6.74 +v 10.95 28.41 7.65 +v 9.55 28.41 7.29 +v 10.18 28.41 8.19 +v 9.46 12.70 8.34 +v 8.98 12.70 9.15 +v 8.27 14.28 8.74 +v 8.74 14.28 7.92 +v 8.44 17.34 7.75 +v 9.39 17.34 8.30 +v 7.97 17.34 8.57 +v 8.92 17.34 9.12 +v 7.23 20.21 10.98 +v 7.22 20.52 10.55 +v 7.22 19.21 10.55 +v 7.23 19.23 10.98 +v 7.32 19.26 11.32 +v 7.22 19.26 11.31 +v 7.22 19.12 11.31 +v 7.32 19.12 11.32 +v 7.24 20.75 10.55 +v 7.15 20.75 10.54 +v 7.19 20.29 11.20 +v 7.29 20.29 11.21 +v 7.45 19.12 9.80 +v 7.35 19.12 9.79 +v 7.35 19.26 9.79 +v 7.45 19.26 9.80 +v 7.24 19.07 10.55 +v 7.15 19.07 10.54 +v 7.31 19.12 9.90 +v 7.41 19.12 9.91 +v 7.09 19.12 11.19 +v 7.09 19.26 11.19 +v 7.05 19.23 10.96 +v 7.15 20.52 10.54 +v 7.15 20.21 10.97 +v 7.20 19.26 9.89 +v 7.20 19.12 9.89 +v 7.12 19.24 10.11 +v 7.04 19.07 10.53 +v 7.04 19.21 10.53 +v 7.30 20.21 10.13 +v 7.30 19.24 10.13 +v 7.41 20.29 9.91 +v 7.31 20.29 9.90 +v 7.29 19.12 11.21 +v 7.19 19.12 11.20 +v 7.23 20.21 10.12 +v 7.15 19.23 10.97 +v 7.23 19.24 10.12 +v 7.15 19.21 10.54 +v 7.31 19.26 9.90 +v 7.41 19.26 9.91 +v 7.19 19.26 11.20 +v 7.29 19.26 11.21 +v 7.11 19.26 11.30 +v 7.11 19.12 11.30 +v 7.25 19.12 9.78 +v 7.25 19.26 9.78 +v 12.26 27.21 6.54 +v 12.69 27.52 6.53 +v 12.69 26.21 6.53 +v 12.26 26.24 6.54 +v 11.92 26.26 6.63 +v 11.93 26.26 6.53 +v 11.93 26.12 6.53 +v 11.92 26.12 6.63 +v 12.69 27.75 6.56 +v 12.70 27.75 6.46 +v 12.04 27.30 6.51 +v 12.03 27.30 6.60 +v 13.44 26.12 6.76 +v 13.45 26.12 6.67 +v 13.45 26.26 6.67 +v 13.44 26.26 6.76 +v 12.69 26.07 6.56 +v 12.70 26.07 6.46 +v 13.34 26.12 6.62 +v 13.34 26.12 6.72 +v 12.05 26.12 6.40 +v 12.05 26.26 6.40 +v 12.28 26.24 6.36 +v 12.70 27.52 6.46 +v 12.27 27.21 6.47 +v 13.35 26.26 6.51 +v 13.35 26.12 6.51 +v 13.13 26.25 6.43 +v 12.71 26.07 6.35 +v 12.71 26.21 6.35 +v 13.12 27.21 6.61 +v 13.12 26.25 6.61 +v 13.34 27.30 6.72 +v 13.34 27.30 6.62 +v 12.03 26.12 6.60 +v 12.04 26.12 6.51 +v 13.12 27.21 6.54 +v 12.27 26.24 6.47 +v 13.12 26.25 6.54 +v 12.70 26.21 6.46 +v 13.34 26.26 6.62 +v 13.34 26.26 6.72 +v 12.04 26.26 6.51 +v 12.03 26.26 6.60 +v 11.94 26.26 6.43 +v 11.94 26.12 6.43 +v 13.46 26.12 6.56 +v 13.46 26.26 6.56 +v 16.15 12.70 9.15 +v 15.67 12.70 8.34 +v 16.39 14.28 7.92 +v 16.86 14.28 8.74 +v 17.17 17.34 8.57 +v 16.21 17.34 9.12 +v 16.69 17.34 7.75 +v 15.74 17.34 8.30 +v 12.26 20.21 5.34 +v 12.69 20.52 5.33 +v 12.69 19.21 5.33 +v 12.26 19.23 5.34 +v 11.92 19.26 5.43 +v 11.93 19.26 5.33 +v 11.93 19.12 5.33 +v 11.92 19.12 5.43 +v 12.69 20.75 5.36 +v 12.70 20.75 5.26 +v 12.04 20.29 5.30 +v 12.03 20.29 5.40 +v 13.44 19.12 5.56 +v 13.45 19.12 5.47 +v 13.45 19.26 5.47 +v 13.44 19.26 5.56 +v 12.69 19.07 5.36 +v 12.70 19.07 5.26 +v 13.34 19.12 5.42 +v 13.34 19.12 5.52 +v 12.05 19.12 5.20 +v 12.05 19.26 5.20 +v 12.28 19.23 5.16 +v 12.70 20.52 5.26 +v 12.27 20.21 5.26 +v 13.35 19.26 5.31 +v 13.35 19.12 5.31 +v 13.13 19.24 5.23 +v 12.71 19.07 5.15 +v 12.71 19.21 5.15 +v 13.12 20.21 5.41 +v 13.12 19.24 5.41 +v 13.34 20.29 5.52 +v 13.34 20.29 5.42 +v 12.03 19.12 5.40 +v 12.04 19.12 5.30 +v 13.12 20.21 5.34 +v 12.27 19.23 5.26 +v 13.12 19.24 5.34 +v 12.70 19.21 5.26 +v 13.34 19.26 5.42 +v 13.34 19.26 5.52 +v 12.04 19.26 5.30 +v 12.03 19.26 5.40 +v 11.94 19.26 5.23 +v 11.94 19.12 5.23 +v 13.46 19.12 5.36 +v 13.46 19.26 5.36 +v 15.89 23.34 8.84 +v 15.35 23.34 8.06 +v 16.03 24.92 7.59 +v 16.57 24.92 8.36 +v 16.50 28.41 8.43 +v 15.60 28.41 9.06 +v 15.96 28.41 7.66 +v 15.06 28.41 8.29 +v 16.70 27.21 10.37 +v 16.71 27.52 10.80 +v 16.71 26.21 10.80 +v 16.70 26.24 10.37 +v 16.61 26.26 10.03 +v 16.71 26.26 10.04 +v 16.71 26.12 10.04 +v 16.61 26.12 10.03 +v 16.69 27.75 10.80 +v 16.78 27.75 10.81 +v 16.74 27.30 10.15 +v 16.64 27.30 10.15 +v 16.48 26.12 11.55 +v 16.58 26.12 11.56 +v 16.58 26.26 11.56 +v 16.48 26.26 11.55 +v 16.69 26.07 10.80 +v 16.78 26.07 10.81 +v 16.62 26.12 11.45 +v 16.53 26.12 11.45 +v 16.84 26.12 10.16 +v 16.84 26.26 10.16 +v 16.88 26.24 10.39 +v 16.78 27.52 10.81 +v 16.78 27.21 10.38 +v 16.73 26.26 11.46 +v 16.73 26.12 11.46 +v 16.81 26.25 11.24 +v 16.89 26.07 10.82 +v 16.89 26.21 10.82 +v 16.63 27.21 11.23 +v 16.63 26.25 11.23 +v 16.53 27.30 11.45 +v 16.62 27.30 11.45 +v 16.64 26.12 10.15 +v 16.74 26.12 10.15 +v 16.70 27.21 11.23 +v 16.78 26.24 10.38 +v 16.70 26.25 11.23 +v 16.78 26.21 10.81 +v 16.62 26.26 11.45 +v 16.53 26.26 11.45 +v 16.74 26.26 10.15 +v 16.64 26.26 10.15 +v 16.82 26.26 10.05 +v 16.82 26.12 10.05 +v 16.68 26.12 11.57 +v 16.68 26.26 11.57 +v 15.67 12.70 13.02 +v 16.15 12.70 12.20 +v 16.86 14.28 12.61 +v 16.39 14.28 13.43 +v 16.69 17.34 13.61 +v 15.74 17.34 13.06 +v 17.17 17.34 12.79 +v 16.21 17.34 12.24 +v 16.83 28.50 13.14 +v 17.49 28.50 10.68 +v 17.49 30.29 10.68 +v 16.83 30.29 13.14 +v 15.03 28.50 14.94 +v 15.03 30.29 14.94 +v 12.57 28.50 15.60 +v 12.57 30.29 15.60 +v 10.10 28.50 14.94 +v 10.10 30.29 14.94 +v 8.30 28.50 13.14 +v 8.30 30.29 13.14 +v 7.64 28.50 10.68 +v 7.64 30.29 10.68 +v 8.30 28.50 8.21 +v 8.30 30.29 8.21 +v 10.10 28.50 6.41 +v 10.10 30.29 6.41 +v 12.57 28.50 5.75 +v 12.57 30.29 5.75 +v 15.03 28.50 6.41 +v 15.03 30.29 6.41 +v 16.83 28.50 8.21 +v 16.83 30.29 8.21 +v 16.78 30.29 10.68 +v 16.21 30.29 12.78 +v 15.03 30.90 14.94 +v 16.83 30.90 13.14 +v 16.21 30.90 12.78 +v 14.67 30.90 14.32 +v 14.67 30.29 14.32 +v 12.57 30.29 14.89 +v 10.10 30.90 14.94 +v 12.57 30.90 15.60 +v 12.57 30.90 14.89 +v 10.46 30.90 14.32 +v 10.46 30.29 14.32 +v 8.92 30.29 12.78 +v 7.64 30.90 10.68 +v 8.30 30.90 13.14 +v 8.92 30.90 12.78 +v 8.36 30.90 10.68 +v 8.36 30.29 10.68 +v 8.92 30.29 8.57 +v 10.10 30.90 6.41 +v 8.30 30.90 8.21 +v 8.92 30.90 8.57 +v 10.46 30.90 7.03 +v 10.46 30.29 7.03 +v 12.57 30.29 6.47 +v 15.03 30.90 6.41 +v 12.57 30.90 5.75 +v 12.57 30.90 6.47 +v 14.67 30.90 7.03 +v 14.67 30.29 7.03 +v 16.21 30.29 8.57 +v 17.49 30.90 10.68 +v 16.83 30.90 8.21 +v 16.21 30.90 8.57 +v 16.78 30.90 10.68 +v 16.78 29.42 10.68 +v 16.21 29.42 12.78 +v 14.67 29.42 14.32 +v 12.57 29.42 14.89 +v 10.46 29.42 14.32 +v 8.92 29.42 12.78 +v 8.36 29.42 10.68 +v 8.92 29.42 8.57 +v 10.46 29.42 7.03 +v 12.57 29.42 6.47 +v 14.67 29.42 7.03 +v 16.21 29.42 8.57 +v 12.57 29.42 10.68 +v 16.55 0.00 -12.98 +v 16.55 7.76 -12.98 +v 17.17 7.76 -10.68 +v 17.17 0.00 -10.68 +v 14.87 0.00 -14.66 +v 14.87 7.76 -14.66 +v 12.57 0.00 -15.28 +v 12.57 7.76 -15.28 +v 10.27 0.00 -14.66 +v 10.27 7.76 -14.66 +v 8.58 0.00 -12.98 +v 8.58 7.76 -12.98 +v 7.97 0.00 -10.68 +v 7.97 7.76 -10.68 +v 8.58 0.00 -8.38 +v 8.58 7.76 -8.38 +v 10.27 0.00 -6.69 +v 10.27 7.76 -6.69 +v 12.57 0.00 -6.08 +v 12.57 7.76 -6.08 +v 14.87 0.00 -6.69 +v 14.87 7.76 -6.69 +v 16.55 0.00 -8.38 +v 16.55 7.76 -8.38 +v 16.78 7.76 -13.11 +v 16.78 8.57 -13.11 +v 17.43 8.57 -10.68 +v 17.43 7.76 -10.68 +v 15.00 7.76 -14.89 +v 15.00 8.57 -14.89 +v 12.57 7.76 -15.54 +v 12.57 8.57 -15.54 +v 10.13 7.76 -14.89 +v 10.13 8.57 -14.89 +v 8.35 7.76 -13.11 +v 8.35 8.57 -13.11 +v 7.70 7.76 -10.68 +v 7.70 8.57 -10.68 +v 8.35 7.76 -8.24 +v 8.35 8.57 -8.24 +v 10.13 7.76 -6.46 +v 10.13 8.57 -6.46 +v 12.57 7.76 -5.81 +v 12.57 8.57 -5.81 +v 15.00 7.76 -6.46 +v 15.00 8.57 -6.46 +v 16.78 7.76 -8.24 +v 16.78 8.57 -8.24 +v 17.17 8.57 -10.68 +v 16.55 8.57 -12.98 +v 14.87 8.57 -14.66 +v 12.57 8.57 -15.28 +v 10.27 8.57 -14.66 +v 8.58 8.57 -12.98 +v 7.97 8.57 -10.68 +v 8.58 8.57 -8.38 +v 10.27 8.57 -6.69 +v 12.57 8.57 -6.08 +v 14.87 8.57 -6.69 +v 16.55 8.57 -8.38 +v 16.55 16.89 -12.98 +v 17.17 16.89 -10.68 +v 14.87 16.89 -14.66 +v 12.57 16.89 -15.28 +v 10.27 16.89 -14.66 +v 8.58 16.89 -12.98 +v 7.97 16.89 -10.68 +v 8.58 16.89 -8.38 +v 10.27 16.89 -6.69 +v 12.57 16.89 -6.08 +v 14.87 16.89 -6.69 +v 16.55 16.89 -8.38 +v 17.13 21.30 -13.31 +v 17.47 21.30 -13.51 +v 18.23 21.30 -10.68 +v 17.83 21.30 -10.68 +v 15.20 21.30 -15.24 +v 15.40 21.30 -15.58 +v 12.57 21.30 -15.94 +v 12.57 21.30 -16.34 +v 9.93 21.30 -15.24 +v 9.73 21.30 -15.58 +v 8.01 21.30 -13.31 +v 7.66 21.30 -13.51 +v 7.30 21.30 -10.68 +v 6.90 21.30 -10.68 +v 8.01 21.30 -8.04 +v 7.66 21.30 -7.84 +v 9.93 21.30 -6.12 +v 9.73 21.30 -5.77 +v 12.57 21.30 -5.41 +v 12.57 21.30 -5.01 +v 15.20 21.30 -6.12 +v 15.40 21.30 -5.77 +v 17.13 21.30 -8.04 +v 17.47 21.30 -7.84 +v 16.17 24.76 -12.76 +v 16.72 24.76 -10.68 +v 14.64 24.76 -14.28 +v 12.57 24.76 -14.83 +v 10.49 24.76 -14.28 +v 8.97 24.76 -12.76 +v 8.41 24.76 -10.68 +v 8.97 24.76 -8.60 +v 10.49 24.76 -7.08 +v 12.57 24.76 -6.52 +v 14.64 24.76 -7.08 +v 16.17 24.76 -8.60 +v 16.13 28.50 -12.74 +v 16.69 28.50 -10.68 +v 14.63 28.50 -14.24 +v 12.57 28.50 -14.80 +v 10.51 28.50 -14.24 +v 9.00 28.50 -12.74 +v 8.45 28.50 -10.68 +v 9.00 28.50 -8.62 +v 10.51 28.50 -7.11 +v 12.57 28.50 -6.56 +v 14.63 28.50 -7.11 +v 16.13 28.50 -8.62 +v 17.13 17.36 -13.31 +v 17.83 17.36 -10.68 +v 15.20 17.36 -15.24 +v 12.57 17.36 -15.94 +v 9.93 17.36 -15.24 +v 8.01 17.36 -13.31 +v 7.30 17.36 -10.68 +v 8.01 17.36 -8.04 +v 9.93 17.36 -6.12 +v 12.57 17.36 -5.41 +v 15.20 17.36 -6.12 +v 17.13 17.36 -8.04 +v 17.91 20.21 -10.37 +v 17.91 19.23 -10.37 +v 17.91 19.21 -10.80 +v 17.91 20.52 -10.80 +v 17.81 19.26 -10.03 +v 17.81 19.12 -10.03 +v 17.91 19.12 -10.04 +v 17.91 19.26 -10.04 +v 17.89 20.75 -10.80 +v 17.84 20.29 -10.15 +v 17.94 20.29 -10.15 +v 17.98 20.75 -10.81 +v 17.68 19.12 -11.55 +v 17.68 19.26 -11.55 +v 17.78 19.26 -11.56 +v 17.78 19.12 -11.56 +v 17.89 19.07 -10.80 +v 17.73 19.12 -11.45 +v 17.82 19.12 -11.45 +v 17.98 19.07 -10.81 +v 18.05 19.12 -10.16 +v 18.08 19.23 -10.39 +v 18.05 19.26 -10.16 +v 17.98 20.21 -10.38 +v 17.98 20.52 -10.81 +v 17.93 19.26 -11.46 +v 18.01 19.24 -11.24 +v 17.93 19.12 -11.46 +v 18.09 19.07 -10.82 +v 18.09 19.21 -10.82 +v 17.83 20.21 -11.23 +v 17.83 19.24 -11.23 +v 17.73 20.29 -11.45 +v 17.82 20.29 -11.45 +v 17.84 19.12 -10.15 +v 17.94 19.12 -10.15 +v 17.90 20.21 -11.23 +v 17.98 19.23 -10.38 +v 17.90 19.24 -11.23 +v 17.98 19.21 -10.81 +v 17.82 19.26 -11.45 +v 17.73 19.26 -11.45 +v 17.84 19.26 -10.15 +v 17.94 19.26 -10.15 +v 18.02 19.12 -10.05 +v 18.02 19.26 -10.05 +v 17.88 19.26 -11.57 +v 17.88 19.12 -11.57 +v 12.87 20.21 -16.02 +v 12.87 19.23 -16.02 +v 12.44 19.21 -16.02 +v 12.44 20.52 -16.02 +v 13.21 19.26 -15.92 +v 13.21 19.12 -15.92 +v 13.20 19.12 -16.02 +v 13.20 19.26 -16.02 +v 12.44 20.75 -16.00 +v 13.10 20.29 -15.95 +v 13.09 20.29 -16.05 +v 12.43 20.75 -16.10 +v 11.69 19.12 -15.79 +v 11.69 19.26 -15.79 +v 11.68 19.26 -15.89 +v 11.68 19.12 -15.89 +v 12.44 19.07 -16.00 +v 11.80 19.12 -15.84 +v 11.79 19.12 -15.94 +v 12.43 19.07 -16.10 +v 13.08 19.12 -16.16 +v 12.85 19.23 -16.20 +v 13.08 19.26 -16.16 +v 12.86 20.21 -16.09 +v 12.43 20.52 -16.10 +v 11.78 19.26 -16.04 +v 12.00 19.24 -16.12 +v 11.78 19.12 -16.04 +v 12.42 19.07 -16.20 +v 12.42 19.21 -16.20 +v 12.01 20.21 -15.94 +v 12.01 19.24 -15.94 +v 11.80 20.29 -15.84 +v 11.79 20.29 -15.94 +v 13.10 19.12 -15.95 +v 13.09 19.12 -16.05 +v 12.01 20.21 -16.01 +v 12.86 19.23 -16.09 +v 12.01 19.24 -16.01 +v 12.43 19.21 -16.10 +v 11.79 19.26 -15.94 +v 11.80 19.26 -15.84 +v 13.10 19.26 -15.95 +v 13.09 19.26 -16.05 +v 13.19 19.12 -16.13 +v 13.19 19.26 -16.13 +v 11.67 19.26 -16.00 +v 11.67 19.12 -16.00 +v 9.24 23.34 -12.52 +v 8.56 24.92 -12.99 +v 9.10 24.92 -13.76 +v 9.78 23.34 -13.29 +v 9.53 28.41 -12.29 +v 8.63 28.41 -12.92 +v 9.18 28.41 -13.70 +v 10.08 28.41 -13.07 +v 12.87 27.21 -14.81 +v 12.87 26.24 -14.81 +v 12.44 26.21 -14.82 +v 12.44 27.52 -14.82 +v 13.21 26.26 -14.72 +v 13.21 26.12 -14.72 +v 13.20 26.12 -14.82 +v 13.20 26.26 -14.82 +v 12.44 27.75 -14.80 +v 13.10 27.30 -14.75 +v 13.09 27.30 -14.85 +v 12.43 27.75 -14.89 +v 11.69 26.12 -14.59 +v 11.69 26.26 -14.59 +v 11.68 26.26 -14.69 +v 11.68 26.12 -14.69 +v 12.44 26.07 -14.80 +v 11.80 26.12 -14.64 +v 11.79 26.12 -14.73 +v 12.43 26.07 -14.89 +v 13.08 26.12 -14.96 +v 12.85 26.24 -14.99 +v 13.08 26.26 -14.96 +v 12.86 27.21 -14.89 +v 12.43 27.52 -14.89 +v 11.78 26.26 -14.84 +v 12.00 26.25 -14.92 +v 11.78 26.12 -14.84 +v 12.42 26.07 -15.00 +v 12.42 26.21 -15.00 +v 12.01 27.21 -14.74 +v 12.01 26.25 -14.74 +v 11.80 27.30 -14.64 +v 11.79 27.30 -14.73 +v 13.10 26.12 -14.75 +v 13.09 26.12 -14.85 +v 12.01 27.21 -14.81 +v 12.86 26.24 -14.89 +v 12.01 26.25 -14.81 +v 12.43 26.21 -14.89 +v 11.79 26.26 -14.73 +v 11.80 26.26 -14.64 +v 13.10 26.26 -14.75 +v 13.09 26.26 -14.85 +v 13.19 26.12 -14.93 +v 13.19 26.26 -14.93 +v 11.67 26.26 -14.79 +v 11.67 26.12 -14.79 +v 14.41 23.34 -14.01 +v 14.88 24.92 -14.68 +v 15.65 24.92 -14.14 +v 15.18 23.34 -13.46 +v 14.18 28.41 -13.71 +v 14.81 28.41 -14.61 +v 15.59 28.41 -14.07 +v 14.96 28.41 -13.17 +v 8.43 27.21 -10.98 +v 8.43 26.24 -10.98 +v 8.42 26.21 -10.55 +v 8.42 27.52 -10.55 +v 8.52 26.26 -11.32 +v 8.52 26.12 -11.32 +v 8.42 26.12 -11.31 +v 8.42 26.26 -11.31 +v 8.45 27.75 -10.55 +v 8.49 27.30 -11.21 +v 8.39 27.30 -11.20 +v 8.35 27.75 -10.54 +v 8.65 26.12 -9.80 +v 8.65 26.26 -9.80 +v 8.56 26.26 -9.79 +v 8.56 26.12 -9.79 +v 8.45 26.07 -10.55 +v 8.61 26.12 -9.91 +v 8.51 26.12 -9.90 +v 8.35 26.07 -10.54 +v 8.29 26.12 -11.19 +v 8.25 26.24 -10.96 +v 8.29 26.26 -11.19 +v 8.35 27.21 -10.97 +v 8.35 27.52 -10.54 +v 8.40 26.26 -9.89 +v 8.32 26.25 -10.11 +v 8.40 26.12 -9.89 +v 8.24 26.07 -10.53 +v 8.24 26.21 -10.53 +v 8.50 27.21 -10.13 +v 8.50 26.25 -10.13 +v 8.61 27.30 -9.91 +v 8.51 27.30 -9.90 +v 8.49 26.12 -11.21 +v 8.39 26.12 -11.20 +v 8.43 27.21 -10.12 +v 8.35 26.24 -10.97 +v 8.43 26.25 -10.12 +v 8.35 26.21 -10.54 +v 8.51 26.26 -9.90 +v 8.61 26.26 -9.91 +v 8.49 26.26 -11.21 +v 8.39 26.26 -11.20 +v 8.32 26.12 -11.30 +v 8.32 26.26 -11.30 +v 8.45 26.26 -9.78 +v 8.45 26.12 -9.78 +v 13.04 12.70 -6.81 +v 13.04 14.28 -5.99 +v 12.09 14.28 -5.99 +v 12.09 12.70 -6.81 +v 13.04 17.34 -6.74 +v 13.04 17.34 -5.64 +v 12.09 17.34 -5.64 +v 12.09 17.34 -6.74 +v 8.98 12.70 -12.20 +v 8.27 14.28 -12.61 +v 8.74 14.28 -13.43 +v 9.46 12.70 -13.02 +v 8.92 17.34 -12.24 +v 7.97 17.34 -12.79 +v 8.44 17.34 -13.61 +v 9.39 17.34 -13.06 +v 12.09 12.70 -14.54 +v 12.09 14.28 -15.36 +v 13.04 14.28 -15.36 +v 13.04 12.70 -14.54 +v 12.09 17.34 -14.62 +v 12.09 17.34 -15.71 +v 13.04 17.34 -15.71 +v 13.04 17.34 -14.62 +v 10.73 23.34 -7.35 +v 10.25 24.92 -6.67 +v 9.48 24.92 -7.22 +v 9.95 23.34 -7.89 +v 10.95 28.41 -7.65 +v 10.32 28.41 -6.74 +v 9.55 28.41 -7.29 +v 10.18 28.41 -8.19 +v 9.46 12.70 -8.34 +v 8.74 14.28 -7.92 +v 8.27 14.28 -8.74 +v 8.98 12.70 -9.15 +v 9.39 17.34 -8.30 +v 8.44 17.34 -7.75 +v 7.97 17.34 -8.57 +v 8.92 17.34 -9.12 +v 7.23 20.21 -10.98 +v 7.23 19.23 -10.98 +v 7.22 19.21 -10.55 +v 7.22 20.52 -10.55 +v 7.32 19.26 -11.32 +v 7.32 19.12 -11.32 +v 7.22 19.12 -11.31 +v 7.22 19.26 -11.31 +v 7.24 20.75 -10.55 +v 7.29 20.29 -11.21 +v 7.19 20.29 -11.20 +v 7.15 20.75 -10.54 +v 7.45 19.12 -9.80 +v 7.45 19.26 -9.80 +v 7.35 19.26 -9.79 +v 7.35 19.12 -9.79 +v 7.24 19.07 -10.55 +v 7.41 19.12 -9.91 +v 7.31 19.12 -9.90 +v 7.15 19.07 -10.54 +v 7.09 19.12 -11.19 +v 7.05 19.23 -10.96 +v 7.09 19.26 -11.19 +v 7.15 20.21 -10.97 +v 7.15 20.52 -10.54 +v 7.20 19.26 -9.89 +v 7.12 19.24 -10.11 +v 7.20 19.12 -9.89 +v 7.04 19.07 -10.53 +v 7.04 19.21 -10.53 +v 7.30 20.21 -10.13 +v 7.30 19.24 -10.13 +v 7.41 20.29 -9.91 +v 7.31 20.29 -9.90 +v 7.29 19.12 -11.21 +v 7.19 19.12 -11.20 +v 7.23 20.21 -10.12 +v 7.15 19.23 -10.97 +v 7.23 19.24 -10.12 +v 7.15 19.21 -10.54 +v 7.31 19.26 -9.90 +v 7.41 19.26 -9.91 +v 7.29 19.26 -11.21 +v 7.19 19.26 -11.20 +v 7.11 19.12 -11.30 +v 7.11 19.26 -11.30 +v 7.25 19.26 -9.78 +v 7.25 19.12 -9.78 +v 12.26 27.21 -6.54 +v 12.26 26.24 -6.54 +v 12.69 26.21 -6.53 +v 12.69 27.52 -6.53 +v 11.92 26.26 -6.63 +v 11.92 26.12 -6.63 +v 11.93 26.12 -6.53 +v 11.93 26.26 -6.53 +v 12.69 27.75 -6.56 +v 12.03 27.30 -6.60 +v 12.04 27.30 -6.51 +v 12.70 27.75 -6.46 +v 13.44 26.12 -6.76 +v 13.44 26.26 -6.76 +v 13.45 26.26 -6.67 +v 13.45 26.12 -6.67 +v 12.69 26.07 -6.56 +v 13.34 26.12 -6.72 +v 13.34 26.12 -6.62 +v 12.70 26.07 -6.46 +v 12.05 26.12 -6.40 +v 12.28 26.24 -6.36 +v 12.05 26.26 -6.40 +v 12.27 27.21 -6.47 +v 12.70 27.52 -6.46 +v 13.35 26.26 -6.51 +v 13.13 26.25 -6.43 +v 13.35 26.12 -6.51 +v 12.71 26.07 -6.35 +v 12.71 26.21 -6.35 +v 13.12 27.21 -6.61 +v 13.12 26.25 -6.61 +v 13.34 27.30 -6.72 +v 13.34 27.30 -6.62 +v 12.03 26.12 -6.60 +v 12.04 26.12 -6.51 +v 13.12 27.21 -6.54 +v 12.27 26.24 -6.47 +v 13.12 26.25 -6.54 +v 12.70 26.21 -6.46 +v 13.34 26.26 -6.62 +v 13.34 26.26 -6.72 +v 12.03 26.26 -6.60 +v 12.04 26.26 -6.51 +v 11.94 26.12 -6.43 +v 11.94 26.26 -6.43 +v 13.46 26.26 -6.56 +v 13.46 26.12 -6.56 +v 16.15 12.70 -9.15 +v 16.86 14.28 -8.74 +v 16.39 14.28 -7.92 +v 15.67 12.70 -8.34 +v 16.21 17.34 -9.12 +v 17.17 17.34 -8.57 +v 16.69 17.34 -7.75 +v 15.74 17.34 -8.30 +v 12.26 20.21 -5.34 +v 12.26 19.23 -5.34 +v 12.69 19.21 -5.33 +v 12.69 20.52 -5.33 +v 11.92 19.26 -5.43 +v 11.92 19.12 -5.43 +v 11.93 19.12 -5.33 +v 11.93 19.26 -5.33 +v 12.69 20.75 -5.36 +v 12.03 20.29 -5.40 +v 12.04 20.29 -5.30 +v 12.70 20.75 -5.26 +v 13.44 19.12 -5.56 +v 13.44 19.26 -5.56 +v 13.45 19.26 -5.47 +v 13.45 19.12 -5.47 +v 12.69 19.07 -5.36 +v 13.34 19.12 -5.52 +v 13.34 19.12 -5.42 +v 12.70 19.07 -5.26 +v 12.05 19.12 -5.20 +v 12.28 19.23 -5.16 +v 12.05 19.26 -5.20 +v 12.27 20.21 -5.26 +v 12.70 20.52 -5.26 +v 13.35 19.26 -5.31 +v 13.13 19.24 -5.23 +v 13.35 19.12 -5.31 +v 12.71 19.07 -5.15 +v 12.71 19.21 -5.15 +v 13.12 20.21 -5.41 +v 13.12 19.24 -5.41 +v 13.34 20.29 -5.52 +v 13.34 20.29 -5.42 +v 12.03 19.12 -5.40 +v 12.04 19.12 -5.30 +v 13.12 20.21 -5.34 +v 12.27 19.23 -5.26 +v 13.12 19.24 -5.34 +v 12.70 19.21 -5.26 +v 13.34 19.26 -5.42 +v 13.34 19.26 -5.52 +v 12.03 19.26 -5.40 +v 12.04 19.26 -5.30 +v 11.94 19.12 -5.23 +v 11.94 19.26 -5.23 +v 13.46 19.26 -5.36 +v 13.46 19.12 -5.36 +v 15.89 23.34 -8.84 +v 16.57 24.92 -8.36 +v 16.03 24.92 -7.59 +v 15.35 23.34 -8.06 +v 15.60 28.41 -9.06 +v 16.50 28.41 -8.43 +v 15.96 28.41 -7.66 +v 15.06 28.41 -8.29 +v 16.70 27.21 -10.37 +v 16.70 26.24 -10.37 +v 16.71 26.21 -10.80 +v 16.71 27.52 -10.80 +v 16.61 26.26 -10.03 +v 16.61 26.12 -10.03 +v 16.71 26.12 -10.04 +v 16.71 26.26 -10.04 +v 16.69 27.75 -10.80 +v 16.64 27.30 -10.15 +v 16.74 27.30 -10.15 +v 16.78 27.75 -10.81 +v 16.48 26.12 -11.55 +v 16.48 26.26 -11.55 +v 16.58 26.26 -11.56 +v 16.58 26.12 -11.56 +v 16.69 26.07 -10.80 +v 16.53 26.12 -11.45 +v 16.62 26.12 -11.45 +v 16.78 26.07 -10.81 +v 16.84 26.12 -10.16 +v 16.88 26.24 -10.39 +v 16.84 26.26 -10.16 +v 16.78 27.21 -10.38 +v 16.78 27.52 -10.81 +v 16.73 26.26 -11.46 +v 16.81 26.25 -11.24 +v 16.73 26.12 -11.46 +v 16.89 26.07 -10.82 +v 16.89 26.21 -10.82 +v 16.63 27.21 -11.23 +v 16.63 26.25 -11.23 +v 16.53 27.30 -11.45 +v 16.62 27.30 -11.45 +v 16.64 26.12 -10.15 +v 16.74 26.12 -10.15 +v 16.70 27.21 -11.23 +v 16.78 26.24 -10.38 +v 16.70 26.25 -11.23 +v 16.78 26.21 -10.81 +v 16.62 26.26 -11.45 +v 16.53 26.26 -11.45 +v 16.64 26.26 -10.15 +v 16.74 26.26 -10.15 +v 16.82 26.12 -10.05 +v 16.82 26.26 -10.05 +v 16.68 26.26 -11.57 +v 16.68 26.12 -11.57 +v 15.67 12.70 -13.02 +v 16.39 14.28 -13.43 +v 16.86 14.28 -12.61 +v 16.15 12.70 -12.20 +v 15.74 17.34 -13.06 +v 16.69 17.34 -13.61 +v 17.17 17.34 -12.79 +v 16.21 17.34 -12.24 +v 16.83 28.50 -13.14 +v 16.83 30.29 -13.14 +v 17.49 30.29 -10.68 +v 17.49 28.50 -10.68 +v 15.03 28.50 -14.94 +v 15.03 30.29 -14.94 +v 12.57 28.50 -15.60 +v 12.57 30.29 -15.60 +v 10.10 28.50 -14.94 +v 10.10 30.29 -14.94 +v 8.30 28.50 -13.14 +v 8.30 30.29 -13.14 +v 7.64 28.50 -10.68 +v 7.64 30.29 -10.68 +v 8.30 28.50 -8.21 +v 8.30 30.29 -8.21 +v 10.10 28.50 -6.41 +v 10.10 30.29 -6.41 +v 12.57 28.50 -5.75 +v 12.57 30.29 -5.75 +v 15.03 28.50 -6.41 +v 15.03 30.29 -6.41 +v 16.83 28.50 -8.21 +v 16.83 30.29 -8.21 +v 16.21 30.29 -12.78 +v 16.78 30.29 -10.68 +v 15.03 30.90 -14.94 +v 14.67 30.90 -14.32 +v 16.21 30.90 -12.78 +v 16.83 30.90 -13.14 +v 12.57 30.29 -14.89 +v 14.67 30.29 -14.32 +v 10.10 30.90 -14.94 +v 10.46 30.90 -14.32 +v 12.57 30.90 -14.89 +v 12.57 30.90 -15.60 +v 8.92 30.29 -12.78 +v 10.46 30.29 -14.32 +v 7.64 30.90 -10.68 +v 8.36 30.90 -10.68 +v 8.92 30.90 -12.78 +v 8.30 30.90 -13.14 +v 8.92 30.29 -8.57 +v 8.36 30.29 -10.68 +v 10.10 30.90 -6.41 +v 10.46 30.90 -7.03 +v 8.92 30.90 -8.57 +v 8.30 30.90 -8.21 +v 12.57 30.29 -6.47 +v 10.46 30.29 -7.03 +v 15.03 30.90 -6.41 +v 14.67 30.90 -7.03 +v 12.57 30.90 -6.47 +v 12.57 30.90 -5.75 +v 16.21 30.29 -8.57 +v 14.67 30.29 -7.03 +v 17.49 30.90 -10.68 +v 16.78 30.90 -10.68 +v 16.21 30.90 -8.57 +v 16.83 30.90 -8.21 +v 16.21 29.42 -12.78 +v 16.78 29.42 -10.68 +v 14.67 29.42 -14.32 +v 12.57 29.42 -14.89 +v 10.46 29.42 -14.32 +v 8.92 29.42 -12.78 +v 8.36 29.42 -10.68 +v 8.92 29.42 -8.57 +v 10.46 29.42 -7.03 +v 12.57 29.42 -6.47 +v 14.67 29.42 -7.03 +v 16.21 29.42 -8.57 +v 12.57 29.42 -10.68 +# 4553 vertices + +vn -1.00 0.00 -0.00 +vn -0.48 0.00 -0.88 +vn -0.17 0.00 -0.99 +vn 0.00 0.00 -1.00 +vn 0.17 0.00 -0.99 +vn 0.48 0.00 -0.88 +vn 1.00 0.00 -0.00 +vn 0.48 0.00 0.88 +vn 0.17 0.00 0.99 +vn 0.00 0.00 1.00 +vn -0.17 0.00 0.99 +vn -0.48 0.00 0.88 +vn -0.73 0.00 -0.69 +vn -0.27 0.00 -0.96 +vn -0.08 0.00 -1.00 +vn 0.08 0.00 -1.00 +vn 0.27 0.00 -0.96 +vn 0.73 0.00 -0.69 +vn 0.73 0.00 0.69 +vn 0.27 0.00 0.96 +vn 0.08 0.00 1.00 +vn -0.08 0.00 1.00 +vn -0.27 0.00 0.96 +vn -0.73 0.00 0.69 +vn -0.72 0.00 0.69 +vn 0.00 -1.00 -0.00 +vn 0.00 1.00 -0.00 +vn -0.60 0.56 -0.57 +vn -0.26 0.33 -0.91 +vn -0.07 0.25 -0.96 +vn 0.07 0.25 -0.96 +vn 0.26 0.33 -0.91 +vn 0.60 0.56 -0.57 +vn 0.60 0.56 0.57 +vn 0.26 0.33 0.91 +vn 0.07 0.25 0.96 +vn -0.07 0.25 0.96 +vn -0.26 0.33 0.91 +vn -0.60 0.56 0.57 +vn -0.73 0.01 -0.69 +vn -0.27 0.01 -0.96 +vn -0.08 0.01 -1.00 +vn -0.07 0.01 -1.00 +vn 0.08 0.01 -1.00 +vn 0.27 0.01 -0.96 +vn 0.73 0.01 -0.69 +vn 0.72 0.01 0.69 +vn 0.73 0.01 0.69 +vn 0.27 0.01 0.96 +vn 0.08 0.01 1.00 +vn -0.08 0.01 1.00 +vn -0.07 0.01 1.00 +vn -0.27 0.01 0.96 +vn -0.73 0.01 0.69 +vn -0.72 0.01 0.69 +vn -0.30 -0.91 -0.29 +vn -0.18 -0.75 -0.64 +vn -0.18 -0.74 -0.64 +vn -0.06 -0.65 -0.76 +vn 0.06 -0.65 -0.76 +vn 0.18 -0.75 -0.64 +vn 0.18 -0.74 -0.64 +vn 0.30 -0.91 -0.29 +vn 0.30 -0.91 0.29 +vn 0.18 -0.74 0.64 +vn 0.18 -0.75 0.64 +vn 0.06 -0.65 0.76 +vn -0.06 -0.65 0.76 +vn -0.18 -0.74 0.64 +vn -0.18 -0.75 0.64 +vn -0.30 -0.91 0.29 +vn -1.00 0.00 0.06 +vn -0.02 0.00 1.00 +vn -0.02 0.65 0.76 +vn 0.02 0.00 -1.00 +vn 0.00 -0.99 -0.12 +vn -0.85 0.00 0.52 +vn -0.95 0.12 0.30 +vn -0.62 0.00 -0.78 +vn -0.76 -0.16 -0.63 +vn -0.83 0.00 -0.56 +vn 0.02 0.66 -0.75 +vn -0.00 -0.99 0.12 +vn -0.72 0.09 -0.69 +vn -0.96 -0.21 0.19 +vn 0.02 -0.64 -0.77 +vn -0.02 -0.64 0.77 +vn -0.00 0.99 0.13 +vn 0.00 1.00 -0.10 +vn 0.00 0.99 -0.17 +vn 0.01 0.99 -0.17 +vn -0.00 0.99 0.10 +vn -0.74 0.00 0.67 +vn -0.75 0.00 0.67 +vn -0.54 0.00 -0.84 +vn -0.00 0.00 -1.00 +vn -0.96 0.00 -0.29 +vn -0.95 0.00 -0.30 +vn -0.31 0.95 -0.10 +vn 0.95 0.00 0.30 +vn 0.96 0.00 0.29 +vn 0.03 -1.00 0.01 +vn -0.05 0.00 -1.00 +vn -0.03 0.04 -1.00 +vn 0.10 0.00 -1.00 +vn 0.07 -0.06 -1.00 +vn 0.05 0.00 -1.00 +vn 0.31 0.95 0.10 +vn -0.04 -1.00 -0.01 +vn 0.08 0.04 -1.00 +vn -0.02 -0.06 -1.00 +vn 0.32 -0.94 0.10 +vn -0.32 -0.94 -0.10 +vn -0.04 1.00 -0.01 +vn 0.03 1.00 0.01 +vn 0.05 1.00 0.01 +vn -0.03 1.00 -0.01 +vn -0.07 0.00 -1.00 +vn 0.12 0.00 -0.99 +vn 0.33 -0.45 -0.83 +vn 0.19 -0.00 0.98 +vn 0.37 0.03 -0.93 +vn -0.19 0.00 -0.98 +vn -0.01 0.00 -1.00 +vn -0.96 0.00 -0.30 +vn 0.31 0.95 0.09 +vn -0.18 -0.35 -0.92 +vn 0.37 -0.00 -0.93 +vn -0.19 0.02 -0.98 +vn -0.37 0.00 0.93 +vn 1.00 0.00 -0.06 +vn 0.02 0.65 -0.76 +vn 0.85 0.00 -0.52 +vn 0.95 0.12 -0.30 +vn 0.62 0.00 0.78 +vn 0.76 -0.16 0.63 +vn 0.83 0.00 0.56 +vn 0.82 0.00 0.57 +vn -0.02 0.66 0.75 +vn 0.72 0.09 0.69 +vn 0.96 -0.21 -0.19 +vn 0.00 0.99 -0.13 +vn -0.00 1.00 0.10 +vn -0.00 0.99 0.17 +vn 0.00 0.99 -0.10 +vn 0.75 0.00 -0.67 +vn 0.54 0.00 0.84 +vn 0.00 -0.30 0.95 +vn 0.00 -0.07 1.00 +vn 0.38 -0.49 -0.78 +vn 0.16 0.00 0.99 +vn 0.44 -0.12 -0.89 +vn -0.16 0.00 -0.99 +vn 0.00 -0.30 -0.95 +vn 0.00 -0.07 -1.00 +vn 0.18 -0.35 0.92 +vn -0.37 -0.00 0.93 +vn 0.19 0.02 0.98 +vn 0.37 0.00 -0.93 +vn 0.38 -0.49 0.78 +vn -0.16 0.00 0.99 +vn 0.44 -0.12 0.89 +vn 0.16 0.00 -0.99 +vn 0.01 0.00 1.00 +vn 0.96 0.00 0.30 +vn -0.03 -1.00 -0.01 +vn 0.05 0.00 1.00 +vn 0.03 0.04 1.00 +vn -0.10 0.00 1.00 +vn -0.07 -0.06 1.00 +vn -0.05 0.00 1.00 +vn -0.31 0.95 -0.09 +vn 0.04 -1.00 0.01 +vn -0.08 0.04 1.00 +vn 0.02 -0.06 1.00 +vn 0.04 1.00 0.01 +vn -0.05 1.00 -0.02 +vn 0.07 0.00 1.00 +vn -0.12 0.00 0.99 +vn -0.38 -0.49 0.78 +vn -0.44 -0.12 0.89 +vn -0.43 -0.12 0.89 +vn -0.33 -0.45 0.83 +vn -0.19 -0.00 -0.98 +vn -0.37 0.03 0.93 +vn 0.19 0.00 0.98 +vn -0.38 -0.49 -0.78 +vn -0.44 -0.12 -0.89 +vn -0.43 -0.12 -0.89 +vn 0.72 0.00 0.69 +vn -0.07 0.00 1.00 +vn -0.72 0.00 -0.69 +vn 0.07 0.00 -1.00 +vn 0.72 0.00 -0.69 +vn 0.44 0.00 -0.90 +vn 0.44 0.00 0.90 +vn -0.44 0.00 0.90 +vn -0.44 0.00 -0.90 +vn 0.50 0.87 -0.00 +vn 0.00 0.45 -0.89 +vn -0.50 0.87 -0.00 +vn 0.00 0.42 0.91 +vn 0.08 1.00 -0.00 +vn 0.04 0.55 0.83 +vn -0.00 0.55 0.83 +vn 0.01 0.01 1.00 +vn -0.00 0.55 -0.83 +vn 0.04 0.55 -0.83 +vn 0.01 0.01 -1.00 +vn -0.08 1.00 -0.00 +vn -0.04 0.55 0.83 +vn -0.01 0.01 1.00 +vn -0.04 0.55 -0.83 +vn -0.01 0.01 -1.00 +vn -0.06 0.60 -0.79 +vn -0.91 -0.41 0.00 +vn -0.10 0.98 -0.19 +vn -0.06 0.60 0.79 +vn -0.91 -0.41 -0.00 +vn -0.10 0.98 0.19 +vn -0.05 0.61 -0.79 +vn -0.94 -0.35 -0.00 +vn -0.08 0.98 -0.19 +vn -0.05 0.61 0.79 +vn -0.08 0.98 0.19 +vn -0.04 0.61 -0.79 +vn -0.03 0.61 -0.79 +vn -0.97 -0.25 0.00 +vn -0.97 -0.25 -0.00 +vn -0.06 0.98 -0.19 +vn -0.04 0.61 0.79 +vn -0.03 0.61 0.79 +vn -0.06 0.98 0.19 +vn -0.01 0.61 -0.79 +vn -1.00 -0.07 -0.00 +vn -0.02 0.98 -0.19 +vn -0.01 0.61 0.79 +vn -0.02 0.98 0.19 +vn -1.00 -0.07 0.00 +vn -0.02 0.61 -0.79 +vn -0.99 -0.11 -0.00 +vn -0.02 0.61 0.79 +vn -0.99 -0.11 0.00 +vn 0.06 0.60 -0.79 +vn 0.91 -0.41 0.00 +vn 0.10 0.98 -0.19 +vn 0.06 0.60 0.79 +vn 0.91 -0.41 -0.00 +vn 0.10 0.98 0.19 +vn 0.05 0.61 -0.79 +vn 0.94 -0.35 -0.00 +vn 0.08 0.98 -0.19 +vn 0.05 0.61 0.79 +vn 0.94 -0.35 0.00 +vn 0.08 0.98 0.19 +vn 0.03 0.61 -0.79 +vn 0.04 0.61 -0.79 +vn 0.97 -0.25 0.00 +vn 0.06 0.98 -0.19 +vn 0.03 0.61 0.79 +vn 0.97 -0.25 -0.00 +vn 0.06 0.98 0.19 +vn 0.04 0.61 0.79 +vn 0.01 0.61 -0.79 +vn 1.00 -0.07 -0.00 +vn 0.02 0.98 -0.19 +vn 0.01 0.61 0.79 +vn 0.02 0.98 0.19 +vn 1.00 -0.07 0.00 +vn 0.02 0.61 -0.79 +vn 0.99 -0.11 -0.00 +vn 0.02 0.61 0.79 +vn 0.99 -0.11 0.00 +vn 0.10 0.98 -0.20 +vn 0.10 0.98 0.20 +vn 0.09 0.59 -0.80 +vn -0.82 0.57 0.00 +vn -0.82 0.57 -0.00 +vn 0.15 0.97 -0.20 +vn 0.09 0.59 0.80 +vn 0.15 0.97 0.20 +vn -0.09 0.59 -0.80 +vn 0.82 0.57 0.00 +vn -0.15 0.97 -0.20 +vn -0.09 0.59 0.80 +vn 0.82 0.57 -0.00 +vn -0.15 0.97 0.20 +vn -0.57 0.82 -0.00 +vn 0.08 -1.00 -0.00 +vn 0.57 0.82 -0.00 +vn -0.08 -1.00 -0.00 +vn 0.59 -0.81 -0.00 +vn -0.59 -0.81 -0.00 +vn 0.06 1.00 -0.00 +vn 0.10 0.99 -0.00 +vn -0.06 1.00 -0.00 +vn -0.07 -1.00 -0.00 +vn 0.07 -1.00 -0.00 +vn 0.00 0.37 0.93 +vn 0.00 -0.97 -0.26 +vn 0.00 0.37 -0.93 +vn 0.00 -0.97 0.26 +vn 0.00 -0.36 -0.93 +vn 0.00 -0.36 0.93 +vn 0.00 0.96 0.28 +vn 0.00 0.98 -0.21 +vn 0.00 0.94 -0.35 +vn 0.00 0.98 0.22 +vn 0.00 0.96 -0.28 +vn 0.00 0.98 0.21 +vn 0.00 0.94 0.35 +vn 0.00 0.98 -0.22 +vn 0.11 0.99 -0.00 +vn -0.10 0.99 -0.00 +vn 1.00 0.04 -0.00 +vn 0.87 0.50 -0.00 +vn -1.00 -0.04 -0.00 +vn -0.87 -0.50 -0.00 +vn 0.40 0.92 -0.00 +vn -0.42 -0.91 -0.00 +vn -0.40 0.92 -0.00 +vn 0.42 -0.91 -0.00 +vn -0.87 0.50 -0.00 +vn 0.87 -0.50 -0.00 +vn -1.00 0.04 -0.00 +vn 1.00 -0.04 -0.00 +vn 0.02 0.05 -1.00 +vn 0.95 -0.05 0.30 +vn -0.02 -0.01 1.00 +vn -0.94 0.18 -0.29 +vn 0.03 -0.06 -1.00 +vn 0.02 -0.06 -1.00 +vn 0.96 0.05 0.27 +vn -0.02 0.01 1.00 +vn -0.96 -0.22 -0.19 +vn 0.00 -1.00 -0.05 +vn 0.00 1.00 0.05 +vn 0.00 -1.00 0.05 +vn 0.00 1.00 -0.05 +vn 0.02 -1.00 -0.00 +vn -0.02 1.00 -0.00 +vn -0.01 1.00 -0.00 +vn -0.01 -1.00 -0.00 +vn 0.01 1.00 -0.00 +vn 0.02 0.05 1.00 +vn 0.95 -0.05 -0.30 +vn -0.02 -0.01 -1.00 +vn -0.94 0.18 0.29 +vn 0.03 -0.06 1.00 +vn 0.96 0.05 -0.27 +vn -0.02 0.01 -1.00 +vn -0.96 -0.22 0.19 +vn -0.96 -0.22 0.18 +vn 0.01 -1.00 -0.00 +vn -0.02 -1.00 -0.00 +vn 0.02 1.00 -0.00 +vn -0.99 0.12 -0.00 +vn -1.00 0.01 0.04 +vn -0.99 -0.10 0.07 +vn 0.00 0.01 1.00 +vn 0.00 -0.00 1.00 +vn 1.00 0.01 0.01 +vn 1.00 -0.03 0.02 +vn 0.00 0.04 -1.00 +vn 0.00 0.01 -1.00 +vn 0.00 -0.02 -1.00 +vn 0.13 -0.99 -0.00 +vn -0.13 0.99 -0.00 +vn -0.13 -0.99 -0.00 +vn 0.13 0.99 -0.00 +vn -0.07 1.00 -0.00 +vn 0.07 1.00 -0.00 +vn 0.00 -0.67 -0.74 +vn 0.00 -0.13 -0.99 +vn 0.00 0.67 -0.74 +vn 0.00 0.13 -0.99 +vn 0.00 0.12 -0.99 +vn -1.00 0.01 -0.04 +vn -0.99 -0.10 -0.07 +vn 0.00 -0.00 -1.00 +vn 1.00 0.01 -0.01 +vn 1.00 -0.03 -0.02 +vn 0.00 0.04 1.00 +vn 0.00 -0.02 1.00 +vn 0.72 0.01 -0.69 +vn -0.72 0.01 -0.69 +vn -1.00 0.00 -0.06 +vn -0.02 0.00 -1.00 +vn -0.02 0.65 -0.76 +vn 0.02 0.00 1.00 +vn 0.00 -0.99 0.12 +vn -0.85 0.00 -0.52 +vn -0.95 0.12 -0.30 +vn -0.62 0.00 0.78 +vn -0.76 -0.16 0.63 +vn -0.83 0.00 0.56 +vn 0.02 0.66 0.75 +vn -0.00 -0.99 -0.12 +vn -0.72 0.09 0.69 +vn -0.96 -0.21 -0.19 +vn 0.02 -0.64 0.77 +vn -0.02 -0.64 -0.77 +vn -0.00 0.99 -0.13 +vn 0.00 1.00 0.10 +vn 0.00 0.99 0.17 +vn 0.01 0.99 0.17 +vn -0.00 0.99 -0.10 +vn -0.74 0.00 -0.67 +vn -0.75 0.00 -0.67 +vn -0.54 0.00 0.84 +vn -0.00 0.00 1.00 +vn -0.96 0.00 0.29 +vn -0.95 0.00 0.30 +vn -0.31 0.95 0.10 +vn 0.95 0.00 -0.30 +vn 0.96 0.00 -0.29 +vn 0.03 -1.00 -0.01 +vn -0.03 0.04 1.00 +vn 0.10 0.00 1.00 +vn 0.07 -0.06 1.00 +vn 0.31 0.95 -0.10 +vn -0.04 -1.00 0.01 +vn 0.08 0.04 1.00 +vn -0.02 -0.06 1.00 +vn 0.32 -0.94 -0.10 +vn -0.32 -0.94 0.10 +vn -0.04 1.00 0.01 +vn 0.03 1.00 -0.01 +vn 0.05 1.00 -0.01 +vn -0.03 1.00 0.01 +vn 0.12 0.00 0.99 +vn 0.33 -0.45 0.83 +vn 0.19 -0.00 -0.98 +vn 0.37 0.03 0.93 +vn -0.19 0.00 0.98 +vn -0.01 0.00 1.00 +vn -0.96 0.00 0.30 +vn 0.31 0.95 -0.09 +vn -0.18 -0.35 0.92 +vn 0.37 -0.00 0.93 +vn -0.19 0.02 0.98 +vn -0.37 0.00 -0.93 +vn 1.00 0.00 0.06 +vn 0.02 0.65 0.76 +vn 0.85 0.00 0.52 +vn 0.95 0.12 0.30 +vn 0.62 0.00 -0.78 +vn 0.76 -0.16 -0.63 +vn 0.83 0.00 -0.56 +vn 0.82 0.00 -0.57 +vn -0.02 0.66 -0.75 +vn 0.72 0.09 -0.69 +vn 0.96 -0.21 0.19 +vn 0.00 0.99 0.13 +vn -0.00 1.00 -0.10 +vn -0.00 0.99 -0.17 +vn 0.00 0.99 0.10 +vn 0.75 0.00 0.67 +vn 0.54 0.00 -0.84 +vn 0.18 -0.35 -0.92 +vn -0.37 -0.00 -0.93 +vn 0.19 0.02 -0.98 +vn 0.37 0.00 0.93 +vn 0.01 0.00 -1.00 +vn 0.96 0.00 -0.30 +vn -0.03 -1.00 0.01 +vn 0.03 0.04 -1.00 +vn -0.10 0.00 -1.00 +vn -0.07 -0.06 -1.00 +vn -0.31 0.95 0.09 +vn 0.04 -1.00 -0.01 +vn -0.08 0.04 -1.00 +vn 0.04 1.00 -0.01 +vn -0.05 1.00 0.02 +vn -0.12 0.00 -0.99 +vn -0.33 -0.45 -0.83 +vn -0.19 -0.00 0.98 +vn -0.37 0.03 -0.93 +vn 0.19 0.00 -0.98 +vn 0.74 0.00 -0.67 +vn -0.05 1.00 -0.01 +vn -0.82 0.00 -0.57 +vn 0.05 1.00 0.02 +vn 0.74 0.00 0.67 +vn -0.05 1.00 0.01 +vn -0.82 0.00 0.57 +vn 0.05 1.00 -0.02 +# 487 vertex normals + +vt 0.10 0.10 0.00 +vt 0.07 0.10 0.00 +vt 0.07 0.01 0.00 +vt 0.10 0.01 0.00 +vt 0.05 0.10 0.00 +vt 0.05 0.01 0.00 +vt 0.02 0.10 0.00 +vt 0.02 0.01 0.00 +vt 0.38 0.10 0.00 +vt 0.35 0.10 0.00 +vt 0.35 0.01 0.00 +vt 0.38 0.01 0.00 +vt 0.32 0.10 0.00 +vt 0.32 0.01 0.00 +vt 0.29 0.10 0.00 +vt 0.29 0.01 0.00 +vt 0.27 0.10 0.00 +vt 0.27 0.01 0.00 +vt 0.24 0.10 0.00 +vt 0.24 0.01 0.00 +vt 0.21 0.10 0.00 +vt 0.21 0.01 0.00 +vt 0.17 0.10 0.00 +vt 0.17 0.01 0.00 +vt 0.13 0.10 0.00 +vt 0.13 0.01 0.00 +vt 0.34 0.56 0.00 +vt 0.37 0.56 0.00 +vt 0.37 0.57 0.00 +vt 0.34 0.57 0.00 +vt 0.30 0.56 0.00 +vt 0.30 0.57 0.00 +vt 0.27 0.56 0.00 +vt 0.27 0.57 0.00 +vt 0.61 0.56 0.00 +vt 0.64 0.56 0.00 +vt 0.64 0.57 0.00 +vt 0.61 0.57 0.00 +vt 0.58 0.56 0.00 +vt 0.58 0.57 0.00 +vt 0.55 0.56 0.00 +vt 0.55 0.57 0.00 +vt 0.52 0.56 0.00 +vt 0.52 0.57 0.00 +vt 0.49 0.56 0.00 +vt 0.49 0.57 0.00 +vt 0.46 0.56 0.00 +vt 0.46 0.57 0.00 +vt 0.43 0.56 0.00 +vt 0.43 0.57 0.00 +vt 0.40 0.56 0.00 +vt 0.40 0.57 0.00 +vt 0.97 0.27 0.00 +vt 0.96 0.28 0.00 +vt 0.94 0.27 0.00 +vt 0.93 0.26 0.00 +vt 0.93 0.25 0.00 +vt 0.93 0.24 0.00 +vt 0.93 0.23 0.00 +vt 0.94 0.23 0.00 +vt 0.94 0.22 0.00 +vt 0.96 0.22 0.00 +vt 0.97 0.23 0.00 +vt 0.97 0.22 0.00 +vt 0.98 0.24 0.00 +vt 0.98 0.23 0.00 +vt 0.99 0.25 0.00 +vt 0.98 0.26 0.00 +vt 0.81 0.06 0.00 +vt 0.81 0.16 0.00 +vt 0.78 0.16 0.00 +vt 0.78 0.06 0.00 +vt 0.76 0.16 0.00 +vt 0.76 0.06 0.00 +vt 0.73 0.16 0.00 +vt 0.73 0.06 0.00 +vt 0.71 0.16 0.00 +vt 0.71 0.06 0.00 +vt 0.69 0.16 0.00 +vt 0.69 0.06 0.00 +vt 0.98 0.06 0.00 +vt 0.98 0.16 0.00 +vt 0.95 0.16 0.00 +vt 0.95 0.06 0.00 +vt 0.93 0.16 0.00 +vt 0.93 0.06 0.00 +vt 0.91 0.16 0.00 +vt 0.91 0.06 0.00 +vt 0.88 0.16 0.00 +vt 0.88 0.06 0.00 +vt 0.86 0.16 0.00 +vt 0.86 0.07 0.00 +vt 0.83 0.16 0.00 +vt 0.83 0.07 0.00 +vt 0.98 0.28 0.00 +vt 0.96 0.29 0.00 +vt 0.99 0.27 0.00 +vt 1.00 0.25 0.00 +vt 0.99 0.23 0.00 +vt 0.98 0.22 0.00 +vt 0.96 0.21 0.00 +vt 0.92 0.23 0.00 +vt 0.92 0.25 0.00 +vt 0.93 0.27 0.00 +vt 0.92 0.27 0.00 +vt 0.94 0.28 0.00 +vt 0.11 0.23 0.00 +vt 0.09 0.22 0.00 +vt 0.10 0.18 0.00 +vt 0.13 0.19 0.00 +vt 0.14 0.24 0.00 +vt 0.15 0.19 0.00 +vt 0.17 0.24 0.00 +vt 0.18 0.20 0.00 +vt 0.21 0.24 0.00 +vt 0.20 0.20 0.00 +vt 0.24 0.24 0.00 +vt 0.23 0.19 0.00 +vt 0.27 0.23 0.00 +vt 0.25 0.19 0.00 +vt 0.30 0.22 0.00 +vt 0.28 0.18 0.00 +vt 0.32 0.21 0.00 +vt 0.30 0.17 0.00 +vt 0.35 0.19 0.00 +vt 0.32 0.16 0.00 +vt 0.03 0.19 0.00 +vt 0.01 0.17 0.00 +vt 0.04 0.14 0.00 +vt 0.06 0.16 0.00 +vt 0.06 0.21 0.00 +vt 0.08 0.17 0.00 +vt 0.12 0.14 0.00 +vt 0.14 0.15 0.00 +vt 0.16 0.15 0.00 +vt 0.18 0.16 0.00 +vt 0.20 0.16 0.00 +vt 0.22 0.15 0.00 +vt 0.24 0.15 0.00 +vt 0.26 0.14 0.00 +vt 0.28 0.13 0.00 +vt 0.31 0.12 0.00 +vt 0.06 0.11 0.00 +vt 0.08 0.12 0.00 +vt 0.10 0.13 0.00 +vt 0.14 0.12 0.00 +vt 0.12 0.12 0.00 +vt 0.12 0.11 0.00 +vt 0.14 0.11 0.00 +vt 0.10 0.12 0.00 +vt 0.10 0.11 0.00 +vt 0.35 0.12 0.00 +vt 0.33 0.12 0.00 +vt 0.33 0.11 0.00 +vt 0.35 0.11 0.00 +vt 0.31 0.11 0.00 +vt 0.29 0.12 0.00 +vt 0.29 0.11 0.00 +vt 0.27 0.12 0.00 +vt 0.27 0.11 0.00 +vt 0.24 0.12 0.00 +vt 0.24 0.11 0.00 +vt 0.22 0.12 0.00 +vt 0.22 0.11 0.00 +vt 0.20 0.12 0.00 +vt 0.20 0.11 0.00 +vt 0.18 0.12 0.00 +vt 0.18 0.11 0.00 +vt 0.16 0.12 0.00 +vt 0.16 0.11 0.00 +vt 0.67 0.06 0.00 +vt 0.64 0.06 0.00 +vt 0.64 0.01 0.00 +vt 0.67 0.01 0.00 +vt 0.60 0.06 0.00 +vt 0.60 0.01 0.00 +vt 0.99 0.06 0.00 +vt 0.96 0.06 0.00 +vt 0.96 0.01 0.00 +vt 0.99 0.01 0.00 +vt 0.93 0.01 0.00 +vt 0.89 0.06 0.00 +vt 0.89 0.01 0.00 +vt 0.86 0.06 0.00 +vt 0.86 0.01 0.00 +vt 0.83 0.06 0.00 +vt 0.83 0.01 0.00 +vt 0.80 0.06 0.00 +vt 0.80 0.01 0.00 +vt 0.77 0.06 0.00 +vt 0.77 0.01 0.00 +vt 0.73 0.01 0.00 +vt 0.70 0.06 0.00 +vt 0.70 0.01 0.00 +vt 0.95 0.87 0.00 +vt 0.93 0.89 0.00 +vt 0.92 0.82 0.00 +vt 0.95 0.82 0.00 +vt 0.92 0.79 0.00 +vt 0.90 0.79 0.00 +vt 0.90 0.77 0.00 +vt 0.92 0.77 0.00 +vt 0.99 0.56 0.00 +vt 0.98 0.56 0.00 +vt 0.98 0.52 0.00 +vt 0.99 0.52 0.00 +vt 0.93 0.78 0.00 +vt 0.96 0.78 0.00 +vt 0.96 0.79 0.00 +vt 0.96 0.81 0.00 +vt 0.94 0.81 0.00 +vt 0.93 0.90 0.00 +vt 0.95 0.88 0.00 +vt 0.96 0.88 0.00 +vt 0.89 0.79 0.00 +vt 0.89 0.81 0.00 +vt 0.90 0.87 0.00 +vt 0.90 0.82 0.00 +vt 0.99 0.60 0.00 +vt 0.98 0.60 0.00 +vt 0.99 0.66 0.00 +vt 0.99 0.59 0.00 +vt 0.99 0.46 0.00 +vt 0.92 0.76 0.00 +vt 0.86 0.76 0.00 +vt 0.86 0.77 0.00 +vt 0.96 0.83 0.00 +vt 0.95 0.83 0.00 +vt 0.98 0.66 0.00 +vt 0.98 0.46 0.00 +vt 0.96 0.76 0.00 +vt 0.92 0.75 0.00 +vt 0.96 0.75 0.00 +vt 0.86 0.75 0.00 +vt 0.93 0.77 0.00 +vt 0.96 0.77 0.00 +vt 0.97 0.76 0.00 +vt 0.97 0.77 0.00 +vt 0.97 0.75 0.00 +vt 0.97 0.79 0.00 +vt 0.98 0.80 0.00 +vt 0.97 0.78 0.00 +vt 0.62 0.90 0.00 +vt 0.63 0.90 0.00 +vt 0.63 0.93 0.00 +vt 0.62 0.93 0.00 +vt 0.66 0.90 0.00 +vt 0.64 0.93 0.00 +vt 0.64 0.98 0.00 +vt 0.66 0.98 0.00 +vt 0.63 0.99 0.00 +vt 0.62 0.99 0.00 +vt 0.60 0.18 0.00 +vt 0.63 0.18 0.00 +vt 0.63 0.20 0.00 +vt 0.60 0.20 0.00 +vt 0.56 0.18 0.00 +vt 0.56 0.20 0.00 +vt 0.53 0.18 0.00 +vt 0.53 0.20 0.00 +vt 0.89 0.18 0.00 +vt 0.92 0.18 0.00 +vt 0.92 0.20 0.00 +vt 0.89 0.20 0.00 +vt 0.86 0.18 0.00 +vt 0.86 0.20 0.00 +vt 0.82 0.18 0.00 +vt 0.82 0.20 0.00 +vt 0.79 0.18 0.00 +vt 0.79 0.20 0.00 +vt 0.76 0.18 0.00 +vt 0.76 0.20 0.00 +vt 0.73 0.18 0.00 +vt 0.73 0.20 0.00 +vt 0.69 0.18 0.00 +vt 0.69 0.20 0.00 +vt 0.66 0.18 0.00 +vt 0.66 0.20 0.00 +vt 0.86 0.88 0.00 +vt 0.83 0.89 0.00 +vt 0.83 0.88 0.00 +vt 0.85 0.88 0.00 +vt 0.88 0.87 0.00 +vt 0.87 0.86 0.00 +vt 0.88 0.84 0.00 +vt 0.88 0.81 0.00 +vt 0.87 0.82 0.00 +vt 0.86 0.79 0.00 +vt 0.85 0.80 0.00 +vt 0.83 0.79 0.00 +vt 0.83 0.80 0.00 +vt 0.81 0.79 0.00 +vt 0.81 0.80 0.00 +vt 0.79 0.81 0.00 +vt 0.79 0.82 0.00 +vt 0.78 0.84 0.00 +vt 0.79 0.84 0.00 +vt 0.79 0.87 0.00 +vt 0.79 0.86 0.00 +vt 0.81 0.88 0.00 +vt 0.60 0.67 0.00 +vt 0.58 0.67 0.00 +vt 0.58 0.66 0.00 +vt 0.61 0.66 0.00 +vt 0.64 0.67 0.00 +vt 0.64 0.66 0.00 +vt 0.68 0.67 0.00 +vt 0.68 0.66 0.00 +vt 0.72 0.67 0.00 +vt 0.72 0.66 0.00 +vt 0.76 0.67 0.00 +vt 0.76 0.66 0.00 +vt 0.79 0.67 0.00 +vt 0.79 0.66 0.00 +vt 0.81 0.67 0.00 +vt 0.81 0.66 0.00 +vt 0.84 0.67 0.00 +vt 0.84 0.66 0.00 +vt 0.88 0.67 0.00 +vt 0.88 0.66 0.00 +vt 0.53 0.67 0.00 +vt 0.49 0.67 0.00 +vt 0.50 0.66 0.00 +vt 0.53 0.66 0.00 +vt 0.56 0.67 0.00 +vt 0.56 0.66 0.00 +vt 0.66 0.16 0.00 +vt 0.63 0.17 0.00 +vt 0.63 0.12 0.00 +vt 0.68 0.14 0.00 +vt 0.68 0.12 0.00 +vt 0.68 0.09 0.00 +vt 0.66 0.07 0.00 +vt 0.63 0.07 0.00 +vt 0.61 0.07 0.00 +vt 0.59 0.09 0.00 +vt 0.59 0.12 0.00 +vt 0.59 0.14 0.00 +vt 0.61 0.16 0.00 +vt 0.60 0.21 0.00 +vt 0.56 0.21 0.00 +vt 0.64 0.68 0.00 +vt 0.60 0.68 0.00 +vt 0.92 0.21 0.00 +vt 0.89 0.21 0.00 +vt 0.72 0.68 0.00 +vt 0.68 0.68 0.00 +vt 0.86 0.21 0.00 +vt 0.82 0.21 0.00 +vt 0.79 0.68 0.00 +vt 0.76 0.68 0.00 +vt 0.79 0.21 0.00 +vt 0.76 0.21 0.00 +vt 0.84 0.68 0.00 +vt 0.81 0.68 0.00 +vt 0.73 0.21 0.00 +vt 0.69 0.21 0.00 +vt 0.53 0.68 0.00 +vt 0.49 0.68 0.00 +vt 0.66 0.21 0.00 +vt 0.63 0.21 0.00 +vt 0.58 0.68 0.00 +vt 0.56 0.68 0.00 +vt 0.24 0.62 0.00 +vt 0.00 0.62 0.00 +vt 0.05 0.71 0.00 +vt 0.19 0.71 0.00 +vt 0.00 0.41 0.00 +vt 0.28 0.41 0.00 +vt 0.24 0.49 0.00 +vt 0.05 0.49 0.00 +vt 0.01 0.52 0.00 +vt 0.29 0.52 0.00 +vt 0.24 0.59 0.00 +vt 0.05 0.59 0.00 +vt 0.38 0.32 0.00 +vt 0.53 0.32 0.00 +vt 0.53 0.42 0.00 +vt 0.38 0.42 0.00 +vt 0.67 0.21 0.00 +vt 0.49 0.21 0.00 +vt 0.49 0.30 0.00 +vt 0.67 0.30 0.00 +vt 0.46 0.89 0.00 +vt 0.27 0.89 0.00 +vt 0.27 0.99 0.00 +vt 0.46 0.99 0.00 +vt 0.62 0.80 0.00 +vt 0.77 0.80 0.00 +vt 0.77 0.88 0.00 +vt 0.62 0.88 0.00 +vt 0.24 0.73 0.00 +vt 0.32 0.73 0.00 +vt 0.31 0.72 0.00 +vt 0.24 0.72 0.00 +vt 0.32 0.63 0.00 +vt 0.31 0.64 0.00 +vt 0.24 0.63 0.00 +vt 0.24 0.64 0.00 +vt 0.19 0.33 0.00 +vt 0.19 0.25 0.00 +vt 0.20 0.27 0.00 +vt 0.20 0.31 0.00 +vt 0.31 0.25 0.00 +vt 0.30 0.27 0.00 +vt 0.31 0.33 0.00 +vt 0.30 0.31 0.00 +vt 0.14 0.26 0.00 +vt 0.14 0.40 0.00 +vt 0.18 0.34 0.00 +vt 0.18 0.26 0.00 +vt 0.36 0.40 0.00 +vt 0.32 0.34 0.00 +vt 0.36 0.26 0.00 +vt 0.32 0.26 0.00 +vt 0.49 0.15 0.00 +vt 0.49 0.25 0.00 +vt 0.36 0.25 0.00 +vt 0.36 0.15 0.00 +vt 0.41 0.01 0.00 +vt 0.58 0.01 0.00 +vt 0.58 0.14 0.00 +vt 0.41 0.14 0.00 +vt 0.58 0.42 0.00 +vt 0.58 0.54 0.00 +vt 0.45 0.53 0.00 +vt 0.45 0.45 0.00 +vt 0.71 0.95 0.00 +vt 0.66 0.89 0.00 +vt 0.14 0.94 0.00 +vt 0.01 0.95 0.00 +vt 0.76 0.89 0.00 +vt 0.32 0.41 0.00 +vt 0.32 0.53 0.00 +vt 0.27 0.95 0.00 +vt 0.80 0.98 0.00 +vt 0.80 0.93 0.00 +vt 0.81 0.93 0.00 +vt 0.81 0.98 0.00 +vt 0.78 0.98 0.00 +vt 0.78 0.93 0.00 +vt 0.77 0.93 0.00 +vt 0.77 0.98 0.00 +vt 0.77 0.99 0.00 +vt 0.78 0.99 0.00 +vt 0.73 0.93 0.00 +vt 0.74 0.93 0.00 +vt 0.74 0.98 0.00 +vt 0.73 0.98 0.00 +vt 0.76 0.98 0.00 +vt 0.86 0.48 0.00 +vt 0.86 0.45 0.00 +vt 0.94 0.45 0.00 +vt 0.94 0.48 0.00 +vt 0.95 0.40 0.00 +vt 0.99 0.40 0.00 +vt 0.99 0.45 0.00 +vt 0.95 0.45 0.00 +vt 0.99 0.35 0.00 +vt 0.90 0.35 0.00 +vt 0.90 0.39 0.00 +vt 0.99 0.39 0.00 +vt 0.68 0.24 0.00 +vt 0.71 0.24 0.00 +vt 0.71 0.62 0.00 +vt 0.68 0.62 0.00 +vt 0.61 0.69 0.00 +vt 0.80 0.69 0.00 +vt 0.80 0.76 0.00 +vt 0.61 0.76 0.00 +vt 0.87 0.95 0.00 +vt 0.86 0.97 0.00 +vt 0.86 0.91 0.00 +vt 0.87 0.91 0.00 +vt 0.90 0.94 0.00 +vt 0.90 0.91 0.00 +vt 0.91 0.91 0.00 +vt 0.91 0.94 0.00 +vt 0.98 0.83 0.00 +vt 0.98 0.76 0.00 +vt 0.89 0.94 0.00 +vt 0.89 0.91 0.00 +vt 0.95 0.93 0.00 +vt 0.97 0.93 0.00 +vt 0.97 0.94 0.00 +vt 0.97 0.97 0.00 +vt 0.97 0.99 0.00 +vt 0.96 0.99 0.00 +vt 0.86 0.98 0.00 +vt 0.87 0.97 0.00 +vt 0.88 0.97 0.00 +vt 0.86 0.99 0.00 +vt 0.90 0.99 0.00 +vt 0.90 0.97 0.00 +vt 0.91 0.99 0.00 +vt 0.93 0.97 0.00 +vt 0.93 0.98 0.00 +vt 0.85 0.95 0.00 +vt 0.85 0.91 0.00 +vt 0.98 0.90 0.00 +vt 0.93 0.93 0.00 +vt 0.84 0.97 0.00 +vt 0.85 0.97 0.00 +vt 0.99 0.78 0.00 +vt 0.99 0.67 0.00 +vt 0.99 0.83 0.00 +vt 0.99 0.89 0.00 +vt 0.99 0.99 0.00 +vt 0.93 0.95 0.00 +vt 0.93 0.96 0.00 +vt 0.90 0.96 0.00 +vt 0.90 0.95 0.00 +vt 0.96 0.95 0.00 +vt 0.96 0.96 0.00 +vt 0.84 0.92 0.00 +vt 0.85 0.92 0.00 +vt 0.98 0.99 0.00 +vt 0.98 0.67 0.00 +vt 0.88 0.92 0.00 +vt 0.97 0.95 0.00 +vt 0.89 0.95 0.00 +vt 0.95 0.92 0.00 +vt 0.97 0.92 0.00 +vt 0.93 0.92 0.00 +vt 0.98 0.95 0.00 +vt 0.98 0.96 0.00 +vt 0.97 0.96 0.00 +vt 0.98 0.94 0.00 +vt 0.89 0.99 0.00 +vt 0.89 0.97 0.00 +vt 0.88 0.96 0.00 +vt 0.88 0.95 0.00 +vt 0.89 0.96 0.00 +vt 0.04 0.35 0.00 +vt 0.04 0.25 0.00 +vt 0.07 0.25 0.00 +vt 0.07 0.36 0.00 +vt 0.13 0.33 0.00 +vt 0.10 0.35 0.00 +vt 0.10 0.25 0.00 +vt 0.13 0.25 0.00 +vt 0.01 0.33 0.00 +vt 0.01 0.25 0.00 +vt 0.93 0.52 0.00 +vt 0.94 0.52 0.00 +vt 0.94 0.58 0.00 +vt 0.93 0.58 0.00 +vt 0.92 0.49 0.00 +vt 0.91 0.49 0.00 +vt 0.91 0.54 0.00 +vt 0.92 0.55 0.00 +vt 0.97 0.52 0.00 +vt 0.95 0.52 0.00 +vt 0.95 0.58 0.00 +vt 0.97 0.58 0.00 +vt 0.94 0.64 0.00 +vt 0.93 0.64 0.00 +vt 0.89 0.58 0.00 +vt 0.89 0.59 0.00 +vt 0.95 0.64 0.00 +vt 0.97 0.64 0.00 +vt 0.94 0.69 0.00 +vt 0.93 0.69 0.00 +vt 0.86 0.59 0.00 +vt 0.86 0.61 0.00 +vt 0.95 0.69 0.00 +vt 0.97 0.69 0.00 +vt 0.83 0.58 0.00 +vt 0.83 0.59 0.00 +vt 0.81 0.54 0.00 +vt 0.80 0.55 0.00 +vt 0.81 0.49 0.00 +vt 0.80 0.49 0.00 +vt 0.82 0.22 0.00 +vt 0.85 0.22 0.00 +vt 0.84 0.39 0.00 +vt 0.81 0.39 0.00 +vt 0.76 0.22 0.00 +vt 0.80 0.22 0.00 +vt 0.79 0.38 0.00 +vt 0.76 0.38 0.00 +vt 0.82 0.52 0.00 +vt 0.85 0.52 0.00 +vt 0.80 0.51 0.00 +vt 0.76 0.53 0.00 +vt 0.18 0.92 0.00 +vt 0.09 0.92 0.00 +vt 0.09 0.93 0.00 +vt 0.18 0.93 0.00 +vt 0.00 0.90 0.00 +vt 0.10 0.89 0.00 +vt 0.10 0.90 0.00 +vt 0.00 0.91 0.00 +vt 0.00 0.92 0.00 +vt 0.00 0.93 0.00 +vt 0.20 0.90 0.00 +vt 0.20 0.91 0.00 +vt 0.20 0.93 0.00 +vt 0.23 0.90 0.00 +vt 0.23 0.93 0.00 +vt 0.26 0.76 0.00 +vt 0.26 0.90 0.00 +vt 0.22 0.84 0.00 +vt 0.22 0.76 0.00 +vt 0.11 0.81 0.00 +vt 0.11 0.87 0.00 +vt 0.02 0.88 0.00 +vt 0.02 0.81 0.00 +vt 0.31 0.84 0.00 +vt 0.31 0.76 0.00 +vt 0.11 0.74 0.00 +vt 0.11 0.80 0.00 +vt 0.01 0.80 0.00 +vt 0.01 0.74 0.00 +vt 0.20 0.81 0.00 +vt 0.20 0.88 0.00 +vt 0.20 0.74 0.00 +vt 0.20 0.80 0.00 +vt 0.36 0.65 0.00 +vt 0.36 0.75 0.00 +vt 0.34 0.75 0.00 +vt 0.33 0.65 0.00 +vt 0.36 0.89 0.00 +vt 0.33 0.87 0.00 +vt 0.45 0.67 0.00 +vt 0.45 0.76 0.00 +vt 0.43 0.76 0.00 +vt 0.42 0.67 0.00 +vt 0.45 0.89 0.00 +vt 0.42 0.89 0.00 +vt 0.41 0.66 0.00 +vt 0.38 0.66 0.00 +vt 0.39 0.77 0.00 +vt 0.41 0.77 0.00 +vt 0.38 0.88 0.00 +vt 0.41 0.88 0.00 +vt 0.72 0.62 0.00 +vt 0.72 0.52 0.00 +vt 0.73 0.52 0.00 +vt 0.73 0.62 0.00 +vt 0.74 0.62 0.00 +vt 0.74 0.43 0.00 +vt 0.73 0.43 0.00 +vt 0.59 0.58 0.00 +vt 0.64 0.58 0.00 +vt 0.64 0.63 0.00 +vt 0.59 0.63 0.00 +vt 0.75 0.42 0.00 +vt 0.73 0.42 0.00 +vt 0.73 0.36 0.00 +vt 0.75 0.36 0.00 +vt 0.92 0.71 0.00 +vt 0.97 0.71 0.00 +vt 0.92 0.73 0.00 +vt 0.73 0.29 0.00 +vt 0.73 0.24 0.00 +vt 0.75 0.24 0.00 +vt 0.75 0.29 0.00 +vt 0.86 0.72 0.00 +vt 0.86 0.73 0.00 +vt 0.81 0.72 0.00 +vt 0.81 0.70 0.00 +vt 0.73 0.33 0.00 +vt 0.75 0.33 0.00 +vt 0.89 0.74 0.00 +vt 0.89 0.72 0.00 +vt 0.83 0.62 0.00 +vt 0.92 0.62 0.00 +vt 0.92 0.61 0.00 +vt 0.83 0.61 0.00 +vt 0.83 0.63 0.00 +vt 0.92 0.63 0.00 +vt 0.71 0.65 0.00 +vt 0.71 0.66 0.00 +vt 0.75 0.66 0.00 +vt 0.75 0.65 0.00 +vt 0.71 0.64 0.00 +vt 0.75 0.64 0.00 +vt 0.58 0.64 0.00 +vt 0.62 0.66 0.00 +vt 0.62 0.64 0.00 +vt 0.92 0.64 0.00 +vt 0.83 0.64 0.00 +vt 0.75 0.61 0.00 +vt 0.75 0.62 0.00 +vt 0.75 0.63 0.00 +vt 0.67 0.66 0.00 +vt 0.67 0.64 0.00 +vt 0.41 0.65 0.00 +vt 0.41 0.57 0.00 +vt 0.44 0.57 0.00 +vt 0.44 0.66 0.00 +vt 0.48 0.65 0.00 +vt 0.48 0.57 0.00 +# 694 texture coords + +o castle +g castle +f 1/1/1 2/2/2 3/3/2 +f 3/3/2 4/4/1 1/1/1 +f 2/2/2 5/5/3 6/6/3 +f 6/6/3 3/3/2 2/2/2 +f 5/5/3 7/7/4 8/8/4 +f 8/8/4 6/6/3 5/5/3 +f 7/9/4 9/10/5 10/11/5 +f 10/11/5 8/12/4 7/9/4 +f 9/10/5 11/13/6 12/14/6 +f 12/14/6 10/11/5 9/10/5 +f 11/13/6 13/15/7 14/16/7 +f 14/16/7 12/14/6 11/13/6 +f 13/15/7 15/17/8 16/18/8 +f 16/18/8 14/16/7 13/15/7 +f 15/17/8 17/19/9 18/20/9 +f 18/20/9 16/18/8 15/17/8 +f 17/19/9 19/21/10 20/22/10 +f 20/22/10 18/20/9 17/19/9 +f 19/21/10 21/23/11 22/24/11 +f 22/24/11 20/22/10 19/21/10 +f 21/23/11 23/25/12 24/26/12 +f 24/26/12 22/24/11 21/23/11 +f 23/25/12 1/1/1 4/4/1 +f 4/4/1 24/26/12 23/25/12 +f 25/27/13 26/28/13 27/29/13 +f 27/29/13 28/30/13 25/27/13 +f 29/31/14 25/27/14 28/30/14 +f 28/30/14 30/32/14 29/31/14 +f 31/33/15 29/31/15 30/32/15 +f 30/32/15 32/34/15 31/33/15 +f 33/35/16 31/36/16 32/37/16 +f 32/37/16 34/38/16 33/35/16 +f 35/39/17 33/35/17 34/38/17 +f 34/38/17 36/40/17 35/39/17 +f 37/41/18 35/39/18 36/40/18 +f 36/40/18 38/42/18 37/41/18 +f 39/43/19 37/41/19 38/42/19 +f 38/42/19 40/44/19 39/43/19 +f 41/45/20 39/43/20 40/44/20 +f 40/44/20 42/46/20 41/45/20 +f 43/47/21 41/45/21 42/46/21 +f 42/46/21 44/48/21 43/47/21 +f 45/49/22 43/47/22 44/48/22 +f 44/48/22 46/50/22 45/49/22 +f 47/51/23 45/49/23 46/50/23 +f 46/50/23 48/52/23 47/51/23 +f 26/28/24 47/51/25 48/52/25 +f 48/52/25 27/29/24 26/28/24 +f 2/53/26 1/54/26 26/54/26 +f 26/54/26 25/53/26 2/53/26 +f 1/54/26 23/55/26 47/55/26 +f 47/55/26 26/54/26 1/54/26 +f 23/55/26 21/56/26 45/56/26 +f 45/56/26 47/55/26 23/55/26 +f 21/56/26 19/57/26 43/57/26 +f 43/57/26 45/56/26 21/56/26 +f 19/57/26 17/58/26 41/59/26 +f 41/59/26 43/57/26 19/57/26 +f 17/58/26 15/60/26 39/61/26 +f 39/61/26 41/59/26 17/58/26 +f 15/60/26 13/62/26 37/62/26 +f 37/62/26 39/61/26 15/60/26 +f 13/62/26 11/63/26 35/64/26 +f 35/64/26 37/62/26 13/62/26 +f 11/63/26 9/65/26 33/66/26 +f 33/66/26 35/64/26 11/63/26 +f 9/65/26 7/67/26 31/67/26 +f 31/67/26 33/66/26 9/65/26 +f 7/67/26 5/68/26 29/68/26 +f 29/68/26 31/67/26 7/67/26 +f 5/68/26 2/53/26 25/53/26 +f 25/53/26 29/68/26 5/68/26 +f 49/54/27 50/53/27 28/53/27 +f 28/53/27 27/54/27 49/54/27 +f 50/53/27 51/68/27 30/68/27 +f 30/68/27 28/53/27 50/53/27 +f 51/68/27 52/67/27 32/67/27 +f 32/67/27 30/68/27 51/68/27 +f 52/67/27 53/65/27 34/66/27 +f 34/66/27 32/67/27 52/67/27 +f 53/65/27 54/63/27 36/64/27 +f 36/64/27 34/66/27 53/65/27 +f 54/63/27 55/62/27 38/62/27 +f 38/62/27 36/64/27 54/63/27 +f 55/62/27 56/60/27 40/61/27 +f 40/61/27 38/62/27 55/62/27 +f 56/60/27 57/58/27 42/59/27 +f 42/59/27 40/61/27 56/60/27 +f 57/58/27 58/57/27 44/57/27 +f 44/57/27 42/59/27 57/58/27 +f 58/57/27 59/56/27 46/56/27 +f 46/56/27 44/57/27 58/57/27 +f 59/56/27 60/55/27 48/55/27 +f 48/55/27 46/56/27 59/56/27 +f 60/55/27 49/54/27 27/54/27 +f 27/54/27 48/55/27 60/55/27 +f 49/69/1 61/70/1 62/71/2 +f 62/71/2 50/72/2 49/69/1 +f 50/72/2 62/71/2 63/73/14 +f 63/73/14 51/74/14 50/72/2 +f 51/74/15 63/73/15 64/75/15 +f 64/75/15 52/76/15 51/74/15 +f 52/76/16 64/75/16 65/77/5 +f 65/77/5 53/78/5 52/76/16 +f 53/78/5 65/77/5 66/79/6 +f 66/79/6 54/80/6 53/78/5 +f 54/81/6 66/82/6 67/83/7 +f 67/83/7 55/84/7 54/81/6 +f 55/84/7 67/83/7 68/85/8 +f 68/85/8 56/86/8 55/84/7 +f 56/86/8 68/85/8 69/87/9 +f 69/87/9 57/88/9 56/86/8 +f 57/88/9 69/87/9 70/89/10 +f 70/89/10 58/90/10 57/88/9 +f 58/90/10 70/89/10 71/91/11 +f 71/91/11 59/92/11 58/90/10 +f 59/92/11 71/91/11 72/93/12 +f 72/93/12 60/94/12 59/92/11 +f 60/94/12 72/93/12 61/70/1 +f 61/70/1 49/69/1 60/94/12 +f 73/95/26 74/96/26 75/96/26 +f 75/96/26 76/95/26 73/95/26 +f 77/97/26 73/95/26 76/95/26 +f 76/95/26 78/97/26 77/97/26 +f 79/67/26 77/97/26 78/97/26 +f 78/97/26 80/98/26 79/67/26 +f 81/99/26 79/67/26 80/98/26 +f 80/98/26 82/99/26 81/99/26 +f 83/100/26 81/99/26 82/99/26 +f 82/99/26 84/100/26 83/100/26 +f 85/101/26 83/100/26 84/100/26 +f 84/100/26 86/101/26 85/101/26 +f 87/61/26 85/101/26 86/101/26 +f 86/101/26 88/61/26 87/61/26 +f 89/59/26 87/61/26 88/61/26 +f 88/61/26 90/102/26 89/59/26 +f 91/103/26 89/59/26 90/102/26 +f 90/102/26 92/103/26 91/103/26 +f 93/104/26 91/103/26 92/103/26 +f 92/103/26 94/105/26 93/104/26 +f 95/106/26 93/104/26 94/105/26 +f 94/105/26 96/106/26 95/106/26 +f 74/96/26 95/106/26 96/106/26 +f 96/106/26 75/96/26 74/96/26 +f 76/107/28 75/108/28 97/109/28 +f 97/109/28 98/110/28 76/107/28 +f 78/111/29 76/107/29 98/110/29 +f 98/110/29 99/112/29 78/111/29 +f 80/113/30 78/111/30 99/112/30 +f 99/112/30 100/114/30 80/113/30 +f 82/115/31 80/113/31 100/114/31 +f 100/114/31 101/116/31 82/115/31 +f 84/117/32 82/115/32 101/116/32 +f 101/116/32 102/118/32 84/117/32 +f 86/119/33 84/117/33 102/118/33 +f 102/118/33 103/120/33 86/119/33 +f 88/121/34 86/119/34 103/120/34 +f 103/120/34 104/122/34 88/121/34 +f 90/123/35 88/121/35 104/122/35 +f 104/122/35 105/124/35 90/123/35 +f 92/125/36 90/123/36 105/124/36 +f 105/124/36 106/126/36 92/125/36 +f 94/127/37 92/128/37 106/129/37 +f 106/129/37 107/130/37 94/127/37 +f 96/131/38 94/127/38 107/130/38 +f 107/130/38 108/132/38 96/131/38 +f 75/108/39 96/131/39 108/132/39 +f 108/132/39 97/109/39 75/108/39 +f 98/110/40 97/109/40 109/133/40 +f 109/133/40 110/134/40 98/110/40 +f 99/112/41 98/110/41 110/134/41 +f 110/134/41 111/135/41 99/112/41 +f 100/114/42 99/112/42 111/135/42 +f 111/135/42 112/136/43 100/114/42 +f 101/116/44 100/114/44 112/136/44 +f 112/136/44 113/137/44 101/116/44 +f 102/118/45 101/116/45 113/137/45 +f 113/137/45 114/138/45 102/118/45 +f 103/120/46 102/118/46 114/138/46 +f 114/138/46 115/139/46 103/120/46 +f 104/122/47 103/120/48 115/139/48 +f 115/139/48 116/140/48 104/122/47 +f 105/124/49 104/122/49 116/140/49 +f 116/140/49 117/141/49 105/124/49 +f 106/126/50 105/124/50 117/141/50 +f 117/141/50 118/142/50 106/126/50 +f 107/130/51 106/129/51 118/143/52 +f 118/143/52 119/144/51 107/130/51 +f 108/132/53 107/130/53 119/144/53 +f 119/144/53 120/145/53 108/132/53 +f 97/109/54 108/132/55 120/145/54 +f 120/145/54 109/133/54 97/109/54 +f 121/146/56 122/147/56 62/148/56 +f 62/148/56 61/149/56 121/146/56 +f 122/147/57 123/150/58 63/151/58 +f 63/151/58 62/148/57 122/147/57 +f 123/152/59 124/153/59 64/154/59 +f 64/154/59 63/155/59 123/152/59 +f 124/153/60 125/142/60 65/156/60 +f 65/156/60 64/154/60 124/153/60 +f 125/142/61 126/157/62 66/158/61 +f 66/158/61 65/156/62 125/142/61 +f 126/157/63 127/159/63 67/160/63 +f 67/160/63 66/158/63 126/157/63 +f 127/159/64 128/161/64 68/162/64 +f 68/162/64 67/160/64 127/159/64 +f 128/161/65 129/163/66 69/164/66 +f 69/164/66 68/162/66 128/161/65 +f 129/163/67 130/165/67 70/166/67 +f 70/166/67 69/164/67 129/163/67 +f 130/165/68 131/167/68 71/168/68 +f 71/168/68 70/166/68 130/165/68 +f 131/167/69 132/169/70 72/170/70 +f 72/170/70 71/168/70 131/167/69 +f 132/169/71 121/146/71 61/149/71 +f 61/149/71 72/170/71 132/169/71 +f 74/171/1 73/172/2 122/173/2 +f 122/173/2 121/174/1 74/171/1 +f 73/172/2 77/175/3 123/176/3 +f 123/176/3 122/173/2 73/172/2 +f 77/177/3 79/178/4 124/179/4 +f 124/179/4 123/180/3 77/177/3 +f 79/178/4 81/86/5 125/181/5 +f 125/181/5 124/179/4 79/178/4 +f 81/86/5 83/182/6 126/183/6 +f 126/183/6 125/181/5 81/86/5 +f 83/182/6 85/184/7 127/185/7 +f 127/185/7 126/183/6 83/182/6 +f 85/184/7 87/186/8 128/187/8 +f 128/187/8 127/185/7 85/184/7 +f 87/186/8 89/188/9 129/189/9 +f 129/189/9 128/187/8 87/186/8 +f 89/188/9 91/190/10 130/191/10 +f 130/191/10 129/189/9 89/188/9 +f 91/190/10 93/76/11 131/192/11 +f 131/192/11 130/191/10 91/190/10 +f 93/76/11 95/193/12 132/194/12 +f 132/194/12 131/192/11 93/76/11 +f 95/193/12 74/171/1 121/174/1 +f 121/174/1 132/194/12 95/193/12 +f 133/195/72 134/196/72 135/197/72 +f 135/197/72 136/198/72 133/195/72 +f 137/199/73 138/200/73 139/201/73 +f 139/201/73 140/202/73 137/199/73 +f 141/203/74 142/204/74 143/205/74 +f 143/205/74 144/206/74 141/203/74 +f 145/202/75 146/201/75 147/200/75 +f 147/200/75 148/199/75 145/202/75 +f 149/207/76 150/207/76 151/208/76 +f 151/208/76 152/209/76 149/207/76 +f 153/209/77 154/210/77 155/211/77 +f 142/212/78 156/196/78 157/213/78 +f 157/213/78 143/214/78 142/212/78 +f 158/210/79 159/209/79 160/211/79 +f 161/215/80 162/216/80 160/211/80 +f 160/211/80 159/209/80 161/215/80 +f 163/217/81 164/218/81 135/197/81 +f 135/197/81 134/196/81 163/217/81 +f 165/219/82 166/220/82 142/204/82 +f 142/204/82 141/203/82 165/219/82 +f 167/209/83 168/208/83 150/207/83 +f 150/207/83 149/207/83 167/209/83 +f 142/212/84 166/214/84 169/213/84 +f 169/213/84 156/196/84 142/212/84 +f 161/215/85 153/209/85 155/211/85 +f 155/211/85 162/216/85 161/215/85 +f 170/221/75 157/222/75 133/222/75 +f 133/222/75 136/221/75 170/221/75 +f 157/222/86 156/203/86 134/203/86 +f 134/203/86 133/222/86 157/222/86 +f 156/203/87 169/206/87 163/206/87 +f 163/206/87 134/203/87 156/203/87 +f 169/206/73 171/223/73 164/223/73 +f 164/223/73 163/206/73 169/206/73 +f 171/224/88 172/225/88 135/226/88 +f 135/226/88 164/224/88 171/224/88 +f 172/225/89 170/224/89 136/224/89 +f 136/224/89 135/226/89 172/225/89 +f 166/214/79 173/227/79 171/228/79 +f 171/228/79 169/213/79 166/214/79 +f 173/229/75 166/220/75 165/219/75 +f 165/219/75 174/221/75 173/229/75 +f 144/206/73 143/205/73 175/230/73 +f 175/230/73 176/223/73 144/206/73 +f 175/227/77 143/214/77 157/213/77 +f 157/213/77 170/228/77 175/227/77 +f 139/201/73 138/200/73 177/199/73 +f 177/199/73 178/202/73 139/201/73 +f 175/231/90 170/224/90 155/232/90 +f 155/232/90 154/233/91 175/231/90 +f 170/224/89 172/225/89 162/234/89 +f 162/234/89 155/232/89 170/224/89 +f 172/225/88 171/224/88 160/232/88 +f 160/232/88 162/234/88 172/225/88 +f 171/224/92 173/231/92 158/233/92 +f 158/233/92 160/232/92 171/224/92 +f 147/200/75 146/201/75 179/202/75 +f 179/202/75 180/199/75 147/200/75 +f 151/208/76 150/207/76 161/235/76 +f 161/235/76 159/236/76 151/208/76 +f 150/207/83 168/208/83 153/236/83 +f 153/236/83 161/235/83 150/207/83 +f 176/236/27 175/231/27 138/237/27 +f 138/237/27 137/238/27 176/236/27 +f 175/231/27 154/233/27 177/239/27 +f 177/239/27 138/237/27 175/231/27 +f 154/210/93 153/209/93 178/240/94 +f 178/240/94 177/241/94 154/210/93 +f 153/236/26 168/208/26 139/242/26 +f 139/242/26 178/238/26 153/236/26 +f 168/208/26 167/209/26 140/240/26 +f 140/240/26 139/242/26 168/208/26 +f 152/209/26 151/208/26 146/242/26 +f 146/242/26 145/240/26 152/209/26 +f 151/208/26 159/236/26 179/238/26 +f 179/238/26 146/242/26 151/208/26 +f 159/209/95 158/210/95 180/241/95 +f 180/241/95 179/240/95 159/209/95 +f 158/233/27 173/231/27 147/237/27 +f 147/237/27 180/239/27 158/233/27 +f 173/231/27 174/236/27 148/238/27 +f 148/238/27 147/237/27 173/231/27 +f 181/195/96 182/196/96 183/197/96 +f 183/197/96 184/198/96 181/195/96 +f 185/199/97 186/200/98 187/201/98 +f 187/201/98 188/202/97 185/199/97 +f 189/203/99 190/204/99 191/205/99 +f 191/205/99 192/206/99 189/203/99 +f 193/202/100 194/201/101 195/200/101 +f 195/200/101 196/199/100 193/202/100 +f 197/207/102 198/207/102 199/208/102 +f 199/208/102 200/209/102 197/207/102 +f 201/209/103 202/210/103 203/211/103 +f 190/212/104 204/196/104 205/213/104 +f 205/213/104 191/214/104 190/212/104 +f 206/210/105 207/209/105 208/211/105 +f 209/215/106 210/216/106 208/211/106 +f 208/211/106 207/209/106 209/215/106 +f 211/217/107 212/218/107 183/197/107 +f 183/197/107 182/196/107 211/217/107 +f 213/219/108 214/220/108 190/204/108 +f 190/204/108 189/203/108 213/219/108 +f 215/209/109 216/208/109 198/207/109 +f 198/207/109 197/207/109 215/209/109 +f 190/212/110 214/214/110 217/213/110 +f 217/213/110 204/196/110 190/212/110 +f 209/215/111 201/209/111 203/211/111 +f 203/211/111 210/216/111 209/215/111 +f 218/221/100 205/222/100 181/222/101 +f 181/222/101 184/221/101 218/221/100 +f 205/222/112 204/203/112 182/203/112 +f 182/203/112 181/222/112 205/222/112 +f 204/203/113 217/206/113 211/206/113 +f 211/206/113 182/203/113 204/203/113 +f 217/206/98 219/223/98 212/223/98 +f 212/223/98 211/206/98 217/206/98 +f 219/224/114 220/225/114 183/226/114 +f 183/226/114 212/224/114 219/224/114 +f 220/225/115 218/224/115 184/224/115 +f 184/224/115 183/226/115 220/225/115 +f 214/214/105 221/227/105 219/228/105 +f 219/228/105 217/213/105 214/214/105 +f 221/229/100 214/220/100 213/219/100 +f 213/219/100 222/221/100 221/229/100 +f 192/206/98 191/205/98 223/230/98 +f 223/230/98 224/223/98 192/206/98 +f 223/227/103 191/214/103 205/213/103 +f 205/213/103 218/228/103 223/227/103 +f 187/201/98 186/200/98 225/199/97 +f 225/199/97 226/202/97 187/201/98 +f 223/231/116 218/224/116 203/232/116 +f 203/232/116 202/233/116 223/231/116 +f 218/224/115 220/225/115 210/234/115 +f 210/234/115 203/232/115 218/224/115 +f 220/225/114 219/224/114 208/232/114 +f 208/232/114 210/234/114 220/225/114 +f 219/224/117 221/231/117 206/233/117 +f 206/233/117 208/232/117 219/224/117 +f 195/200/101 194/201/101 227/202/100 +f 227/202/100 228/199/100 195/200/101 +f 199/208/102 198/207/102 209/235/102 +f 209/235/102 207/236/102 199/208/102 +f 198/207/109 216/208/109 201/236/109 +f 201/236/109 209/235/109 198/207/109 +f 224/236/27 223/231/27 186/237/27 +f 186/237/27 185/238/27 224/236/27 +f 223/231/27 202/233/27 225/239/27 +f 225/239/27 186/237/27 223/231/27 +f 202/210/118 201/209/118 226/240/118 +f 226/240/118 225/241/118 202/210/118 +f 201/236/26 216/208/26 187/242/26 +f 187/242/26 226/238/26 201/236/26 +f 216/208/26 215/209/26 188/240/26 +f 188/240/26 187/242/26 216/208/26 +f 200/209/26 199/208/26 194/242/26 +f 194/242/26 193/240/26 200/209/26 +f 199/208/26 207/236/26 227/238/26 +f 227/238/26 194/242/26 199/208/26 +f 207/209/119 206/210/119 228/241/119 +f 228/241/119 227/240/119 207/209/119 +f 206/233/27 221/231/27 195/237/27 +f 195/237/27 228/239/27 206/233/27 +f 221/231/27 222/236/27 196/238/27 +f 196/238/27 195/237/27 221/231/27 +f 229/243/120 230/244/120 231/245/120 +f 231/245/120 232/246/120 229/243/120 +f 229/247/121 232/248/121 233/249/121 +f 233/249/121 234/250/121 229/247/121 +f 232/246/122 231/245/122 235/251/122 +f 235/251/122 233/252/122 232/246/122 +f 231/248/123 230/247/123 236/250/123 +f 236/250/123 235/249/123 231/248/123 +f 237/195/124 238/196/124 239/197/124 +f 239/197/124 240/198/124 237/195/124 +f 241/199/125 242/200/98 243/201/98 +f 243/201/98 244/202/125 241/199/125 +f 245/203/99 246/204/99 247/205/99 +f 247/205/99 248/206/99 245/203/99 +f 249/202/100 250/201/101 251/200/101 +f 251/200/101 252/199/100 249/202/100 +f 253/207/102 254/207/102 255/208/102 +f 255/208/102 256/209/102 253/207/102 +f 257/209/103 258/210/103 259/211/103 +f 246/212/104 260/196/104 261/213/104 +f 261/213/104 247/214/104 246/212/104 +f 262/210/105 263/209/105 264/211/105 +f 265/215/106 266/216/106 264/211/106 +f 264/211/106 263/209/106 265/215/106 +f 267/217/107 268/218/107 239/197/107 +f 239/197/107 238/196/107 267/217/107 +f 269/219/126 270/220/126 246/204/108 +f 246/204/108 245/203/108 269/219/126 +f 271/209/109 272/208/109 254/207/109 +f 254/207/109 253/207/109 271/209/109 +f 246/212/110 270/214/110 273/213/110 +f 273/213/110 260/196/110 246/212/110 +f 265/215/111 257/209/111 259/211/111 +f 259/211/111 266/216/111 265/215/111 +f 274/221/100 261/222/100 237/222/100 +f 237/222/100 240/221/100 274/221/100 +f 261/222/112 260/203/112 238/203/112 +f 238/203/112 237/222/112 261/222/112 +f 260/203/113 273/206/113 267/206/113 +f 267/206/113 238/203/113 260/203/113 +f 273/206/98 275/223/98 268/223/98 +f 268/223/98 267/206/98 273/206/98 +f 275/224/114 276/225/114 239/226/114 +f 239/226/114 268/224/114 275/224/114 +f 276/225/115 274/224/115 240/224/115 +f 240/224/115 239/226/115 276/225/115 +f 270/214/105 277/227/105 275/228/105 +f 275/228/105 273/213/105 270/214/105 +f 277/229/101 270/220/101 269/219/101 +f 269/219/101 278/221/101 277/229/101 +f 248/206/98 247/205/97 279/230/97 +f 279/230/97 280/223/98 248/206/98 +f 279/227/103 247/214/103 261/213/103 +f 261/213/103 274/228/103 279/227/103 +f 243/201/98 242/200/98 281/199/97 +f 281/199/97 282/202/97 243/201/98 +f 279/231/116 274/224/116 259/232/116 +f 259/232/116 258/233/116 279/231/116 +f 274/224/115 276/225/115 266/234/115 +f 266/234/115 259/232/115 274/224/115 +f 276/225/114 275/224/114 264/232/114 +f 264/232/114 266/234/114 276/225/114 +f 275/224/117 277/231/117 262/233/117 +f 262/233/117 264/232/117 275/224/117 +f 251/200/101 250/201/101 283/202/100 +f 283/202/100 284/199/100 251/200/101 +f 255/208/102 254/207/102 265/235/102 +f 265/235/102 263/236/102 255/208/102 +f 254/207/109 272/208/109 257/236/109 +f 257/236/109 265/235/109 254/207/109 +f 280/236/27 279/231/27 242/237/27 +f 242/237/27 241/238/27 280/236/27 +f 279/231/27 258/233/27 281/239/27 +f 281/239/27 242/237/27 279/231/27 +f 258/210/118 257/209/118 282/240/118 +f 282/240/118 281/241/118 258/210/118 +f 257/236/26 272/208/26 243/242/26 +f 243/242/26 282/238/26 257/236/26 +f 272/208/26 271/209/26 244/240/26 +f 244/240/26 243/242/26 272/208/26 +f 256/209/26 255/208/26 250/242/26 +f 250/242/26 249/240/26 256/209/26 +f 255/208/26 263/236/26 283/238/26 +f 283/238/26 250/242/26 255/208/26 +f 263/209/119 262/210/119 284/241/119 +f 284/241/119 283/240/119 263/209/119 +f 262/233/27 277/231/27 251/237/27 +f 251/237/27 284/239/27 262/233/27 +f 277/231/27 278/236/27 252/238/27 +f 252/238/27 251/237/27 277/231/27 +f 285/243/127 286/244/127 287/245/127 +f 287/245/127 288/246/127 285/243/127 +f 285/247/128 288/248/128 289/249/128 +f 289/249/128 290/250/128 285/247/128 +f 288/246/129 287/245/129 291/251/129 +f 291/251/129 289/252/129 288/246/129 +f 287/248/130 286/247/130 292/250/130 +f 292/250/130 291/249/130 287/248/130 +f 293/195/131 294/196/131 295/197/131 +f 295/197/131 296/198/131 293/195/131 +f 297/199/75 298/200/75 299/201/75 +f 299/201/75 300/202/75 297/199/75 +f 301/203/132 302/204/132 303/205/132 +f 303/205/132 304/206/132 301/203/132 +f 305/202/73 306/201/73 307/200/73 +f 307/200/73 308/199/73 305/202/73 +f 309/207/83 310/207/83 311/208/83 +f 311/208/83 312/209/83 309/207/83 +f 313/209/133 314/210/133 315/211/133 +f 302/212/134 316/196/134 317/213/134 +f 317/213/134 303/214/134 302/212/134 +f 318/210/135 319/209/135 320/211/135 +f 321/215/136 322/216/136 320/211/136 +f 320/211/136 319/209/136 321/215/136 +f 323/217/137 324/218/137 295/197/138 +f 295/197/138 294/196/138 323/217/137 +f 325/219/139 326/220/139 302/204/139 +f 302/204/139 301/203/139 325/219/139 +f 327/209/76 328/208/76 310/207/76 +f 310/207/76 309/207/76 327/209/76 +f 302/212/140 326/214/140 329/213/140 +f 329/213/140 316/196/140 302/212/140 +f 321/215/141 313/209/141 315/211/141 +f 315/211/141 322/216/141 321/215/141 +f 330/221/73 317/222/73 293/222/73 +f 293/222/73 296/221/73 330/221/73 +f 317/222/87 316/203/87 294/203/87 +f 294/203/87 293/222/87 317/222/87 +f 316/203/86 329/206/86 323/206/86 +f 323/206/86 294/203/86 316/203/86 +f 329/206/75 331/223/75 324/223/75 +f 324/223/75 323/206/75 329/206/75 +f 331/224/142 332/225/142 295/226/142 +f 295/226/142 324/224/142 331/224/142 +f 332/225/143 330/224/143 296/224/143 +f 296/224/143 295/226/143 332/225/143 +f 326/214/135 333/227/135 331/228/135 +f 331/228/135 329/213/135 326/214/135 +f 333/229/73 326/220/73 325/219/73 +f 325/219/73 334/221/73 333/229/73 +f 304/206/75 303/205/75 335/230/75 +f 335/230/75 336/223/75 304/206/75 +f 335/227/133 303/214/133 317/213/133 +f 317/213/133 330/228/133 335/227/133 +f 299/201/75 298/200/75 337/199/75 +f 337/199/75 338/202/75 299/201/75 +f 335/231/144 330/224/144 315/232/144 +f 315/232/144 314/233/144 335/231/144 +f 330/224/143 332/225/143 322/234/143 +f 322/234/143 315/232/143 330/224/143 +f 332/225/142 331/224/142 320/232/142 +f 320/232/142 322/234/142 332/225/142 +f 331/224/145 333/231/145 318/233/145 +f 318/233/145 320/232/145 331/224/145 +f 307/200/73 306/201/73 339/202/73 +f 339/202/73 340/199/73 307/200/73 +f 311/208/83 310/207/83 321/235/83 +f 321/235/83 319/236/83 311/208/83 +f 310/207/76 328/208/76 313/236/76 +f 313/236/76 321/235/76 310/207/76 +f 336/236/27 335/231/27 298/237/27 +f 298/237/27 297/238/27 336/236/27 +f 335/231/27 314/233/27 337/239/27 +f 337/239/27 298/237/27 335/231/27 +f 314/210/146 313/209/146 338/240/146 +f 338/240/146 337/241/146 314/210/146 +f 313/236/26 328/208/26 299/242/26 +f 299/242/26 338/238/26 313/236/26 +f 328/208/26 327/209/26 300/240/26 +f 300/240/26 299/242/26 328/208/26 +f 312/209/26 311/208/26 306/242/26 +f 306/242/26 305/240/26 312/209/26 +f 311/208/26 319/236/26 339/238/26 +f 339/238/26 306/242/26 311/208/26 +f 319/209/147 318/210/147 340/241/147 +f 340/241/147 339/240/147 319/209/147 +f 318/233/27 333/231/27 307/237/27 +f 307/237/27 340/239/27 318/233/27 +f 333/231/27 334/236/27 308/238/27 +f 308/238/27 307/237/27 333/231/27 +f 341/243/148 342/244/148 343/245/148 +f 343/245/148 344/246/148 341/243/148 +f 341/247/1 344/248/1 345/249/1 +f 345/249/1 346/250/1 341/247/1 +f 344/246/149 343/245/149 347/251/149 +f 347/251/149 345/252/149 344/246/149 +f 343/248/7 342/247/7 348/250/7 +f 348/250/7 347/249/7 343/248/7 +f 349/243/150 350/244/150 351/245/150 +f 351/245/150 352/246/150 349/243/150 +f 349/247/151 352/248/151 353/249/151 +f 353/249/151 354/250/151 349/247/151 +f 352/246/152 351/245/152 355/251/152 +f 355/251/152 353/252/152 352/246/152 +f 351/248/153 350/247/153 356/250/153 +f 356/250/153 355/249/153 351/248/153 +f 357/243/154 358/244/154 359/245/154 +f 359/245/154 360/246/154 357/243/154 +f 357/247/7 360/248/7 361/249/7 +f 361/249/7 362/250/7 357/247/7 +f 360/246/155 359/245/155 363/251/155 +f 363/251/155 361/252/155 360/246/155 +f 359/248/1 358/247/1 364/250/1 +f 364/250/1 363/249/1 359/248/1 +f 365/243/156 366/244/156 367/245/156 +f 367/245/156 368/246/156 365/243/156 +f 365/247/157 368/248/157 369/249/157 +f 369/249/157 370/250/157 365/247/157 +f 368/246/158 367/245/158 371/251/158 +f 371/251/158 369/252/158 368/246/158 +f 367/248/159 366/247/159 372/250/159 +f 372/250/159 371/249/159 367/248/159 +f 373/243/160 374/244/160 375/245/160 +f 375/245/160 376/246/160 373/243/160 +f 373/247/161 376/248/161 377/249/161 +f 377/249/161 378/250/161 373/247/161 +f 376/246/162 375/245/162 379/251/162 +f 379/251/162 377/252/162 376/246/162 +f 375/248/163 374/247/163 380/250/163 +f 380/250/163 379/249/163 375/248/163 +f 381/195/131 382/196/131 383/197/131 +f 383/197/131 384/198/131 381/195/131 +f 385/199/75 386/200/75 387/201/75 +f 387/201/75 388/202/75 385/199/75 +f 389/203/132 390/204/132 391/205/132 +f 391/205/132 392/206/132 389/203/132 +f 393/202/73 394/201/73 395/200/73 +f 395/200/73 396/199/73 393/202/73 +f 397/207/83 398/207/83 399/208/83 +f 399/208/83 400/209/83 397/207/83 +f 401/209/133 402/210/133 403/211/133 +f 390/212/134 404/196/134 405/213/134 +f 405/213/134 391/214/134 390/212/134 +f 406/210/135 407/209/135 408/211/135 +f 409/215/136 410/216/136 408/211/136 +f 408/211/136 407/209/136 409/215/136 +f 411/217/137 412/218/137 383/197/138 +f 383/197/138 382/196/138 411/217/137 +f 413/219/139 414/220/139 390/204/139 +f 390/204/139 389/203/139 413/219/139 +f 415/209/76 416/208/76 398/207/76 +f 398/207/76 397/207/76 415/209/76 +f 390/212/140 414/214/140 417/213/140 +f 417/213/140 404/196/140 390/212/140 +f 409/215/141 401/209/141 403/211/141 +f 403/211/141 410/216/141 409/215/141 +f 418/221/73 405/222/73 381/222/73 +f 381/222/73 384/221/73 418/221/73 +f 405/222/87 404/203/87 382/203/87 +f 382/203/87 381/222/87 405/222/87 +f 404/203/86 417/206/86 411/206/86 +f 411/206/86 382/203/86 404/203/86 +f 417/206/75 419/223/75 412/223/75 +f 412/223/75 411/206/75 417/206/75 +f 419/224/142 420/225/142 383/226/142 +f 383/226/142 412/224/142 419/224/142 +f 420/225/143 418/224/143 384/224/143 +f 384/224/143 383/226/143 420/225/143 +f 414/214/135 421/227/135 419/228/135 +f 419/228/135 417/213/135 414/214/135 +f 421/229/73 414/220/73 413/219/73 +f 413/219/73 422/221/73 421/229/73 +f 392/206/75 391/205/75 423/230/75 +f 423/230/75 424/223/75 392/206/75 +f 423/227/133 391/214/133 405/213/133 +f 405/213/133 418/228/133 423/227/133 +f 387/201/75 386/200/75 425/199/75 +f 425/199/75 426/202/75 387/201/75 +f 423/231/144 418/224/144 403/232/144 +f 403/232/144 402/233/144 423/231/144 +f 418/224/143 420/225/143 410/234/143 +f 410/234/143 403/232/143 418/224/143 +f 420/225/142 419/224/142 408/232/142 +f 408/232/142 410/234/142 420/225/142 +f 419/224/145 421/231/145 406/233/145 +f 406/233/145 408/232/145 419/224/145 +f 395/200/73 394/201/73 427/202/73 +f 427/202/73 428/199/73 395/200/73 +f 399/208/83 398/207/83 409/235/83 +f 409/235/83 407/236/83 399/208/83 +f 398/207/76 416/208/76 401/236/76 +f 401/236/76 409/235/76 398/207/76 +f 424/236/27 423/231/27 386/237/27 +f 386/237/27 385/238/27 424/236/27 +f 423/231/27 402/233/27 425/239/27 +f 425/239/27 386/237/27 423/231/27 +f 402/210/146 401/209/146 426/240/146 +f 426/240/146 425/241/146 402/210/146 +f 401/236/26 416/208/26 387/242/26 +f 387/242/26 426/238/26 401/236/26 +f 416/208/26 415/209/26 388/240/26 +f 388/240/26 387/242/26 416/208/26 +f 400/209/26 399/208/26 394/242/26 +f 394/242/26 393/240/26 400/209/26 +f 399/208/26 407/236/26 427/238/26 +f 427/238/26 394/242/26 399/208/26 +f 407/209/147 406/210/147 428/241/147 +f 428/241/147 427/240/147 407/209/147 +f 406/233/27 421/231/27 395/237/27 +f 395/237/27 428/239/27 406/233/27 +f 421/231/27 422/236/27 396/238/27 +f 396/238/27 395/237/27 421/231/27 +f 429/195/164 430/196/10 431/197/10 +f 431/197/10 432/198/164 429/195/164 +f 433/199/165 434/200/165 435/201/165 +f 435/201/165 436/202/165 433/199/165 +f 437/203/108 438/204/108 439/205/108 +f 439/205/108 440/206/108 437/203/108 +f 441/202/125 442/201/125 443/200/125 +f 443/200/125 444/199/125 441/202/125 +f 445/207/166 446/207/166 447/208/166 +f 447/208/166 448/209/166 445/207/166 +f 449/209/167 450/210/167 451/211/167 +f 438/212/168 452/196/168 453/213/168 +f 453/213/168 439/214/168 438/212/168 +f 454/210/169 455/209/169 456/211/169 +f 457/215/170 458/216/170 456/211/170 +f 456/211/170 455/209/170 457/215/170 +f 459/217/171 460/218/171 431/197/171 +f 431/197/171 430/196/171 459/217/171 +f 461/219/172 462/220/99 438/204/99 +f 438/204/99 437/203/99 461/219/172 +f 463/209/173 464/208/173 446/207/173 +f 446/207/173 445/207/173 463/209/173 +f 438/212/174 462/214/174 465/213/174 +f 465/213/174 452/196/174 438/212/174 +f 457/215/175 449/209/175 451/211/175 +f 451/211/175 458/216/175 457/215/175 +f 466/221/125 453/222/125 429/222/125 +f 429/222/125 432/221/125 466/221/125 +f 453/222/113 452/203/113 430/203/113 +f 430/203/113 429/222/113 453/222/113 +f 452/203/112 465/206/112 459/206/112 +f 459/206/112 430/203/112 452/203/112 +f 465/206/165 467/223/165 460/223/165 +f 460/223/165 459/206/165 465/206/165 +f 467/224/176 468/225/176 431/226/176 +f 431/226/176 460/224/176 467/224/176 +f 468/225/117 466/224/117 432/224/117 +f 432/224/117 431/226/117 468/225/117 +f 462/214/169 469/227/169 467/228/169 +f 467/228/169 465/213/169 462/214/169 +f 469/229/125 462/220/125 461/219/125 +f 461/219/125 470/221/125 469/229/125 +f 440/206/165 439/205/165 471/230/165 +f 471/230/165 472/223/165 440/206/165 +f 471/227/167 439/214/167 453/213/167 +f 453/213/167 466/228/167 471/227/167 +f 435/201/165 434/200/165 473/199/165 +f 473/199/165 474/202/165 435/201/165 +f 471/231/177 466/224/177 451/232/177 +f 451/232/177 450/233/177 471/231/177 +f 466/224/117 468/225/117 458/234/117 +f 458/234/117 451/232/117 466/224/117 +f 468/225/176 467/224/176 456/232/176 +f 456/232/176 458/234/176 468/225/176 +f 467/224/115 469/231/115 454/233/115 +f 454/233/115 456/232/115 467/224/115 +f 443/200/125 442/201/125 475/202/125 +f 475/202/125 476/199/125 443/200/125 +f 447/208/166 446/207/166 457/235/166 +f 457/235/166 455/236/166 447/208/166 +f 446/207/173 464/208/173 449/236/173 +f 449/236/173 457/235/173 446/207/173 +f 472/236/27 471/231/27 434/237/27 +f 434/237/27 433/238/27 472/236/27 +f 471/231/27 450/233/27 473/239/27 +f 473/239/27 434/237/27 471/231/27 +f 450/210/178 449/209/178 474/240/178 +f 474/240/178 473/241/178 450/210/178 +f 449/236/26 464/208/26 435/242/26 +f 435/242/26 474/238/26 449/236/26 +f 464/208/26 463/209/26 436/240/26 +f 436/240/26 435/242/26 464/208/26 +f 448/209/26 447/208/26 442/242/26 +f 442/242/26 441/240/26 448/209/26 +f 447/208/26 455/236/26 475/238/26 +f 475/238/26 442/242/26 447/208/26 +f 455/209/179 454/210/179 476/241/179 +f 476/241/179 475/240/179 455/209/179 +f 454/233/27 469/231/27 443/237/27 +f 443/237/27 476/239/27 454/233/27 +f 469/231/27 470/236/27 444/238/27 +f 444/238/27 443/237/27 469/231/27 +f 477/243/180 478/244/180 479/245/180 +f 479/245/180 480/246/180 477/243/180 +f 477/247/153 480/248/153 481/249/153 +f 481/249/153 482/250/153 477/247/153 +f 480/246/181 479/245/181 483/251/181 +f 483/251/181 481/252/182 480/246/181 +f 479/248/151 478/247/151 484/250/151 +f 484/250/151 483/249/151 479/248/151 +f 485/195/10 486/196/10 487/197/10 +f 487/197/10 488/198/10 485/195/10 +f 489/199/165 490/200/165 491/201/165 +f 491/201/165 492/202/165 489/199/165 +f 493/203/108 494/204/108 495/205/108 +f 495/205/108 496/206/108 493/203/108 +f 497/202/125 498/201/125 499/200/125 +f 499/200/125 500/199/125 497/202/125 +f 501/207/166 502/207/166 503/208/166 +f 503/208/166 504/209/166 501/207/166 +f 505/209/167 506/210/167 507/211/167 +f 494/212/168 508/196/168 509/213/168 +f 509/213/168 495/214/168 494/212/168 +f 510/210/169 511/209/169 512/211/169 +f 513/215/170 514/216/170 512/211/170 +f 512/211/170 511/209/170 513/215/170 +f 515/217/171 516/218/171 487/197/171 +f 487/197/171 486/196/171 515/217/171 +f 517/219/99 518/220/99 494/204/172 +f 494/204/172 493/203/99 517/219/99 +f 519/209/173 520/208/173 502/207/173 +f 502/207/173 501/207/173 519/209/173 +f 494/212/174 518/214/174 521/213/174 +f 521/213/174 508/196/174 494/212/174 +f 513/215/175 505/209/175 507/211/175 +f 507/211/175 514/216/175 513/215/175 +f 522/221/125 509/222/125 485/222/125 +f 485/222/125 488/221/125 522/221/125 +f 509/222/113 508/203/113 486/203/113 +f 486/203/113 485/222/113 509/222/113 +f 508/203/112 521/206/112 515/206/112 +f 515/206/112 486/203/112 508/203/112 +f 521/206/165 523/223/165 516/223/165 +f 516/223/165 515/206/165 521/206/165 +f 523/224/176 524/225/176 487/226/176 +f 487/226/176 516/224/176 523/224/176 +f 524/225/117 522/224/117 488/224/117 +f 488/224/117 487/226/117 524/225/117 +f 518/214/169 525/227/169 523/228/169 +f 523/228/169 521/213/169 518/214/169 +f 525/229/125 518/220/125 517/219/125 +f 517/219/125 526/221/125 525/229/125 +f 496/206/165 495/205/165 527/230/165 +f 527/230/165 528/223/165 496/206/165 +f 527/227/167 495/214/167 509/213/167 +f 509/213/167 522/228/167 527/227/167 +f 491/201/165 490/200/165 529/199/165 +f 529/199/165 530/202/165 491/201/165 +f 527/231/177 522/224/177 507/232/177 +f 507/232/177 506/233/177 527/231/177 +f 522/224/117 524/225/117 514/234/117 +f 514/234/117 507/232/117 522/224/117 +f 524/225/176 523/224/176 512/232/176 +f 512/232/176 514/234/176 524/225/176 +f 523/224/115 525/231/115 510/233/115 +f 510/233/115 512/232/115 523/224/115 +f 499/200/125 498/201/125 531/202/125 +f 531/202/125 532/199/125 499/200/125 +f 503/208/166 502/207/166 513/235/166 +f 513/235/166 511/236/166 503/208/166 +f 502/207/173 520/208/173 505/236/173 +f 505/236/173 513/235/173 502/207/173 +f 528/236/27 527/231/27 490/237/27 +f 490/237/27 489/238/27 528/236/27 +f 527/231/27 506/233/27 529/239/27 +f 529/239/27 490/237/27 527/231/27 +f 506/210/178 505/209/178 530/240/178 +f 530/240/178 529/241/178 506/210/178 +f 505/236/26 520/208/26 491/242/26 +f 491/242/26 530/238/26 505/236/26 +f 520/208/26 519/209/26 492/240/26 +f 492/240/26 491/242/26 520/208/26 +f 504/209/26 503/208/26 498/242/26 +f 498/242/26 497/240/26 504/209/26 +f 503/208/26 511/236/26 531/238/26 +f 531/238/26 498/242/26 503/208/26 +f 511/209/179 510/210/179 532/241/179 +f 532/241/179 531/240/179 511/209/179 +f 510/233/27 525/231/27 499/237/27 +f 499/237/27 532/239/27 510/233/27 +f 525/231/27 526/236/27 500/238/27 +f 500/238/27 499/237/27 525/231/27 +f 533/243/183 534/244/183 535/245/183 +f 535/245/183 536/246/183 533/243/183 +f 533/247/184 536/248/184 537/249/184 +f 537/249/184 538/250/184 533/247/184 +f 536/246/185 535/245/185 539/251/185 +f 539/251/185 537/252/185 536/246/185 +f 535/248/186 534/247/186 540/250/186 +f 540/250/186 539/249/186 535/248/186 +f 541/195/72 542/196/72 543/197/72 +f 543/197/72 544/198/72 541/195/72 +f 545/199/73 546/200/73 547/201/73 +f 547/201/73 548/202/73 545/199/73 +f 549/203/74 550/204/74 551/205/74 +f 551/205/74 552/206/74 549/203/74 +f 553/202/75 554/201/75 555/200/75 +f 555/200/75 556/199/75 553/202/75 +f 557/207/76 558/207/76 559/208/76 +f 559/208/76 560/209/76 557/207/76 +f 561/209/77 562/210/77 563/211/77 +f 550/212/78 564/196/78 565/213/78 +f 565/213/78 551/214/78 550/212/78 +f 566/210/79 567/209/79 568/211/79 +f 569/215/80 570/216/80 568/211/80 +f 568/211/80 567/209/80 569/215/80 +f 571/217/81 572/218/81 543/197/81 +f 543/197/81 542/196/81 571/217/81 +f 573/219/82 574/220/82 550/204/82 +f 550/204/82 549/203/82 573/219/82 +f 575/209/83 576/208/83 558/207/83 +f 558/207/83 557/207/83 575/209/83 +f 550/212/84 574/214/84 577/213/84 +f 577/213/84 564/196/84 550/212/84 +f 569/215/85 561/209/85 563/211/85 +f 563/211/85 570/216/85 569/215/85 +f 578/221/75 565/222/75 541/222/75 +f 541/222/75 544/221/75 578/221/75 +f 565/222/86 564/203/86 542/203/86 +f 542/203/86 541/222/86 565/222/86 +f 564/203/87 577/206/87 571/206/87 +f 571/206/87 542/203/87 564/203/87 +f 577/206/73 579/223/73 572/223/73 +f 572/223/73 571/206/73 577/206/73 +f 579/224/88 580/225/88 543/226/88 +f 543/226/88 572/224/88 579/224/88 +f 580/225/89 578/224/89 544/224/89 +f 544/224/89 543/226/89 580/225/89 +f 574/214/79 581/227/79 579/228/79 +f 579/228/79 577/213/79 574/214/79 +f 581/229/75 574/220/75 573/219/75 +f 573/219/75 582/221/75 581/229/75 +f 552/206/73 551/205/73 583/230/73 +f 583/230/73 584/223/73 552/206/73 +f 583/227/77 551/214/77 565/213/77 +f 565/213/77 578/228/77 583/227/77 +f 547/201/73 546/200/73 585/199/73 +f 585/199/73 586/202/73 547/201/73 +f 583/231/90 578/224/90 563/232/90 +f 563/232/90 562/233/90 583/231/90 +f 578/224/89 580/225/89 570/234/89 +f 570/234/89 563/232/89 578/224/89 +f 580/225/88 579/224/88 568/232/88 +f 568/232/88 570/234/88 580/225/88 +f 579/224/92 581/231/92 566/233/92 +f 566/233/92 568/232/92 579/224/92 +f 555/200/75 554/201/75 587/202/75 +f 587/202/75 588/199/75 555/200/75 +f 559/208/76 558/207/76 569/235/76 +f 569/235/76 567/236/76 559/208/76 +f 558/207/83 576/208/83 561/236/83 +f 561/236/83 569/235/83 558/207/83 +f 584/236/27 583/231/27 546/237/27 +f 546/237/27 545/238/27 584/236/27 +f 583/231/27 562/233/27 585/239/27 +f 585/239/27 546/237/27 583/231/27 +f 562/210/94 561/209/94 586/240/94 +f 586/240/94 585/241/94 562/210/94 +f 561/236/26 576/208/26 547/242/26 +f 547/242/26 586/238/26 561/236/26 +f 576/208/26 575/209/26 548/240/26 +f 548/240/26 547/242/26 576/208/26 +f 560/209/26 559/208/26 554/242/26 +f 554/242/26 553/240/26 560/209/26 +f 559/208/26 567/236/26 587/238/26 +f 587/238/26 554/242/26 559/208/26 +f 567/209/95 566/210/95 588/241/95 +f 588/241/95 587/240/95 567/209/95 +f 566/233/27 581/231/27 555/237/27 +f 555/237/27 588/239/27 566/233/27 +f 581/231/27 582/236/27 556/238/27 +f 556/238/27 555/237/27 581/231/27 +f 589/243/187 590/244/187 591/245/187 +f 591/245/187 592/246/187 589/243/187 +f 589/247/163 592/248/163 593/249/163 +f 593/249/163 594/250/163 589/247/163 +f 592/246/188 591/245/188 595/251/189 +f 595/251/189 593/252/188 592/246/188 +f 591/248/161 590/247/161 596/250/161 +f 596/250/161 595/249/161 591/248/161 +f 597/253/13 598/254/13 599/255/13 +f 599/255/13 600/256/13 597/253/13 +f 601/257/14 597/253/14 600/256/14 +f 600/256/14 602/258/14 601/257/14 +f 603/259/118 601/257/118 602/258/118 +f 602/258/118 604/260/15 603/259/118 +f 605/261/16 603/262/16 604/263/16 +f 604/263/16 606/264/16 605/261/16 +f 607/265/17 605/261/17 606/264/17 +f 606/264/17 608/266/17 607/265/17 +f 609/267/18 607/265/18 608/266/18 +f 608/266/18 610/268/18 609/267/18 +f 611/269/190 609/267/19 610/268/19 +f 610/268/19 612/270/190 611/269/190 +f 613/271/20 611/269/20 612/270/20 +f 612/270/20 614/272/20 613/271/20 +f 615/273/21 613/271/21 614/272/21 +f 614/272/21 616/274/21 615/273/21 +f 617/275/191 615/273/191 616/274/22 +f 616/274/22 618/276/191 617/275/191 +f 619/277/23 617/275/23 618/276/23 +f 618/276/23 620/278/23 619/277/23 +f 598/254/24 619/277/25 620/278/25 +f 620/278/25 599/255/24 598/254/24 +f 600/279/27 599/280/27 621/281/27 +f 621/281/27 622/282/27 600/279/27 +f 623/283/27 624/279/27 625/282/27 +f 625/282/27 626/284/27 623/283/27 +f 604/285/27 602/283/27 627/284/27 +f 627/284/27 628/285/27 604/285/27 +f 629/286/27 630/285/27 631/285/27 +f 631/285/27 632/287/27 629/286/27 +f 608/288/27 606/286/27 633/287/27 +f 633/287/27 634/289/27 608/288/27 +f 635/290/27 636/288/27 637/289/27 +f 637/289/27 638/291/27 635/290/27 +f 612/292/27 610/290/27 639/291/27 +f 639/291/27 640/293/27 612/292/27 +f 641/294/27 642/292/27 643/293/27 +f 643/293/27 644/295/27 641/294/27 +f 616/296/27 614/294/27 645/295/27 +f 645/295/27 646/297/27 616/296/27 +f 647/298/27 648/296/27 649/297/27 +f 649/297/27 650/299/27 647/298/27 +f 620/300/27 618/298/27 651/299/27 +f 651/299/27 652/300/27 620/300/27 +f 653/280/27 654/300/27 655/300/27 +f 655/300/27 656/281/27 653/280/27 +f 622/301/19 621/302/19 657/303/19 +f 657/303/19 658/304/19 622/301/19 +f 627/305/20 622/301/20 658/304/20 +f 658/304/20 659/306/20 627/305/20 +f 628/307/21 627/305/21 659/306/21 +f 659/306/21 660/308/21 628/307/21 +f 633/309/22 628/307/22 660/308/22 +f 660/308/22 661/310/22 633/309/22 +f 634/311/23 633/309/23 661/310/23 +f 661/310/23 662/312/23 634/311/23 +f 639/313/24 634/311/24 662/312/24 +f 662/312/24 663/314/24 639/313/24 +f 640/315/192 639/313/13 663/314/13 +f 663/314/13 664/316/192 640/315/192 +f 645/317/14 640/315/14 664/316/14 +f 664/316/14 665/318/14 645/317/14 +f 646/319/15 645/317/15 665/318/15 +f 665/318/15 666/320/15 646/319/15 +f 651/321/16 646/322/16 666/323/193 +f 666/323/193 667/324/16 651/321/16 +f 652/325/17 651/321/17 667/324/17 +f 667/324/17 668/326/17 652/325/17 +f 621/302/18 652/325/194 668/326/194 +f 668/326/194 657/303/18 621/302/18 +f 658/327/27 657/328/27 669/329/27 +f 659/330/27 658/327/27 669/329/27 +f 660/331/27 659/330/27 669/329/27 +f 661/332/27 660/331/27 669/329/27 +f 662/333/27 661/332/27 669/329/27 +f 663/334/27 662/333/27 669/329/27 +f 664/335/27 663/334/27 669/329/27 +f 665/336/27 664/335/27 669/329/27 +f 666/337/27 665/336/27 669/329/27 +f 667/338/27 666/337/27 669/329/27 +f 668/339/27 667/338/27 669/329/27 +f 657/328/27 668/339/27 669/329/27 +f 602/258/14 600/256/14 624/340/14 +f 624/340/14 623/341/14 602/258/14 +f 600/279/161 622/282/161 625/282/161 +f 625/282/161 624/279/161 600/279/161 +f 622/301/20 627/305/20 626/342/20 +f 626/342/20 625/343/20 622/301/20 +f 627/284/195 602/283/195 623/283/195 +f 623/283/195 626/284/195 627/284/195 +f 606/264/16 604/263/16 630/344/193 +f 630/344/193 629/345/16 606/264/16 +f 604/285/1 628/285/1 631/285/1 +f 631/285/1 630/285/1 604/285/1 +f 628/307/22 633/309/22 632/346/22 +f 632/346/22 631/347/22 628/307/22 +f 633/287/196 606/286/196 629/286/196 +f 629/286/196 632/287/196 633/287/196 +f 610/268/18 608/266/18 636/348/18 +f 636/348/18 635/349/18 610/268/18 +f 608/288/153 634/289/153 637/289/153 +f 637/289/153 636/288/153 608/288/153 +f 634/311/24 639/313/24 638/350/24 +f 638/350/24 637/351/24 634/311/24 +f 639/291/10 610/290/10 635/290/10 +f 635/290/10 638/291/10 639/291/10 +f 614/272/20 612/270/20 642/352/20 +f 642/352/20 641/353/20 614/272/20 +f 612/292/163 640/293/163 643/293/163 +f 643/293/163 642/292/163 612/292/163 +f 640/315/14 645/317/14 644/354/14 +f 644/354/14 643/355/14 640/315/14 +f 645/295/197 614/294/197 641/294/197 +f 641/294/197 644/295/197 645/295/197 +f 618/276/191 616/274/22 648/356/22 +f 648/356/22 647/357/22 618/276/191 +f 616/296/7 646/297/7 649/297/7 +f 649/297/7 648/296/7 616/296/7 +f 646/322/16 651/321/16 650/358/16 +f 650/358/16 649/359/16 646/322/16 +f 651/299/198 618/298/198 647/298/198 +f 647/298/198 650/299/198 651/299/198 +f 599/255/24 620/278/25 654/360/24 +f 654/360/24 653/361/24 599/255/24 +f 620/300/151 652/300/151 655/300/151 +f 655/300/151 654/300/151 620/300/151 +f 652/325/194 621/302/18 656/362/18 +f 656/362/18 655/363/194 652/325/194 +f 621/281/4 599/280/4 653/280/4 +f 653/280/4 656/281/4 621/281/4 +f 670/364/199 671/365/199 672/366/199 +f 672/366/199 673/367/199 670/364/199 +f 671/368/200 674/369/200 675/370/200 +f 675/370/200 672/371/200 671/368/200 +f 674/365/201 676/364/201 677/367/201 +f 677/367/201 675/366/201 674/365/201 +f 676/372/202 670/373/202 673/374/202 +f 673/374/202 677/375/202 676/372/202 +f 678/376/7 679/377/7 680/378/7 +f 680/378/7 681/379/7 678/376/7 +f 679/380/4 682/381/4 683/382/4 +f 683/382/4 680/383/4 679/380/4 +f 684/384/1 685/385/1 686/386/1 +f 686/386/1 687/387/1 684/384/1 +f 688/388/10 678/389/10 681/390/10 +f 681/390/10 689/391/10 688/388/10 +f 676/392/26 674/393/26 683/394/26 +f 683/394/26 689/395/26 676/392/26 +f 683/394/26 674/393/26 671/396/26 +f 671/396/26 680/397/26 683/394/26 +f 680/397/26 671/396/26 670/398/26 +f 670/398/26 681/399/26 680/397/26 +f 681/399/26 670/398/26 676/392/26 +f 676/392/26 689/395/26 681/399/26 +f 673/400/27 672/401/27 690/402/27 +f 690/402/27 691/403/27 673/400/27 +f 672/401/27 675/404/27 692/405/27 +f 692/405/27 690/402/27 672/401/27 +f 675/404/27 677/406/27 693/407/27 +f 693/407/27 692/405/27 675/404/27 +f 677/406/27 673/400/27 691/403/27 +f 691/403/27 693/407/27 677/406/27 +f 688/408/1 689/409/1 694/410/1 +f 694/410/1 695/411/1 688/408/1 +f 689/409/1 683/412/1 696/413/1 +f 696/413/1 694/410/1 689/409/1 +f 683/412/1 682/414/1 697/415/1 +f 697/415/1 696/413/1 683/412/1 +f 695/416/10 694/417/10 686/418/10 +f 686/418/10 685/419/10 695/416/10 +f 694/420/27 696/421/27 687/422/27 +f 687/422/27 686/423/27 694/420/27 +f 696/417/4 697/416/4 684/419/4 +f 684/419/4 687/418/4 696/417/4 +f 698/243/150 699/246/150 700/245/150 +f 700/245/150 701/244/150 698/243/150 +f 698/247/153 702/250/153 703/249/153 +f 703/249/153 699/248/153 698/247/153 +f 699/246/152 703/252/152 704/251/152 +f 704/251/152 700/245/152 699/246/152 +f 700/248/151 704/249/151 705/250/151 +f 705/250/151 701/247/151 700/248/151 +f 706/424/203 707/425/204 708/426/205 +f 708/426/205 709/427/27 706/424/203 +f 710/428/1 711/429/1 707/429/1 +f 707/429/1 706/428/1 710/428/1 +f 712/430/206 708/430/206 707/431/206 +f 707/431/206 711/431/206 712/430/206 +f 706/424/203 709/427/27 713/426/207 +f 713/426/207 714/425/208 706/424/203 +f 710/428/1 706/428/1 714/432/1 +f 714/432/1 715/432/1 710/428/1 +f 714/431/209 713/430/209 716/430/209 +f 716/430/209 715/431/209 714/431/209 +f 717/433/210 709/427/27 708/426/205 +f 708/426/205 718/434/211 717/433/210 +f 719/428/7 717/428/7 718/429/7 +f 718/429/7 720/429/7 719/428/7 +f 718/435/212 708/430/212 712/430/212 +f 712/430/212 720/435/212 718/435/212 +f 717/433/210 721/434/213 713/426/207 +f 713/426/207 709/427/27 717/433/210 +f 719/428/7 722/432/7 721/432/7 +f 721/432/7 717/428/7 719/428/7 +f 716/430/214 713/430/214 721/435/214 +f 721/435/214 722/435/214 716/430/214 +f 723/436/4 724/437/4 725/438/4 +f 725/438/4 726/439/4 723/436/4 +f 724/437/215 723/436/215 727/440/215 +f 727/440/215 728/441/215 724/437/215 +f 723/436/216 726/439/216 729/440/216 +f 729/440/216 727/440/216 723/436/216 +f 730/442/217 728/441/217 727/440/217 +f 727/440/217 731/443/217 730/442/217 +f 732/444/216 731/443/216 727/440/216 +f 727/440/216 729/445/216 732/444/216 +f 733/446/10 734/447/10 735/448/10 +f 735/448/10 736/449/10 733/446/10 +f 734/447/218 737/442/218 738/443/218 +f 738/443/218 735/448/218 734/447/218 +f 735/448/219 738/443/219 739/450/219 +f 739/450/219 736/449/219 735/448/219 +f 738/443/220 737/442/220 730/442/220 +f 730/442/220 731/443/220 738/443/220 +f 732/444/219 739/444/219 738/443/219 +f 738/443/219 731/443/219 732/444/219 +f 740/436/4 741/437/4 742/438/4 +f 742/438/4 743/439/4 740/436/4 +f 741/437/221 740/436/221 744/440/221 +f 744/440/221 745/441/221 741/437/221 +f 740/436/222 743/439/222 746/440/222 +f 746/440/222 744/440/222 740/436/222 +f 747/442/223 745/441/223 744/440/223 +f 744/440/223 748/443/223 747/442/223 +f 749/444/222 748/443/222 744/440/222 +f 744/440/222 746/445/222 749/444/222 +f 750/446/10 751/447/10 752/448/10 +f 752/448/10 753/449/10 750/446/10 +f 751/447/224 754/442/224 755/443/224 +f 755/443/224 752/448/224 751/447/224 +f 752/448/222 755/443/222 756/450/222 +f 756/450/222 753/449/222 752/448/222 +f 755/443/225 754/442/225 747/442/225 +f 747/442/225 748/443/225 755/443/225 +f 749/444/222 756/444/222 755/443/222 +f 755/443/222 748/443/222 749/444/222 +f 757/436/4 758/437/4 759/438/4 +f 759/438/4 760/439/4 757/436/4 +f 758/437/226 757/436/226 761/440/226 +f 761/440/226 762/441/227 758/437/226 +f 757/436/228 760/439/228 763/440/229 +f 763/440/229 761/440/229 757/436/228 +f 764/442/230 762/441/230 761/440/230 +f 761/440/230 765/443/230 764/442/230 +f 766/444/228 765/443/228 761/440/228 +f 761/440/228 763/445/228 766/444/228 +f 767/446/10 768/447/10 769/448/10 +f 769/448/10 770/449/10 767/446/10 +f 768/447/231 771/442/232 772/443/231 +f 772/443/231 769/448/232 768/447/231 +f 769/448/229 772/443/229 773/450/229 +f 773/450/229 770/449/229 769/448/229 +f 772/443/233 771/442/233 764/442/233 +f 764/442/233 765/443/233 772/443/233 +f 766/444/229 773/444/229 772/443/229 +f 772/443/229 765/443/229 766/444/229 +f 774/436/4 775/437/4 776/438/4 +f 776/438/4 777/439/4 774/436/4 +f 775/437/226 774/436/227 778/440/227 +f 778/440/227 779/441/227 775/437/226 +f 774/436/229 777/439/229 780/440/229 +f 780/440/229 778/440/229 774/436/229 +f 781/442/230 779/441/230 778/440/230 +f 778/440/230 782/443/230 781/442/230 +f 783/444/229 782/443/229 778/440/229 +f 778/440/229 780/445/229 783/444/229 +f 784/446/10 785/447/10 786/448/10 +f 786/448/10 787/449/10 784/446/10 +f 785/447/231 788/442/232 789/443/232 +f 789/443/232 786/448/231 785/447/231 +f 786/448/228 789/443/229 790/450/229 +f 790/450/229 787/449/228 786/448/228 +f 789/443/233 788/442/233 781/442/233 +f 781/442/233 782/443/233 789/443/233 +f 783/444/229 790/444/229 789/443/229 +f 789/443/229 782/443/229 783/444/229 +f 791/436/4 792/437/4 793/438/4 +f 793/438/4 794/439/4 791/436/4 +f 792/437/234 791/436/234 795/440/234 +f 795/440/234 796/441/234 792/437/234 +f 791/436/235 794/439/235 797/440/235 +f 797/440/235 795/440/235 791/436/235 +f 798/442/236 796/441/236 795/440/236 +f 795/440/236 799/443/236 798/442/236 +f 800/444/235 799/443/235 795/440/235 +f 795/440/235 797/445/235 800/444/235 +f 801/446/10 802/447/10 803/448/10 +f 803/448/10 804/449/10 801/446/10 +f 802/447/237 805/442/237 806/443/237 +f 806/443/237 803/448/237 802/447/237 +f 803/448/235 806/443/235 807/450/235 +f 807/450/235 804/449/235 803/448/235 +f 806/443/238 805/442/238 798/442/238 +f 798/442/238 799/443/238 806/443/238 +f 800/444/239 807/444/239 806/443/239 +f 806/443/239 799/443/239 800/444/239 +f 808/436/4 809/437/4 810/438/4 +f 810/438/4 811/439/4 808/436/4 +f 809/437/240 808/436/240 812/440/240 +f 812/440/240 813/441/240 809/437/240 +f 808/436/241 811/439/241 814/440/241 +f 814/440/241 812/440/241 808/436/241 +f 815/442/236 813/441/236 812/440/236 +f 812/440/236 816/443/236 815/442/236 +f 817/444/241 816/443/241 812/440/241 +f 812/440/241 814/445/241 817/444/241 +f 818/446/10 819/447/10 820/448/10 +f 820/448/10 821/449/10 818/446/10 +f 819/447/242 822/442/242 823/443/242 +f 823/443/242 820/448/242 819/447/242 +f 820/448/243 823/443/241 824/450/241 +f 824/450/241 821/449/243 820/448/243 +f 823/443/238 822/442/238 815/442/238 +f 815/442/238 816/443/238 823/443/238 +f 817/444/241 824/444/241 823/443/241 +f 823/443/241 816/443/241 817/444/241 +f 825/436/4 826/437/4 827/438/4 +f 827/438/4 828/439/4 825/436/4 +f 826/437/215 825/436/215 829/440/215 +f 829/440/215 830/441/215 826/437/215 +f 825/436/216 828/439/216 831/440/216 +f 831/440/216 829/440/216 825/436/216 +f 832/442/217 830/441/217 829/440/217 +f 829/440/217 833/443/217 832/442/217 +f 834/444/216 833/443/216 829/440/216 +f 829/440/216 831/445/216 834/444/216 +f 835/446/10 836/447/10 837/448/10 +f 837/448/10 838/449/10 835/446/10 +f 836/447/218 839/442/218 840/443/218 +f 840/443/218 837/448/218 836/447/218 +f 837/448/219 840/443/219 841/450/219 +f 841/450/219 838/449/219 837/448/219 +f 840/443/220 839/442/220 832/442/220 +f 832/442/220 833/443/220 840/443/220 +f 834/444/219 841/444/219 840/443/219 +f 840/443/219 833/443/219 834/444/219 +f 842/436/4 843/437/4 844/438/4 +f 844/438/4 845/439/4 842/436/4 +f 843/437/215 842/436/215 846/440/215 +f 846/440/215 847/441/215 843/437/215 +f 842/436/216 845/439/216 848/440/216 +f 848/440/216 846/440/216 842/436/216 +f 849/442/217 847/441/217 846/440/217 +f 846/440/217 850/443/217 849/442/217 +f 851/444/216 850/443/216 846/440/216 +f 846/440/216 848/445/216 851/444/216 +f 852/446/10 853/447/10 854/448/10 +f 854/448/10 855/449/10 852/446/10 +f 853/447/218 856/442/218 857/443/218 +f 857/443/218 854/448/218 853/447/218 +f 854/448/219 857/443/219 858/450/219 +f 858/450/219 855/449/219 854/448/219 +f 857/443/220 856/442/220 849/442/220 +f 849/442/220 850/443/220 857/443/220 +f 851/444/219 858/444/219 857/443/219 +f 857/443/219 850/443/219 851/444/219 +f 859/438/4 860/437/4 861/436/4 +f 861/436/4 862/439/4 859/438/4 +f 863/440/244 861/436/244 860/437/244 +f 860/437/244 864/441/244 863/440/244 +f 865/440/245 862/439/245 861/436/245 +f 861/436/245 863/440/245 865/440/245 +f 863/440/246 864/441/246 866/442/246 +f 866/442/246 867/443/246 863/440/246 +f 868/444/245 865/445/245 863/440/245 +f 863/440/245 867/443/245 868/444/245 +f 869/448/10 870/447/10 871/446/10 +f 871/446/10 872/449/10 869/448/10 +f 873/443/247 874/442/247 870/447/247 +f 870/447/247 869/448/247 873/443/247 +f 875/450/248 873/443/248 869/448/248 +f 869/448/248 872/449/248 875/450/248 +f 866/442/249 874/442/249 873/443/249 +f 873/443/249 867/443/249 866/442/249 +f 868/444/248 867/443/248 873/443/248 +f 873/443/248 875/444/248 868/444/248 +f 876/438/4 877/437/4 878/436/4 +f 878/436/4 879/439/4 876/438/4 +f 880/440/250 878/436/250 877/437/250 +f 877/437/250 881/441/250 880/440/250 +f 882/440/251 879/439/251 878/436/251 +f 878/436/251 880/440/251 882/440/251 +f 880/440/252 881/441/252 883/442/252 +f 883/442/252 884/443/252 880/440/252 +f 885/444/251 882/445/251 880/440/251 +f 880/440/251 884/443/251 885/444/251 +f 886/448/10 887/447/10 888/446/10 +f 888/446/10 889/449/10 886/448/10 +f 890/443/253 891/442/253 887/447/253 +f 887/447/253 886/448/253 890/443/253 +f 892/450/251 890/443/251 886/448/254 +f 886/448/254 889/449/254 892/450/251 +f 883/442/255 891/442/255 890/443/255 +f 890/443/255 884/443/255 883/442/255 +f 885/444/251 884/443/251 890/443/251 +f 890/443/251 892/444/251 885/444/251 +f 893/438/4 894/437/4 895/436/4 +f 895/436/4 896/439/4 893/438/4 +f 897/440/256 895/436/257 894/437/256 +f 894/437/256 898/441/256 897/440/256 +f 899/440/258 896/439/258 895/436/258 +f 895/436/258 897/440/258 899/440/258 +f 897/440/259 898/441/259 900/442/259 +f 900/442/259 901/443/259 897/440/259 +f 902/444/258 899/445/258 897/440/258 +f 897/440/258 901/443/258 902/444/258 +f 903/448/10 904/447/10 905/446/10 +f 905/446/10 906/449/10 903/448/10 +f 907/443/260 908/442/260 904/447/260 +f 904/447/260 903/448/260 907/443/260 +f 909/450/261 907/443/261 903/448/261 +f 903/448/261 906/449/261 909/450/261 +f 900/442/262 908/442/262 907/443/262 +f 907/443/262 901/443/262 900/442/262 +f 902/444/261 901/443/261 907/443/261 +f 907/443/261 909/444/261 902/444/261 +f 910/438/4 911/437/4 912/436/4 +f 912/436/4 913/439/4 910/438/4 +f 914/440/257 912/436/257 911/437/257 +f 911/437/257 915/441/256 914/440/257 +f 916/440/261 913/439/261 912/436/261 +f 912/436/261 914/440/261 916/440/261 +f 914/440/259 915/441/259 917/442/259 +f 917/442/259 918/443/259 914/440/259 +f 919/444/261 916/445/261 914/440/261 +f 914/440/261 918/443/261 919/444/261 +f 920/448/10 921/447/10 922/446/10 +f 922/446/10 923/449/10 920/448/10 +f 924/443/263 925/442/260 921/447/263 +f 921/447/263 920/448/263 924/443/263 +f 926/450/258 924/443/258 920/448/261 +f 920/448/261 923/449/261 926/450/258 +f 917/442/262 925/442/262 924/443/262 +f 924/443/262 918/443/262 917/442/262 +f 919/444/261 918/443/261 924/443/261 +f 924/443/261 926/444/261 919/444/261 +f 927/438/4 928/437/4 929/436/4 +f 929/436/4 930/439/4 927/438/4 +f 931/440/264 929/436/264 928/437/264 +f 928/437/264 932/441/264 931/440/264 +f 933/440/265 930/439/265 929/436/265 +f 929/436/265 931/440/265 933/440/265 +f 931/440/266 932/441/266 934/442/266 +f 934/442/266 935/443/266 931/440/266 +f 936/444/265 933/445/265 931/440/265 +f 931/440/265 935/443/265 936/444/265 +f 937/448/10 938/447/10 939/446/10 +f 939/446/10 940/449/10 937/448/10 +f 941/443/267 942/442/267 938/447/267 +f 938/447/267 937/448/267 941/443/267 +f 943/450/265 941/443/265 937/448/265 +f 937/448/265 940/449/265 943/450/265 +f 934/442/268 942/442/268 941/443/268 +f 941/443/268 935/443/268 934/442/268 +f 936/444/269 935/443/269 941/443/269 +f 941/443/269 943/444/269 936/444/269 +f 944/438/4 945/437/4 946/436/4 +f 946/436/4 947/439/4 944/438/4 +f 948/440/270 946/436/270 945/437/270 +f 945/437/270 949/441/270 948/440/270 +f 950/440/271 947/439/271 946/436/271 +f 946/436/271 948/440/271 950/440/271 +f 948/440/266 949/441/266 951/442/266 +f 951/442/266 952/443/266 948/440/266 +f 953/444/271 950/445/271 948/440/271 +f 948/440/271 952/443/271 953/444/271 +f 954/448/10 955/447/10 956/446/10 +f 956/446/10 957/449/10 954/448/10 +f 958/443/272 959/442/272 955/447/272 +f 955/447/272 954/448/272 958/443/272 +f 960/450/271 958/443/271 954/448/273 +f 954/448/273 957/449/273 960/450/271 +f 951/442/268 959/442/268 958/443/268 +f 958/443/268 952/443/268 951/442/268 +f 953/444/271 952/443/271 958/443/271 +f 958/443/271 960/444/271 953/444/271 +f 961/438/4 962/437/4 963/436/4 +f 963/436/4 964/439/4 961/438/4 +f 965/440/244 963/436/244 962/437/244 +f 962/437/244 966/441/244 965/440/244 +f 967/440/245 964/439/245 963/436/245 +f 963/436/245 965/440/245 967/440/245 +f 965/440/246 966/441/246 968/442/274 +f 968/442/274 969/443/246 965/440/246 +f 970/444/245 967/445/245 965/440/245 +f 965/440/245 969/443/245 970/444/245 +f 971/448/10 972/447/10 973/446/10 +f 973/446/10 974/449/10 971/448/10 +f 975/443/247 976/442/247 972/447/247 +f 972/447/247 971/448/247 975/443/247 +f 977/450/248 975/443/248 971/448/248 +f 971/448/248 974/449/248 977/450/248 +f 968/442/275 976/442/249 975/443/249 +f 975/443/249 969/443/249 968/442/275 +f 970/444/248 969/443/248 975/443/248 +f 975/443/248 977/444/248 970/444/248 +f 978/438/4 979/437/4 980/436/4 +f 980/436/4 981/439/4 978/438/4 +f 982/440/244 980/436/244 979/437/244 +f 979/437/244 983/441/244 982/440/244 +f 984/440/245 981/439/245 980/436/245 +f 980/436/245 982/440/245 984/440/245 +f 982/440/246 983/441/246 985/442/246 +f 985/442/246 986/443/246 982/440/246 +f 987/444/245 984/445/245 982/440/245 +f 982/440/245 986/443/245 987/444/245 +f 988/448/10 989/447/10 990/446/10 +f 990/446/10 991/449/10 988/448/10 +f 992/443/247 993/442/247 989/447/247 +f 989/447/247 988/448/247 992/443/247 +f 994/450/248 992/443/248 988/448/248 +f 988/448/248 991/449/248 994/450/248 +f 985/442/249 993/442/249 992/443/249 +f 992/443/249 986/443/249 985/442/249 +f 987/444/248 986/443/248 992/443/248 +f 992/443/248 994/444/248 987/444/248 +f 995/436/4 996/437/4 997/438/4 +f 997/438/4 998/439/4 995/436/4 +f 996/437/276 995/436/276 999/440/276 +f 999/440/276 1000/441/276 996/437/276 +f 995/436/277 998/439/277 1001/440/278 +f 1001/440/278 999/440/278 995/436/277 +f 1002/442/279 1000/441/279 999/440/279 +f 999/440/279 1003/443/279 1002/442/279 +f 1004/444/277 1003/443/277 999/440/277 +f 999/440/277 1001/445/277 1004/444/277 +f 1005/446/10 1006/447/10 1007/448/10 +f 1007/448/10 1008/449/10 1005/446/10 +f 1006/447/280 1009/442/280 1010/443/280 +f 1010/443/280 1007/448/280 1006/447/280 +f 1007/448/278 1010/443/278 1011/450/278 +f 1011/450/278 1008/449/278 1007/448/278 +f 1010/443/281 1009/442/281 1002/442/281 +f 1002/442/281 1003/443/281 1010/443/281 +f 1004/444/278 1011/444/278 1010/443/278 +f 1010/443/278 1003/443/278 1004/444/278 +f 1012/438/4 1013/437/4 1014/436/4 +f 1014/436/4 1015/439/4 1012/438/4 +f 1016/440/282 1014/436/282 1013/437/282 +f 1013/437/282 1017/441/282 1016/440/282 +f 1018/440/283 1015/439/283 1014/436/283 +f 1014/436/283 1016/440/283 1018/440/283 +f 1016/440/284 1017/441/284 1019/442/284 +f 1019/442/284 1020/443/284 1016/440/284 +f 1021/444/283 1018/445/283 1016/440/283 +f 1016/440/283 1020/443/283 1021/444/283 +f 1022/448/10 1023/447/10 1024/446/10 +f 1024/446/10 1025/449/10 1022/448/10 +f 1026/443/285 1027/442/285 1023/447/285 +f 1023/447/285 1022/448/285 1026/443/285 +f 1028/450/286 1026/443/286 1022/448/286 +f 1022/448/286 1025/449/286 1028/450/286 +f 1019/442/287 1027/442/287 1026/443/287 +f 1026/443/287 1020/443/287 1019/442/287 +f 1021/444/286 1020/443/286 1026/443/286 +f 1026/443/286 1028/444/286 1021/444/286 +f 1029/243/187 1030/244/187 1031/245/187 +f 1031/245/187 1032/246/187 1029/243/187 +f 1029/247/163 1032/248/163 1033/249/163 +f 1033/249/163 1034/250/163 1029/247/163 +f 1032/246/188 1031/245/188 1035/251/188 +f 1035/251/188 1033/252/188 1032/246/188 +f 1031/248/161 1030/247/161 1036/250/161 +f 1036/250/161 1035/249/161 1031/248/161 +f 1037/451/27 1038/452/27 1039/453/27 +f 1039/453/27 1040/454/27 1037/451/27 +f 1041/455/7 1042/456/7 1038/457/7 +f 1038/457/7 1037/458/7 1041/455/7 +f 1042/459/4 1043/460/4 1039/461/4 +f 1039/461/4 1038/462/4 1042/459/4 +f 1043/456/1 1044/455/1 1040/458/1 +f 1040/458/1 1039/457/1 1043/456/1 +f 1044/460/10 1041/459/10 1037/462/10 +f 1037/462/10 1040/461/10 1044/460/10 +f 1045/451/27 1046/452/27 1047/453/27 +f 1047/453/27 1048/454/27 1045/451/27 +f 1049/455/7 1050/456/7 1046/457/7 +f 1046/457/7 1045/458/7 1049/455/7 +f 1050/459/4 1051/460/4 1047/461/4 +f 1047/461/4 1046/462/4 1050/459/4 +f 1051/456/1 1052/455/1 1048/458/1 +f 1048/458/1 1047/457/1 1051/456/1 +f 1052/460/10 1049/459/10 1045/462/10 +f 1045/462/10 1048/461/10 1052/460/10 +f 1053/451/27 1054/452/27 1055/453/27 +f 1055/453/27 1056/454/27 1053/451/27 +f 1057/455/7 1058/456/7 1054/457/7 +f 1054/457/7 1053/458/7 1057/455/7 +f 1058/459/4 1059/460/4 1055/461/4 +f 1055/461/4 1054/462/4 1058/459/4 +f 1059/456/1 1060/455/1 1056/458/1 +f 1056/458/1 1055/457/1 1059/456/1 +f 1060/460/10 1057/459/10 1053/462/10 +f 1053/462/10 1056/461/10 1060/460/10 +f 1061/451/27 1062/452/27 1063/453/27 +f 1063/453/27 1064/454/27 1061/451/27 +f 1065/455/10 1066/456/10 1062/457/10 +f 1062/457/10 1061/458/10 1065/455/10 +f 1066/459/7 1067/460/7 1063/461/7 +f 1063/461/7 1062/462/7 1066/459/7 +f 1067/456/4 1068/455/4 1064/458/4 +f 1064/458/4 1063/457/4 1067/456/4 +f 1068/460/1 1065/459/1 1061/462/1 +f 1061/462/1 1064/461/1 1068/460/1 +f 1069/451/27 1070/452/27 1071/453/27 +f 1071/453/27 1072/454/27 1069/451/27 +f 1073/455/10 1074/456/10 1070/457/10 +f 1070/457/10 1069/458/10 1073/455/10 +f 1074/459/7 1075/460/7 1071/461/7 +f 1071/461/7 1070/462/7 1074/459/7 +f 1075/456/4 1076/455/4 1072/458/4 +f 1072/458/4 1071/457/4 1075/456/4 +f 1076/460/1 1073/459/1 1069/462/1 +f 1069/462/1 1072/461/1 1076/460/1 +f 1077/451/27 1078/452/27 1079/453/27 +f 1079/453/27 1080/454/27 1077/451/27 +f 1081/455/10 1082/456/10 1078/457/10 +f 1078/457/10 1077/458/10 1081/455/10 +f 1082/459/7 1083/460/7 1079/461/7 +f 1079/461/7 1078/462/7 1082/459/7 +f 1083/456/4 1084/455/4 1080/458/4 +f 1080/458/4 1079/457/4 1083/456/4 +f 1084/460/1 1081/459/1 1077/462/1 +f 1077/462/1 1080/461/1 1084/460/1 +f 1085/451/27 1086/452/27 1087/453/27 +f 1087/453/27 1088/454/27 1085/451/27 +f 1089/455/10 1090/456/10 1086/457/10 +f 1086/457/10 1085/458/10 1089/455/10 +f 1090/459/7 1091/460/7 1087/461/7 +f 1087/461/7 1086/462/7 1090/459/7 +f 1091/456/4 1092/455/4 1088/458/4 +f 1088/458/4 1087/457/4 1091/456/4 +f 1092/460/1 1089/459/1 1085/462/1 +f 1085/462/1 1088/461/1 1092/460/1 +f 1093/451/27 1094/452/27 1095/453/27 +f 1095/453/27 1096/454/27 1093/451/27 +f 1097/455/7 1098/456/7 1094/457/7 +f 1094/457/7 1093/458/7 1097/455/7 +f 1098/459/4 1099/460/4 1095/461/4 +f 1095/461/4 1094/462/4 1098/459/4 +f 1099/456/1 1100/455/1 1096/458/1 +f 1096/458/1 1095/457/1 1099/456/1 +f 1100/460/10 1097/459/10 1093/462/10 +f 1093/462/10 1096/461/10 1100/460/10 +f 1101/451/27 1102/452/27 1103/453/27 +f 1103/453/27 1104/454/27 1101/451/27 +f 1105/455/7 1106/456/7 1102/457/7 +f 1102/457/7 1101/458/7 1105/455/7 +f 1106/459/4 1107/460/4 1103/461/4 +f 1103/461/4 1102/462/4 1106/459/4 +f 1107/456/1 1108/455/1 1104/458/1 +f 1104/458/1 1103/457/1 1107/456/1 +f 1108/460/10 1105/459/10 1101/462/10 +f 1101/462/10 1104/461/10 1108/460/10 +f 1109/451/27 1110/452/27 1111/453/27 +f 1111/453/27 1112/454/27 1109/451/27 +f 1113/455/7 1114/456/7 1110/457/7 +f 1110/457/7 1109/458/7 1113/455/7 +f 1114/459/4 1115/460/4 1111/461/4 +f 1111/461/4 1110/462/4 1114/459/4 +f 1115/456/1 1116/455/1 1112/458/1 +f 1112/458/1 1111/457/1 1115/456/1 +f 1116/460/10 1113/459/10 1109/462/10 +f 1109/462/10 1112/461/10 1116/460/10 +f 1117/451/27 1118/452/27 1119/453/27 +f 1119/453/27 1120/454/27 1117/451/27 +f 1121/455/7 1122/456/7 1118/457/7 +f 1118/457/7 1117/458/7 1121/455/7 +f 1122/459/4 1123/460/4 1119/461/4 +f 1119/461/4 1118/462/4 1122/459/4 +f 1123/456/1 1124/455/1 1120/458/1 +f 1120/458/1 1119/457/1 1123/456/1 +f 1124/460/10 1121/459/10 1117/462/10 +f 1117/462/10 1120/461/10 1124/460/10 +f 1125/451/27 1126/452/27 1127/453/27 +f 1127/453/27 1128/454/27 1125/451/27 +f 1129/455/7 1130/456/7 1126/457/7 +f 1126/457/7 1125/458/7 1129/455/7 +f 1130/459/4 1131/460/4 1127/461/4 +f 1127/461/4 1126/462/4 1130/459/4 +f 1131/456/1 1132/455/1 1128/458/1 +f 1128/458/1 1127/457/1 1131/456/1 +f 1132/460/10 1129/459/10 1125/462/10 +f 1125/462/10 1128/461/10 1132/460/10 +f 1133/451/27 1134/452/27 1135/453/27 +f 1135/453/27 1136/454/27 1133/451/27 +f 1137/455/7 1138/456/7 1134/457/7 +f 1134/457/7 1133/458/7 1137/455/7 +f 1138/459/4 1139/460/4 1135/461/4 +f 1135/461/4 1134/462/4 1138/459/4 +f 1139/456/1 1140/455/1 1136/458/1 +f 1136/458/1 1135/457/1 1139/456/1 +f 1140/460/10 1137/459/10 1133/462/10 +f 1133/462/10 1136/461/10 1140/460/10 +f 1141/451/27 1142/452/27 1143/453/27 +f 1143/453/27 1144/454/27 1141/451/27 +f 1145/455/7 1146/456/7 1142/457/7 +f 1142/457/7 1141/458/7 1145/455/7 +f 1146/459/4 1147/460/4 1143/461/4 +f 1143/461/4 1142/462/4 1146/459/4 +f 1147/456/1 1148/455/1 1144/458/1 +f 1144/458/1 1143/457/1 1147/456/1 +f 1148/460/10 1145/459/10 1141/462/10 +f 1141/462/10 1144/461/10 1148/460/10 +f 1149/451/27 1150/452/27 1151/453/27 +f 1151/453/27 1152/454/27 1149/451/27 +f 1153/455/7 1154/456/7 1150/457/7 +f 1150/457/7 1149/458/7 1153/455/7 +f 1154/459/4 1155/460/4 1151/461/4 +f 1151/461/4 1150/462/4 1154/459/4 +f 1155/456/1 1156/455/1 1152/458/1 +f 1152/458/1 1151/457/1 1155/456/1 +f 1156/460/10 1153/459/10 1149/462/10 +f 1149/462/10 1152/461/10 1156/460/10 +f 1157/451/27 1158/452/27 1159/453/27 +f 1159/453/27 1160/454/27 1157/451/27 +f 1161/455/7 1162/456/7 1158/457/7 +f 1158/457/7 1157/458/7 1161/455/7 +f 1162/459/4 1163/460/4 1159/461/4 +f 1159/461/4 1158/462/4 1162/459/4 +f 1163/456/1 1164/455/1 1160/458/1 +f 1160/458/1 1159/457/1 1163/456/1 +f 1164/460/10 1161/459/10 1157/462/10 +f 1157/462/10 1160/461/10 1164/460/10 +f 1165/451/27 1166/452/27 1167/453/27 +f 1167/453/27 1168/454/27 1165/451/27 +f 1169/455/7 1170/456/7 1166/457/7 +f 1166/457/7 1165/458/7 1169/455/7 +f 1170/459/4 1171/460/4 1167/461/4 +f 1167/461/4 1166/462/4 1170/459/4 +f 1171/456/1 1172/455/1 1168/458/1 +f 1168/458/1 1167/457/1 1171/456/1 +f 1172/460/10 1169/459/10 1165/462/10 +f 1165/462/10 1168/461/10 1172/460/10 +f 1173/451/27 1174/452/27 1175/453/27 +f 1175/453/27 1176/454/27 1173/451/27 +f 1177/455/7 1178/456/7 1174/457/7 +f 1174/457/7 1173/458/7 1177/455/7 +f 1178/459/4 1179/460/4 1175/461/4 +f 1175/461/4 1174/462/4 1178/459/4 +f 1179/456/1 1180/455/1 1176/458/1 +f 1176/458/1 1175/457/1 1179/456/1 +f 1180/460/10 1177/459/10 1173/462/10 +f 1173/462/10 1176/461/10 1180/460/10 +f 1181/451/27 1182/452/27 1183/453/27 +f 1183/453/27 1184/454/27 1181/451/27 +f 1185/455/7 1186/456/7 1182/457/7 +f 1182/457/7 1181/458/7 1185/455/7 +f 1186/459/4 1187/460/4 1183/461/4 +f 1183/461/4 1182/462/4 1186/459/4 +f 1187/456/1 1188/455/1 1184/458/1 +f 1184/458/1 1183/457/1 1187/456/1 +f 1188/460/10 1185/459/10 1181/462/10 +f 1181/462/10 1184/461/10 1188/460/10 +f 1189/451/27 1190/452/27 1191/453/27 +f 1191/453/27 1192/454/27 1189/451/27 +f 1193/455/7 1194/456/7 1190/457/7 +f 1190/457/7 1189/458/7 1193/455/7 +f 1194/459/4 1195/460/4 1191/461/4 +f 1191/461/4 1190/462/4 1194/459/4 +f 1195/456/1 1196/455/1 1192/458/1 +f 1192/458/1 1191/457/1 1195/456/1 +f 1196/460/10 1193/459/10 1189/462/10 +f 1189/462/10 1192/461/10 1196/460/10 +f 1197/451/27 1198/452/27 1199/453/27 +f 1199/453/27 1200/454/27 1197/451/27 +f 1201/455/7 1202/456/7 1198/457/7 +f 1198/457/7 1197/458/7 1201/455/7 +f 1202/459/4 1203/460/4 1199/461/4 +f 1199/461/4 1198/462/4 1202/459/4 +f 1203/456/1 1204/455/1 1200/458/1 +f 1200/458/1 1199/457/1 1203/456/1 +f 1204/460/10 1201/459/10 1197/462/10 +f 1197/462/10 1200/461/10 1204/460/10 +f 1205/451/27 1206/452/27 1207/453/27 +f 1207/453/27 1208/454/27 1205/451/27 +f 1209/455/7 1210/456/7 1206/457/7 +f 1206/457/7 1205/458/7 1209/455/7 +f 1210/459/4 1211/460/4 1207/461/4 +f 1207/461/4 1206/462/4 1210/459/4 +f 1211/456/1 1212/455/1 1208/458/1 +f 1208/458/1 1207/457/1 1211/456/1 +f 1212/460/10 1209/459/10 1205/462/10 +f 1205/462/10 1208/461/10 1212/460/10 +f 1213/451/27 1214/452/27 1215/453/27 +f 1215/453/27 1216/454/27 1213/451/27 +f 1217/455/7 1218/456/7 1214/457/7 +f 1214/457/7 1213/458/7 1217/455/7 +f 1218/459/4 1219/460/4 1215/461/4 +f 1215/461/4 1214/462/4 1218/459/4 +f 1219/456/1 1220/455/1 1216/458/1 +f 1216/458/1 1215/457/1 1219/456/1 +f 1220/460/10 1217/459/10 1213/462/10 +f 1213/462/10 1216/461/10 1220/460/10 +f 1221/451/27 1222/452/27 1223/453/27 +f 1223/453/27 1224/454/27 1221/451/27 +f 1225/455/7 1226/456/7 1222/457/7 +f 1222/457/7 1221/458/7 1225/455/7 +f 1226/459/4 1227/460/4 1223/461/4 +f 1223/461/4 1222/462/4 1226/459/4 +f 1227/456/1 1228/455/1 1224/458/1 +f 1224/458/1 1223/457/1 1227/456/1 +f 1228/460/10 1225/459/10 1221/462/10 +f 1221/462/10 1224/461/10 1228/460/10 +f 1229/451/27 1230/452/27 1231/453/27 +f 1231/453/27 1232/454/27 1229/451/27 +f 1233/455/4 1234/456/4 1230/457/4 +f 1230/457/4 1229/458/4 1233/455/4 +f 1234/459/1 1235/460/1 1231/461/1 +f 1231/461/1 1230/462/1 1234/459/1 +f 1235/456/10 1236/455/10 1232/458/10 +f 1232/458/10 1231/457/10 1235/456/10 +f 1236/460/7 1233/459/7 1229/462/7 +f 1229/462/7 1232/461/7 1236/460/7 +f 1237/451/27 1238/452/27 1239/453/27 +f 1239/453/27 1240/454/27 1237/451/27 +f 1241/455/4 1242/456/4 1238/457/4 +f 1238/457/4 1237/458/4 1241/455/4 +f 1242/459/1 1243/460/1 1239/461/1 +f 1239/461/1 1238/462/1 1242/459/1 +f 1243/456/10 1244/455/10 1240/458/10 +f 1240/458/10 1239/457/10 1243/456/10 +f 1244/460/7 1241/459/7 1237/462/7 +f 1237/462/7 1240/461/7 1244/460/7 +f 1245/451/27 1246/452/27 1247/453/27 +f 1247/453/27 1248/454/27 1245/451/27 +f 1249/455/4 1250/456/4 1246/457/4 +f 1246/457/4 1245/458/4 1249/455/4 +f 1250/459/1 1251/460/1 1247/461/1 +f 1247/461/1 1246/462/1 1250/459/1 +f 1251/456/10 1252/455/10 1248/458/10 +f 1248/458/10 1247/457/10 1251/456/10 +f 1252/460/7 1249/459/7 1245/462/7 +f 1245/462/7 1248/461/7 1252/460/7 +f 1253/451/27 1254/452/27 1255/453/27 +f 1255/453/27 1256/454/27 1253/451/27 +f 1257/455/4 1258/456/4 1254/457/4 +f 1254/457/4 1253/458/4 1257/455/4 +f 1258/459/1 1259/460/1 1255/461/1 +f 1255/461/1 1254/462/1 1258/459/1 +f 1259/456/10 1260/455/10 1256/458/10 +f 1256/458/10 1255/457/10 1259/456/10 +f 1260/460/7 1257/459/7 1253/462/7 +f 1253/462/7 1256/461/7 1260/460/7 +f 1261/451/27 1262/452/27 1263/453/27 +f 1263/453/27 1264/454/27 1261/451/27 +f 1265/455/7 1266/456/7 1262/457/7 +f 1262/457/7 1261/458/7 1265/455/7 +f 1266/459/4 1267/460/4 1263/461/4 +f 1263/461/4 1262/462/4 1266/459/4 +f 1267/456/1 1268/455/1 1264/458/1 +f 1264/458/1 1263/457/1 1267/456/1 +f 1268/460/10 1265/459/10 1261/462/10 +f 1261/462/10 1264/461/10 1268/460/10 +f 1269/451/27 1270/452/27 1271/453/27 +f 1271/453/27 1272/454/27 1269/451/27 +f 1273/455/7 1274/456/7 1270/457/7 +f 1270/457/7 1269/458/7 1273/455/7 +f 1274/459/4 1275/460/4 1271/461/4 +f 1271/461/4 1270/462/4 1274/459/4 +f 1275/456/1 1276/455/1 1272/458/1 +f 1272/458/1 1271/457/1 1275/456/1 +f 1276/460/10 1273/459/10 1269/462/10 +f 1269/462/10 1272/461/10 1276/460/10 +f 1277/451/27 1278/452/27 1279/453/27 +f 1279/453/27 1280/454/27 1277/451/27 +f 1281/455/7 1282/456/7 1278/457/7 +f 1278/457/7 1277/458/7 1281/455/7 +f 1282/459/4 1283/460/4 1279/461/4 +f 1279/461/4 1278/462/4 1282/459/4 +f 1283/456/1 1284/455/1 1280/458/1 +f 1280/458/1 1279/457/1 1283/456/1 +f 1284/460/10 1281/459/10 1277/462/10 +f 1277/462/10 1280/461/10 1284/460/10 +f 1285/451/27 1286/452/27 1287/453/27 +f 1287/453/27 1288/454/27 1285/451/27 +f 1289/455/7 1290/456/7 1286/457/7 +f 1286/457/7 1285/458/7 1289/455/7 +f 1290/459/4 1291/460/4 1287/461/4 +f 1287/461/4 1286/462/4 1290/459/4 +f 1291/456/1 1292/455/1 1288/458/1 +f 1288/458/1 1287/457/1 1291/456/1 +f 1292/460/10 1289/459/10 1285/462/10 +f 1285/462/10 1288/461/10 1292/460/10 +f 1293/451/27 1294/452/27 1295/453/27 +f 1295/453/27 1296/454/27 1293/451/27 +f 1297/455/7 1298/456/7 1294/457/7 +f 1294/457/7 1293/458/7 1297/455/7 +f 1298/459/4 1299/460/4 1295/461/4 +f 1295/461/4 1294/462/4 1298/459/4 +f 1299/456/1 1300/455/1 1296/458/1 +f 1296/458/1 1295/457/1 1299/456/1 +f 1300/460/10 1297/459/10 1293/462/10 +f 1293/462/10 1296/461/10 1300/460/10 +f 1301/451/27 1302/452/27 1303/453/27 +f 1303/453/27 1304/454/27 1301/451/27 +f 1305/455/7 1306/456/7 1302/457/7 +f 1302/457/7 1301/458/7 1305/455/7 +f 1306/459/4 1307/460/4 1303/461/4 +f 1303/461/4 1302/462/4 1306/459/4 +f 1307/456/1 1308/455/1 1304/458/1 +f 1304/458/1 1303/457/1 1307/456/1 +f 1308/460/10 1305/459/10 1301/462/10 +f 1301/462/10 1304/461/10 1308/460/10 +f 1309/451/27 1310/452/27 1311/453/27 +f 1311/453/27 1312/454/27 1309/451/27 +f 1313/455/7 1314/456/7 1310/457/7 +f 1310/457/7 1309/458/7 1313/455/7 +f 1314/459/4 1315/460/4 1311/461/4 +f 1311/461/4 1310/462/4 1314/459/4 +f 1315/456/1 1316/455/1 1312/458/1 +f 1312/458/1 1311/457/1 1315/456/1 +f 1316/460/10 1313/459/10 1309/462/10 +f 1309/462/10 1312/461/10 1316/460/10 +f 1317/451/27 1318/452/27 1319/453/27 +f 1319/453/27 1320/454/27 1317/451/27 +f 1321/455/4 1322/456/4 1318/457/4 +f 1318/457/4 1317/458/4 1321/455/4 +f 1322/459/1 1323/460/1 1319/461/1 +f 1319/461/1 1318/462/1 1322/459/1 +f 1323/456/10 1324/455/10 1320/458/10 +f 1320/458/10 1319/457/10 1323/456/10 +f 1324/460/7 1321/459/7 1317/462/7 +f 1317/462/7 1320/461/7 1324/460/7 +f 1325/451/27 1326/452/27 1327/453/27 +f 1327/453/27 1328/454/27 1325/451/27 +f 1329/455/4 1330/456/4 1326/457/4 +f 1326/457/4 1325/458/4 1329/455/4 +f 1330/459/1 1331/460/1 1327/461/1 +f 1327/461/1 1326/462/1 1330/459/1 +f 1331/456/10 1332/455/10 1328/458/10 +f 1328/458/10 1327/457/10 1331/456/10 +f 1332/460/7 1329/459/7 1325/462/7 +f 1325/462/7 1328/461/7 1332/460/7 +f 1333/451/27 1334/452/27 1335/453/27 +f 1335/453/27 1336/454/27 1333/451/27 +f 1337/455/4 1338/456/4 1334/457/4 +f 1334/457/4 1333/458/4 1337/455/4 +f 1338/459/1 1339/460/1 1335/461/1 +f 1335/461/1 1334/462/1 1338/459/1 +f 1339/456/10 1340/455/10 1336/458/10 +f 1336/458/10 1335/457/10 1339/456/10 +f 1340/460/7 1337/459/7 1333/462/7 +f 1333/462/7 1336/461/7 1340/460/7 +f 1341/451/27 1342/452/27 1343/453/27 +f 1343/453/27 1344/454/27 1341/451/27 +f 1345/455/4 1346/456/4 1342/457/4 +f 1342/457/4 1341/458/4 1345/455/4 +f 1346/459/1 1347/460/1 1343/461/1 +f 1343/461/1 1342/462/1 1346/459/1 +f 1347/456/10 1348/455/10 1344/458/10 +f 1344/458/10 1343/457/10 1347/456/10 +f 1348/460/7 1345/459/7 1341/462/7 +f 1341/462/7 1344/461/7 1348/460/7 +f 1349/451/27 1350/452/27 1351/453/27 +f 1351/453/27 1352/454/27 1349/451/27 +f 1353/455/4 1354/456/4 1350/457/4 +f 1350/457/4 1349/458/4 1353/455/4 +f 1354/459/1 1355/460/1 1351/461/1 +f 1351/461/1 1350/462/1 1354/459/1 +f 1355/456/10 1356/455/10 1352/458/10 +f 1352/458/10 1351/457/10 1355/456/10 +f 1356/460/7 1353/459/7 1349/462/7 +f 1349/462/7 1352/461/7 1356/460/7 +f 1357/463/27 1358/464/27 1359/465/27 +f 1359/465/27 1360/466/27 1357/463/27 +f 1361/467/4 1362/468/4 1359/469/4 +f 1359/469/4 1358/470/4 1361/467/4 +f 1363/471/4 1364/472/4 1365/473/4 +f 1365/473/4 1366/474/4 1363/471/4 +f 1367/475/1 1368/476/1 1369/477/1 +f 1369/477/1 1370/478/1 1367/475/1 +f 1371/479/27 1372/480/288 1373/480/288 +f 1373/480/288 1374/479/27 1371/479/27 +f 1375/476/7 1376/475/7 1377/481/7 +f 1377/481/7 1378/482/7 1375/476/7 +f 1379/483/26 1380/484/289 1381/485/289 +f 1381/485/289 1382/483/26 1379/483/26 +f 1383/486/4 1384/487/4 1385/488/4 +f 1386/489/4 1387/490/4 1372/491/4 +f 1372/491/4 1371/492/4 1386/489/4 +f 1388/493/4 1389/494/4 1390/495/4 +f 1391/496/4 1392/497/4 1390/495/4 +f 1390/495/4 1389/494/4 1391/496/4 +f 1393/498/4 1394/499/4 1365/473/4 +f 1365/473/4 1364/472/4 1393/498/4 +f 1395/500/290 1371/479/27 1374/479/27 +f 1374/479/27 1396/500/290 1395/500/290 +f 1397/501/291 1379/483/26 1382/483/26 +f 1382/483/26 1398/501/291 1397/501/291 +f 1395/502/4 1399/503/4 1386/489/4 +f 1386/489/4 1371/492/4 1395/502/4 +f 1391/496/4 1383/486/4 1385/488/4 +f 1385/488/4 1392/497/4 1391/496/4 +f 1387/504/7 1363/504/7 1366/505/7 +f 1366/505/7 1400/505/7 1387/504/7 +f 1386/506/292 1364/506/292 1363/504/292 +f 1363/504/292 1387/504/292 1386/506/292 +f 1399/507/293 1393/507/293 1364/506/293 +f 1364/506/293 1386/506/293 1399/507/293 +f 1401/508/1 1394/508/1 1393/507/1 +f 1393/507/1 1399/507/1 1401/508/1 +f 1402/509/210 1365/510/210 1394/511/210 +f 1394/511/210 1401/512/210 1402/509/210 +f 1400/513/294 1366/514/294 1365/510/294 +f 1365/510/294 1402/509/294 1400/513/294 +f 1403/515/4 1401/516/4 1399/503/4 +f 1399/503/4 1395/502/4 1403/515/4 +f 1395/500/7 1396/500/7 1404/517/7 +f 1404/517/7 1403/517/7 1395/500/7 +f 1372/480/1 1405/518/1 1406/518/1 +f 1406/518/1 1373/480/1 1372/480/1 +f 1405/519/4 1372/491/4 1387/490/4 +f 1387/490/4 1400/474/4 1405/519/4 +f 1367/475/1 1407/481/1 1408/482/1 +f 1408/482/1 1368/476/1 1367/475/1 +f 1400/513/295 1385/513/295 1384/485/295 +f 1384/485/295 1405/520/295 1400/513/295 +f 1402/509/294 1392/509/294 1385/513/294 +f 1385/513/294 1400/513/294 1402/509/294 +f 1401/512/210 1390/512/210 1392/509/210 +f 1392/509/210 1402/509/210 1401/512/210 +f 1403/521/296 1388/521/296 1390/512/296 +f 1390/512/296 1401/512/296 1403/521/296 +f 1375/476/7 1409/477/7 1410/478/7 +f 1410/478/7 1376/475/7 1375/476/7 +f 1379/483/289 1391/522/289 1389/523/289 +f 1389/523/289 1380/484/289 1379/483/289 +f 1397/501/291 1383/524/291 1391/522/291 +f 1391/522/291 1379/483/291 1397/501/291 +f 1405/520/27 1367/525/27 1370/526/27 +f 1370/526/27 1406/527/27 1405/520/27 +f 1384/485/27 1407/528/27 1367/525/27 +f 1367/525/27 1405/520/27 1384/485/27 +f 1383/486/4 1408/486/4 1407/487/4 +f 1407/487/4 1384/487/4 1383/486/4 +f 1397/501/26 1368/501/26 1408/524/26 +f 1408/524/26 1383/524/26 1397/501/26 +f 1398/501/26 1369/501/26 1368/501/26 +f 1368/501/26 1397/501/26 1398/501/26 +f 1380/484/26 1375/484/26 1378/485/26 +f 1378/485/26 1381/485/26 1380/484/26 +f 1389/523/26 1409/523/26 1375/484/26 +f 1375/484/26 1380/484/26 1389/523/26 +f 1388/493/4 1410/529/4 1409/530/4 +f 1409/530/4 1389/494/4 1388/493/4 +f 1403/521/27 1376/531/27 1410/532/27 +f 1410/532/27 1388/521/27 1403/521/27 +f 1404/533/27 1377/531/27 1376/531/27 +f 1376/531/27 1403/521/27 1404/533/27 +f 1411/471/4 1412/472/4 1413/473/4 +f 1413/473/4 1414/474/4 1411/471/4 +f 1415/475/1 1416/476/1 1417/477/1 +f 1417/477/1 1418/478/1 1415/475/1 +f 1419/479/27 1420/480/288 1421/480/288 +f 1421/480/288 1422/479/27 1419/479/27 +f 1423/476/7 1424/475/7 1425/481/7 +f 1425/481/7 1426/482/7 1423/476/7 +f 1427/483/26 1428/484/289 1429/485/289 +f 1429/485/289 1430/483/26 1427/483/26 +f 1431/486/4 1432/487/4 1433/488/4 +f 1434/489/4 1435/490/4 1420/491/4 +f 1420/491/4 1419/492/4 1434/489/4 +f 1436/493/4 1437/494/4 1438/495/4 +f 1439/496/4 1440/497/4 1438/495/4 +f 1438/495/4 1437/494/4 1439/496/4 +f 1441/498/4 1442/499/4 1413/473/4 +f 1413/473/4 1412/472/4 1441/498/4 +f 1443/500/290 1419/479/27 1422/479/27 +f 1422/479/27 1444/500/290 1443/500/290 +f 1445/501/291 1427/483/26 1430/483/26 +f 1430/483/26 1446/501/291 1445/501/291 +f 1443/502/4 1447/503/4 1434/489/4 +f 1434/489/4 1419/492/4 1443/502/4 +f 1439/496/4 1431/486/4 1433/488/4 +f 1433/488/4 1440/497/4 1439/496/4 +f 1435/504/7 1411/504/7 1414/505/7 +f 1414/505/7 1448/505/7 1435/504/7 +f 1434/506/292 1412/506/292 1411/504/292 +f 1411/504/292 1435/504/292 1434/506/292 +f 1447/507/293 1441/507/293 1412/506/293 +f 1412/506/293 1434/506/293 1447/507/293 +f 1449/508/1 1442/508/1 1441/507/1 +f 1441/507/1 1447/507/1 1449/508/1 +f 1450/509/210 1413/510/210 1442/511/210 +f 1442/511/210 1449/512/210 1450/509/210 +f 1448/513/294 1414/514/294 1413/510/294 +f 1413/510/294 1450/509/294 1448/513/294 +f 1451/515/4 1449/516/4 1447/503/4 +f 1447/503/4 1443/502/4 1451/515/4 +f 1443/500/7 1444/500/7 1452/517/7 +f 1452/517/7 1451/517/7 1443/500/7 +f 1420/480/1 1453/518/1 1454/518/1 +f 1454/518/1 1421/480/1 1420/480/1 +f 1453/519/4 1420/491/4 1435/490/4 +f 1435/490/4 1448/474/4 1453/519/4 +f 1415/475/1 1455/481/1 1456/482/1 +f 1456/482/1 1416/476/1 1415/475/1 +f 1448/513/295 1433/513/295 1432/485/295 +f 1432/485/295 1453/520/295 1448/513/295 +f 1450/509/294 1440/509/294 1433/513/294 +f 1433/513/294 1448/513/294 1450/509/294 +f 1449/512/210 1438/512/210 1440/509/210 +f 1440/509/210 1450/509/210 1449/512/210 +f 1451/521/296 1436/521/296 1438/512/296 +f 1438/512/296 1449/512/296 1451/521/296 +f 1423/476/7 1457/477/7 1458/478/7 +f 1458/478/7 1424/475/7 1423/476/7 +f 1427/483/289 1439/522/289 1437/523/289 +f 1437/523/289 1428/484/289 1427/483/289 +f 1445/501/291 1431/524/291 1439/522/291 +f 1439/522/291 1427/483/291 1445/501/291 +f 1453/520/27 1415/525/27 1418/526/27 +f 1418/526/27 1454/527/27 1453/520/27 +f 1432/485/27 1455/528/27 1415/525/27 +f 1415/525/27 1453/520/27 1432/485/27 +f 1431/486/4 1456/486/4 1455/487/4 +f 1455/487/4 1432/487/4 1431/486/4 +f 1445/501/26 1416/501/26 1456/524/26 +f 1456/524/26 1431/524/26 1445/501/26 +f 1446/501/26 1417/501/26 1416/501/26 +f 1416/501/26 1445/501/26 1446/501/26 +f 1428/484/26 1423/484/26 1426/485/26 +f 1426/485/26 1429/485/26 1428/484/26 +f 1437/523/26 1457/523/26 1423/484/26 +f 1423/484/26 1428/484/26 1437/523/26 +f 1436/493/4 1458/529/4 1457/530/4 +f 1457/530/4 1437/494/4 1436/493/4 +f 1451/521/27 1424/531/27 1458/532/27 +f 1458/532/27 1436/521/27 1451/521/27 +f 1452/533/27 1425/531/27 1424/531/27 +f 1424/531/27 1451/521/27 1452/533/27 +f 1459/471/4 1460/472/4 1461/473/4 +f 1461/473/4 1462/474/4 1459/471/4 +f 1463/475/1 1464/476/1 1465/477/1 +f 1465/477/1 1466/478/1 1463/475/1 +f 1467/479/27 1468/480/288 1469/480/288 +f 1469/480/288 1470/479/27 1467/479/27 +f 1471/476/7 1472/475/7 1473/481/7 +f 1473/481/7 1474/482/7 1471/476/7 +f 1475/483/26 1476/484/289 1477/485/289 +f 1477/485/289 1478/483/26 1475/483/26 +f 1479/486/4 1480/487/4 1481/488/4 +f 1482/489/4 1483/490/4 1468/491/4 +f 1468/491/4 1467/492/4 1482/489/4 +f 1484/493/4 1485/494/4 1486/495/4 +f 1487/496/4 1488/497/4 1486/495/4 +f 1486/495/4 1485/494/4 1487/496/4 +f 1489/498/4 1490/499/4 1461/473/4 +f 1461/473/4 1460/472/4 1489/498/4 +f 1491/500/290 1467/479/27 1470/479/27 +f 1470/479/27 1492/500/290 1491/500/290 +f 1493/501/291 1475/483/26 1478/483/26 +f 1478/483/26 1494/501/291 1493/501/291 +f 1491/502/4 1495/503/4 1482/489/4 +f 1482/489/4 1467/492/4 1491/502/4 +f 1487/496/4 1479/486/4 1481/488/4 +f 1481/488/4 1488/497/4 1487/496/4 +f 1483/504/7 1459/504/7 1462/505/7 +f 1462/505/7 1496/505/7 1483/504/7 +f 1482/506/292 1460/506/292 1459/504/292 +f 1459/504/292 1483/504/292 1482/506/292 +f 1495/507/293 1489/507/293 1460/506/293 +f 1460/506/293 1482/506/293 1495/507/293 +f 1497/508/1 1490/508/1 1489/507/1 +f 1489/507/1 1495/507/1 1497/508/1 +f 1498/509/210 1461/510/210 1490/511/210 +f 1490/511/210 1497/512/210 1498/509/210 +f 1496/513/294 1462/514/294 1461/510/294 +f 1461/510/294 1498/509/294 1496/513/294 +f 1499/515/4 1497/516/4 1495/503/4 +f 1495/503/4 1491/502/4 1499/515/4 +f 1491/500/7 1492/500/7 1500/517/7 +f 1500/517/7 1499/517/7 1491/500/7 +f 1468/480/1 1501/518/1 1502/518/1 +f 1502/518/1 1469/480/1 1468/480/1 +f 1501/519/4 1468/491/4 1483/490/4 +f 1483/490/4 1496/474/4 1501/519/4 +f 1463/475/1 1503/481/1 1504/482/1 +f 1504/482/1 1464/476/1 1463/475/1 +f 1496/513/295 1481/513/295 1480/485/295 +f 1480/485/295 1501/520/295 1496/513/295 +f 1498/509/294 1488/509/294 1481/513/294 +f 1481/513/294 1496/513/294 1498/509/294 +f 1497/512/210 1486/512/210 1488/509/210 +f 1488/509/210 1498/509/210 1497/512/210 +f 1499/521/296 1484/521/296 1486/512/296 +f 1486/512/296 1497/512/296 1499/521/296 +f 1471/476/7 1505/477/7 1506/478/7 +f 1506/478/7 1472/475/7 1471/476/7 +f 1475/483/289 1487/522/289 1485/523/289 +f 1485/523/289 1476/484/289 1475/483/289 +f 1493/501/291 1479/524/291 1487/522/291 +f 1487/522/291 1475/483/291 1493/501/291 +f 1501/520/27 1463/525/27 1466/526/27 +f 1466/526/27 1502/527/27 1501/520/27 +f 1480/485/27 1503/528/27 1463/525/27 +f 1463/525/27 1501/520/27 1480/485/27 +f 1479/486/4 1504/486/4 1503/487/4 +f 1503/487/4 1480/487/4 1479/486/4 +f 1493/501/26 1464/501/26 1504/524/26 +f 1504/524/26 1479/524/26 1493/501/26 +f 1494/501/26 1465/501/26 1464/501/26 +f 1464/501/26 1493/501/26 1494/501/26 +f 1476/484/26 1471/484/26 1474/485/26 +f 1474/485/26 1477/485/26 1476/484/26 +f 1485/523/26 1505/523/26 1471/484/26 +f 1471/484/26 1476/484/26 1485/523/26 +f 1484/493/4 1506/529/4 1505/530/4 +f 1505/530/4 1485/494/4 1484/493/4 +f 1499/521/27 1472/531/27 1506/532/27 +f 1506/532/27 1484/521/27 1499/521/27 +f 1500/533/27 1473/531/27 1472/531/27 +f 1472/531/27 1499/521/27 1500/533/27 +f 1507/471/4 1508/472/4 1509/473/4 +f 1509/473/4 1510/474/4 1507/471/4 +f 1511/475/1 1512/476/1 1513/477/1 +f 1513/477/1 1514/478/1 1511/475/1 +f 1515/479/27 1516/480/288 1517/480/288 +f 1517/480/288 1518/479/27 1515/479/27 +f 1519/476/7 1520/475/7 1521/481/7 +f 1521/481/7 1522/482/7 1519/476/7 +f 1523/483/26 1524/484/289 1525/485/289 +f 1525/485/289 1526/483/26 1523/483/26 +f 1527/486/4 1528/487/4 1529/488/4 +f 1530/489/4 1531/490/4 1516/491/4 +f 1516/491/4 1515/492/4 1530/489/4 +f 1532/493/4 1533/494/4 1534/495/4 +f 1535/496/4 1536/497/4 1534/495/4 +f 1534/495/4 1533/494/4 1535/496/4 +f 1537/498/4 1538/499/4 1509/473/4 +f 1509/473/4 1508/472/4 1537/498/4 +f 1539/500/290 1515/479/27 1518/479/27 +f 1518/479/27 1540/500/290 1539/500/290 +f 1541/501/291 1523/483/26 1526/483/26 +f 1526/483/26 1542/501/291 1541/501/291 +f 1539/502/4 1543/503/4 1530/489/4 +f 1530/489/4 1515/492/4 1539/502/4 +f 1535/496/4 1527/486/4 1529/488/4 +f 1529/488/4 1536/497/4 1535/496/4 +f 1531/504/7 1507/504/7 1510/505/7 +f 1510/505/7 1544/505/7 1531/504/7 +f 1530/506/292 1508/506/292 1507/504/292 +f 1507/504/292 1531/504/292 1530/506/292 +f 1543/507/293 1537/507/293 1508/506/293 +f 1508/506/293 1530/506/293 1543/507/293 +f 1545/508/1 1538/508/1 1537/507/1 +f 1537/507/1 1543/507/1 1545/508/1 +f 1546/509/210 1509/510/210 1538/511/210 +f 1538/511/210 1545/512/210 1546/509/210 +f 1544/513/294 1510/514/294 1509/510/294 +f 1509/510/294 1546/509/294 1544/513/294 +f 1547/515/4 1545/516/4 1543/503/4 +f 1543/503/4 1539/502/4 1547/515/4 +f 1539/500/7 1540/500/7 1548/517/7 +f 1548/517/7 1547/517/7 1539/500/7 +f 1516/480/1 1549/518/1 1550/518/1 +f 1550/518/1 1517/480/1 1516/480/1 +f 1549/519/4 1516/491/4 1531/490/4 +f 1531/490/4 1544/474/4 1549/519/4 +f 1511/475/1 1551/481/1 1552/482/1 +f 1552/482/1 1512/476/1 1511/475/1 +f 1544/513/295 1529/513/295 1528/485/295 +f 1528/485/295 1549/520/295 1544/513/295 +f 1546/509/294 1536/509/294 1529/513/294 +f 1529/513/294 1544/513/294 1546/509/294 +f 1545/512/210 1534/512/210 1536/509/210 +f 1536/509/210 1546/509/210 1545/512/210 +f 1547/521/296 1532/521/296 1534/512/296 +f 1534/512/296 1545/512/296 1547/521/296 +f 1519/476/7 1553/477/7 1554/478/7 +f 1554/478/7 1520/475/7 1519/476/7 +f 1523/483/289 1535/522/289 1533/523/289 +f 1533/523/289 1524/484/289 1523/483/289 +f 1541/501/291 1527/524/291 1535/522/291 +f 1535/522/291 1523/483/291 1541/501/291 +f 1549/520/27 1511/525/27 1514/526/27 +f 1514/526/27 1550/527/27 1549/520/27 +f 1528/485/27 1551/528/27 1511/525/27 +f 1511/525/27 1549/520/27 1528/485/27 +f 1527/486/4 1552/486/4 1551/487/4 +f 1551/487/4 1528/487/4 1527/486/4 +f 1541/501/26 1512/501/26 1552/524/26 +f 1552/524/26 1527/524/26 1541/501/26 +f 1542/501/26 1513/501/26 1512/501/26 +f 1512/501/26 1541/501/26 1542/501/26 +f 1524/484/26 1519/484/26 1522/485/26 +f 1522/485/26 1525/485/26 1524/484/26 +f 1533/523/26 1553/523/26 1519/484/26 +f 1519/484/26 1524/484/26 1533/523/26 +f 1532/493/4 1554/529/4 1553/530/4 +f 1553/530/4 1533/494/4 1532/493/4 +f 1547/521/27 1520/531/27 1554/532/27 +f 1554/532/27 1532/521/27 1547/521/27 +f 1548/533/27 1521/531/27 1520/531/27 +f 1520/531/27 1547/521/27 1548/533/27 +f 1555/471/4 1556/472/4 1557/473/4 +f 1557/473/4 1558/474/4 1555/471/4 +f 1559/475/1 1560/476/1 1561/477/1 +f 1561/477/1 1562/478/1 1559/475/1 +f 1563/479/27 1564/480/288 1565/480/288 +f 1565/480/288 1566/479/27 1563/479/27 +f 1567/476/7 1568/475/7 1569/481/7 +f 1569/481/7 1570/482/7 1567/476/7 +f 1571/483/26 1572/484/289 1573/485/289 +f 1573/485/289 1574/483/26 1571/483/26 +f 1575/486/4 1576/487/4 1577/488/4 +f 1578/489/4 1579/490/4 1564/491/4 +f 1564/491/4 1563/492/4 1578/489/4 +f 1580/493/4 1581/494/4 1582/495/4 +f 1583/496/4 1584/497/4 1582/495/4 +f 1582/495/4 1581/494/4 1583/496/4 +f 1585/498/4 1586/499/4 1557/473/4 +f 1557/473/4 1556/472/4 1585/498/4 +f 1587/500/290 1563/479/27 1566/479/27 +f 1566/479/27 1588/500/290 1587/500/290 +f 1589/501/291 1571/483/26 1574/483/26 +f 1574/483/26 1590/501/291 1589/501/291 +f 1587/502/4 1591/503/4 1578/489/4 +f 1578/489/4 1563/492/4 1587/502/4 +f 1583/496/4 1575/486/4 1577/488/4 +f 1577/488/4 1584/497/4 1583/496/4 +f 1579/504/7 1555/504/7 1558/505/7 +f 1558/505/7 1592/505/7 1579/504/7 +f 1578/506/292 1556/506/292 1555/504/292 +f 1555/504/292 1579/504/292 1578/506/292 +f 1591/507/293 1585/507/293 1556/506/293 +f 1556/506/293 1578/506/293 1591/507/293 +f 1593/508/1 1586/508/1 1585/507/1 +f 1585/507/1 1591/507/1 1593/508/1 +f 1594/509/210 1557/510/210 1586/511/210 +f 1586/511/210 1593/512/210 1594/509/210 +f 1592/513/294 1558/514/294 1557/510/294 +f 1557/510/294 1594/509/294 1592/513/294 +f 1595/515/4 1593/516/4 1591/503/4 +f 1591/503/4 1587/502/4 1595/515/4 +f 1587/500/7 1588/500/7 1596/517/7 +f 1596/517/7 1595/517/7 1587/500/7 +f 1564/480/1 1597/518/1 1598/518/1 +f 1598/518/1 1565/480/1 1564/480/1 +f 1597/519/4 1564/491/4 1579/490/4 +f 1579/490/4 1592/474/4 1597/519/4 +f 1559/475/1 1599/481/1 1600/482/1 +f 1600/482/1 1560/476/1 1559/475/1 +f 1592/513/295 1577/513/295 1576/485/295 +f 1576/485/295 1597/520/295 1592/513/295 +f 1594/509/294 1584/509/294 1577/513/294 +f 1577/513/294 1592/513/294 1594/509/294 +f 1593/512/210 1582/512/210 1584/509/210 +f 1584/509/210 1594/509/210 1593/512/210 +f 1595/521/296 1580/521/296 1582/512/296 +f 1582/512/296 1593/512/296 1595/521/296 +f 1567/476/7 1601/477/7 1602/478/7 +f 1602/478/7 1568/475/7 1567/476/7 +f 1571/483/289 1583/522/289 1581/523/289 +f 1581/523/289 1572/484/289 1571/483/289 +f 1589/501/291 1575/524/291 1583/522/291 +f 1583/522/291 1571/483/291 1589/501/291 +f 1597/520/27 1559/525/27 1562/526/27 +f 1562/526/27 1598/527/27 1597/520/27 +f 1576/485/27 1599/528/27 1559/525/27 +f 1559/525/27 1597/520/27 1576/485/27 +f 1575/486/4 1600/486/4 1599/487/4 +f 1599/487/4 1576/487/4 1575/486/4 +f 1589/501/26 1560/501/26 1600/524/26 +f 1600/524/26 1575/524/26 1589/501/26 +f 1590/501/26 1561/501/26 1560/501/26 +f 1560/501/26 1589/501/26 1590/501/26 +f 1572/484/26 1567/484/26 1570/485/26 +f 1570/485/26 1573/485/26 1572/484/26 +f 1581/523/26 1601/523/26 1567/484/26 +f 1567/484/26 1572/484/26 1581/523/26 +f 1580/493/4 1602/529/4 1601/530/4 +f 1601/530/4 1581/494/4 1580/493/4 +f 1595/521/27 1568/531/27 1602/532/27 +f 1602/532/27 1580/521/27 1595/521/27 +f 1596/533/27 1569/531/27 1568/531/27 +f 1568/531/27 1595/521/27 1596/533/27 +f 1603/471/4 1604/472/4 1605/473/4 +f 1605/473/4 1606/474/4 1603/471/4 +f 1607/475/1 1608/476/1 1609/477/1 +f 1609/477/1 1610/478/1 1607/475/1 +f 1611/479/27 1612/480/288 1613/480/288 +f 1613/480/288 1614/479/27 1611/479/27 +f 1615/476/7 1616/475/7 1617/481/7 +f 1617/481/7 1618/482/7 1615/476/7 +f 1619/483/26 1620/484/289 1621/485/289 +f 1621/485/289 1622/483/26 1619/483/26 +f 1623/486/4 1624/487/4 1625/488/4 +f 1626/489/4 1627/490/4 1612/491/4 +f 1612/491/4 1611/492/4 1626/489/4 +f 1628/493/4 1629/494/4 1630/495/4 +f 1631/496/4 1632/497/4 1630/495/4 +f 1630/495/4 1629/494/4 1631/496/4 +f 1633/498/4 1634/499/4 1605/473/4 +f 1605/473/4 1604/472/4 1633/498/4 +f 1635/500/290 1611/479/27 1614/479/27 +f 1614/479/27 1636/500/290 1635/500/290 +f 1637/501/291 1619/483/26 1622/483/26 +f 1622/483/26 1638/501/291 1637/501/291 +f 1635/502/4 1639/503/4 1626/489/4 +f 1626/489/4 1611/492/4 1635/502/4 +f 1631/496/4 1623/486/4 1625/488/4 +f 1625/488/4 1632/497/4 1631/496/4 +f 1627/504/7 1603/504/7 1606/505/7 +f 1606/505/7 1640/505/7 1627/504/7 +f 1626/506/292 1604/506/292 1603/504/292 +f 1603/504/292 1627/504/292 1626/506/292 +f 1639/507/293 1633/507/293 1604/506/293 +f 1604/506/293 1626/506/293 1639/507/293 +f 1641/508/1 1634/508/1 1633/507/1 +f 1633/507/1 1639/507/1 1641/508/1 +f 1642/509/210 1605/510/210 1634/511/210 +f 1634/511/210 1641/512/210 1642/509/210 +f 1640/513/294 1606/514/294 1605/510/294 +f 1605/510/294 1642/509/294 1640/513/294 +f 1643/515/4 1641/516/4 1639/503/4 +f 1639/503/4 1635/502/4 1643/515/4 +f 1635/500/7 1636/500/7 1644/517/7 +f 1644/517/7 1643/517/7 1635/500/7 +f 1612/480/1 1645/518/1 1646/518/1 +f 1646/518/1 1613/480/1 1612/480/1 +f 1645/519/4 1612/491/4 1627/490/4 +f 1627/490/4 1640/474/4 1645/519/4 +f 1607/475/1 1647/481/1 1648/482/1 +f 1648/482/1 1608/476/1 1607/475/1 +f 1640/513/295 1625/513/295 1624/485/295 +f 1624/485/295 1645/520/295 1640/513/295 +f 1642/509/294 1632/509/294 1625/513/294 +f 1625/513/294 1640/513/294 1642/509/294 +f 1641/512/210 1630/512/210 1632/509/210 +f 1632/509/210 1642/509/210 1641/512/210 +f 1643/521/296 1628/521/296 1630/512/296 +f 1630/512/296 1641/512/296 1643/521/296 +f 1615/476/7 1649/477/7 1650/478/7 +f 1650/478/7 1616/475/7 1615/476/7 +f 1619/483/289 1631/522/289 1629/523/289 +f 1629/523/289 1620/484/289 1619/483/289 +f 1637/501/291 1623/524/291 1631/522/297 +f 1631/522/297 1619/483/297 1637/501/291 +f 1645/520/27 1607/525/27 1610/526/27 +f 1610/526/27 1646/527/27 1645/520/27 +f 1624/485/27 1647/528/27 1607/525/27 +f 1607/525/27 1645/520/27 1624/485/27 +f 1623/486/4 1648/486/4 1647/487/4 +f 1647/487/4 1624/487/4 1623/486/4 +f 1637/501/26 1608/501/26 1648/524/26 +f 1648/524/26 1623/524/26 1637/501/26 +f 1638/501/26 1609/501/26 1608/501/26 +f 1608/501/26 1637/501/26 1638/501/26 +f 1620/484/26 1615/484/26 1618/485/26 +f 1618/485/26 1621/485/26 1620/484/26 +f 1629/523/26 1649/523/26 1615/484/26 +f 1615/484/26 1620/484/26 1629/523/26 +f 1628/493/4 1650/529/4 1649/530/4 +f 1649/530/4 1629/494/4 1628/493/4 +f 1643/521/27 1616/531/27 1650/532/27 +f 1650/532/27 1628/521/27 1643/521/27 +f 1644/533/27 1617/531/27 1616/531/27 +f 1616/531/27 1643/521/27 1644/533/27 +f 1651/471/4 1652/472/4 1653/473/4 +f 1653/473/4 1654/474/4 1651/471/4 +f 1655/475/1 1656/476/1 1657/477/1 +f 1657/477/1 1658/478/1 1655/475/1 +f 1659/479/27 1660/480/288 1661/480/288 +f 1661/480/288 1662/479/27 1659/479/27 +f 1663/476/7 1664/475/7 1665/481/7 +f 1665/481/7 1666/482/7 1663/476/7 +f 1667/483/26 1668/484/289 1669/485/289 +f 1669/485/289 1670/483/26 1667/483/26 +f 1671/486/4 1672/487/4 1673/488/4 +f 1674/489/4 1675/490/4 1660/491/4 +f 1660/491/4 1659/492/4 1674/489/4 +f 1676/493/4 1677/494/4 1678/495/4 +f 1679/496/4 1680/497/4 1678/495/4 +f 1678/495/4 1677/494/4 1679/496/4 +f 1681/498/4 1682/499/4 1653/473/4 +f 1653/473/4 1652/472/4 1681/498/4 +f 1683/500/290 1659/479/27 1662/479/27 +f 1662/479/27 1684/500/290 1683/500/290 +f 1685/501/291 1667/483/26 1670/483/26 +f 1670/483/26 1686/501/291 1685/501/291 +f 1683/502/4 1687/503/4 1674/489/4 +f 1674/489/4 1659/492/4 1683/502/4 +f 1679/496/4 1671/486/4 1673/488/4 +f 1673/488/4 1680/497/4 1679/496/4 +f 1675/504/7 1651/504/7 1654/505/7 +f 1654/505/7 1688/505/7 1675/504/7 +f 1674/506/292 1652/506/292 1651/504/292 +f 1651/504/292 1675/504/292 1674/506/292 +f 1687/507/293 1681/507/293 1652/506/293 +f 1652/506/293 1674/506/293 1687/507/293 +f 1689/508/1 1682/508/1 1681/507/1 +f 1681/507/1 1687/507/1 1689/508/1 +f 1690/509/210 1653/510/210 1682/511/210 +f 1682/511/210 1689/512/210 1690/509/210 +f 1688/513/294 1654/514/294 1653/510/294 +f 1653/510/294 1690/509/294 1688/513/294 +f 1691/515/4 1689/516/4 1687/503/4 +f 1687/503/4 1683/502/4 1691/515/4 +f 1683/500/7 1684/500/7 1692/517/7 +f 1692/517/7 1691/517/7 1683/500/7 +f 1660/480/1 1693/518/1 1694/518/1 +f 1694/518/1 1661/480/1 1660/480/1 +f 1693/519/4 1660/491/4 1675/490/4 +f 1675/490/4 1688/474/4 1693/519/4 +f 1655/475/1 1695/481/1 1696/482/1 +f 1696/482/1 1656/476/1 1655/475/1 +f 1688/513/295 1673/513/295 1672/485/295 +f 1672/485/295 1693/520/295 1688/513/295 +f 1690/509/294 1680/509/294 1673/513/294 +f 1673/513/294 1688/513/294 1690/509/294 +f 1689/512/210 1678/512/210 1680/509/210 +f 1680/509/210 1690/509/210 1689/512/210 +f 1691/521/296 1676/521/296 1678/512/296 +f 1678/512/296 1689/512/296 1691/521/296 +f 1663/476/7 1697/477/7 1698/478/7 +f 1698/478/7 1664/475/7 1663/476/7 +f 1667/483/298 1679/522/298 1677/523/289 +f 1677/523/289 1668/484/289 1667/483/298 +f 1685/501/291 1671/524/291 1679/522/297 +f 1679/522/297 1667/483/297 1685/501/291 +f 1693/520/27 1655/525/27 1658/526/27 +f 1658/526/27 1694/527/27 1693/520/27 +f 1672/485/27 1695/528/27 1655/525/27 +f 1655/525/27 1693/520/27 1672/485/27 +f 1671/486/4 1696/486/4 1695/487/4 +f 1695/487/4 1672/487/4 1671/486/4 +f 1685/501/26 1656/501/26 1696/524/26 +f 1696/524/26 1671/524/26 1685/501/26 +f 1686/501/26 1657/501/26 1656/501/26 +f 1656/501/26 1685/501/26 1686/501/26 +f 1668/484/26 1663/484/26 1666/485/26 +f 1666/485/26 1669/485/26 1668/484/26 +f 1677/523/26 1697/523/26 1663/484/26 +f 1663/484/26 1668/484/26 1677/523/26 +f 1676/493/4 1698/529/4 1697/530/4 +f 1697/530/4 1677/494/4 1676/493/4 +f 1691/521/27 1664/531/27 1698/532/27 +f 1698/532/27 1676/521/27 1691/521/27 +f 1692/533/27 1665/531/27 1664/531/27 +f 1664/531/27 1691/521/27 1692/533/27 +f 1699/471/1 1700/472/1 1701/473/1 +f 1701/473/1 1702/474/1 1699/471/1 +f 1703/475/10 1704/476/10 1705/477/10 +f 1705/477/10 1706/478/10 1703/475/10 +f 1707/479/27 1708/480/299 1709/480/299 +f 1709/480/299 1710/479/27 1707/479/27 +f 1711/476/4 1712/475/4 1713/481/4 +f 1713/481/4 1714/482/4 1711/476/4 +f 1715/483/26 1716/484/300 1717/485/300 +f 1717/485/300 1718/483/26 1715/483/26 +f 1719/486/1 1720/487/1 1721/488/1 +f 1722/489/1 1723/490/1 1708/491/1 +f 1708/491/1 1707/492/1 1722/489/1 +f 1724/493/1 1725/494/1 1726/495/1 +f 1727/496/1 1728/497/1 1726/495/1 +f 1726/495/1 1725/494/1 1727/496/1 +f 1729/498/1 1730/499/1 1701/473/1 +f 1701/473/1 1700/472/1 1729/498/1 +f 1731/500/301 1707/479/27 1710/479/27 +f 1710/479/27 1732/500/301 1731/500/301 +f 1733/501/302 1715/483/26 1718/483/26 +f 1718/483/26 1734/501/302 1733/501/302 +f 1731/502/1 1735/503/1 1722/489/1 +f 1722/489/1 1707/492/1 1731/502/1 +f 1727/496/1 1719/486/1 1721/488/1 +f 1721/488/1 1728/497/1 1727/496/1 +f 1723/504/4 1699/504/4 1702/505/4 +f 1702/505/4 1736/505/4 1723/504/4 +f 1722/506/303 1700/506/303 1699/504/303 +f 1699/504/303 1723/504/303 1722/506/303 +f 1735/507/304 1729/507/304 1700/506/304 +f 1700/506/304 1722/506/304 1735/507/304 +f 1737/508/10 1730/508/10 1729/507/10 +f 1729/507/10 1735/507/10 1737/508/10 +f 1738/509/305 1701/510/305 1730/511/305 +f 1730/511/305 1737/512/305 1738/509/305 +f 1736/513/306 1702/514/306 1701/510/306 +f 1701/510/306 1738/509/306 1736/513/306 +f 1739/515/1 1737/516/1 1735/503/1 +f 1735/503/1 1731/502/1 1739/515/1 +f 1731/500/4 1732/500/4 1740/517/4 +f 1740/517/4 1739/517/4 1731/500/4 +f 1708/480/10 1741/518/10 1742/518/10 +f 1742/518/10 1709/480/10 1708/480/10 +f 1741/519/1 1708/491/1 1723/490/1 +f 1723/490/1 1736/474/1 1741/519/1 +f 1703/475/10 1743/481/10 1744/482/10 +f 1744/482/10 1704/476/10 1703/475/10 +f 1736/513/307 1721/513/307 1720/485/307 +f 1720/485/307 1741/520/307 1736/513/307 +f 1738/509/306 1728/509/306 1721/513/306 +f 1721/513/306 1736/513/306 1738/509/306 +f 1737/512/305 1726/512/305 1728/509/305 +f 1728/509/305 1738/509/305 1737/512/305 +f 1739/521/308 1724/521/308 1726/512/308 +f 1726/512/308 1737/512/308 1739/521/308 +f 1711/476/4 1745/477/4 1746/478/4 +f 1746/478/4 1712/475/4 1711/476/4 +f 1715/483/300 1727/522/300 1725/523/300 +f 1725/523/300 1716/484/300 1715/483/300 +f 1733/501/302 1719/524/302 1727/522/302 +f 1727/522/302 1715/483/302 1733/501/302 +f 1741/520/27 1703/525/27 1706/526/27 +f 1706/526/27 1742/527/27 1741/520/27 +f 1720/485/27 1743/528/27 1703/525/27 +f 1703/525/27 1741/520/27 1720/485/27 +f 1719/486/1 1744/486/1 1743/487/1 +f 1743/487/1 1720/487/1 1719/486/1 +f 1733/501/26 1704/501/26 1744/524/26 +f 1744/524/26 1719/524/26 1733/501/26 +f 1734/501/26 1705/501/26 1704/501/26 +f 1704/501/26 1733/501/26 1734/501/26 +f 1716/484/26 1711/484/26 1714/485/26 +f 1714/485/26 1717/485/26 1716/484/26 +f 1725/523/26 1745/523/26 1711/484/26 +f 1711/484/26 1716/484/26 1725/523/26 +f 1724/493/1 1746/529/1 1745/530/1 +f 1745/530/1 1725/494/1 1724/493/1 +f 1739/521/27 1712/531/27 1746/532/27 +f 1746/532/27 1724/521/27 1739/521/27 +f 1740/533/27 1713/531/27 1712/531/27 +f 1712/531/27 1739/521/27 1740/533/27 +f 1747/471/1 1748/474/1 1749/473/1 +f 1749/473/1 1750/472/1 1747/471/1 +f 1751/475/4 1752/478/4 1753/477/4 +f 1753/477/4 1754/476/4 1751/475/4 +f 1755/479/27 1756/479/27 1757/480/301 +f 1757/480/301 1758/480/301 1755/479/27 +f 1759/476/10 1760/482/10 1761/481/10 +f 1761/481/10 1762/475/10 1759/476/10 +f 1763/483/26 1764/483/26 1765/485/302 +f 1765/485/302 1766/484/302 1763/483/26 +f 1767/486/1 1768/488/1 1769/487/1 +f 1770/489/1 1755/492/1 1758/491/1 +f 1758/491/1 1771/490/1 1770/489/1 +f 1772/493/1 1773/495/1 1774/494/1 +f 1775/496/1 1774/494/1 1773/495/1 +f 1773/495/1 1776/497/1 1775/496/1 +f 1777/498/1 1750/472/1 1749/473/1 +f 1749/473/1 1778/499/1 1777/498/1 +f 1779/500/299 1780/500/299 1756/479/27 +f 1756/479/27 1755/479/27 1779/500/299 +f 1781/501/300 1782/501/300 1764/483/26 +f 1764/483/26 1763/483/26 1781/501/300 +f 1779/502/1 1755/492/1 1770/489/1 +f 1770/489/1 1783/503/1 1779/502/1 +f 1775/496/1 1776/497/1 1768/488/1 +f 1768/488/1 1767/486/1 1775/496/1 +f 1771/504/10 1784/505/10 1748/505/10 +f 1748/505/10 1747/504/10 1771/504/10 +f 1770/506/304 1771/504/304 1747/504/304 +f 1747/504/304 1750/506/304 1770/506/304 +f 1783/507/303 1770/506/303 1750/506/303 +f 1750/506/303 1777/507/303 1783/507/303 +f 1785/508/4 1783/507/4 1777/507/4 +f 1777/507/4 1778/508/4 1785/508/4 +f 1786/509/309 1785/512/309 1778/511/309 +f 1778/511/309 1749/510/309 1786/509/309 +f 1784/513/310 1786/509/310 1749/510/310 +f 1749/510/310 1748/514/310 1784/513/310 +f 1787/515/1 1779/502/1 1783/503/1 +f 1783/503/1 1785/516/1 1787/515/1 +f 1779/500/10 1787/517/10 1788/517/10 +f 1788/517/10 1780/500/10 1779/500/10 +f 1758/480/4 1757/480/4 1789/518/4 +f 1789/518/4 1790/518/4 1758/480/4 +f 1790/519/1 1784/474/1 1771/490/1 +f 1771/490/1 1758/491/1 1790/519/1 +f 1751/475/4 1754/476/4 1791/482/4 +f 1791/482/4 1792/481/4 1751/475/4 +f 1784/513/311 1790/520/311 1769/485/311 +f 1769/485/311 1768/513/311 1784/513/311 +f 1786/509/310 1784/513/310 1768/513/310 +f 1768/513/310 1776/509/310 1786/509/310 +f 1785/512/309 1786/509/309 1776/509/309 +f 1776/509/309 1773/512/309 1785/512/309 +f 1787/521/312 1785/512/312 1773/512/312 +f 1773/512/312 1772/521/312 1787/521/312 +f 1759/476/10 1762/475/10 1793/478/10 +f 1793/478/10 1794/477/10 1759/476/10 +f 1763/483/302 1766/484/302 1774/523/302 +f 1774/523/302 1775/522/302 1763/483/302 +f 1781/501/300 1763/483/300 1775/522/300 +f 1775/522/300 1767/524/300 1781/501/300 +f 1790/520/27 1789/527/27 1752/526/27 +f 1752/526/27 1751/525/27 1790/520/27 +f 1769/485/27 1790/520/27 1751/525/27 +f 1751/525/27 1792/528/27 1769/485/27 +f 1767/486/1 1769/487/1 1792/487/1 +f 1792/487/1 1791/486/1 1767/486/1 +f 1781/501/26 1767/524/26 1791/524/26 +f 1791/524/26 1754/501/26 1781/501/26 +f 1782/501/26 1781/501/26 1754/501/26 +f 1754/501/26 1753/501/26 1782/501/26 +f 1766/484/26 1765/485/26 1760/485/26 +f 1760/485/26 1759/484/26 1766/484/26 +f 1774/523/26 1766/484/26 1759/484/26 +f 1759/484/26 1794/523/26 1774/523/26 +f 1772/493/1 1774/494/1 1794/530/1 +f 1794/530/1 1793/529/1 1772/493/1 +f 1787/521/27 1772/521/27 1793/532/27 +f 1793/532/27 1762/531/27 1787/521/27 +f 1788/533/27 1787/521/27 1762/531/27 +f 1762/531/27 1761/531/27 1788/533/27 +f 1795/471/10 1796/474/10 1797/473/10 +f 1797/473/10 1798/472/10 1795/471/10 +f 1799/475/1 1800/478/1 1801/477/1 +f 1801/477/1 1802/476/1 1799/475/1 +f 1803/479/27 1804/479/27 1805/480/288 +f 1805/480/288 1806/480/288 1803/479/27 +f 1807/476/7 1808/482/7 1809/481/7 +f 1809/481/7 1810/475/7 1807/476/7 +f 1811/483/26 1812/483/26 1813/485/289 +f 1813/485/289 1814/484/289 1811/483/26 +f 1815/486/10 1816/488/10 1817/487/10 +f 1818/489/10 1803/492/10 1806/491/10 +f 1806/491/10 1819/490/10 1818/489/10 +f 1820/493/10 1821/495/10 1822/494/10 +f 1823/496/10 1822/494/10 1821/495/10 +f 1821/495/10 1824/497/10 1823/496/10 +f 1825/498/10 1798/472/10 1797/473/10 +f 1797/473/10 1826/499/10 1825/498/10 +f 1827/500/290 1828/500/290 1804/479/27 +f 1804/479/27 1803/479/27 1827/500/290 +f 1829/501/291 1830/501/291 1812/483/26 +f 1812/483/26 1811/483/26 1829/501/291 +f 1827/502/10 1803/492/10 1818/489/10 +f 1818/489/10 1831/503/10 1827/502/10 +f 1823/496/10 1824/497/10 1816/488/10 +f 1816/488/10 1815/486/10 1823/496/10 +f 1819/504/7 1832/505/7 1796/505/7 +f 1796/505/7 1795/504/7 1819/504/7 +f 1818/506/292 1819/504/292 1795/504/292 +f 1795/504/292 1798/506/292 1818/506/292 +f 1831/507/293 1818/506/293 1798/506/293 +f 1798/506/293 1825/507/293 1831/507/293 +f 1833/508/1 1831/507/1 1825/507/1 +f 1825/507/1 1826/508/1 1833/508/1 +f 1834/509/210 1833/512/210 1826/511/210 +f 1826/511/210 1797/510/210 1834/509/210 +f 1832/513/294 1834/509/294 1797/510/294 +f 1797/510/294 1796/514/294 1832/513/294 +f 1835/515/10 1827/502/10 1831/503/10 +f 1831/503/10 1833/516/10 1835/515/10 +f 1827/500/7 1835/517/7 1836/517/7 +f 1836/517/7 1828/500/7 1827/500/7 +f 1806/480/1 1805/480/1 1837/518/1 +f 1837/518/1 1838/518/1 1806/480/1 +f 1838/519/10 1832/474/10 1819/490/10 +f 1819/490/10 1806/491/10 1838/519/10 +f 1799/475/1 1802/476/1 1839/482/1 +f 1839/482/1 1840/481/1 1799/475/1 +f 1832/513/313 1838/520/295 1817/485/295 +f 1817/485/295 1816/513/313 1832/513/313 +f 1834/509/294 1832/513/294 1816/513/294 +f 1816/513/294 1824/509/294 1834/509/294 +f 1833/512/210 1834/509/210 1824/509/210 +f 1824/509/210 1821/512/210 1833/512/210 +f 1835/521/296 1833/512/296 1821/512/296 +f 1821/512/296 1820/521/296 1835/521/296 +f 1807/476/7 1810/475/7 1841/478/7 +f 1841/478/7 1842/477/7 1807/476/7 +f 1811/483/289 1814/484/289 1822/523/289 +f 1822/523/289 1823/522/289 1811/483/289 +f 1829/501/291 1811/483/291 1823/522/291 +f 1823/522/291 1815/524/291 1829/501/291 +f 1838/520/27 1837/527/27 1800/526/27 +f 1800/526/27 1799/525/27 1838/520/27 +f 1817/485/27 1838/520/27 1799/525/27 +f 1799/525/27 1840/528/27 1817/485/27 +f 1815/486/10 1817/487/10 1840/487/10 +f 1840/487/10 1839/486/10 1815/486/10 +f 1829/501/26 1815/524/26 1839/524/26 +f 1839/524/26 1802/501/26 1829/501/26 +f 1830/501/26 1829/501/26 1802/501/26 +f 1802/501/26 1801/501/26 1830/501/26 +f 1814/484/26 1813/485/26 1808/485/26 +f 1808/485/26 1807/484/26 1814/484/26 +f 1822/523/26 1814/484/26 1807/484/26 +f 1807/484/26 1842/523/26 1822/523/26 +f 1820/493/10 1822/494/10 1842/530/10 +f 1842/530/10 1841/529/10 1820/493/10 +f 1835/521/27 1820/521/27 1841/532/27 +f 1841/532/27 1810/531/27 1835/521/27 +f 1836/533/27 1835/521/27 1810/531/27 +f 1810/531/27 1809/531/27 1836/533/27 +f 1843/471/10 1844/474/10 1845/473/10 +f 1845/473/10 1846/472/10 1843/471/10 +f 1847/475/1 1848/478/1 1849/477/1 +f 1849/477/1 1850/476/1 1847/475/1 +f 1851/479/27 1852/479/27 1853/480/288 +f 1853/480/288 1854/480/288 1851/479/27 +f 1855/476/7 1856/482/7 1857/481/7 +f 1857/481/7 1858/475/7 1855/476/7 +f 1859/483/26 1860/483/26 1861/485/289 +f 1861/485/289 1862/484/289 1859/483/26 +f 1863/486/10 1864/488/10 1865/487/10 +f 1866/489/10 1851/492/10 1854/491/10 +f 1854/491/10 1867/490/10 1866/489/10 +f 1868/493/10 1869/495/10 1870/494/10 +f 1871/496/10 1870/494/10 1869/495/10 +f 1869/495/10 1872/497/10 1871/496/10 +f 1873/498/10 1846/472/10 1845/473/10 +f 1845/473/10 1874/499/10 1873/498/10 +f 1875/500/290 1876/500/290 1852/479/27 +f 1852/479/27 1851/479/27 1875/500/290 +f 1877/501/291 1878/501/291 1860/483/26 +f 1860/483/26 1859/483/26 1877/501/291 +f 1875/502/10 1851/492/10 1866/489/10 +f 1866/489/10 1879/503/10 1875/502/10 +f 1871/496/10 1872/497/10 1864/488/10 +f 1864/488/10 1863/486/10 1871/496/10 +f 1867/504/7 1880/505/7 1844/505/7 +f 1844/505/7 1843/504/7 1867/504/7 +f 1866/506/292 1867/504/292 1843/504/292 +f 1843/504/292 1846/506/292 1866/506/292 +f 1879/507/293 1866/506/293 1846/506/293 +f 1846/506/293 1873/507/293 1879/507/293 +f 1881/508/1 1879/507/1 1873/507/1 +f 1873/507/1 1874/508/1 1881/508/1 +f 1882/509/210 1881/512/210 1874/511/210 +f 1874/511/210 1845/510/210 1882/509/210 +f 1880/513/294 1882/509/294 1845/510/294 +f 1845/510/294 1844/514/294 1880/513/294 +f 1883/515/10 1875/502/10 1879/503/10 +f 1879/503/10 1881/516/10 1883/515/10 +f 1875/500/7 1883/517/7 1884/517/7 +f 1884/517/7 1876/500/7 1875/500/7 +f 1854/480/1 1853/480/1 1885/518/1 +f 1885/518/1 1886/518/1 1854/480/1 +f 1886/519/10 1880/474/10 1867/490/10 +f 1867/490/10 1854/491/10 1886/519/10 +f 1847/475/1 1850/476/1 1887/482/1 +f 1887/482/1 1888/481/1 1847/475/1 +f 1880/513/295 1886/520/295 1865/485/295 +f 1865/485/295 1864/513/295 1880/513/295 +f 1882/509/294 1880/513/294 1864/513/294 +f 1864/513/294 1872/509/294 1882/509/294 +f 1881/512/210 1882/509/210 1872/509/210 +f 1872/509/210 1869/512/210 1881/512/210 +f 1883/521/296 1881/512/296 1869/512/296 +f 1869/512/296 1868/521/296 1883/521/296 +f 1855/476/7 1858/475/7 1889/478/7 +f 1889/478/7 1890/477/7 1855/476/7 +f 1859/483/289 1862/484/289 1870/523/289 +f 1870/523/289 1871/522/289 1859/483/289 +f 1877/501/291 1859/483/291 1871/522/291 +f 1871/522/291 1863/524/291 1877/501/291 +f 1886/520/27 1885/527/27 1848/526/27 +f 1848/526/27 1847/525/27 1886/520/27 +f 1865/485/27 1886/520/27 1847/525/27 +f 1847/525/27 1888/528/27 1865/485/27 +f 1863/486/10 1865/487/10 1888/487/10 +f 1888/487/10 1887/486/10 1863/486/10 +f 1877/501/26 1863/524/26 1887/524/26 +f 1887/524/26 1850/501/26 1877/501/26 +f 1878/501/26 1877/501/26 1850/501/26 +f 1850/501/26 1849/501/26 1878/501/26 +f 1862/484/26 1861/485/26 1856/485/26 +f 1856/485/26 1855/484/26 1862/484/26 +f 1870/523/26 1862/484/26 1855/484/26 +f 1855/484/26 1890/523/26 1870/523/26 +f 1868/493/10 1870/494/10 1890/530/10 +f 1890/530/10 1889/529/10 1868/493/10 +f 1883/521/27 1868/521/27 1889/532/27 +f 1889/532/27 1858/531/27 1883/521/27 +f 1884/533/27 1883/521/27 1858/531/27 +f 1858/531/27 1857/531/27 1884/533/27 +f 1891/471/10 1892/474/10 1893/473/10 +f 1893/473/10 1894/472/10 1891/471/10 +f 1895/475/1 1896/478/1 1897/477/1 +f 1897/477/1 1898/476/1 1895/475/1 +f 1899/479/27 1900/479/27 1901/480/288 +f 1901/480/288 1902/480/288 1899/479/27 +f 1903/476/7 1904/482/7 1905/481/7 +f 1905/481/7 1906/475/7 1903/476/7 +f 1907/483/26 1908/483/26 1909/485/289 +f 1909/485/289 1910/484/289 1907/483/26 +f 1911/486/10 1912/488/10 1913/487/10 +f 1914/489/10 1899/492/10 1902/491/10 +f 1902/491/10 1915/490/10 1914/489/10 +f 1916/493/10 1917/495/10 1918/494/10 +f 1919/496/10 1918/494/10 1917/495/10 +f 1917/495/10 1920/497/10 1919/496/10 +f 1921/498/10 1894/472/10 1893/473/10 +f 1893/473/10 1922/499/10 1921/498/10 +f 1923/500/290 1924/500/290 1900/479/27 +f 1900/479/27 1899/479/27 1923/500/290 +f 1925/501/291 1926/501/291 1908/483/26 +f 1908/483/26 1907/483/26 1925/501/291 +f 1923/502/10 1899/492/10 1914/489/10 +f 1914/489/10 1927/503/10 1923/502/10 +f 1919/496/10 1920/497/10 1912/488/10 +f 1912/488/10 1911/486/10 1919/496/10 +f 1915/504/7 1928/505/7 1892/505/7 +f 1892/505/7 1891/504/7 1915/504/7 +f 1914/506/292 1915/504/292 1891/504/292 +f 1891/504/292 1894/506/292 1914/506/292 +f 1927/507/293 1914/506/293 1894/506/293 +f 1894/506/293 1921/507/293 1927/507/293 +f 1929/508/1 1927/507/1 1921/507/1 +f 1921/507/1 1922/508/1 1929/508/1 +f 1930/509/210 1929/512/210 1922/511/210 +f 1922/511/210 1893/510/210 1930/509/210 +f 1928/513/294 1930/509/294 1893/510/294 +f 1893/510/294 1892/514/294 1928/513/294 +f 1931/515/10 1923/502/10 1927/503/10 +f 1927/503/10 1929/516/10 1931/515/10 +f 1923/500/7 1931/517/7 1932/517/7 +f 1932/517/7 1924/500/7 1923/500/7 +f 1902/480/1 1901/480/1 1933/518/1 +f 1933/518/1 1934/518/1 1902/480/1 +f 1934/519/10 1928/474/10 1915/490/10 +f 1915/490/10 1902/491/10 1934/519/10 +f 1895/475/1 1898/476/1 1935/482/1 +f 1935/482/1 1936/481/1 1895/475/1 +f 1928/513/295 1934/520/295 1913/485/295 +f 1913/485/295 1912/513/295 1928/513/295 +f 1930/509/294 1928/513/294 1912/513/294 +f 1912/513/294 1920/509/294 1930/509/294 +f 1929/512/210 1930/509/210 1920/509/210 +f 1920/509/210 1917/512/210 1929/512/210 +f 1931/521/296 1929/512/296 1917/512/296 +f 1917/512/296 1916/521/296 1931/521/296 +f 1903/476/7 1906/475/7 1937/478/7 +f 1937/478/7 1938/477/7 1903/476/7 +f 1907/483/289 1910/484/289 1918/523/289 +f 1918/523/289 1919/522/289 1907/483/289 +f 1925/501/291 1907/483/291 1919/522/291 +f 1919/522/291 1911/524/291 1925/501/291 +f 1934/520/27 1933/527/27 1896/526/27 +f 1896/526/27 1895/525/27 1934/520/27 +f 1913/485/27 1934/520/27 1895/525/27 +f 1895/525/27 1936/528/27 1913/485/27 +f 1911/486/10 1913/487/10 1936/487/10 +f 1936/487/10 1935/486/10 1911/486/10 +f 1925/501/26 1911/524/26 1935/524/26 +f 1935/524/26 1898/501/26 1925/501/26 +f 1926/501/26 1925/501/26 1898/501/26 +f 1898/501/26 1897/501/26 1926/501/26 +f 1910/484/26 1909/485/26 1904/485/26 +f 1904/485/26 1903/484/26 1910/484/26 +f 1918/523/26 1910/484/26 1903/484/26 +f 1903/484/26 1938/523/26 1918/523/26 +f 1916/493/10 1918/494/10 1938/530/10 +f 1938/530/10 1937/529/10 1916/493/10 +f 1931/521/27 1916/521/27 1937/532/27 +f 1937/532/27 1906/531/27 1931/521/27 +f 1932/533/27 1931/521/27 1906/531/27 +f 1906/531/27 1905/531/27 1932/533/27 +f 1939/471/10 1940/474/10 1941/473/10 +f 1941/473/10 1942/472/10 1939/471/10 +f 1943/475/1 1944/478/1 1945/477/1 +f 1945/477/1 1946/476/1 1943/475/1 +f 1947/479/27 1948/479/27 1949/480/288 +f 1949/480/288 1950/480/288 1947/479/27 +f 1951/476/7 1952/482/7 1953/481/7 +f 1953/481/7 1954/475/7 1951/476/7 +f 1955/483/26 1956/483/26 1957/485/289 +f 1957/485/289 1958/484/289 1955/483/26 +f 1959/486/10 1960/488/10 1961/487/10 +f 1962/489/10 1947/492/10 1950/491/10 +f 1950/491/10 1963/490/10 1962/489/10 +f 1964/493/10 1965/495/10 1966/494/10 +f 1967/496/10 1966/494/10 1965/495/10 +f 1965/495/10 1968/497/10 1967/496/10 +f 1969/498/10 1942/472/10 1941/473/10 +f 1941/473/10 1970/499/10 1969/498/10 +f 1971/500/290 1972/500/290 1948/479/27 +f 1948/479/27 1947/479/27 1971/500/290 +f 1973/501/291 1974/501/291 1956/483/26 +f 1956/483/26 1955/483/26 1973/501/291 +f 1971/502/10 1947/492/10 1962/489/10 +f 1962/489/10 1975/503/10 1971/502/10 +f 1967/496/10 1968/497/10 1960/488/10 +f 1960/488/10 1959/486/10 1967/496/10 +f 1963/504/7 1976/505/7 1940/505/7 +f 1940/505/7 1939/504/7 1963/504/7 +f 1962/506/292 1963/504/292 1939/504/292 +f 1939/504/292 1942/506/292 1962/506/292 +f 1975/507/293 1962/506/293 1942/506/293 +f 1942/506/293 1969/507/293 1975/507/293 +f 1977/508/1 1975/507/1 1969/507/1 +f 1969/507/1 1970/508/1 1977/508/1 +f 1978/509/210 1977/512/210 1970/511/210 +f 1970/511/210 1941/510/210 1978/509/210 +f 1976/513/294 1978/509/294 1941/510/294 +f 1941/510/294 1940/514/294 1976/513/294 +f 1979/515/10 1971/502/10 1975/503/10 +f 1975/503/10 1977/516/10 1979/515/10 +f 1971/500/7 1979/517/7 1980/517/7 +f 1980/517/7 1972/500/7 1971/500/7 +f 1950/480/1 1949/480/1 1981/518/1 +f 1981/518/1 1982/518/1 1950/480/1 +f 1982/519/10 1976/474/10 1963/490/10 +f 1963/490/10 1950/491/10 1982/519/10 +f 1943/475/1 1946/476/1 1983/482/1 +f 1983/482/1 1984/481/1 1943/475/1 +f 1976/513/295 1982/520/295 1961/485/295 +f 1961/485/295 1960/513/295 1976/513/295 +f 1978/509/294 1976/513/294 1960/513/294 +f 1960/513/294 1968/509/294 1978/509/294 +f 1977/512/210 1978/509/210 1968/509/210 +f 1968/509/210 1965/512/210 1977/512/210 +f 1979/521/296 1977/512/296 1965/512/296 +f 1965/512/296 1964/521/296 1979/521/296 +f 1951/476/7 1954/475/7 1985/478/7 +f 1985/478/7 1986/477/7 1951/476/7 +f 1955/483/289 1958/484/289 1966/523/289 +f 1966/523/289 1967/522/289 1955/483/289 +f 1973/501/291 1955/483/291 1967/522/291 +f 1967/522/291 1959/524/291 1973/501/291 +f 1982/520/27 1981/527/27 1944/526/27 +f 1944/526/27 1943/525/27 1982/520/27 +f 1961/485/27 1982/520/27 1943/525/27 +f 1943/525/27 1984/528/27 1961/485/27 +f 1959/486/10 1961/487/10 1984/487/10 +f 1984/487/10 1983/486/10 1959/486/10 +f 1973/501/26 1959/524/26 1983/524/26 +f 1983/524/26 1946/501/26 1973/501/26 +f 1974/501/26 1973/501/26 1946/501/26 +f 1946/501/26 1945/501/26 1974/501/26 +f 1958/484/26 1957/485/26 1952/485/26 +f 1952/485/26 1951/484/26 1958/484/26 +f 1966/523/26 1958/484/26 1951/484/26 +f 1951/484/26 1986/523/26 1966/523/26 +f 1964/493/10 1966/494/10 1986/530/10 +f 1986/530/10 1985/529/10 1964/493/10 +f 1979/521/27 1964/521/27 1985/532/27 +f 1985/532/27 1954/531/27 1979/521/27 +f 1980/533/27 1979/521/27 1954/531/27 +f 1954/531/27 1953/531/27 1980/533/27 +f 1987/471/10 1988/472/10 1989/473/10 +f 1989/473/10 1990/474/10 1987/471/10 +f 1991/475/7 1992/476/7 1993/477/7 +f 1993/477/7 1994/478/7 1991/475/7 +f 1995/479/27 1996/480/290 1997/480/290 +f 1997/480/290 1998/479/27 1995/479/27 +f 1999/476/1 2000/475/1 2001/481/1 +f 2001/481/1 2002/482/1 1999/476/1 +f 2003/483/26 2004/484/291 2005/485/291 +f 2005/485/291 2006/483/26 2003/483/26 +f 2007/486/10 2008/487/10 2009/488/10 +f 2010/489/10 2011/490/10 1996/491/10 +f 1996/491/10 1995/492/10 2010/489/10 +f 2012/493/10 2013/494/10 2014/495/10 +f 2015/496/10 2016/497/10 2014/495/10 +f 2014/495/10 2013/494/10 2015/496/10 +f 2017/498/10 2018/499/10 1989/473/10 +f 1989/473/10 1988/472/10 2017/498/10 +f 2019/500/288 1995/479/27 1998/479/27 +f 1998/479/27 2020/500/288 2019/500/288 +f 2021/501/289 2003/483/26 2006/483/26 +f 2006/483/26 2022/501/289 2021/501/289 +f 2019/502/10 2023/503/10 2010/489/10 +f 2010/489/10 1995/492/10 2019/502/10 +f 2015/496/10 2007/486/10 2009/488/10 +f 2009/488/10 2016/497/10 2015/496/10 +f 2011/504/1 1987/504/1 1990/505/1 +f 1990/505/1 2024/505/1 2011/504/1 +f 2010/506/293 1988/506/293 1987/504/293 +f 1987/504/293 2011/504/293 2010/506/293 +f 2023/507/292 2017/507/292 1988/506/292 +f 1988/506/292 2010/506/292 2023/507/292 +f 2025/508/7 2018/508/7 2017/507/7 +f 2017/507/7 2023/507/7 2025/508/7 +f 2026/509/203 1989/510/203 2018/511/203 +f 2018/511/203 2025/512/203 2026/509/203 +f 2024/513/296 1990/514/296 1989/510/296 +f 1989/510/296 2026/509/296 2024/513/296 +f 2027/515/10 2025/516/10 2023/503/10 +f 2023/503/10 2019/502/10 2027/515/10 +f 2019/500/1 2020/500/1 2028/517/1 +f 2028/517/1 2027/517/1 2019/500/1 +f 1996/480/7 2029/518/7 2030/518/7 +f 2030/518/7 1997/480/7 1996/480/7 +f 2029/519/10 1996/491/10 2011/490/10 +f 2011/490/10 2024/474/10 2029/519/10 +f 1991/475/7 2031/481/7 2032/482/7 +f 2032/482/7 1992/476/7 1991/475/7 +f 2024/513/314 2009/513/314 2008/485/314 +f 2008/485/314 2029/520/314 2024/513/314 +f 2026/509/296 2016/509/296 2009/513/296 +f 2009/513/296 2024/513/296 2026/509/296 +f 2025/512/203 2014/512/203 2016/509/203 +f 2016/509/203 2026/509/203 2025/512/203 +f 2027/521/294 2012/521/294 2014/512/294 +f 2014/512/294 2025/512/294 2027/521/294 +f 1999/476/1 2033/477/1 2034/478/1 +f 2034/478/1 2000/475/1 1999/476/1 +f 2003/483/291 2015/522/291 2013/523/291 +f 2013/523/291 2004/484/291 2003/483/291 +f 2021/501/289 2007/524/289 2015/522/289 +f 2015/522/289 2003/483/289 2021/501/289 +f 2029/520/27 1991/525/27 1994/526/27 +f 1994/526/27 2030/527/27 2029/520/27 +f 2008/485/27 2031/528/27 1991/525/27 +f 1991/525/27 2029/520/27 2008/485/27 +f 2007/486/10 2032/486/10 2031/487/10 +f 2031/487/10 2008/487/10 2007/486/10 +f 2021/501/26 1992/501/26 2032/524/26 +f 2032/524/26 2007/524/26 2021/501/26 +f 2022/501/26 1993/501/26 1992/501/26 +f 1992/501/26 2021/501/26 2022/501/26 +f 2004/484/26 1999/484/26 2002/485/26 +f 2002/485/26 2005/485/26 2004/484/26 +f 2013/523/26 2033/523/26 1999/484/26 +f 1999/484/26 2004/484/26 2013/523/26 +f 2012/493/10 2034/529/10 2033/530/10 +f 2033/530/10 2013/494/10 2012/493/10 +f 2027/521/27 2000/531/27 2034/532/27 +f 2034/532/27 2012/521/27 2027/521/27 +f 2028/533/27 2001/531/27 2000/531/27 +f 2000/531/27 2027/521/27 2028/533/27 +f 2035/471/10 2036/472/10 2037/473/10 +f 2037/473/10 2038/474/10 2035/471/10 +f 2039/475/7 2040/476/7 2041/477/7 +f 2041/477/7 2042/478/7 2039/475/7 +f 2043/479/27 2044/480/290 2045/480/290 +f 2045/480/290 2046/479/27 2043/479/27 +f 2047/476/1 2048/475/1 2049/481/1 +f 2049/481/1 2050/482/1 2047/476/1 +f 2051/483/26 2052/484/291 2053/485/291 +f 2053/485/291 2054/483/26 2051/483/26 +f 2055/486/10 2056/487/10 2057/488/10 +f 2058/489/10 2059/490/10 2044/491/10 +f 2044/491/10 2043/492/10 2058/489/10 +f 2060/493/10 2061/494/10 2062/495/10 +f 2063/496/10 2064/497/10 2062/495/10 +f 2062/495/10 2061/494/10 2063/496/10 +f 2065/498/10 2066/499/10 2037/473/10 +f 2037/473/10 2036/472/10 2065/498/10 +f 2067/500/288 2043/479/27 2046/479/27 +f 2046/479/27 2068/500/288 2067/500/288 +f 2069/501/289 2051/483/26 2054/483/26 +f 2054/483/26 2070/501/289 2069/501/289 +f 2067/502/10 2071/503/10 2058/489/10 +f 2058/489/10 2043/492/10 2067/502/10 +f 2063/496/10 2055/486/10 2057/488/10 +f 2057/488/10 2064/497/10 2063/496/10 +f 2059/504/1 2035/504/1 2038/505/1 +f 2038/505/1 2072/505/1 2059/504/1 +f 2058/506/293 2036/506/293 2035/504/293 +f 2035/504/293 2059/504/293 2058/506/293 +f 2071/507/292 2065/507/292 2036/506/292 +f 2036/506/292 2058/506/292 2071/507/292 +f 2073/508/7 2066/508/7 2065/507/7 +f 2065/507/7 2071/507/7 2073/508/7 +f 2074/509/203 2037/510/203 2066/511/203 +f 2066/511/203 2073/512/203 2074/509/203 +f 2072/513/296 2038/514/296 2037/510/296 +f 2037/510/296 2074/509/296 2072/513/296 +f 2075/515/10 2073/516/10 2071/503/10 +f 2071/503/10 2067/502/10 2075/515/10 +f 2067/500/1 2068/500/1 2076/517/1 +f 2076/517/1 2075/517/1 2067/500/1 +f 2044/480/7 2077/518/7 2078/518/7 +f 2078/518/7 2045/480/7 2044/480/7 +f 2077/519/10 2044/491/10 2059/490/10 +f 2059/490/10 2072/474/10 2077/519/10 +f 2039/475/7 2079/481/7 2080/482/7 +f 2080/482/7 2040/476/7 2039/475/7 +f 2072/513/314 2057/513/314 2056/485/314 +f 2056/485/314 2077/520/314 2072/513/314 +f 2074/509/296 2064/509/296 2057/513/296 +f 2057/513/296 2072/513/296 2074/509/296 +f 2073/512/203 2062/512/203 2064/509/203 +f 2064/509/203 2074/509/203 2073/512/203 +f 2075/521/294 2060/521/294 2062/512/294 +f 2062/512/294 2073/512/294 2075/521/294 +f 2047/476/1 2081/477/1 2082/478/1 +f 2082/478/1 2048/475/1 2047/476/1 +f 2051/483/291 2063/522/291 2061/523/291 +f 2061/523/291 2052/484/291 2051/483/291 +f 2069/501/289 2055/524/289 2063/522/298 +f 2063/522/298 2051/483/298 2069/501/289 +f 2077/520/27 2039/525/27 2042/526/27 +f 2042/526/27 2078/527/27 2077/520/27 +f 2056/485/27 2079/528/27 2039/525/27 +f 2039/525/27 2077/520/27 2056/485/27 +f 2055/486/10 2080/486/10 2079/487/10 +f 2079/487/10 2056/487/10 2055/486/10 +f 2069/501/26 2040/501/26 2080/524/26 +f 2080/524/26 2055/524/26 2069/501/26 +f 2070/501/26 2041/501/26 2040/501/26 +f 2040/501/26 2069/501/26 2070/501/26 +f 2052/484/26 2047/484/26 2050/485/26 +f 2050/485/26 2053/485/26 2052/484/26 +f 2061/523/26 2081/523/26 2047/484/26 +f 2047/484/26 2052/484/26 2061/523/26 +f 2060/493/10 2082/529/10 2081/530/10 +f 2081/530/10 2061/494/10 2060/493/10 +f 2075/521/27 2048/531/27 2082/532/27 +f 2082/532/27 2060/521/27 2075/521/27 +f 2076/533/27 2049/531/27 2048/531/27 +f 2048/531/27 2075/521/27 2076/533/27 +f 2083/471/7 2084/472/7 2085/473/7 +f 2085/473/7 2086/474/7 2083/471/7 +f 2087/475/4 2088/476/4 2089/477/4 +f 2089/477/4 2090/478/4 2087/475/4 +f 2091/479/27 2092/480/301 2093/480/301 +f 2093/480/301 2094/479/27 2091/479/27 +f 2095/476/10 2096/475/10 2097/481/10 +f 2097/481/10 2098/482/10 2095/476/10 +f 2099/483/26 2100/484/302 2101/485/302 +f 2101/485/302 2102/483/26 2099/483/26 +f 2103/486/7 2104/487/7 2105/488/7 +f 2106/489/7 2107/490/7 2092/491/7 +f 2092/491/7 2091/492/7 2106/489/7 +f 2108/493/7 2109/494/7 2110/495/7 +f 2111/496/7 2112/497/7 2110/495/7 +f 2110/495/7 2109/494/7 2111/496/7 +f 2113/498/7 2114/499/7 2085/473/7 +f 2085/473/7 2084/472/7 2113/498/7 +f 2115/500/299 2091/479/27 2094/479/27 +f 2094/479/27 2116/500/299 2115/500/299 +f 2117/501/300 2099/483/26 2102/483/26 +f 2102/483/26 2118/501/300 2117/501/300 +f 2115/502/7 2119/503/7 2106/489/7 +f 2106/489/7 2091/492/7 2115/502/7 +f 2111/496/7 2103/486/7 2105/488/7 +f 2105/488/7 2112/497/7 2111/496/7 +f 2107/504/10 2083/504/10 2086/505/10 +f 2086/505/10 2120/505/10 2107/504/10 +f 2106/506/304 2084/506/304 2083/504/304 +f 2083/504/304 2107/504/304 2106/506/304 +f 2119/507/303 2113/507/303 2084/506/303 +f 2084/506/303 2106/506/303 2119/507/303 +f 2121/508/4 2114/508/4 2113/507/4 +f 2113/507/4 2119/507/4 2121/508/4 +f 2122/509/309 2085/510/309 2114/511/309 +f 2114/511/309 2121/512/309 2122/509/309 +f 2120/513/310 2086/514/310 2085/510/310 +f 2085/510/310 2122/509/310 2120/513/310 +f 2123/515/7 2121/516/7 2119/503/7 +f 2119/503/7 2115/502/7 2123/515/7 +f 2115/500/10 2116/500/10 2124/517/10 +f 2124/517/10 2123/517/10 2115/500/10 +f 2092/480/4 2125/518/4 2126/518/4 +f 2126/518/4 2093/480/4 2092/480/4 +f 2125/519/7 2092/491/7 2107/490/7 +f 2107/490/7 2120/474/7 2125/519/7 +f 2087/475/4 2127/481/4 2128/482/4 +f 2128/482/4 2088/476/4 2087/475/4 +f 2120/513/311 2105/513/311 2104/485/311 +f 2104/485/311 2125/520/311 2120/513/311 +f 2122/509/310 2112/509/310 2105/513/310 +f 2105/513/310 2120/513/310 2122/509/310 +f 2121/512/309 2110/512/309 2112/509/309 +f 2112/509/309 2122/509/309 2121/512/309 +f 2123/521/312 2108/521/312 2110/512/312 +f 2110/512/312 2121/512/312 2123/521/312 +f 2095/476/10 2129/477/10 2130/478/10 +f 2130/478/10 2096/475/10 2095/476/10 +f 2099/483/302 2111/522/302 2109/523/302 +f 2109/523/302 2100/484/302 2099/483/302 +f 2117/501/300 2103/524/300 2111/522/300 +f 2111/522/300 2099/483/300 2117/501/300 +f 2125/520/27 2087/525/27 2090/526/27 +f 2090/526/27 2126/527/27 2125/520/27 +f 2104/485/27 2127/528/27 2087/525/27 +f 2087/525/27 2125/520/27 2104/485/27 +f 2103/486/7 2128/486/7 2127/487/7 +f 2127/487/7 2104/487/7 2103/486/7 +f 2117/501/26 2088/501/26 2128/524/26 +f 2128/524/26 2103/524/26 2117/501/26 +f 2118/501/26 2089/501/26 2088/501/26 +f 2088/501/26 2117/501/26 2118/501/26 +f 2100/484/26 2095/484/26 2098/485/26 +f 2098/485/26 2101/485/26 2100/484/26 +f 2109/523/26 2129/523/26 2095/484/26 +f 2095/484/26 2100/484/26 2109/523/26 +f 2108/493/7 2130/529/7 2129/530/7 +f 2129/530/7 2109/494/7 2108/493/7 +f 2123/521/27 2096/531/27 2130/532/27 +f 2130/532/27 2108/521/27 2123/521/27 +f 2124/533/27 2097/531/27 2096/531/27 +f 2096/531/27 2123/521/27 2124/533/27 +f 2131/471/7 2132/472/7 2133/473/7 +f 2133/473/7 2134/474/7 2131/471/7 +f 2135/475/4 2136/476/4 2137/477/4 +f 2137/477/4 2138/478/4 2135/475/4 +f 2139/479/27 2140/480/301 2141/480/301 +f 2141/480/301 2142/479/27 2139/479/27 +f 2143/476/10 2144/475/10 2145/481/10 +f 2145/481/10 2146/482/10 2143/476/10 +f 2147/483/26 2148/484/302 2149/485/302 +f 2149/485/302 2150/483/26 2147/483/26 +f 2151/486/7 2152/487/7 2153/488/7 +f 2154/489/7 2155/490/7 2140/491/7 +f 2140/491/7 2139/492/7 2154/489/7 +f 2156/493/7 2157/494/7 2158/495/7 +f 2159/496/7 2160/497/7 2158/495/7 +f 2158/495/7 2157/494/7 2159/496/7 +f 2161/498/7 2162/499/7 2133/473/7 +f 2133/473/7 2132/472/7 2161/498/7 +f 2163/500/299 2139/479/27 2142/479/27 +f 2142/479/27 2164/500/299 2163/500/299 +f 2165/501/300 2147/483/26 2150/483/26 +f 2150/483/26 2166/501/300 2165/501/300 +f 2163/502/7 2167/503/7 2154/489/7 +f 2154/489/7 2139/492/7 2163/502/7 +f 2159/496/7 2151/486/7 2153/488/7 +f 2153/488/7 2160/497/7 2159/496/7 +f 2155/504/10 2131/504/10 2134/505/10 +f 2134/505/10 2168/505/10 2155/504/10 +f 2154/506/304 2132/506/304 2131/504/304 +f 2131/504/304 2155/504/304 2154/506/304 +f 2167/507/303 2161/507/303 2132/506/303 +f 2132/506/303 2154/506/303 2167/507/303 +f 2169/508/4 2162/508/4 2161/507/4 +f 2161/507/4 2167/507/4 2169/508/4 +f 2170/509/309 2133/510/309 2162/511/309 +f 2162/511/309 2169/512/309 2170/509/309 +f 2168/513/310 2134/514/310 2133/510/310 +f 2133/510/310 2170/509/310 2168/513/310 +f 2171/515/7 2169/516/7 2167/503/7 +f 2167/503/7 2163/502/7 2171/515/7 +f 2163/500/10 2164/500/10 2172/517/10 +f 2172/517/10 2171/517/10 2163/500/10 +f 2140/480/4 2173/518/4 2174/518/4 +f 2174/518/4 2141/480/4 2140/480/4 +f 2173/519/7 2140/491/7 2155/490/7 +f 2155/490/7 2168/474/7 2173/519/7 +f 2135/475/4 2175/481/4 2176/482/4 +f 2176/482/4 2136/476/4 2135/475/4 +f 2168/513/311 2153/513/311 2152/485/311 +f 2152/485/311 2173/520/311 2168/513/311 +f 2170/509/310 2160/509/310 2153/513/310 +f 2153/513/310 2168/513/310 2170/509/310 +f 2169/512/309 2158/512/309 2160/509/309 +f 2160/509/309 2170/509/309 2169/512/309 +f 2171/521/312 2156/521/312 2158/512/312 +f 2158/512/312 2169/512/312 2171/521/312 +f 2143/476/10 2177/477/10 2178/478/10 +f 2178/478/10 2144/475/10 2143/476/10 +f 2147/483/302 2159/522/302 2157/523/302 +f 2157/523/302 2148/484/302 2147/483/302 +f 2165/501/300 2151/524/300 2159/522/300 +f 2159/522/300 2147/483/300 2165/501/300 +f 2173/520/27 2135/525/27 2138/526/27 +f 2138/526/27 2174/527/27 2173/520/27 +f 2152/485/27 2175/528/27 2135/525/27 +f 2135/525/27 2173/520/27 2152/485/27 +f 2151/486/7 2176/486/7 2175/487/7 +f 2175/487/7 2152/487/7 2151/486/7 +f 2165/501/26 2136/501/26 2176/524/26 +f 2176/524/26 2151/524/26 2165/501/26 +f 2166/501/26 2137/501/26 2136/501/26 +f 2136/501/26 2165/501/26 2166/501/26 +f 2148/484/26 2143/484/26 2146/485/26 +f 2146/485/26 2149/485/26 2148/484/26 +f 2157/523/26 2177/523/26 2143/484/26 +f 2143/484/26 2148/484/26 2157/523/26 +f 2156/493/7 2178/529/7 2177/530/7 +f 2177/530/7 2157/494/7 2156/493/7 +f 2171/521/27 2144/531/27 2178/532/27 +f 2178/532/27 2156/521/27 2171/521/27 +f 2172/533/27 2145/531/27 2144/531/27 +f 2144/531/27 2171/521/27 2172/533/27 +f 2179/471/7 2180/474/7 2181/473/7 +f 2181/473/7 2182/472/7 2179/471/7 +f 2183/475/10 2184/478/10 2185/477/10 +f 2185/477/10 2186/476/10 2183/475/10 +f 2187/479/27 2188/479/27 2189/480/299 +f 2189/480/299 2190/480/299 2187/479/27 +f 2191/476/4 2192/482/4 2193/481/4 +f 2193/481/4 2194/475/4 2191/476/4 +f 2195/483/26 2196/483/26 2197/485/300 +f 2197/485/300 2198/484/300 2195/483/26 +f 2199/486/7 2200/488/7 2201/487/7 +f 2202/489/7 2187/492/7 2190/491/7 +f 2190/491/7 2203/490/7 2202/489/7 +f 2204/493/7 2205/495/7 2206/494/7 +f 2207/496/7 2206/494/7 2205/495/7 +f 2205/495/7 2208/497/7 2207/496/7 +f 2209/498/7 2182/472/7 2181/473/7 +f 2181/473/7 2210/499/7 2209/498/7 +f 2211/500/301 2212/500/301 2188/479/27 +f 2188/479/27 2187/479/27 2211/500/301 +f 2213/501/302 2214/501/302 2196/483/26 +f 2196/483/26 2195/483/26 2213/501/302 +f 2211/502/7 2187/492/7 2202/489/7 +f 2202/489/7 2215/503/7 2211/502/7 +f 2207/496/7 2208/497/7 2200/488/7 +f 2200/488/7 2199/486/7 2207/496/7 +f 2203/504/4 2216/505/4 2180/505/4 +f 2180/505/4 2179/504/4 2203/504/4 +f 2202/506/303 2203/504/303 2179/504/303 +f 2179/504/303 2182/506/303 2202/506/303 +f 2215/507/304 2202/506/304 2182/506/304 +f 2182/506/304 2209/507/304 2215/507/304 +f 2217/508/10 2215/507/10 2209/507/10 +f 2209/507/10 2210/508/10 2217/508/10 +f 2218/509/305 2217/512/305 2210/511/305 +f 2210/511/305 2181/510/305 2218/509/305 +f 2216/513/306 2218/509/306 2181/510/306 +f 2181/510/306 2180/514/306 2216/513/306 +f 2219/515/7 2211/502/7 2215/503/7 +f 2215/503/7 2217/516/7 2219/515/7 +f 2211/500/4 2219/517/4 2220/517/4 +f 2220/517/4 2212/500/4 2211/500/4 +f 2190/480/10 2189/480/10 2221/518/10 +f 2221/518/10 2222/518/10 2190/480/10 +f 2222/519/7 2216/474/7 2203/490/7 +f 2203/490/7 2190/491/7 2222/519/7 +f 2183/475/10 2186/476/10 2223/482/10 +f 2223/482/10 2224/481/10 2183/475/10 +f 2216/513/307 2222/520/307 2201/485/307 +f 2201/485/307 2200/513/307 2216/513/307 +f 2218/509/306 2216/513/306 2200/513/306 +f 2200/513/306 2208/509/306 2218/509/306 +f 2217/512/305 2218/509/305 2208/509/305 +f 2208/509/305 2205/512/305 2217/512/305 +f 2219/521/308 2217/512/308 2205/512/308 +f 2205/512/308 2204/521/308 2219/521/308 +f 2191/476/4 2194/475/4 2225/478/4 +f 2225/478/4 2226/477/4 2191/476/4 +f 2195/483/300 2198/484/300 2206/523/300 +f 2206/523/300 2207/522/300 2195/483/300 +f 2213/501/302 2195/483/302 2207/522/302 +f 2207/522/302 2199/524/302 2213/501/302 +f 2222/520/27 2221/527/27 2184/526/27 +f 2184/526/27 2183/525/27 2222/520/27 +f 2201/485/27 2222/520/27 2183/525/27 +f 2183/525/27 2224/528/27 2201/485/27 +f 2199/486/7 2201/487/7 2224/487/7 +f 2224/487/7 2223/486/7 2199/486/7 +f 2213/501/26 2199/524/26 2223/524/26 +f 2223/524/26 2186/501/26 2213/501/26 +f 2214/501/26 2213/501/26 2186/501/26 +f 2186/501/26 2185/501/26 2214/501/26 +f 2198/484/26 2197/485/26 2192/485/26 +f 2192/485/26 2191/484/26 2198/484/26 +f 2206/523/26 2198/484/26 2191/484/26 +f 2191/484/26 2226/523/26 2206/523/26 +f 2204/493/7 2206/494/7 2226/530/7 +f 2226/530/7 2225/529/7 2204/493/7 +f 2219/521/27 2204/521/27 2225/532/27 +f 2225/532/27 2194/531/27 2219/521/27 +f 2220/533/27 2219/521/27 2194/531/27 +f 2194/531/27 2193/531/27 2220/533/27 +f 2227/471/10 2228/472/10 2229/473/10 +f 2229/473/10 2230/474/10 2227/471/10 +f 2231/475/7 2232/476/7 2233/477/7 +f 2233/477/7 2234/478/7 2231/475/7 +f 2235/479/27 2236/480/290 2237/480/290 +f 2237/480/290 2238/479/27 2235/479/27 +f 2239/476/1 2240/475/1 2241/481/1 +f 2241/481/1 2242/482/1 2239/476/1 +f 2243/483/26 2244/484/291 2245/485/291 +f 2245/485/291 2246/483/26 2243/483/26 +f 2247/486/10 2248/487/10 2249/488/10 +f 2250/489/10 2251/490/10 2236/491/10 +f 2236/491/10 2235/492/10 2250/489/10 +f 2252/493/10 2253/494/10 2254/495/10 +f 2255/496/10 2256/497/10 2254/495/10 +f 2254/495/10 2253/494/10 2255/496/10 +f 2257/498/10 2258/499/10 2229/473/10 +f 2229/473/10 2228/472/10 2257/498/10 +f 2259/500/288 2235/479/27 2238/479/27 +f 2238/479/27 2260/500/288 2259/500/288 +f 2261/501/289 2243/483/26 2246/483/26 +f 2246/483/26 2262/501/289 2261/501/289 +f 2259/502/10 2263/503/10 2250/489/10 +f 2250/489/10 2235/492/10 2259/502/10 +f 2255/496/10 2247/486/10 2249/488/10 +f 2249/488/10 2256/497/10 2255/496/10 +f 2251/504/1 2227/504/1 2230/505/1 +f 2230/505/1 2264/505/1 2251/504/1 +f 2250/506/293 2228/506/293 2227/504/293 +f 2227/504/293 2251/504/293 2250/506/293 +f 2263/507/292 2257/507/292 2228/506/292 +f 2228/506/292 2250/506/292 2263/507/292 +f 2265/508/7 2258/508/7 2257/507/7 +f 2257/507/7 2263/507/7 2265/508/7 +f 2266/509/203 2229/510/203 2258/511/203 +f 2258/511/203 2265/512/203 2266/509/203 +f 2264/513/296 2230/514/296 2229/510/296 +f 2229/510/296 2266/509/296 2264/513/296 +f 2267/515/10 2265/516/10 2263/503/10 +f 2263/503/10 2259/502/10 2267/515/10 +f 2259/500/1 2260/500/1 2268/517/1 +f 2268/517/1 2267/517/1 2259/500/1 +f 2236/480/7 2269/518/7 2270/518/7 +f 2270/518/7 2237/480/7 2236/480/7 +f 2269/519/10 2236/491/10 2251/490/10 +f 2251/490/10 2264/474/10 2269/519/10 +f 2231/475/7 2271/481/7 2272/482/7 +f 2272/482/7 2232/476/7 2231/475/7 +f 2264/513/314 2249/513/314 2248/485/314 +f 2248/485/314 2269/520/314 2264/513/314 +f 2266/509/296 2256/509/296 2249/513/296 +f 2249/513/296 2264/513/296 2266/509/296 +f 2265/512/203 2254/512/203 2256/509/203 +f 2256/509/203 2266/509/203 2265/512/203 +f 2267/521/294 2252/521/294 2254/512/294 +f 2254/512/294 2265/512/294 2267/521/294 +f 2239/476/1 2273/477/1 2274/478/1 +f 2274/478/1 2240/475/1 2239/476/1 +f 2243/483/297 2255/522/297 2253/523/291 +f 2253/523/291 2244/484/291 2243/483/297 +f 2261/501/289 2247/524/289 2255/522/289 +f 2255/522/289 2243/483/289 2261/501/289 +f 2269/520/27 2231/525/27 2234/526/27 +f 2234/526/27 2270/527/27 2269/520/27 +f 2248/485/27 2271/528/27 2231/525/27 +f 2231/525/27 2269/520/27 2248/485/27 +f 2247/486/10 2272/486/10 2271/487/10 +f 2271/487/10 2248/487/10 2247/486/10 +f 2261/501/26 2232/501/26 2272/524/26 +f 2272/524/26 2247/524/26 2261/501/26 +f 2262/501/26 2233/501/26 2232/501/26 +f 2232/501/26 2261/501/26 2262/501/26 +f 2244/484/26 2239/484/26 2242/485/26 +f 2242/485/26 2245/485/26 2244/484/26 +f 2253/523/26 2273/523/26 2239/484/26 +f 2239/484/26 2244/484/26 2253/523/26 +f 2252/493/10 2274/529/10 2273/530/10 +f 2273/530/10 2253/494/10 2252/493/10 +f 2267/521/27 2240/531/27 2274/532/27 +f 2274/532/27 2252/521/27 2267/521/27 +f 2268/533/27 2241/531/27 2240/531/27 +f 2240/531/27 2267/521/27 2268/533/27 +f 2275/534/4 2276/535/4 2277/536/4 +f 2277/536/4 2278/537/4 2275/534/4 +f 2279/538/4 2280/539/4 2281/540/4 +f 2281/540/4 2282/541/4 2279/538/4 +f 2283/542/4 2284/543/4 2276/535/4 +f 2276/535/4 2275/534/4 2283/542/4 +f 2280/539/4 2278/537/4 2277/536/4 +f 2277/536/4 2281/540/4 2280/539/4 +f 2285/544/315 2286/545/315 2287/546/316 +f 2287/546/316 2288/547/316 2285/544/315 +f 2286/548/4 2289/549/4 2290/550/4 +f 2290/550/4 2287/551/4 2286/548/4 +f 2289/552/317 2291/553/317 2292/554/318 +f 2292/554/318 2290/555/318 2289/552/317 +f 2288/547/316 2287/546/316 2293/556/319 +f 2293/556/319 2294/557/319 2288/547/316 +f 2287/551/4 2290/550/4 2295/558/4 +f 2295/558/4 2293/559/4 2287/551/4 +f 2290/555/318 2292/554/318 2296/560/320 +f 2296/560/320 2295/561/320 2290/555/318 +f 2294/557/319 2293/556/319 2297/562/27 +f 2297/562/27 2298/563/27 2294/557/319 +f 2293/559/4 2295/558/4 2299/564/4 +f 2299/564/4 2297/565/4 2293/559/4 +f 2295/561/320 2296/560/320 2300/566/26 +f 2300/566/26 2299/567/26 2295/561/320 +f 2298/563/27 2297/562/27 2301/556/321 +f 2301/556/321 2302/557/321 2298/563/27 +f 2297/565/4 2299/564/4 2303/568/4 +f 2303/568/4 2301/569/4 2297/565/4 +f 2299/567/26 2300/566/26 2304/560/322 +f 2304/560/322 2303/561/322 2299/567/26 +f 2302/557/321 2301/556/321 2305/546/323 +f 2305/546/323 2306/547/323 2302/557/321 +f 2301/569/4 2303/568/4 2307/570/4 +f 2307/570/4 2305/571/4 2301/569/4 +f 2303/561/322 2304/560/322 2308/554/324 +f 2308/554/324 2307/555/324 2303/561/322 +f 2306/547/323 2305/546/323 2309/545/325 +f 2309/545/325 2310/544/325 2306/547/323 +f 2305/571/4 2307/570/4 2311/572/4 +f 2311/572/4 2309/573/4 2305/571/4 +f 2307/555/324 2308/554/324 2312/553/326 +f 2312/553/326 2311/552/326 2307/555/324 +f 2313/574/327 2314/575/327 2315/576/327 +f 2315/576/327 2316/577/327 2313/574/327 +f 2317/578/328 2313/579/328 2316/580/328 +f 2316/580/328 2318/581/328 2317/578/328 +f 2319/579/329 2317/578/329 2318/581/329 +f 2318/581/329 2320/580/329 2319/579/329 +f 2319/578/330 2320/581/330 2315/580/330 +f 2315/580/330 2314/579/330 2319/578/330 +f 2321/582/331 2316/577/331 2315/576/331 +f 2315/576/331 2322/583/332 2321/582/331 +f 2318/581/333 2316/580/333 2321/584/333 +f 2321/584/333 2323/585/333 2318/581/333 +f 2324/584/334 2320/580/334 2318/581/334 +f 2318/581/334 2323/585/334 2324/584/334 +f 2322/584/335 2315/580/335 2320/581/335 +f 2320/581/335 2324/585/335 2322/584/335 +f 2325/586/336 2326/587/26 2327/588/26 +f 2327/588/26 2328/589/336 2325/586/336 +f 2328/590/1 2327/591/1 2329/592/1 +f 2329/592/1 2330/593/1 2328/590/1 +f 2330/589/337 2329/588/27 2331/587/27 +f 2331/587/27 2332/586/337 2330/589/337 +f 2327/588/26 2326/587/26 2333/594/338 +f 2333/594/338 2334/595/338 2327/588/26 +f 2329/592/1 2327/591/1 2334/596/1 +f 2334/596/1 2335/597/1 2329/592/1 +f 2331/587/27 2329/588/27 2335/595/339 +f 2335/595/339 2336/594/339 2331/587/27 +f 2337/586/340 2338/587/26 2339/588/26 +f 2339/588/26 2340/589/340 2337/586/340 +f 2340/590/4 2339/591/4 2341/592/4 +f 2341/592/4 2342/593/4 2340/590/4 +f 2342/589/341 2341/588/27 2343/587/27 +f 2343/587/27 2344/586/342 2342/589/341 +f 2339/588/26 2338/587/26 2345/594/343 +f 2345/594/343 2346/595/343 2339/588/26 +f 2341/592/4 2339/591/4 2346/596/4 +f 2346/596/4 2347/597/4 2341/592/4 +f 2343/587/27 2341/588/27 2347/595/344 +f 2347/595/344 2348/594/344 2343/587/27 +f 2347/598/1 2346/596/1 2345/599/1 +f 2345/599/1 2348/600/1 2347/598/1 +f 2349/574/345 2350/577/345 2351/576/345 +f 2351/576/345 2352/575/345 2349/574/345 +f 2353/578/346 2354/581/346 2350/580/346 +f 2350/580/346 2349/579/346 2353/578/346 +f 2355/579/347 2356/580/347 2354/581/347 +f 2354/581/347 2353/578/347 2355/579/347 +f 2355/578/348 2352/579/348 2351/580/348 +f 2351/580/348 2356/581/348 2355/578/348 +f 2357/582/175 2358/583/349 2351/576/349 +f 2351/576/349 2350/577/349 2357/582/175 +f 2354/581/350 2359/585/350 2357/584/350 +f 2357/584/350 2350/580/350 2354/581/350 +f 2360/584/351 2359/585/351 2354/581/351 +f 2354/581/351 2356/580/351 2360/584/351 +f 2358/584/352 2360/585/352 2356/581/353 +f 2356/581/353 2351/580/352 2358/584/352 +f 2361/586/340 2362/589/340 2363/588/26 +f 2363/588/26 2364/587/26 2361/586/340 +f 2362/590/10 2365/593/10 2366/592/10 +f 2366/592/10 2363/591/10 2362/590/10 +f 2365/589/341 2367/586/342 2368/587/27 +f 2368/587/27 2366/588/27 2365/589/341 +f 2363/588/26 2369/595/343 2370/594/343 +f 2370/594/343 2364/587/26 2363/588/26 +f 2366/592/10 2371/597/10 2369/596/10 +f 2369/596/10 2363/591/10 2366/592/10 +f 2368/587/27 2372/594/344 2371/595/344 +f 2371/595/344 2366/588/27 2368/587/27 +f 2370/599/1 2369/596/1 2371/598/1 +f 2371/598/1 2372/600/1 2370/599/1 +f 2373/586/354 2374/589/340 2375/588/26 +f 2375/588/26 2376/587/26 2373/586/354 +f 2374/590/10 2377/593/10 2378/592/10 +f 2378/592/10 2375/591/10 2374/590/10 +f 2377/589/342 2379/586/341 2380/587/27 +f 2380/587/27 2378/588/27 2377/589/342 +f 2375/588/26 2381/595/355 2382/594/355 +f 2382/594/355 2376/587/26 2375/588/26 +f 2378/592/10 2383/597/10 2381/596/10 +f 2381/596/10 2375/591/10 2378/592/10 +f 2380/587/27 2384/594/356 2383/595/344 +f 2383/595/344 2378/588/27 2380/587/27 +f 2385/601/7 2386/602/7 2387/603/7 +f 2387/603/7 691/604/7 2385/601/7 +f 2388/605/4 2389/606/4 2390/607/4 +f 2390/607/4 690/608/4 2388/605/4 +f 2391/601/1 2392/602/1 2393/609/1 +f 2393/609/1 692/610/1 2391/601/1 +f 2394/611/10 2395/612/10 2396/613/10 +f 2396/613/10 693/614/10 2394/611/10 +f 690/610/7 2390/609/7 2386/602/7 +f 2386/602/7 2385/601/7 690/610/7 +f 693/604/1 2396/603/1 2392/602/1 +f 2392/602/1 2391/601/1 693/604/1 +f 692/615/4 2393/616/4 2389/606/4 +f 2389/606/4 2388/605/4 692/615/4 +f 691/617/10 2387/618/10 2395/612/10 +f 2395/612/10 2394/611/10 691/617/10 +f 2397/619/357 2398/620/358 2399/621/358 +f 2399/621/358 2400/622/357 2397/619/357 +f 2398/620/358 2401/623/359 2402/624/359 +f 2402/624/359 2399/621/358 2398/620/358 +f 2403/625/360 2404/626/10 2398/627/10 +f 2398/627/10 2397/628/360 2403/625/360 +f 2398/627/10 2404/626/10 2405/629/361 +f 2405/629/361 2401/630/361 2398/627/10 +f 2403/619/315 2406/622/315 2407/621/362 +f 2407/621/362 2404/620/362 2403/619/315 +f 2404/620/362 2407/621/362 2408/624/363 +f 2408/624/363 2405/623/363 2404/620/362 +f 2406/631/364 2400/632/364 2399/633/365 +f 2399/633/365 2407/634/365 2406/631/364 +f 2399/633/365 2402/635/366 2408/636/366 +f 2408/636/366 2407/634/365 2399/633/365 +f 2409/637/7 2410/638/7 2411/639/7 +f 2411/639/7 2412/640/7 2409/637/7 +f 2413/640/4 2412/641/4 2411/642/4 +f 2411/642/4 2414/643/4 2413/640/4 +f 2413/637/1 2414/638/1 2415/639/1 +f 2415/639/1 2416/640/1 2413/637/1 +f 2417/644/1 2418/645/1 2419/646/1 +f 2419/646/1 2420/647/1 2417/644/1 +f 2421/647/7 2422/644/7 2423/645/7 +f 2423/645/7 2424/646/7 2421/647/7 +f 2418/648/367 2417/649/367 2425/650/367 +f 2425/650/367 2426/651/367 2418/648/367 +f 2425/652/4 2417/567/4 2420/653/4 +f 2420/653/4 2427/654/4 2425/652/4 +f 2420/648/368 2419/649/368 2428/650/368 +f 2428/650/368 2427/651/368 2420/648/368 +f 2429/637/7 2430/638/7 2431/639/7 +f 2431/639/7 2432/640/7 2429/637/7 +f 2432/640/4 2431/643/4 2433/642/4 +f 2433/642/4 2434/641/4 2432/640/4 +f 2434/637/1 2433/638/1 2435/639/1 +f 2435/639/1 2436/640/1 2434/637/1 +f 2437/655/369 2423/656/369 2422/657/369 +f 2422/657/369 2438/658/369 2437/655/369 +f 2437/659/4 2439/660/4 2424/661/4 +f 2424/661/4 2423/662/4 2437/659/4 +f 2440/655/370 2421/656/370 2424/657/370 +f 2424/657/370 2439/658/370 2440/655/370 +f 2441/663/298 2442/664/298 2426/651/298 +f 2426/651/298 2425/650/298 2441/663/298 +f 2427/654/4 2443/665/4 2441/666/4 +f 2441/666/4 2425/652/4 2427/654/4 +f 2444/663/371 2443/664/371 2427/651/371 +f 2427/651/371 2428/650/371 2444/663/371 +f 2437/655/297 2438/658/297 2442/664/297 +f 2442/664/297 2441/663/297 2437/655/297 +f 2439/660/4 2437/659/4 2441/666/4 +f 2441/666/4 2443/665/4 2439/660/4 +f 2440/655/372 2439/658/372 2443/664/372 +f 2443/664/372 2444/663/372 2440/655/372 +f 2445/667/373 2446/668/373 2447/669/373 +f 2447/669/373 2448/670/373 2445/667/373 +f 2449/671/374 2450/672/374 2446/668/374 +f 2446/668/374 2445/667/374 2449/671/374 +f 2451/673/7 2452/674/7 2453/675/7 +f 2453/675/7 2454/676/7 2451/673/7 +f 2451/673/7 2450/673/7 2455/673/7 +f 2455/673/7 2452/674/7 2451/673/7 +f 2451/673/7 2447/677/7 2446/677/7 +f 2446/677/7 2450/673/7 2451/673/7 +f 2456/678/7 2447/677/7 2451/673/7 +f 2451/673/7 2454/676/7 2456/678/7 +f 2453/679/27 2452/303/27 2457/680/27 +f 2457/680/27 2458/681/27 2453/679/27 +f 2452/682/375 2455/672/375 2459/671/375 +f 2459/671/375 2457/683/375 2452/682/375 +f 2455/672/376 2450/672/377 2449/671/377 +f 2449/671/377 2459/671/376 2455/672/376 +f 2460/684/373 2461/685/373 2445/667/373 +f 2445/667/373 2448/670/373 2460/684/373 +f 2461/685/374 2462/686/374 2449/671/374 +f 2449/671/374 2445/667/374 2461/685/374 +f 2463/678/1 2464/677/1 2465/673/1 +f 2465/673/1 2466/676/1 2463/678/1 +f 2465/673/1 2464/677/1 2467/677/1 +f 2467/677/1 2462/673/1 2465/673/1 +f 2465/673/1 2462/673/1 2461/673/1 +f 2461/673/1 2460/674/1 2465/673/1 +f 2465/673/1 2460/674/1 2468/675/1 +f 2468/675/1 2466/676/1 2465/673/1 +f 2457/680/27 2464/687/27 2463/688/27 +f 2463/688/27 2458/681/27 2457/680/27 +f 2459/671/375 2467/686/375 2464/678/375 +f 2464/678/375 2457/683/375 2459/671/375 +f 2449/671/377 2462/686/377 2467/686/376 +f 2467/686/376 2459/671/376 2449/671/377 +f 2469/689/4 2470/690/4 2471/691/4 +f 2471/691/4 2472/692/4 2469/689/4 +f 2473/693/4 2472/692/4 2471/691/4 +f 2471/691/4 2474/694/4 2473/693/4 +f 2475/619/357 2476/620/358 2477/621/358 +f 2477/621/358 2478/622/357 2475/619/357 +f 2476/620/358 2479/623/359 2480/624/359 +f 2480/624/359 2477/621/358 2476/620/358 +f 2481/625/360 2482/626/10 2476/627/10 +f 2476/627/10 2475/628/360 2481/625/360 +f 2476/627/10 2482/626/10 2483/629/361 +f 2483/629/361 2479/630/361 2476/627/10 +f 2481/619/315 2484/622/315 2485/621/362 +f 2485/621/362 2482/620/362 2481/619/315 +f 2482/620/362 2485/621/362 2486/624/363 +f 2486/624/363 2483/623/363 2482/620/362 +f 2484/631/364 2478/632/364 2477/633/365 +f 2477/633/365 2485/634/365 2484/631/364 +f 2477/633/365 2480/635/366 2486/636/366 +f 2486/636/366 2485/634/365 2477/633/365 +f 2487/619/357 2488/622/357 2489/621/378 +f 2489/621/378 2490/620/378 2487/619/357 +f 2490/620/378 2489/621/378 2491/624/379 +f 2491/624/379 2492/623/379 2490/620/378 +f 2493/625/365 2487/628/365 2490/627/4 +f 2490/627/4 2494/626/4 2493/625/365 +f 2490/627/4 2492/630/380 2495/629/380 +f 2495/629/380 2494/626/4 2490/627/4 +f 2493/619/315 2494/620/381 2496/621/381 +f 2496/621/381 2497/622/315 2493/619/315 +f 2494/620/381 2495/623/382 2498/624/382 +f 2498/624/382 2496/621/381 2494/620/381 +f 2497/631/383 2496/634/360 2489/633/360 +f 2489/633/360 2488/632/383 2497/631/383 +f 2489/633/360 2496/634/360 2498/636/384 +f 2498/636/384 2491/635/384 2489/633/360 +f 2499/619/357 2500/622/357 2501/621/378 +f 2501/621/378 2502/620/378 2499/619/357 +f 2502/620/378 2501/621/378 2503/624/379 +f 2503/624/379 2504/623/379 2502/620/378 +f 2505/625/365 2499/628/365 2502/627/4 +f 2502/627/4 2506/626/4 2505/625/365 +f 2502/627/4 2504/630/380 2507/629/380 +f 2507/629/380 2506/626/4 2502/627/4 +f 2505/619/315 2506/620/381 2508/621/381 +f 2508/621/381 2509/622/315 2505/619/315 +f 2506/620/381 2507/623/382 2510/624/382 +f 2510/624/382 2508/621/381 2506/620/381 +f 2509/631/383 2508/634/360 2501/633/360 +f 2501/633/360 2500/632/383 2509/631/383 +f 2501/633/360 2508/634/360 2510/636/384 +f 2510/636/384 2503/635/384 2501/633/360 +f 2511/586/336 2512/589/336 2513/588/26 +f 2513/588/26 2514/587/26 2511/586/336 +f 2512/590/7 2515/593/7 2516/592/7 +f 2516/592/7 2513/591/7 2512/590/7 +f 2515/589/337 2517/586/337 2518/587/27 +f 2518/587/27 2516/588/27 2515/589/337 +f 2513/588/26 2519/595/338 2520/594/338 +f 2520/594/338 2514/587/26 2513/588/26 +f 2516/592/7 2521/597/7 2519/596/7 +f 2519/596/7 2513/591/7 2516/592/7 +f 2518/587/27 2522/594/339 2521/595/339 +f 2521/595/339 2516/588/27 2518/587/27 +f 2523/451/27 2524/452/27 2525/453/27 +f 2525/453/27 2526/454/27 2523/451/27 +f 2527/455/4 2528/456/4 2524/457/4 +f 2524/457/4 2523/458/4 2527/455/4 +f 2528/459/1 2529/460/1 2525/461/1 +f 2525/461/1 2524/462/1 2528/459/1 +f 2529/456/10 2530/455/10 2526/458/10 +f 2526/458/10 2525/457/10 2529/456/10 +f 2530/460/7 2527/459/7 2523/462/7 +f 2523/462/7 2526/461/7 2530/460/7 +f 2531/451/27 2532/452/27 2533/453/27 +f 2533/453/27 2534/454/27 2531/451/27 +f 2535/455/7 2536/456/7 2532/457/7 +f 2532/457/7 2531/458/7 2535/455/7 +f 2536/459/4 2537/460/4 2533/461/4 +f 2533/461/4 2532/462/4 2536/459/4 +f 2537/456/1 2538/455/1 2534/458/1 +f 2534/458/1 2533/457/1 2537/456/1 +f 2538/460/10 2535/459/10 2531/462/10 +f 2531/462/10 2534/461/10 2538/460/10 +f 2539/451/27 2540/452/27 2541/453/27 +f 2541/453/27 2542/454/27 2539/451/27 +f 2543/455/7 2544/456/7 2540/457/7 +f 2540/457/7 2539/458/7 2543/455/7 +f 2544/459/4 2545/460/4 2541/461/4 +f 2541/461/4 2540/462/4 2544/459/4 +f 2545/456/1 2546/455/1 2542/458/1 +f 2542/458/1 2541/457/1 2545/456/1 +f 2546/460/10 2543/459/10 2539/462/10 +f 2539/462/10 2542/461/10 2546/460/10 +f 2547/3/12 2548/2/12 2549/1/1 +f 2549/1/1 2550/4/1 2547/3/12 +f 2551/6/11 2552/5/11 2548/2/12 +f 2548/2/12 2547/3/12 2551/6/11 +f 2553/8/10 2554/7/10 2552/5/11 +f 2552/5/11 2551/6/11 2553/8/10 +f 2555/11/9 2556/10/9 2554/9/10 +f 2554/9/10 2553/12/10 2555/11/9 +f 2557/14/8 2558/13/8 2556/10/9 +f 2556/10/9 2555/11/9 2557/14/8 +f 2559/16/7 2560/15/7 2558/13/8 +f 2558/13/8 2557/14/8 2559/16/7 +f 2561/18/6 2562/17/6 2560/15/7 +f 2560/15/7 2559/16/7 2561/18/6 +f 2563/20/5 2564/19/5 2562/17/6 +f 2562/17/6 2561/18/6 2563/20/5 +f 2565/22/4 2566/21/4 2564/19/5 +f 2564/19/5 2563/20/5 2565/22/4 +f 2567/24/3 2568/23/3 2566/21/4 +f 2566/21/4 2565/22/4 2567/24/3 +f 2569/26/2 2570/25/2 2568/23/3 +f 2568/23/3 2567/24/3 2569/26/2 +f 2550/4/1 2549/1/1 2570/25/2 +f 2570/25/2 2569/26/2 2550/4/1 +f 2571/27/24 2572/30/24 2573/29/24 +f 2573/29/24 2574/28/24 2571/27/24 +f 2575/31/23 2576/32/23 2572/30/23 +f 2572/30/23 2571/27/23 2575/31/23 +f 2577/33/22 2578/34/22 2576/32/22 +f 2576/32/22 2575/31/22 2577/33/22 +f 2579/35/21 2580/38/21 2578/37/21 +f 2578/37/21 2577/36/21 2579/35/21 +f 2581/39/20 2582/40/20 2580/38/20 +f 2580/38/20 2579/35/20 2581/39/20 +f 2583/41/19 2584/42/19 2582/40/19 +f 2582/40/19 2581/39/19 2583/41/19 +f 2585/43/18 2586/44/18 2584/42/18 +f 2584/42/18 2583/41/18 2585/43/18 +f 2587/45/17 2588/46/17 2586/44/17 +f 2586/44/17 2585/43/17 2587/45/17 +f 2589/47/16 2590/48/16 2588/46/16 +f 2588/46/16 2587/45/16 2589/47/16 +f 2591/49/15 2592/50/15 2590/48/15 +f 2590/48/15 2589/47/15 2591/49/15 +f 2593/51/14 2594/52/14 2592/50/14 +f 2592/50/14 2591/49/14 2593/51/14 +f 2574/28/13 2573/29/13 2594/52/192 +f 2594/52/192 2593/51/192 2574/28/13 +f 2548/53/26 2571/53/26 2574/54/26 +f 2574/54/26 2549/54/26 2548/53/26 +f 2549/54/26 2574/54/26 2593/55/26 +f 2593/55/26 2570/55/26 2549/54/26 +f 2570/55/26 2593/55/26 2591/56/26 +f 2591/56/26 2568/56/26 2570/55/26 +f 2568/56/26 2591/56/26 2589/57/26 +f 2589/57/26 2566/57/26 2568/56/26 +f 2566/57/26 2589/57/26 2587/59/26 +f 2587/59/26 2564/58/26 2566/57/26 +f 2564/58/26 2587/59/26 2585/61/26 +f 2585/61/26 2562/60/26 2564/58/26 +f 2562/60/26 2585/61/26 2583/62/26 +f 2583/62/26 2560/62/26 2562/60/26 +f 2560/62/26 2583/62/26 2581/64/26 +f 2581/64/26 2558/63/26 2560/62/26 +f 2558/63/26 2581/64/26 2579/66/26 +f 2579/66/26 2556/65/26 2558/63/26 +f 2556/65/26 2579/66/26 2577/67/26 +f 2577/67/26 2554/67/26 2556/65/26 +f 2554/67/26 2577/67/26 2575/68/26 +f 2575/68/26 2552/68/26 2554/67/26 +f 2552/68/26 2575/68/26 2571/53/26 +f 2571/53/26 2548/53/26 2552/68/26 +f 2595/54/27 2573/54/27 2572/53/27 +f 2572/53/27 2596/53/27 2595/54/27 +f 2596/53/27 2572/53/27 2576/68/27 +f 2576/68/27 2597/68/27 2596/53/27 +f 2597/68/27 2576/68/27 2578/67/27 +f 2578/67/27 2598/67/27 2597/68/27 +f 2598/67/27 2578/67/27 2580/66/27 +f 2580/66/27 2599/65/27 2598/67/27 +f 2599/65/27 2580/66/27 2582/64/27 +f 2582/64/27 2600/63/27 2599/65/27 +f 2600/63/27 2582/64/27 2584/62/27 +f 2584/62/27 2601/62/27 2600/63/27 +f 2601/62/27 2584/62/27 2586/61/27 +f 2586/61/27 2602/60/27 2601/62/27 +f 2602/60/27 2586/61/27 2588/59/27 +f 2588/59/27 2603/58/27 2602/60/27 +f 2603/58/27 2588/59/27 2590/57/27 +f 2590/57/27 2604/57/27 2603/58/27 +f 2604/57/27 2590/57/27 2592/56/27 +f 2592/56/27 2605/56/27 2604/57/27 +f 2605/56/27 2592/56/27 2594/55/27 +f 2594/55/27 2606/55/27 2605/56/27 +f 2606/55/27 2594/55/27 2573/54/27 +f 2573/54/27 2595/54/27 2606/55/27 +f 2607/71/12 2608/70/1 2595/69/1 +f 2595/69/1 2596/72/12 2607/71/12 +f 2609/73/23 2607/71/12 2596/72/12 +f 2596/72/12 2597/74/23 2609/73/23 +f 2610/75/22 2609/73/22 2597/74/22 +f 2597/74/22 2598/76/22 2610/75/22 +f 2611/77/9 2610/75/21 2598/76/21 +f 2598/76/21 2599/78/9 2611/77/9 +f 2612/79/8 2611/77/9 2599/78/9 +f 2599/78/9 2600/80/8 2612/79/8 +f 2613/83/7 2612/82/8 2600/81/8 +f 2600/81/8 2601/84/7 2613/83/7 +f 2614/85/6 2613/83/7 2601/84/7 +f 2601/84/7 2602/86/6 2614/85/6 +f 2615/87/5 2614/85/6 2602/86/6 +f 2602/86/6 2603/88/5 2615/87/5 +f 2616/89/4 2615/87/5 2603/88/5 +f 2603/88/5 2604/90/4 2616/89/4 +f 2617/91/3 2616/89/4 2604/90/4 +f 2604/90/4 2605/92/3 2617/91/3 +f 2618/93/2 2617/91/3 2605/92/3 +f 2605/92/3 2606/94/2 2618/93/2 +f 2608/70/1 2618/93/2 2606/94/2 +f 2606/94/2 2595/69/1 2608/70/1 +f 2619/95/26 2620/95/26 2621/96/26 +f 2621/96/26 2622/96/26 2619/95/26 +f 2623/97/26 2624/97/26 2620/95/26 +f 2620/95/26 2619/95/26 2623/97/26 +f 2625/67/26 2626/98/26 2624/97/26 +f 2624/97/26 2623/97/26 2625/67/26 +f 2627/99/26 2628/99/26 2626/98/26 +f 2626/98/26 2625/67/26 2627/99/26 +f 2629/100/26 2630/100/26 2628/99/26 +f 2628/99/26 2627/99/26 2629/100/26 +f 2631/101/26 2632/101/26 2630/100/26 +f 2630/100/26 2629/100/26 2631/101/26 +f 2633/61/26 2634/61/26 2632/101/26 +f 2632/101/26 2631/101/26 2633/61/26 +f 2635/59/26 2636/102/26 2634/61/26 +f 2634/61/26 2633/61/26 2635/59/26 +f 2637/103/26 2638/103/26 2636/102/26 +f 2636/102/26 2635/59/26 2637/103/26 +f 2639/104/26 2640/105/26 2638/103/26 +f 2638/103/26 2637/103/26 2639/104/26 +f 2641/106/26 2642/106/26 2640/105/26 +f 2640/105/26 2639/104/26 2641/106/26 +f 2622/96/26 2621/96/26 2642/106/26 +f 2642/106/26 2641/106/26 2622/96/26 +f 2620/107/39 2643/110/39 2644/109/39 +f 2644/109/39 2621/108/39 2620/107/39 +f 2624/111/38 2645/112/38 2643/110/38 +f 2643/110/38 2620/107/38 2624/111/38 +f 2626/113/37 2646/114/37 2645/112/37 +f 2645/112/37 2624/111/37 2626/113/37 +f 2628/115/36 2647/116/36 2646/114/36 +f 2646/114/36 2626/113/36 2628/115/36 +f 2630/117/35 2648/118/35 2647/116/35 +f 2647/116/35 2628/115/35 2630/117/35 +f 2632/119/34 2649/120/34 2648/118/34 +f 2648/118/34 2630/117/34 2632/119/34 +f 2634/121/33 2650/122/33 2649/120/33 +f 2649/120/33 2632/119/33 2634/121/33 +f 2636/123/32 2651/124/32 2650/122/32 +f 2650/122/32 2634/121/32 2636/123/32 +f 2638/125/31 2652/126/31 2651/124/31 +f 2651/124/31 2636/123/31 2638/125/31 +f 2640/127/30 2653/130/30 2652/129/30 +f 2652/129/30 2638/128/30 2640/127/30 +f 2642/131/29 2654/132/29 2653/130/29 +f 2653/130/29 2640/127/29 2642/131/29 +f 2621/108/28 2644/109/28 2654/132/28 +f 2654/132/28 2642/131/28 2621/108/28 +f 2643/110/54 2655/134/54 2656/133/54 +f 2656/133/54 2644/109/54 2643/110/54 +f 2645/112/53 2657/135/53 2655/134/53 +f 2655/134/53 2643/110/53 2645/112/53 +f 2646/114/51 2658/136/52 2657/135/51 +f 2657/135/51 2645/112/51 2646/114/51 +f 2647/116/50 2659/137/50 2658/136/50 +f 2658/136/50 2646/114/50 2647/116/50 +f 2648/118/49 2660/138/49 2659/137/49 +f 2659/137/49 2647/116/49 2648/118/49 +f 2649/120/48 2661/139/48 2660/138/48 +f 2660/138/48 2648/118/48 2649/120/48 +f 2650/122/385 2662/140/46 2661/139/46 +f 2661/139/46 2649/120/46 2650/122/385 +f 2651/124/45 2663/141/45 2662/140/45 +f 2662/140/45 2650/122/45 2651/124/45 +f 2652/126/44 2664/142/44 2663/141/44 +f 2663/141/44 2651/124/44 2652/126/44 +f 2653/130/42 2665/144/42 2664/143/43 +f 2664/143/43 2652/129/42 2653/130/42 +f 2654/132/41 2666/145/41 2665/144/41 +f 2665/144/41 2653/130/41 2654/132/41 +f 2644/109/40 2656/133/40 2666/145/40 +f 2666/145/40 2654/132/386 2644/109/40 +f 2607/148/71 2667/147/71 2668/146/71 +f 2668/146/71 2608/149/71 2607/148/71 +f 2609/151/69 2669/150/70 2667/147/70 +f 2667/147/70 2607/148/69 2609/151/69 +f 2610/154/68 2670/153/68 2669/152/68 +f 2669/152/68 2609/155/68 2610/154/68 +f 2611/156/67 2671/142/67 2670/153/67 +f 2670/153/67 2610/154/67 2611/156/67 +f 2612/158/65 2672/157/66 2671/142/66 +f 2671/142/66 2611/156/65 2612/158/65 +f 2613/160/64 2673/159/64 2672/157/64 +f 2672/157/64 2612/158/64 2613/160/64 +f 2614/162/63 2674/161/63 2673/159/63 +f 2673/159/63 2613/160/63 2614/162/63 +f 2615/164/62 2675/163/61 2674/161/61 +f 2674/161/61 2614/162/62 2615/164/62 +f 2616/166/60 2676/165/60 2675/163/60 +f 2675/163/60 2615/164/60 2616/166/60 +f 2617/168/59 2677/167/59 2676/165/59 +f 2676/165/59 2616/166/59 2617/168/59 +f 2618/170/58 2678/169/57 2677/167/57 +f 2677/167/57 2617/168/57 2618/170/58 +f 2608/149/56 2668/146/56 2678/169/56 +f 2678/169/56 2618/170/56 2608/149/56 +f 2667/173/12 2619/172/12 2622/171/1 +f 2622/171/1 2668/174/1 2667/173/12 +f 2669/176/11 2623/175/11 2619/172/12 +f 2619/172/12 2667/173/12 2669/176/11 +f 2670/179/10 2625/178/10 2623/177/11 +f 2623/177/11 2669/180/11 2670/179/10 +f 2671/181/9 2627/86/9 2625/178/10 +f 2625/178/10 2670/179/10 2671/181/9 +f 2672/183/8 2629/182/8 2627/86/9 +f 2627/86/9 2671/181/9 2672/183/8 +f 2673/185/7 2631/184/7 2629/182/8 +f 2629/182/8 2672/183/8 2673/185/7 +f 2674/187/6 2633/186/6 2631/184/7 +f 2631/184/7 2673/185/7 2674/187/6 +f 2675/189/5 2635/188/5 2633/186/6 +f 2633/186/6 2674/187/6 2675/189/5 +f 2676/191/4 2637/190/4 2635/188/5 +f 2635/188/5 2675/189/5 2676/191/4 +f 2677/192/3 2639/76/3 2637/190/4 +f 2637/190/4 2676/191/4 2677/192/3 +f 2678/194/2 2641/193/2 2639/76/3 +f 2639/76/3 2677/192/3 2678/194/2 +f 2668/174/1 2622/171/1 2641/193/2 +f 2641/193/2 2678/194/2 2668/174/1 +f 2679/195/387 2680/198/387 2681/197/387 +f 2681/197/387 2682/196/387 2679/195/387 +f 2683/199/388 2684/202/388 2685/201/388 +f 2685/201/388 2686/200/388 2683/199/388 +f 2687/203/389 2688/206/389 2689/205/389 +f 2689/205/389 2690/204/389 2687/203/389 +f 2691/202/390 2692/199/390 2693/200/390 +f 2693/200/390 2694/201/390 2691/202/390 +f 2695/207/391 2696/209/391 2697/208/391 +f 2697/208/391 2698/207/391 2695/207/391 +f 2699/209/392 2700/211/392 2701/210/392 +f 2690/212/393 2689/214/393 2702/213/393 +f 2702/213/393 2703/196/393 2690/212/393 +f 2704/210/394 2705/211/394 2706/209/394 +f 2707/215/395 2706/209/395 2705/211/395 +f 2705/211/395 2708/216/395 2707/215/395 +f 2709/217/396 2682/196/396 2681/197/396 +f 2681/197/396 2710/218/396 2709/217/396 +f 2711/219/397 2687/203/397 2690/204/397 +f 2690/204/397 2712/220/397 2711/219/397 +f 2713/209/398 2695/207/398 2698/207/398 +f 2698/207/398 2714/208/398 2713/209/398 +f 2690/212/399 2703/196/399 2715/213/399 +f 2715/213/399 2712/214/399 2690/212/399 +f 2707/215/400 2708/216/400 2700/211/400 +f 2700/211/400 2699/209/400 2707/215/400 +f 2716/221/390 2680/221/390 2679/222/390 +f 2679/222/390 2702/222/390 2716/221/390 +f 2702/222/401 2679/222/401 2682/203/401 +f 2682/203/401 2703/203/401 2702/222/401 +f 2703/203/402 2682/203/402 2709/206/402 +f 2709/206/402 2715/206/402 2703/203/402 +f 2715/206/388 2709/206/388 2710/223/388 +f 2710/223/388 2717/223/388 2715/206/388 +f 2717/224/403 2710/224/403 2681/226/403 +f 2681/226/403 2718/225/403 2717/224/403 +f 2718/225/404 2681/226/404 2680/224/404 +f 2680/224/404 2716/224/404 2718/225/404 +f 2712/214/394 2715/213/394 2717/228/394 +f 2717/228/394 2719/227/394 2712/214/394 +f 2719/229/390 2720/221/390 2711/219/390 +f 2711/219/390 2712/220/390 2719/229/390 +f 2688/206/388 2721/223/388 2722/230/388 +f 2722/230/388 2689/205/388 2688/206/388 +f 2722/227/392 2716/228/392 2702/213/392 +f 2702/213/392 2689/214/392 2722/227/392 +f 2685/201/388 2723/202/388 2724/199/388 +f 2724/199/388 2686/200/388 2685/201/388 +f 2722/231/405 2701/233/406 2700/232/405 +f 2700/232/405 2716/224/405 2722/231/405 +f 2716/224/404 2700/232/404 2708/234/404 +f 2708/234/404 2718/225/404 2716/224/404 +f 2718/225/403 2708/234/403 2705/232/403 +f 2705/232/403 2717/224/403 2718/225/403 +f 2717/224/407 2705/232/407 2704/233/407 +f 2704/233/407 2719/231/407 2717/224/407 +f 2693/200/390 2725/199/390 2726/202/390 +f 2726/202/390 2694/201/390 2693/200/390 +f 2697/208/391 2706/236/391 2707/235/391 +f 2707/235/391 2698/207/391 2697/208/391 +f 2698/207/398 2707/235/398 2699/236/398 +f 2699/236/398 2714/208/398 2698/207/398 +f 2721/236/27 2683/238/27 2686/237/27 +f 2686/237/27 2722/231/27 2721/236/27 +f 2722/231/27 2686/237/27 2724/239/27 +f 2724/239/27 2701/233/27 2722/231/27 +f 2701/210/408 2724/241/409 2723/240/409 +f 2723/240/409 2699/209/408 2701/210/408 +f 2699/236/26 2723/238/26 2685/242/26 +f 2685/242/26 2714/208/26 2699/236/26 +f 2714/208/26 2685/242/26 2684/240/26 +f 2684/240/26 2713/209/26 2714/208/26 +f 2696/209/26 2691/240/26 2694/242/26 +f 2694/242/26 2697/208/26 2696/209/26 +f 2697/208/26 2694/242/26 2726/238/26 +f 2726/238/26 2706/236/26 2697/208/26 +f 2706/209/410 2726/240/410 2725/241/410 +f 2725/241/410 2704/210/410 2706/209/410 +f 2704/233/27 2725/239/27 2693/237/27 +f 2693/237/27 2719/231/27 2704/233/27 +f 2719/231/27 2693/237/27 2692/238/27 +f 2692/238/27 2720/236/27 2719/231/27 +f 2727/195/411 2728/198/411 2729/197/411 +f 2729/197/411 2730/196/411 2727/195/411 +f 2731/199/412 2732/202/412 2733/201/413 +f 2733/201/413 2734/200/413 2731/199/412 +f 2735/203/414 2736/206/414 2737/205/414 +f 2737/205/414 2738/204/414 2735/203/414 +f 2739/202/415 2740/199/415 2741/200/416 +f 2741/200/416 2742/201/416 2739/202/415 +f 2743/207/417 2744/209/417 2745/208/417 +f 2745/208/417 2746/207/417 2743/207/417 +f 2747/209/171 2748/211/171 2749/210/171 +f 2738/212/418 2737/214/418 2750/213/418 +f 2750/213/418 2751/196/418 2738/212/418 +f 2752/210/419 2753/211/419 2754/209/419 +f 2755/215/420 2754/209/420 2753/211/420 +f 2753/211/420 2756/216/420 2755/215/420 +f 2757/217/167 2730/196/167 2729/197/167 +f 2729/197/167 2758/218/167 2757/217/167 +f 2759/219/421 2735/203/421 2738/204/421 +f 2738/204/421 2760/220/421 2759/219/421 +f 2761/209/422 2743/207/422 2746/207/422 +f 2746/207/422 2762/208/422 2761/209/422 +f 2738/212/423 2751/196/423 2763/213/423 +f 2763/213/423 2760/214/423 2738/212/423 +f 2755/215/424 2756/216/424 2748/211/424 +f 2748/211/424 2747/209/424 2755/215/424 +f 2764/221/415 2728/221/416 2727/222/416 +f 2727/222/416 2750/222/415 2764/221/415 +f 2750/222/425 2727/222/425 2730/203/425 +f 2730/203/425 2751/203/425 2750/222/425 +f 2751/203/426 2730/203/426 2757/206/426 +f 2757/206/426 2763/206/426 2751/203/426 +f 2763/206/413 2757/206/413 2758/223/413 +f 2758/223/413 2765/223/413 2763/206/413 +f 2765/224/427 2758/224/427 2729/226/427 +f 2729/226/427 2766/225/427 2765/224/427 +f 2766/225/428 2729/226/428 2728/224/428 +f 2728/224/428 2764/224/428 2766/225/428 +f 2760/214/419 2763/213/419 2765/228/419 +f 2765/228/419 2767/227/419 2760/214/419 +f 2767/229/415 2768/221/415 2759/219/415 +f 2759/219/415 2760/220/415 2767/229/415 +f 2736/206/413 2769/223/413 2770/230/413 +f 2770/230/413 2737/205/413 2736/206/413 +f 2770/227/171 2764/228/171 2750/213/171 +f 2750/213/171 2737/214/171 2770/227/171 +f 2733/201/413 2771/202/412 2772/199/412 +f 2772/199/412 2734/200/413 2733/201/413 +f 2770/231/429 2749/233/429 2748/232/429 +f 2748/232/429 2764/224/429 2770/231/429 +f 2764/224/428 2748/232/428 2756/234/428 +f 2756/234/428 2766/225/428 2764/224/428 +f 2766/225/427 2756/234/427 2753/232/427 +f 2753/232/427 2765/224/427 2766/225/427 +f 2765/224/430 2753/232/430 2752/233/430 +f 2752/233/430 2767/231/430 2765/224/430 +f 2741/200/416 2773/199/415 2774/202/415 +f 2774/202/415 2742/201/416 2741/200/416 +f 2745/208/417 2754/236/417 2755/235/417 +f 2755/235/417 2746/207/417 2745/208/417 +f 2746/207/422 2755/235/422 2747/236/422 +f 2747/236/422 2762/208/422 2746/207/422 +f 2769/236/27 2731/238/27 2734/237/27 +f 2734/237/27 2770/231/27 2769/236/27 +f 2770/231/27 2734/237/27 2772/239/27 +f 2772/239/27 2749/233/27 2770/231/27 +f 2749/210/191 2772/241/191 2771/240/191 +f 2771/240/191 2747/209/191 2749/210/191 +f 2747/236/26 2771/238/26 2733/242/26 +f 2733/242/26 2762/208/26 2747/236/26 +f 2762/208/26 2733/242/26 2732/240/26 +f 2732/240/26 2761/209/26 2762/208/26 +f 2744/209/26 2739/240/26 2742/242/26 +f 2742/242/26 2745/208/26 2744/209/26 +f 2745/208/26 2742/242/26 2774/238/26 +f 2774/238/26 2754/236/26 2745/208/26 +f 2754/209/431 2774/240/431 2773/241/431 +f 2773/241/431 2752/210/431 2754/209/431 +f 2752/233/27 2773/239/27 2741/237/27 +f 2741/237/27 2767/231/27 2752/233/27 +f 2767/231/27 2741/237/27 2740/238/27 +f 2740/238/27 2768/236/27 2767/231/27 +f 2775/243/432 2776/246/432 2777/245/432 +f 2777/245/432 2778/244/432 2775/243/432 +f 2775/247/433 2779/250/433 2780/249/433 +f 2780/249/433 2776/248/433 2775/247/433 +f 2776/246/434 2780/252/434 2781/251/434 +f 2781/251/434 2777/245/434 2776/246/434 +f 2777/248/435 2781/249/435 2782/250/435 +f 2782/250/435 2778/247/435 2777/248/435 +f 2783/195/436 2784/198/436 2785/197/436 +f 2785/197/436 2786/196/436 2783/195/436 +f 2787/199/437 2788/202/437 2789/201/413 +f 2789/201/413 2790/200/413 2787/199/437 +f 2791/203/414 2792/206/414 2793/205/414 +f 2793/205/414 2794/204/414 2791/203/414 +f 2795/202/415 2796/199/415 2797/200/416 +f 2797/200/416 2798/201/416 2795/202/415 +f 2799/207/417 2800/209/417 2801/208/417 +f 2801/208/417 2802/207/417 2799/207/417 +f 2803/209/171 2804/211/171 2805/210/171 +f 2794/212/418 2793/214/418 2806/213/418 +f 2806/213/418 2807/196/418 2794/212/418 +f 2808/210/419 2809/211/419 2810/209/419 +f 2811/215/420 2810/209/420 2809/211/420 +f 2809/211/420 2812/216/420 2811/215/420 +f 2813/217/167 2786/196/167 2785/197/167 +f 2785/197/167 2814/218/167 2813/217/167 +f 2815/219/438 2791/203/421 2794/204/421 +f 2794/204/421 2816/220/438 2815/219/438 +f 2817/209/422 2799/207/422 2802/207/422 +f 2802/207/422 2818/208/422 2817/209/422 +f 2794/212/423 2807/196/423 2819/213/423 +f 2819/213/423 2816/214/423 2794/212/423 +f 2811/215/424 2812/216/424 2804/211/424 +f 2804/211/424 2803/209/424 2811/215/424 +f 2820/221/415 2784/221/415 2783/222/415 +f 2783/222/415 2806/222/415 2820/221/415 +f 2806/222/425 2783/222/425 2786/203/425 +f 2786/203/425 2807/203/425 2806/222/425 +f 2807/203/426 2786/203/426 2813/206/426 +f 2813/206/426 2819/206/426 2807/203/426 +f 2819/206/413 2813/206/413 2814/223/413 +f 2814/223/413 2821/223/413 2819/206/413 +f 2821/224/427 2814/224/427 2785/226/427 +f 2785/226/427 2822/225/427 2821/224/427 +f 2822/225/428 2785/226/428 2784/224/428 +f 2784/224/428 2820/224/428 2822/225/428 +f 2816/214/419 2819/213/419 2821/228/419 +f 2821/228/419 2823/227/419 2816/214/419 +f 2823/229/416 2824/221/416 2815/219/416 +f 2815/219/416 2816/220/416 2823/229/416 +f 2792/206/413 2825/223/413 2826/230/412 +f 2826/230/412 2793/205/412 2792/206/413 +f 2826/227/171 2820/228/171 2806/213/171 +f 2806/213/171 2793/214/171 2826/227/171 +f 2789/201/413 2827/202/412 2828/199/412 +f 2828/199/412 2790/200/413 2789/201/413 +f 2826/231/429 2805/233/429 2804/232/429 +f 2804/232/429 2820/224/429 2826/231/429 +f 2820/224/428 2804/232/428 2812/234/428 +f 2812/234/428 2822/225/428 2820/224/428 +f 2822/225/427 2812/234/427 2809/232/427 +f 2809/232/427 2821/224/427 2822/225/427 +f 2821/224/430 2809/232/430 2808/233/430 +f 2808/233/430 2823/231/430 2821/224/430 +f 2797/200/416 2829/199/415 2830/202/415 +f 2830/202/415 2798/201/416 2797/200/416 +f 2801/208/417 2810/236/417 2811/235/417 +f 2811/235/417 2802/207/417 2801/208/417 +f 2802/207/422 2811/235/422 2803/236/422 +f 2803/236/422 2818/208/422 2802/207/422 +f 2825/236/27 2787/238/27 2790/237/27 +f 2790/237/27 2826/231/27 2825/236/27 +f 2826/231/27 2790/237/27 2828/239/27 +f 2828/239/27 2805/233/27 2826/231/27 +f 2805/210/191 2828/241/191 2827/240/191 +f 2827/240/191 2803/209/191 2805/210/191 +f 2803/236/26 2827/238/26 2789/242/26 +f 2789/242/26 2818/208/26 2803/236/26 +f 2818/208/26 2789/242/26 2788/240/26 +f 2788/240/26 2817/209/26 2818/208/26 +f 2800/209/26 2795/240/26 2798/242/26 +f 2798/242/26 2801/208/26 2800/209/26 +f 2801/208/26 2798/242/26 2830/238/26 +f 2830/238/26 2810/236/26 2801/208/26 +f 2810/209/431 2830/240/431 2829/241/431 +f 2829/241/431 2808/210/431 2810/209/431 +f 2808/233/27 2829/239/27 2797/237/27 +f 2797/237/27 2823/231/27 2808/233/27 +f 2823/231/27 2797/237/27 2796/238/27 +f 2796/238/27 2824/236/27 2823/231/27 +f 2831/243/439 2832/246/439 2833/245/439 +f 2833/245/439 2834/244/439 2831/243/439 +f 2831/247/440 2835/250/440 2836/249/440 +f 2836/249/440 2832/248/440 2831/247/440 +f 2832/246/441 2836/252/441 2837/251/441 +f 2837/251/441 2833/245/441 2832/246/441 +f 2833/248/442 2837/249/442 2838/250/442 +f 2838/250/442 2834/247/442 2833/248/442 +f 2839/195/443 2840/198/443 2841/197/443 +f 2841/197/443 2842/196/443 2839/195/443 +f 2843/199/390 2844/202/390 2845/201/390 +f 2845/201/390 2846/200/390 2843/199/390 +f 2847/203/444 2848/206/444 2849/205/444 +f 2849/205/444 2850/204/444 2847/203/444 +f 2851/202/388 2852/199/388 2853/200/388 +f 2853/200/388 2854/201/388 2851/202/388 +f 2855/207/398 2856/209/398 2857/208/398 +f 2857/208/398 2858/207/398 2855/207/398 +f 2859/209/445 2860/211/445 2861/210/445 +f 2850/212/446 2849/214/446 2862/213/446 +f 2862/213/446 2863/196/446 2850/212/446 +f 2864/210/447 2865/211/447 2866/209/447 +f 2867/215/448 2866/209/448 2865/211/448 +f 2865/211/448 2868/216/448 2867/215/448 +f 2869/217/449 2842/196/450 2841/197/450 +f 2841/197/450 2870/218/449 2869/217/449 +f 2871/219/451 2847/203/451 2850/204/451 +f 2850/204/451 2872/220/451 2871/219/451 +f 2873/209/391 2855/207/391 2858/207/391 +f 2858/207/391 2874/208/391 2873/209/391 +f 2850/212/452 2863/196/452 2875/213/452 +f 2875/213/452 2872/214/452 2850/212/452 +f 2867/215/453 2868/216/453 2860/211/453 +f 2860/211/453 2859/209/453 2867/215/453 +f 2876/221/388 2840/221/388 2839/222/388 +f 2839/222/388 2862/222/388 2876/221/388 +f 2862/222/402 2839/222/402 2842/203/402 +f 2842/203/402 2863/203/402 2862/222/402 +f 2863/203/401 2842/203/401 2869/206/401 +f 2869/206/401 2875/206/401 2863/203/401 +f 2875/206/390 2869/206/390 2870/223/390 +f 2870/223/390 2877/223/390 2875/206/390 +f 2877/224/454 2870/224/454 2841/226/454 +f 2841/226/454 2878/225/454 2877/224/454 +f 2878/225/455 2841/226/455 2840/224/455 +f 2840/224/455 2876/224/455 2878/225/455 +f 2872/214/447 2875/213/447 2877/228/447 +f 2877/228/447 2879/227/447 2872/214/447 +f 2879/229/388 2880/221/388 2871/219/388 +f 2871/219/388 2872/220/388 2879/229/388 +f 2848/206/390 2881/223/390 2882/230/390 +f 2882/230/390 2849/205/390 2848/206/390 +f 2882/227/445 2876/228/445 2862/213/445 +f 2862/213/445 2849/214/445 2882/227/445 +f 2845/201/390 2883/202/390 2884/199/390 +f 2884/199/390 2846/200/390 2845/201/390 +f 2882/231/456 2861/233/456 2860/232/456 +f 2860/232/456 2876/224/456 2882/231/456 +f 2876/224/455 2860/232/455 2868/234/455 +f 2868/234/455 2878/225/455 2876/224/455 +f 2878/225/454 2868/234/454 2865/232/454 +f 2865/232/454 2877/224/454 2878/225/454 +f 2877/224/457 2865/232/457 2864/233/457 +f 2864/233/457 2879/231/457 2877/224/457 +f 2853/200/388 2885/199/388 2886/202/388 +f 2886/202/388 2854/201/388 2853/200/388 +f 2857/208/398 2866/236/398 2867/235/398 +f 2867/235/398 2858/207/398 2857/208/398 +f 2858/207/391 2867/235/391 2859/236/391 +f 2859/236/391 2874/208/391 2858/207/391 +f 2881/236/27 2843/238/27 2846/237/27 +f 2846/237/27 2882/231/27 2881/236/27 +f 2882/231/27 2846/237/27 2884/239/27 +f 2884/239/27 2861/233/27 2882/231/27 +f 2861/210/458 2884/241/458 2883/240/458 +f 2883/240/458 2859/209/458 2861/210/458 +f 2859/236/26 2883/238/26 2845/242/26 +f 2845/242/26 2874/208/26 2859/236/26 +f 2874/208/26 2845/242/26 2844/240/26 +f 2844/240/26 2873/209/26 2874/208/26 +f 2856/209/26 2851/240/26 2854/242/26 +f 2854/242/26 2857/208/26 2856/209/26 +f 2857/208/26 2854/242/26 2886/238/26 +f 2886/238/26 2866/236/26 2857/208/26 +f 2866/209/459 2886/240/459 2885/241/459 +f 2885/241/459 2864/210/459 2866/209/459 +f 2864/233/27 2885/239/27 2853/237/27 +f 2853/237/27 2879/231/27 2864/233/27 +f 2879/231/27 2853/237/27 2852/238/27 +f 2852/238/27 2880/236/27 2879/231/27 +f 2887/243/154 2888/246/154 2889/245/154 +f 2889/245/154 2890/244/154 2887/243/154 +f 2887/247/1 2891/250/1 2892/249/1 +f 2892/249/1 2888/248/1 2887/247/1 +f 2888/246/155 2892/252/155 2893/251/155 +f 2893/251/155 2889/245/155 2888/246/155 +f 2889/248/7 2893/249/7 2894/250/7 +f 2894/250/7 2890/247/7 2889/248/7 +f 2895/243/160 2896/246/160 2897/245/160 +f 2897/245/160 2898/244/160 2895/243/160 +f 2895/247/163 2899/250/163 2900/249/163 +f 2900/249/163 2896/248/163 2895/247/163 +f 2896/246/162 2900/252/162 2901/251/162 +f 2901/251/162 2897/245/162 2896/246/162 +f 2897/248/161 2901/249/161 2902/250/161 +f 2902/250/161 2898/247/161 2897/248/161 +f 2903/243/148 2904/246/148 2905/245/148 +f 2905/245/148 2906/244/148 2903/243/148 +f 2903/247/7 2907/250/7 2908/249/7 +f 2908/249/7 2904/248/7 2903/247/7 +f 2904/246/149 2908/252/149 2909/251/149 +f 2909/251/149 2905/245/149 2904/246/149 +f 2905/248/1 2909/249/1 2910/250/1 +f 2910/250/1 2906/247/1 2905/248/1 +f 2911/243/460 2912/246/460 2913/245/460 +f 2913/245/460 2914/244/460 2911/243/460 +f 2911/247/461 2915/250/461 2916/249/461 +f 2916/249/461 2912/248/461 2911/247/461 +f 2912/246/462 2916/252/462 2917/251/462 +f 2917/251/462 2913/245/462 2912/246/462 +f 2913/248/463 2917/249/463 2918/250/463 +f 2918/250/463 2914/247/463 2913/248/463 +f 2919/243/150 2920/246/150 2921/245/150 +f 2921/245/150 2922/244/150 2919/243/150 +f 2919/247/153 2923/250/153 2924/249/153 +f 2924/249/153 2920/248/153 2919/247/153 +f 2920/246/152 2924/252/152 2925/251/152 +f 2925/251/152 2921/245/152 2920/246/152 +f 2921/248/151 2925/249/151 2926/250/151 +f 2926/250/151 2922/247/151 2921/248/151 +f 2927/195/443 2928/198/443 2929/197/443 +f 2929/197/443 2930/196/443 2927/195/443 +f 2931/199/390 2932/202/390 2933/201/390 +f 2933/201/390 2934/200/390 2931/199/390 +f 2935/203/444 2936/206/444 2937/205/444 +f 2937/205/444 2938/204/444 2935/203/444 +f 2939/202/388 2940/199/388 2941/200/388 +f 2941/200/388 2942/201/388 2939/202/388 +f 2943/207/398 2944/209/398 2945/208/398 +f 2945/208/398 2946/207/398 2943/207/398 +f 2947/209/445 2948/211/445 2949/210/445 +f 2938/212/446 2937/214/446 2950/213/446 +f 2950/213/446 2951/196/446 2938/212/446 +f 2952/210/447 2953/211/447 2954/209/447 +f 2955/215/448 2954/209/448 2953/211/448 +f 2953/211/448 2956/216/448 2955/215/448 +f 2957/217/449 2930/196/450 2929/197/450 +f 2929/197/450 2958/218/449 2957/217/449 +f 2959/219/451 2935/203/451 2938/204/451 +f 2938/204/451 2960/220/451 2959/219/451 +f 2961/209/391 2943/207/391 2946/207/391 +f 2946/207/391 2962/208/391 2961/209/391 +f 2938/212/452 2951/196/452 2963/213/452 +f 2963/213/452 2960/214/452 2938/212/452 +f 2955/215/453 2956/216/453 2948/211/453 +f 2948/211/453 2947/209/453 2955/215/453 +f 2964/221/388 2928/221/388 2927/222/388 +f 2927/222/388 2950/222/388 2964/221/388 +f 2950/222/402 2927/222/402 2930/203/402 +f 2930/203/402 2951/203/402 2950/222/402 +f 2951/203/401 2930/203/401 2957/206/401 +f 2957/206/401 2963/206/401 2951/203/401 +f 2963/206/390 2957/206/390 2958/223/390 +f 2958/223/390 2965/223/390 2963/206/390 +f 2965/224/454 2958/224/454 2929/226/454 +f 2929/226/454 2966/225/454 2965/224/454 +f 2966/225/455 2929/226/455 2928/224/455 +f 2928/224/455 2964/224/455 2966/225/455 +f 2960/214/447 2963/213/447 2965/228/447 +f 2965/228/447 2967/227/447 2960/214/447 +f 2967/229/388 2968/221/388 2959/219/388 +f 2959/219/388 2960/220/388 2967/229/388 +f 2936/206/390 2969/223/390 2970/230/390 +f 2970/230/390 2937/205/390 2936/206/390 +f 2970/227/445 2964/228/445 2950/213/445 +f 2950/213/445 2937/214/445 2970/227/445 +f 2933/201/390 2971/202/390 2972/199/390 +f 2972/199/390 2934/200/390 2933/201/390 +f 2970/231/456 2949/233/456 2948/232/456 +f 2948/232/456 2964/224/456 2970/231/456 +f 2964/224/455 2948/232/455 2956/234/455 +f 2956/234/455 2966/225/455 2964/224/455 +f 2966/225/454 2956/234/454 2953/232/454 +f 2953/232/454 2965/224/454 2966/225/454 +f 2965/224/457 2953/232/457 2952/233/457 +f 2952/233/457 2967/231/457 2965/224/457 +f 2941/200/388 2973/199/388 2974/202/388 +f 2974/202/388 2942/201/388 2941/200/388 +f 2945/208/398 2954/236/398 2955/235/398 +f 2955/235/398 2946/207/398 2945/208/398 +f 2946/207/391 2955/235/391 2947/236/391 +f 2947/236/391 2962/208/391 2946/207/391 +f 2969/236/27 2931/238/27 2934/237/27 +f 2934/237/27 2970/231/27 2969/236/27 +f 2970/231/27 2934/237/27 2972/239/27 +f 2972/239/27 2949/233/27 2970/231/27 +f 2949/210/458 2972/241/458 2971/240/458 +f 2971/240/458 2947/209/458 2949/210/458 +f 2947/236/26 2971/238/26 2933/242/26 +f 2933/242/26 2962/208/26 2947/236/26 +f 2962/208/26 2933/242/26 2932/240/26 +f 2932/240/26 2961/209/26 2962/208/26 +f 2944/209/26 2939/240/26 2942/242/26 +f 2942/242/26 2945/208/26 2944/209/26 +f 2945/208/26 2942/242/26 2974/238/26 +f 2974/238/26 2954/236/26 2945/208/26 +f 2954/209/459 2974/240/459 2973/241/459 +f 2973/241/459 2952/210/459 2954/209/459 +f 2952/233/27 2973/239/27 2941/237/27 +f 2941/237/27 2967/231/27 2952/233/27 +f 2967/231/27 2941/237/27 2940/238/27 +f 2940/238/27 2968/236/27 2967/231/27 +f 2975/195/464 2976/198/464 2977/197/4 +f 2977/197/4 2978/196/4 2975/195/464 +f 2979/199/465 2980/202/465 2981/201/465 +f 2981/201/465 2982/200/465 2979/199/465 +f 2983/203/421 2984/206/421 2985/205/421 +f 2985/205/421 2986/204/421 2983/203/421 +f 2987/202/437 2988/199/437 2989/200/437 +f 2989/200/437 2990/201/437 2987/202/437 +f 2991/207/466 2992/209/466 2993/208/466 +f 2993/208/466 2994/207/466 2991/207/466 +f 2995/209/107 2996/211/107 2997/210/107 +f 2986/212/467 2985/214/467 2998/213/467 +f 2998/213/467 2999/196/467 2986/212/467 +f 3000/210/468 3001/211/468 3002/209/468 +f 3003/215/469 3002/209/469 3001/211/469 +f 3001/211/469 3004/216/469 3003/215/469 +f 3005/217/103 2978/196/103 2977/197/103 +f 2977/197/103 3006/218/103 3005/217/103 +f 3007/219/470 2983/203/414 2986/204/414 +f 2986/204/414 3008/220/414 3007/219/470 +f 3009/209/471 2991/207/471 2994/207/471 +f 2994/207/471 3010/208/471 3009/209/471 +f 2986/212/472 2999/196/472 3011/213/472 +f 3011/213/472 3008/214/472 2986/212/472 +f 3003/215/332 3004/216/332 2996/211/332 +f 2996/211/332 2995/209/332 3003/215/332 +f 3012/221/437 2976/221/437 2975/222/437 +f 2975/222/437 2998/222/437 3012/221/437 +f 2998/222/426 2975/222/426 2978/203/426 +f 2978/203/426 2999/203/426 2998/222/426 +f 2999/203/425 2978/203/425 3005/206/425 +f 3005/206/425 3011/206/425 2999/203/425 +f 3011/206/465 3005/206/465 3006/223/465 +f 3006/223/465 3013/223/465 3011/206/465 +f 3013/224/473 3006/224/473 2977/226/473 +f 2977/226/473 3014/225/473 3013/224/473 +f 3014/225/430 2977/226/430 2976/224/430 +f 2976/224/430 3012/224/430 3014/225/430 +f 3008/214/468 3011/213/468 3013/228/468 +f 3013/228/468 3015/227/468 3008/214/468 +f 3015/229/437 3016/221/437 3007/219/437 +f 3007/219/437 3008/220/437 3015/229/437 +f 2984/206/465 3017/223/465 3018/230/465 +f 3018/230/465 2985/205/465 2984/206/465 +f 3018/227/107 3012/228/107 2998/213/107 +f 2998/213/107 2985/214/107 3018/227/107 +f 2981/201/465 3019/202/465 3020/199/465 +f 3020/199/465 2982/200/465 2981/201/465 +f 3018/231/474 2997/233/474 2996/232/474 +f 2996/232/474 3012/224/474 3018/231/474 +f 3012/224/430 2996/232/430 3004/234/430 +f 3004/234/430 3014/225/430 3012/224/430 +f 3014/225/473 3004/234/473 3001/232/473 +f 3001/232/473 3013/224/473 3014/225/473 +f 3013/224/428 3001/232/428 3000/233/428 +f 3000/233/428 3015/231/428 3013/224/428 +f 2989/200/437 3021/199/437 3022/202/437 +f 3022/202/437 2990/201/437 2989/200/437 +f 2993/208/466 3002/236/466 3003/235/466 +f 3003/235/466 2994/207/466 2993/208/466 +f 2994/207/471 3003/235/471 2995/236/471 +f 2995/236/471 3010/208/471 2994/207/471 +f 3017/236/27 2979/238/27 2982/237/27 +f 2982/237/27 3018/231/27 3017/236/27 +f 3018/231/27 2982/237/27 3020/239/27 +f 3020/239/27 2997/233/27 3018/231/27 +f 2997/210/193 3020/241/193 3019/240/193 +f 3019/240/193 2995/209/193 2997/210/193 +f 2995/236/26 3019/238/26 2981/242/26 +f 2981/242/26 3010/208/26 2995/236/26 +f 3010/208/26 2981/242/26 2980/240/26 +f 2980/240/26 3009/209/26 3010/208/26 +f 2992/209/26 2987/240/26 2990/242/26 +f 2990/242/26 2993/208/26 2992/209/26 +f 2993/208/26 2990/242/26 3022/238/26 +f 3022/238/26 3002/236/26 2993/208/26 +f 3002/209/475 3022/240/475 3021/241/475 +f 3021/241/475 3000/210/475 3002/209/475 +f 3000/233/27 3021/239/27 2989/237/27 +f 2989/237/27 3015/231/27 3000/233/27 +f 3015/231/27 2989/237/27 2988/238/27 +f 2988/238/27 3016/236/27 3015/231/27 +f 3023/243/187 3024/246/187 3025/245/187 +f 3025/245/187 3026/244/187 3023/243/187 +f 3023/247/161 3027/250/161 3028/249/161 +f 3028/249/161 3024/248/161 3023/247/161 +f 3024/246/188 3028/252/189 3029/251/188 +f 3029/251/188 3025/245/188 3024/246/188 +f 3025/248/163 3029/249/163 3030/250/163 +f 3030/250/163 3026/247/163 3025/248/163 +f 3031/195/4 3032/198/4 3033/197/4 +f 3033/197/4 3034/196/4 3031/195/4 +f 3035/199/465 3036/202/465 3037/201/465 +f 3037/201/465 3038/200/465 3035/199/465 +f 3039/203/421 3040/206/421 3041/205/421 +f 3041/205/421 3042/204/421 3039/203/421 +f 3043/202/437 3044/199/437 3045/200/437 +f 3045/200/437 3046/201/437 3043/202/437 +f 3047/207/466 3048/209/466 3049/208/466 +f 3049/208/466 3050/207/466 3047/207/466 +f 3051/209/107 3052/211/107 3053/210/107 +f 3042/212/467 3041/214/467 3054/213/467 +f 3054/213/467 3055/196/467 3042/212/467 +f 3056/210/468 3057/211/468 3058/209/468 +f 3059/215/469 3058/209/469 3057/211/469 +f 3057/211/469 3060/216/469 3059/215/469 +f 3061/217/103 3034/196/103 3033/197/103 +f 3033/197/103 3062/218/103 3061/217/103 +f 3063/219/414 3039/203/414 3042/204/470 +f 3042/204/470 3064/220/414 3063/219/414 +f 3065/209/471 3047/207/471 3050/207/471 +f 3050/207/471 3066/208/471 3065/209/471 +f 3042/212/472 3055/196/472 3067/213/472 +f 3067/213/472 3064/214/472 3042/212/472 +f 3059/215/332 3060/216/332 3052/211/332 +f 3052/211/332 3051/209/332 3059/215/332 +f 3068/221/437 3032/221/437 3031/222/437 +f 3031/222/437 3054/222/437 3068/221/437 +f 3054/222/426 3031/222/426 3034/203/426 +f 3034/203/426 3055/203/426 3054/222/426 +f 3055/203/425 3034/203/425 3061/206/425 +f 3061/206/425 3067/206/425 3055/203/425 +f 3067/206/465 3061/206/465 3062/223/465 +f 3062/223/465 3069/223/465 3067/206/465 +f 3069/224/473 3062/224/473 3033/226/473 +f 3033/226/473 3070/225/473 3069/224/473 +f 3070/225/430 3033/226/430 3032/224/430 +f 3032/224/430 3068/224/430 3070/225/430 +f 3064/214/468 3067/213/468 3069/228/468 +f 3069/228/468 3071/227/468 3064/214/468 +f 3071/229/437 3072/221/437 3063/219/437 +f 3063/219/437 3064/220/437 3071/229/437 +f 3040/206/465 3073/223/465 3074/230/465 +f 3074/230/465 3041/205/465 3040/206/465 +f 3074/227/107 3068/228/107 3054/213/107 +f 3054/213/107 3041/214/107 3074/227/107 +f 3037/201/465 3075/202/465 3076/199/465 +f 3076/199/465 3038/200/465 3037/201/465 +f 3074/231/474 3053/233/474 3052/232/474 +f 3052/232/474 3068/224/474 3074/231/474 +f 3068/224/430 3052/232/430 3060/234/430 +f 3060/234/430 3070/225/430 3068/224/430 +f 3070/225/473 3060/234/473 3057/232/473 +f 3057/232/473 3069/224/473 3070/225/473 +f 3069/224/428 3057/232/428 3056/233/428 +f 3056/233/428 3071/231/428 3069/224/428 +f 3045/200/437 3077/199/437 3078/202/437 +f 3078/202/437 3046/201/437 3045/200/437 +f 3049/208/466 3058/236/466 3059/235/466 +f 3059/235/466 3050/207/466 3049/208/466 +f 3050/207/471 3059/235/471 3051/236/471 +f 3051/236/471 3066/208/471 3050/207/471 +f 3073/236/27 3035/238/27 3038/237/27 +f 3038/237/27 3074/231/27 3073/236/27 +f 3074/231/27 3038/237/27 3076/239/27 +f 3076/239/27 3053/233/27 3074/231/27 +f 3053/210/193 3076/241/193 3075/240/193 +f 3075/240/193 3051/209/193 3053/210/193 +f 3051/236/26 3075/238/26 3037/242/26 +f 3037/242/26 3066/208/26 3051/236/26 +f 3066/208/26 3037/242/26 3036/240/26 +f 3036/240/26 3065/209/26 3066/208/26 +f 3048/209/26 3043/240/26 3046/242/26 +f 3046/242/26 3049/208/26 3048/209/26 +f 3049/208/26 3046/242/26 3078/238/26 +f 3078/238/26 3058/236/26 3049/208/26 +f 3058/209/475 3078/240/475 3077/241/475 +f 3077/241/475 3056/210/475 3058/209/475 +f 3056/233/27 3077/239/27 3045/237/27 +f 3045/237/27 3071/231/27 3056/233/27 +f 3071/231/27 3045/237/27 3044/238/27 +f 3044/238/27 3072/236/27 3071/231/27 +f 3079/243/476 3080/246/476 3081/245/476 +f 3081/245/476 3082/244/476 3079/243/476 +f 3079/247/477 3083/250/477 3084/249/477 +f 3084/249/477 3080/248/477 3079/247/477 +f 3080/246/478 3084/252/478 3085/251/478 +f 3085/251/478 3081/245/478 3080/246/478 +f 3081/248/479 3085/249/479 3086/250/479 +f 3086/250/479 3082/247/479 3081/248/479 +f 3087/195/387 3088/198/387 3089/197/387 +f 3089/197/387 3090/196/387 3087/195/387 +f 3091/199/388 3092/202/388 3093/201/388 +f 3093/201/388 3094/200/388 3091/199/388 +f 3095/203/389 3096/206/389 3097/205/389 +f 3097/205/389 3098/204/389 3095/203/389 +f 3099/202/390 3100/199/390 3101/200/390 +f 3101/200/390 3102/201/390 3099/202/390 +f 3103/207/391 3104/209/391 3105/208/391 +f 3105/208/391 3106/207/391 3103/207/391 +f 3107/209/392 3108/211/392 3109/210/392 +f 3098/212/393 3097/214/393 3110/213/393 +f 3110/213/393 3111/196/393 3098/212/393 +f 3112/210/394 3113/211/394 3114/209/394 +f 3115/215/395 3114/209/395 3113/211/395 +f 3113/211/395 3116/216/395 3115/215/395 +f 3117/217/396 3090/196/396 3089/197/396 +f 3089/197/396 3118/218/396 3117/217/396 +f 3119/219/397 3095/203/397 3098/204/397 +f 3098/204/397 3120/220/397 3119/219/397 +f 3121/209/398 3103/207/398 3106/207/398 +f 3106/207/398 3122/208/398 3121/209/398 +f 3098/212/399 3111/196/399 3123/213/399 +f 3123/213/399 3120/214/399 3098/212/399 +f 3115/215/400 3116/216/400 3108/211/400 +f 3108/211/400 3107/209/400 3115/215/400 +f 3124/221/390 3088/221/390 3087/222/390 +f 3087/222/390 3110/222/390 3124/221/390 +f 3110/222/401 3087/222/401 3090/203/401 +f 3090/203/401 3111/203/401 3110/222/401 +f 3111/203/402 3090/203/402 3117/206/402 +f 3117/206/402 3123/206/402 3111/203/402 +f 3123/206/388 3117/206/388 3118/223/388 +f 3118/223/388 3125/223/388 3123/206/388 +f 3125/224/403 3118/224/403 3089/226/403 +f 3089/226/403 3126/225/403 3125/224/403 +f 3126/225/404 3089/226/404 3088/224/404 +f 3088/224/404 3124/224/404 3126/225/404 +f 3120/214/394 3123/213/394 3125/228/394 +f 3125/228/394 3127/227/394 3120/214/394 +f 3127/229/390 3128/221/390 3119/219/390 +f 3119/219/390 3120/220/390 3127/229/390 +f 3096/206/388 3129/223/388 3130/230/388 +f 3130/230/388 3097/205/388 3096/206/388 +f 3130/227/392 3124/228/392 3110/213/392 +f 3110/213/392 3097/214/392 3130/227/392 +f 3093/201/388 3131/202/388 3132/199/388 +f 3132/199/388 3094/200/388 3093/201/388 +f 3130/231/405 3109/233/405 3108/232/405 +f 3108/232/405 3124/224/405 3130/231/405 +f 3124/224/404 3108/232/404 3116/234/404 +f 3116/234/404 3126/225/404 3124/224/404 +f 3126/225/403 3116/234/403 3113/232/403 +f 3113/232/403 3125/224/403 3126/225/403 +f 3125/224/407 3113/232/407 3112/233/407 +f 3112/233/407 3127/231/407 3125/224/407 +f 3101/200/390 3133/199/390 3134/202/390 +f 3134/202/390 3102/201/390 3101/200/390 +f 3105/208/391 3114/236/391 3115/235/391 +f 3115/235/391 3106/207/391 3105/208/391 +f 3106/207/398 3115/235/398 3107/236/398 +f 3107/236/398 3122/208/398 3106/207/398 +f 3129/236/27 3091/238/27 3094/237/27 +f 3094/237/27 3130/231/27 3129/236/27 +f 3130/231/27 3094/237/27 3132/239/27 +f 3132/239/27 3109/233/27 3130/231/27 +f 3109/210/409 3132/241/409 3131/240/409 +f 3131/240/409 3107/209/409 3109/210/409 +f 3107/236/26 3131/238/26 3093/242/26 +f 3093/242/26 3122/208/26 3107/236/26 +f 3122/208/26 3093/242/26 3092/240/26 +f 3092/240/26 3121/209/26 3122/208/26 +f 3104/209/26 3099/240/26 3102/242/26 +f 3102/242/26 3105/208/26 3104/209/26 +f 3105/208/26 3102/242/26 3134/238/26 +f 3134/238/26 3114/236/26 3105/208/26 +f 3114/209/410 3134/240/410 3133/241/410 +f 3133/241/410 3112/210/410 3114/209/410 +f 3112/233/27 3133/239/27 3101/237/27 +f 3101/237/27 3127/231/27 3112/233/27 +f 3127/231/27 3101/237/27 3100/238/27 +f 3100/238/27 3128/236/27 3127/231/27 +f 3135/243/180 3136/246/180 3137/245/180 +f 3137/245/180 3138/244/180 3135/243/180 +f 3135/247/151 3139/250/151 3140/249/151 +f 3140/249/151 3136/248/151 3135/247/151 +f 3136/246/181 3140/252/181 3141/251/182 +f 3141/251/182 3137/245/181 3136/246/181 +f 3137/248/153 3141/249/153 3142/250/153 +f 3142/250/153 3138/247/153 3137/248/153 +f 3143/253/24 3144/256/24 3145/255/24 +f 3145/255/24 3146/254/24 3143/253/24 +f 3147/257/23 3148/258/23 3144/256/23 +f 3144/256/23 3143/253/23 3147/257/23 +f 3149/259/191 3150/260/22 3148/258/191 +f 3148/258/191 3147/257/191 3149/259/191 +f 3151/261/21 3152/264/21 3150/263/21 +f 3150/263/21 3149/262/21 3151/261/21 +f 3153/265/20 3154/266/20 3152/264/20 +f 3152/264/20 3151/261/20 3153/265/20 +f 3155/267/19 3156/268/19 3154/266/19 +f 3154/266/19 3153/265/19 3155/267/19 +f 3157/269/194 3158/270/194 3156/268/18 +f 3156/268/18 3155/267/18 3157/269/194 +f 3159/271/17 3160/272/17 3158/270/17 +f 3158/270/17 3157/269/17 3159/271/17 +f 3161/273/16 3162/274/16 3160/272/16 +f 3160/272/16 3159/271/16 3161/273/16 +f 3163/275/118 3164/276/118 3162/274/15 +f 3162/274/15 3161/273/118 3163/275/118 +f 3165/277/14 3166/278/14 3164/276/14 +f 3164/276/14 3163/275/14 3165/277/14 +f 3146/254/13 3145/255/13 3166/278/192 +f 3166/278/192 3165/277/192 3146/254/13 +f 3144/279/27 3167/282/27 3168/281/27 +f 3168/281/27 3145/280/27 3144/279/27 +f 3169/283/27 3170/284/27 3171/282/27 +f 3171/282/27 3172/279/27 3169/283/27 +f 3150/285/27 3173/285/27 3174/284/27 +f 3174/284/27 3148/283/27 3150/285/27 +f 3175/286/27 3176/287/27 3177/285/27 +f 3177/285/27 3178/285/27 3175/286/27 +f 3154/288/27 3179/289/27 3180/287/27 +f 3180/287/27 3152/286/27 3154/288/27 +f 3181/290/27 3182/291/27 3183/289/27 +f 3183/289/27 3184/288/27 3181/290/27 +f 3158/292/27 3185/293/27 3186/291/27 +f 3186/291/27 3156/290/27 3158/292/27 +f 3187/294/27 3188/295/27 3189/293/27 +f 3189/293/27 3190/292/27 3187/294/27 +f 3162/296/27 3191/297/27 3192/295/27 +f 3192/295/27 3160/294/27 3162/296/27 +f 3193/298/27 3194/299/27 3195/297/27 +f 3195/297/27 3196/296/27 3193/298/27 +f 3166/300/27 3197/300/27 3198/299/27 +f 3198/299/27 3164/298/27 3166/300/27 +f 3199/280/27 3200/281/27 3201/300/27 +f 3201/300/27 3202/300/27 3199/280/27 +f 3167/301/18 3203/304/18 3204/303/18 +f 3204/303/18 3168/302/18 3167/301/18 +f 3174/305/17 3205/306/17 3203/304/17 +f 3203/304/17 3167/301/17 3174/305/17 +f 3173/307/16 3206/308/16 3205/306/16 +f 3205/306/16 3174/305/16 3173/307/16 +f 3180/309/15 3207/310/15 3206/308/15 +f 3206/308/15 3173/307/15 3180/309/15 +f 3179/311/14 3208/312/14 3207/310/14 +f 3207/310/14 3180/309/14 3179/311/14 +f 3186/313/13 3209/314/13 3208/312/13 +f 3208/312/13 3179/311/13 3186/313/13 +f 3185/315/25 3210/316/25 3209/314/24 +f 3209/314/24 3186/313/24 3185/315/25 +f 3192/317/23 3211/318/23 3210/316/23 +f 3210/316/23 3185/315/23 3192/317/23 +f 3191/319/22 3212/320/22 3211/318/22 +f 3211/318/22 3192/317/22 3191/319/22 +f 3198/321/21 3213/324/21 3212/323/178 +f 3212/323/178 3191/322/21 3198/321/21 +f 3197/325/20 3214/326/20 3213/324/20 +f 3213/324/20 3198/321/20 3197/325/20 +f 3168/302/19 3204/303/19 3214/326/190 +f 3214/326/190 3197/325/190 3168/302/19 +f 3203/327/27 3215/329/27 3204/328/27 +f 3205/330/27 3215/329/27 3203/327/27 +f 3206/331/27 3215/329/27 3205/330/27 +f 3207/332/27 3215/329/27 3206/331/27 +f 3208/333/27 3215/329/27 3207/332/27 +f 3209/334/27 3215/329/27 3208/333/27 +f 3210/335/27 3215/329/27 3209/334/27 +f 3211/336/27 3215/329/27 3210/335/27 +f 3212/337/27 3215/329/27 3211/336/27 +f 3213/338/27 3215/329/27 3212/337/27 +f 3214/339/27 3215/329/27 3213/338/27 +f 3204/328/27 3215/329/27 3214/339/27 +f 3148/258/23 3169/341/23 3172/340/23 +f 3172/340/23 3144/256/23 3148/258/23 +f 3144/279/153 3172/279/153 3171/282/153 +f 3171/282/153 3167/282/153 3144/279/153 +f 3167/301/17 3171/343/17 3170/342/17 +f 3170/342/17 3174/305/17 3167/301/17 +f 3174/284/196 3170/284/196 3169/283/196 +f 3169/283/196 3148/283/196 3174/284/196 +f 3152/264/21 3175/345/21 3178/344/178 +f 3178/344/178 3150/263/21 3152/264/21 +f 3150/285/1 3178/285/1 3177/285/1 +f 3177/285/1 3173/285/1 3150/285/1 +f 3173/307/15 3177/347/15 3176/346/15 +f 3176/346/15 3180/309/15 3173/307/15 +f 3180/287/195 3176/287/195 3175/286/195 +f 3175/286/195 3152/286/195 3180/287/195 +f 3156/268/19 3181/349/19 3184/348/19 +f 3184/348/19 3154/266/19 3156/268/19 +f 3154/288/161 3184/288/161 3183/289/161 +f 3183/289/161 3179/289/161 3154/288/161 +f 3179/311/13 3183/351/13 3182/350/13 +f 3182/350/13 3186/313/13 3179/311/13 +f 3186/291/4 3182/291/4 3181/290/4 +f 3181/290/4 3156/290/4 3186/291/4 +f 3160/272/17 3187/353/17 3190/352/17 +f 3190/352/17 3158/270/17 3160/272/17 +f 3158/292/151 3190/292/151 3189/293/151 +f 3189/293/151 3185/293/151 3158/292/151 +f 3185/315/23 3189/355/23 3188/354/23 +f 3188/354/23 3192/317/23 3185/315/23 +f 3192/295/198 3188/295/198 3187/294/198 +f 3187/294/198 3160/294/198 3192/295/198 +f 3164/276/118 3193/357/15 3196/356/15 +f 3196/356/15 3162/274/15 3164/276/118 +f 3162/296/7 3196/296/7 3195/297/7 +f 3195/297/7 3191/297/7 3162/296/7 +f 3191/322/21 3195/359/21 3194/358/21 +f 3194/358/21 3198/321/21 3191/322/21 +f 3198/299/197 3194/299/197 3193/298/197 +f 3193/298/197 3164/298/197 3198/299/197 +f 3145/255/13 3199/361/13 3202/360/13 +f 3202/360/13 3166/278/192 3145/255/13 +f 3166/300/163 3202/300/163 3201/300/163 +f 3201/300/163 3197/300/163 3166/300/163 +f 3197/325/190 3201/363/190 3200/362/19 +f 3200/362/19 3168/302/19 3197/325/190 +f 3168/281/10 3200/281/10 3199/280/10 +f 3199/280/10 3145/280/10 3168/281/10 +f 3216/1/7 3217/2/8 3218/3/8 +f 3218/3/8 3219/4/7 3216/1/7 +f 3217/2/8 3220/5/9 3221/6/9 +f 3221/6/9 3218/3/8 3217/2/8 +f 3220/5/9 3222/7/10 3223/8/10 +f 3223/8/10 3221/6/9 3220/5/9 +f 3222/9/10 3224/10/11 3225/11/11 +f 3225/11/11 3223/12/10 3222/9/10 +f 3224/10/11 3226/13/12 3227/14/12 +f 3227/14/12 3225/11/11 3224/10/11 +f 3226/13/12 3228/15/1 3229/16/1 +f 3229/16/1 3227/14/12 3226/13/12 +f 3228/15/1 3230/17/2 3231/18/2 +f 3231/18/2 3229/16/1 3228/15/1 +f 3230/17/2 3232/19/3 3233/20/3 +f 3233/20/3 3231/18/2 3230/17/2 +f 3232/19/3 3234/21/4 3235/22/4 +f 3235/22/4 3233/20/3 3232/19/3 +f 3234/21/4 3236/23/5 3237/24/5 +f 3237/24/5 3235/22/4 3234/21/4 +f 3236/23/5 3238/25/6 3239/26/6 +f 3239/26/6 3237/24/5 3236/23/5 +f 3238/25/6 3216/1/7 3219/4/7 +f 3219/4/7 3239/26/6 3238/25/6 +f 3240/27/19 3241/28/19 3242/29/19 +f 3242/29/19 3243/30/19 3240/27/19 +f 3244/31/20 3240/27/20 3243/30/20 +f 3243/30/20 3245/32/20 3244/31/20 +f 3246/33/21 3244/31/21 3245/32/21 +f 3245/32/21 3247/34/21 3246/33/21 +f 3248/35/22 3246/36/22 3247/37/22 +f 3247/37/22 3249/38/22 3248/35/22 +f 3250/39/23 3248/35/23 3249/38/23 +f 3249/38/23 3251/40/23 3250/39/23 +f 3252/41/24 3250/39/24 3251/40/24 +f 3251/40/24 3253/42/24 3252/41/24 +f 3254/43/13 3252/41/13 3253/42/13 +f 3253/42/13 3255/44/13 3254/43/13 +f 3256/45/14 3254/43/14 3255/44/14 +f 3255/44/14 3257/46/14 3256/45/14 +f 3258/47/15 3256/45/15 3257/46/15 +f 3257/46/15 3259/48/15 3258/47/15 +f 3260/49/16 3258/47/16 3259/48/16 +f 3259/48/16 3261/50/16 3260/49/16 +f 3262/51/17 3260/49/17 3261/50/17 +f 3261/50/17 3263/52/17 3262/51/17 +f 3241/28/18 3262/51/194 3263/52/18 +f 3263/52/18 3242/29/18 3241/28/18 +f 3217/53/26 3216/54/26 3241/54/26 +f 3241/54/26 3240/53/26 3217/53/26 +f 3216/54/26 3238/55/26 3262/55/26 +f 3262/55/26 3241/54/26 3216/54/26 +f 3238/55/26 3236/56/26 3260/56/26 +f 3260/56/26 3262/55/26 3238/55/26 +f 3236/56/26 3234/57/26 3258/57/26 +f 3258/57/26 3260/56/26 3236/56/26 +f 3234/57/26 3232/58/26 3256/59/26 +f 3256/59/26 3258/57/26 3234/57/26 +f 3232/58/26 3230/60/26 3254/61/26 +f 3254/61/26 3256/59/26 3232/58/26 +f 3230/60/26 3228/62/26 3252/62/26 +f 3252/62/26 3254/61/26 3230/60/26 +f 3228/62/26 3226/63/26 3250/64/26 +f 3250/64/26 3252/62/26 3228/62/26 +f 3226/63/26 3224/65/26 3248/66/26 +f 3248/66/26 3250/64/26 3226/63/26 +f 3224/65/26 3222/67/26 3246/67/26 +f 3246/67/26 3248/66/26 3224/65/26 +f 3222/67/26 3220/68/26 3244/68/26 +f 3244/68/26 3246/67/26 3222/67/26 +f 3220/68/26 3217/53/26 3240/53/26 +f 3240/53/26 3244/68/26 3220/68/26 +f 3264/54/27 3265/53/27 3243/53/27 +f 3243/53/27 3242/54/27 3264/54/27 +f 3265/53/27 3266/68/27 3245/68/27 +f 3245/68/27 3243/53/27 3265/53/27 +f 3266/68/27 3267/67/27 3247/67/27 +f 3247/67/27 3245/68/27 3266/68/27 +f 3267/67/27 3268/65/27 3249/66/27 +f 3249/66/27 3247/67/27 3267/67/27 +f 3268/65/27 3269/63/27 3251/64/27 +f 3251/64/27 3249/66/27 3268/65/27 +f 3269/63/27 3270/62/27 3253/62/27 +f 3253/62/27 3251/64/27 3269/63/27 +f 3270/62/27 3271/60/27 3255/61/27 +f 3255/61/27 3253/62/27 3270/62/27 +f 3271/60/27 3272/58/27 3257/59/27 +f 3257/59/27 3255/61/27 3271/60/27 +f 3272/58/27 3273/57/27 3259/57/27 +f 3259/57/27 3257/59/27 3272/58/27 +f 3273/57/27 3274/56/27 3261/56/27 +f 3261/56/27 3259/57/27 3273/57/27 +f 3274/56/27 3275/55/27 3263/55/27 +f 3263/55/27 3261/56/27 3274/56/27 +f 3275/55/27 3264/54/27 3242/54/27 +f 3242/54/27 3263/55/27 3275/55/27 +f 3264/69/7 3276/70/7 3277/71/8 +f 3277/71/8 3265/72/8 3264/69/7 +f 3265/72/8 3277/71/8 3278/73/20 +f 3278/73/20 3266/74/20 3265/72/8 +f 3266/74/21 3278/73/21 3279/75/21 +f 3279/75/21 3267/76/21 3266/74/21 +f 3267/76/22 3279/75/22 3280/77/11 +f 3280/77/11 3268/78/11 3267/76/22 +f 3268/78/11 3280/77/11 3281/79/12 +f 3281/79/12 3269/80/12 3268/78/11 +f 3269/81/12 3281/82/12 3282/83/1 +f 3282/83/1 3270/84/1 3269/81/12 +f 3270/84/1 3282/83/1 3283/85/2 +f 3283/85/2 3271/86/2 3270/84/1 +f 3271/86/2 3283/85/2 3284/87/3 +f 3284/87/3 3272/88/3 3271/86/2 +f 3272/88/3 3284/87/3 3285/89/4 +f 3285/89/4 3273/90/4 3272/88/3 +f 3273/90/4 3285/89/4 3286/91/5 +f 3286/91/5 3274/92/5 3273/90/4 +f 3274/92/5 3286/91/5 3287/93/6 +f 3287/93/6 3275/94/6 3274/92/5 +f 3275/94/6 3287/93/6 3276/70/7 +f 3276/70/7 3264/69/7 3275/94/6 +f 3288/95/26 3289/96/26 3290/96/26 +f 3290/96/26 3291/95/26 3288/95/26 +f 3292/97/26 3288/95/26 3291/95/26 +f 3291/95/26 3293/97/26 3292/97/26 +f 3294/67/26 3292/97/26 3293/97/26 +f 3293/97/26 3295/98/26 3294/67/26 +f 3296/99/26 3294/67/26 3295/98/26 +f 3295/98/26 3297/99/26 3296/99/26 +f 3298/100/26 3296/99/26 3297/99/26 +f 3297/99/26 3299/100/26 3298/100/26 +f 3300/101/26 3298/100/26 3299/100/26 +f 3299/100/26 3301/101/26 3300/101/26 +f 3302/61/26 3300/101/26 3301/101/26 +f 3301/101/26 3303/61/26 3302/61/26 +f 3304/59/26 3302/61/26 3303/61/26 +f 3303/61/26 3305/102/26 3304/59/26 +f 3306/103/26 3304/59/26 3305/102/26 +f 3305/102/26 3307/103/26 3306/103/26 +f 3308/104/26 3306/103/26 3307/103/26 +f 3307/103/26 3309/105/26 3308/104/26 +f 3310/106/26 3308/104/26 3309/105/26 +f 3309/105/26 3311/106/26 3310/106/26 +f 3289/96/26 3310/106/26 3311/106/26 +f 3311/106/26 3290/96/26 3289/96/26 +f 3291/107/34 3290/108/34 3312/109/34 +f 3312/109/34 3313/110/34 3291/107/34 +f 3293/111/35 3291/107/35 3313/110/35 +f 3313/110/35 3314/112/35 3293/111/35 +f 3295/113/36 3293/111/36 3314/112/36 +f 3314/112/36 3315/114/36 3295/113/36 +f 3297/115/37 3295/113/37 3315/114/37 +f 3315/114/37 3316/116/37 3297/115/37 +f 3299/117/38 3297/115/38 3316/116/38 +f 3316/116/38 3317/118/38 3299/117/38 +f 3301/119/39 3299/117/39 3317/118/39 +f 3317/118/39 3318/120/39 3301/119/39 +f 3303/121/28 3301/119/28 3318/120/28 +f 3318/120/28 3319/122/28 3303/121/28 +f 3305/123/29 3303/121/29 3319/122/29 +f 3319/122/29 3320/124/29 3305/123/29 +f 3307/125/30 3305/123/30 3320/124/30 +f 3320/124/30 3321/126/30 3307/125/30 +f 3309/127/31 3307/128/31 3321/129/31 +f 3321/129/31 3322/130/31 3309/127/31 +f 3311/131/32 3309/127/32 3322/130/32 +f 3322/130/32 3323/132/32 3311/131/32 +f 3290/108/33 3311/131/33 3323/132/33 +f 3323/132/33 3312/109/33 3290/108/33 +f 3313/110/48 3312/109/48 3324/133/48 +f 3324/133/48 3325/134/48 3313/110/48 +f 3314/112/49 3313/110/49 3325/134/49 +f 3325/134/49 3326/135/49 3314/112/49 +f 3315/114/50 3314/112/50 3326/135/50 +f 3326/135/50 3327/136/50 3315/114/50 +f 3316/116/51 3315/114/51 3327/136/52 +f 3327/136/52 3328/137/51 3316/116/51 +f 3317/118/53 3316/116/53 3328/137/53 +f 3328/137/53 3329/138/53 3317/118/53 +f 3318/120/54 3317/118/54 3329/138/54 +f 3329/138/54 3330/139/54 3318/120/54 +f 3319/122/386 3318/120/40 3330/139/40 +f 3330/139/40 3331/140/40 3319/122/386 +f 3320/124/41 3319/122/41 3331/140/41 +f 3331/140/41 3332/141/41 3320/124/41 +f 3321/126/42 3320/124/42 3332/141/42 +f 3332/141/42 3333/142/43 3321/126/42 +f 3322/130/44 3321/129/44 3333/143/44 +f 3333/143/44 3334/144/44 3322/130/44 +f 3323/132/45 3322/130/45 3334/144/45 +f 3334/144/45 3335/145/45 3323/132/45 +f 3312/109/46 3323/132/385 3335/145/46 +f 3335/145/46 3324/133/46 3312/109/46 +f 3336/146/64 3337/147/64 3277/148/64 +f 3277/148/64 3276/149/64 3336/146/64 +f 3337/147/66 3338/150/66 3278/151/65 +f 3278/151/65 3277/148/65 3337/147/66 +f 3338/152/67 3339/153/67 3279/154/67 +f 3279/154/67 3278/155/67 3338/152/67 +f 3339/153/68 3340/142/68 3280/156/68 +f 3280/156/68 3279/154/68 3339/153/68 +f 3340/142/70 3341/157/70 3281/158/69 +f 3281/158/69 3280/156/69 3340/142/70 +f 3341/157/71 3342/159/71 3282/160/71 +f 3282/160/71 3281/158/71 3341/157/71 +f 3342/159/56 3343/161/56 3283/162/56 +f 3283/162/56 3282/160/56 3342/159/56 +f 3343/161/57 3344/163/57 3284/164/58 +f 3284/164/58 3283/162/58 3343/161/57 +f 3344/163/59 3345/165/59 3285/166/59 +f 3285/166/59 3284/164/59 3344/163/59 +f 3345/165/60 3346/167/60 3286/168/60 +f 3286/168/60 3285/166/60 3345/165/60 +f 3346/167/61 3347/169/61 3287/170/61 +f 3287/170/61 3286/168/62 3346/167/61 +f 3347/169/63 3336/146/63 3276/149/63 +f 3276/149/63 3287/170/63 3347/169/63 +f 3289/171/7 3288/172/8 3337/173/8 +f 3337/173/8 3336/174/7 3289/171/7 +f 3288/172/8 3292/175/9 3338/176/9 +f 3338/176/9 3337/173/8 3288/172/8 +f 3292/177/9 3294/178/10 3339/179/10 +f 3339/179/10 3338/180/9 3292/177/9 +f 3294/178/10 3296/86/11 3340/181/11 +f 3340/181/11 3339/179/10 3294/178/10 +f 3296/86/11 3298/182/12 3341/183/12 +f 3341/183/12 3340/181/11 3296/86/11 +f 3298/182/12 3300/184/1 3342/185/1 +f 3342/185/1 3341/183/12 3298/182/12 +f 3300/184/1 3302/186/2 3343/187/2 +f 3343/187/2 3342/185/1 3300/184/1 +f 3302/186/2 3304/188/3 3344/189/3 +f 3344/189/3 3343/187/2 3302/186/2 +f 3304/188/3 3306/190/4 3345/191/4 +f 3345/191/4 3344/189/3 3304/188/3 +f 3306/190/4 3308/76/5 3346/192/5 +f 3346/192/5 3345/191/4 3306/190/4 +f 3308/76/5 3310/193/6 3347/194/6 +f 3347/194/6 3346/192/5 3308/76/5 +f 3310/193/6 3289/171/7 3336/174/7 +f 3336/174/7 3347/194/6 3310/193/6 +f 3348/195/131 3349/196/131 3350/197/131 +f 3350/197/131 3351/198/131 3348/195/131 +f 3352/199/75 3353/200/75 3354/201/75 +f 3354/201/75 3355/202/75 3352/199/75 +f 3356/203/132 3357/204/132 3358/205/132 +f 3358/205/132 3359/206/132 3356/203/132 +f 3360/202/73 3361/201/73 3362/200/73 +f 3362/200/73 3363/199/73 3360/202/73 +f 3364/207/83 3365/207/83 3366/208/83 +f 3366/208/83 3367/209/83 3364/207/83 +f 3368/209/133 3369/210/133 3370/211/133 +f 3357/212/134 3371/196/134 3372/213/134 +f 3372/213/134 3358/214/134 3357/212/134 +f 3373/210/135 3374/209/135 3375/211/135 +f 3376/215/136 3377/216/136 3375/211/136 +f 3375/211/136 3374/209/136 3376/215/136 +f 3378/217/137 3379/218/137 3350/197/137 +f 3350/197/137 3349/196/137 3378/217/137 +f 3380/219/139 3381/220/139 3357/204/139 +f 3357/204/139 3356/203/139 3380/219/139 +f 3382/209/76 3383/208/76 3365/207/76 +f 3365/207/76 3364/207/76 3382/209/76 +f 3357/212/140 3381/214/140 3384/213/140 +f 3384/213/140 3371/196/140 3357/212/140 +f 3376/215/141 3368/209/141 3370/211/141 +f 3370/211/141 3377/216/141 3376/215/141 +f 3385/221/73 3372/222/73 3348/222/73 +f 3348/222/73 3351/221/73 3385/221/73 +f 3372/222/87 3371/203/87 3349/203/87 +f 3349/203/87 3348/222/87 3372/222/87 +f 3371/203/86 3384/206/86 3378/206/86 +f 3378/206/86 3349/203/86 3371/203/86 +f 3384/206/75 3386/223/75 3379/223/75 +f 3379/223/75 3378/206/75 3384/206/75 +f 3386/224/142 3387/225/142 3350/226/142 +f 3350/226/142 3379/224/142 3386/224/142 +f 3387/225/143 3385/224/143 3351/224/143 +f 3351/224/143 3350/226/143 3387/225/143 +f 3381/214/135 3388/227/135 3386/228/135 +f 3386/228/135 3384/213/135 3381/214/135 +f 3388/229/73 3381/220/73 3380/219/73 +f 3380/219/73 3389/221/73 3388/229/73 +f 3359/206/75 3358/205/75 3390/230/75 +f 3390/230/75 3391/223/75 3359/206/75 +f 3390/227/133 3358/214/133 3372/213/133 +f 3372/213/133 3385/228/133 3390/227/133 +f 3354/201/75 3353/200/75 3392/199/75 +f 3392/199/75 3393/202/75 3354/201/75 +f 3390/231/144 3385/224/144 3370/232/144 +f 3370/232/144 3369/233/144 3390/231/144 +f 3385/224/143 3387/225/143 3377/234/143 +f 3377/234/143 3370/232/143 3385/224/143 +f 3387/225/142 3386/224/142 3375/232/142 +f 3375/232/142 3377/234/142 3387/225/142 +f 3386/224/145 3388/231/145 3373/233/145 +f 3373/233/145 3375/232/145 3386/224/145 +f 3362/200/73 3361/201/73 3394/202/73 +f 3394/202/73 3395/199/73 3362/200/73 +f 3366/208/83 3365/207/83 3376/235/83 +f 3376/235/83 3374/236/83 3366/208/83 +f 3365/207/76 3383/208/76 3368/236/76 +f 3368/236/76 3376/235/76 3365/207/76 +f 3391/236/27 3390/231/27 3353/237/27 +f 3353/237/27 3352/238/27 3391/236/27 +f 3390/231/27 3369/233/27 3392/239/27 +f 3392/239/27 3353/237/27 3390/231/27 +f 3369/210/480 3368/209/480 3393/240/480 +f 3393/240/480 3392/241/480 3369/210/480 +f 3368/236/26 3383/208/26 3354/242/26 +f 3354/242/26 3393/238/26 3368/236/26 +f 3383/208/26 3382/209/26 3355/240/26 +f 3355/240/26 3354/242/26 3383/208/26 +f 3367/209/26 3366/208/26 3361/242/26 +f 3361/242/26 3360/240/26 3367/209/26 +f 3366/208/26 3374/236/26 3394/238/26 +f 3394/238/26 3361/242/26 3366/208/26 +f 3374/209/147 3373/210/147 3395/241/147 +f 3395/241/147 3394/240/147 3374/209/147 +f 3373/233/27 3388/231/27 3362/237/27 +f 3362/237/27 3395/239/27 3373/233/27 +f 3388/231/27 3389/236/27 3363/238/27 +f 3363/238/27 3362/237/27 3388/231/27 +f 3396/195/10 3397/196/10 3398/197/10 +f 3398/197/10 3399/198/10 3396/195/10 +f 3400/199/101 3401/200/100 3402/201/100 +f 3402/201/100 3403/202/101 3400/199/101 +f 3404/203/108 3405/204/108 3406/205/108 +f 3406/205/108 3407/206/108 3404/203/108 +f 3408/202/98 3409/201/97 3410/200/97 +f 3410/200/97 3411/199/98 3408/202/98 +f 3412/207/166 3413/207/166 3414/208/166 +f 3414/208/166 3415/209/166 3412/207/166 +f 3416/209/167 3417/210/167 3418/211/167 +f 3405/212/168 3419/196/168 3420/213/168 +f 3420/213/168 3406/214/168 3405/212/168 +f 3421/210/169 3422/209/169 3423/211/169 +f 3424/215/170 3425/216/170 3423/211/170 +f 3423/211/170 3422/209/170 3424/215/170 +f 3426/217/171 3427/218/171 3398/197/171 +f 3398/197/171 3397/196/171 3426/217/171 +f 3428/219/99 3429/220/99 3405/204/99 +f 3405/204/99 3404/203/99 3428/219/99 +f 3430/209/173 3431/208/173 3413/207/173 +f 3413/207/173 3412/207/173 3430/209/173 +f 3405/212/174 3429/214/174 3432/213/174 +f 3432/213/174 3419/196/174 3405/212/174 +f 3424/215/175 3416/209/175 3418/211/175 +f 3418/211/175 3425/216/175 3424/215/175 +f 3433/221/98 3420/222/98 3396/222/97 +f 3396/222/97 3399/221/97 3433/221/98 +f 3420/222/113 3419/203/113 3397/203/113 +f 3397/203/113 3396/222/113 3420/222/113 +f 3419/203/112 3432/206/112 3426/206/112 +f 3426/206/112 3397/203/112 3419/203/112 +f 3432/206/100 3434/223/100 3427/223/100 +f 3427/223/100 3426/206/100 3432/206/100 +f 3434/224/176 3435/225/176 3398/226/176 +f 3398/226/176 3427/224/176 3434/224/176 +f 3435/225/117 3433/224/117 3399/224/117 +f 3399/224/117 3398/226/117 3435/225/117 +f 3429/214/169 3436/227/169 3434/228/169 +f 3434/228/169 3432/213/169 3429/214/169 +f 3436/229/98 3429/220/98 3428/219/98 +f 3428/219/98 3437/221/98 3436/229/98 +f 3407/206/100 3406/205/100 3438/230/100 +f 3438/230/100 3439/223/100 3407/206/100 +f 3438/227/167 3406/214/167 3420/213/167 +f 3420/213/167 3433/228/167 3438/227/167 +f 3402/201/100 3401/200/100 3440/199/101 +f 3440/199/101 3441/202/101 3402/201/100 +f 3438/231/481 3433/224/481 3418/232/481 +f 3418/232/481 3417/233/481 3438/231/481 +f 3433/224/117 3435/225/117 3425/234/117 +f 3425/234/117 3418/232/117 3433/224/117 +f 3435/225/176 3434/224/176 3423/232/176 +f 3423/232/176 3425/234/176 3435/225/176 +f 3434/224/115 3436/231/115 3421/233/115 +f 3421/233/115 3423/232/115 3434/224/115 +f 3410/200/97 3409/201/97 3442/202/98 +f 3442/202/98 3443/199/98 3410/200/97 +f 3414/208/166 3413/207/166 3424/235/166 +f 3424/235/166 3422/236/166 3414/208/166 +f 3413/207/173 3431/208/173 3416/236/173 +f 3416/236/173 3424/235/173 3413/207/173 +f 3439/236/27 3438/231/27 3401/237/27 +f 3401/237/27 3400/238/27 3439/236/27 +f 3438/231/27 3417/233/27 3440/239/27 +f 3440/239/27 3401/237/27 3438/231/27 +f 3417/210/178 3416/209/178 3441/240/178 +f 3441/240/178 3440/241/178 3417/210/178 +f 3416/236/26 3431/208/26 3402/242/26 +f 3402/242/26 3441/238/26 3416/236/26 +f 3431/208/26 3430/209/26 3403/240/26 +f 3403/240/26 3402/242/26 3431/208/26 +f 3415/209/26 3414/208/26 3409/242/26 +f 3409/242/26 3408/240/26 3415/209/26 +f 3414/208/26 3422/236/26 3442/238/26 +f 3442/238/26 3409/242/26 3414/208/26 +f 3422/209/179 3421/210/179 3443/241/179 +f 3443/241/179 3442/240/179 3422/209/179 +f 3421/233/27 3436/231/27 3410/237/27 +f 3410/237/27 3443/239/27 3421/233/27 +f 3436/231/27 3437/236/27 3411/238/27 +f 3411/238/27 3410/237/27 3436/231/27 +f 3444/243/183 3445/244/183 3446/245/183 +f 3446/245/183 3447/246/183 3444/243/183 +f 3444/247/184 3447/248/184 3448/249/184 +f 3448/249/184 3449/250/184 3444/247/184 +f 3447/246/185 3446/245/185 3450/251/185 +f 3450/251/185 3448/252/185 3447/246/185 +f 3446/248/186 3445/247/186 3451/250/186 +f 3451/250/186 3450/249/186 3446/248/186 +f 3452/195/164 3453/196/164 3454/197/164 +f 3454/197/164 3455/198/164 3452/195/164 +f 3456/199/101 3457/200/100 3458/201/100 +f 3458/201/100 3459/202/101 3456/199/101 +f 3460/203/108 3461/204/108 3462/205/108 +f 3462/205/108 3463/206/108 3460/203/108 +f 3464/202/98 3465/201/97 3466/200/97 +f 3466/200/97 3467/199/98 3464/202/98 +f 3468/207/166 3469/207/166 3470/208/166 +f 3470/208/166 3471/209/166 3468/207/166 +f 3472/209/167 3473/210/167 3474/211/167 +f 3461/212/168 3475/196/168 3476/213/168 +f 3476/213/168 3462/214/168 3461/212/168 +f 3477/210/169 3478/209/169 3479/211/169 +f 3480/215/170 3481/216/170 3479/211/170 +f 3479/211/170 3478/209/170 3480/215/170 +f 3482/217/171 3483/218/171 3454/197/171 +f 3454/197/171 3453/196/171 3482/217/171 +f 3484/219/172 3485/220/172 3461/204/99 +f 3461/204/99 3460/203/99 3484/219/172 +f 3486/209/173 3487/208/173 3469/207/173 +f 3469/207/173 3468/207/173 3486/209/173 +f 3461/212/174 3485/214/174 3488/213/174 +f 3488/213/174 3475/196/174 3461/212/174 +f 3480/215/175 3472/209/175 3474/211/175 +f 3474/211/175 3481/216/175 3480/215/175 +f 3489/221/98 3476/222/98 3452/222/98 +f 3452/222/98 3455/221/98 3489/221/98 +f 3476/222/113 3475/203/113 3453/203/113 +f 3453/203/113 3452/222/113 3476/222/113 +f 3475/203/112 3488/206/112 3482/206/112 +f 3482/206/112 3453/203/112 3475/203/112 +f 3488/206/100 3490/223/100 3483/223/100 +f 3483/223/100 3482/206/100 3488/206/100 +f 3490/224/176 3491/225/176 3454/226/176 +f 3454/226/176 3483/224/176 3490/224/176 +f 3491/225/117 3489/224/117 3455/224/117 +f 3455/224/117 3454/226/117 3491/225/117 +f 3485/214/169 3492/227/169 3490/228/169 +f 3490/228/169 3488/213/169 3485/214/169 +f 3492/229/125 3485/220/125 3484/219/97 +f 3484/219/97 3493/221/97 3492/229/125 +f 3463/206/100 3462/205/101 3494/230/101 +f 3494/230/101 3495/223/100 3463/206/100 +f 3494/227/167 3462/214/167 3476/213/167 +f 3476/213/167 3489/228/167 3494/227/167 +f 3458/201/100 3457/200/100 3496/199/101 +f 3496/199/101 3497/202/101 3458/201/100 +f 3494/231/481 3489/224/481 3474/232/481 +f 3474/232/481 3473/233/481 3494/231/481 +f 3489/224/117 3491/225/117 3481/234/117 +f 3481/234/117 3474/232/117 3489/224/117 +f 3491/225/176 3490/224/176 3479/232/176 +f 3479/232/176 3481/234/176 3491/225/176 +f 3490/224/115 3492/231/115 3477/233/115 +f 3477/233/115 3479/232/115 3490/224/115 +f 3466/200/97 3465/201/97 3498/202/98 +f 3498/202/98 3499/199/98 3466/200/97 +f 3470/208/166 3469/207/166 3480/235/166 +f 3480/235/166 3478/236/166 3470/208/166 +f 3469/207/173 3487/208/173 3472/236/173 +f 3472/236/173 3480/235/173 3469/207/173 +f 3495/236/27 3494/231/27 3457/237/27 +f 3457/237/27 3456/238/27 3495/236/27 +f 3494/231/27 3473/233/27 3496/239/27 +f 3496/239/27 3457/237/27 3494/231/27 +f 3473/210/178 3472/209/178 3497/240/178 +f 3497/240/178 3496/241/178 3473/210/178 +f 3472/236/26 3487/208/26 3458/242/26 +f 3458/242/26 3497/238/26 3472/236/26 +f 3487/208/26 3486/209/26 3459/240/26 +f 3459/240/26 3458/242/26 3487/208/26 +f 3471/209/26 3470/208/26 3465/242/26 +f 3465/242/26 3464/240/26 3471/209/26 +f 3470/208/26 3478/236/26 3498/238/26 +f 3498/238/26 3465/242/26 3470/208/26 +f 3478/209/179 3477/210/179 3499/241/179 +f 3499/241/179 3498/240/179 3478/209/179 +f 3477/233/27 3492/231/27 3466/237/27 +f 3466/237/27 3499/239/27 3477/233/27 +f 3492/231/27 3493/236/27 3467/238/27 +f 3467/238/27 3466/237/27 3492/231/27 +f 3500/243/156 3501/244/156 3502/245/156 +f 3502/245/156 3503/246/156 3500/243/156 +f 3500/247/157 3503/248/157 3504/249/157 +f 3504/249/157 3505/250/157 3500/247/157 +f 3503/246/158 3502/245/158 3506/251/158 +f 3506/251/158 3504/252/158 3503/246/158 +f 3502/248/159 3501/247/159 3507/250/159 +f 3507/250/159 3506/249/159 3502/248/159 +f 3508/195/72 3509/196/72 3510/197/72 +f 3510/197/72 3511/198/72 3508/195/72 +f 3512/199/73 3513/200/73 3514/201/73 +f 3514/201/73 3515/202/73 3512/199/73 +f 3516/203/74 3517/204/74 3518/205/74 +f 3518/205/74 3519/206/74 3516/203/74 +f 3520/202/75 3521/201/75 3522/200/75 +f 3522/200/75 3523/199/75 3520/202/75 +f 3524/207/76 3525/207/76 3526/208/76 +f 3526/208/76 3527/209/76 3524/207/76 +f 3528/209/77 3529/210/77 3530/211/77 +f 3517/212/78 3531/196/78 3532/213/78 +f 3532/213/78 3518/214/78 3517/212/78 +f 3533/210/79 3534/209/79 3535/211/79 +f 3536/215/80 3537/216/80 3535/211/80 +f 3535/211/80 3534/209/80 3536/215/80 +f 3538/217/81 3539/218/81 3510/197/482 +f 3510/197/482 3509/196/482 3538/217/81 +f 3540/219/82 3541/220/82 3517/204/82 +f 3517/204/82 3516/203/82 3540/219/82 +f 3542/209/83 3543/208/83 3525/207/83 +f 3525/207/83 3524/207/83 3542/209/83 +f 3517/212/84 3541/214/84 3544/213/84 +f 3544/213/84 3531/196/84 3517/212/84 +f 3536/215/85 3528/209/85 3530/211/85 +f 3530/211/85 3537/216/85 3536/215/85 +f 3545/221/75 3532/222/75 3508/222/75 +f 3508/222/75 3511/221/75 3545/221/75 +f 3532/222/86 3531/203/86 3509/203/86 +f 3509/203/86 3508/222/86 3532/222/86 +f 3531/203/87 3544/206/87 3538/206/87 +f 3538/206/87 3509/203/87 3531/203/87 +f 3544/206/73 3546/223/73 3539/223/73 +f 3539/223/73 3538/206/73 3544/206/73 +f 3546/224/88 3547/225/88 3510/226/88 +f 3510/226/88 3539/224/88 3546/224/88 +f 3547/225/89 3545/224/89 3511/224/89 +f 3511/224/89 3510/226/89 3547/225/89 +f 3541/214/79 3548/227/79 3546/228/79 +f 3546/228/79 3544/213/79 3541/214/79 +f 3548/229/75 3541/220/75 3540/219/75 +f 3540/219/75 3549/221/75 3548/229/75 +f 3519/206/73 3518/205/73 3550/230/73 +f 3550/230/73 3551/223/73 3519/206/73 +f 3550/227/77 3518/214/77 3532/213/77 +f 3532/213/77 3545/228/77 3550/227/77 +f 3514/201/73 3513/200/73 3552/199/73 +f 3552/199/73 3553/202/73 3514/201/73 +f 3550/231/90 3545/224/90 3530/232/90 +f 3530/232/90 3529/233/90 3550/231/90 +f 3545/224/89 3547/225/89 3537/234/89 +f 3537/234/89 3530/232/89 3545/224/89 +f 3547/225/88 3546/224/88 3535/232/88 +f 3535/232/88 3537/234/88 3547/225/88 +f 3546/224/92 3548/231/92 3533/233/92 +f 3533/233/92 3535/232/92 3546/224/92 +f 3522/200/75 3521/201/75 3554/202/75 +f 3554/202/75 3555/199/75 3522/200/75 +f 3526/208/76 3525/207/76 3536/235/76 +f 3536/235/76 3534/236/76 3526/208/76 +f 3525/207/83 3543/208/83 3528/236/83 +f 3528/236/83 3536/235/83 3525/207/83 +f 3551/236/27 3550/231/27 3513/237/27 +f 3513/237/27 3512/238/27 3551/236/27 +f 3550/231/27 3529/233/27 3552/239/27 +f 3552/239/27 3513/237/27 3550/231/27 +f 3529/210/94 3528/209/94 3553/240/94 +f 3553/240/94 3552/241/94 3529/210/94 +f 3528/236/26 3543/208/26 3514/242/26 +f 3514/242/26 3553/238/26 3528/236/26 +f 3543/208/26 3542/209/26 3515/240/26 +f 3515/240/26 3514/242/26 3543/208/26 +f 3527/209/26 3526/208/26 3521/242/26 +f 3521/242/26 3520/240/26 3527/209/26 +f 3526/208/26 3534/236/26 3554/238/26 +f 3554/238/26 3521/242/26 3526/208/26 +f 3534/209/95 3533/210/95 3555/241/95 +f 3555/241/95 3554/240/95 3534/209/95 +f 3533/233/27 3548/231/27 3522/237/27 +f 3522/237/27 3555/239/27 3533/233/27 +f 3548/231/27 3549/236/27 3523/238/27 +f 3523/238/27 3522/237/27 3548/231/27 +f 3556/243/154 3557/244/154 3558/245/154 +f 3558/245/154 3559/246/154 3556/243/154 +f 3556/247/7 3559/248/7 3560/249/7 +f 3560/249/7 3561/250/7 3556/247/7 +f 3559/246/155 3558/245/155 3562/251/155 +f 3562/251/155 3560/252/155 3559/246/155 +f 3558/248/1 3557/247/1 3563/250/1 +f 3563/250/1 3562/249/1 3558/248/1 +f 3564/243/180 3565/244/180 3566/245/180 +f 3566/245/180 3567/246/180 3564/243/180 +f 3564/247/153 3567/248/153 3568/249/153 +f 3568/249/153 3569/250/153 3564/247/153 +f 3567/246/181 3566/245/181 3570/251/181 +f 3570/251/181 3568/252/181 3567/246/181 +f 3566/248/151 3565/247/151 3571/250/151 +f 3571/250/151 3570/249/151 3566/248/151 +f 3572/243/148 3573/244/148 3574/245/148 +f 3574/245/148 3575/246/148 3572/243/148 +f 3572/247/1 3575/248/1 3576/249/1 +f 3576/249/1 3577/250/1 3572/247/1 +f 3575/246/149 3574/245/149 3578/251/149 +f 3578/251/149 3576/252/149 3575/246/149 +f 3574/248/7 3573/247/7 3579/250/7 +f 3579/250/7 3578/249/7 3574/248/7 +f 3580/243/127 3581/244/127 3582/245/127 +f 3582/245/127 3583/246/127 3580/243/127 +f 3580/247/128 3583/248/128 3584/249/128 +f 3584/249/128 3585/250/128 3580/247/128 +f 3583/246/129 3582/245/129 3586/251/129 +f 3586/251/129 3584/252/129 3583/246/129 +f 3582/248/130 3581/247/130 3587/250/130 +f 3587/250/130 3586/249/130 3582/248/130 +f 3588/243/187 3589/244/187 3590/245/187 +f 3590/245/187 3591/246/187 3588/243/187 +f 3588/247/163 3591/248/163 3592/249/163 +f 3592/249/163 3593/250/163 3588/247/163 +f 3591/246/188 3590/245/188 3594/251/188 +f 3594/251/188 3592/252/188 3591/246/188 +f 3590/248/161 3589/247/161 3595/250/161 +f 3595/250/161 3594/249/161 3590/248/161 +f 3596/195/72 3597/196/72 3598/197/72 +f 3598/197/72 3599/198/72 3596/195/72 +f 3600/199/73 3601/200/73 3602/201/73 +f 3602/201/73 3603/202/73 3600/199/73 +f 3604/203/74 3605/204/74 3606/205/74 +f 3606/205/74 3607/206/74 3604/203/74 +f 3608/202/75 3609/201/75 3610/200/75 +f 3610/200/75 3611/199/75 3608/202/75 +f 3612/207/76 3613/207/76 3614/208/76 +f 3614/208/76 3615/209/76 3612/207/76 +f 3616/209/77 3617/210/77 3618/211/77 +f 3605/212/78 3619/196/78 3620/213/78 +f 3620/213/78 3606/214/78 3605/212/78 +f 3621/210/79 3622/209/79 3623/211/79 +f 3624/215/80 3625/216/80 3623/211/80 +f 3623/211/80 3622/209/80 3624/215/80 +f 3626/217/81 3627/218/81 3598/197/482 +f 3598/197/482 3597/196/482 3626/217/81 +f 3628/219/82 3629/220/82 3605/204/82 +f 3605/204/82 3604/203/82 3628/219/82 +f 3630/209/83 3631/208/83 3613/207/83 +f 3613/207/83 3612/207/83 3630/209/83 +f 3605/212/84 3629/214/84 3632/213/84 +f 3632/213/84 3619/196/84 3605/212/84 +f 3624/215/85 3616/209/85 3618/211/85 +f 3618/211/85 3625/216/85 3624/215/85 +f 3633/221/75 3620/222/75 3596/222/75 +f 3596/222/75 3599/221/75 3633/221/75 +f 3620/222/86 3619/203/86 3597/203/86 +f 3597/203/86 3596/222/86 3620/222/86 +f 3619/203/87 3632/206/87 3626/206/87 +f 3626/206/87 3597/203/87 3619/203/87 +f 3632/206/73 3634/223/73 3627/223/73 +f 3627/223/73 3626/206/73 3632/206/73 +f 3634/224/88 3635/225/88 3598/226/88 +f 3598/226/88 3627/224/88 3634/224/88 +f 3635/225/89 3633/224/89 3599/224/89 +f 3599/224/89 3598/226/89 3635/225/89 +f 3629/214/79 3636/227/79 3634/228/79 +f 3634/228/79 3632/213/79 3629/214/79 +f 3636/229/75 3629/220/75 3628/219/75 +f 3628/219/75 3637/221/75 3636/229/75 +f 3607/206/73 3606/205/73 3638/230/73 +f 3638/230/73 3639/223/73 3607/206/73 +f 3638/227/77 3606/214/77 3620/213/77 +f 3620/213/77 3633/228/77 3638/227/77 +f 3602/201/73 3601/200/73 3640/199/73 +f 3640/199/73 3641/202/73 3602/201/73 +f 3638/231/90 3633/224/90 3618/232/90 +f 3618/232/90 3617/233/90 3638/231/90 +f 3633/224/89 3635/225/89 3625/234/89 +f 3625/234/89 3618/232/89 3633/224/89 +f 3635/225/88 3634/224/88 3623/232/88 +f 3623/232/88 3625/234/88 3635/225/88 +f 3634/224/92 3636/231/92 3621/233/92 +f 3621/233/92 3623/232/92 3634/224/92 +f 3610/200/75 3609/201/75 3642/202/75 +f 3642/202/75 3643/199/75 3610/200/75 +f 3614/208/76 3613/207/76 3624/235/76 +f 3624/235/76 3622/236/76 3614/208/76 +f 3613/207/83 3631/208/83 3616/236/83 +f 3616/236/83 3624/235/83 3613/207/83 +f 3639/236/27 3638/231/27 3601/237/27 +f 3601/237/27 3600/238/27 3639/236/27 +f 3638/231/27 3617/233/27 3640/239/27 +f 3640/239/27 3601/237/27 3638/231/27 +f 3617/210/94 3616/209/94 3641/240/94 +f 3641/240/94 3640/241/94 3617/210/94 +f 3616/236/26 3631/208/26 3602/242/26 +f 3602/242/26 3641/238/26 3616/236/26 +f 3631/208/26 3630/209/26 3603/240/26 +f 3603/240/26 3602/242/26 3631/208/26 +f 3615/209/26 3614/208/26 3609/242/26 +f 3609/242/26 3608/240/26 3615/209/26 +f 3614/208/26 3622/236/26 3642/238/26 +f 3642/238/26 3609/242/26 3614/208/26 +f 3622/209/95 3621/210/95 3643/241/95 +f 3643/241/95 3642/240/95 3622/209/95 +f 3621/233/27 3636/231/27 3610/237/27 +f 3610/237/27 3643/239/27 3621/233/27 +f 3636/231/27 3637/236/27 3611/238/27 +f 3611/238/27 3610/237/27 3636/231/27 +f 3644/195/124 3645/196/96 3646/197/96 +f 3646/197/96 3647/198/124 3644/195/124 +f 3648/199/125 3649/200/125 3650/201/125 +f 3650/201/125 3651/202/125 3648/199/125 +f 3652/203/99 3653/204/99 3654/205/99 +f 3654/205/99 3655/206/99 3652/203/99 +f 3656/202/165 3657/201/165 3658/200/165 +f 3658/200/165 3659/199/165 3656/202/165 +f 3660/207/102 3661/207/102 3662/208/102 +f 3662/208/102 3663/209/102 3660/207/102 +f 3664/209/103 3665/210/103 3666/211/103 +f 3653/212/104 3667/196/104 3668/213/104 +f 3668/213/104 3654/214/104 3653/212/104 +f 3669/210/105 3670/209/105 3671/211/105 +f 3672/215/106 3673/216/106 3671/211/106 +f 3671/211/106 3670/209/106 3672/215/106 +f 3674/217/107 3675/218/107 3646/197/107 +f 3646/197/107 3645/196/107 3674/217/107 +f 3676/219/126 3677/220/108 3653/204/108 +f 3653/204/108 3652/203/108 3676/219/126 +f 3678/209/109 3679/208/109 3661/207/109 +f 3661/207/109 3660/207/109 3678/209/109 +f 3653/212/110 3677/214/110 3680/213/110 +f 3680/213/110 3667/196/110 3653/212/110 +f 3672/215/111 3664/209/111 3666/211/111 +f 3666/211/111 3673/216/111 3672/215/111 +f 3681/221/165 3668/222/165 3644/222/165 +f 3644/222/165 3647/221/165 3681/221/165 +f 3668/222/112 3667/203/112 3645/203/112 +f 3645/203/112 3644/222/112 3668/222/112 +f 3667/203/113 3680/206/113 3674/206/113 +f 3674/206/113 3645/203/113 3667/203/113 +f 3680/206/125 3682/223/125 3675/223/125 +f 3675/223/125 3674/206/125 3680/206/125 +f 3682/224/114 3683/225/114 3646/226/114 +f 3646/226/114 3675/224/114 3682/224/114 +f 3683/225/115 3681/224/115 3647/224/115 +f 3647/224/115 3646/226/115 3683/225/115 +f 3677/214/105 3684/227/105 3682/228/105 +f 3682/228/105 3680/213/105 3677/214/105 +f 3684/229/165 3677/220/165 3676/219/165 +f 3676/219/165 3685/221/165 3684/229/165 +f 3655/206/125 3654/205/125 3686/230/125 +f 3686/230/125 3687/223/125 3655/206/125 +f 3686/227/103 3654/214/103 3668/213/103 +f 3668/213/103 3681/228/103 3686/227/103 +f 3650/201/125 3649/200/125 3688/199/125 +f 3688/199/125 3689/202/125 3650/201/125 +f 3686/231/483 3681/224/483 3666/232/483 +f 3666/232/483 3665/233/483 3686/231/483 +f 3681/224/115 3683/225/115 3673/234/115 +f 3673/234/115 3666/232/115 3681/224/115 +f 3683/225/114 3682/224/114 3671/232/114 +f 3671/232/114 3673/234/114 3683/225/114 +f 3682/224/117 3684/231/117 3669/233/117 +f 3669/233/117 3671/232/117 3682/224/117 +f 3658/200/165 3657/201/165 3690/202/165 +f 3690/202/165 3691/199/165 3658/200/165 +f 3662/208/102 3661/207/102 3672/235/102 +f 3672/235/102 3670/236/102 3662/208/102 +f 3661/207/109 3679/208/109 3664/236/109 +f 3664/236/109 3672/235/109 3661/207/109 +f 3687/236/27 3686/231/27 3649/237/27 +f 3649/237/27 3648/238/27 3687/236/27 +f 3686/231/27 3665/233/27 3688/239/27 +f 3688/239/27 3649/237/27 3686/231/27 +f 3665/210/118 3664/209/118 3689/240/118 +f 3689/240/118 3688/241/118 3665/210/118 +f 3664/236/26 3679/208/26 3650/242/26 +f 3650/242/26 3689/238/26 3664/236/26 +f 3679/208/26 3678/209/26 3651/240/26 +f 3651/240/26 3650/242/26 3679/208/26 +f 3663/209/26 3662/208/26 3657/242/26 +f 3657/242/26 3656/240/26 3663/209/26 +f 3662/208/26 3670/236/26 3690/238/26 +f 3690/238/26 3657/242/26 3662/208/26 +f 3670/209/119 3669/210/119 3691/241/119 +f 3691/241/119 3690/240/119 3670/209/119 +f 3669/233/27 3684/231/27 3658/237/27 +f 3658/237/27 3691/239/27 3669/233/27 +f 3684/231/27 3685/236/27 3659/238/27 +f 3659/238/27 3658/237/27 3684/231/27 +f 3692/243/150 3693/244/150 3694/245/150 +f 3694/245/150 3695/246/150 3692/243/150 +f 3692/247/151 3695/248/151 3696/249/151 +f 3696/249/151 3697/250/151 3692/247/151 +f 3695/246/152 3694/245/152 3698/251/152 +f 3698/251/152 3696/252/152 3695/246/152 +f 3694/248/153 3693/247/153 3699/250/153 +f 3699/250/153 3698/249/153 3694/248/153 +f 3700/195/96 3701/196/124 3702/197/124 +f 3702/197/124 3703/198/96 3700/195/96 +f 3704/199/125 3705/200/125 3706/201/125 +f 3706/201/125 3707/202/125 3704/199/125 +f 3708/203/99 3709/204/99 3710/205/99 +f 3710/205/99 3711/206/99 3708/203/99 +f 3712/202/165 3713/201/165 3714/200/165 +f 3714/200/165 3715/199/165 3712/202/165 +f 3716/207/102 3717/207/102 3718/208/102 +f 3718/208/102 3719/209/102 3716/207/102 +f 3720/209/103 3721/210/103 3722/211/103 +f 3709/212/104 3723/196/104 3724/213/104 +f 3724/213/104 3710/214/104 3709/212/104 +f 3725/210/105 3726/209/105 3727/211/105 +f 3728/215/106 3729/216/106 3727/211/106 +f 3727/211/106 3726/209/106 3728/215/106 +f 3730/217/107 3731/218/107 3702/197/107 +f 3702/197/107 3701/196/107 3730/217/107 +f 3732/219/108 3733/220/108 3709/204/126 +f 3709/204/126 3708/203/108 3732/219/108 +f 3734/209/109 3735/208/109 3717/207/109 +f 3717/207/109 3716/207/109 3734/209/109 +f 3709/212/110 3733/214/110 3736/213/110 +f 3736/213/110 3723/196/110 3709/212/110 +f 3728/215/111 3720/209/111 3722/211/111 +f 3722/211/111 3729/216/111 3728/215/111 +f 3737/221/165 3724/222/165 3700/222/165 +f 3700/222/165 3703/221/165 3737/221/165 +f 3724/222/112 3723/203/112 3701/203/112 +f 3701/203/112 3700/222/112 3724/222/112 +f 3723/203/113 3736/206/113 3730/206/113 +f 3730/206/113 3701/203/113 3723/203/113 +f 3736/206/125 3738/223/125 3731/223/125 +f 3731/223/125 3730/206/125 3736/206/125 +f 3738/224/114 3739/225/114 3702/226/114 +f 3702/226/114 3731/224/114 3738/224/114 +f 3739/225/115 3737/224/115 3703/224/115 +f 3703/224/115 3702/226/115 3739/225/115 +f 3733/214/105 3740/227/105 3738/228/105 +f 3738/228/105 3736/213/105 3733/214/105 +f 3740/229/165 3733/220/165 3732/219/165 +f 3732/219/165 3741/221/165 3740/229/165 +f 3711/206/125 3710/205/125 3742/230/125 +f 3742/230/125 3743/223/125 3711/206/125 +f 3742/227/103 3710/214/103 3724/213/103 +f 3724/213/103 3737/228/103 3742/227/103 +f 3706/201/125 3705/200/125 3744/199/125 +f 3744/199/125 3745/202/125 3706/201/125 +f 3742/231/483 3737/224/483 3722/232/483 +f 3722/232/483 3721/233/483 3742/231/483 +f 3737/224/115 3739/225/115 3729/234/115 +f 3729/234/115 3722/232/115 3737/224/115 +f 3739/225/114 3738/224/114 3727/232/114 +f 3727/232/114 3729/234/114 3739/225/114 +f 3738/224/117 3740/231/117 3725/233/117 +f 3725/233/117 3727/232/117 3738/224/117 +f 3714/200/165 3713/201/165 3746/202/165 +f 3746/202/165 3747/199/165 3714/200/165 +f 3718/208/102 3717/207/102 3728/235/102 +f 3728/235/102 3726/236/102 3718/208/102 +f 3717/207/109 3735/208/109 3720/236/109 +f 3720/236/109 3728/235/109 3717/207/109 +f 3743/236/27 3742/231/27 3705/237/27 +f 3705/237/27 3704/238/27 3743/236/27 +f 3742/231/27 3721/233/27 3744/239/27 +f 3744/239/27 3705/237/27 3742/231/27 +f 3721/210/118 3720/209/118 3745/240/118 +f 3745/240/118 3744/241/118 3721/210/118 +f 3720/236/26 3735/208/26 3706/242/26 +f 3706/242/26 3745/238/26 3720/236/26 +f 3735/208/26 3734/209/26 3707/240/26 +f 3707/240/26 3706/242/26 3735/208/26 +f 3719/209/26 3718/208/26 3713/242/26 +f 3713/242/26 3712/240/26 3719/209/26 +f 3718/208/26 3726/236/26 3746/238/26 +f 3746/238/26 3713/242/26 3718/208/26 +f 3726/209/119 3725/210/119 3747/241/119 +f 3747/241/119 3746/240/119 3726/209/119 +f 3725/233/27 3740/231/27 3714/237/27 +f 3714/237/27 3747/239/27 3725/233/27 +f 3740/231/27 3741/236/27 3715/238/27 +f 3715/238/27 3714/237/27 3740/231/27 +f 3748/243/120 3749/244/120 3750/245/120 +f 3750/245/120 3751/246/120 3748/243/120 +f 3748/247/121 3751/248/121 3752/249/121 +f 3752/249/121 3753/250/121 3748/247/121 +f 3751/246/122 3750/245/122 3754/251/122 +f 3754/251/122 3752/252/122 3751/246/122 +f 3750/248/123 3749/247/123 3755/250/123 +f 3755/250/123 3754/249/123 3750/248/123 +f 3756/195/131 3757/196/131 3758/197/131 +f 3758/197/131 3759/198/131 3756/195/131 +f 3760/199/75 3761/200/75 3762/201/75 +f 3762/201/75 3763/202/75 3760/199/75 +f 3764/203/132 3765/204/132 3766/205/132 +f 3766/205/132 3767/206/132 3764/203/132 +f 3768/202/73 3769/201/73 3770/200/73 +f 3770/200/73 3771/199/73 3768/202/73 +f 3772/207/83 3773/207/83 3774/208/83 +f 3774/208/83 3775/209/83 3772/207/83 +f 3776/209/133 3777/210/133 3778/211/133 +f 3765/212/134 3779/196/134 3780/213/134 +f 3780/213/134 3766/214/134 3765/212/134 +f 3781/210/135 3782/209/135 3783/211/135 +f 3784/215/136 3785/216/136 3783/211/136 +f 3783/211/136 3782/209/136 3784/215/136 +f 3786/217/137 3787/218/137 3758/197/137 +f 3758/197/137 3757/196/137 3786/217/137 +f 3788/219/139 3789/220/139 3765/204/139 +f 3765/204/139 3764/203/139 3788/219/139 +f 3790/209/76 3791/208/76 3773/207/76 +f 3773/207/76 3772/207/76 3790/209/76 +f 3765/212/140 3789/214/140 3792/213/140 +f 3792/213/140 3779/196/140 3765/212/140 +f 3784/215/141 3776/209/141 3778/211/141 +f 3778/211/141 3785/216/141 3784/215/141 +f 3793/221/73 3780/222/73 3756/222/73 +f 3756/222/73 3759/221/73 3793/221/73 +f 3780/222/87 3779/203/87 3757/203/87 +f 3757/203/87 3756/222/87 3780/222/87 +f 3779/203/86 3792/206/86 3786/206/86 +f 3786/206/86 3757/203/86 3779/203/86 +f 3792/206/75 3794/223/75 3787/223/75 +f 3787/223/75 3786/206/75 3792/206/75 +f 3794/224/142 3795/225/142 3758/226/142 +f 3758/226/142 3787/224/142 3794/224/142 +f 3795/225/143 3793/224/143 3759/224/143 +f 3759/224/143 3758/226/143 3795/225/143 +f 3789/214/135 3796/227/135 3794/228/135 +f 3794/228/135 3792/213/135 3789/214/135 +f 3796/229/73 3789/220/73 3788/219/73 +f 3788/219/73 3797/221/73 3796/229/73 +f 3767/206/75 3766/205/75 3798/230/75 +f 3798/230/75 3799/223/75 3767/206/75 +f 3798/227/133 3766/214/133 3780/213/133 +f 3780/213/133 3793/228/133 3798/227/133 +f 3762/201/75 3761/200/75 3800/199/75 +f 3800/199/75 3801/202/75 3762/201/75 +f 3798/231/144 3793/224/144 3778/232/144 +f 3778/232/144 3777/233/144 3798/231/144 +f 3793/224/143 3795/225/143 3785/234/143 +f 3785/234/143 3778/232/143 3793/224/143 +f 3795/225/142 3794/224/142 3783/232/142 +f 3783/232/142 3785/234/142 3795/225/142 +f 3794/224/145 3796/231/145 3781/233/145 +f 3781/233/145 3783/232/145 3794/224/145 +f 3770/200/73 3769/201/73 3802/202/73 +f 3802/202/73 3803/199/73 3770/200/73 +f 3774/208/83 3773/207/83 3784/235/83 +f 3784/235/83 3782/236/83 3774/208/83 +f 3773/207/76 3791/208/76 3776/236/76 +f 3776/236/76 3784/235/76 3773/207/76 +f 3799/236/27 3798/231/27 3761/237/27 +f 3761/237/27 3760/238/27 3799/236/27 +f 3798/231/27 3777/233/27 3800/239/27 +f 3800/239/27 3761/237/27 3798/231/27 +f 3777/210/480 3776/209/480 3801/240/480 +f 3801/240/480 3800/241/480 3777/210/480 +f 3776/236/26 3791/208/26 3762/242/26 +f 3762/242/26 3801/238/26 3776/236/26 +f 3791/208/26 3790/209/26 3763/240/26 +f 3763/240/26 3762/242/26 3791/208/26 +f 3775/209/26 3774/208/26 3769/242/26 +f 3769/242/26 3768/240/26 3775/209/26 +f 3774/208/26 3782/236/26 3802/238/26 +f 3802/238/26 3769/242/26 3774/208/26 +f 3782/209/147 3781/210/147 3803/241/147 +f 3803/241/147 3802/240/147 3782/209/147 +f 3781/233/27 3796/231/27 3770/237/27 +f 3770/237/27 3803/239/27 3781/233/27 +f 3796/231/27 3797/236/27 3771/238/27 +f 3771/238/27 3770/237/27 3796/231/27 +f 3804/243/160 3805/244/160 3806/245/160 +f 3806/245/160 3807/246/160 3804/243/160 +f 3804/247/161 3807/248/161 3808/249/161 +f 3808/249/161 3809/250/161 3804/247/161 +f 3807/246/162 3806/245/162 3810/251/162 +f 3810/251/162 3808/252/162 3807/246/162 +f 3806/248/163 3805/247/163 3811/250/163 +f 3811/250/163 3810/249/163 3806/248/163 +f 3812/253/19 3813/254/19 3814/255/19 +f 3814/255/19 3815/256/19 3812/253/19 +f 3816/257/20 3812/253/20 3815/256/20 +f 3815/256/20 3817/258/20 3816/257/20 +f 3818/259/21 3816/257/21 3817/258/21 +f 3817/258/21 3819/260/21 3818/259/21 +f 3820/261/22 3818/262/191 3819/263/22 +f 3819/263/22 3821/264/22 3820/261/22 +f 3822/265/23 3820/261/23 3821/264/23 +f 3821/264/23 3823/266/23 3822/265/23 +f 3824/267/24 3822/265/24 3823/266/24 +f 3823/266/24 3825/268/24 3824/267/24 +f 3826/269/192 3824/267/13 3825/268/13 +f 3825/268/13 3827/270/192 3826/269/192 +f 3828/271/14 3826/269/14 3827/270/14 +f 3827/270/14 3829/272/14 3828/271/14 +f 3830/273/118 3828/271/15 3829/272/15 +f 3829/272/15 3831/274/15 3830/273/118 +f 3832/275/16 3830/273/16 3831/274/16 +f 3831/274/16 3833/276/16 3832/275/16 +f 3834/277/17 3832/275/17 3833/276/17 +f 3833/276/17 3835/278/17 3834/277/17 +f 3813/254/18 3834/277/194 3835/278/194 +f 3835/278/194 3814/255/18 3813/254/18 +f 3815/279/27 3814/280/27 3836/281/27 +f 3836/281/27 3837/282/27 3815/279/27 +f 3838/283/27 3839/279/27 3840/282/27 +f 3840/282/27 3841/284/27 3838/283/27 +f 3819/285/27 3817/283/27 3842/284/27 +f 3842/284/27 3843/285/27 3819/285/27 +f 3844/286/27 3845/285/27 3846/285/27 +f 3846/285/27 3847/287/27 3844/286/27 +f 3823/288/27 3821/286/27 3848/287/27 +f 3848/287/27 3849/289/27 3823/288/27 +f 3850/290/27 3851/288/27 3852/289/27 +f 3852/289/27 3853/291/27 3850/290/27 +f 3827/292/27 3825/290/27 3854/291/27 +f 3854/291/27 3855/293/27 3827/292/27 +f 3856/294/27 3857/292/27 3858/293/27 +f 3858/293/27 3859/295/27 3856/294/27 +f 3831/296/27 3829/294/27 3860/295/27 +f 3860/295/27 3861/297/27 3831/296/27 +f 3862/298/27 3863/296/27 3864/297/27 +f 3864/297/27 3865/299/27 3862/298/27 +f 3835/300/27 3833/298/27 3866/299/27 +f 3866/299/27 3867/300/27 3835/300/27 +f 3868/280/27 3869/300/27 3870/300/27 +f 3870/300/27 3871/281/27 3868/280/27 +f 3837/301/13 3836/302/13 3872/303/13 +f 3872/303/13 3873/304/13 3837/301/13 +f 3842/305/14 3837/301/14 3873/304/14 +f 3873/304/14 3874/306/14 3842/305/14 +f 3843/307/15 3842/305/118 3874/306/15 +f 3874/306/15 3875/308/15 3843/307/15 +f 3848/309/16 3843/307/16 3875/308/16 +f 3875/308/16 3876/310/16 3848/309/16 +f 3849/311/17 3848/309/17 3876/310/17 +f 3876/310/17 3877/312/17 3849/311/17 +f 3854/313/18 3849/311/18 3877/312/18 +f 3877/312/18 3878/314/18 3854/313/18 +f 3855/315/190 3854/313/19 3878/314/19 +f 3878/314/19 3879/316/190 3855/315/190 +f 3860/317/20 3855/315/20 3879/316/20 +f 3879/316/20 3880/318/20 3860/317/20 +f 3861/319/21 3860/317/21 3880/318/21 +f 3880/318/21 3881/320/21 3861/319/21 +f 3866/321/191 3861/322/22 3881/323/22 +f 3881/323/22 3882/324/22 3866/321/191 +f 3867/325/23 3866/321/23 3882/324/23 +f 3882/324/23 3883/326/23 3867/325/23 +f 3836/302/24 3867/325/25 3883/326/25 +f 3883/326/25 3872/303/24 3836/302/24 +f 3873/327/27 3872/328/27 3884/329/27 +f 3874/330/27 3873/327/27 3884/329/27 +f 3875/331/27 3874/330/27 3884/329/27 +f 3876/332/27 3875/331/27 3884/329/27 +f 3877/333/27 3876/332/27 3884/329/27 +f 3878/334/27 3877/333/27 3884/329/27 +f 3879/335/27 3878/334/27 3884/329/27 +f 3880/336/27 3879/335/27 3884/329/27 +f 3881/337/27 3880/336/27 3884/329/27 +f 3882/338/27 3881/337/27 3884/329/27 +f 3883/339/27 3882/338/27 3884/329/27 +f 3872/328/27 3883/339/27 3884/329/27 +f 3817/258/20 3815/256/20 3839/340/20 +f 3839/340/20 3838/341/20 3817/258/20 +f 3815/279/163 3837/282/163 3840/282/163 +f 3840/282/163 3839/279/163 3815/279/163 +f 3837/301/14 3842/305/14 3841/342/14 +f 3841/342/14 3840/343/14 3837/301/14 +f 3842/284/197 3817/283/197 3838/283/197 +f 3838/283/197 3841/284/197 3842/284/197 +f 3821/264/22 3819/263/22 3845/344/22 +f 3845/344/22 3844/345/22 3821/264/22 +f 3819/285/7 3843/285/7 3846/285/7 +f 3846/285/7 3845/285/7 3819/285/7 +f 3843/307/16 3848/309/16 3847/346/16 +f 3847/346/16 3846/347/16 3843/307/16 +f 3848/287/198 3821/286/198 3844/286/198 +f 3844/286/198 3847/287/198 3848/287/198 +f 3825/268/24 3823/266/24 3851/348/24 +f 3851/348/24 3850/349/24 3825/268/24 +f 3823/288/151 3849/289/151 3852/289/151 +f 3852/289/151 3851/288/151 3823/288/151 +f 3849/311/18 3854/313/18 3853/350/18 +f 3853/350/18 3852/351/18 3849/311/18 +f 3854/291/4 3825/290/4 3850/290/4 +f 3850/290/4 3853/291/4 3854/291/4 +f 3829/272/14 3827/270/14 3857/352/14 +f 3857/352/14 3856/353/14 3829/272/14 +f 3827/292/161 3855/293/161 3858/293/161 +f 3858/293/161 3857/292/161 3827/292/161 +f 3855/315/20 3860/317/20 3859/354/20 +f 3859/354/20 3858/355/20 3855/315/20 +f 3860/295/195 3829/294/195 3856/294/195 +f 3856/294/195 3859/295/195 3860/295/195 +f 3833/276/16 3831/274/16 3863/356/193 +f 3863/356/193 3862/357/16 3833/276/16 +f 3831/296/1 3861/297/1 3864/297/1 +f 3864/297/1 3863/296/1 3831/296/1 +f 3861/322/22 3866/321/191 3865/358/22 +f 3865/358/22 3864/359/22 3861/322/22 +f 3866/299/196 3833/298/196 3862/298/196 +f 3862/298/196 3865/299/196 3866/299/196 +f 3814/255/18 3835/278/194 3869/360/18 +f 3869/360/18 3868/361/18 3814/255/18 +f 3835/300/153 3867/300/153 3870/300/153 +f 3870/300/153 3869/300/153 3835/300/153 +f 3867/325/25 3836/302/24 3871/362/24 +f 3871/362/24 3870/363/25 3867/325/25 +f 3836/281/10 3814/280/10 3868/280/10 +f 3868/280/10 3871/281/10 3836/281/10 +f 3885/3/6 3886/2/6 3887/1/7 +f 3887/1/7 3888/4/7 3885/3/6 +f 3889/6/5 3890/5/5 3886/2/6 +f 3886/2/6 3885/3/6 3889/6/5 +f 3891/8/4 3892/7/4 3890/5/5 +f 3890/5/5 3889/6/5 3891/8/4 +f 3893/11/3 3894/10/3 3892/9/4 +f 3892/9/4 3891/12/4 3893/11/3 +f 3895/14/2 3896/13/2 3894/10/3 +f 3894/10/3 3893/11/3 3895/14/2 +f 3897/16/1 3898/15/1 3896/13/2 +f 3896/13/2 3895/14/2 3897/16/1 +f 3899/18/12 3900/17/12 3898/15/1 +f 3898/15/1 3897/16/1 3899/18/12 +f 3901/20/11 3902/19/11 3900/17/12 +f 3900/17/12 3899/18/12 3901/20/11 +f 3903/22/10 3904/21/10 3902/19/11 +f 3902/19/11 3901/20/11 3903/22/10 +f 3905/24/9 3906/23/9 3904/21/10 +f 3904/21/10 3903/22/10 3905/24/9 +f 3907/26/8 3908/25/8 3906/23/9 +f 3906/23/9 3905/24/9 3907/26/8 +f 3888/4/7 3887/1/7 3908/25/8 +f 3908/25/8 3907/26/8 3888/4/7 +f 3909/27/18 3910/30/18 3911/29/18 +f 3911/29/18 3912/28/18 3909/27/18 +f 3913/31/17 3914/32/17 3910/30/17 +f 3910/30/17 3909/27/17 3913/31/17 +f 3915/33/16 3916/34/16 3914/32/16 +f 3914/32/16 3913/31/16 3915/33/16 +f 3917/35/15 3918/38/15 3916/37/15 +f 3916/37/15 3915/36/15 3917/35/15 +f 3919/39/14 3920/40/14 3918/38/14 +f 3918/38/14 3917/35/14 3919/39/14 +f 3921/41/13 3922/42/13 3920/40/13 +f 3920/40/13 3919/39/13 3921/41/13 +f 3923/43/24 3924/44/24 3922/42/24 +f 3922/42/24 3921/41/24 3923/43/24 +f 3925/45/23 3926/46/23 3924/44/23 +f 3924/44/23 3923/43/23 3925/45/23 +f 3927/47/22 3928/48/22 3926/46/22 +f 3926/46/22 3925/45/22 3927/47/22 +f 3929/49/21 3930/50/21 3928/48/21 +f 3928/48/21 3927/47/21 3929/49/21 +f 3931/51/20 3932/52/20 3930/50/20 +f 3930/50/20 3929/49/20 3931/51/20 +f 3912/28/19 3911/29/19 3932/52/19 +f 3932/52/19 3931/51/190 3912/28/19 +f 3886/53/26 3909/53/26 3912/54/26 +f 3912/54/26 3887/54/26 3886/53/26 +f 3887/54/26 3912/54/26 3931/55/26 +f 3931/55/26 3908/55/26 3887/54/26 +f 3908/55/26 3931/55/26 3929/56/26 +f 3929/56/26 3906/56/26 3908/55/26 +f 3906/56/26 3929/56/26 3927/57/26 +f 3927/57/26 3904/57/26 3906/56/26 +f 3904/57/26 3927/57/26 3925/59/26 +f 3925/59/26 3902/58/26 3904/57/26 +f 3902/58/26 3925/59/26 3923/61/26 +f 3923/61/26 3900/60/26 3902/58/26 +f 3900/60/26 3923/61/26 3921/62/26 +f 3921/62/26 3898/62/26 3900/60/26 +f 3898/62/26 3921/62/26 3919/64/26 +f 3919/64/26 3896/63/26 3898/62/26 +f 3896/63/26 3919/64/26 3917/66/26 +f 3917/66/26 3894/65/26 3896/63/26 +f 3894/65/26 3917/66/26 3915/67/26 +f 3915/67/26 3892/67/26 3894/65/26 +f 3892/67/26 3915/67/26 3913/68/26 +f 3913/68/26 3890/68/26 3892/67/26 +f 3890/68/26 3913/68/26 3909/53/26 +f 3909/53/26 3886/53/26 3890/68/26 +f 3933/54/27 3911/54/27 3910/53/27 +f 3910/53/27 3934/53/27 3933/54/27 +f 3934/53/27 3910/53/27 3914/68/27 +f 3914/68/27 3935/68/27 3934/53/27 +f 3935/68/27 3914/68/27 3916/67/27 +f 3916/67/27 3936/67/27 3935/68/27 +f 3936/67/27 3916/67/27 3918/66/27 +f 3918/66/27 3937/65/27 3936/67/27 +f 3937/65/27 3918/66/27 3920/64/27 +f 3920/64/27 3938/63/27 3937/65/27 +f 3938/63/27 3920/64/27 3922/62/27 +f 3922/62/27 3939/62/27 3938/63/27 +f 3939/62/27 3922/62/27 3924/61/27 +f 3924/61/27 3940/60/27 3939/62/27 +f 3940/60/27 3924/61/27 3926/59/27 +f 3926/59/27 3941/58/27 3940/60/27 +f 3941/58/27 3926/59/27 3928/57/27 +f 3928/57/27 3942/57/27 3941/58/27 +f 3942/57/27 3928/57/27 3930/56/27 +f 3930/56/27 3943/56/27 3942/57/27 +f 3943/56/27 3930/56/27 3932/55/27 +f 3932/55/27 3944/55/27 3943/56/27 +f 3944/55/27 3932/55/27 3911/54/27 +f 3911/54/27 3933/54/27 3944/55/27 +f 3945/71/6 3946/70/7 3933/69/7 +f 3933/69/7 3934/72/6 3945/71/6 +f 3947/73/17 3945/71/6 3934/72/6 +f 3934/72/6 3935/74/17 3947/73/17 +f 3948/75/16 3947/73/16 3935/74/16 +f 3935/74/16 3936/76/16 3948/75/16 +f 3949/77/3 3948/75/15 3936/76/15 +f 3936/76/15 3937/78/3 3949/77/3 +f 3950/79/2 3949/77/3 3937/78/3 +f 3937/78/3 3938/80/2 3950/79/2 +f 3951/83/1 3950/82/2 3938/81/2 +f 3938/81/2 3939/84/1 3951/83/1 +f 3952/85/12 3951/83/1 3939/84/1 +f 3939/84/1 3940/86/12 3952/85/12 +f 3953/87/11 3952/85/12 3940/86/12 +f 3940/86/12 3941/88/11 3953/87/11 +f 3954/89/10 3953/87/11 3941/88/11 +f 3941/88/11 3942/90/10 3954/89/10 +f 3955/91/9 3954/89/10 3942/90/10 +f 3942/90/10 3943/92/9 3955/91/9 +f 3956/93/8 3955/91/9 3943/92/9 +f 3943/92/9 3944/94/8 3956/93/8 +f 3946/70/7 3956/93/8 3944/94/8 +f 3944/94/8 3933/69/7 3946/70/7 +f 3957/95/26 3958/95/26 3959/96/26 +f 3959/96/26 3960/96/26 3957/95/26 +f 3961/97/26 3962/97/26 3958/95/26 +f 3958/95/26 3957/95/26 3961/97/26 +f 3963/67/26 3964/98/26 3962/97/26 +f 3962/97/26 3961/97/26 3963/67/26 +f 3965/99/26 3966/99/26 3964/98/26 +f 3964/98/26 3963/67/26 3965/99/26 +f 3967/100/26 3968/100/26 3966/99/26 +f 3966/99/26 3965/99/26 3967/100/26 +f 3969/101/26 3970/101/26 3968/100/26 +f 3968/100/26 3967/100/26 3969/101/26 +f 3971/61/26 3972/61/26 3970/101/26 +f 3970/101/26 3969/101/26 3971/61/26 +f 3973/59/26 3974/102/26 3972/61/26 +f 3972/61/26 3971/61/26 3973/59/26 +f 3975/103/26 3976/103/26 3974/102/26 +f 3974/102/26 3973/59/26 3975/103/26 +f 3977/104/26 3978/105/26 3976/103/26 +f 3976/103/26 3975/103/26 3977/104/26 +f 3979/106/26 3980/106/26 3978/105/26 +f 3978/105/26 3977/104/26 3979/106/26 +f 3960/96/26 3959/96/26 3980/106/26 +f 3980/106/26 3979/106/26 3960/96/26 +f 3958/107/33 3981/110/33 3982/109/33 +f 3982/109/33 3959/108/33 3958/107/33 +f 3962/111/32 3983/112/32 3981/110/32 +f 3981/110/32 3958/107/32 3962/111/32 +f 3964/113/31 3984/114/31 3983/112/31 +f 3983/112/31 3962/111/31 3964/113/31 +f 3966/115/30 3985/116/30 3984/114/30 +f 3984/114/30 3964/113/30 3966/115/30 +f 3968/117/29 3986/118/29 3985/116/29 +f 3985/116/29 3966/115/29 3968/117/29 +f 3970/119/28 3987/120/28 3986/118/28 +f 3986/118/28 3968/117/28 3970/119/28 +f 3972/121/39 3988/122/39 3987/120/39 +f 3987/120/39 3970/119/39 3972/121/39 +f 3974/123/38 3989/124/38 3988/122/38 +f 3988/122/38 3972/121/38 3974/123/38 +f 3976/125/37 3990/126/37 3989/124/37 +f 3989/124/37 3974/123/37 3976/125/37 +f 3978/127/36 3991/130/36 3990/129/36 +f 3990/129/36 3976/128/36 3978/127/36 +f 3980/131/35 3992/132/35 3991/130/35 +f 3991/130/35 3978/127/35 3980/131/35 +f 3959/108/34 3982/109/34 3992/132/34 +f 3992/132/34 3980/131/34 3959/108/34 +f 3981/110/46 3993/134/46 3994/133/46 +f 3994/133/46 3982/109/46 3981/110/46 +f 3983/112/45 3995/135/45 3993/134/45 +f 3993/134/45 3981/110/45 3983/112/45 +f 3984/114/44 3996/136/44 3995/135/44 +f 3995/135/44 3983/112/44 3984/114/44 +f 3985/116/42 3997/137/42 3996/136/43 +f 3996/136/43 3984/114/42 3985/116/42 +f 3986/118/41 3998/138/41 3997/137/41 +f 3997/137/41 3985/116/41 3986/118/41 +f 3987/120/40 3999/139/40 3998/138/40 +f 3998/138/40 3986/118/40 3987/120/40 +f 3988/122/55 4000/140/54 3999/139/54 +f 3999/139/54 3987/120/54 3988/122/55 +f 3989/124/53 4001/141/53 4000/140/53 +f 4000/140/53 3988/122/53 3989/124/53 +f 3990/126/51 4002/142/52 4001/141/51 +f 4001/141/51 3989/124/51 3990/126/51 +f 3991/130/50 4003/144/50 4002/143/50 +f 4002/143/50 3990/129/50 3991/130/50 +f 3992/132/49 4004/145/49 4003/144/49 +f 4003/144/49 3991/130/49 3992/132/49 +f 3982/109/48 3994/133/48 4004/145/48 +f 4004/145/48 3992/132/47 3982/109/48 +f 3945/148/63 4005/147/63 4006/146/63 +f 4006/146/63 3946/149/63 3945/148/63 +f 3947/151/62 4007/150/61 4005/147/61 +f 4005/147/61 3945/148/62 3947/151/62 +f 3948/154/60 4008/153/60 4007/152/60 +f 4007/152/60 3947/155/60 3948/154/60 +f 3949/156/59 4009/142/59 4008/153/59 +f 4008/153/59 3948/154/59 3949/156/59 +f 3950/158/58 4010/157/57 4009/142/57 +f 4009/142/57 3949/156/58 3950/158/58 +f 3951/160/56 4011/159/56 4010/157/56 +f 4010/157/56 3950/158/56 3951/160/56 +f 3952/162/71 4012/161/71 4011/159/71 +f 4011/159/71 3951/160/71 3952/162/71 +f 3953/164/69 4013/163/70 4012/161/70 +f 4012/161/70 3952/162/69 3953/164/69 +f 3954/166/68 4014/165/68 4013/163/68 +f 4013/163/68 3953/164/68 3954/166/68 +f 3955/168/67 4015/167/67 4014/165/67 +f 4014/165/67 3954/166/67 3955/168/67 +f 3956/170/66 4016/169/66 4015/167/66 +f 4015/167/66 3955/168/65 3956/170/66 +f 3946/149/64 4006/146/64 4016/169/64 +f 4016/169/64 3956/170/64 3946/149/64 +f 4005/173/6 3957/172/6 3960/171/7 +f 3960/171/7 4006/174/7 4005/173/6 +f 4007/176/5 3961/175/5 3957/172/6 +f 3957/172/6 4005/173/6 4007/176/5 +f 4008/179/4 3963/178/4 3961/177/5 +f 3961/177/5 4007/180/5 4008/179/4 +f 4009/181/3 3965/86/3 3963/178/4 +f 3963/178/4 4008/179/4 4009/181/3 +f 4010/183/2 3967/182/2 3965/86/3 +f 3965/86/3 4009/181/3 4010/183/2 +f 4011/185/1 3969/184/1 3967/182/2 +f 3967/182/2 4010/183/2 4011/185/1 +f 4012/187/12 3971/186/12 3969/184/1 +f 3969/184/1 4011/185/1 4012/187/12 +f 4013/189/11 3973/188/11 3971/186/12 +f 3971/186/12 4012/187/12 4013/189/11 +f 4014/191/10 3975/190/10 3973/188/11 +f 3973/188/11 4013/189/11 4014/191/10 +f 4015/192/9 3977/76/9 3975/190/10 +f 3975/190/10 4014/191/10 4015/192/9 +f 4016/194/8 3979/193/8 3977/76/9 +f 3977/76/9 4015/192/9 4016/194/8 +f 4006/174/7 3960/171/7 3979/193/8 +f 3979/193/8 4016/194/8 4006/174/7 +f 4017/195/443 4018/198/443 4019/197/443 +f 4019/197/443 4020/196/443 4017/195/443 +f 4021/199/390 4022/202/390 4023/201/390 +f 4023/201/390 4024/200/390 4021/199/390 +f 4025/203/444 4026/206/444 4027/205/444 +f 4027/205/444 4028/204/444 4025/203/444 +f 4029/202/388 4030/199/388 4031/200/388 +f 4031/200/388 4032/201/388 4029/202/388 +f 4033/207/398 4034/209/398 4035/208/398 +f 4035/208/398 4036/207/398 4033/207/398 +f 4037/209/445 4038/211/445 4039/210/445 +f 4028/212/446 4027/214/446 4040/213/446 +f 4040/213/446 4041/196/446 4028/212/446 +f 4042/210/447 4043/211/447 4044/209/447 +f 4045/215/448 4044/209/448 4043/211/448 +f 4043/211/448 4046/216/448 4045/215/448 +f 4047/217/449 4020/196/449 4019/197/449 +f 4019/197/449 4048/218/449 4047/217/449 +f 4049/219/451 4025/203/451 4028/204/451 +f 4028/204/451 4050/220/451 4049/219/451 +f 4051/209/391 4033/207/391 4036/207/391 +f 4036/207/391 4052/208/391 4051/209/391 +f 4028/212/452 4041/196/452 4053/213/452 +f 4053/213/452 4050/214/452 4028/212/452 +f 4045/215/453 4046/216/453 4038/211/453 +f 4038/211/453 4037/209/453 4045/215/453 +f 4054/221/388 4018/221/388 4017/222/388 +f 4017/222/388 4040/222/388 4054/221/388 +f 4040/222/402 4017/222/402 4020/203/402 +f 4020/203/402 4041/203/402 4040/222/402 +f 4041/203/401 4020/203/401 4047/206/401 +f 4047/206/401 4053/206/401 4041/203/401 +f 4053/206/390 4047/206/390 4048/223/390 +f 4048/223/390 4055/223/390 4053/206/390 +f 4055/224/454 4048/224/454 4019/226/454 +f 4019/226/454 4056/225/454 4055/224/454 +f 4056/225/455 4019/226/455 4018/224/455 +f 4018/224/455 4054/224/455 4056/225/455 +f 4050/214/447 4053/213/447 4055/228/447 +f 4055/228/447 4057/227/447 4050/214/447 +f 4057/229/388 4058/221/388 4049/219/388 +f 4049/219/388 4050/220/388 4057/229/388 +f 4026/206/390 4059/223/390 4060/230/390 +f 4060/230/390 4027/205/390 4026/206/390 +f 4060/227/445 4054/228/445 4040/213/445 +f 4040/213/445 4027/214/445 4060/227/445 +f 4023/201/390 4061/202/390 4062/199/390 +f 4062/199/390 4024/200/390 4023/201/390 +f 4060/231/456 4039/233/456 4038/232/456 +f 4038/232/456 4054/224/456 4060/231/456 +f 4054/224/455 4038/232/455 4046/234/455 +f 4046/234/455 4056/225/455 4054/224/455 +f 4056/225/454 4046/234/454 4043/232/454 +f 4043/232/454 4055/224/454 4056/225/454 +f 4055/224/457 4043/232/457 4042/233/457 +f 4042/233/457 4057/231/457 4055/224/457 +f 4031/200/388 4063/199/388 4064/202/388 +f 4064/202/388 4032/201/388 4031/200/388 +f 4035/208/398 4044/236/398 4045/235/398 +f 4045/235/398 4036/207/398 4035/208/398 +f 4036/207/391 4045/235/391 4037/236/391 +f 4037/236/391 4052/208/391 4036/207/391 +f 4059/236/27 4021/238/27 4024/237/27 +f 4024/237/27 4060/231/27 4059/236/27 +f 4060/231/27 4024/237/27 4062/239/27 +f 4062/239/27 4039/233/27 4060/231/27 +f 4039/210/484 4062/241/484 4061/240/484 +f 4061/240/484 4037/209/484 4039/210/484 +f 4037/236/26 4061/238/26 4023/242/26 +f 4023/242/26 4052/208/26 4037/236/26 +f 4052/208/26 4023/242/26 4022/240/26 +f 4022/240/26 4051/209/26 4052/208/26 +f 4034/209/26 4029/240/26 4032/242/26 +f 4032/242/26 4035/208/26 4034/209/26 +f 4035/208/26 4032/242/26 4064/238/26 +f 4064/238/26 4044/236/26 4035/208/26 +f 4044/209/459 4064/240/459 4063/241/459 +f 4063/241/459 4042/210/459 4044/209/459 +f 4042/233/27 4063/239/27 4031/237/27 +f 4031/237/27 4057/231/27 4042/233/27 +f 4057/231/27 4031/237/27 4030/238/27 +f 4030/238/27 4058/236/27 4057/231/27 +f 4065/195/4 4066/198/4 4067/197/4 +f 4067/197/4 4068/196/4 4065/195/4 +f 4069/199/416 4070/202/416 4071/201/415 +f 4071/201/415 4072/200/415 4069/199/416 +f 4073/203/421 4074/206/421 4075/205/421 +f 4075/205/421 4076/204/421 4073/203/421 +f 4077/202/413 4078/199/413 4079/200/412 +f 4079/200/412 4080/201/412 4077/202/413 +f 4081/207/466 4082/209/466 4083/208/466 +f 4083/208/466 4084/207/466 4081/207/466 +f 4085/209/107 4086/211/107 4087/210/107 +f 4076/212/467 4075/214/467 4088/213/467 +f 4088/213/467 4089/196/467 4076/212/467 +f 4090/210/468 4091/211/468 4092/209/468 +f 4093/215/469 4092/209/469 4091/211/469 +f 4091/211/469 4094/216/469 4093/215/469 +f 4095/217/103 4068/196/103 4067/197/103 +f 4067/197/103 4096/218/103 4095/217/103 +f 4097/219/414 4073/203/414 4076/204/414 +f 4076/204/414 4098/220/414 4097/219/414 +f 4099/209/471 4081/207/471 4084/207/471 +f 4084/207/471 4100/208/471 4099/209/471 +f 4076/212/472 4089/196/472 4101/213/472 +f 4101/213/472 4098/214/472 4076/212/472 +f 4093/215/332 4094/216/332 4086/211/332 +f 4086/211/332 4085/209/332 4093/215/332 +f 4102/221/413 4066/221/412 4065/222/412 +f 4065/222/412 4088/222/413 4102/221/413 +f 4088/222/426 4065/222/426 4068/203/426 +f 4068/203/426 4089/203/426 4088/222/426 +f 4089/203/425 4068/203/425 4095/206/425 +f 4095/206/425 4101/206/425 4089/203/425 +f 4101/206/415 4095/206/415 4096/223/415 +f 4096/223/415 4103/223/415 4101/206/415 +f 4103/224/473 4096/224/473 4067/226/473 +f 4067/226/473 4104/225/473 4103/224/473 +f 4104/225/430 4067/226/430 4066/224/430 +f 4066/224/430 4102/224/430 4104/225/430 +f 4098/214/468 4101/213/468 4103/228/468 +f 4103/228/468 4105/227/468 4098/214/468 +f 4105/229/413 4106/221/413 4097/219/413 +f 4097/219/413 4098/220/413 4105/229/413 +f 4074/206/415 4107/223/415 4108/230/415 +f 4108/230/415 4075/205/415 4074/206/415 +f 4108/227/107 4102/228/107 4088/213/107 +f 4088/213/107 4075/214/107 4108/227/107 +f 4071/201/415 4109/202/416 4110/199/416 +f 4110/199/416 4072/200/415 4071/201/415 +f 4108/231/485 4087/233/485 4086/232/485 +f 4086/232/485 4102/224/485 4108/231/485 +f 4102/224/430 4086/232/430 4094/234/430 +f 4094/234/430 4104/225/430 4102/224/430 +f 4104/225/473 4094/234/473 4091/232/473 +f 4091/232/473 4103/224/473 4104/225/473 +f 4103/224/428 4091/232/428 4090/233/428 +f 4090/233/428 4105/231/428 4103/224/428 +f 4079/200/412 4111/199/413 4112/202/413 +f 4112/202/413 4080/201/412 4079/200/412 +f 4083/208/466 4092/236/466 4093/235/466 +f 4093/235/466 4084/207/466 4083/208/466 +f 4084/207/471 4093/235/471 4085/236/471 +f 4085/236/471 4100/208/471 4084/207/471 +f 4107/236/27 4069/238/27 4072/237/27 +f 4072/237/27 4108/231/27 4107/236/27 +f 4108/231/27 4072/237/27 4110/239/27 +f 4110/239/27 4087/233/27 4108/231/27 +f 4087/210/193 4110/241/193 4109/240/193 +f 4109/240/193 4085/209/193 4087/210/193 +f 4085/236/26 4109/238/26 4071/242/26 +f 4071/242/26 4100/208/26 4085/236/26 +f 4100/208/26 4071/242/26 4070/240/26 +f 4070/240/26 4099/209/26 4100/208/26 +f 4082/209/26 4077/240/26 4080/242/26 +f 4080/242/26 4083/208/26 4082/209/26 +f 4083/208/26 4080/242/26 4112/238/26 +f 4112/238/26 4092/236/26 4083/208/26 +f 4092/209/475 4112/240/475 4111/241/475 +f 4111/241/475 4090/210/475 4092/209/475 +f 4090/233/27 4111/239/27 4079/237/27 +f 4079/237/27 4105/231/27 4090/233/27 +f 4105/231/27 4079/237/27 4078/238/27 +f 4078/238/27 4106/236/27 4105/231/27 +f 4113/243/476 4114/246/476 4115/245/476 +f 4115/245/476 4116/244/476 4113/243/476 +f 4113/247/477 4117/250/477 4118/249/477 +f 4118/249/477 4114/248/477 4113/247/477 +f 4114/246/478 4118/252/478 4119/251/478 +f 4119/251/478 4115/245/478 4114/246/478 +f 4115/248/479 4119/249/479 4120/250/479 +f 4120/250/479 4116/247/479 4115/248/479 +f 4121/195/464 4122/198/464 4123/197/464 +f 4123/197/464 4124/196/464 4121/195/464 +f 4125/199/416 4126/202/416 4127/201/415 +f 4127/201/415 4128/200/415 4125/199/416 +f 4129/203/421 4130/206/421 4131/205/421 +f 4131/205/421 4132/204/421 4129/203/421 +f 4133/202/413 4134/199/413 4135/200/412 +f 4135/200/412 4136/201/412 4133/202/413 +f 4137/207/466 4138/209/466 4139/208/466 +f 4139/208/466 4140/207/466 4137/207/466 +f 4141/209/107 4142/211/107 4143/210/107 +f 4132/212/467 4131/214/467 4144/213/467 +f 4144/213/467 4145/196/467 4132/212/467 +f 4146/210/468 4147/211/468 4148/209/468 +f 4149/215/469 4148/209/469 4147/211/469 +f 4147/211/469 4150/216/469 4149/215/469 +f 4151/217/103 4124/196/103 4123/197/103 +f 4123/197/103 4152/218/103 4151/217/103 +f 4153/219/470 4129/203/414 4132/204/414 +f 4132/204/414 4154/220/470 4153/219/470 +f 4155/209/471 4137/207/471 4140/207/471 +f 4140/207/471 4156/208/471 4155/209/471 +f 4132/212/472 4145/196/472 4157/213/472 +f 4157/213/472 4154/214/472 4132/212/472 +f 4149/215/332 4150/216/332 4142/211/332 +f 4142/211/332 4141/209/332 4149/215/332 +f 4158/221/413 4122/221/413 4121/222/413 +f 4121/222/413 4144/222/413 4158/221/413 +f 4144/222/426 4121/222/426 4124/203/426 +f 4124/203/426 4145/203/426 4144/222/426 +f 4145/203/425 4124/203/425 4151/206/425 +f 4151/206/425 4157/206/425 4145/203/425 +f 4157/206/415 4151/206/415 4152/223/415 +f 4152/223/415 4159/223/415 4157/206/415 +f 4159/224/473 4152/224/473 4123/226/473 +f 4123/226/473 4160/225/473 4159/224/473 +f 4160/225/430 4123/226/430 4122/224/430 +f 4122/224/430 4158/224/430 4160/225/430 +f 4154/214/468 4157/213/468 4159/228/468 +f 4159/228/468 4161/227/468 4154/214/468 +f 4161/229/437 4162/221/412 4153/219/412 +f 4153/219/412 4154/220/437 4161/229/437 +f 4130/206/415 4163/223/415 4164/230/416 +f 4164/230/416 4131/205/416 4130/206/415 +f 4164/227/107 4158/228/107 4144/213/107 +f 4144/213/107 4131/214/107 4164/227/107 +f 4127/201/415 4165/202/416 4166/199/416 +f 4166/199/416 4128/200/415 4127/201/415 +f 4164/231/485 4143/233/485 4142/232/485 +f 4142/232/485 4158/224/485 4164/231/485 +f 4158/224/430 4142/232/430 4150/234/430 +f 4150/234/430 4160/225/430 4158/224/430 +f 4160/225/473 4150/234/473 4147/232/473 +f 4147/232/473 4159/224/473 4160/225/473 +f 4159/224/428 4147/232/428 4146/233/428 +f 4146/233/428 4161/231/428 4159/224/428 +f 4135/200/412 4167/199/413 4168/202/413 +f 4168/202/413 4136/201/412 4135/200/412 +f 4139/208/466 4148/236/466 4149/235/466 +f 4149/235/466 4140/207/466 4139/208/466 +f 4140/207/471 4149/235/471 4141/236/471 +f 4141/236/471 4156/208/471 4140/207/471 +f 4163/236/27 4125/238/27 4128/237/27 +f 4128/237/27 4164/231/27 4163/236/27 +f 4164/231/27 4128/237/27 4166/239/27 +f 4166/239/27 4143/233/27 4164/231/27 +f 4143/210/193 4166/241/193 4165/240/193 +f 4165/240/193 4141/209/193 4143/210/193 +f 4141/236/26 4165/238/26 4127/242/26 +f 4127/242/26 4156/208/26 4141/236/26 +f 4156/208/26 4127/242/26 4126/240/26 +f 4126/240/26 4155/209/26 4156/208/26 +f 4138/209/26 4133/240/26 4136/242/26 +f 4136/242/26 4139/208/26 4138/209/26 +f 4139/208/26 4136/242/26 4168/238/26 +f 4168/238/26 4148/236/26 4139/208/26 +f 4148/209/475 4168/240/475 4167/241/475 +f 4167/241/475 4146/210/475 4148/209/475 +f 4146/233/27 4167/239/27 4135/237/27 +f 4135/237/27 4161/231/27 4146/233/27 +f 4161/231/27 4135/237/27 4134/238/27 +f 4134/238/27 4162/236/27 4161/231/27 +f 4169/243/460 4170/246/460 4171/245/460 +f 4171/245/460 4172/244/460 4169/243/460 +f 4169/247/461 4173/250/461 4174/249/461 +f 4174/249/461 4170/248/461 4169/247/461 +f 4170/246/462 4174/252/462 4175/251/462 +f 4175/251/462 4171/245/462 4170/246/462 +f 4171/248/463 4175/249/463 4176/250/463 +f 4176/250/463 4172/247/463 4171/248/463 +f 4177/195/387 4178/198/387 4179/197/387 +f 4179/197/387 4180/196/387 4177/195/387 +f 4181/199/388 4182/202/388 4183/201/388 +f 4183/201/388 4184/200/388 4181/199/388 +f 4185/203/389 4186/206/389 4187/205/389 +f 4187/205/389 4188/204/389 4185/203/389 +f 4189/202/390 4190/199/390 4191/200/390 +f 4191/200/390 4192/201/390 4189/202/390 +f 4193/207/391 4194/209/391 4195/208/391 +f 4195/208/391 4196/207/391 4193/207/391 +f 4197/209/392 4198/211/392 4199/210/392 +f 4188/212/393 4187/214/393 4200/213/393 +f 4200/213/393 4201/196/393 4188/212/393 +f 4202/210/394 4203/211/394 4204/209/394 +f 4205/215/395 4204/209/395 4203/211/395 +f 4203/211/395 4206/216/395 4205/215/395 +f 4207/217/396 4180/196/486 4179/197/486 +f 4179/197/486 4208/218/396 4207/217/396 +f 4209/219/397 4185/203/397 4188/204/397 +f 4188/204/397 4210/220/397 4209/219/397 +f 4211/209/398 4193/207/398 4196/207/398 +f 4196/207/398 4212/208/398 4211/209/398 +f 4188/212/399 4201/196/399 4213/213/399 +f 4213/213/399 4210/214/399 4188/212/399 +f 4205/215/400 4206/216/400 4198/211/400 +f 4198/211/400 4197/209/400 4205/215/400 +f 4214/221/390 4178/221/390 4177/222/390 +f 4177/222/390 4200/222/390 4214/221/390 +f 4200/222/401 4177/222/401 4180/203/401 +f 4180/203/401 4201/203/401 4200/222/401 +f 4201/203/402 4180/203/402 4207/206/402 +f 4207/206/402 4213/206/402 4201/203/402 +f 4213/206/388 4207/206/388 4208/223/388 +f 4208/223/388 4215/223/388 4213/206/388 +f 4215/224/403 4208/224/403 4179/226/403 +f 4179/226/403 4216/225/403 4215/224/403 +f 4216/225/404 4179/226/404 4178/224/404 +f 4178/224/404 4214/224/404 4216/225/404 +f 4210/214/394 4213/213/394 4215/228/394 +f 4215/228/394 4217/227/394 4210/214/394 +f 4217/229/390 4218/221/390 4209/219/390 +f 4209/219/390 4210/220/390 4217/229/390 +f 4186/206/388 4219/223/388 4220/230/388 +f 4220/230/388 4187/205/388 4186/206/388 +f 4220/227/392 4214/228/392 4200/213/392 +f 4200/213/392 4187/214/392 4220/227/392 +f 4183/201/388 4221/202/388 4222/199/388 +f 4222/199/388 4184/200/388 4183/201/388 +f 4220/231/405 4199/233/405 4198/232/405 +f 4198/232/405 4214/224/405 4220/231/405 +f 4214/224/404 4198/232/404 4206/234/404 +f 4206/234/404 4216/225/404 4214/224/404 +f 4216/225/403 4206/234/403 4203/232/403 +f 4203/232/403 4215/224/403 4216/225/403 +f 4215/224/407 4203/232/407 4202/233/407 +f 4202/233/407 4217/231/407 4215/224/407 +f 4191/200/390 4223/199/390 4224/202/390 +f 4224/202/390 4192/201/390 4191/200/390 +f 4195/208/391 4204/236/391 4205/235/391 +f 4205/235/391 4196/207/391 4195/208/391 +f 4196/207/398 4205/235/398 4197/236/398 +f 4197/236/398 4212/208/398 4196/207/398 +f 4219/236/27 4181/238/27 4184/237/27 +f 4184/237/27 4220/231/27 4219/236/27 +f 4220/231/27 4184/237/27 4222/239/27 +f 4222/239/27 4199/233/27 4220/231/27 +f 4199/210/409 4222/241/409 4221/240/409 +f 4221/240/409 4197/209/409 4199/210/409 +f 4197/236/26 4221/238/26 4183/242/26 +f 4183/242/26 4212/208/26 4197/236/26 +f 4212/208/26 4183/242/26 4182/240/26 +f 4182/240/26 4211/209/26 4212/208/26 +f 4194/209/26 4189/240/26 4192/242/26 +f 4192/242/26 4195/208/26 4194/209/26 +f 4195/208/26 4192/242/26 4224/238/26 +f 4224/238/26 4204/236/26 4195/208/26 +f 4204/209/410 4224/240/410 4223/241/410 +f 4223/241/410 4202/210/410 4204/209/410 +f 4202/233/27 4223/239/27 4191/237/27 +f 4191/237/27 4217/231/27 4202/233/27 +f 4217/231/27 4191/237/27 4190/238/27 +f 4190/238/27 4218/236/27 4217/231/27 +f 4225/243/148 4226/246/148 4227/245/148 +f 4227/245/148 4228/244/148 4225/243/148 +f 4225/247/7 4229/250/7 4230/249/7 +f 4230/249/7 4226/248/7 4225/247/7 +f 4226/246/149 4230/252/149 4231/251/149 +f 4231/251/149 4227/245/149 4226/246/149 +f 4227/248/1 4231/249/1 4232/250/1 +f 4232/250/1 4228/247/1 4227/248/1 +f 4233/243/187 4234/246/187 4235/245/187 +f 4235/245/187 4236/244/187 4233/243/187 +f 4233/247/161 4237/250/161 4238/249/161 +f 4238/249/161 4234/248/161 4233/247/161 +f 4234/246/188 4238/252/188 4239/251/188 +f 4239/251/188 4235/245/188 4234/246/188 +f 4235/248/163 4239/249/163 4240/250/163 +f 4240/250/163 4236/247/163 4235/248/163 +f 4241/243/154 4242/246/154 4243/245/154 +f 4243/245/154 4244/244/154 4241/243/154 +f 4241/247/1 4245/250/1 4246/249/1 +f 4246/249/1 4242/248/1 4241/247/1 +f 4242/246/155 4246/252/155 4247/251/155 +f 4247/251/155 4243/245/155 4242/246/155 +f 4243/248/7 4247/249/7 4248/250/7 +f 4248/250/7 4244/247/7 4243/248/7 +f 4249/243/439 4250/246/439 4251/245/439 +f 4251/245/439 4252/244/439 4249/243/439 +f 4249/247/440 4253/250/440 4254/249/440 +f 4254/249/440 4250/248/440 4249/247/440 +f 4250/246/441 4254/252/441 4255/251/441 +f 4255/251/441 4251/245/441 4250/246/441 +f 4251/248/442 4255/249/442 4256/250/442 +f 4256/250/442 4252/247/442 4251/248/442 +f 4257/243/180 4258/246/180 4259/245/180 +f 4259/245/180 4260/244/180 4257/243/180 +f 4257/247/151 4261/250/151 4262/249/151 +f 4262/249/151 4258/248/151 4257/247/151 +f 4258/246/181 4262/252/181 4263/251/181 +f 4263/251/181 4259/245/181 4258/246/181 +f 4259/248/153 4263/249/153 4264/250/153 +f 4264/250/153 4260/247/153 4259/248/153 +f 4265/195/387 4266/198/387 4267/197/387 +f 4267/197/387 4268/196/387 4265/195/387 +f 4269/199/388 4270/202/388 4271/201/388 +f 4271/201/388 4272/200/388 4269/199/388 +f 4273/203/389 4274/206/389 4275/205/389 +f 4275/205/389 4276/204/389 4273/203/389 +f 4277/202/390 4278/199/390 4279/200/390 +f 4279/200/390 4280/201/390 4277/202/390 +f 4281/207/391 4282/209/391 4283/208/391 +f 4283/208/391 4284/207/391 4281/207/391 +f 4285/209/392 4286/211/392 4287/210/392 +f 4276/212/393 4275/214/393 4288/213/393 +f 4288/213/393 4289/196/393 4276/212/393 +f 4290/210/394 4291/211/394 4292/209/394 +f 4293/215/395 4292/209/395 4291/211/395 +f 4291/211/395 4294/216/395 4293/215/395 +f 4295/217/396 4268/196/486 4267/197/486 +f 4267/197/486 4296/218/396 4295/217/396 +f 4297/219/397 4273/203/397 4276/204/397 +f 4276/204/397 4298/220/397 4297/219/397 +f 4299/209/398 4281/207/398 4284/207/398 +f 4284/207/398 4300/208/398 4299/209/398 +f 4276/212/399 4289/196/399 4301/213/399 +f 4301/213/399 4298/214/399 4276/212/399 +f 4293/215/400 4294/216/400 4286/211/400 +f 4286/211/400 4285/209/400 4293/215/400 +f 4302/221/390 4266/221/390 4265/222/390 +f 4265/222/390 4288/222/390 4302/221/390 +f 4288/222/401 4265/222/401 4268/203/401 +f 4268/203/401 4289/203/401 4288/222/401 +f 4289/203/402 4268/203/402 4295/206/402 +f 4295/206/402 4301/206/402 4289/203/402 +f 4301/206/388 4295/206/388 4296/223/388 +f 4296/223/388 4303/223/388 4301/206/388 +f 4303/224/403 4296/224/403 4267/226/403 +f 4267/226/403 4304/225/403 4303/224/403 +f 4304/225/404 4267/226/404 4266/224/404 +f 4266/224/404 4302/224/404 4304/225/404 +f 4298/214/394 4301/213/394 4303/228/394 +f 4303/228/394 4305/227/394 4298/214/394 +f 4305/229/390 4306/221/390 4297/219/390 +f 4297/219/390 4298/220/390 4305/229/390 +f 4274/206/388 4307/223/388 4308/230/388 +f 4308/230/388 4275/205/388 4274/206/388 +f 4308/227/392 4302/228/392 4288/213/392 +f 4288/213/392 4275/214/392 4308/227/392 +f 4271/201/388 4309/202/388 4310/199/388 +f 4310/199/388 4272/200/388 4271/201/388 +f 4308/231/405 4287/233/405 4286/232/405 +f 4286/232/405 4302/224/405 4308/231/405 +f 4302/224/404 4286/232/404 4294/234/404 +f 4294/234/404 4304/225/404 4302/224/404 +f 4304/225/403 4294/234/403 4291/232/403 +f 4291/232/403 4303/224/403 4304/225/403 +f 4303/224/407 4291/232/407 4290/233/407 +f 4290/233/407 4305/231/407 4303/224/407 +f 4279/200/390 4311/199/390 4312/202/390 +f 4312/202/390 4280/201/390 4279/200/390 +f 4283/208/391 4292/236/391 4293/235/391 +f 4293/235/391 4284/207/391 4283/208/391 +f 4284/207/398 4293/235/398 4285/236/398 +f 4285/236/398 4300/208/398 4284/207/398 +f 4307/236/27 4269/238/27 4272/237/27 +f 4272/237/27 4308/231/27 4307/236/27 +f 4308/231/27 4272/237/27 4310/239/27 +f 4310/239/27 4287/233/27 4308/231/27 +f 4287/210/409 4310/241/409 4309/240/409 +f 4309/240/409 4285/209/409 4287/210/409 +f 4285/236/26 4309/238/26 4271/242/26 +f 4271/242/26 4300/208/26 4285/236/26 +f 4300/208/26 4271/242/26 4270/240/26 +f 4270/240/26 4299/209/26 4300/208/26 +f 4282/209/26 4277/240/26 4280/242/26 +f 4280/242/26 4283/208/26 4282/209/26 +f 4283/208/26 4280/242/26 4312/238/26 +f 4312/238/26 4292/236/26 4283/208/26 +f 4292/209/410 4312/240/410 4311/241/410 +f 4311/241/410 4290/210/410 4292/209/410 +f 4290/233/27 4311/239/27 4279/237/27 +f 4279/237/27 4305/231/27 4290/233/27 +f 4305/231/27 4279/237/27 4278/238/27 +f 4278/238/27 4306/236/27 4305/231/27 +f 4313/195/436 4314/198/436 4315/197/411 +f 4315/197/411 4316/196/411 4313/195/436 +f 4317/199/437 4318/202/437 4319/201/437 +f 4319/201/437 4320/200/437 4317/199/437 +f 4321/203/414 4322/206/414 4323/205/414 +f 4323/205/414 4324/204/414 4321/203/414 +f 4325/202/465 4326/199/465 4327/200/465 +f 4327/200/465 4328/201/465 4325/202/465 +f 4329/207/417 4330/209/417 4331/208/417 +f 4331/208/417 4332/207/417 4329/207/417 +f 4333/209/171 4334/211/171 4335/210/171 +f 4324/212/418 4323/214/418 4336/213/418 +f 4336/213/418 4337/196/418 4324/212/418 +f 4338/210/419 4339/211/419 4340/209/419 +f 4341/215/420 4340/209/420 4339/211/420 +f 4339/211/420 4342/216/420 4341/215/420 +f 4343/217/167 4316/196/167 4315/197/167 +f 4315/197/167 4344/218/167 4343/217/167 +f 4345/219/438 4321/203/421 4324/204/421 +f 4324/204/421 4346/220/421 4345/219/438 +f 4347/209/422 4329/207/422 4332/207/422 +f 4332/207/422 4348/208/422 4347/209/422 +f 4324/212/423 4337/196/423 4349/213/423 +f 4349/213/423 4346/214/423 4324/212/423 +f 4341/215/424 4342/216/424 4334/211/424 +f 4334/211/424 4333/209/424 4341/215/424 +f 4350/221/465 4314/221/465 4313/222/465 +f 4313/222/465 4336/222/465 4350/221/465 +f 4336/222/425 4313/222/425 4316/203/425 +f 4316/203/425 4337/203/425 4336/222/425 +f 4337/203/426 4316/203/426 4343/206/426 +f 4343/206/426 4349/206/426 4337/203/426 +f 4349/206/437 4343/206/437 4344/223/437 +f 4344/223/437 4351/223/437 4349/206/437 +f 4351/224/427 4344/224/427 4315/226/427 +f 4315/226/427 4352/225/427 4351/224/427 +f 4352/225/428 4315/226/428 4314/224/428 +f 4314/224/428 4350/224/428 4352/225/428 +f 4346/214/419 4349/213/419 4351/228/419 +f 4351/228/419 4353/227/419 4346/214/419 +f 4353/229/465 4354/221/465 4345/219/465 +f 4345/219/465 4346/220/465 4353/229/465 +f 4322/206/437 4355/223/437 4356/230/437 +f 4356/230/437 4323/205/437 4322/206/437 +f 4356/227/171 4350/228/171 4336/213/171 +f 4336/213/171 4323/214/171 4356/227/171 +f 4319/201/437 4357/202/437 4358/199/437 +f 4358/199/437 4320/200/437 4319/201/437 +f 4356/231/487 4335/233/487 4334/232/487 +f 4334/232/487 4350/224/487 4356/231/487 +f 4350/224/428 4334/232/428 4342/234/428 +f 4342/234/428 4352/225/428 4350/224/428 +f 4352/225/427 4342/234/427 4339/232/427 +f 4339/232/427 4351/224/427 4352/225/427 +f 4351/224/430 4339/232/430 4338/233/430 +f 4338/233/430 4353/231/430 4351/224/430 +f 4327/200/465 4359/199/465 4360/202/465 +f 4360/202/465 4328/201/465 4327/200/465 +f 4331/208/417 4340/236/417 4341/235/417 +f 4341/235/417 4332/207/417 4331/208/417 +f 4332/207/422 4341/235/422 4333/236/422 +f 4333/236/422 4348/208/422 4332/207/422 +f 4355/236/27 4317/238/27 4320/237/27 +f 4320/237/27 4356/231/27 4355/236/27 +f 4356/231/27 4320/237/27 4358/239/27 +f 4358/239/27 4335/233/27 4356/231/27 +f 4335/210/191 4358/241/191 4357/240/191 +f 4357/240/191 4333/209/191 4335/210/191 +f 4333/236/26 4357/238/26 4319/242/26 +f 4319/242/26 4348/208/26 4333/236/26 +f 4348/208/26 4319/242/26 4318/240/26 +f 4318/240/26 4347/209/26 4348/208/26 +f 4330/209/26 4325/240/26 4328/242/26 +f 4328/242/26 4331/208/26 4330/209/26 +f 4331/208/26 4328/242/26 4360/238/26 +f 4360/238/26 4340/236/26 4331/208/26 +f 4340/209/431 4360/240/431 4359/241/431 +f 4359/241/431 4338/210/431 4340/209/431 +f 4338/233/27 4359/239/27 4327/237/27 +f 4327/237/27 4353/231/27 4338/233/27 +f 4353/231/27 4327/237/27 4326/238/27 +f 4326/238/27 4354/236/27 4353/231/27 +f 4361/243/160 4362/246/160 4363/245/160 +f 4363/245/160 4364/244/160 4361/243/160 +f 4361/247/163 4365/250/163 4366/249/163 +f 4366/249/163 4362/248/163 4361/247/163 +f 4362/246/162 4366/252/162 4367/251/162 +f 4367/251/162 4363/245/162 4362/246/162 +f 4363/248/161 4367/249/161 4368/250/161 +f 4368/250/161 4364/247/161 4363/248/161 +f 4369/195/411 4370/198/411 4371/197/436 +f 4371/197/436 4372/196/436 4369/195/411 +f 4373/199/437 4374/202/437 4375/201/437 +f 4375/201/437 4376/200/437 4373/199/437 +f 4377/203/414 4378/206/414 4379/205/414 +f 4379/205/414 4380/204/414 4377/203/414 +f 4381/202/465 4382/199/465 4383/200/465 +f 4383/200/465 4384/201/465 4381/202/465 +f 4385/207/417 4386/209/417 4387/208/417 +f 4387/208/417 4388/207/417 4385/207/417 +f 4389/209/171 4390/211/171 4391/210/171 +f 4380/212/418 4379/214/418 4392/213/418 +f 4392/213/418 4393/196/418 4380/212/418 +f 4394/210/419 4395/211/419 4396/209/419 +f 4397/215/420 4396/209/420 4395/211/420 +f 4395/211/420 4398/216/420 4397/215/420 +f 4399/217/167 4372/196/167 4371/197/167 +f 4371/197/167 4400/218/167 4399/217/167 +f 4401/219/421 4377/203/421 4380/204/438 +f 4380/204/438 4402/220/421 4401/219/421 +f 4403/209/422 4385/207/422 4388/207/422 +f 4388/207/422 4404/208/422 4403/209/422 +f 4380/212/423 4393/196/423 4405/213/423 +f 4405/213/423 4402/214/423 4380/212/423 +f 4397/215/424 4398/216/424 4390/211/424 +f 4390/211/424 4389/209/424 4397/215/424 +f 4406/221/465 4370/221/465 4369/222/465 +f 4369/222/465 4392/222/465 4406/221/465 +f 4392/222/425 4369/222/425 4372/203/425 +f 4372/203/425 4393/203/425 4392/222/425 +f 4393/203/426 4372/203/426 4399/206/426 +f 4399/206/426 4405/206/426 4393/203/426 +f 4405/206/437 4399/206/437 4400/223/437 +f 4400/223/437 4407/223/437 4405/206/437 +f 4407/224/427 4400/224/427 4371/226/427 +f 4371/226/427 4408/225/427 4407/224/427 +f 4408/225/428 4371/226/428 4370/224/428 +f 4370/224/428 4406/224/428 4408/225/428 +f 4402/214/419 4405/213/419 4407/228/419 +f 4407/228/419 4409/227/419 4402/214/419 +f 4409/229/465 4410/221/465 4401/219/465 +f 4401/219/465 4402/220/465 4409/229/465 +f 4378/206/437 4411/223/437 4412/230/437 +f 4412/230/437 4379/205/437 4378/206/437 +f 4412/227/171 4406/228/171 4392/213/171 +f 4392/213/171 4379/214/171 4412/227/171 +f 4375/201/437 4413/202/437 4414/199/437 +f 4414/199/437 4376/200/437 4375/201/437 +f 4412/231/487 4391/233/487 4390/232/487 +f 4390/232/487 4406/224/487 4412/231/487 +f 4406/224/428 4390/232/428 4398/234/428 +f 4398/234/428 4408/225/428 4406/224/428 +f 4408/225/427 4398/234/427 4395/232/427 +f 4395/232/427 4407/224/427 4408/225/427 +f 4407/224/430 4395/232/430 4394/233/430 +f 4394/233/430 4409/231/430 4407/224/430 +f 4383/200/465 4415/199/465 4416/202/465 +f 4416/202/465 4384/201/465 4383/200/465 +f 4387/208/417 4396/236/417 4397/235/417 +f 4397/235/417 4388/207/417 4387/208/417 +f 4388/207/422 4397/235/422 4389/236/422 +f 4389/236/422 4404/208/422 4388/207/422 +f 4411/236/27 4373/238/27 4376/237/27 +f 4376/237/27 4412/231/27 4411/236/27 +f 4412/231/27 4376/237/27 4414/239/27 +f 4414/239/27 4391/233/27 4412/231/27 +f 4391/210/191 4414/241/191 4413/240/191 +f 4413/240/191 4389/209/191 4391/210/191 +f 4389/236/26 4413/238/26 4375/242/26 +f 4375/242/26 4404/208/26 4389/236/26 +f 4404/208/26 4375/242/26 4374/240/26 +f 4374/240/26 4403/209/26 4404/208/26 +f 4386/209/26 4381/240/26 4384/242/26 +f 4384/242/26 4387/208/26 4386/209/26 +f 4387/208/26 4384/242/26 4416/238/26 +f 4416/238/26 4396/236/26 4387/208/26 +f 4396/209/431 4416/240/431 4415/241/431 +f 4415/241/431 4394/210/431 4396/209/431 +f 4394/233/27 4415/239/27 4383/237/27 +f 4383/237/27 4409/231/27 4394/233/27 +f 4409/231/27 4383/237/27 4382/238/27 +f 4382/238/27 4410/236/27 4409/231/27 +f 4417/243/432 4418/246/432 4419/245/432 +f 4419/245/432 4420/244/432 4417/243/432 +f 4417/247/433 4421/250/433 4422/249/433 +f 4422/249/433 4418/248/433 4417/247/433 +f 4418/246/434 4422/252/434 4423/251/434 +f 4423/251/434 4419/245/434 4418/246/434 +f 4419/248/435 4423/249/435 4424/250/435 +f 4424/250/435 4420/247/435 4419/248/435 +f 4425/195/443 4426/198/443 4427/197/443 +f 4427/197/443 4428/196/443 4425/195/443 +f 4429/199/390 4430/202/390 4431/201/390 +f 4431/201/390 4432/200/390 4429/199/390 +f 4433/203/444 4434/206/444 4435/205/444 +f 4435/205/444 4436/204/444 4433/203/444 +f 4437/202/388 4438/199/388 4439/200/388 +f 4439/200/388 4440/201/388 4437/202/388 +f 4441/207/398 4442/209/398 4443/208/398 +f 4443/208/398 4444/207/398 4441/207/398 +f 4445/209/445 4446/211/445 4447/210/445 +f 4436/212/446 4435/214/446 4448/213/446 +f 4448/213/446 4449/196/446 4436/212/446 +f 4450/210/447 4451/211/447 4452/209/447 +f 4453/215/448 4452/209/448 4451/211/448 +f 4451/211/448 4454/216/448 4453/215/448 +f 4455/217/449 4428/196/449 4427/197/449 +f 4427/197/449 4456/218/449 4455/217/449 +f 4457/219/451 4433/203/451 4436/204/451 +f 4436/204/451 4458/220/451 4457/219/451 +f 4459/209/391 4441/207/391 4444/207/391 +f 4444/207/391 4460/208/391 4459/209/391 +f 4436/212/452 4449/196/452 4461/213/452 +f 4461/213/452 4458/214/452 4436/212/452 +f 4453/215/453 4454/216/453 4446/211/453 +f 4446/211/453 4445/209/453 4453/215/453 +f 4462/221/388 4426/221/388 4425/222/388 +f 4425/222/388 4448/222/388 4462/221/388 +f 4448/222/402 4425/222/402 4428/203/402 +f 4428/203/402 4449/203/402 4448/222/402 +f 4449/203/401 4428/203/401 4455/206/401 +f 4455/206/401 4461/206/401 4449/203/401 +f 4461/206/390 4455/206/390 4456/223/390 +f 4456/223/390 4463/223/390 4461/206/390 +f 4463/224/454 4456/224/454 4427/226/454 +f 4427/226/454 4464/225/454 4463/224/454 +f 4464/225/455 4427/226/455 4426/224/455 +f 4426/224/455 4462/224/455 4464/225/455 +f 4458/214/447 4461/213/447 4463/228/447 +f 4463/228/447 4465/227/447 4458/214/447 +f 4465/229/388 4466/221/388 4457/219/388 +f 4457/219/388 4458/220/388 4465/229/388 +f 4434/206/390 4467/223/390 4468/230/390 +f 4468/230/390 4435/205/390 4434/206/390 +f 4468/227/445 4462/228/445 4448/213/445 +f 4448/213/445 4435/214/445 4468/227/445 +f 4431/201/390 4469/202/390 4470/199/390 +f 4470/199/390 4432/200/390 4431/201/390 +f 4468/231/456 4447/233/456 4446/232/456 +f 4446/232/456 4462/224/456 4468/231/456 +f 4462/224/455 4446/232/455 4454/234/455 +f 4454/234/455 4464/225/455 4462/224/455 +f 4464/225/454 4454/234/454 4451/232/454 +f 4451/232/454 4463/224/454 4464/225/454 +f 4463/224/457 4451/232/457 4450/233/457 +f 4450/233/457 4465/231/457 4463/224/457 +f 4439/200/388 4471/199/388 4472/202/388 +f 4472/202/388 4440/201/388 4439/200/388 +f 4443/208/398 4452/236/398 4453/235/398 +f 4453/235/398 4444/207/398 4443/208/398 +f 4444/207/391 4453/235/391 4445/236/391 +f 4445/236/391 4460/208/391 4444/207/391 +f 4467/236/27 4429/238/27 4432/237/27 +f 4432/237/27 4468/231/27 4467/236/27 +f 4468/231/27 4432/237/27 4470/239/27 +f 4470/239/27 4447/233/27 4468/231/27 +f 4447/210/484 4470/241/484 4469/240/484 +f 4469/240/484 4445/209/484 4447/210/484 +f 4445/236/26 4469/238/26 4431/242/26 +f 4431/242/26 4460/208/26 4445/236/26 +f 4460/208/26 4431/242/26 4430/240/26 +f 4430/240/26 4459/209/26 4460/208/26 +f 4442/209/26 4437/240/26 4440/242/26 +f 4440/242/26 4443/208/26 4442/209/26 +f 4443/208/26 4440/242/26 4472/238/26 +f 4472/238/26 4452/236/26 4443/208/26 +f 4452/209/459 4472/240/459 4471/241/459 +f 4471/241/459 4450/210/459 4452/209/459 +f 4450/233/27 4471/239/27 4439/237/27 +f 4439/237/27 4465/231/27 4450/233/27 +f 4465/231/27 4439/237/27 4438/238/27 +f 4438/238/27 4466/236/27 4465/231/27 +f 4473/243/150 4474/246/150 4475/245/150 +f 4475/245/150 4476/244/150 4473/243/150 +f 4473/247/153 4477/250/153 4478/249/153 +f 4478/249/153 4474/248/153 4473/247/153 +f 4474/246/152 4478/252/152 4479/251/152 +f 4479/251/152 4475/245/152 4474/246/152 +f 4475/248/151 4479/249/151 4480/250/151 +f 4480/250/151 4476/247/151 4475/248/151 +f 4481/253/18 4482/256/18 4483/255/18 +f 4483/255/18 4484/254/18 4481/253/18 +f 4485/257/17 4486/258/17 4482/256/17 +f 4482/256/17 4481/253/17 4485/257/17 +f 4487/259/16 4488/260/16 4486/258/16 +f 4486/258/16 4485/257/16 4487/259/16 +f 4489/261/15 4490/264/15 4488/263/15 +f 4488/263/15 4487/262/118 4489/261/15 +f 4491/265/14 4492/266/14 4490/264/14 +f 4490/264/14 4489/261/14 4491/265/14 +f 4493/267/13 4494/268/13 4492/266/13 +f 4492/266/13 4491/265/13 4493/267/13 +f 4495/269/25 4496/270/25 4494/268/24 +f 4494/268/24 4493/267/24 4495/269/25 +f 4497/271/23 4498/272/23 4496/270/23 +f 4496/270/23 4495/269/23 4497/271/23 +f 4499/273/191 4500/274/22 4498/272/22 +f 4498/272/22 4497/271/22 4499/273/191 +f 4501/275/21 4502/276/21 4500/274/21 +f 4500/274/21 4499/273/21 4501/275/21 +f 4503/277/20 4504/278/20 4502/276/20 +f 4502/276/20 4501/275/20 4503/277/20 +f 4484/254/19 4483/255/19 4504/278/190 +f 4504/278/190 4503/277/190 4484/254/19 +f 4482/279/27 4505/282/27 4506/281/27 +f 4506/281/27 4483/280/27 4482/279/27 +f 4507/283/27 4508/284/27 4509/282/27 +f 4509/282/27 4510/279/27 4507/283/27 +f 4488/285/27 4511/285/27 4512/284/27 +f 4512/284/27 4486/283/27 4488/285/27 +f 4513/286/27 4514/287/27 4515/285/27 +f 4515/285/27 4516/285/27 4513/286/27 +f 4492/288/27 4517/289/27 4518/287/27 +f 4518/287/27 4490/286/27 4492/288/27 +f 4519/290/27 4520/291/27 4521/289/27 +f 4521/289/27 4522/288/27 4519/290/27 +f 4496/292/27 4523/293/27 4524/291/27 +f 4524/291/27 4494/290/27 4496/292/27 +f 4525/294/27 4526/295/27 4527/293/27 +f 4527/293/27 4528/292/27 4525/294/27 +f 4500/296/27 4529/297/27 4530/295/27 +f 4530/295/27 4498/294/27 4500/296/27 +f 4531/298/27 4532/299/27 4533/297/27 +f 4533/297/27 4534/296/27 4531/298/27 +f 4504/300/27 4535/300/27 4536/299/27 +f 4536/299/27 4502/298/27 4504/300/27 +f 4537/280/27 4538/281/27 4539/300/27 +f 4539/300/27 4540/300/27 4537/280/27 +f 4505/301/24 4541/304/24 4542/303/24 +f 4542/303/24 4506/302/24 4505/301/24 +f 4512/305/23 4543/306/23 4541/304/23 +f 4541/304/23 4505/301/23 4512/305/23 +f 4511/307/22 4544/308/22 4543/306/22 +f 4543/306/22 4512/305/191 4511/307/22 +f 4518/309/21 4545/310/21 4544/308/21 +f 4544/308/21 4511/307/21 4518/309/21 +f 4517/311/20 4546/312/20 4545/310/20 +f 4545/310/20 4518/309/20 4517/311/20 +f 4524/313/19 4547/314/19 4546/312/19 +f 4546/312/19 4517/311/19 4524/313/19 +f 4523/315/194 4548/316/194 4547/314/18 +f 4547/314/18 4524/313/18 4523/315/194 +f 4530/317/17 4549/318/17 4548/316/17 +f 4548/316/17 4523/315/17 4530/317/17 +f 4529/319/16 4550/320/16 4549/318/16 +f 4549/318/16 4530/317/16 4529/319/16 +f 4536/321/118 4551/324/15 4550/323/15 +f 4550/323/15 4529/322/15 4536/321/118 +f 4535/325/14 4552/326/14 4551/324/14 +f 4551/324/14 4536/321/14 4535/325/14 +f 4506/302/13 4542/303/13 4552/326/192 +f 4552/326/192 4535/325/192 4506/302/13 +f 4541/327/27 4553/329/27 4542/328/27 +f 4543/330/27 4553/329/27 4541/327/27 +f 4544/331/27 4553/329/27 4543/330/27 +f 4545/332/27 4553/329/27 4544/331/27 +f 4546/333/27 4553/329/27 4545/332/27 +f 4547/334/27 4553/329/27 4546/333/27 +f 4548/335/27 4553/329/27 4547/334/27 +f 4549/336/27 4553/329/27 4548/335/27 +f 4550/337/27 4553/329/27 4549/336/27 +f 4551/338/27 4553/329/27 4550/337/27 +f 4552/339/27 4553/329/27 4551/338/27 +f 4542/328/27 4553/329/27 4552/339/27 +f 4486/258/17 4507/341/17 4510/340/17 +f 4510/340/17 4482/256/17 4486/258/17 +f 4482/279/151 4510/279/151 4509/282/151 +f 4509/282/151 4505/282/151 4482/279/151 +f 4505/301/23 4509/343/23 4508/342/23 +f 4508/342/23 4512/305/23 4505/301/23 +f 4512/284/198 4508/284/198 4507/283/198 +f 4507/283/198 4486/283/198 4512/284/198 +f 4490/264/15 4513/345/15 4516/344/15 +f 4516/344/15 4488/263/15 4490/264/15 +f 4488/285/7 4516/285/7 4515/285/7 +f 4515/285/7 4511/285/7 4488/285/7 +f 4511/307/21 4515/347/21 4514/346/21 +f 4514/346/21 4518/309/21 4511/307/21 +f 4518/287/197 4514/287/197 4513/286/197 +f 4513/286/197 4490/286/197 4518/287/197 +f 4494/268/13 4519/349/13 4522/348/13 +f 4522/348/13 4492/266/13 4494/268/13 +f 4492/288/163 4522/288/163 4521/289/163 +f 4521/289/163 4517/289/163 4492/288/163 +f 4517/311/19 4521/351/19 4520/350/19 +f 4520/350/19 4524/313/19 4517/311/19 +f 4524/291/10 4520/291/10 4519/290/10 +f 4519/290/10 4494/290/10 4524/291/10 +f 4498/272/23 4525/353/23 4528/352/23 +f 4528/352/23 4496/270/23 4498/272/23 +f 4496/292/153 4528/292/153 4527/293/153 +f 4527/293/153 4523/293/153 4496/292/153 +f 4523/315/17 4527/355/17 4526/354/17 +f 4526/354/17 4530/317/17 4523/315/17 +f 4530/295/196 4526/295/196 4525/294/196 +f 4525/294/196 4498/294/196 4530/295/196 +f 4502/276/21 4531/357/21 4534/356/178 +f 4534/356/178 4500/274/21 4502/276/21 +f 4500/296/1 4534/296/1 4533/297/1 +f 4533/297/1 4529/297/1 4500/296/1 +f 4529/322/15 4533/359/15 4532/358/15 +f 4532/358/15 4536/321/118 4529/322/15 +f 4536/299/195 4532/299/195 4531/298/195 +f 4531/298/195 4502/298/195 4536/299/195 +f 4483/255/19 4537/361/19 4540/360/19 +f 4540/360/19 4504/278/190 4483/255/19 +f 4504/300/161 4540/300/161 4539/300/161 +f 4539/300/161 4535/300/161 4504/300/161 +f 4535/325/192 4539/363/192 4538/362/13 +f 4538/362/13 4506/302/13 4535/325/192 +f 4506/281/4 4538/281/4 4537/280/4 +f 4537/280/4 4483/280/4 4506/281/4 +# 7168 faces + +‰PNG + + IHDRHÃÛ±PLTE         %) +  # ++ #"&# *, ##((0843;:  (" # -&)!.(;"2+;3$#"%&(&(%&((*%#(&(+(&,++-/0.0..010�)&1-,8/-0/020.83.98/333568685689854868<95:;;7?@<>@?@<=AB?GH?HHADEHKLQRXXC$B&E(D)H&N I)L,F0 M1 D9V T P,P. [ Z" +_(S3 V8X6 Y8Q6U9X6\;I? A>;c& k+`>s, r-y0x1@?@I@]@LB DA=UJ%]Q(aAdEeHhEhFjHjKpNpPdX,k]0wV n`2wi6~p;BCCCFHEIJIEBHGHMIEJKKFNPLNPFPPMQQNWXNXXQMIPNQVQMRSSTVXUXYZUQXWZ]YTZ[\\^`V``]`aa]X`_dfb\xlD}pFtPbccdfhfhikfahgknicjkkmopnpqrlgxrl}wq„7€o;ƒs=ŠzC‰|S~C‚|vŽ€L€V•„H—ˆWž]ƒbˆ‚{˜‹d˜Žp‘iœ“t L ŽT¢N¦”W§—g§›u°žh® m­¡x±¡l²¤yŒ‡Šƒ———¦¬£‡®¦‘µª‡´¬“»±»²•§§§¼¶ ···ÁµÂ·™Å¼£ÈÁ©ÇÇÇ×××èèèüüü§uyÃðIDATxÚÔýop×}ç ®WshÅÕP ìž0=Æ£ÓgBf0¡Æì¶~ã†rš{ÏNw #AäÜ~¸í iV7¼’)ĺÞ*ª7áܹ*Ö“¢»—Y¿Ø½Ü®¦%4 €q„Ù­Ð +cô`=°ÿK­K—¶¶^}5 õ|>/M½ó…®ëºŽ´¼®ëzI7tC7’Gs9m||Ü0 ãkÐ5Ã0 CËåE>÷vPë3ÆXLÁù/ØW°ååeÆ|ß÷}¯¸p €¢ªÕ[ &€ã:O ñi@íÅÚÔ”IÈ~ + ]@P‹uJë;‹·À~ +À’›ÏÏÔ: + ÞU5b’±)€_RÉ. î½5Î5W{?Å Ø϶^º}Ü1XJæ¸r\IÇKQ¥ÇWy¸o$hÅ6¿Þ£Z­V«µu©ÕÚÚzu+¼æóÉét]ÓäQ^ë1ã~`èºñµ¯­®jùH`ä4EQôC*tô*€ýÿœ1ÆX©XDÅâPÄ +À÷`ÅóðØ^@{ÿW<–Øÿ/ܸ÷ŽÃ»«Íæ¹Õfï§¡h~vÜ{€:~\9~||<&€¢(¡¨ª²§Z­V¸ÑX Ð#ÿ·Â0  iúñù®ëz|ðëÉc1z@:@‡=ÈIÜf  l™-wƒ€½.€àâð%ÎùRÏù?,È‚¯A0̸0[–¿±¨Õ!A€!p…OIðÛŽ¬ö‹| +`‘Þ® 1ÿ¹Mm{Ñ®’Ó‰x¬Çø;çÿ/Ÿãð.@_à\óÜP ù™]€[!@ÅÜÁhÏ(12Š`ŒÀ¡@«õt'Ðê!@,ÿ/½ºµÛ#±ô¼Ž:Ç~^×óz>_Òu½dÉùo躦©ãéñ´n½@É)Ú øLX^î&ø@à Pâli‰£½1€n`y9ðý ðƒÃí 2„TuXà`p› výà@D‡gö äÐÅÛQWm{O FN÷ÄÔÿC]€;>« +€/ÜÇš«Íæ¹'’O¿Tp TÌ´WdÒãJ¬Ž+ s °Õ%@Øqz4€t¶^}õÕ0¶ÿ†®k:Šã~º.〚®çõ¼ ý%£Ô@.§¥ÇÇÓ‰ý¯æ5MSM ÷ ë ÜŽ ÀY‰ó%„ŠÚ@ ? è}h0€ÓŒ»iÀååeÆÒЇ€óT<:ôjÿñz}ö4©Ý¥t÷Íï½yýÆ_þðyºµßØý£?i×£´]Ÿèn;¢@)PXX 4ú“ëÑνю¢¨ýF}ç£ö7vÚÖŽêôû•hçÚ÷Û;×o¼±¸s­]®^¯Óö›7®¿ù'ׯGí6mGíöîîv]¯ÓèÆÂÝÝ(Р@iݦÿi7ŠvÛíz;Ú­_ý^ýê÷Ú½Q·«³ö$’›÷¬cÇŽýò\€CÇŽ=ÑXÝ'°ú À¾P1wPâ@FÁÃP<œØjõ# 7°¾àÕWùßh4‰ÅKhù|B¤— ]/•:ú_7¤ 6 Ý0VÕnpÊgÀòA`ûÆ–8cK¨¸XfI€ßç¬ôÇœîk†Å*¢¡QÀý‚€n€¥éC¯/MÏÌÜsçGî)ffÊår¹2]ž™žžžž.ÏLÏ”ËeùèL¹?<=====3=].—Ë…Ât¹ü¥/•Ë3ò‡33…r¹\ž. +…Âôôt¹P.— …ÂLY®™Êty¦0===].O'ÊÍË=›Ï|©\.ÏL +åòôt¹<“üìž{Ž™›˜ž‘{tÖ±_ödn €fOà‰æêù¡Y€Õ_ pö‰(éqeüøñãÇÇ%ƒŽ0>>~»1¼ÕÚºÔê „=ÃÖÆ¥­~ûo4´>—?‰ä‘.@IO€®ëjNIëºñeÃX]ýÚ*ÒöÀÈ)Š¢è½yýÓ`¸ Àe—p‰#Ô{Àü=u@+ò?èê @\Ù§Àáõü!×wç*íëöÔ”y†X4ºv-z³ý}Z¾ÑnÿÁw¾Ai{·Ñöíko\»Ñ¾ö ¸úüÂóßèóÑwé›ׯÑöïG»ÿûÙöîõݨý|ÔnïÒ(m?Oé7èó™Ù¹±S¯ËÇvw£ëo܈ʻív;Ú¦´}½ѨÝn_»vãÚmë»ÏÓ(Šž>Šv¯ïÒv;ÚÝ=ûÝÝÝ6mSµÛ@ 9=›5iDŸæ:ø(Û€_XàÞÛ‰kv£Oô¤~y +`ìPÒãʸ¢(ʸ¢(ŒgºiÀâ!²ãFcëÒ¥­=n€Œ„áFkcëÕW_mõÚK×Q^G:’~¿ÞIh%Y¤ºÔ†žÓ´Lz¥¶]ƒÝò BlZ§@m¹9˲æ{6§´Ü›°€œ!§gMónSþ3YÇŽû¥º·£bã?÷D³¹Ú\m6ÿ;:0žWÆÇ¥P°À\ Ý«Ð-ÆãF£qéÒV—}a¸Ñº´õêV+ /vrŸ[-™ˆIN0t½¤†^2tC/%€¢dÆÓãÒª¿öµ¯É À TíÐA€Ûwâ€B@ÎY !´o!` €À÷o© ¿x™1¤ !„p{À¹y¸5‘­ÂäèäÝÙ©©)sÖ4MÓ>"mkö´Y­Sj€@4¿°l uZ§¶ QÅ»Fç Q=!À4¡×m¨Vj5›R ]n€m•›×$ê€ÈÍk6­™=}Ú$Gˆiš$kš¦if³ÙìÔÝ“wÏ’ÙÓ¦Yˆ×±[àŽ_TàŽC*€s½•€{\€Õ_¬ 0·Ž(E,p)Q=Ðnˆc£Ñh\Úêq6zªÃõK—¶~¯Õ{üomµòzÌ'.@^×òº.íÞ0º…€š¦eâ`7˜KËuÐG€Ïäà=YqP!àR‰Ñ~Y@¶ÌX\ |xàN;@\ +¨©EU-Ouƒ€2p×!Öèdj25™J¥R##©ÉÔèÈèèèd*+ÿO4m»VI€z½n-Pkž¨ÑZÒšM)­ÈãÞ’g·eAÊ“Ÿ(¹öG6€Qjì¨Éó{qç*µíxóÅz½þè‹À<À£”R2™JŽŒ¦FR#©Ôdj¤ç¿æäääää?9"×±aø…ºP¦†õô ù‹V{pP ",0Nb™=•€ûd:¿¯Ôxê©~7 G„­ÖÖïuÍ¿ÑjmmµZ2ä/ó€=µÀzÉŸºi@EÓ2ããšÔ÷O¬®®± @Tµœ’ëón; ØÖã~0cKœí«[^^^–1ç1€Ž Ð(ÞÄ8Ÿ¼õºk2u×H*5’IŽŒŽŽL¥îIŒŽŒŒL2K!Ä$„T¡R9M*¦išæiÓ$ñ:Mî!±bxȦë9-g†®«²4(—Ó4M¦ ~aàûq¯ ° `™±eøAø=HZDL€}€dlB¶.ÞÞ€ÝÒü§Ì 3;™J¥FþÑdç±;§²Ùlöî©l¶:•Íf³Ù»'ïºëîlöèd¶kˆ£1#F'ïJMNŽŽŽŽŽ¤FÿQ*•¹ûîÑ)B{hv4•Iü£‘4šIM¦F''G''³“£³wuir×]wwEÉä]“wg³Ùlvò®¬y§ü*›œ<2999yWvôî©©©£GÍl6›Íî€_Jàxbuuõ‰æ¹'έ®®®®ž{â‰'4ŒR©TêÀm)€—ûÄ228>>žWÆHͤÓéñã=.Àþ½xÐþ¥èu666Ö×eðÒ¥­o‡'å:*aÐöcÀ(u½ÃÐ MÕ2™LZÓ ãË««_ëçrÊøx:3žQ%—Óº é:BHÓ>‹ Åû¡ Ëøð-@àû¾ß«Vв`h_€ÔâaðÔ0p~úË$GÈÑÉ‘Tjr2›Í=šÍf³§'¤¤Ÿš2«³§gÍl6›ý'ÙìÔ”y3brrrr2›ÍNÞuw6›ÈöžÑ¿–ÌNNNÍÍÞ½Óœœíþؼ3;y×]wß½;kNMMM¨stª¥»³ÙìÝÙ©) ¨Él6›•O»'{$›½ë®Ôäl}ö´ X;„¸ã•8„ Ðè_†aO4›a¸±–Ä¿>ç–@*fÞF3\D©ªªŒ«êqEIW2™ññÌø¸â ¸,x\QEU”ãʸª¨HEjQW1ç,„ã ù½qï~ât4@76.mm…§ð¥h+ß±ù>I`dEQ2š&;¤ð„aF£ïÓ4MQEÕ4 åÒu¤Ý6p¿èFÃ]€n30cø ø_ßã aO<Ùl†aXŠS\O>ùä“ÍæZøl«uiëéÃ`é@¨XÄÜáó%„p«HEª¢ªª¢*ʸªªŠ¢(ã*FŠ¢?®(ÊñôqEWEEªŠ—*ªÇQ‘ŽÃ‡ÃN©T2J]7@*üÖÆÆúzØ’2àÒÖÖÅF£±ñRoÅÐP ÔÅ×óš¢(9MÓòº1| >žWzˆò©0´`Ÿ `R ̦:­lyyÙÿzàwc+=1€ ¸x0ˆQq¸8” ¿qª/˜&ÒH³Yih§g«öéYBfgg«võ !³„ȰŸifMÓœ5§¦’âla*;õÈy@›ñ‡\G¦Ì)rçT»ašG§¦È1Móô,1‰]í¦#O“¬ifgÍÓ¦iŸ2kšp„$Ï8 +G³Ùlvrdò7Í*…EBȾø¥d€'“ÕŸ ã‰'O4×Â*uºÞçÏ?ùäùÕæÚs­VëÒÖ†Ñxn_«ÿÖ·¾õ­o}kkkkK8ÎÒaD*ÜYâ‚#\dLŪ<×UUQUU‹ŠüSU‹ªª(ª¢*ò‡*R0^¸¨fŠx)ðŽÓ7)§ ÞÕ[’—6:Y€­­óFc£·fxkòZNÉ)¹\^7VWeÚÏ8ÄZú¬ÛÀò~áµ}{J¥R©„{ÀÞ^ æ_¾~H LB²#¤¢Û@Ò(ÿÉݼsЊ Äœ”:Û<ý!p¾Ñ]j¨îÔmjUÛ®B©L¨R%gª&R…j­jš‘#bš¤JÌ‚IL“˜¦yš²&#™¦IL3¡ !gŽDp•3Ô®BµJ©9•BÎrÈ +„<²pD&!ª2I`š¿™Ì‚i’«´R©üRÀž^€{oO&h¬®6šÍµ°Ò4MK ðä“ç›ás­Vkkk½Ñ‡Ú}ß[ŽãHܪÂãØaK˜«ḚÊPaŒ´øb#©ªª"Uúª¢ª**ª!sŽ**;/x Ñ›ÛãÄhÆ£?6d!@¬Î7ç{[¶.µ†GûÛ‚åß=èŸÐó'e¼ ¯çóù\.§(š¦å`@Ä|¸ À9.jû5²e¶ì~ô`0Ø>ìc #MÕ €§\1¸pàš(LI¥îÙl6chªªªºnh¹\&ßxòÉóáúF«µµ–øÓCÿ­­o}ë[[¿÷­­­oI°´äÜZ¨Šª. Ìâ€S1âcŽQ!¤*ªE¤ªj!ŒÔ"*ʯ‹*Â!Ça•"¾+ÇÃØ~Ç hn´Z[2°ÑÚØXouг.mmèû,Cïäû‡|Æ—W Ãøòê׌ÕD膬$NÜýdÌ ]ÿÌèNœ{€÷¸x_gý ð}¯‚ï@€œ€‹ªZ–+++++/î> N1''³„G"ú Ú¦Ô"„TÊ–ð(ÀÎõEJ" Ð&ä!BèîÕ祔F×hD)™! T–Ì™• +Ð6‡":}ÏCòH…,< +ж)l •J¥R©BjÑ÷ê”D”Hìœ!Äz„^¿J~ƒF»jý& ¿cB©˜fÖÌÑÂôô=Ãð?ô˜ÿwÜñ…;î?v»öìþ;º¹WbäÞûn½ËÀ<ÕÕÕÕf³Ù ׆&»×r¹\.—Ëå'ϯ…1JO'&ÿ­­oÉó_`kkkë÷¾Õ :± +¸ŠŒ9Çcc9FqÉ9ÆáŽPU¤‹ETD±"*2†1w–R•"æŽïñƒÐHþl47¶¶Z-Ù¸!=€ÖùF㩎õ·Z­§{ýýAäû{}9NP×óHË£|>?8\P?<Э\q0â~ íÓ Ô ô(€•XÁÅ€\€e†5U-öµJô €8ö_•çcÀ4Í +!„T ©BNB Éê^Bèô£ä ©"ëv9s†B BˆÙ­ "„ü6©B©,H³­THç§ò·R­Õk5»ä Ъ „„ø!Ux(Ù\ºfv2kò,ì§ÿ÷Þ{'î¸ãŽ;mó?vìþûº¹Wº‡Q{;×@NÉd2™\.—Ë)™LF3žl†áz€ouŒ?1ü­ouG—äÇÁ"€« +*"Ì8w0œ1Æ1fx‰#Œ1à sŽqQU•㊢¨r5æŒaÌ1^r0ÆE¥ˆ°çÄnðžß‘¾a” $ p±µÕÚØÃP¹´µÕjô`cccch 7'Ø9ËûŸ‘×õ|^Óâ1ù¼†4]Óu¤iy9\HËçóz^»]ô(1à€R c\ÂÝy`H *¶ìÁׇ÷(€½AÀ ®Ã]ù¿ ª0ô=š©L3›p•ó49%+öª„@4M« _EÈ™*!„T« €Ì™• +é[eùÐC¤òP÷‡æo“ŠE΀mw1tµ@ € 3„<„ræ€sÖ$„Ó1!@çöÀ½wÜ1qß½÷Ý{ß}÷ÞqïwÜwÿ§Àý÷Þwï½÷Þ{ß÷Þ{ß}÷ÝwgÚfp,pÜ(€¦ªšš“ 3–ÓóÆjJ„ß~õÛßþö·¿ýíW·¶¶¾ýê«[[[[¯~ûÕ­oÿ/¯vÐ5ÿ%Çqz‡É÷½3¤¨*Æs†X03–±"Æ ã¢ªŽ €Šˆ Áư`s‡aŒ„ñcbItdq/dŒF7 çy?ÕÀúúÆÆÖÖ¥VØÀ–,Øhµ”L²rñR’X`¾{øËr a1]Ïçõ¼–Ï瑦éùžŒb^Ëkèv+€/-ñÖºI±w" øÁaÐQ¸w"ÞS t°xj`€3CÞ©!G''³æQó!yâ387öĽ7 +mùH H€Ô€“*!P†Ã?Ýù + +•ß&s=¥Ä„T«ä‘9Réô @7Ê‹Õ3¤š4Úó„*¤b‘9¹™5Móhö®£äaPÙ÷ß{ǽwÜ{ǽ÷ßÿ}÷Ýwß§²ÿc÷ßÿ}÷ÞŸÜâþûî»ïpq„Á.€UÙ|1ÜhÈ –ËårZ.“ÉŒe2½nlm]Dz¸õ­­oýÛoýÛßÛÚÚúÖ¿ýö«[[[ßú½ûê·^Mƒ8àôа÷¢ª(*FKXpÌÂÜá˜sÄÔ"Ø1ƘÕx:ðqqcÆ9ËÂes0B +B˜3&¸ %ôÿŽF£a$à%CG¥Ré|k+ ¾±¾¾ÑjµÂóF£q~£Õ’‰ÀÖ³­–®— Yüßï$ ]ÉŒg2½¾J¦ƒñL&£èº–”þÅÆ¯iù¼†òš–N§oÓ`à 8ïÀ@+ç˜c„PÌ5LöHb_÷_ôº²`?íÀžJ ýàwÆ'«l`š$ + >Ó«P%¤B*`Û@ FªÐ._£²­‡Ú`™âö²EH•ÄÞ‰¿˜5Í#]¿ JªR3˜„XÔŽŒIÐÊ.­AÀ¶m¨Ù@,8c!‹òðo¹çÑlv2K0ý׿¸íÞwß}÷Ý7qÿý÷Þ/×§€\!‡ÜfýËÃç²RE‹Ï½ÌØØØX:ÿd¸±µÕ,éaWõ'Äÿ‹ÀÒ€ à8BÅaï2‡—0X`†8ÇEŽ."Ž‹ aŒ0Gêxz\O§ÇU„p3!˜p—=Ææœa¬Ž«EÌ, õ¾Ë +‡$X*!T*5·.m<½.ïY_oµÎŸo2=ÐjIûoµžm={€Ð9ôµ\&“Éd¥+bóÏd2™\2O<ŸÏkzŒ‚¸.ðöc½èx;LÚ«ÔÄXZb £ý[^^^>'CÂu]wÙ[ñV<ÜU¼‰Ð€e¶Ì°vÈno¿:€Œ ]Ë’ „‡I€b `S°zd@½òfÝ®Ù6ض]³Á®œ±€!§bÛ¨BUúñ„˜ÙÉ;å¶yñæUK¶øw}€Å¹ul +¶-ƒì:ò0±*¨J¬ÌšæT Rùâ¿x ãMðipoŒ€{Í‘‹ý«Ùl>%°~¾¤ëy åd2cccù'×6¶.5ut^JåÖ¥K­K[[—.ÉïZ—dô¬%œ¥^`ÉYZrœ}Æ©Ça†1ccŒ9¼ˆ¤ïkÍ¢:žÎ¨J*%À0[fB0ÑÑ¡š¢ª˜ ,#‡ET,âž÷F£QjF‚CG¥æVkã9 €õõóçÏ7†q±[$Üj=׉Ão=9À¼Oüï$B‚2 S2ãéñxމ¬BHËßf!@Ðt†*µÛ +À1.v‚ +€%u½èÍŠ> ¡` «¨ˆúÚ±,Mp‡੃ãóC),bNf³æC„T-*m”@ͺjÓGjÀ²¡vµÑEJm 6µmj×ã!žóðTæH5 + Ïú‡ !³föŸ˜¦I8À–®P›Æ!ù^Ÿ«Óú"µ!™S +„XÄ‚ybÁœŒ æÑìäQÄ: >µ8vÿýÇ>Å6Í0ì{o6Ÿ /6Ãf¸Þl MGZ^‹§Ûe2™±Ì‰ÕføRë|©dô]©µw9{]ÇqTU|WTUWP‘cŒŒa†1ã3„K ©˜aÄpQUŽ«H=>®GEµÈã˜1ÌpòO©aŒ‹òäSÕb±÷Ýh¼a48†JÍ­—6Ö×Ã0\_×ë¤ì|2.¶ZOKôIV¿3H6 ÷†ÿ¥¯ŸÏë†aä“ `^Ϧ¤ð™Àåô)YÅ=YÀ½1æ¾ïKv0ºiÀ~@Eª¦"Ü%@¬†ÀÙãÈ a] ×3‘e‘œ5Íß–ñ< r|Õ›ÚÉ!m½VÞ¡»tñ1›>V·é¢M Ô(Xg, ¬DÌTã0!³¤RX0MB€ZV|Ò[RðÓvR +4€½S‰èµz}ѶëQZ·iDj2°@X uÅi3{WÖBö‰ôï±O¿úUDÿ^÷ï €fß{³yþb³Ù¼¸ötx^×t„ÒòZ>ŸË)™ÌX&·Ú ·ZOêRØ:p±`I~R‡,Eɨªº„–A=ÌŠ#¾„—ÆsŒ1VUc„TE‘Ò»-"†Bj#U‰«†PQ-¢b±¼ap^âFÃà%‰½tq«µ®¯¯‡axò·~ëäÉ“o4.¶ž c1Ó%€çü ]7d?Iæ{†ëz^×´\:Ñýù|>¯kš†ò&]7 MË£R·pÏDÀ= +@ J%V¸[+€8…°¼¼Ì–—ã2€XxÞŠWLÒ€¢Ý:€Þ™@Ë 3¤‹ˆõà@ЀàœsgØ:€J¹½Íš„J£ˆR  Ô²þÓÝvD)¥×ènDË”Òv´H¯íÔwvßüþ÷¿·Û¦vd•Ï.mS ‹4ÓJ+…(Új”DQgóº`Ýø“?Ú(¥tW~T¥ôÚÕ:Ýݹº³»û'ß¿q}—+ЬJåQk¡MÀ¢„ÓæQ“Ð(Š* k³÷f *€ûo˸¶Ö MGZiù| €L&¿Ú [O7Pƒ¯hÿœ± £ö@UµÈŽÀÂEŒ1Z’Q&Ä0VUᢆ”ñŒ¢(Šª*a¤ªÅ.E’â`¥S6Ü] Ã0d¯S©Ñ0ŒRÉÐKk[­Öúúúúzø ÀÉÆSç›­ÖFدZ]ÀHÚ€òyÝÈ÷xz^Gº–×õ¼.“§JFÉå”\^ÏËjJMë@\9Pܶàœs§ÈchˆÀÒØ£z€ÎùA¢\_ úÀØ{?0ƨXD‡€Óëˆá +€á¹ÁU)W*å“G +§Ê•JÙš.ä ß™r¡2—Œì9U.œ*”O%•/VÊåJ¥\®T*•J9"\(L—˧Ê33…Âôôôô=ÓÓw¦î¬TʕʩSf¥R®|e®R±~½|êT¡P8U.— •³•ry¦Pž) +åSår¥E”RÚ^¤Ñn´Ø~lñ{×+7híî¥Ô®Q +VFÀ, Àz„d'³ä:i_¥”Ò~kÝ×v-üþø«û÷Úü PrRŽ;vì©þvÐÚ +å?ß|œ è ¤7ŒµgXò4ÌÈ¥ .„ŽÇ>ETD¨ˆ±ŠT„Ô$Ñ„ŠE•ÏÆKˆ9K^rÇGNiÉq„œ—Áìp!–0Þ£apιѺ¥RÉXµõl†aø¯.\xð·Nž0¶¼Ì_ÿz€•n @šê-»šz;xj¨`±”`}Í€WÀ®‘¬IH•¨AÈ!dÇ 5JI¾¤6Ýùã³mùmÇ,­J…VÉ\… ssss¤BææL“¢±’ê?¨ØÉ—™¤2gbš„@áè]Y“TI’H˜ +!Ú¶ô(­A.R»½S޶™'RND§(È/çæ¤0³“Ye +@†˜eŸ+?Ø´‡®øU½Þ« †½âÖh†e2ðb¸ÞjuÏIè͵gZkFé``%À`³%¶ÄÙ’‹‡;Ü‹ÿyóÄ}ÇñÙ’'dk’Q—äøÎ×ýî`OøžÃ±Àž/8wä Çñ<6d07J7Fƒ†ŽJç¶.µžÛ/\¸|ùòË—_yåò+¯\¾†ñ˜ÐçÖŸmµZ­çú­2? :N@.@ìFléù®È†žÓózéÛ‰°Þ€#:…û+Ö©`)€e ¿' p0:‡Ë2 "tHà‹8¦ƽu6£S³UR%Q!ðUû«P‹…{lú '÷Óò£1È#!¤BH`ž9R!„˜s„òPÖœ³¬‚™=JìêÔ,€ 6ÝbYP“÷zÇúŸÚ6¥@ëu +5Z~4A’4ÿ9r½Ò­2®˜¤Ò€0€®t¿ÿØpìký÷ß?`èdž¾ä€×ÇkP+‡áÅ0l6›a¸Þj—×ÉkZ>¯år¹ÜDFo6Ÿm5K%£Ô\Ûõq†ØÿÒ€ð?ªª‚1wù¾Ï|Çñ„ÃqçœxŽ·éøKã̸Êðó°ïø‚û¾³)ü@ø»éû¾¿)Ä`­Q©Ä 9Ä(ñO¿ôÒK—Z.\¸ðòåW®¼~åò+¯\¾ür>·¾Þjm„á³Ï>ûì3©[®Z_X n +Hwéz>oº6–N§Ó™œ@ê6 pK À1Ç%&ë´øA\ +Ì—½ÏÃ@ì `@,3ÌŠEí–`±ÎS +À®ðrßùo9zÔœ%@tŠ]°ã‹})°$jt1² =M¥4©ø +!@çv&„b‘9Ó¬!æd¶B,“˜³g(™Ì’ªMií +‰€ît7Ÿ—›Û6(´OQ© ¬ù¸D§v !ó„X䡊iÂ\ùw¿E¥N*pHl`è7Çú4à Žõ¸{‚ªÖwT–Âp- ›Í‹áFØz©©ë¡¼\ZN™ÈÍæ³­¦~ Èrüý5ÀÀùŒT´Ä¸³äsÇcþfÀ|gÉçN‰û¸¿¹É^ð¹ƒ9ª¢.=î`ß÷6{ëù¾çñÀq˜xÞô/„ôF륗^zé¥ßºpáÂ…ËÛÛÛ¯½òÊ+—_~ùr†a«ÊH@ê«ç×õ¤×?`ϳ #= —yù鸭@Vâ%,ë†À•Ö{Îÿú×û€d >ª€bô¹HÕbqûñ.@¿œs§½ +`¹Ç ¨Qj“£GMR­V¡¶P ‰ì7(]¬Sy)Ð¥õŤnÞ,l‘NÐÌ››;ä TÁ®NM©€ýÝ!VDÿh‘Ò:¥”>ÚÝÜlh—iüK,BææY8„X„< „Ì‘Š9{ÚÌNfçh™Ôjµýkõ†Dû䆸=®ÄÑ`’17‘o¶Â0lÊ&Ù—.–J¥R)€–ËMè«k϶šºn”ÎèÈ"|™ Ø+ŠýXb˜;Žplz›þ¦p|Ó?‡¹_â›ÜÿÝ?Ç>w|Î9VŽ«9ØÁw–™O0—yŽð<á æynð;ääË¿õå ._Ù¾ysûµ+—_~ùÂËO?ýt(ÓOßÊö ×ØØØÞ}º-¯V C€í¯–xR Ø€x$›Ë–ã `à÷àâRàååe†WÕböu|éY¸¬€¡ +@•@]Ø”ž™š:CT«°03OÝzݶcS´(D”Ê  ×Ê»”R +U°ˆE±*ò,‹éº?D*ó&)*š @ª6DÓ Ö<ú¢M»›ÓEJi (€Ý.G”RjW T‰T §â„‰›N›ÙÉlåù2$8Öw‚Uú{*º’ì-%êÔô`ïËUµoêmë­—BÎy£‘OV.7a¬6ÃV³T*éÄXÜ‚ƒ‡G—$S•%Ž…àæ>÷ƒMá`äsŸ;ιR€_üó?gžÃ|&–˜ª¨9ØA<xÞ¦xÂóÄJÀ„`žð°#‚øAÁJ¥RIC%Ùõsùò…/_¸²ý›7o~çµË/ÿ«—_~öÙa¦%R{0ôáø‡= + 7vH0ì`ûçœaŒ5¤ Àòòò²*ƒ€xž‡z\€~ ky/¤àjQ +¼²²ò"œsoY*Ïužê@G{€Êf˸ˆh¬Âm°)ÉNÍ@À*ÀxáB†Ï>Û +Ãðé§×uþï €á¦Ý¯nX˜õ€-w ¸8@”J¥ÆX+¢%ÙG1Æ–Uäûþ^ð€LÌ*„0F\6`õ@ @w8¼Ø{Ú£`Å">uêÔ©S3…©‘;ïœ]ž™žž™–õÇåSåBaºPžŽ÷žþRafFþ½ +¿>=}äÈ‘#w¦&¦ _*ÌÌÌ +ý†ØÌ8ç~½%=ûàØžâ þbÁá债®#ÔyGèbG¬o´ZçÏŸ?>>ÿ5-—Ëékk­g›¥Ré@ð±°'Àý^€‘lþò<ozB`sßÿº#¸@΋öæ8cUQZÂò™wÙÝ <Æ…XvÀó\ÇÌqüo`ín¶ž~úéØþßúË·ß~ûïÞ~ëÊË.\ÃðÙgZÃÀ€oŸÞé[@ËOì@ì 0c¼W,÷(±W,Å`~ä À`%Έ!1€Ø%ÛñŽLÆPñpð=.žê€pgð+1k·ÛíºC£ši>dQ +”ÒùéôÑhw7ª·ëívtm§]¿f-ÐvÔþ}XøFÔ¾]»ö<¥ Ñï¶­…çw£(ºÞ¦`Fô»3] @- +Ú»Q-’5)%4E~å(mï¾YÞ ;íúîN»~ v¯¶#ZÞŒvvãÍ£6ÌÓvE׿»Ha}¾ö|9ª©iš„¾±Û¦”Ò“xXþoðØžÄa¯‘ß?$‹Ð§ŽT #áø]/é]¬‡­­‹/^¼˜(€\.7¡‡akcµT2ôóÿ¯}ÖE^Š ÐMàû—í|I Yq «œsîcá;Èó…ÏîÁ¦ðýÐÒf€}Ÿó9cÊq!Œä ˆ@¬lº>Þ + <áz®,D°¸ —úÞ*•š­0\»|ùò•›7oþåÛûþûïÿÝÛÛW.¿r9 ÃÖsO‡áÓ·À-À>k00œ½@]°|h „g*Ƙs¼$',WE±¼¼¼¬bÿëï €¿À<þ ö»Úá\€àqîô QE©(b†m¹`öî¬iÊœ^TxCç\µí]´)­X@m @a®!Ö#²Š‡R +ÈøX » fENµm¨AÕœÌÆ¹y¸zvWnÙv­6µ)µ,ˆÓŠt¡ +K¶ Û Ä ,b€G£ ¦yª4 ¡²˜`ˆï;î{wöFŽÝ?¤¨Wð»Eð…@¸7°±uñâÅ‹a2½¦€ó%ÃÐÍ}V§_Œ1†KC4÷Õ>p•cc&ãÆBø2Ÿ÷¢ïqìØs/1¬**F;H`WˆMá"Xö0÷„DZãx+Þ“Л­0|ðÂåW¶oÞ¼ùöß¾ÿþûïÿÝÛ7·¯\¾|% Ÿ}zŸ àPŒ26؆Ld2™±¡{¦÷¸¨«àýàõ*€.x2»c_‘ø€Ã—=oEÅ=.€x? nÎŽ ©ˆÉ1ÄÝB¸ýÀ ðò 1ÃØ¶)¥u›dã‰`gàútù«Û`S;¢‹íÊBÜŒ/+t©ÕI!P¡ìN9^x–@ݶm{önª³rÈ@û+ñæÕz lj×i=ªwú[ó2Ù»¹@’Íé 1 …ìdvê;6íàØý{ú†Ù_`7>0̦÷v ø‡º°tñ¹0 Ãp-\76¶ÖÖÖÖšò–[MËçr9}-lm<…J%´//ɺS†1Ct`'þÇ}UUÕ^@õ^âœû˜ù˜¾Çãþæ&ÿóÀß䇿œs0/*ã +Rñ’ƒÆlº~à &<á1Ïež /qá Ú¿ØÔQ³†|ùµ›7ßzû¿¾/ðÖÍ×/_ym-|:Àú aÊÒÖØXzlìà àÁ¤"ìëUÎ2Çó½À +€/±Xôºq@Gtà‰eoÅSûšè(€¬8€Xð••™œ{\¸B¯ßpî€u@éµúŽmÏf§NŸ–µÀíBRLÖi­^* ó0O–ÕÂÒˆ«S +À"Ö#`™99`î”iÎÍÍRm×ëöìÝ&!ÿXnNÁ®S¸Zæl ó!„< 0O~˜P›.Ԁ˂ùy9–<Šé’ÌØÙéiÚÑ{ÿžÏNÀc½=·° ½ä|ÿz*Üè(€ç6.]¼xñbj'ºÃÖFã t¯d˜a†Ãr€wïù¯ª=g2F¡%ÁÆØc\7à"à^8/ú>_z1@;ç;Œa%£ç +d€yÞŠð„'V˜`Ïqæœ oÐØS ðÊË—·oÞüË·ß—øÛ·on_yåòÚZ>-½ ¡HwÅzœ´K§ÓÒöS©±ÔX¯ Þ«!Ò¶Ä¿§Å<À wÀØAP|ˆè–Y€®x 8\`„†+†úÀ…+ö V\îºç\œó¥ðö(a¼üCEÌ0€Zý=“:=Ki×àßêµxô¯œýU§Q`™#Ä’) lÙ+8O,BâÞÀÝiOö·*§ +»M²¦LâS°£ÂbR{Ô¶mº³X¯<²¯àay'BÀ¶gÁ ë°aq!`šÙ߬TÌJí«°¿í(܇›ýýÇöÓCò‚û¼æ€ŠþõõØÐò9-§åóÒØØh ã à c&ÿc2Œc$öß3»ŸŒ—0ç  _pO8/ /x‘¿¸~!À>s¾`¦f2 +B˜;è&\æØó!„+<æ ìyB Î…ëÞ +š^ +[áë¯_yíæÍ›o¿ýþûïÿøïßÿÛ¿}ûæÍíW.¼Ü”XO\€®ÅÆÕûé$]ŸK§ä™ß³âúþ´|~zPÿßJDt\€Îå©**b¤"†Eb_°²W0Ž9‹^R¥µ@¢„×W¼C)„º +`™aÆq±8¨zàö*Ö@ˆÀúÀ–‹!\, ™›£»Q5ûé»Ó‘l³!CDi}§^¯´<<–œð ™§”Îw:÷¬ùy€ïN·"'‹šf¥RˆdÍ*T«UBÀnOG²€X¤õúÎN½nQxx~>)ø·H Ja¡3 PþZ ™%f6[™›“7 }ÚY?·5¨~ÀÁ» ôñn¬÷ sGv>nê@7×Bh)¹¿:Ö ËŠ ØþQßÝ #Æ9ÃsŽ™ï3Çñ<ì®·éoú|3À>f^°äEEˆ;ò…0×®ç × DÀqÀ< ÌæzÁÀ°®ëFØZÛÞÞ–€¿ÿý¿ÿñû÷wûöÍíW.\hvTÐß?ݘÇÖÞ=ÔÓcãO @ûºæAÀR¥ˆ™ðq€¹ËÜÍe`á +W!\æz®ÀÜîæ (•xÅ.ÀkÛ7ßzû¿ÿñô£ýøýÿú·oßܾòo^^ë vôÇÕÞ9Ý{ãéô†?Hõ¾.}€ ÐsoB±ˆ^BN§Å +3Î8wð’È; sá`ÎUî Œ1CHF9S±/J—P<5s9?½Ë˸Žè@¢Ä°À^@€H ^dr +g8q®2G¸B°§„ÃŽp–°àKc„FEŒUUQЏ(美GQûÌ,Ô€¶é‚Ñr›¶ë;×£èúε:½J¯Eg¡]®ß¸¥Ðݨ}="ÕÝv›î^¿¾Ñb;‚G~%ÚÚQD"øn{ž˜“æ.»M¾YÑb;ŠnDõëWßh×éÕúîUËÚ‰®·ß”›h;j¿‘êõëЦíë×(v`håùÝàœ&@£…v»w&ூH¦bå49Õ&—Ëan5K%]GúPÀ“‡¨W †±p„*:öït’ôêfœ1Áß÷yà +û{¾`›Þæfà¿ÀÏa'p¬*EåÌ÷yÀ\O¬BÌó…+„'<áyž`ÜñÜÍ[¦Q£€w~ôá‡1þöí·þâÊ…—×Âgb ÝÕð½æÞ£ýÓhàðcÀÐÓq† =6&ßdžå RéTª§[J" ¾ä aßö½„K#„K \â‚ _ÅOúô¸Šç*rœîoİè@ºÂ- +Æ0V±‡QNçj°¸H-ªa,\©T$ǹsŒ0ÇRï Ž1óV˜Ç]Ι`‚s,„£r !B`Ƹ#Ì1C#Ä©HQŠªªÈ;$”J¥üÅéééé;ï¼§P©”+ÓÓ3Ó_:{¶\˜™™™™™Iêqg¦÷¬™™r¡\(— …™/Í:iº0]˜)LÏLŸªTÊå/NñÎ;ïœ.*_ùJ¥<=3=ó•¯|¥0ó¥™ryfúKYw×wv˜žž.”e©ðÌÌ— +…žNO*§ŽÜ91ý•¯œ-Oï?üóêtßÖ€áöïu »">/0œaŽcÈÙt'©ÓåÊ9„Ç{Nà0Opùs_xþÈvÇÁª¢¨*.ùž, Ox+BøB¸Ìs…ç:žÀœ;bå¥À%M+…­ðæöööÛo¿óÁ‡øáüã¿ÿ·o¿uóµ ÿf-|¦Oô­±±î§=ßûu¯×?–Ëd:Tè¼8— Æ{ (Ç¥X,"#Ĥ3Ì8cÇK#ŒTÌ1æc¤"\JfÉ +}• !„œ¤Œ0ÂŒ«E! G§qá“ +àëN¢º^Ò 02:×@'€YâÇ3&d‡ïÊãL0!8F¨ˆ1v…@‚±x2¨¼ë s¼„*ª*b¨XD¡Lɱïe§iq%ñLøìVXÒµÒЀ¢z]x%@x_F˜;‰ý;q•ŽP—0g æÜaž`>ö|îæ;›~ð¢÷Øñ‹Š‚ð’ï{bÙ®Ô¦ˆ]×ó„ÀB8bsp À³k7¿óúöÍwþÛ‡~üñ'üá‡?ú»·ßÞ¾ráB¯ 06 zé•ûnAzh,`OüoXsAUQ•ã1ÔDľ|§ªX,ñžÃ¹p„À;BÂsÇñ¸ïûÈ‘ ¾ƒ±Ã…ã9ªßÅɃ ð‚ÀóïqÁƒáyÂw7%\©|.– +@`΄'ŒÕÀ>ßäŽø/ü®÷¹; ÇÁžÇŽKŽãp8rè·›››"POxÞæ¦Ø ®Ïù’·ÄƒÀß Ã…'î Îf;*æœ Æ…à»¹yç"ðÄãBž¼àýËM?ðá îcØ+ú‚s‡!îxA MWxn .ÿ³;›˜s,<Ç÷œ;Œ;˜;˜;œqæÁJGõ=.Äfàn¢X‹ªª¨ETDjQU2± _¬×ëõú÷h9ÊN%=8‘Öc]°€Àg#EE%gÓ÷ö„`(®0—qáb3áyÂA\p7Xé[{cªÖx6\ÛÞ~mû­w?øøã?ù‡Ÿ}üñǾÿöÛ7¯†á…‹kϬ­€L,b¤Ò©aH÷ 5Hƒý ß ´<‡9|É~à8ÿÒc !6ÏTÇÂãÂwgXpæ(Žà\``Ï]ñ\Ïs°+„xÜìq×xsÅÞ¦lú>Ì‚ GvrÆ8gÜÜáª#øŠëqîî !Ħd·/‡»3Gp¡â YÅ$wƒáIˆMwsEˆ`sS¨šŠåmÏ EE±è¸Òþë;fÁÑ)v2"ì19¤(]y"o‹<2 eË¢¶ ”Úu +@mZ³ìú"¥»s`Wè"­ÛõºmÛ׎Üe°)µ +õxÖ(æa¬ùyKzXĀʜEm +”R¹yÖâÍÛqMàÔìb½^ÿÕÀúsÉÀ@Ù n… ]Ãúù½K¨Š¢*Ž`BœB8œIQÚ?ï@“®ÂåÌ\,0w„Üã~lúÜw˜ŽsŒTECÜyÑ÷^ñ{ÜÅ. °ðó\湎ãa!¸‚Í ØLÞ6‡ÅžlIü—}ðáÇ?ûä>é@ºkk.®­5›c6z+:cƒÙÃý]UUŽïN뀃±ã0Ïq:ðø¿|Ügœ !6…çûª\ø‚ ._bsE΂s/žrZ÷ãžÏ<×sWV\WÂ}ü_ »ØõásŒ9wÇœqG_pGÂÙ <Î8w^ð!^@ñŽx‰s,œ" #08šºªª&ˆ]J)}Œ¶wßøÞ‚¼|‘ÖiEÒŽhÔ¦”î\ßýé‘[Ö‚E)¥Ô"ÖB{÷ùr%9Ìit­ÝÞ¥ôQ í?ºQzÖŠ(J£zÝþjýZt­pWµM¡F£zôûѺÕëmJit£½ …y˜·¬…xsøînT©<’lNÛíö.¥ ô7ÛË¢”1«õ¨N£7¯]»ö«¥Â.’ `†[a¡ÒPUQTU@tÀÂqDüO‚;˜;Ž`œKp#Î0ÂŒÂe áqŸûn°éon:¾‡OpŒ‘‚0/:`®Ë–WV„Ë<&„Ë\WÆ»±Ã—E0X ,E• +àõí·~ôß>þø“O~öÉÇŸ|üáûÿõíí+ÆX»ÐÜ[Òçõ%Ò±H©ìçÿñãÊñ㊺ŠÅbQÅX*€%§G<þ¸+áù¾&Žà.œsư£Î1ÃÂálÅóä{»s]áºÿrÓå+ën +.sDÀ…À 3Op&¸‚{ÂqTW±és̘Øô~Wø›(¾òÏ—=ˆX5ÇXˆ$ +à —.Ä7ƒÀü‚uêÈ•S•J¥R™›«T’Kƒ+gç*•J¥R±¾4?7W©œ=;W™#ä¬U9Uùg¿nYÖÙ³•ÊY˲¬³•ÊÙ9ëìW*såJ¹\©ÌU™«ò!æÄ=ÓV¥R©œ³¬Jeβæ*•J¥\9+7?»0 dn®röìÙJeî¬eÍ•+ÖoÌ[ÖÙ¹J¥"7?{vn®r¶\)W*§*呱æeùñ¯Â|>Ÿ—!€šVBOíYBÄPq„àŒ Çqœ¥ç\pÄÿ¥PU™½ÃE”LË€ã0ÇYNp’)üŒaÀ•÷ôº®¾ë +oÓó˜`îãîÊŠËÏ}<BxX0![-±Çç‚qÎ<îpUlr†9ž÷‚ço"GW€/qΈ½îf „ØÜªªu€*ªŠ¢*IPSUUé^øï¯í@öµˆÒš¬J¿Aëu…o[¤ÝŽ¢h‘F4¢Ô¦ß ´]¾q5ŠÚ4¢QT§õh'ªG‘5ZP£uj/ÒúbýÛl¶Ò&gä]ÀTöùQºX_ €Fp¶ÝŽ¢¨¾Ñ«ÉÁ_¸q5ººÉÍãÍ­6€5¨ž®>¶³íììììüŠ@.™Ô: +àÙ††Jzcˆè @@HÄG½sNpÎKBpYÏžÜáÇLV 옉 `ù²cÜówsÓyÁYrÎ9\€ ßóž`+¯¸v…Ëó|GìpÆ6näy­ï )Š®­ÞÜ~mû‡?úè£?ùä>ùä“O>üQ €0¼°–\|²§hàR€t:ÕÀ>ý½“pãûrýà?øÁŸýàíɃ ¥Ò©Têx/¤ €.â}0¨üq_úX›Â—ð<ÁÝøÆžËáI®ë +W0Ïuÿµër!„+„ð†à‚{®pŠŒ3îÅÂMÁ™p.ö VÜᜠQŒ ºð¬tPìQ½(*¤ªj÷zà:%G'(!$ɽÅY8›BͰ,"]÷$—@4ݦ”.Ú”‚]§õ:]¤´ÏS95€€]­V«¶ýÏk§'Í£¦IÔjvϬj6@ `~îjRJ{6§Ó»¶ìˆ»)}Œ.ȃYsêŒ]§v½þ« +€0—O†‚anµ*¡ý UQЬC€1!ËA‡s&æ1ÆBŒñ<ðC¬„1Cœ c?`ØÃ‚{žÇ…ð<ïw7Eà;çÁ0ÖT qçEá»Ìó\÷_º®`Bæ2ábÏs¸@œq¶ÇÐúR”R6····ßùàƒŸ|"ÀÇþèý·ßºòà…µµµµfsµÙl6W›ÝŒÝ íw] €}üGüéþ³ÿüƒ?ûÁÚwí;k,v%R©üñ> x 8sœý ÅP{°éI0oSÞÊr „ž#ŸVÄgÇIøV05ŒqÏ{Á‹ŽnG`!Ä^à *MŽˆUUŠªJídÑzD˜wBªÉ8®yZ‹[|l›R°È\åÚNÝÛ®ÙÔ¶k`-dµØ6ìÖëÕëõ ´Ä4Ms¶Z%gìÙìhöÓ4IÜÕÿŽy°lJXVew§nÛ5»V“ÑD˜ŽjµE +¶]«µe¼F6!欙µëÔ¦õz=ú•€¦åä½<9¸:æ¦*ŠŠ÷øÉGòÿðÉ'Ÿ|üß~ôþÛoÅ.@su­y¡¹¶ºz°ÿõ>øþŸýÙŸýç€TzL6æOêù|¬ŽwÚ:.Þ«–œ%GøŽ J<%œ®pœX €Ø">ó»`ò1¦úœ ÁæŒuà +Ñãô@죆@Uch*í®:Ý Sw’YBHª_û™·ì<2 yWœš€G¢ÂŽ<Ék5»þ?ÕëuZ§õ 63›ÍN™³æ”yÚ¬f'G'˜YSüš€eÍÏØ_…y ¢2µ¡_µãªC Ó×㋃Á^Œëõ:¥‹r”!•£w™5Jí:ý•Kv ÅÈa¾ÔjhÃ*»ö橊RÄ’ž¯rWÄ`ÒþçLvHÀG˜qÄæ y¹GQ0‡{\xüœ¿¹ù”ãp'àsMÕÐÒÒ‹Ž'ÜÀu]Wy-ˆÂþ'„À|YðÍ[@+­­­no_yí‡|üÉ'ŸüÃ?üÃÏ>ùøƒ.Öäñßl6»¼ývþöþáøÓ[ ÝÍ3¤ÆÆR)=Ÿ—·ç5-§d2ãét:“é(€®ý‹‰Xr:âˆ[( Ïs¹îþ^7Q‚3Ìz bð^ñÏ^½P;8ŽÔÅØu°N›wÒYBˆ¬²,©µ‰uÀ¶ˆÍWm;ñ äQ¾[­À°tq§^¯SZ¨ UbÊ£³³³³³gÌìÝæ0MiÿRdÌ‹Xdyä»P‰l¹» @ˆ +×oÁ¦;‹‹u›Öë_}Ô¨V 1ï2¡fÛ‹ôW®8Yy-¯å»Y€V¡ÒAž¢ªÜó˜ðâ©Ä @Òþ9cœ³âEŽÏ!Œ9Œù‚ž‡}ìKXx‚›ð}ßw8FXSUÄñ‹ÜÂó\×õ˜»ìºL¸\Ì‚;²*hy` ÜFª)¹ÒÚÚêök¯¼öÃ>úè“O~ö³Ÿýì“?úÑ;1škÍÕ¯5¿¶Öl6û²}é~‹•!¿Ôê@üéÿõŸX~·2p,•J¥Rù“ù“º®z^Ór¹L&“I§Ç2™±L&#óc™Lf"—Ëår™LF*€ý  áuÀ> œDW1\ô áüüðK÷)€ñ"í]¶Yf6eš$ìðÈ<éæ’y æ+²6PŽó²À¦ÓQ'\°íÔi½^_¨Ùdj2K P€šäÌ4œ!ÀêlNÈüü<”ë4±©hÔM öµz½^_¤õ:» +U ³fÖ +6Û¶5 åâ7ÅX íKC›ñ!ŸhÆ9ž` !á +!ûŒ ƹ-cK#\ä—CéeÐu=O±¹¹x¾8#ŒT ìs!„·â¹îæ²»,Ü¢:ã Á9–ý$ý qšV·_{åµ·>øÉGŸüôgŸüì“O>úèGï¼}ó•/¬­5¥øZ?úî“á}ùÇ­°(€?ý³?ûÏ?øÓ?ëU{ïí@Ïëºq2Ÿ—O§ÇÒ™±Lf,À„"›4&2J.ŸÏçNäóùü‰ä"7-ŸÏçµ®pœn.¼aàq\§W0ïÏ÷ýp;æÿóŸÿüçEŒ’}ŸJìôÛ?Øäè˜IÎÀÃRÈòß¹¹ +‘3úa*‹ÔNìŸ$ú(0O뵿_¯×ëõßjCÕÍYW7Ìă>“ ™«Ì˲æ`Ê‘mÔìžÍ§)]0õˆÚß«G‹õ:Zrú7'M±høÀ‰¼–Sô‹axéÒy¤ÀfEELNûg ñ/<áöØ?Çc.;Á0ø(ŠÜaÂcnàaY“˜B›Aà8¾ïpŒ¤ª£ÁD°âî¦p™+°œàyB,0gƒ`C\€æÚê_¼~åõ·ÞûÉG?•I€>þà·¿óʃškÍæZ³ùµæ×šÍfz,=ÖíK§‡éöƒiï¶wwwÿðwÿð7Þx£mï)(èÐ#ŸÏçr™ÌXf<Éô “Éår'r¹\FÉH ׉¼–;‘Ïçs9-ŸdqåNär¹|>Ÿ?„¸DG†y?Ü?¿ý% vPë[ôŒy§ôÑm`Þ’ãø !€6x~NÒIÿž @§ëòÊ`BH´SÿŸ¯ÕwèbÚ`Nf‰ @ €Òvl j6Ør¾—œ# +òJÿµr•Ú6@-n-°èô"Ôlj×j@ˆEõún½ѺmÛUr:{·Ij±Kò+€õá +@Ëeôfnµš:Ú[ +¼¹Ù¯<¬È Ÿ`Œqñ”ÂEHå±ýÇ-c -á%Ì‹Üá\ø®ïÊ,€S>‚Mßó|ì Ž0VU q´éø"`+îŠO¸‚ á ±ây‚ ÌO.Ðî.UÓ4MÕ´äO%§7ÃÕ›Û¯½þÖ»?ùè§Ÿ|òÉOúÓ?þQ € I G¤{nýî ÙŽ““““ÿdrr2{×Ý““““£`,ÀÉ“y]×õ“F¬ÆÆÇÒ™±ô&r¹œ¦d2¹'NœÈõ(€¼–“†¯èÀ‰|. Ÿ×u#oäuÃ0 CÏçõ¼¡çóyÝå•X +€ !7S2™ññññL.RÏ'ásÎùÒÏþ©Ыj ”Bíô@‰»zìR€…XXJ£úÕE8»{µ¾QÑ:(¥´p.F‹m›.€Lïï|ÿßG»uJmb°ª„œ&„Z½Ly”>ÖÙ\îO£(Šæ®íÄ›/ÖäæÑô.­/Ò6¥²`žF7þ?Ñ΢,³SÄ–¿"1€gÃý0at€¼Ñ0ºîæfH¼ÏÃKA „$€t‘ÊYlÿ*vcž@ˆ©#ÄTGp× <—rxÜ,ÌÇáÃ1檊0Æð\=΄ë.¯0Á¹àB¸žïyòèÇ{€ªõ½gT}umõæöëÛo½óA€>úà·¶_yðÂê…f쬮6ÇâQÿc©tz,=,rwHt À0èz>vò20žÎŒe2ƒ + —ËMľÀ‰\Wäåѯˆ@"NäNH4äu=ò¤aœ4 Ã0NæO꺑?hår¹\f"“´?g&d"@z\É哽/ø´öÿóŸÿuPÙ»ÊåéɱÂ=…éB¹R)—ËåBåT¹\®ÌÌ”Ëår¹R©ü³òÙ¹Ê\¥Ü³*¿^)”+•ÎcËš³¾²`UÊ…Böž#GŽLÜyçÄ©;ï¼sòÈ…{¦§;Ï®”Ë3•¯” år¹R®T*ÿìKgÏVzö®”Ë_ÜœXsÖYËš+Ÿ*LßsÏä‘r¹lUÊårùó€µµµ0 a®­…kk=•@Z. õR!5ŒF£ûaÙ…¿t €¹çr˜ cL8BÄç?ÆHÅN D°)äÀ@„¹*"<Ì•‰"îùŽ÷—b †.<—¹ØuŲ‹9ãB0Á<×ußcûC]€´¢¯®­~g{{û?¾óÞO>úägŸ|òÓ>úèGkkÍ8 °ºº:0÷c¿qß·µFR#ÉÉHÑ! +@×ózÞÈwb™ý (q0 «NäsÚ‰>$‚®ÈçOæ #ò¤qÒÈçOæó†®wr2ÎBœÔã=s¹ÜDf"“€L €øwÄ*„ÿüS/é(Hýƒ?x‹~ghåHö!º5Qˆ(¥@¬yzãFdÑöNÕ£v{w‡Ò…ùJûùdQ_D  ;Öü<¥×oÀYøæóqŒÏ4 sÖœúÇYÓüM“ÐçR© (ÐË¢×ÿñæ4j·ß”›ï>ß–›/D x>²¬ùº» xžX¤Bˆ™%ÏïFQD\€µµ0 KkáZØl6›}д\No†aë÷BéšÑè´-Çòt €…ðrz ¯€•~¿ŠsSl +,Ƙ!,á ±¸®@œ æ +Á…ð¸ïqÁ¹ðgŒk*B ùŽpöxÑuÝe )˜û/\OpÁørߥc¼'˜Šðúö[ï¼'}€O~šàÁæé  ÝοÁ,ÀÈH*1ð½–ßùcddd¤G¤ƒ€qѲ¡' +`<³_ @É(¹¹^ËÎçó1bË— +àD>¢çiºaœ”ÀÐ%NÆÖŸ×õ$ ™ïu&† ×Uù|r"ÿéðsEQUUA0tÕ GÍY"]úZͦ6­Y@éb€Ú”Ö¯ÑúN½N£xR7|,°`ž$iûêÈ«Â!„cûW €‹¡ ƒÇå°Zg$˜†ak+ÔÒŒFƒ7JF‰óoBáŠÍ 6_Ʊç!$bYõ/ãc;›››ëºØó1 a® +‹åÀ•·ûȆá ß‚sásÎç½À<€{xHpsûÊöÍwþæƒ>úéOúÉÇ}ô£wÞúÎ+>¸vák«Íæêêjsµ¹ÚiéÜ5Ô²cŒŒŒté˜üAž@zàÎñ”~RºéI “ɤÇö*€¹9%“ÉÈår'´ž@=AÀ'òù\Në o2pRÏŸÌ]' «òz>Ÿÿ} iù‰Lf<#ÐCŒü‰ügÀÏUU•3ÕÁUÛ¶¿gs–ôÜÊiÓ9«^¯S€Ú6]Z§uºH#’X¨Ý‰å=Bæã¾}ÇøãË>Éi³Z%;D^@e¨M ©Guj×€R›.Ú”Ò:]¤í¹¯vcŒP‹˲(,yyÀìiÓ<:i v­VûÜ`­Åð²XËå&ôµ0lý^XByÍh Ã0 Ã0=À—!|„Ÿ¢œ ŒÀ*ö¤ý  Ï 0CX¨ÂA‚mÆC=˜ßã;<cl>WPcmõ/¶_Û¾ùλ|ôÓŸ~ôÑG}ôÁß¼óÖöål6¿¶úµæª\cÃ}¦ÒéTj¬§Fh$¶ûÎJH¥?ÒKD$€”'ó2 ЫÒéñ~LLœÈår98q¢ÿÀîSy™èQúÉüÉ8`Æ€  ÷à¤Tõ¹\nbb =žW&ä_6vNä?~®ªjuïá_%¶Erzö4©BUŽà·©]©PÙÖS³mJ唿Eûs1ìs¤SÞ»`ÉÛ|©&÷üü6@D ­%¿™Ôêö\RVP³)¥5Û¶)µå„ÕdÌ[¤»9£¶NÅ4'MBˆýy¬X۳§C¶Â°WÄç&ô0 [¿b¤i†aFÃ(%Ã00Š ‚Í`3ð=¹À +Ž=CÂU¼ùÂæfàA Ï \×u{€+.¤ :P÷à€öÀ.@€Ÿüä'?é`µ»úoGû§ÆÆ/ êþÈh¿mt¿í:##£##ïNÒ€± `ôÄÒé½1€q @ÓúêòZ.Ÿ?‘?!í?/m>ׯò'õ“'uéäó]tŠõØ!ˆ%ÅD.“Û-/Õɸ’Ó$ pâĉÏèüüç?W`€îR¨š&!p¦#èÜBçKjƒlè\ nwÊy(y€y£¯JÛ7 3Ķ ©\¥]YoP*;ym9ô§»yåÑXô UÆ·ŽHÌbf'ã:ƒÏc`àjϵ0 [a)l…áÚÚZ׈+súZ¶¶ÂÒ´¾ X¶÷WˆM©°®P°½c¤âÍÍbûÈs×uO@ Àï*‡3Æ8ïú + ƒŒæ±ýÚöÍ·ßýà£>úɼ÷Þþæ›Û—|põk««««OÈÕûßÛ­ßág*5:’þÈhìݧb éqâ÷ÑÑQ)F†äz`ô*€L&=žÌd2'r9­Wäã:€ñ£¹ŽcÞ4:Q€“ùn @Ïçe@_Oì_º¹!A@­›Ð‘.ÀÏþóÚWí= ìE{ +5 ©&wpk!é ²j¶mÛvRjÉ›{ãY™#dž@X°@© RTr¦ +öc™ÄjwaÍÏ……y T–È9„`/ÒÊBÏæóóÖ!±sA’©£„tP«=öyìØ‰Ðl6›{ôf3l½ôtIËhò„B麮Ëq¯BWp76=!ÇѸX§K\ÄXÅ›››ñÜ^„¬x®àÂu]‹å qö(ÆgüÀ½@3Víí+¯o¿õÎ{|ð“~ò“÷Þû›wßúÎöå\mvíÿ‰Á`Ï-= ý£££Ò˜GGFFR©Ñ‘Ôh" zä@üçèȨ|Éè$Y€Lg)½‡v.—Ëô4Éjà'rÚ‰'r9Yú#€±WËåò9E¢"¯i¹|.—ÏHvd&$X21E2™ÌD&—ÏŸ8¡É´Á‰¹œ&™1‘Ëå&2½nG¼iÞ0:à‘G…–Ëå>#ìá Ì)s6©Õ³ä€Oy˜ED”Ú”ÚÑbýù¹ùø¦^èÜç9O¤cO­9j¶ôä,akŽÚÌ“¸Ø"PƒybA›R›Úv´X—.@ÿæ$©(˦5¨’3³¶Mí¯~õsH°ÞG-—Ëå”\.§7×Âpk£„4yñÒBm +c@xAà Œ9ãÂuñSBˆs10z@Ý|¡kÿXpæ%ö/„l³ëÄCÁb ]ˆÒ^€ßZhûàõ+¯m¿õλï½÷Þüä'ï½—`õk««F €ƒ“øŒHզ߭îýfddD +„Ôèˆ|âÈ‚ƒTJZû‰8ø:‘ü9‘ÉL$£ˆ2™Lï±Aæ”Lf,—?Ñym²öÉ<É>DðO•¸þæÝwß{ï'ïýÍ;?üÎë—|pU†dx|ÿÙ]iÀÑ)ê;IÀn: 5’ˆ„TâŒJ¹ÐÙ9Ý€tjÀú&2™Œ’‹àÞ«åxbùœÄl{ìwB’ ×y¤ÿ¦òžËOÓéôXÇÐ;™eÆÒÃËž:ƒãŠäÜ/\†¯éBybrâÈ‘Â=ÓÓåò©òÌÌL¡R.— …øN¾B9.,—gÊ3_*—Ëå/•ËY(X(ÌÌ +ÓӅ—Ê3å©òÌt¡P. +…r¹\( +å/Åå|²®pff¦\ž)Ïfâ«ãjÄÊ©Êtwó™™™SåòL¡P(̦ Ó…™iùwž¾çÈdj¢pª\. +…ÂçO<Ý÷¶®÷Äz0‘É)ºÞh†áš€Òs9°Ø ‚@ø–×N +áºËl™±eƸ+/ï••½ÅÍ®ÿϹ,ðCÅí'ç^7Ø£¤ýs¾¿ pPÔàõ×®¼¶ýÖ[ïüÍÞ{÷¯ß{ï¯ß}ç­›Û¯<ø ±j««1]ô?:Ç ‡ÑÎRH7!~zI¡ÁXœè_içƒ%‰ÉËy9qlßñYÞ;Þ`,“Étæœ÷_g’´Bîáà`%tz"£Lô¬Ï€ÃÖõh±½X#gÀ¾Nç"ÚŽ®ïFÑîî÷Û»»×#:·°»°[¯G;»Q´ER§Ñîµèhaáí7þÓµëmºCiQø_ÛÑ7¢]xþÿ{£½]»ÖÞ½q=Šh»}£EÑ÷£³ mÚþýÿãzí¶o¼q­}=¢–զɿí(ºQ>ÚmGí(šÿÁìþÉ÷®E×ß ;"JáùöâóßhÏ“7w)9 +íöµ?¹Þþ\^ Òê{Ûðµ¶]ן\k6×ÖÂVËÐtµÔ7  —Œ1×]^Žçñ¹"B¼ÐcÿBæyŒ!$¯Ÿd^àÉÏà,ŽÞ~ —SEÉõ|¤39Ã0^¿råÊöÍ·Þù›¿yソþë¿~÷wÞúÎö+>Ø[áhì+ÒvÐùVº±#ЉÊ(áèÈÈèhÏ4‘NAp €ä·v.=DíñXïÅÒMè5Ûôž‚Æîí…É9ß7-½ßäÂC®Ïš¶äÝ|Sæ,øw§l»^›RZ£q“>TÚ6¥ñH@ì(²íú”ÎY@ìúµ:ØÔ^ŒGüÕ(Ð +µer 6µ)­SJéW€Öiœù§ñl¡ònͦõÇä\‚š]ßµíú5J-gìz»6µ©¬°¡„<_ „˜Y’ Ã>ߨXßðuqt]××Öµµµµ°Õj ]ÕûGÁæSN æ.ÇŒ¹n<ò—‰~=þÀCÈó}[ ¼Øü=O·Sä !ÀúÀac9ep¥Çs†a\¹råÊöö[?|÷Ý÷Þ{÷¯ÿúݾusûµË_~°1ýŠí_FFzk|FFó}q `$5é±T*ÕíàÍgÒéññÌøøx¦ŸFc±fŸÈ)2Š/g·îÛΣÅY…¸w@ÉŒKÿ]éªvMÓ´œÖ½ "NÿÊ0`·j,#S€II¡ž×r™œ¦ëFïðå_j5Jí3SY“ÔìS‘MÁ¶)µm[Žÿ£– ¸Û5Û¶íšM©mïØsÄ"íët×¶m›ÌÛÔ¦Ô¦6ÀÙ:•ÓDe¥¼p¤^oÏEujÛ”R;²e°¢Š ¶½h× N4F¶]·¬9Ëj_§;2 äÎP°«ÄÌš²^àóX >¶:À¡®ëz3\ ×ÖÖ.†/½Ô@yµôDg !„Ø áaÏóc®Œ-K àÆó€D'ü'ç±ýû¾ï¶²x\ðÄþ…ÛÀÙíg2ã{âYé´’7ô+¯¼re{û?þð¯Þ}÷Ýwÿú¯ß}ë¦@\oœ4Œ“)€žë}:žýèHßKI¤ú@§h ÕS`Ü€±±T*µ¶¶¥R£ÑxrU¶%4›²BÉÐóã©T*ÎhyCÖò–J†a<Ñxâ‰'VWWW›«««Í¸°3¾ä,\ [Ï>»öŒŽt]×;åFœýmÊ(q.(þºÙ”Û¬®®†aèz^N'Keò†a¬®®=Ó\]}â‰ÕæÚ3ϼ$/’}¶õlw}6û¢½)€š 6µk$›5OWmzŠR°j¶Më¶Ñİ© q¥ô*¨€EP›Öâ?]¤”Úðht6¢4nîËj5›Òz%ªËC©œ$lPb×âÍãû?)ÝÄ"óäa¨ÿZ[^?V¥»zf*Àçóvàõž·$ °±>H€µp-\ ךÍf¸õR!µ´úÄ9ùÎãéA œM„}áû¾ìÿeËËËËL¸B¸îSIϰlÛ‹íã`Åå¬sþ !# +`é@`?0> ™|>ÿÊ+—_ÙÞþÎ[?ü«¿ú«wß}÷·ÞzkûŠ@>Ÿ×O†¡ë=õ¾ƒr¸c#=Å@©ÞhŸüªSÔ©ˆ ê^3eL—ÚêüùæùØF“A…««†¡¥ÒéñññL&£h¥' £±ÚxòÉÕæ¹8m{ñb†ëë庴µµµµÕºtiK~ýR«ÕjÉÛ7ÖCŽo„’¶®5WRI7šk« ‰=Ÿ×rc¹¼a¬6›a>÷l«Õj]ºtikkK~~©»ÂÏ€o~ó›Ã:(­Õf³Ù¬9[…BdÛöWÁ°¯Àb\¼oפ%ÏË +>;°*äB©·;“Ä#JkÔ¦‘Õ©-' €%sD©]^”Öäæuª „ÚvŒ‰y`ƒm×,‹€u†ú›òÑ3g`‘ÚPƒ3Ñ©ˆ™M +’íÏ9Zëa¶Î—Âõõ=m‚1.^ ·^jhšZZ}²¹údsõÉUžÀ –6ó=áû¾Ç„®ŒŠÄ èÚ¿tïû¾/0ö„ç2áy+žL&/è*Yp ð/ncZ>ÿÊåËW¶··ÿãù«¿ú«ÿë¯þËßzë?¾þÚË_þr>ŸÏåãZ|½3ì–®ðhרS½ÅÁ©Ñ¤x$•M¤FFGGF{@º÷^±±±ÔX*q¯â:>§×ÖÖVW #/Ãûy]7ŒÕÕÕF|ò7›kkáÓëÏ…ëan„áús—¶¶¶¶.m%xî¹.6ÂçâÛ_öf‚/6› CG%Ãà†±®Iéaèz^Ëe2™\^bµ¹†Ï¬‡ë­V¶$g¶¶¶šÃõÏfÿßüæÐ€m›ÙìѬIÈ4°kvìÖµkÖ¢ _í)лFç*`U&„ÀbòƒÅÅElû:Ô©Mëð0@íÑ€¬)*ƒ-K†dImÛ•EÛîÛl +`YPµæ­¹9¨w1E ºkÚÕÙ©£’‚„ÏcÀsÖF†­Fã¹á/^ ›a¸õRCCš‘” rÎ:à¢K×#½à‚÷Ú¿#°ç¹ÏùëØ8è‹ô)€Cf2ãã™Á·t:ÓÀöÿê‡?üáÿÃö|ë?¼~åå+3!kçc¤“ ý˜å“:?öíS*ŸQYÿßÅB¢F÷kŒŽA|-@suÕ0ò†®«O¬Jéß\•ŸéØt €­­ØúŸÀúðk¡[a³Ù(éz©TÚF€õ­V«ÍæÅp]ÿŒøæwéÀDPø0³Ùìož&´·úÙô1i£P‹v:ôä%!ð(< +P2Oæ¨3Ë»Nm»fGVD;÷ŒÆe½–e­Èº_Jéb-¶t:õTÿÛ2ÜGÁªX²Æ¨ÿ܈NÑ3§§²³6Ôl ŸËÀz¸±Æ žjíý‡!Í? Ã0ÜÚjhšÖH c‚ÉB>þB‚ y-®+ât€ë +!Ü 8çöï9ŽbÇ¿Çþc0Ì“LÎû¸Í,@fù§¥ p9ÀÍ·þÏÿó­íííííÿðÚk/ùŸŽ˜È%è½Í·ÐXçv°t:=6—öf;@#©Ôˆ´y MOuô^è ò}hö`cC@ïô·® °Þ +; + dÍ!ø§F€p8šúg³ÿo~ó›{*c˜&¡•vR´kÓäTžë=›=V…@H?L©]³¿Z‹æ#{‘R[öùÔ€Ì?hå÷í¸¢ß¦`ËÐA¹³¹Ý³9!T´;¿Ü¨V£Stvv*{šÚ@mºðyTëáÆFøŒüØhm„áF«ñÔsCNyú‡a^ÚzJÓ´F2B€ Æäár‡#Ä/tÝŽˆÏŠeŒ1/¶Ï“öÏ7ûìßMú0KÀY‰óÛÌd2{ƒ€—üÅÍ›Ûr½öÚ•—¿|rl,¯(qW¼ž–ŠñD£Ñh4V'žh4 ]™ù{EQ”=.ÀsC]€½ +à™= @c¸  O¬6K¥’QÒõ¼¦å2ùÆ“ç:KhŸ}XŒhÍ&Ù©Ó³„@ù:µmZ³íkÿó›×ê×ê´^o[=ù‚d*–MwêÔ®@iMÚ|î@€Ö€RXÜ¥²v€R›žÝ­SQ›îìüûk‹oÖëí +íIFÄ›×hT™«-¶ëT2!ñ©MÉ)BL3k€¶?íÀÏ„Ï=Óz. Ÿ{. Ÿ{î¹õp½uŸo…{@÷øß’Hˆ€9ç\¸ !„püs¾"Ö¾p…ËÌýÛ¿çy"®L牠7 ­ÞIcli‰ñÛËŒg2™Þ4À¸´ÿ ɺ|ùÊ•+W®¼öú믿þÚ+—/¿|áäoüÆoüÆo$èŒHõ¥oeÿ­ð™V«›”*`dH ð@=À .Æx²»žÉä4%§jª¢*«ÍÕÕÕóF£Ù”-œq÷âÅæù¦<âû-3þ3 ã¨ÎÅ8wØ(é¥xä“ yûkã|×°[­°y¾Ù<þüù'Ï7¥RÉ0t]Ó´ÜDÞX€OA€?øƒ>XÝ,sòH6{Ê´~ݲæ-KÞØaÍÍ‘€ç¿bYgç,ë¬U®X–e›«ÌÍUÊÓÖ¼E€T*åÊœe=kYs‹XVÙúJåìÙ¹³•ùŠEaaÞ²,«R±æ¿´0°yT¶¬¹92oN¬¹¹¹J¥R)ŸkžT*•¹ŠeÍbÍYdn®R™ûb¥P¸g2[©Xës9ü¹õçž{î¹õuùñÜz¸ÞjâfkŸB¤ùoµšzˆÅà\0×uß÷}„D‡ž+„+/ëb}Ç¿<ÿÝÀ®`<ŸÏç;‰þ[Ý8ðÔs-I—Zqíoœjÿ©±ž(c|ÓP€5 €§Î@™Èi™\NË©ZCÀh4šÍµµp­yqC»p±Ù /þÿ¹ûßà8ŽüÎl†žÁÁ© 5…¸ÝEPx h‰¡` ÔDÁ݃„jX6²™M¥ Z^JŠh¡é®iÄá(¢I–ñHÁÏã[*„)f[æs0°Âî¨ñê¶£Q™aPʹ—z´c \kXçÀˆñÄPóò^dVu7j4¾{A]’ÿ…†Èß'¿¿ÿö‰÷³,ËÈ[öœ=gç$f"Ì͵`&—L$I©ús3…ü> +À|úÈ‘Z Д(ãS®Þ­‰Þ{# 1Æ.v_Å“ YŒ—ñ«ØÅ“мþNcìb¼‚³Ä !þœÆø$7¾çºîäi,ž„fÝ´ !4qCcÓÅÙ,Æˇ_?ý²›Åx›c]÷ƒã/`ìâ,€¤ ˆ Fz¤OŽàe×È0²€t:}@1.pi~Þ±-™˜ß"–æï‹ƒGC &ŽOOOŸ=ûÚôôô´ Àþ`pðìtD€³g_?ûú™wæßi¾þ£ûÿìÙ³gþøÿø×ÅÐðþöÿ û—A€¯—H¯®†Ã ¾Õ,ÿ¿ÕqðàÁÙÑÙÙÑ£££³³?~ë­·ÞzkvttôÄpßp_<>Ü×× €X“Fÿ¸té¼€ã8.DCÂìÐT iKì²ÿܘñÑÿô‘þþ7óVÞ’ + hÛEk®4¿öÜ.ó´íHÌ D + …ÝÈ7 ™êæ™ÞŽþäL!ß*$zŸþç …ft0ÂØ„ZO*¥ë!˜ÁØÄal £ 26ßG¦ùû7Ó“ ÄJŸ—€6ì8ž>=eÂLXÒ‡0q14ñÂØ4M›!Œ¦ibŒ°MŒ ›ë›ËËÆ$@Œ Иb@‚çpFöÈic1å”’Çö¼c YÎnù?ßbþvr°cÐ*•J¥ÒùÁÁÁéãÓg§ÿƒéééHü`ðìÙé³Ó?hVbMöÿÆo¼ö†èŠì_Ljèÿ§wÙÿ™3ÇÏüš,@¹ìºn:^ý«™ l8ßúÖÁƒ³£££‘81<ü 'ÄyþùçŸnœgžiûõUí»„Ò%§$ìÿ’3???áÂÅPì€æðB+æv Ð¤Žôöö9òô›y+Ÿ·$ŠÅ¢5_eM˜³æöºè­°í¹&`? +‘ÈC".ðŒT»]çüÓý¿¹°ºº›y c3ÓÓ“Òu…‰zŒ†®‰ B&ž2—Mó÷M3-gýˆ€& “iÙò3…Dx +—GÜÌFaüûæÔ”išS¢<c£ Æî2%æ²i./›ãòá°åá““pÒÝE(1„`B‡)pÀ)ü˜@„pK%ñæ8ö¼3w|/lÛŽÌ¿˜Hô÷*–J¥Réì™ÁÁÁ3ÇÏœ}íl"! ðÆþð?øÁàÙé³!Þ8ûúÙ§”N¥í€Òbÿrލ°G¡qÿ?ýÚû?~æÌñ®}]9—Ë®›n&@&“ÉÀ¦€ÙÑÙÑ?™àÄpßðóÏ¿ð /<ÿüððp3†Ÿ9øˆÀ=(Øí)…׿c_õÕö»Ø”Ü/ |€0 87777gYsÒ{/¬7s¹ÜÌL¡ÅxºÿÈÓo¾™·ò–%]»X´æ÷Ĭ¯ËnV¿‘ ðLo‡ŒìòŠsöüœmÛÿ<´ Qz7…n¢ž=#Öí!„MŒ3goâH˜æ²‰ÓB0 Eò†ã'Áú$€ã¦iº×Ë™eá)„ðúF!ˆ1ºišæò_þÛß7¦L !ÆË&Fâá<á‹0)vB'סONMM™æ2\ÆP×H¹±ÄAü8–ï€bÂr„ý·Ö†æŸì?2˜°Ξ<~üìñ3Ó‰é„ðÞˆ4À´L¼¡(‡•NEiëTbBÿ¿öÚkÒéö?-îÿ3bÝ™†ý¿ÖèèìêìRUUU +@ƒ/ºø×€¾—þ«fd „ 88;::Û£'úBœh1þááááX£·ö7Q—œó¶H]rZ\©‹ÎWŒ“a†ÂöfÎì9ë +V¡P8—;wn¦p.—ËåÞÌ uÄ{ûŸJ&“¹7sb?“0?Ûžß«öÀœÝ €9˲íæ€mï€s!ÿÃG3…™7sÉÄÐvôçff¬½§(>ÁohÿÕju¢:  B¯ Ô˜ŽÐ«¢sgÊ41B&,‹–=a£.ÂãÂI("xb‘8 IcÙ]¾™Á//cŒ¾9b"”A0ƒZ^^þË›±l"„2_5ʘx#„#`lÀ „¼Œñq0). +9¹lš73!C8RS1Q&óxv:»Î|É™;n]Ú?(Ípph0'ÊΞ={vzpppðøñ3g¦^ýõ×¥ôŸžé@åIEéT:¥MQcŠòƒ¼ñÆoˆP_xÿOŸ=;}vº)é?(ìÿlÃþŸ9süø™ãŠÒÙ©ªªª*Šúï^?®iš¦‰`$ý½†  iGgGGGüõ0Ü:ùûÑx”pé’mÛs 5õl0 ª7M:¶m[…B.—+ä +¹Ü¹Bá\n¦PÈYç†::z{ûûû‡††äz¶BîÍ˲ælYŸ%”ÍDsÖœ%/zKüÄžÛËš;—Ëår‰„]œ³d€mÏÉLáâÅd¢·7¿h…Ƚ™Kærajð™™=×$ææ~Sx{ [3á rS=2M1&Xôþ›Æ: +[î°‰M§³‚I4D†gFËif0†H¬Áë#.F0Ê ÿûõWÐòÍ›ËæÔÆS¦¨t‘ 8`ÏÅny½|óÖ,/»ëå[æÍ²y³|«\þOeÓÄ|¯¼|óf¹ì–ß7—o½·^vËe—¯/ÿ§¿^¿é.—Ý…ëîÔòòõ›ï]wË®éþ—¬‹1.cèb芇߼Y^¿uë¦k®/üµY.›åòûeó=é)xHíÒËååëËËËÿòq'ÀW@˜ÿàqaþv¡P(œ}ã³oœ}㯽`zú^ÿÃüàÊ¡C!ž15¦tvªšªˆ¿þº°ÿ³ÓQ Øãs|ðwöØ€N¥³áDÐÂú,€‘t:½þWr8SèŒu«]]=Úèèh£à× v°¥Nç௷ÿù&ÌÛó uÞ¾è8Na €Âý#1)ã s…ÜL“ÿ.+þ¬doo¯€¸þgffò2 nñùÒ®™Íž +ö\ÃàççK¶e +¹\"šâ,þÙŸý‡ÿðŠCýýý¶ÓŸtr¹¼•³‡Ž$íÂÌÌLD€¡þÞŽ¡‚UL &r{¾ä,.þ°Q~ì8Îo +BªÕš °rãÆ QtòäÑÇÅ>|t```àØÑ‘ïŒ;vläèÑ£ÇFŽ}çØ±cÇFFÄÏèœ99>bœ4Ò'´ø€‘‘cÆïeÓÿ&{ôäïýž|øÀÀ±£ß9MýÎÈ€xÚ±c###ß8zìØ±‘ï=vôhËÃOŽ'O¦O#ÇŽŠù¤#GÓéôÀs‡Å'O¦Óéo2ìÁÁÁAqûÛv¡8W(Ξ}㳯½qöµÇÿàþ ‘HL¿þú믿þƒ˜¢z²Y(M + MQÔÈþ§£[þøñÁé³gÎüX1ÚÿñŠÚÕ©ìvÆB Q@ú0€¦i¿1¢û þD{ãR©‘°K»«ܹsû ½á´ËÖ ¦.ÌÆ‚–più›V²_t&I €B!78”ª}hpp°ßvæí¯<ó2\šŸ¿4oÛ–577gÛv©Tr‹Vrè™ÞþÞþþg’ÉþÅ‹ÎÐüÅ‹ò9»ØÛëgr¹™Ð`YÖy»h +¹\2‘ìïü ‚(!”T«T7C¬ÜX½qC¥Ó××a\¡[þ`}}ù¯ñȺ»¾¾³ëßzßu³å›7ßÿàƒ¿.—]ŸÎºîz6»~ g×o•ñŸ—ÝòjÚ-»”WÜ+¸Œ×Ýòu1:|ÝM¸ë.Æxb\¾ù·7o•oM”Ëë·Öaö–|øúÍ›ë|ð×åòºq»å,\ý`X~ÿ&v—Ýr9íºîå2^ÀØ…Žñi¨)1 –Ýïýÿ"ó/Î +ëìñ³¯9{ö̯½öÚk¯ $‰Äô™×_=¥Ä:w)€¶&ð¤¢t«ê¿1=Fÿ"ûíøÿòÚôkgÅ’ †ûüÌ¥KU”V@€H¸étú½÷Zƒ´#'à׺qŒô=ñD{¼á{Þžk1Ç9wî\â»F,hoß[ZhçæÂšÝ|C$“Éd.÷fnFôÈ„£0í’=Wh,o“×z.—+HW¿ÑqâܹœŒÌ—~ø¿ýßþìÏþlñßÿÙ¿_\¼˜L\¼8“Ë%­Ù‹GúÏçs"þ—”Ÿ‘ #dØÁm%á°¡R©ô›Ù?¥BxÕÍÊêêêê•••Õ7n„EøGñ{zªia3ȹ!FF„2f6±i.‡Û=^~LS8ñiã)£íá$A|—M6úc„2x}äá$À"4…3žFÈĦ¹ŒÃÎ"£åá#eˆä‚@ O¤Ðº;c*€ÃPÈGæoÿ¨`>{üìÙ³o¼ÑL€éD"1==­()ehkUݪڭì¹ÿ_{ãøôY!ÿ[âÇÏœéìT»:[]€€.v>…>@s%@³ ¯¯Â2àGÌíëë‹?"Þä”@“O|ÑqœÂ¹s…i{ß,@Øk ÉtûûûûéïJXòï)ÿÌ3Ï$“ɼUœ½páÂÅ‹ÎÅ‹N8–Ï‘»mÏYç"FL$¦ ùŸ "¦“Ë,qñ—JŽ°Ù¦¿uaÆv!gÏ:’½CŽ•Ï½™Ëå’2 › +¶mÍÙö¼h-ž/ÍÏÛóöœLJü¦ „BªT+•µÕÕÕÕÕ7nTªÒZ×UÕn Q ÑÍ7Ülj]ш§0€Ø”ã~rÓâ 6¢¾@Q`ˆ Ìî_‡sýÄo¹#e¡1„؃~06±iÊÝÂãb¡l=Bwg2'¤&R=TxBÃ0¾ÑÈ ß¿Xœ³‹Åb¡0=}öìñãÓÓ¯½ñÆM8þð()åòU1EéQÕn%k¹ÿ_{íµãÓg_{mzzúÁ†ÿ/ ¨]ªÒšš¦iÒ ãX#ìŠjcÝjW¦i@ˆ1n² €=8(Íþ‘˜íëëkÇÛÛ£"€F·Ý>@a:±7ØÞ y·‡J$çlgqñÏþlqÑ.æs¡é&sCÑàþg††ÉœÈÊår¹7e÷p!—ËE³?sÓ¹\24þdBLMÚ2N Šæšê>÷ñJ‹ÉgŠÿë|“CR,óo&;:::¾u°cpp°¿¿¿ðé¦ý+ƒQ.ú›)Æh$ª•ÊÚÕÕ7V+U"ÀÀ$€šªiè²'בbÏ\¾ŽåÌŒMÓt¬ØÛýÒ$„#ÑÞ‹±hêÃNÊcÓĈ0p—1Ôu˜­Æ™ë’.pjyy*zø”išYCl…“<-‡‰cŒG‡r;ø˜ÖÕÖ“AO>†íÀ¿UÞþŹbÑ.N‹1ÝgÏž=Ó ÀkÇ?~\yR9Ц|U @ K Í_ØÿÙé×ÎLŸ={f°¥þçøñ㊢vªŠÒìŒáÖÇ= +@f7‚cœ5Œ“' ¢¡Ý÷Àèèìè艾¾¾x<o@”ˆ"€óvä$ÇÞ±p @Y”Kä,˲eDíO£ÐšÕß?”£y‹vѶ/\¸p±1à|ɶK%Çi èçß/Ê?”/q¾©Pf­B¡ tüœU(æl±)^Æ!‹¹D"!ÖÂö÷÷‹a+GŽttôç,Ûž+†åc¥’ãÈ8`©T*9¿‘ý7à{ÕJeåÆêÊj¥JˆHf°¡©@®Ì@ÑúȺTð¦èø•ÍÀ¦›2_Xºè Î`({#³ÆK“°ŒLlb„ñ±²1‰Ër„'tùF—bŒ% Ƥü‡‡ÆÐ=Ö²0TÓ4½G= !Œñ7ZŠ)ª¢LŸŠ]¬þ;3}æÌÙ3»  t)Êÿ‹í§Úö(U‰ÅºÔ®¥HûãµãÓÓgΜ9>=}æøô™3Ç›Щ<ÕµËèJ±æZ wäèÖ´€ã,4Œ“']·\þjDãzw`øÄ‰£££'NôõõµÇÚca $Eø|K%…#€Ä´ã8ç÷i +ƒ€ÑôÁsçÎ;w.—LäæÿTÚý¢sñ¼Ø›>@2Ÿÿ¾tþ/´´n”šfõ9NËÏ›OéRS²`ß›®‘D,Z–eŸ·mÛ¾xñây[N N%ŸIÃÌǼsyqñ²³è8N©‘xøÍÀ(¥”Büš·±¶ººQ©â3QŒ;âNŽ«ªÐu9%h¤ŒÅÎSË&B™ ÌÀ ÄxÊ5Ds¾‘ærg †°i¯ï‹/À@×M$zŠŽ]‡“påÐoñpŸÎ`Œ!\žÂáæpŒM3›…ø4 ç}"Œ1‚fŸÃÍHk`"Õ­Œ!ŒÊã@Ýh@ãŸÃaåÉX›ª(­ó9ŽOÿàŒ˜Ø €ÒÖÙ¥(ñØu°;Ð-@W¢ªÇ¿öÆoDö?}æø±fHàŒÒ©(Šªtvv6\%“›ˆòïa¯ЬD ΆqòäÂ{e@*¥iû u·`tô…^xáÄè‰ÑÙÑ£}}}íOÄÚãñ`Þj-º$çÂÅÂÞ:€ðÙ‘ JäJ‹ºè, +K¾h燞~&™L&“áVw[4 –Î_¼ä8íÒ|©ä8óv“å—J­ÙÊ\!—K$r­V/<ø(‚7?/3™rfç²s1À÷óßO&%J2òY¸Ü]üúàœ1ÆX@)e„’Z¥²¶¶V!„ø,ü]UÕ¾;À<†1ÂäBý–‰1BÃ ÂØt ,L†ø·!Ì@@¸éZß4M„ÐÔˆ ‚ˆæÆgPÁ¿51Fa¹ÑT8`¹C£ DPºBÒ©tZ.Nu§Bnö›€Èú•§”XLQ•œ=;}&ð+  t*Š@LýZ1µEyíµ³Ç§ÃÙ_Çϼ@¥SéìT;Ei¸]0“JMŒEQ€‰f¬ÿUc‚£@OO(04Œ“'Oþè½²R©”¦iªªª{ƒ€¡4oàyqñ¿ð 'Â@b<þD{<.þŸ´­Öû?tœ –µ8Ø`A ¹ÒâŸ-:úÌçó…y^r.9Îy €’½ëê/•J%»Ôðdï7Ô™wJóóó¶]šŸ©!G Ø£õö¬RࢀÓP¿q-ç’œRʘïû•Í PŸ1Ú@÷€6žêðE8 4âŠ?‚ð›¢Ëá©©)Õƒ» A$&¦axqÆÁ$šÂ,›!s¤ Û½B€qcošØD”0ƒ1ž‚§!„ðEE- Âðe!À€ñôx:­r{ü&@Q”Ø¡˜ò¤¢Æ4åС§:;ŸRÄUQ:[4Ààô™3MP)Jg[›Ò¥(Ê]¿A @@‰IûÿƒééãÓgŽOŸi(€ãйJä}fRccaG€`¤I´@„²ÙÐMPu¼»¨ef_l8ùüð‰Ñˆ'FG…ˆ··7pIÀÞÏpË*ìUc­iÀðg‹ÎŸ^v[€H6p>4Og“þ¥’m[s»ÿ…H¯Ï;ó%gþR©$&Ķàb€Ù|~7æ÷€ýuÎ9£!(­ù•JÅ#„1ÆX€T÷€6>h‚™¿6±)†ùJÀ“§$„¾$€ñÿ3€a°± §%¦p&“ðôþ€!  ãã¿›Nk u}L û8 •óŠ8±'墯4åÉ'ŸRºT%kS¥SQÅ\ß³ÓÓÓg {Põ¢t*Š"€òõcÝ]ÿJQUE錵ÅÂûúÌô9äÌ™3gÎôt*  3ràÑç`&¥M4jp#ðW«{%B¼W •êŽìgjŠ45ëÄb'NŒžxþùçO<àĉ££³£'úú†ŸhÇãà ”šà8ÅýŸöo î)Š&´<ØÞ;Ø(-þ¯‹Î¢ã,¶*¹¼ÐÚ¥và‡—€–fÏù¦_ÎKñ/@iþ + X,óß?!ö¨5`ÏÿóÀ˜ €ü‘RJ|¿âù>¿Õ €t·EÈPýnÀ!Db³  TŽsÞq¾Ž˜B?Z@!~.åòñq ÀõÔ‹ÿò1€X,RO>¥tvJ SQ•ãgÄ·é3ÇÏœ  *ªòÔ“MØW|e @Q:c±X,Úÿñ&ó?SvgpD€1MÓ 1 q“ Ç!! +Rbp€ ¼H¥žÕ´îÈþ1^?ÖD™ +èë §†œx¾EŒŽŽŠDÀð°m[÷à’ã\rÎ;—L:ÎDz,kppŸ^€æq {ÀG(€ï7+g/÷¸v¹ ÐÀ¥Rɱ¿B|?ŸO&‡žiV¶½/¾—–/~dŒSF©ù„qÊXp €© |QبTÂøúx 0¾¸è8KŽsñë(©°€aÀ9ÑxuK[ÅÄ‘ouô÷öööö+ö­Þgzû{ÝÇS4 4Ø €Î'=ÕÙ¥´5 Hœ=sæø¡´NUQ5vHéA@åÀ¯èè.€X›7}|:,ý—§Sà·ºÔF7 ¢¨X % Ѐ‘tÓ\0ˆ°Ö£ª=B¸¡øÑÍ›:H¥RÏj꿊ì­d1„ ‹JÀX,÷õõ•cƒN4Â'þdtôĉú†_~þĨe]Øí\rœK—Î;7pç¢cYÖààЊð'»c—÷()òE«Y\Ü€0ã·ó{&-ÏÏ7+g¯p.:ÖlþûÉä3Cÿ¿cœM(ãŒ0J¥œ1pÎlRÒÈ쀗"À…&à8Îâ¢H“”ì¦0 { +V1yä[b¯rG¬£÷™ÞþÞþÇÔþÿå^óW”X,.\€ÎCO>¥t)ÊÐP”˜lÙ9~æø™ãǧÏ(=š¢*ªòTìÉ0¨(Šúëcjä4+€m1åP«ýRcÝŠ¢(Jg« ÐõJH€10¦iÚdS Ù€CMíT5m ˆ½Ò¸yS×S)íY­Åþ_ÆžBxê¦{ðàÁv1%4Þ××7zâ…£!„0zbvtôÄè‰ÑÙÙÑ£³³–ìº`þ’ã\²#À¶¬þÁDbhW3Pû®nàVÐp~M à‚sa7­vE˜—˜ŸŸ¿T*ÍÛ—š`·¸Ñ´ð¦,À£`ÿú +@Æ9‹Àcœ0Îa”2ÎÎYÀùˆ ÷Ù¯Txðp:\pá‚# PrœÒü|³èïïìω§âE;ן´mÛ*ærÉ™Ñ •·,ËzBÖ°°“GJ|+ö­Þßîíïíïý—/”]'và€À“O>¥t*mO6@› Àñ3¿#Ûóz„8|èÒ©´É@×׊ìrÈ{”ãgÎ<þ;¿ó;¿ó;¿£HÈ,@S/€‚pD€ h +€UfË.~ÏtÍì³@ÕR]fÇ ãäI·|³ @*¥=ÛÝbÿ¯B6ßsÓßkâ‰'š Ã/'àÄ /œ81:;::;{õí«oÍŽŽÎÎÎÚÅâEljí¥KŽcŸ;—H&ç‚c­ÁþD"‘Ø] +ÔÞ´o8ÖZPZü÷‹ÎŸîUC{cöàÑ +`ÏÜÇl‘”A±4¢¡ ÿ~>Ÿ ƒ€ÿ<pJ)圱:cŒÎgŒË7F9•öOk´(€¯Àd+ \\\tì‹NÉqg^¬HŽ@ÿ`ÿn­b.—,$ÅÞv Úû Ñ!ðÛߊuô>ÓûÛ½¿ýø@Ùs¢@ç¡COuªŠ¢4@[L„ꎟù3ªªv† +@=ôdP´uþú@Owäh;‹h; Rºåø °ÿ'•CjL + «©PQÔS½2imL—×]wd$ Œ´<‡•CÊ·žKFzÜãÆÉ“?rË7ep_û7¿÷=·½=ÞþD<þ•NÀ‰£'N<ÿü°tN¼ðÂè‰ÙÙ_½*ÆŠÏÎÎŽŽ‹ç›©¥KŽ3/ïÿ‹ŽmI í¶ÿƒ_¡þôëÆ~Ì?Ž=_’õü—„]ì«f‹Åï_ä[0¿(¥”~eúR¡ô%N™þ”SNxÀöð.À.8—//..:ÎÅ‹ŽsyÑqæíRÉž·ç…XuÍû ™Hæòrò~(}ë`{GGäüvoï3-”}p Ö¤º”¶&à@,;~üÌñãÓqµ[m(€§žT”ζߤ@Y€b}¦r@éQ”C‡Äõÿ¤rHõt*Š¢tvªJ4 ³K“×" 0¦i7]WTf/d³§³Ù¬›„ª¢jà˜Íf³â…¹å÷tðhûOÏuãñ'Ú›4€@3N̾uõÚ;KKKï^{ûêì艣³šÊòJóŽ3ŸLÇqì¢58(êó[\€(¸ƒ­Ø§ Ø¬.þ& +àQ.ÀyÛ +À¾4_rl{¾´¯(‹ùÙ|þûB`(#4:¶AÊ8¯3Îx(‚€‡.ç„0Æãçû*€G»ÆKM°mû²þ— DàÂü¼í\(• @xÿ?Â(D.€ ÀÜ~ +`è`ì €P½± ð<Å:•¨@U”¶±”.U}òP¥”hû:uÝjws0ŒPžTz”'c‡”.5¦ÄŸTž cª¢v5&uª0#º;Â\@( 6oº®išã,Î@¼l,EéÖ€!ÌàÓ§qö4Æ&†úHiÚ~öÿjú{®‰Qì éü‹x¼¯oøÄ‰Ñ£Ï?ÿü 'NŒŠ ƒ[b·Ø[£³³³³—ì¢U”ù³y§t©ÐŸ°œ‹ŽØ£ úsv×´ËŠ£= +€B ¡„xž·áQ£Œ3FéÞ€}©%çk@Ö† +À–5€¥ùÒ¼m_Ø €(˜Ïï@Ôë”rJ#UOõÒæ³Çüƒ@€×…ÀëŒs^çŒqZ8 ê¼ÔÆ8aŒÎÎ9ãû)€¯áȾ§ËÎegqñ²ã\pRI~¹¥’À`xž~¤Èå’9aþy€°©"@,v°££££7~P ÷€C1E‰²ªÒöd«hPZ@¬É8ð5êº÷ÆÄú ¡bO*]jLQžlÄZº‹¯ /`"šˆ3.6å*!ÏE9»H`û7Ói×ÄS¨ý‰ö'žˆ=Ñ" %À £³W¯½»´µµu{kkiéko_ýñèìì[¶•Ò€Î|©0˜°DZ­œ@.×L€¨üo/¡”Q¶œQÆõ:âæ»°‹v©J—ìùùRɾdÛó» ]Æ£Œõ€œÖëõzÀy½^¯SÊ™@…RJ[° œ ‹– „q^—’€a<°ÎÎ9§œÈßàŒ³ß …° +–m[öœm;¡pÞYtQí ¦€ÁÁÁþÁÁþÁþþ§s¶],ZVñ|1ןh‰Ì$s3¿íBô~ãðäÿÔ¤º:•&Äb±¶]ªzèPW³8|HQ:Û¥óëÕt¶dD0Ö& (]jìÉC‡”'£€¨.€â"[¼ €T¸2ºëx +‹­¬ÈMC ªMÈà „H©UÓ0Î ¼ÏýŽµÇŸˆÅžh&Àè‰áÂþ—¶¶¶îlýdkiiéÚµ«³?þñ[³Ïç‹Ñ€Í’SLÌ9¥ûϵN’^@+‰®ÿ½`ŒsA êfgQQZ¤ú£ëv5)¼4?_š·Kóö¼gœ×ƒ àœ w7 `¬^¯3Êyl7hKéO !„ÕEÊO|UuÆgupÂ#á;3Æ£¿A`ÂD¡P°ÃqÈÎåËÎâ¢ã\”ŒŒ† >38øÌààÐàÓÉ¢P¶ +Àó×fff’¹|>ÿf>ÿfþQˆµwtÄãñƒ±Žø7ß-µGíêõ=ŠzX¨ðXì@¬­MQåP¬SUU¥S‹=+°¡(J¬³SQÚ(ª¢¨jLQ”Nhjgg—¢Ä¥ëÐSŠ¢¨š¢(]]J§¢Ä”NuLíT¥-Ú›¡(]ªª(J—Ò¥¨Š¢(š*º:»Ô®®®ÎÎÎÎή.ÃE0Óꨊ:‘A±¶U¾AŒÊ.Īú¬è: 3bl„ŽôTª¨`ý‹û#„âñö'bíOÈH`__߉ÑÑ£ÃÏ?ÿ 'FgߺzíÝ¥¥¥­­­Û··¶„¸úÖìè‰çG-Kv”œR¡?g;—ì\bp0´ÿG ¬(PB(a2¾Çh€p¡CPÆBË¢\6ÙqÎ9ßÍ +@„ÞÅ»uJck€ó ¥´¡XP¯­ +`/BD5êŒÂçŒ3B'œó àüJ©4~Aú5³,•J¥D¡P°ÃéÎÃÎèK!ÂïG–]Lö'/ØE« Ó€9¡ÞÌç­7£!Ìû #ÞÛñØ g¿¥3 ¸wuʼ¢(J[,SèéìR¢v)J§ÓÔŠ* +ºzzzz©Jg§ÒÙÕÕ¥ªŠÒ©ÆºD4OéêêìêR»T5Þ-$ƒÒÖ&¶èµ)1UQºD¾¯§G“OV»Õή–“þ׆‹Z¼¨©mªß1™Lcœ…ètÙÍ6 Æ=AL¤kÝjf¸c¼ÏýnoÅÚŸˆ·?`Xj€'Fgߺúv€­¤ðoÍž=Ù–(]°s‰¡Èþ[p°Éˆ<‹;G‹lG`¡U°& ]€¨”6€P΢¼ž2΃ \`œRÆ«³€< ¢ 7`»À(eç¼IPN)ã,¬Ú +€JÐ= +€îÚÒùÓtêŒó:‚€RÆ 8!AÎÎySJÊ(åAÀ¿NÀ.•ΗJ¥Râæì9û‚Ó€è …gpðHÂ’ + ˜|:a‹V!—LÎäffff’É™hÍâ£p¤··#ÖÑñx`l¬g,ýçwÇ~wìwS)¤‚µ[UUµ§§[UUUM©ÂõnkkëìììîV{Äï€ö‰5<ð°ªu«ªÚÝ“J¥R‡¡&>VÕÄ»h‡ÂwÔTµ[ëéé9,žªªŠr ;ÐùíCšªªjw·–J¥ÆRÏh|q\A€† á1Uéâ6ÀÑŽø,<]v°úì³bÊÀL&á)„t­³'sÚx¶ØãþGø‰öö'žh’q€Ð xaø…Èþò“­­­Ûwî|ôÑí­­¥¥¥kW¯þÉ쉳³¢ äÌŸë?gÛ¶Œìbá8à˜ˆBˆEcMî?gŒ6+€V€ÑÝ + €,²“àœ³: h”QJ)Ú»YH*ð@J0.oް@úBð¯VâSK´¸uÆiäñ‹ €xÙA¡àApÎ]@7œohÛ¶í¹ÒåË‹Žã\þ +t$¬¢Pv²?aÏó…\2@žÖnˆ @G¬ý1W/¦^|1•J½øb*õb*<º–’£vÆ´9wïÙn™WUh==PíéÑ&éš®vw «ÖTMÓz4=•JMè©ÃùÁò = ®=«u?; ic@Ó@*¥iO¥º»5u@Ó\bŠªëÖ4 ¤&R©‰KÉÑ ­?ÆŠÔ¡pJíT5ˆÂØŸ ‚§O» X©q§3§Og2@]ŸèéÒ0w!ÂûÝÿãWŸhK7 $À 'FOœ81úÖ[W¯½óîÒÒÒÖíÛ·ïÜùè£>úhkKÞµm˲ÏK\°sCƒ‘ýïrbíáLQD(c”1J¡Œ1º‘ Pg2Ðä0Ê‚}@w€I4)€:çQNÃàÍà”7bŒ1.D.k¸ÕG€ÉÔ^«âŸ×çŒÕÂyÀÎIÀaöâ½FöÏyðY˲ +¶=??Þ)•J‰D¡`Û–5׀ˎãÌÏ_ºti? ן´‹–UÈMç +9áäåÙOXíGz;¶?æAÀ±ÔXÓö?‘Ñ&ävcmLK¥´Tê%4MÓ$R©±1¬öŒÁé”"Ëccš–Jéc)  0&#”66Ë!~c¤4 O04MH¤©ªª(Šªi‡uMƒ@Ÿ©”®06R©1MÓ´TÓÑÁK+M^B@У*Šq5â v°úìd †§OC¡®ëz’2]Ã…È=ºßýñTûO´Ë# ºÿäêÛ×Þywiiëonß¹sçÎGw>úèÎ;B¼{íêÕŽŽŽZù¼eÏÛ¹þœ}ɶs‰þýÐ~0Ú?.Ç"Í^*ý\ÊEP@(€º0©ú.4»œïQ¬Î*|úº°´D(€ ©h&‹@÷@Ãè#ˆ@C 0Àƒº¸û)'œ…±Î€Õ¥„Š/F~Ü#²Ò$çl{~þ¼s>$€mÛ–œ]äüÐY¼Ø€ÒÐàø~äÈ‘D8 ÉÎõ'mË +@Æò»@¸€± GzÃ’ÀÇ­GGáve ÆR@Òcš¦*]j·ªi:‡'@JÏ6€”6‘Nt +Lè:HéPC:ÐŒhèGAzì»b4¯ãè9”Êh©T +¥4Uý-EQ5í(Z*¥ëúD +@èê@ Æ4°û„€„Æ ´nUQuŒš€!Äîð³Ï> À¸Ý=澃ñ­£«ûÝÿáøñ'ÚÛÛÛãñx¨^}ë­«o¿óÎÒÒÒÖíÿzçÎÏîÞ Œ^»võdz££}}VѶí\nÞ±+ñôàþh6„µ‹‘`¡ñ¨Ìx/ïçHÀš@¨@Æd…Ť ð€ˆü@$à…:ˆ\;Ø­B°€ X½pNyK àQ + Qñ/-»Î9g<Ōף k|Åœñ€Qñ§òþÿ?‚€3¾_ Rås¶mÏ ' QušÎåÅÅË—:—›€34444tDœ\(ZV€Ü×@¬½£CT>þØ} idô :À´˜rª(ªšJéÝŒCx:tˆL$@¡a  €èzJGi¤7ð(@Ó¾kŠß2Ñ+(v@ +èzô¨j—¢ŽÁç`ø!@ä À„x!ÓB€Lá© @:cª¢ë„€§ñÔÔÀ³ =0†øôéÓ¨ë:P3æòÂÂÉòÑ…}ïëíñöx{¼½ý‰x¤^ýñÕ·ßyçÝ¥¥Ÿlݹ{÷gÿ³¿ÿûŸýìÎÏ~vçg².ðD_ßó–]´Ï ææÛ™· 9x¨½]”0ÆšÂÍ`´Õ -.@«v)ºl6€‰,oU\ .œ<ã-Y€*û +´¸uéÎëB,h–#œ¢D@¼¦(uþ„ïvšö©æl{þüy§T*$…Kö\TÒpù‡b–¡œ€64NžNØE+_H†Èíã40׋Åb;â½½±ÙOö¸@ß{`FFÑ œÐˆ!NuuªÝš2ßO/0ñ¢®#]cš×Ũ%]×õ ÓËHþN@L0 3Ò>6Írú_`B×QÖ­ªÁ4‚ê@×á„(ë¤ë*áw[5ÂCAô¨{p:sÚzvh!ÂÙ¥›7?À #†‹!Dh×ý_EzJÇâíñx,ÖÞþÄO<ÿöðèìÕkפýÿì3qþáþágÿð³øÙ;wd$àkWgŸî+íÂ`nÞ±K‹öà#;¸â^ÝlÆ­4 têòÝå»À)cÂç\&4bÒØ_0àB0€€ +ÀyÀiÀD€ó:±zÂÈ>‡5¶$@sÆ9åŒspJE€Õçg<àu)=1Áz”å¼ÙÀ-Û s¶=o—.—J…D¡dÏÙÅó_y€dq¶E$óoгl[ ···#vðHoGGGGÇ7IÈyª0‹10Æé´áB )ÊaUÓR:ð{¤5íw5mr<i'ÝïÃ0²iÆ€®xŠ Æã ¾1„@cpkéÝ·¯ŽÇã…Báéœ=oÏ;öÐW iòø>yóÊËW*¾¨ ñ?F9WaSÂy <.Ë}xé^€… +€ @ØŸ@XĤ_N„¯K„³»88«õð>ç„Fˆ·Y#”ïˆ*XC\Fö!|©BZð@¼ˆ:g kƒxPu¢_˜B2ûÙ¿ €m;vNà’ã8‹—¸øÃËŽS:ßtŽô +ô9’(òù¼•/OçlËÊçs‰\a¦03Ó +€9Ñ (2…B¡)€xoÇÁŽŽŽÞxï7 +ãÂôÆ]83P‡À·74\ ¨=Z*à„M¡4ѨœA"|!ÏpÇ!Ž€„gàPrýÚˆ‰QF×D:˜H¥R=jÊÃÙõÁ‹FܦKBÅ|¯ïÊw@°»ŽÒ™empkBÀLæ´ +«ë7?€ð÷þÍÂ:ƛ˦Øï„÷¿ÚÖÖ¦üV|¸O~‹ÇãñáÑ?¹zMÜÿ·ïÜù‡Ï>ûì³ÿñóŸoÿãÏïßÿüÞ½ííÏ~&K‚¶––®]î+ +ýý_€æÕûhæJöJ¥ê3Êcœry)×)ç¬Î˜¨ÿ岌–‹8}]X¦pD쀷Äx=hÊ0áìê¡9FSû#QoçuΩxzX§çû•ÍʾiÀ°¨@ü(üˆF¬2ú ⽃ÈûYCÞHà"Â`YûÀ>Þ±§- €ËŽãˆÿ”šOs  X(XyË*Z‰þ¤]̇(äf’ÉœœË:77 Šˆ,@¬=ïííéøÆÅÄ] q&̨Bœvªª¦¥€Ž„AO§¢A!„\A¨0i@ŒI& wC¹oN DXN3+#„ Ì@8@*¥u«L㌮ ¶«M 02¥G³Ü!„¦z" йë( —õ °Ç85 „1ÄéIè7?€ÙìïáuŒÂK›&ïÿÌDW§Àðððp____<Þ~ô-ÑÿûÑG·ïüì>ûì³Ï~þóÿqïþýû÷ïÝ»·ýYÜZzçêìóÃù\î霸rr¿“;'Ok@¬½i&ØAQ Ør8óðÂ&¡”2FÎxPYõ]Æ‘–x(äeae¬^vÙ¬·(&\€@€qúçœ +ß^ú@Âh)cLÀ†<¨K·„1F ­®y”úH€±F]RPgã²P9t|¤²8«sÎFçõ é+‹‚‚<ò–õØö¼Ópçòeǹ¼OyúÈ‘§{Ÿî}:Qœ™É[V¾h%ús¶•Ï[Räfr9¹ }Xv±7æ;z{ãí/ö‰LB `™PGð= !œ2°ÚÕÝ366¡»0!èÖ&€¦iú+SÈ4á­¸ë»WÜ´xFA ¤ÀÑ^'s¤ !B}Lè@ëîÖ&Òh׫/¸ò…È£ƒT‹’ d–õ‰T+²8ƒÅ>i|:“Ô?€Ùìï-ÜÄ!ˆÂO™bÅÛ”9•ÝmJ[[›¢üV__<ïë‹÷õõÅã/Œ^}û¥ŸlmmÝþH€íû÷ïßßÙÙÙÙ¹ÿù½ííÏþAVl-½ûöìpŸPÅóöü¼“ëTpöªfRY¸²AeŒ„ò=ꋹ:—Eû¡a0&“éuÎ xÀ(gœŠ2;Q7(À…`èÄ•=Eœ2áì3á 1¹³))Ç„…ò€ °00Î!ŒøŸú¨@Ä tî)§a¿¤óI¨ðë"ÂP—_es†PÈ&YÉØþ˜³ÏÏ;V¢àœ·ÅPElÀÓGŽ<}¤÷é#ýGúÅ™‚•Ïç-+ÑŸ+æóy+—Ìf +‘Lær‰s-@GGÇ‘#G¾y¥´'Í©)$~e–Å~4XîêTµÐ…O)*Ò!„ÈD™e¼Ž3(´ñŒ•qÓ„1†™ëæ†pÂý®ªAˆ3•GÜ©)œ€àÄÄDJëéÑaÚD(„Î@¡1²nf2Ò˜1ÆXRˆš¢q‘@Ë:-AaFx*iÿë ûGalâLal"}BUÚº”ÎNEù­÷Åûâñ¾øo÷Å_½zíÝ¥ŸlmmmÝùÙgÿc{{{ûþývv>¿ïÞç?ÿìg¡Xº6;Ü×gYÖ`Î.Ùö¼“|úk`oÞŒn^q+„ˆé¢‡rÆB«ɳº¼;EN]zÏœ²Ð®&¢ê²¶—ŒqFX@ÅF¤GO‰0hJDð2&Ýþ€ÕYFa70VŸ+89B ¬Fk›žÏßÇþw© `2ZÆ=9ç,8 ('œTð…¾ñÚ›Ò +¡V✄ñ_ Ÿ³,{~Þ±†Î‰ÕÍŽã\vöQOé}ºÿÈ‘þþþ–UL æ‹ù|ÞšÉ  ºÿ#X ` :âñÞŽŽöol\0°Ï962ò£ß8vôØÈÉ´qòdúèÑ£éåÐáÇûh:}r<}8v蹣ϥŸùN:=žN§Ÿ;ztddàØÀ±£#Ï=zt``äèHú{†1>>0ðcéÃÊ·Óé£éïœz¤ÓéñçŽ=62002ò‘£#écÏ Œ„gè‚Ýš(+‡pYŸh‘YOKd28!„zVØ?BèB(ƒdGĦ‰ô‰nEiëT”ÎNå·~»¯¯¯¯¯ox¸o¸/þÂìÕ·ßYÚÚúèöGw~öÙöÏ·~ÿþÎ΃/Ü¿ÿçŸÝ¹Þzaxxnnnðœ]²íùK‰G ôý©˜_yyÅódo'Ò>8ãuð:cuÆëHœË‚zpiÖ‘šæT–ײ(ÍP—ù5^g"RÀH]Ñh§øÐzX!P—î8ã"C/]wÙ®+§ú²Y9ÌÖSou˜HôsÆÄ§`,` 8Vgœr™‚”!ÍHàpµ5ÜÎ9'¤Xœ³æ¬bqNöꉩI¶=?ïX‰œS²í¹ {æ$Dˆ6œ'Š…ÂŒ•Ï[Vb0oåC`&tM˜³,BÁ²çšÐï8Øñ­öÇOMízækº7GÊøÆYáËxÁ= ñK@QT è:ø´ µBèºc„߃îÆ#wÊÍ`lºSËÙ•hƒ²(+pG\žÕÀäÆ8›uG\ _‚b ©*pE'/Â.ÂxÊ\6Ý[é)hÈ…>Ùl6›…ú‹º €ÚÝÖ»4@‹Èb©0ÎdÂ? í"„2a”Á!lšS6)wv*¿%¶„ô‰HÀ‰Ù·Þ¾¶´µõÑGw~öÙö?JùÿàÁ/<nÀýûÛw¶Dжí\Á¾$pnß@{c.¸xÛsGRYX©ø>%”ÎÅ6\Ôí°:Wµh—åAÀ819QJS¯SQ(¬O˜/§Œ„Ntð¨,0¨Ë`œ,ò Xsf>Uxâ!u.óôŒsQ  ¬3`œ3Ÿy›žO÷@½Þòk*óüýO ëZ ·f,+1dYù¼eE#Ár¹D"™L$Í.À~ˆwôÆ;~«ýàcë „1Þõfb<55!„“†!Œ B 4EyJÕ~ð„°;¦¤Ä>„ BÆr!!d"ˆÍ)ŒñzB,Ÿ„ÆŸi­;̓ö‹©ž®.M”q „‰iNa¼œF0 a€ÅÉf¡®ë)MQTUÕÄýo44N£e½%€ L*¨CwÝÿ‰Ó™&S;å*"E©¾æóÂìÕkï,mmmݾó³Ï¶·ÿñç÷wvüâÁƒ<üâ‹_Þß¹û³;ݾ½µõwK×Þ:1<,ªDæmû’“è/„gÚˆí`••U¯ê3Ê(‰*a眆ף¬$<¥µ¡sÍd­\=ˆoŒ×y² .ì*LéE~¹È)ªò&ÚD¿àå$ôÁiÀ)cœ±:•a:&+ñ+¥lw ¨ïG"+Š^½*ö„ŸDM‰œ +ÿDümqÿ !¤RÙ3óP’à¼c æJNɶç¥ü¿ü(„ +`ffƲƒÂ«˜iÌÜv+Dô?Þñxg06Í©–7lšxj +OÄñ&!€@ø’a`VÛV»5€îB¨* +Ó˜~#‰’Zü*šBhÊDS&v]Ý“ÆKxÀи24M/Bñ4 "´Tª»Ks èÈ„™›È41ž„Ã0Âp¿jÊEãþwkØJ€—!LŒñé Êd Ðõ†ýËû!á”zW›"?•Ú€³Wß‘!€Ï¶··ÿñþÎÎ/¾xðàÁƒ‡~!CÛwïÈÀ['†‡çç%ì û Ö͌ɾÀ}‚€µ•ժϣœ +§_ ÌâõºTáŒÉ¦9ÙÍ/ô:‹²táMÊêœ×£l^8†#±Å  ÌÖYÀÅ”/)üeTš¢ü¼‘þÝœ±zÀ¥Õj¥êêïúR‚pƯ“@ˆÊÀ…Ð.uN‚°ò€q°(þIÂeípÃý'„T*•†ÉG?ˆÙ©Na(7¿èÌÛó" \€ôï@a&o ‰àBä¥ì–B átyÌÓ€æÞãš»(íV6&!€4`ú»ê“Šªj)-€{jTˆ¦pb„_5ñ¸‹ Ä!l^7M„LÓÅ" ²xÙqMS5!4€3#BŒt0Æz:{ô´&BèsÙ¼î"ÓÌŒ‹u®FT§Œq6 ³ªªª><›ÐðšÁPTd3!Ð3ûÙ?ÆÐ0 j,‹Å@*%0<Ü7Ü×7Ü7<<Ü7|böê;KK[··nßùlûÿñç÷w¾øâÁƒ!œ2:¥§ÆÀXO§jBh"$jsä Ñ'ÃÎa6»® ¡¡)‡ã!š4N£rK§‘¨%ÎìçÿKûÏ5Œ,Tå’J… yg¸ÀGݹûÙööý¼ÿÅÎÎ/~ñÅ¿üåÎÎý{ÿM¦®½õÂðp©4?'GOþ: ÀÞ$ñn¬zU¡2ä/rç\,ÓKuD=`Ë”-‘5ä´ÆëRG3ND³}ÀÑ÷€A@#<¨‹‹—oôÞñºA‰VÎ댬Π“ÕÁ²q‡ŸT+ùu}, uYŒ*D€² ôI‚ bÐçì&”±€·ÊÿJ¥RY‘õ¹vôãœûY²­sŽí8—C °è4; ýƒýá÷d±P˜™±f,k(aås3V>—Ìår¹™F €Ý€b1¸££ãÈ‘ùøº{ް‡Ѹ3 'ebЀhJ§Ú“J6&´]:šÂ´üÊe„ į WL„2B ÂeÉ@Äux¤¤€B8 &ú 4MM¥zRBÑ¿5›^3°<Ò(F +Gú LaŒ@÷Sÿ—}5,·”9((!Ðaÿß1~4a‚Nµ§Gëé©Hé ÕQ´õÑ;w··ïÝ¿¿óÅ΃Òøå_|ñËûŸßû´Ž=gYó¶m—r@l7ü݇êÚ†G|±(5ffð@4à‰Ü@=¬Ùòºôá©ØºÇYkæíÄ0QÈ d@¿‘&‘½pÎ`T³Ç¸ÐCE/.‹²â³” )O¨ïU}BÙW@\áœ×Ãܾtc‚¨Æ/*ä%¢2˜2NXdÿ¬!ÿ+••••9Q¡;׺¡T*s‰œ]r./Êûÿ‡‹vsµ@¿ >Ø?(²33–•Ìågr3V!V7@¤笹0`#ÐÞÑñ˜‡öÌ dޏQU°¡¬ !xVUµ”¦0Q†8ÕÖ¥g„ 울eL„iŠ¥ÜÈùø—0„„!tÐT @QA<…D h)=ƒ ‰`œ°ÐrZ<$šñˆñ«MM ˜f÷Sûi”n-Œ Ô›êZîÿ`·ªic)aý© }B±bÀGwþ~{{ûþýû;¾xøðÿ|ðàáÇùË/¾ØùåÎçÛŸÞ¹óÑÖR¤BÌç£f›K#þ¸7@ª«žO©¬¢LøÊâš *8àu^§œSÜ Dd­0Ð:ê„1Îi /RÆg”É2~ÊDñŸÐ×< ‘Å %îéa²A|JF«3*4ªx%¾W£>ñ[s¾Oü@" j?ÅE/Ý"#‘aÆSôá831)…ó€7ÉÿÈþWhtýϵ 08Øÿtn~Þq#Õgž;w®Ð@"Q,ÌÌX33ùËšÉçf¬™\")J€ö(€¹9K ,,«¹à±À©ÝB˜Åãˆá$„Ùòú­Êg!΀1µ{Ƨ×] tQ* àšÙ2Æ®t¦!ĺ† `ÐÅë·–1Æ@S¸œYXÁe×€¦ª—³»ˆ Æ“bœ½žpNf±[ž‚á©)d"üŠišfƒ­ y.˜ÈÊÅýõ?Ä¡±M›HMLèº>¡ë/"„v`iikë¶À?ÞßyðàÁÃ/<øe€ûŸorWLx§€ó¶mÏ'‡¢,MKšÀ#àÓê ß—“¸yj—Ù²º úq `áÅð@NÙF&nú DÍPúñ$4ÌÃ`¡h$d 'Ÿ1ÎHÀh ?™œ …QK(8d„PB+^…¿õö¿AˆO|¿Að  \¦"£} ²Ì¯^gœq"‹eú? Œ‹ûŸË2¯RÙ¨TVVVeö¾ç|©084ØŸ³Ï;΢sÙ¹ì\víD²éHëO&‰dÑš±¬\.ŸËçòùÜŒ5“LH °+Pœ››³æ"„iÀöoöÜÿfcYl@Œ¡‘Åx}äåu oaŒ1€àtZMc ßÃX‹uìâe3b|zùúrc „Ô> +10²ƒIŒÆ®ábˆ1š–ؼ…!Äå÷ÊS⬠Æ'4UÐ-»Ë.Æ/C˜…8{2¡!~…qù¤8a ÀD&BS¦išæWiÙ,í@aÿ¡T*•KSú‹ú‹²òxÞYZ!@á|øðÁÃÏïÝÛ‰À¥wÞ:1<|Þ —ñ]*$ìPÄbQ÷{{{{ûÁp(P,{T  F|J匰ºÃp*˃Ðç¡ô·w -L404÷…Â!à4,¨óº°-!—iEˆ"~"ÙÂiX®! +"õpÊ)õýšÏ#»pÃ'„ *Š( ›•Ö&Î)#²@¬¢¬©êÉ%‚bˆÀ.û§’çk(1ÔŸ;_ +@ Ñr’É\2—Èå’ÉdÑ*­™\>W0”ܘ››³íb3¬#C ýtêÄi`ˆº€ „šB͵{ @€  Æôhj!1f !¨Á}f fAšÚ©LhÚ¡>tÒ8 µ ¨ëH~^aÖ0 1ÄBè.à…¼6š!ü +ššzE0ìÑ7q«Á™L¸ßýR)011¡ë:º,gB½ú*zÅÜíüÝÖÖÖ¿ßÞþüþÎÎÎÃ|ùå—_~ùðáƒ/|±³óO÷þûööÝ;·Ã4 pæææ¬¹9knnN$ýˆö‚ì¯(ñÖ¼©ùŒSP"õ>gŒPJXÀ8•Õúáhmq‡3þãQü¢ë\r@nþv(çm‹qB¢×˜¢ê0Ê-Š, •†L®ñ 8e«ŒQÂ)¡´Zõ)mU««+7n¬ø>!> ‚€ÖITÑ$œÉÈ&ã, Ò•a¤Ö1³Håðp„§”âGöOe”}ý¹ó¥‹‹áÞÄ_Ê5»¹¦S´ +¶P3ù™¯À\«°ú…¶ëhooÿ*€ tÓ€Â2Äâ!D¡›hz§Úݣɉá=J§˜>¡ë:Ô¡®ë@‡`B‡p €q u¨0€@:ÒTEý¶>‘Ó2:ÔåìqMÓMU»ÇÐe¾Á ÄØØ…0 Ëg1Î"„Q!hša™¶|ÅœBx¯À­Èd2îgÿÂúÅëÁ§äÝÿÊ+¯¼òŠ9µ ?ÙÚº}çîö½Ïw¤xððÁƒ_ ðéÝ»··¶–Þž=1<ìØ¶ØGeÏÏ$¢Æ´ƒ±ƒcÒøð©·Vñ ¥Œ‰þZáo3ê"¦ùsÙÿ®ÖŒºjXx·ÖÃÝ<„4Âë]¼_ £á€°›q0Z—Åxrêˆ,ÙUÿ‚%AÀHÖ|ß'„’V¬º7VVV|Ÿø¢¦˜’0ÊÈ~ Ù,AŠì"åuáìs„³Ë)i±ÿÊÊÊÊJMŽ@}” ` O æÎ—D àÇùS'7ÝtfšN1Ÿ/Z3rðW¹sss¶%v +Ëj?(\€ö޹è±Úç˜i¹Ic³Ç0DCdšPSc1±µGÓRš6¦ic¨¥Rê:Ô'ä`]ŸÐ@è@×!`< Eð2J)Š6'ô1u èz +hbæ¿v8Õ£*mZJ:!ˆ]lLJ†Æºd(àÅ&ÂÌW^}Õ4÷ÄvE3o†ý‘ý ëq„CŒuÓüýWÑ«¯ óÕW§ÌW–÷oß¾óÙö½Ïïï|ñ‹üŸ_þêá—_þêჿØù§ûKï¾=ûüð°cÛVѲ/Øö|.aYEÑ£ö€øþjÅ'5J %Œ2”GõýZSêŸE²¨ôeuÆhÕiÀêŒsÂêa‘‘h¼& +x0^gœ†ƒÀ© Š\ ‹ƒ€K °€3æù>¡Äç=%\¨ßóñ[*WWWWÝ•••„Ÿr“½M«#¯&¨sÑ'Ìd_ åuÈqe2üç7ÛXbøh0˜;_E?t.;‹Nî™èô÷7ÙÞÊçm€ÜL³HîSÔ@®`%;Ú1€øc=hŸvàÉIcÄ0 ÀYÃ0ŒìÑì¸1iÀSPÓž;‹RE9|øp´¤KiMÓÒš6~n@W:xNK§¦=§=§ hšD)Ñáõ°ª ¨ßVUõ©C=ŠÒ‹)ª:NŸÿ\(é|ùðÁƒ;Ÿß¿ïÓOîÞ½½µ´tuöùáá’=o­¢mÛ—r «h͋Ź_€½1ß_óª„úrþ†¬Ô÷óolPíeáPQÜÜöÇÅ`O&ûnÂÖ!1ãS˜#<ˆ²ð²yXRÊ8Îa<]76¼¶ºI£&1¯”1B!~­æ·¦®¬¬Ü¸±FuŒ1*Ì=ÚÈDÏ GŠºœ0F‰¬@£Î|ß÷½JåJhÿTvc%‰¡&8΢“kªþkÀŒ•·l+—Ë[¹ÜÌLn&ŸË%’3‰½˜³ç,Ë:—Û€#GŽôéx| Ö÷ž…‘òúú7?X_w—Ý÷]Œñ­÷ÿËû7ˇ5µ'ÖÖÙ¥têÝÊ³šªªŠ¦©=©1 B0¡Ž¥5¨ ÔŒˆMŒ!º®O@ ¼¤—MSÐ SSš¦˜ÒTUªªUSÕ.åÀ%¦i„™ü>v× £ü×7?¸yëýe×t×ÿ*´ä©©©)Œ]cÓ41jf€‰[5@9 +âÓ”zhÿHÚ +è/‚¦„B€MÓ\6Msyyy¹¼üË»³[[·ïnoß»ÿùÎÎÎÇ<üòW¿úÕ¯~õðá/îÜÿüó{ÛÒ¸:û|_ß¼=?'—…çrEÙ¦VܱG*ŸZ¥âÕX-êæ”’šçsRñªÂ¹hYX‰faÆ¥.†õ²¶Ž³€×I4˜(ê«C¹˜ÔÃÖ …­²zÇ÷7kŒTj”ø"ùÀ„°§”jÕ÷½f@j€+Wnܸ±á"¶ Ê©eœuæ3åÒ11PDë¢ÍAdý‚zÀ9aœR«zâú÷öÏ:ÅèØçÏ;Vbhh¨P*9—/‹Rà ‹N¡Qû3Ø +€7­¢5“Ë[3¹™™\>ŸKE `5 æär…B¢½óPàý02‚1^6ÍW1Â&‚˜Áæ_Üüßß?¬õtÅÚ”.US´o«r#`W§¢tvuvªŠzXvÑu«Ý=Ú³@íI¥´žž¹`´»»g,5ñm±J¸­«KQEÕ´nUÓºµžîžî®Î¶˜rhLÕNá©òw ñB0BØlÌíÀøÕ),Z1Æ#Œ›Ф Û€hÀþ?!ЛŒ_Œ)B"!BËËËå¿XÆã=¸}ûΧÛ÷îÿ“(þòË_ýêW_~ùåÇ¿|°sÿÞ½m¡š`YŹ9ÛÎåì°A]$ÿÛÛÛÆÚ›Wí«j¾Oj•ŠGñ¥ œ3Z½²É#¢E€SN8²×icÓ–Ì2Fh¨Ýë4ˆ–…È?4ÌR ˆ*AÆëŒÊ¾A9e õ€sâSʽ…5¦ó(«»)!^•ZÓ„nÀ•+7n¬zÄ'ŒQÆ)åDÔÕ™ŒR¹ Œó‡.gaœˆÚF.†ø•͵ÈþÃ9Æœ1»(Ú€°Ï;ÖÐÐÐàL)lºì\¸|¹08Ø@@dýߟ)Zù¢•™À¦@H€¬†:Úc±XL”wôyŒ‡ï7¤<Ž16ÝWBH4Ð#sù/ÿ˜€©.µGK£št€‰‰ Mmÿj(±X,và@Û¥MQcñn¥KQ»Ô®N¥MQå€ÒÖÖÕÕ;pà@L9 v+¢ËxÒµUUºE:ôªif]1rM!Uñ,c|:‹1ÎNpÒ€#ü +~Elòi ¡BˆFÜ|ÿgZ_×áËYÑy<>š*#öQw¶EpçþêW¿úÕ—_þêWعÿó{ÛÛwï~üáí¥¥·gŸïë°,Û.æfdjÑn%@³ˆ=¤J*‘…€ŒsÂ8#5¼+4 Ò.™†cë²fPîÚ‹AX˜4§w!úÃLå\“eÁŒrFx8pÉzãh¥7¡œy +ž_©…YÂ9'ŒPêWª„6‡ê‚Œ­®ºWn¬U©O£< ¢0t+äÊAJêõ .·Ñ ¬wªT4ARJ a¤æm®,4Û?ö/$Àn؉Á¡þÜùóÎâ¢`°éÌ|¦X,-K Ÿ1±<7”˜ §…uû ½€xG<ŒcûôÞ4LœAˆñ’÷.2ßtGàK)µ«;•Ò€&£ýBu8&&ÊÔ:jb “pe ÔEÓ¿i¢—2„PÏ ]äG ¤4UQŽB`Qù–YÆ.†BlN5F…^¿þo—ß¿îºÂ@GF¾72222‚ð+¯ ôJÄ€H4OMñ¿†ÏÿéÓY×u]Œ¦L3²~4 ÁlÝÙ¾·³³óÅÎ΃¾”øòWìÜÿùöö§w?þðÃÛ²@`βm;gEѨ}@€} +|Ïó}B¥œrN¹O¡õÚ*!~µJX#†Î‚:mó"9Ç^ç‘]"’òœóz],$ÃBy”z>%µ•MŸø5BåFÊ çÄ'ÄÛÜØlr8¯×ëuN)åþìU¯Z£ÑLÀ:‚ *`\½J„‡ƒÇ‚F¡0#œQJ8óªÞÆ•›^˜ÿ ¢©åû 7˜èÏ—…€‹Žc;‹öPc)øPÑ*­–k 7õ$“‘ý'¿RË*†˜Ù£ßÕ€û`Ýp1†"ÓDŒ!D›ÿvƒ`LéTÇR „ãbRœ’4‡Ù£bd¦×Mþ-Îd2bs*ƒ0‚aó÷ÿf]ˆÅÌ·lb(F A]‡hª¢ œÎKCŒ»`še±mbÓDPVB(ƒMÓ41ɽWCŒ h¸§išf€¥øÏ „>?„¡ñgݹ®›É „¦0Ê@aýè`W7àÖÖí;wïÝû§_ìì|ùå—RloooßýøÃÿfkéÚ[/ô _º`[–UÚ?ªÙ€F3àÁýƒø5Ï#DŽÔ§Ñ@hßåì?À§~Å'>!rãįñêê&ñ !œ2B‰¬Üa\ô KgžÉZŸ ˆ¶ðÕYØQË£œÈ!„sÂD .ã¼Î(#Œ×ëœËj]*ƒna+c”JõˆïoxÔ÷ÅÀrF('„êûµ+é+~Xàûò1õ:ç¬reas£êBÅæÉ%9Ù”í@wî¾½ýé§ŸÜýP t,˶ìùG %°_)°ïyÕš/2~„qÆhÕç¤âù„Ôj²OXì÷£uÎh8Å5­ä$ú})(¡ŒPâêûbñ ãŒû\ö‰mÃ< œb0—½ºAPB9£Ÿ0J¼õ=Æ8¡„PNˆï{UW[ØôkòÈØ"å,àwåÊšç hÈß Ì. +/†ˆV#J¸˜üEe…€ôDê“ø¾·yca‡¥Åþ÷#ÀyÇøa¤.·À*‹–ôç%fBÌä’‰¤Ø Ô°ZP(šê¾A^Þ{²ðe\†„ŽC¾l Wð1ü]Uý¶‹Åbm”.%¦(ŠÒÖÖ;ðp !NC¼4Ë5ÒàEÑÒNÓÒ0ÐÀ¤A¦³Š Ã1Ey2S”X[[—ÒÖv S5U{ º Ùlve ›Å¸ !„/Oއ¦dHßE0®òËdà© :u +¿:2222r"Œ `I€ –[ÿP—³§3‘ñg÷¿ÞT(ûöLÚº}÷®hÚÙÙÙyøðáƒ_>øâ‹/¾ØÙ¹¿½ýé'Ÿˆ,Àµ÷õ]¸pÁ’NÀ¯À£\Ÿ!Ä 0Ƙ_#„ú>eÌߨˆÜ{4œ‡ŠîZ) r‚–,¤2wG£„úÄ÷½šïû51VG¬ Ç pÂN£bð/ ç€Ê­$”°€ˆ:@J ©ø\ùb„âSR¹¡]ñ¼( _eœ3oáÊÚšW­…¡K‰$1r”ÔBåâ:!œó€È8F8)ˆÊb#ŸøÞÊÂ&åb€9û5(]ËÁ/;Žc;?\,4bÞ´ +b X.)cÉD2×€d2™,ÎçöÀÁh,ðc€…½BˆÀ€€I h@x~W©ž¶¶®.UUºTô¨j—ªvu©Z¦i)¨j=ªÚ­vu©ªªjjg—®@Q:UUUEÕTU¿Ú­©cZ§Ò©ªŠÚ­ªªÒÕ×@Jç³ÛD€p2 ÙÀx +G­Ê0 +üe2§Ne:…›d@c (…r·€þ¨Åøu]×uu‘) _êáÝXÚº}Wv‰8À_üò‹_ì<øÅÎýûÛŸ}òÉ'ŸÜýðöÖÒµ÷Ù¶mÙE˲­9»ø5PÝ}üjÕójDŠlŸQîW|N}ŸV[«PV£DÈsG§â®§rÓ6ç„TØs¸SƒøµjÕój¾ïSZ¹±±¹Qõ©Ï8!L8rMWÔO,­_ €ˆe<Œ‘ÕMŸJ|^Ûô¡ŒÂ!¤Füª·’^¨U£@<Ê6Öi%»°êÕj¢hHÚnc(¸,5buÔ m,;ŠºY1F(õ‰ïUÖ^^%uÅ_ €yÇ’…@޳¸xyѹd_Z\l yÿEËzÓ*œÛ€dRˆÈþ“V8 +d¾¡ó ,Gæ!ba3PëTº»{zTMÓžÒºµžnUëÖ4-•ÚØXÚÓ£ªªªv«ªªvvv*]]]Š¢¨ªª<¥tª@UUm,5–Ji©m j:ÐTUëéîëéQÕ®®C@×DNBˆ28ƒ¡XL®ËÅÇžC 1iô4lTfB0sêå(€±@€@¶qN7•·^ýéï¦ÁDhûÚáÇǛӀwî~º}oggç¿éÀ/¾øÅÎÎÎÎýííÏî~òÉÇÞÞÚZº6;Ü7\,ÚÖì÷-«hÍ5Íž ×w´ÇÚÛã» ° à{^­V%TØ­Õ˜X»ã¯mRBh8z‹3NF9 s‡)=é#bÒ.!~­ºycåå Â8¡›ÐÈ®¬U™KH4—Z¶\ î߀ø‘#ñ#ß$„Ã÷ĸ? Ã0 !ÐM võŒ‰‘¹&BˆN>0–0‘JékZ·èÒzÄ]¯jªªMÓRˆÞa xE×e7 ¦u÷¨]q=!‚xa|ó–+Q& + ét:N=zô(D§$„?€1ÄðTB `ü]€1BÙÓ‘ù£Ý7?„:Ôµ±tzì»i ªŠ¢(‡ÕÇþׇŽ7öŒ^}ûw>Ù¾÷ùÿ[J€û;;÷¶··ïÞýðßnmýäÝ«³Ã}}¶-ÝÉp¼eY–ÕÑÞ.¾·ÇöÚ¬¶çø¾çU}RJ¸Ocµ +¡"‰æ­U(ó}âsJiXþ#"…”PÖýs™9g”ßÛ¬ÔüÍÊÚeŒøµ7n¬Uj¾_Õ¹”S&„¢ÌˆQq¯sF9÷¥»@)aþš¨PôYmÓc•ƒ@½êжÐHF«Ž)cÜ[pW7Ū#ð€²PŒù‘ë BÂUg,»d}£”‘!Þšˆ¾›t?؉¡¡¼ã\^¼|yÑqœK.9‹v駱\<“ËY  e@Òš³¢$@¡F9ÀÞøã«²{O„‘0»— ÓBˆ€ÚÕ­¥&&t—30ÕØ(®CB]?…tÂô˜¦õhš¦MГ’F0 +{C„–á+40¦MëîîV”AeÌe—¯…M/D&íA*ú¤IBImm“pV£„U×*"Š@˜ÈRzž·òÜË ý˜ ¨õ@N%óVVÖª¾h"dT68ñ€ñ€pB‰D´Î£—) ™¾ä”0!Ön,¬‰¨eË1ñÊ+èUÒÐ4MK=•`€ïŽ!Ô¡>¡ë¡SA_A ƒ1&€¦öô¨ +B™ „xyyÙtbh@ ÄBQ”Sb±±˜Ò©v)Rf¨ªxttLÓÍQÇ8Š¢F7@&“QÜ}B6}ûè·¿}ôèÑo» ?~ûÝ¥¥¥­­î~¶½}ïÞ½{÷î}~ÿþýÚÙ¹ïÞ§ŸÜ½{÷Ã?¼½µµõÎÕÑáá¾ýîËêèhw´wtì“ÜÕJmëú5Rc”QÊ(õ6<¡”Ô6+”ø5B¥5‰Î]ˆ#"zG8¥bt>õ) ©UÖ®lT*µ*ñ %Uâ“Zu³F«› œ3Ÿ2&*…#Œˆ_ŒÊ‚dJõ©ï¯mú>c„P³B©x?F õ)ñ++ã ÕZS+ ¥Tnû𮬬y5ß/+ Ø´LN +¬‹±gœcŒ9>Œ1F(!Ô¯U6W6h8Àô×ÀvЉÁAK´8—ç‚-à„È äCÈU‘h´Zv«íߌ©À'Ožo}7ƳYŒoºË—]Œq6‹1þ7å[eŒ'TUÕÆÂ8Íë/Ãlº§Åø®W—1v1Æè:iMˆ4¾ ³îDö%èÂìú-7›…Bœ1]׿ï_G²PÓ´nõði³lblºf¹ él»e·ŒÝ2v]!ìîéQ”¶¶¶6EÕnñ¦7ÿ«¯¾úê«fó¤S…؈ D‘ùÏ@˜É!Äøhxv+€¿ûÉÖí;wÿÛß*ðùÎÎçÿ´³³sïÞögŸ}v÷ÎÇÞÞúÉR3òV>ß €xG<Þ!¼ÿöööø×n®U=ⓚ ÞW+õ}J(­­mRê×Da<å„rN¡Œ&¦uR™ß“Y@F}B*k Ïixec³Vó=osmsu%»FhÕ¯B)ó)gÜ'LºýœâËÒJŸÅ÷}î¯UeŒPZ[«T}ʉ@¡Ì¯U®h ^D±¦]§,¨¬\ñ|B“’¾zX{$;ƒ—̧¢=Xâ‚”ù”0Ró6V6cÛS?¹¬äà µxY–ì€ã8–õ}K¼Y–eÉE€¹ÐÈå’ÉÖÅ I‘´íp?ø9Q xP”Åãñxü1vÜ=çŠkd]˜Íf'¡‘50¾éâIoaý&Æ¢Np”Ë7—!ÎB˜u!ÀÐÍbì¾ïBO/`œÍÂç /Æ8ÀpñihàuèÞ*gÝòú{ã²k»~s¹Œ!~ žÐÒ‡´ŒëÞr1ΖÊ+ a6›5²4 v]×AFW|VU»ŸÓÔfëÆoš­sŽ1|!(K„Z!AbQús +‰~£L8Jprˆ àÒÖí;wïÞýä“÷>¿'Æn&ZþnéÝ·g‡û†C“ÏåóV>ê5·wÄãííRìöª{ °±Q©ú¾ïù”F ñ*!B)©­nRR#„"âo„F}&âk”_\ÞLVòŸâUV_Vž»²¶YñªžW©TÖV×^¾áy^­Z«QêÓhªc\¬ø¥”JaT$ú”T)«®oб_¤²V©â3JiÔjÄ÷½Êíå +ñä‰Z§Ü»rcë*2 +ì1–{DSrÉ}ebµQ J’©ˆPJ(£”¿RY}y“î“Ø·ȱƒCs‹Âþ/;÷ X”‰€b±hY33ù™¤ À›¹& ‘H$’–ºÍ8ØPñx¼£÷µŸ,Cø’  ÑòÂޏc¬«jÏX +]4Öˆv§¡‹1Z†&2ÿ#‚BœMl"¤ÃìT£°šAôœ‰ #<Æ@jLSM ›È\žzÿzB„Ý‘²ÜO á,«Ýꘈ/jª¦ªÏ5YÿþÆ@gL!]‡Q` 2At +žÂžu‚0ƒ Ì@Ã0ŒÝøñÕwÞYZÚÚºsçÎÝ»ŸÜýt{ûÞö½{Ÿ.¼O?ûlû¿ÝýøãÛ·—––ÞÈçó–eY¹?Ì[V><ñööx¼=ÞÞñõ@Õ¯¬­y¢¨Îg„pZÛô(ñk>%ÞÚ&%>¡>‘ãø}!Ñ™¨`¾ÈÍF™O)%>õ‰ïm¬Œž\­z¾Oˆ0ÑÍÍÊæÚ¦O(!Œøâ1F|¡÷å82J%„2ÆH­FYuu³F©ùÄ[­TÅü¯(o±qå9ØTë"„ðê•+›>!5B v²•ÑÐÔyÀxðz  @äÈ @²Í÷ýZåÆÂ†¨svG(€¡â¢#0¿W‹2P,Zù™aôùd2ŸËçEFp— Žz—!€Ü¹ÂÌP{ìàÁÐ8räÈ‘ÇY!Ì6Þ²YˆÆ± ¸“¦èÄXt©=cà„À€ á{ØÄ7—±¹lʼqaûicB„L$GûAEá2#æïgD`Œ0Ö£š@æMÓ¼¹¼Œ!Är=4PÎÿZ·¦iZOÃú÷3~ÓÅ€‘,†P¬ÒáËMÅÂÍȈ)ƒèÌ Æ7×Ožùô“O>ùäÓí{÷îý÷ÿ¾ýé'ŸÝ½{÷îÝoo---]»:;çóù7óù|>™Ï[VþMqòía|¸=Ö߀=u@µª·¶QÖêSB(©mz„V}â“Õšïב­5Ô÷}F%ħ”1Ê|_þ«RJ|BI­FÖ^N;[ñˆ_#¾_­zž¿¹¶VÙ\Ù¨ Êø>%Œ2Â!Œù>­ŸÊ_ñ3Bj^•x«›%UϯUÖ*âuZ£>©ÕªÞæ ¼âU÷€qÊk//¬Vª„Ša áÍ/Æ|Ð:£˜qN +–„œ1ÂÆó‰_«n®,¬‰PÇîE„ûÆ’ƒCö¢³¸è8—§tá‚í,:—§%`“ˇH$BìÉD'@îÜPGìàÁ°øÈ‘#½1öI“8L¹A¥íŽ˜0“)EíI¥&&—‘t ÄÃ26Ñò²ib4æEÐn@Ò€a~!„0‚™c¦‰ ú‹:HÒ´ChyÙ\6M×!ÄÇÂb@‘iš¦9 ÄŽMÓ´¯ºùÅì0`Œ@œ¦Ž6Ð3Q¥Ð^w!x*ê€ðÖúúºa'O}Òüû†Gg¯^{giéï¶îܹ#œ€O>ùä“O?ÝÞÞþïŸ~úÉ'wïܹsûÃÛ[[·´tííÙá¾¾™\îÍü›oæ’É7#ûóÍöŽx‡ˆ|-Pó¼µµM¯êת>ñ(¡~Íój¾ï‘šï­U|RókD¸ì”âS¿æ×˜˜ÂÇDý0ñ ©ù~2âûž·±0®f+>!5ßó©zµêZµZÙÜð}âûħ(õÅhoŸÂ|Ÿz„ø~•VVEú°F*„x>%¾O|ß÷«ÞæêƆW­†.@x/SÆyÝ¿²²V!”Sæ()W< —Ñ ±ß”ÈÙæ"=Àä +BŸPB¼µ… J¢àç¯qìäà´½î9Á¶Åæ#´¿(”Hæro Yo† +`f¦ÉH4` Î冯¶·G #~䛀p¥0 €CÂËXëêêÑR@×aZšTF´ ãrvyÙ4ÍWÜ¿qkBÖ´´ì»ÀìŸ7–`ŒñÈ2‚H×'ÖÀD*¥¥!sÙ4Í)l"!<},|!bMˆ,ëéx¤€î1~(®þñ+c$‹3 œA§ÒûCgpøGî|ÿý÷× Ãèëîîî}ëêÛ×–––¶>ºóÑí&lúéÿô“OîÞ½ýѽ}{kikiéÝkoÏÇão&“É\îÍd"™Ì¿]ííñx¼££ýk=os}­âUªµZÕ¯Õñ«¯V«T ñ7olß«ù„ÞÝ>!5Ÿø„xò7)!¾ˆBj5Ï[Ããêä†Wõ=Ï÷<߯ժâmVüZ•øÄ'>!´FåLOJ %>¡ñ|¿æSñÇ~•øÞê†Gh­FHeµâ“šÏh•ø¾O¼Zecu³R©l†ˆ¯]¹²QÇA ·”2wÁ¡<`uÊÆ±5ˆŠ¡>%µjeíÊåŒó=›ˆ€„½èHÝþÂ…_є̿™0ˆNCÌYs–UÈ +ç†6)€Ç¼p?Œ¯‡$0¤ס°EMéêÑRè#Šòz1ÎOMa9À€Ø€/ i€Â—Ä>á°ÀP®ACÁH¥Æ´C™£hÂÀ±ëáf`C€a¤ÿgP†(c¶¦úDÓ‰1žšZÀâ“#Y !Dæ«!„t‘èËà Π—‘ÜD,úþûï¯7ýøêÛ×ÞYZÚÚÚº}û£ÿú±€8wïÞýøöí­­­­¥%éôÅŶ‰dr(™Ì7tc<ÞÑoïx„¨ì>žWY]]«xžçUkU¿êûµÍ*©U*U߯¬¬UkµšïSBªµõ}BIú´Jª„øÄ'Ô¯ùT0À'„ø5â×Ö^W'W+^Õ÷k~Í'„xâmnVkÕŠð­}J©U}Z#>¡Ä'>ñ|âס5ñ¬šG¼Õ ¿ê{•­®mÖ(©‘šO|Ÿ¯êmnlT*^eSÞ䵕•ͪïû>£ŒÕ9ã$ ´.Æ‹:à œRçŒËrÑÌ@dg3!”Ô¼jeu¥"& |M$ÏG^ÿ%Û¾°ß/­¢Õäffò‰þ¼@A”ÜÛ*Hä†Äê7±<ÞÑû +Ær¯,¶…/á1 ÃД.5•Búú„ sj*³1‚!bð–èñ«Àu ˜„ÙIÃBlb„ÓBÔu€–Òº…Õýf2  © +¤ÇÇå‘€±ÎÂBcqñO-`BÝÅ'G FÂuÀâ]‡œ9Ñéý!‰öÁðá}}ñx<Þן˜}ëík’[·o|÷¡î~üñ‡üñÇÿõÎÖßýÝ’8o¿5:Ü×—L&‡’ÉäPÿP2ý³j74ÀÞJÀ=جlÜXÝܬTªµjÍ«y~Í[óüZ¥R«U*îZÍ÷«µj­ê߯‰»Þ'¾'ñ¼ÍÕ—×Hðu@11˜tš0¿ N>?Óè œ™ÉÏärÑÌÌ4Oj —³[ ºtôvÄ{¿QYCÌò€–M¡ˆÁ„î€Ú­éº ¸ZÑ+ØD"ŒnF#”Aà †ðe‹ì>@&B0#ÀbCà"lšNC„t!„ Æ4­ûÐÌ„Áâ‘è…Ü”ãýàøø80àŠû?ãFdüJãÇ Côqdÿ½ú*ÂÍ¥¿ACt:³#œÉÊYAYxß°¬Ýaö­«o_cÁ¶¶nßþðã?þøã»wÿ_Ÿ|üá‡~|ûöí-iþKï\}kt8OŠYSýýýCÉ¡hEG{{¼£#Rí¿•ÊêÂÍJÕ÷+^µZõ6×¼ZµR©Vª+ÕÚ¦çû~Ôü©¿Z­ùboͯUkUß«x>®¹Wõjžç¯Mj‡'ת5¿Jj¢'È[Ýô½+«ž_“µ;žW­‘ªW#¾¨®xÕZ­æ×j~­êûµšïW¼êæÊšWó½Z•l^Y­Tk^UH¯¶¹±zãF¥²} Q….£Œ{+«¿&J4ˆ¬Îkÿ.o¬;‘H,häü©TÖ6|*F~@îr€ {Às¹dã»@.Ÿìƒö`®€Äœeår…BA ½£½½#þØ7í-6ŒÑl³…¸Œ³» ð;®a` TUÌч ·ÖÉ»ÙÓåë××/›Íž†À0pyf ca‚´¦A á:ÆY¼pãåÉ““ü‘k@·Œ§0,|p C ` Ðá!³8k“®»Ž16ŽÁ,„†a¸YX6Ýl6›ÍŽ»îÊÊÑ—±È Bø’!­c,—Ál“ý£WL„Ñ©ñññqI8… }­@!1µ(Eó  + ÇO̾u5"Àí­ŸþôÃ?üðÃï~|7´ÿŸ,½#ε«?>Ñ‹…3½½Gzû™þÞðDþa{,ßS ¼ºû¬UÖðʵµŠW­Ö<¿Võ6×66¼ ¯Rñ6®¬Õ¼ŠçùUßó|߯Õ|¯V¹ƒZÕó}¿æ{Õ*ñkUß«Ô|¿âû¾·:9ðmc³R« +ë®Öüµµjeuu³âÕ¼ZÕ¯y¾çW«žç‘jÍ'¾_õª¾W«‘ZµZ«z~­æ{^¥²zeµâU¼ŠçU®¬nÖ¼ZÕ÷¼Zµâmnl®®ÜXóÖ*òˆ,Ü_䯬Vk5Ñ%Hµ¤"íÇ êrGXó“å?ìbŒœ2ʨO¼Êê• "} `%‡r‹áf`Ƕí Λ’—ÝÈK$óù|40—ØÛNZ¶À3ííb&èã<p?Pžr]×…8{ë–ëBŒ± á†FcM‡i&_r´ŒËÇ †.žr×Ýè®ëšn—GÞ+—ÍÓ¦ëºÍ€e×Äg×q6‹_6 ëºîÍ‘2Îf]·Œ]œÆÀÅbì^7!pM×Ååï-à[ëëØ-›®ëâ¬{ìƒ[eWLöZ¹~=›} âì{·®c!\À ØÄÂøu1}4ƒ]|r$‹O‰€ã«&ÂËÍâêÀBñ)”É@Ø ÷Geˆ1v××Q˜îëëë‹÷Åûúâ/ÌþøêUøÉÖO––~úÓÿüŸÿ³€Àßܾý7K?ÙZZzçwßyçk׮Ξè‹Ç{{{{{ãaÖ/'0ófn×D «`Éý¯€ƒQ%PoGGïcìì³#Œ§\ˆNƒ2F&61Žâƒ)µ€1±ÀÃWªl˜É`€ –È@„2 ¥a"›rn èïÍÀ ñBßKiÝj +c„qfC(ÂòS#„ FSxjjjj +Ï00rÝ?/ãÓå…01(‡|ë:ÄÊû_¤ýúÿp÷Ï[Yº(H‡"mÎ!kJWpDŸãR²me© ©U¦Ùt![l"K•£b³€Än§£_)Ñ%qõÀÌ´¬ƒˆ~éN£ÛÕ7æDTGŸ€…NUöÁ…º0È;Á‰¨nÌÞûm¿áO î_1à/)ӮYg'Sʤ$*Uåõío}k­o}ògJ½ž2³—DQì2ŸaàO ¯þʆW/^Ø“IïaïáÇ{¼_ûƒ÷>¨Õþ ö^íƒ +øå/ùËøûø‡ÿþÿý¿ü÷ÿò_þËù‡¿ÿûøû_þò—¿üåßþò—¿üÛ¿ù›¿þáµJ¥Z­V*åJ™Q¹Ml­V­Vªµ™7èâ nœÐ‘5Ç÷Ã0 +ý0¢Èý‰ê¸Žë:Ž)kŽëøaÅI%(‰ã8N"ÖÖ‡a”°€N‚(Ž“4¢(ŽWnmH~EI’DIFaà{Q`¹A…AÅaÆ~G)+ä'IäÇqGq„’(Œã( ý‰å¨=Ùõ<ßt\S6}?Ã$Š¢0ˆ‚ tLËsƒ @±yRš8^%š±¿Åª‘kB¦Ù5ÎòŠ`F(3dmÌÛ„f„c‚â8òMçsÈßçÆÞžñÕ"ŒÇO–>£³CÃáppgh âx± +p6Œ±±E +ð{ +ðH·•>„][Š¢ë:“¡¢ˆÜ;@Äâ¡A—]ßL +Ðuõ#Ûl€B]Wăû¢$)Š¢ëŸè + Š¢ðG( ¯è€¡ËQ„wEéPyxɶ‘À#] +„<Aáø_Xƒ*‡¬ùpîðXˆp¨(ú'Š!Tz½ÞÃþO‹,ˆ¢x uÉŸBøSõ™ªa_>þßž?øðáÃÞÃÞûµÚ¼_«ýA­Vûà£~öÙ—_þÍß|ù7óË_þò—ÿ÷¿üÛ¿ÿû¿ÿû¿ÿ‡¿ÿÛ<îóóå_öÃj•Jeå%P­U«•ê­pSðYµ\7ð¼ ü0ô=Ór-Çó=×4]Ç1?ŒÃ8NYkE¬Ë?Œ‚%AÌrõ Šã ôYØ}?ã(Ž“0ÃÀBßtC? +¢0ŽÃ(ˆÃ(ŠüØ¢ ‰¢8Š‚ Š‚¼ªE‘kBDZLÏ÷'žë9–ë»AG~gZïÏ~ˆù:B)²œ(AŒiF(f™À4wÿ¡Eó/Íf^fפØŒI†3¶â§ix0`>¨ßŸìî3 ài¾¨ée `8O +0œ¬Ô ÃGg#c<Ø]€Ò ¶^oð–Å@WWº®Û¿ØªýW>×ádreOìGP@(r›¢p &Ð{|$=ºº|ñ|r¤CûªkÛW/&Ï'¶í+ –ô+/.¯&¶ U8±'¿5ïIê:„ÒD’&¶ áØÏíK>— ýW/^|}u¥ëö¯^Ø—]Úöoæe¶Ú—#3·QT`%þE×óì¡×ë)J± €qA˜³€¾¢ôóÉá£ÿÆRöÖÎôÃ~öÙ—ýÙg_Îbýoÿöoþæogqÿå—_~ù7_þõ_öÃ>¨•J¥[€…}­V©Ôn€›€ïÊÀr]ß÷üÀ÷}×ôßüÀ÷Cß÷C§Ü ¢0Œâ0ˆ¢(ˆ¢$ +£ £(Šâ +à ŒÂÈ÷ã0ˆ¢ÀwU¡Þs]?ŒÂ0 +ƒ ×Ó ã +£( +Ã8"öEaÅqÆFaEqÅQ:ô‚0 £(ðCß÷<Ës/ ÂÐ ‚Àw-ͺòæP„%%S’%Ž%ˆ`Ì6Š2ã_š±­?4Ãù¶àëÙ‚À¢H³ g3o LQ¾é1G´oQxjìîfðøV8aúß s’On[û†1†'ÁÉ2œF£ñÈÿEƒíExÍ«WÁÕ꣫ *AUU¥&%¡$I²¤Úã8®%~¿ÛwLTø+ ªUUcC h¦ +í‰#Dé‚À¦ù$@Iú±$©šnC©'é'’üp$ Ú$ Jb·[mIU!€öäª T¡*©ª +Ô¶)I’$‰ Ï,‚ >È-‡Äl“¡³ÿàPQôØëõzJÿp‰‚П§8¹H?šüÇ|þüŸ—Þ|³T*UÞ|óÍ7k|ðÑøYqX´ÿÍ—_~ùå—_þõ—ÿéË/?ûO_~ùן}öÙgÿ©€ÊË`F¾ ßêÉÐq]Ï÷Cß›¸Žë9–fzžú–嘒æxAà‡QÄAQEaùA…A…~äE¾…¡ï‡Qà®% õžë‡~DFç9^èY–çy¾ïG~ú~à‡AäG~è‡a„‘D^Æ^t¸ªf™öÄóBËr-Ëó‚0ð‚0=ß÷Õô|×uò3»˜iFIìºQ‚Ù$1ëìÅ”R22Bf]ζR|]gÙtzM²i>!L3Ê,ÏP‡.ô1Ín€ÛÀÓáîîè«gÏ.žå`Ü€KNNNNæÐÙêÌ`5`+Áï%D/nœ6‹  vmDü•Ô5?–8`®ž]I›L(zð$]PJŸ M$( +÷?Õ94UDñ”Õnq×B̦*=„²>¢ ÔQì+ÚO[š:,º%©èTòý½^Šâ!8àxxøàþ}EýGK÷?8ûágŸý§ÏÎ?ûì³ü£}È:ür(•Ê¥¨Uæ À*¸7Ž{’i9žëù®çû®giR‹«KŽš]¾Û“MÏó|Ïó}?ÃÐ÷ÃÐ÷C?ô? <Ÿéïzïù^è{–تõß÷¼À|?<ßq}ϲ<ßu=7 ‚+eïAø># ~øù“~๎)w¹MÙõ“Ûlu%Õõ|oâ{¾ïy¾g9–f9žãZù™QLç'¬(wú£¥×l±Ï5Î|A¯I6ó;žNsÏ)½fŽ FizfÀ† +¾¡ +0?=ÞÝ3 àâÙÅùxœ/n]d…áÃáðØ †;û#ãdp<ž :ƒ“Î’-xnÐÙ1?ÁÝr©\)W* ¾à¿G~vûEËff ?–Šüö ø€÷® â÷Å^“©ƒPWt€ ˜lú¬¤/Z—«×K¥:hÚ¢(‚C ìöxȦ%IUÅž á‡}Ö3ôÖŸpö (} pÔ†’. xÏE‘Íþô‹v}E9Òû@ˆ÷~ª(°ÿH]¾ÿYÀ@½‡½^å„G°G +в0PCóÍZíý>üðÃ?þè#†}ôÃÎBžýõ£?þã?þè£>øàý¼Å·R)WÊ¥Ryj¬IävpVåhÝžfZ®ë¹¾ëº®kj² ð¢k»š ô$ÍrÏ÷Ü ð/p=ß ‚À÷¯®¼ p}Ç÷ýÀó]/p}×]ÇuÍWïÚŽçy¾ïùç»®e9´ÇõÇs}–n¸žïû Y<ßó}ßõCß‚ ð]ÇTe‘—-ÇU[­– ãù®ïº¾ç9×15Õt\×*Üæ S<ÍÇbD²ŒPVò£Î[Wžå;þ(Í—\³m(y?À4÷ +"” „pÊDÀŒÞìZŠþÑx4?Ÿìîÿî+Fœ-ÀpñÃáph Ç'»û‹eÀ…iÀ±Á<ÇFgÿÌ(@¹`•×n©¶'v‚G*dQìõX½ \*} +’(6•#ØBEW°%—Jî­%‚>߸z‰«©bWº´`Å'Â{bφGùÕ{x +5N8„óq<»aÛÀ Š]ñP<‹¥~‡‡‡ŠˆâÁýû÷¡ÂâÞÿ“wý*Š®’û‡{Š€r“>zaNúK5ÑR¥T)•Þ¬ðþ‡~X`Àðá‡Íχþqþ±?þðƒÞ¯½™#À*°&àj­V½M(Ý0jw,µÕ•ehºŽç¹®ãX–e©Ô ejPÕ4Ót<×õ<ßõ\Ï÷<×õ\×Í×ó=×q\×w<ÝÏ®§õ6ë-Ór]×ó×ó=Û6M×R5Ëu]×q\×õ=× <ßõ]Ïó\Ïó\×™°×ô<Ï÷]˱,S5-K35Í´4Ër-ËqËq-×4-UVMDZŠþ²…NÀŒ&Ž%ÌÆ¬è÷¥”^¹>Û?D¦Ó,›flyXF³){–Òܯ˜Œã4öÍ¿Yx<ìî¿Êý.ÎÇ#c5È£~~ŽÁ`8ÜÝ }ûsÈ Àøl06ŒÓOÙ0ÐïM +pø8;’j÷äÙ +mÂ_)Š" +Üw8NÐ|¾4Lº­€‰”‡ÝB÷¾ÔB½DQìI¨\IP™åÛø±$Ùl¯àá¡¢ +BŠ×8@³)¯ïIZXæ{x€(ЇýþáÁýƒû÷ïë‹ñ¯.Äÿ¡¢èú' +T®^@øSV ¿Êî ‚ Bá#!× @–J¥‹ä7+•Z­öÁ >üàý÷ßÿ`ù¼ÿþ~øÑøá¼_«”*¥7ß|³´’Tª•ZµR«V«¹Xì,—Ëår©t£7Ó´ÔVWVMͱvU›Žeš¦ US3MU³LÓšx–k{®ç8ž;q<×sËs=ײ\×µ,×rMÇu=ËvÇQ…ÍZKµDz×r]Ç15ÓÒdÕ²Çq×q×u=×q]Ûõ\ÇóÇt¬‰ëڮ븎gY¦å8–ij¦¦AË´,Ór˲,Û´ÇÒLYMÍ6µÈ(!YbyqŒS̼‡I6Í®ó­%Ób ó/ÏÝB[Šž]çÔ¹Ÿ Œâг¢Â§ð5€ñÉîþã¿Ëž>η6½ŒãA'€c'ƒA§3è :An 66ÆÆh' +Ígkkkkë÷ +tÐ@bæ bO?êE½Ò¨ uŽ{ç¾(ð«îÛ¸£+ú%¦¤ÏzjŠ…ÀþþÇ‚(YÅCÐïOD¨zÅ ¯ÙöPú +è+‡ŠxÀÎ@ähGJjIs{¡ÃQŃÃwß}wB¥Ëý *Ï_@ØWz½^‚%`ýÂ}A¸/å@*š,f à£ÞgN|ðþ¼ÿþû P«½É ãÍR¥\.ÍWÅTòQ€êJ +PÀMRfJ/kš¬AÓ4-Ë4-Ç2MËÒLÓÔ4Ó4MËq,×±-Çr×±4Ó²,Ç1-Ç´,Íd³e9Že[–¦™"¿YâdÓr,˲,ǵLS6-³'k¦eZ–ei–eY–íX–mYŽë8–e:®ë8®i:¦åX¦eºŽ¦i&ÔLÓr,Í2×2-‹ý 5Í”»’ªÍ☠¹n%¨XE\ÜüY±Œ$s2[F³ŒU ¦Eb¶$tM3û’oîŸlï?.R€Ç ÎÆãÑüÁü[æ9Àñð¸Ó9îî ãø˜í +\JŠ:ÂÙþÀ85NŸžöÊ¥ReVÜj4¯o'àÕÍÓÕàäŠÍኢ(*@[‡@à8N°ôþs ýJQ¨C]ù`K̺·àDQ„MQÈ¢Ø@_‹3uñÚú¥':„?UúŠrø'â}¡Æ Jyk€` (¶Íþ!¹Åxpp Š»ïrß}§Þ4a¿Ëý¢ü™?ðꄊÒïõæ–_·q¡öñÇ6„@}ô.xÏã¿öf)× +ø Î/ö‡þ€i•R‰@97Š®Ô*•J­R«ÔjK T.³ý€òêQ5qƒïIòOd ª¦iYªÉB_55 BÈ’lÓ´lÇ1-S3MÓ„¦iš6´-Ë‚¦f²˜Ö4Ë45h2_/q²-ÓÒLh:ÐÒ$Ê¢ UMÕ,Ó2väá -ÛTUË2MÛÒTÓÔ,Ó´LÓÔLhšªfZ–¦AšÔ,Í´ ©BM•I²¬Ê9bSI†IìxQŒ1Ëó3<ÍØêÏk:ÍwR’ÑŒ`fÊV†±ÍÌA㌙!yšŸo$û­À§Ûûÿ®Ø 8cþ¸©:Çýí¡aó*#ƒNg0`{dža쟧ÆéàôÓOï¾½¬ñë÷ +®à#NdÚ6¨6„P@Û‡÷9áÐuhw<ÑuûÒ¶mÝ6mû…dÛWöµuhç3ùPÐîõhCv§êöo%ݶ¡bÛÀ¾ü?¿¼¼R'6ó _û¸¼´/õç,þìöªÀœ˜GÐ>š‹›››µÚ[¥·êõ¦ ÁmüÌøê„€^¯¡ÀƒUð§C€ ¾Ýn·yžŸIÆè¬RÜã•7WàýUXf¥7+¥7+o¾YÄv¹Z­Þ½›W« uÀen¡Îµz=UUUMÕ4¨š¦©²¦©ªªjšªªš4SS¡¥Ÿ¤AS3MË„¦fšš4ÓÔ4Y…ª¦Êr«•6% ª&ÔTMS5Meµ×•TYÕTMƒªMÕ45KÓ ©©ª¦©Ô ªBUÕ ¦š¦¦š?QeUU¢ýš²—1¡¦©ª²,õ„ž¤J²(I¢$J⼉gr½0MP†1ÉÉ0£þÙ”m +v#Lh¾tš1›i–Ñ çNå!„âÀ Îè·+žnwžþݳ‹‹‹ó‹‹|£ß20XܳÇÐ(`ûx4<†¬E`¿“/ ïœÍVƒæðé`p·Ì¤ßß  {ó´ÛÝ{¬¾Ûmw»í6Ïw¶Ûív›ë­Úßju[íf³ÛëvÛíîN»Ýnïì´Ûíö½v·Ûm·ÛlsO·½Ã^¯Ûí¶wvvÚ÷Úívûa»ÝîvJ>l·{½v»Íó€ç777Þzk£Ýn¶»»ív·×k·Üm·»í‡Å¿«Ýn·Û››››Â»Ü;ëïLlàOoµtø ¼zþâE¢¢ÈËs€û‚ Š‚pMà‚[øÂîñZåÍZ­6‹ÿœ, søðƒ?¨½ÉÒ†R©´ýù‰ñUgÜilmßÝcq_[ še¥r¹TêÝ8b«^o =Q–dYVU ɲ$K’ªÊ² +4Y–eU–dU•Õù•«Yš&«²ª©@SeY²ªÉª*Ë’P¯—6»ROÒdUSUU”¥ž,ÉBO’$M–U¨2ÐTIV5Mû‰¬j²*U•UIÕÔŸ°o ˲,É@’UI–"ʪ¬ª²¤ª@–eI{Ý–Ð{½Ãæ~ ”’ÄuÃa¶á/ofôz:ÍWa‚qF¯‹¤¤X–ï>¢”¦‘çi± å›DÀ§ƒÝÁÅß=»¸8¿˜€1šŸñÈ/3;vÑðø„Îs€AÇ8+VîÆ©q: >ePYXüú€~óؓߪ6„Péë—6å{ôµùèêŽñ*P¿êé:šW²ÅÀV!<‚ý><ºÔ'—=BÁÑĶuûØ;PUUá„ж/m{"}­CÀ¤ €x_à8A2»6d59Û¾¼  à#x™ÿC „póàààààà°ÏÖˆ*/ÿœ(ðêêÅ åQ¯×ƒ}~$ÞÎÞáêœ(Š÷ï 3¾‘[DþÏ¥R©òf¥2c j‹9@ñ‡jµ“K¥½ÝχÆWƒq§±µ½}÷qÑX4–æ9ÀíÐk­Õ9žï‰r¯'‰’,‰½^OE©'I²(ŠRO–Åž$Ë@–$I~(É’,Ë’$K²$õdYfêÉ’$÷zb¯'ü_×J5¡'özb¯'K=Iêu{R$‘…«Ì¾^–UUîI@–EI–D†;²,Y–Ù÷Åž$I=Q”dI–Åž,I¢Øë ÝžÀµz=Aèv»½n¯Û›wRš!Ïõœï:žRš±•ASšM§tJ1Å„ÄvŠæÆ SŠ3̪}x:eæäˆ¤qä˜&·õßÒðøxûäâïò> ñØ0æ[€f‹–àx8tr˜Û‚2›§Î 38+–‚œÎŒSà Ÿn—K¥reiúëµ€_ß<——Ïa߆yÇŽUÐ6óÈ9N¸/Š—Š/%¥”sÕM@²¥>H^^^^JWШ@¿<‚€>ÌG€ K±/u]—môû°©Š¢ põwEО°©!åòùååå¤o+€>€ð¨ÏÎÁÁÁÁÁó_ÿúòÿYÌòÝÿRú' +„ðyý^ï¡ÒàG@¼Ü8Žã¾ûÝïrÂý|L`îø6߬½Y«}pÜ’|øÁûµRéÍR©²>ÜÛþ|8cÛãqÞ¸Ú@kõW/Õ7ùVK„žÐëõ„žÐ„^·×„žØz½^·×Å^¯ÛëŠbOìv{Ýn¯×ëu…û`¯+t{½^·Û„W/•JÇ -¡+tAèv[­^‹ãZ-¡+bOìu{Ý^Oèuu{]±ÛòÙ ö„^WhµzìÛv{]öݺ]Ah -®Îñ‚ ´Z-¡%´º` œ¥óÇÑ,#SÖ÷òV!J“0Â8JØÏZ‚ ÍÝHFs3¸VÀ`eõŒF£ñâc<~üt°m<ûE¡Œç~¾ÅãŒù¸/ÀÉ`0vîЙÀ€m*V?Œ Ã8=°€­|ªV«µêVõ56ýÍÍóç¿þ•ú5dÕpöAÑ)'rÜ}Q| +ŠbKJ_9’!Ô²U €~tyùüòòáot¶—2uÚ¹ÃWž\­C]Òûêí#Eœ€ P×ÿü¿]>·m*ùkýy~ýë_?~©_æf@·Æº!ôž¿˜‰Š¢€ÉMÐEAxçw¹úwêõïÂýK0gÆx|~ñÅÅøÉ“>úã÷kÔ^žÔj•gíF£S@ÁÆãQeù,wóÔK¥úÇqÏ·ZB‹kµZB«Å·„–Ðj ­VKöt«%´„ÿÐjµxAà[¼ÐZ/´¾%Bë?ðB‹ç8®¾^*•ê››Çq|‹ãxžÛäøÖÆ¿Éq<ßâ[¼Às-çøV‹O«Õx¾%´x¡%B‹oñ-žoñœÐjñ<ßjµZ-¾%p-¡ÅóÇmÔߪs›Ü Åæ+»ÍbÏ‹b„Ela–Q›0 ‚Q¤y(µ<ÌVe,ËÏp–‘)F„R‚ NQ컚OØæÒ•ckûƆ16fðÕ/òàñ˜€Ñèóñì1€Ÿl£ÃmÛÞ1S°Û\< +ÆØÆ€@¹\©,ƒÿ^¥º>:0Ÿà…}¡=AE]ઠÅVu]/ª~R^ÐuýèH·»—:€ +TȆûz{!¹V./u¨?„}åªy©è@üSã8A”ÛGôáQ‘Žè¬×ôçí9¿þõ¯ýü’MæÅÕøo]@ŸèНž /˜ÐïõzJü¬ › Aî¿[ÿn½À€`œÇ/¾8?yòôéÓ§Ëùål´Ô0 cüäé_þ?žu¶[À(G€Ú·€Íz©T«ollnnrœÀ³mq­V‹ã9¾Å·øÇþ,-^hµžçxžÁÇ -Nà…V‹ç[s@)•ŠÌŸÚä6769Žç8¡ ×jñ\‹çyNø<Ï -.Ç^àyžã8޽\Khñ'´„ÇsùÓ››õz½þ?-ü…6O1ͲÄõ£”…q–e×S’Ñ)ÅLÿ›RŒ)NQì…yaŠ1¥„í¢4£xšQ’±ñŒqyVˆ(ÉØòƒå`AÜcà㜠àÔXb +Æp8Íw„VÀÃ]'3“€³ysœ|zw)h¼Ö}·ë—@Wú +dÄ>‚HÂw¸âá¡á‹.èC Ã?ו¼´©PŽô#EÑ퇿}P¼Ú‹ ­ÛvÏ“&T” ãQjÛŠ(ê¶³ˆ…þ|øë_ÿú×—º®_ê°Ïúoÿ¼¨(ðꊀ¢ô{½ž¢€U8âaÞj ¼óÝïÔ·Àø‹/>¿¾X€³'O¿ú_r`,0€½½'ã9¬ö”JåR ãUج—Jõà~ÐâZ-Žkµ8žç[<Ï Åñ-çZBKhñÏÀó‚Àµn€z›·Yßä676p­V«Ås­Ï·øÇ ­¸– ´Zßjq-¾õÆ ZÇñ_@+€7iÉÏl3`F)EŽ#ŒØú?2[9<¥e{¾IÇ8f§ !¸X +H³ŒÅ>ÛuŽ1NãÐ 1!‹F Çw°a`KŸbäÇ,í?î7 –Tƒ1€Bø}¨ÜŠþ[Ö¡«(ôû@2dIŽÐuýßP>¹Ôs#my"â‘@]Òa±tW¨àhJ’$‚çPíC \Ú—þ‚¦ €òÉŽ«¿+JÝ  ¯@ö•O&W°ØÛ9ëÏWòûÿRg Ev—ã–0 ðy ßë=„ 6–>Pò>áïÖ¿S¯§^¿ ìùvpñ—ÿKÎŒp÷îÓñx4ß¾Ô \.3À/¢Àf½^*­Ï€çžoµ8^8žk NàZB«Å BKàyvI·Z-®%´ø—»£ëë¥R©¶±±Émò/ŽoµxNàyŽþÏó-Æ8¡Õjñǵ¸Ö8Ž{‡ç—€/àßÕ7 KLp†×LXO?[5Î6Sš1…§˜¢¶‹dše׬ÿ7£„‹1ÁiN„IF ¾©,r€Ñh<~üx°=üêÏÎÀ`‹Š‡‘ïf›Ü c8œtCcwŸ@ga`°´h0†1ü~MþôÆQ”#ê*P} @ø¨€)©(¶ÂqÜýû\êþ[4P þç¿é¹xù[u¤ê½KB¨ôû@G@w €@®+° ¼¼¼œHm`³¥?—¢ pœ @‘ úŠ”#ý7zn;68‹%ï)v¬Ä?8ÿÍÕC B èÏváE¿TmhO.¯ =¿š<¿z~©O.'“É×—ö?g)þð¯ºE§T¥¦4ÒÿLÿÂçÏA^Èr£Ö Tú ÅCpx(ŠW¯×¿S2?ßž|¾£o€ý¥`ûîÓñ™agãocJ)ÆëKÐúÏåÀq¼Àÿ€1€×bjKràZ7Oøy +P«3p+  Åó<¿¨P0žçFJ~“çxžû<Ï bLiÿ3€)Ʊå¦)Êý€)›òÉHÎó ¥(Acä˜fŠ3Bh†3<%4›²v@L1fËA}B0¥ø›R€§ãÇÛ£¯~ñìâüâââÉø±183ŒÑÙxlŒŒüí28aíÿ¡±·kŒŽ;ƒýÎI³¡ñØ0Œ“›PkÔ^_ à–F ®$A5ÕVAÞáv»’¤Jª$ru^èv{múS,É’ ªNlIª­=|(u»=é'lÅÈ_ôºe ©ª¤Ê@RU_ŒsçèÙb‰ñxüÅÅ7¥g/gwŸ>Ÿã³ñ JåÅûÿ6ÀÉP:Íß绲óÉe®¯¯)!”– 01Ÿ»‘”ê9h­/ä’>yžÏ²lJ®³¬ødSz=N¯iF ™Ò|¥7€lò1½ùƒ³Œ$ž#&ïçÎàÓŒf3o„Óa‚ãaLQœ¤„°fÀ¼ €àŒPÄúž Š¿-øãáÞŒ<÷…%ÐhÄÞ®@‘îGû»†q<ì¯À SüZI*•j¥R®6¶jÕêë 7OŽ’ÞJ¡­1eo"r°mfØ­èGPêº~4¹“»¯EÀs‘|ÿ )}x]A¡¡rdwuýˆíeëÁÞ']>(&%QÀî× ¯À+0¿ÿ±âàCBYüÛs`ƒÞsAhÊ,Pú½‡(àG?@d >¶®)P‡`:À’]ü žËˆÂb{è™aÆðäôääd¹oôllœ±ø?3nž3Ã0Æã‹‹ÎøâÄ Îÿüt<žÁÅ,üAÊ¥ÒJ*‹)¹æ)€¬`×Ùõu–±«õšf3`»4È”À”NY—íôšä‹·¥”\Ó®¯ ¥lkw–Q:%×S y(Í®i™Ò%˜§šÅ‹0–§„,öýaæ +JH–!L³)Ê(bŒ(ƈfG1N£”â %,“ ì߃I†IFŠqŒâÐ3}DñM ðVì~ñwÏ....ž>»ƒñ¼“/ï>Y<³ž¿Ñpo826°Äæî€ƒ½JQ,Uó]P¯ïj°—Ybõ÷>`°ß‡¶ßáî â!6èÿ4ß ®(º>GGàÅÎiº E؃J.᳞"'2Šõîs¨@ØæÀþ¡( ûI¿”ü@’»GÅþ¿¹MÏüþÿç¿â%I.Ø ´Á!‡‡ ð€ÞÕÀþ£^äÿLñ]Є®ôýv·ÛùEŒ—nõ±qj†qzrzz:8===]Prsù3ãÇãñW£ãÏ?¶¿Zþ¯ñ&¸¥Ç)Bl‹&β•à:wÌ SJs „PŠd×××y2ÍhlζðÛfAsMétJ¦$Ë®¯ÅÈ—ñLÉõ”!P6¥™fSJ Í`:Í(Á˜ Ð“ÜxÎËð QšxaÂlÁ)Å”bL1%35cĔ§i‚1F1¡˜d˜’ šLà¥Iì™A‚1&8[=̈ý.À~Çcc{06FãÙàïÐ0†ÇKg&ø†»Cc8èìí¿vw«P@í÷ + @’ºv±öH@‡}lõÅ;ïÞbæ» ³Ýƒ:´_Ì{ÛÅ'=] +ëW ]ªŠÒ} (v{r¤( ¢ö•Ã÷öl¦Æ h??Rà²Q×üþÿg³)AêGGGú´íÃÃEÀ6<¿º/l4e9€>€ Šï¾+ˆ¢ÝêÂ>7áo`uaÄ +`äñØÈ×Ä VÝeÇlcTçÎþþ``<5¶¿ƧÌPvww¶¬¼¨ÜH¡G É÷ãe”f„’ëŒ^Sš@s d:cK²¥€1€lJ§˜@ç³t×E +± + £/šÑéÓ™m×”ŠQ:]Ïmzf÷2ÁÓØ÷"”²þJh–a’åa˜”Ä4ÓSŒ’#š±K³éAB !%'¾ÇŠ…/~úôÉÓ¹¸?.R€ñØØ5Æ£ñh0 > ƒÁ§§ƒÛNg0 ÷ŽGÃAg¿“ï X€ÝÝÝ»»»ƒñø,€j±¤T­½æ à @[UÙªöÕ‹+¨YU¡$ +ÀŸŠ"P m\Ù6°Áäù$wïµ!´m( H*Tj>”€ +  à䟮lÛªªäÀ+u¢¶¡} ­KÀKˆ'ªMB`Û’(I<‚ªªªm Ùª­ÂE×¢Ùýoò´¡¡~¤ô(¼ 6ó>`…-+òžÿiw£Ù”_¼€Š•~¯?:îA°y¶]ZB€ñøÉxüäÉ“ùò˜¥øÇÆ)‹æ?ÚÝÛßßßÛÛÝÝÝÞ¾sçÎ;Û»{û»ûûû§ ~S9œ0ÎÀ^ö–  \*•JhåPš‘ !8›cÒlšeÓ) ½žNó¹,£”\Ók6SC¦9˜^_çu¡9\3`)Àô– c)@FrbŸÍS€)³ë.VvÓܵ‡dÓŒdÙ5F”bÇNÏÁq?ûi0¦”¤/HSŒ1ň`Lh†)Ág4Ã$K“§žHJPâÇÇ)A˜fk"$¥”‚Qœ Ø÷¬€PDo¶“YñoF.† ŸŸ?þ|lìc†á¯>Î`d0Øë, ƒÝÙY€b7`åõ€›§Ým·Ûí?ÜÙ¹×¼Ç7yžoîìì´š;íæ÷7þ/µ ®Ùäùf»Ý¼·ÃóüN³Ýí¶ZívûÏ7y¾ÕÞáùV›4›Í&ßäwxž½öòÍf“oñív›ßi¶îµ›<Ï7ùf“ç77666ù?lïð|»ÝÞáwøvñ÷š;Í&¿xúËñßW ®+ˆßáÞàAPQàóçB/*ýþC(ñ€ƒúwNÜì|x¸‚O˜°ÿô ‚9ÕòEþ×'OçáÓE¶`Œ_" §§Æxüäl00öOŸ>ñÿWÐÉ,¡(Š %„ÙáÐi±1gZŒØç×ï”iÌC—2˜@s 3å `:KÈ<`þ{³o6%Å Ÿá)óíaCztšQ’]çô:Í!#»¢‰0¹‘JI;nœÄŠr7¿¢Ž‡¡8Â8tÃ!Œ“ ¤$Æ“Œæë?+bÇI”ø®`ŒÑ-àÖÝ€9\ŒÇcãŒñhltÏË`´×™3€Î|hŸíßÛÝ=½ ÕR¥úºã´»Ýv»ýþ½{Í&ßä[<¿³³ÓâÛíæ÷7jµ&Ïó|³Ý¾ÇóüßæÛÝv«ÕîöšMžoò­îN³É·Š´›Ífs§Ù¼×Ìà}­v»ÍïÜcÐd°±±±Ñ俟ÏßãÛín»Ý~¿ÉßkîðKÐZB]‡@¬×¹láð( +ü*^]ÝÿÓfS– è퀟æÉÎýzý]NäÄCq¾xòÅ“'_|ñÅìÍ\ÌñàÉOÆ_Œ?gú-á~: f;5 cÌúÉ +(—WÊ€Ë÷J¡8 +Ùä %„Ð,›^S¶=‡ÀôšNY.Õ²bN¯™£«Õç–:Ù4Ë®ég¤º ”EûuF¯³ë锩~ٔчŒdÙuF¯§Ù5eúá5Å4£×, ¡YF1F$M<ÑEóÀŸ3B-/LbT´RL1ÎÅ”’Œâ$A$õÂ!„b/¢$ElRL Aˆ`‚ Á(Qû–Šé·Q/ŒÎ迸¸8?¿?vñh|º¿x^ +ûûÜ]Àb°ÇÀŸÆ`ðé`¯Z*•Jå߸tÛív“ßÙiîìð|‹oîìð3¨ml2VÐæ›<ßÜÙÉ Ým6ùžoµW€¿×¼×¼Ç^ûûØióü‡ `'€f›çùv·Íï4s$j6ù{Íepo%þ¨­ñ;߸ x )„WÏ»ÝE€ýmä“Âõïr›@y°‚+;£Ÿ>yúø‹'ãñøéÓ§OÆOfœàÉ“ñÅã‹‹ñ“‹'ãñè¬ÈÎïÿÓO?=ýt0|zz:Ãö‘ðQ’Æ&L0ÏØ½›;eN™cɲi–‘,›N§4_« YvM§$_¬1Ëè§tŠ))R€ižL³i6¥Ì›‡f’ì:ËȬèoîc{º óå¹Î¦”­î&Y†ét:Í(¡8]ÙMnÔæY¹~”$(§Œ(¦¬Ÿ—à$Npêc„c?B(AçÅABË10F¡8ò]3@cŠ¿˜Àãñx°?ǃW@Þò70F{ûÆÉ ³_„^\8¬œ0|:Ø«”ÊåR¹R­–ËF­Ñ¨ý~@;€{ÍæN“oí0°S0¾Ùäù{ív«Éïìð|3€Þ=~‡¥÷î-?cüò÷šM¾Õl·Û<¿S0€æ"àY +ÐäyöÍfó^óÞr +к·ÿGº~©+¢ð]›PP•K]“+Qèn4»M^/~¥( ! +d>çïpÇE\F€'Ë +à“âÒÿbåù'ã'Ÿ?½¸¸ñéyÂ_Èggg·Ô¤f}@åe `õ¿cŒ „IÎɯsýJqVé˜ßîu6%s‹Ýk¶Kç:gñÓbœ./°éÛ)¡xZLÚÑ,Ëð5ɲŒݘ»ùi–M¯Ùê.VŠœiÈ5N3æà}M§×aJ0Š=ÙKçâßB=#ûAš¢§¬Ñ™„)ó +”";^JÂq%ˆ„¦Ì¢aŒQÇoºŒJ|0bÀ:;ûãÑx|²·»;¼D4Fû{£“Ag¯¸þ (`Þ0ÎÆ†‘»WJ¥rÁjFí5f7 gÞßçwØÅÛâù¾ÅïìäÀ5yžßi·[Mžoò;|»×nµÚÝî,ØÙÙiµsY€÷w5€›)@s–Ìr‘[RþÞjüÿÇË_ñzãÁ†$JÝîlîXìnllv›;2P¡ +'6ïuY—¡*‰2Wç8®É¸„Ÿ<}òEqå?}úôéÓ‹§_</ÔðÇc㌕Ÿ0’ðùç Å‚áɧ§§§ƒOOY¡ðÖðŸÀB'`éÈ(Ei#“E¦Qz}eô:»fnYa¡eôzJ3J¯Ù~ÝkÊ–ëÍÔ– L³ ³¼<Ÿ'Ùtz=sé¦ÉÈ5¥!Y†§Y^€¼.vö’Œ9óå6ÓŒ¶È›bJ1E(veÏã~¡{~„0ÆlÚ/Å”`J(Å„JŽ/AˆÄ‹ +ŒqЦ”`ŠÂ‚0N p-S¶iø[s8??:¶*`wöØ»ú¹ùïhtÒéìwVÀbÙgdŸ>ýôÓ½J)ßY®6¯9Ürð‡;;;Í{E +°¨ðìJ÷̇»Ýn{ó­›ðäÉÓ'OŸ>ýb<~rñÅÅÅS>gÝKµ¾ÁþîöööÞîîî^g`Œ—ÚÇOž>yòd…¼ +^ÂÅ„Àl9^–'ßÓ¼(/˸f•?f³ÁæçM§4_¹YlÝ+”Ã|ïN ÁÙF(ažü„0DÈ¿5%¹yoþ¥„²„¼1é!ˆ 4ñe/ßË Æ$r=?fLëb3¾cŒbDR×ONQÆ…iB0ÁSŠHÑXŒPœÄq:fÀáŒVÎx|1Úýâ«gçÇã ß!wo÷ä þhϰÀÆgãüa#Ã8ù”@é÷vnÀ‚X¤ü,¨mlæU€V“ßiîì4hw›Í¼ +°ª,0€Å*ïÛ)@s–ìÌ4€æ½æNk…ìܸÿyNø'"T»Mñ(ß,Šº±¡˜;‹A8 '¨BUêoÕWàÉøó'Ÿ?Íóý§O>ÿü‹§O/...ž^ä)€1šµù°vñì+æ27è öÆøó/.ÆEÊpñäÛ@é¶2 !„Ä)&4÷Ô¦8#Sš ú ñ˜ Ó™\ŸïÛš²r›ê΂,ˉCî»u+ UrM¹vgÓŒ¹ò³¯§Ó`¦× ¦Ói–‘ ç"`‚|ÓG (6GDphºaˆpþ Š1&¬Ÿ¥%)ŠÝ0IPŠ?ÄiaŒ1Á¬€0"ˆ`Œp’D¾ïA7%ˆù|3tÆ¿øêÙùùÅãñÈ£ñxüÛ‹g÷þŸÀpÐÙ¿óiâ3c|fœž®0€­Æï[ +°Óþh¦ÌR€ÛªEL¶Û¬ +p¯Éï,V^‘4Ûí6¿³Ó~U ™3–´VÀÎ-ñ/pœ ¢Äûˆ¢ÞáÞâÀLJb±ÿ—õ0©MHPÂýziÎVqš£|žÚŸ§g†qvv6/.—|rqqñÕW¿øÅþÏ¿øj0 NÓOOO»_¼"þË¥oB)¡IcJ¢$£”Lge=ÖtÍÒñi†¯)Í+Õ_ç” ¯°¿g$£…?ËH–M)¡Ùuþj4+: + +~V7Ä™b2e9Æ5Í¡u&±¼`ʺ )%„b”&é#r3*1Ƈšë‡")"#B0AlS !á4JPìù1Æ(½8EQ„R„š L0ŠÓ$ŽCß3=„0ºåÜüßüœÀãóÏ c42ÎÆãý;wîlo-wn׆£Îî«Àgg§ŸžÞ’4~Ï4ƼùÅ€oíÌ`³Éóü½–ª·Š€ )Àν…*À·7R€Å*¿Th¯0€æ-ñ/pœ ˆ¢Ä«@ì‰?Ìà瀫o\æk‹€¢(¬“ªÀ–¤ Üä«ñ?ýñøéŒÒßx<?¿`>sùyöÕW_}õÕÅ_þå_þå_~õ—,-XÍ*/c« AE1!˜ ¹Š—gì’Φ¸ðÕeåþkÖ*tMé4£ìâ/4;:¥Ó묨ªf4»žµ€ëì:Ï r@³‚\dÓì:ïš% 4£„Md„¥%žÞ&b„1ŽM+ˆâ¥9# ˜Éú'¥(HplyIŒPú~Š¢(Á "#‚ ! 1ŠQE‘§ù)"ão£Î諯.Ÿ>~<ÊI\çNcûÎÆöí;;w¶WB¿Sˆ€ƒÝ“aóÝ Ã0ÔÞOOOO *•ßSØYªÍÛªí{üNó†°³³ó2po1˜1€o®Ü`ÍñŸ€(J¯ŠbW(‰ ïÔ7ì|ß(›JP¨¶$}¬ + pñÅò¹øê//r6~R4ý°žÀBßûüü|n?Kõƒ'7üÀ^Â0¥…1F˜f„PVï#ÅýY3›•'4£4›N3ÖO a(1f³è¥y«øh!²"“ Ͳì³ÖáiFhF¯ó/.ì9‹b2½fV]ìiŠ)+Ö%,4¥³ƒ Båa’¦§8eQsøaG1-/e?J“0N”bBR„ا ”¢8IÓ8\ÕEã}³øøbÜ1žýââñùyàãñþmv÷ß¹³½3ÿ¯Áð³ãÝÁp1òç0o=;===°2`y6 T{­àßßÔ>ꀷTj¬ +Ð,ªüb€¥<¿Ój·o-æÀÊ€ÍWS€Í…*À½¥*ÀªÀ߸ÿï \<ÿh¢xÿ]®Î)Ìc@ÌÇr°?þX ðjxr <~~~ñù篊þó/–`‘¬œ³iÄ F„âboæt&fY6â)žÒ<¿¦×”Ò)N³)Í®¯sÀ¼Û$š=AŒ#L‹Ê?Ó‹ÎAšé4/$LivM§!yÁ¡Å4»Æ¬)˜¹{S‚qâ[Þµ<ûqR”"[NÄq’"”`#ŒNqŠS„qŠÂ0N#ÓMã¡Øâ8ˆcDRœ¤$Ác”¤iÇiù®æ¦I£äÛ0€æKÆãý­í;ìqgëÎ;³ÎžÎ :ƒ1êì†l-øÞ2œÍæC0Pb  öºk7TÀºïß[®ì¬h U€öŒ,‰€Ý[R€æb +м%ø¶U€öÍû?'¢Äó"ŠÝb—¨ ¼Ë Š¢È @gƒÅªcK’ +X¨¼ªµjµQ­ÖØ”w£ÑXb¯€ó‹/¾ ÜÊp(›Aœ·Ê²Ñ»ì:+nbJ¯³œ†Óë)¥”]÷ r_1.œKÙuž °u[yAŸuÓlŠ™3%Ók¶º“R¶¿3× ¸ÎÇ’¦ÙtJX#aVlîB˜PŠ“À SLoD%FáÀ4}? +“¥I£Å!”Æq®ý…®Eqœ†aŒ¢0œ}%JQ‚Ò8M’4M’$Œ|GuÓ4M¯ž[S㫯.Ÿ_<.ÀØÛZ:ƒeÈߟu¶;lx…,€qj§Ÿž²*@ÎjµZ­Vû=¾ÝþñF ~!¸Q˜kü7U¾¿Øp¯ýª*@ó•U€öû_¸?Ëøî€ÃÃAx÷(Š¢èâÒÌ£ªÚ¶$}¬Þÿ“ðÅK Ú¨ÖªÕ­jµÊx]£Ñh4r£àWÀùÅùÅç_\,WnøïVãŸø‚±=Y³¼;»¦×¹"Çú€ÉŠ"»É)!×YFX ׿ò½.Ôzå•<†%¬0#×Å @–g¤˜Êè´ø¶s—®,›NYÇâ4ËØv’ơ볉Œ1Ƴ¨LÓ$F¡iú~%(Nc„’8e$>N„Rù1Š,/ˆP”F^'AŒp’$(IPŠJ”¦i”&q…ž£:Q’$ir㬆ÿçç,0c¯¼t·"€1lu†ƒýNg°Êš>óžï¨Ô¶jµ­êÖ¿ÿ÷¿?*À,Vv~°ÈîåU€Y+ðBàÞ=þ%)@Ql.—R€ï/5½´ +Ðl¯Üÿ÷á³ €þ„]ÿ‡‡÷…ƒwl[Q”#p¸Ž-} îß?A˜ë/€F£±µµÕhÌ®ÿÆöööööx<.W*¥R©1ÜÛÛÝÝÞ®–¾é,Àê$ÐM?„}Aõ¢S&E€¼ðG²ëœ·Sz=3ñÈÈìÎ.Þä]ÿÙuQê›f׳‚Âu.éÑŒdÓÙÔ!½Î2r]” +sÑa6†ÌTœMIáL–Š)F(t2oÏ@”Ä1 +LËóƒ Š“$‰ã8Åi§ Š£ ŠÇ“8ŽÏ‹#?J’8Iâ4Å1Pœ¤Q†a01âDI'ñ­p¾p?>uŒgÏ.?{|2ßËÁÏàx0üìx{ÈìAV€1c§cc085– ¿*~ÿàû+U€•Y€Y Ðªy'àm@³NÀ•2àïVh5Û7îÿ €ïözbOÅÃÂýƒN·EÑõÃEÔ\8È çÊË ú* ÿ»ïmßÍŸ)W +ííínoo•Jß*³:`yFnMˆßSD0Å8Ëoâ,ËÈ5•ï§„íÔËh6-Êû,KŸ²¸Îýv3š‘iFXàÓë)¦³DbÊ.óœõÏ;(Φë¼Î¦¬Û—ΊL#d¨Âï˜Ò)Î×ðä B³,¯þMi¡æ]g4ÃlY»ñ§YF§ô:Oýi–OðQ<Í +¡cŠIŠÇ#óiÀ°8qGIMÇâ4NPÄ:úâ4‰Ó8F%‘çú‰¯¹AÅQàxiìqÇqš$q‚â(FiÇI†~軚äDQ„’à†° +GãÙWŸ_ûã±14 clì.ÀñM8 Ñp{8dîŸ+ÀØ8ggg§§†±ÿGƒ³Ó½j¹àa«1 ŽbÂÂùzšM§Ù4»fŠ`Þ½_èvÓ,·ñ"ùôP.`B1ÁlóN–Ñi6-Z™E«ì³ܸ¿è)`Œ!˦Y†Ã D$w šæs¹§Q¥Él`v-ûqÅ®¦Z^à~…Q‡QÅqGq‡a9~諦ïû¡ïšnä{~ÄQKˆiÇa…Qä{¾gj²DQäáê¹8??6?ccŸÀ`Æ[Ûß §ÃÑpoko8ÝÝŒçUÖ øš€2€GE£ÜOø "EÂ,4ó°{d›¬•N9RÚ6€ìÓûê6sìn3[på§ð bK¹Ÿ7û*•}‹6ëÇU €6è÷Ù€º~!„ýž·ìæûš?™É×ááa±6Ø¿R3 +ÀÍ W€X€­Û¶¢èpðo@©TÊÿ³i4¶wù£ÁB¿ñÞÝ»{3ð%§\)é¥R.`U\lºu…=3NƘ™ð1-?&!‘\ÅŸ^Óë,cÕøé,‹Ç¬J?üÏMÙ +.F&¥„ftÊ 2B1Î{}¦¹÷XÆŒþò¡VdB4CID0ÁiJétšoûdþÝ(ˆÑ|Fw!þƒ(°{ªåú®ç~†QèA†aaèûžãyVO2-×r5`ú®åaFQàûQAäùﻮ빖¦Šª¡~3¸:£g¿¸8¿0öGFUÆÒ p)ø‡ƒA§3ž{ÕíÎp{µðt™l3 VË•Z£ñzW”9¨,0PÅdp¨æõ/ý(WÏm3Þ£~Ûl퇢¨ëBE™€uGG D¶1@í~QŒƒ6[ÓÑï èìEúmfÙúGð1'Šâ¡¢(ý%ø_öÂ}áþ}.žçy±+ꄃƒ=O”£#pú  ”³õÊË ¿ÒKí»ï5Û¬p·Q«V«F£±]­æ´ ˆö[!`ñT+…CÈø>Æ8Ô°­}¬˜âŒR‚ÒÄL:f€øk ]Õ´×ñ<ß÷|ßCßó|ß÷üÀw,Yó4AúYdÇtÏs=×|ßñ|×÷ßs]×q,SÓ€ :®çº¾·zn€ÎèÙ/Î `œÆ~õíêÛo3xûí·ßfA_œáñ°ÓaU€ýÆöv£º½`¼ +c°}‡¥ùf r¥V«ý·0€>ùÖ°Èð28ìÿYÎÌ€V€¢(Šç5±· 0°ç‡ôËEè³`¿ìãs;Ñxïnã½»yÚßhlße°½Ýhlo7–®üòìý<ògô²² T*%VX2.ßf JV„RD(ÍpF¦ÓÄ(‰“$Æ$F´hðN Í.vödS:õô“Â"lNR#[&qBharÍT@Æþ‹±áél)Q.!2£P‚ü˜’$M0BQŠB(‡~´` >)Žçû®« +‚ +MÇq,ÏwßóüÀw]ß÷<ßõ,µ\ ÍT5¨Êªã˜–e;žãû®ë¸®çùë¹®ë9–©©’ ZŽë8î·aƒÎ8¯ŒrÝ~ëí­·ßÞzûíjuë{ßûÞ÷Žvü³ã!û5Œö¶îl½ýövçø› Êª<[Õr¥Z«Ö^ãÕ`Ê·©¼·0€þË ¯Ì€øjÓ€<»l–0àðÌÓí\°¿ÙÏBrnؽPœWîÞm¼×h¼w·Q©VòG¥R)Wª•JuAæ_¨ü-…z Dþo›Œ0Aù!G¦‡pà¹>¢˜²Ñÿ²çÖ_Y1Ï“M™Õwáð›e$ßᙡ8Íf•|f)Nض_6ÙSô^€yš@s•1qCŠ}Ç ò#Bòæ@‚1IqìÇ$¥³kÙõ<×Ò„®$«–e»î,¦}Ï <×umMæz–ãXŽe9ŽcYžc™ªé¹žë{®cY®åÙž3±,ËÒ4YîµdÇ4-Ǿqnh€F§c\<;¿ø|°72ŒÓ“Sãtÿíïm½ý½­·¿WÝÚúÞ÷¾÷½›"`ç8€ííê÷¶W Sc°{gžTjÕr¥VmÔêëÿߎä€ò/aúÑQ¾Þ7_û·óèÛ¤JÆn€ÿuEapÀƒû÷r PÏE€CPš_ÿ¥[@^»gz~þÜjð½»F£qw½½½JµR®”ËÕJµÂØ›r¹\~»\<“S€ê¢ø_ɇ^ …²#¶J›f”Œ?B$ý³…Û„²dÊzy§Ùlã'™æý»”ddJ§LÄ#”f(H)Á¥IJQ‚è4›flùÈõ\,œ­"›fäº0$žÒi† ž‚˜àÀ÷cJ£˜0Ó@L &˜ (ˆž•⸮ã8² H?Q5Û²,DzMÇu=×÷=×µ,×±$Ž—,DZ,DzlGÓ$h–åL\Ïq,Óq<Ïs\DZ,ë'²Üëò¢m͆æÊË@Fg߸xv~þùÉ~{Õê÷Þ®nUß®V·ªo¿}S Ž;Ãáh´ßØmT«¯€Ñ`÷Î`lÌ[Ëåj£Q{mE@åwù_¡èðh‰¨ËÀË€¢,jÊ71EQžçÿDœõß¿/ˆ¹8ëX¼þK·j9”—Vv¬tò•JåFµT]ªT«ì cúåJ¥ˆüE`XTKùbÐUpc-@ › &ÑŒ-Ó%8A„P‚Î(Á$ÃÌ*ˆæŽ„0=ŽPæó•¯ù!S2ëÈŽUà8IÒ(&ØŽ(%”äˆr5paè7›ùƒÑk:²åù?'J¢˜`‚ f5F.PE +Á¬â˜–e™@Djšiš¦eA˲\×q\Û´,Ç4åÖf½eZŽfš¦ëˆõR½«Z–å8®c™.t\×µ,š¦iÊR¯ËK¦i›¦¥­žgÏÏÏÏ/د‹ c¿c\<;?pzºWݪV·¾·UÝzû{[Õê­0ÃÑ~c»QÝjt†—ŽÛw:cc¯R*—˜%Xy«Ñ¨5^W àw€™øþ¯Ò½¢ +p,h߆(ŠÂ ½Ù(°ðî»â^¤¶¢è Ù©üPº 8ÀöÝ»w;wÕRãîBf_©T«å"ÐËT– ÈÊ˰88P¾Åù²ÃñsÙÆ)Ê2‚0NpJ(š™og”’M)ÒŒàiF2Ö•ÇŒA¦SœÑ)«âO3Š‘š¤E I­c‚§Ås÷™á8™bB¦l"(ßÂÍZ1"¨ðö¥“Œbœ{ Á(ŒQšü6ÿ5Ûìlš–eª\«+«šfj?QMË4MÇr,×¶,ͶLSù:'˲ܓdUîÕ뜠jªé8¦cY–éX–iZ¦ij*Ån‹ëš–M ®ž‹gÌ‹áüüüââÙų‹<xüx'{Õ··ªyðíÛÀp09l½N +(Ï<óýàµ×9þ¿0Oþ 4€ø-S€ßE˜å…p_¸ÿn¡²V Ûå…®»—TnÀL¨åv@w÷Ê7@þ9åU0ëÎU™¸Œ¼"ÙŽPJ[N ŽSš!DŠ®bDp‚IÑÁ™]HF§„N)›Øcn„fôg$£Á˜fLiŠ F„$šƒóx§tšM§SZx ±ÆÌÖQ2Íg‡(ÅNq†¢‘ …)¡g¡³]F( cφ€fÄ\3-hÊ×%YÕTU…šfj–išše9¦iYæOd±ÅµÛ世 ´QT5Í4-‹}šiš¦5SÕdI[›]M³4•ñ‰…£=»¸x–~ŒÎÀ¸¸ÇFÇ8=Í`k«ºUÝÚªV«óVàù1ƒáÀ£Îövcë•pj ¶ïì½ò¬ +Pª6j×Uø—@ÿß‚¨íGß2ø³›}ßÀEéõXÀ}A88ÈmÛÖ•ò,½/•W°¤V«ÕÆÝÆÝZ­VÝªÖæUþ"âËÏ/(ÂbPÉ« 7àö½ù²§c’¯ßÄ1¢%˜àÈ 0Ûœ=s Î(e»ü²|v˜y0u3’O(Í&¡˜‚ õ5á)Óï²Âøƒ-$Ó)ë>Àù”0ͽ0E)&8J%qœf8Aùx0Åã4⛾YXªšM™ãº½ž,ɪ,«ª*›¦¦išišš ¡4¹ËsÇmlr|Kèö$YS5S3MÍÔdhšš©Êªª©²$v~³«©šªÞÈ´™ö7{gt: FƒbOãþÖVuk«ºõ½­jõf+°± +wö_†1ØÞÚE@µZ.m5jµÆë©(Ê¿,øh3ðwª,0€¿P”ëx÷ݼ ‡€<¶Ë˰ÊÊ/€Æ³ýÁ|ðÁ¥™ú¿ +쯷—gÍ¿ P.ßlNQœ±¦?J &8J1Agy¦)¡dJpž·‚§8#ã¼…d”’ g¤ðþÇY–aÌªŠ˜RL3ËL˜×)¾ŠŸ³¥Y¾`œPJ)"ǘ $fáŽQŠY €b‚1Fi§()Ú™ÔâÈ@SµÞ'ôz’(K’$©2P5MÖTMS¡¦©ª*K½®ÐAZ-A”%QÕ4MÕLMUUMUjª²,I¢$v[ÜFKÕTY’äÕ³0”¿7:û£gçãñxd?žNNý­ê÷¶ªÅ,À÷–À0†Cc8žÃᨳ½Ûت¾J0ŒÎöÖ_Œ½jnT-—ªµ­­×”üNP”ÿeU€™˜k;ýo•üK4€" 8<áþLÔm½<§þ¯`å—ÀÜ]<¬­·:»ñ+3¨V^þcƒ3pÃ¥(!DØEL(ŠSL˜Æ~T$ßùå;VÖ•[¬úb»³2BhF!8ÄŠ¦¥Y ¼”5þç.#”BqF a2`¾»“ÒÜrS‚3”`ÂVw“„AÍ2æüÒ8 ¢¥ÅO1KIÖ@·^ç[BO’º¢,J’$©ªüUVª>”{]Aou»]±×{?QUU•eIVeȲ(÷Ä^·'p\eI•e¬œ¸`ï‡ÎèÙÅùx4ÆÉéàôÔØ¯V·¶ªoç<`Iü¹1“ÁÉÉp84h¼’ìooíFn V­UË¥jõu5U~7ð£“NÀß­ +°¤(ßž(ŠÂ2€ûâmÏïÿYà¿‚¼fI@£Öh4j9¥ŸuöÏ@u•—{MÁE R ÔŠ¯MНT+bÛ1ÆQ%˜¤ %1ÆŠ1E8Ë(ÍÕøÙŠ’QBYž’|¢c‚)Â4ÇDi$;ˆÎö‚J É(%Œ`B¬טf˜J² SBÂ#D0EIŒqŠó%Ÿ(Mb”Da”¦¨`Ew†(ɲ,µjuŽç»]¡Û%Qsdè‰bO’¥^·+t…® p|¯×E±×ëu{=vÇ‹²$É’Øëõz‚ W¯s½^OºåÜè8vãgŸGÆÈ8Í`‹Å~ukk«¨3‡ƒÎðÄ8Ç»Û[[ßû¸³µŸ3€µjíµ¬üŽ ÿ›VýŽUñwcŠ¢ +÷ïˆvž”sÿòB#зg¥R©Z­Uk¹®S­Vªøs˜1€j¥ú*w°J%ÏHV`e MÙŒ”"ÖX‡q§§S!AIÊÆ”PLò‘JóÎŒqÑ„ AL1f„‚Œ1a@H–‡<ãó÷ØœaL)¥˜d³/£§1Æ1£±ý¼”bŠQ‚’4ŽÂ8Jg^€½âR¯×mÕk'-¡+½®(‰’$K½ž(ŠROì1“÷/]Aè +Ý^Wè2£G¹×“eYêvAèò-ž«×ߨºBof??ÏVÏù°3=»G†qz:<œFgë6CÅ Ó9T·ö^ [€R¹R©UË¥j­V­m5~ÿ@ü?µ +ð»iyc pÿ@Ôó`±ÇwÞ +ð;2€Wž"éŸxµRyõ¬˜†½ °/›~’bŒ)¡aœF Áa’a?bbê@F¦8w +ØMš‚Y{-L1&8_¨H©N‚)¦9S ”bB)Æ4cÓGQ–Ú³žCÌ^ǘâ$F˜ (Á8Æ”`ŒR6˜F~§qñCñßí +]¡ÅÕK¥ú&Çq×jñ‚ B—}´×ëu»­ßâ9^hµx¾ÅŽ t…®ÐêõÄn¯Ûëu…V‹kq·Q_/ÕY­àÆyv£ØØß7.>Ïàädð3c<Ø^>+àpxÜé ‡¡1ÜÛnÜ##ä0š1€j¯£%˜ò»À¿ª +0‹*@ÿw¬<ø]ª3¸ÿ@ÔY +0»öË+1W)øKùt^…Ùx”J¿CìÓ½ ¶^sqï)@¹¼´´hAZÕp «^£|›6ÆIã4MRD‘#¶W—¹qbJ1!Í!sŸ±•šc6CŒqŠ&˜m椡l¥„d!L Æ3áŸPœQL(aš!³`®¿˜bœ¤ F"„  "8NØ7AÇ¥A¥é,‘iÍßjq›¥R­¾QßÜØØä¸V‹oq­– ´º]AZB‹o1là¸MŽã[-o ­–Ðj±(ï +‚Àµ8žã¸ÍúZ©Tã8Nà[ß +:£‹ñx<§§§§Ç?3ŒÓíÝ¥_«U€áñ`0†Æpo»ºõöÖÞñ*8FÆh42Œý;ÛûÆY•ju–6þàߢðw¯ˆ¿;Páþ¨Û¶­ë3±mnÕ5ÕÊâ^Žñ™@ñÊåo 7 à«@ꋪÇ "!‚0ŠÃ%iŒ1ÅQŠÓg4çäÓŒ"’QB2v‰SÂÒƒ\ðc0A‹­½ŒÆaÏL&EÔÌÒJ2š!ŒÂD fìŠiNü“£$ "Œ¢$Ï(R” 8ý(If `ææÄqÏÕJ¥Ò¿«×ëõúæ&·¹Éñ›Çs­V‹çVþã8®¾¹±¹Q¯or›|Ç·¡Õâ8n“ÛܬoÔëõúz©¾Áq<Çm®ž)À…ÑÙŸGcÃ0NN†? N cwwooþ{w®ùïÁ`8‡ûÛoWo€Ùb ãîÜY€òÿ °ühßrà_£(Š¢ˆ¶®ÛviÞÄ»`ص°ûöð¼)Û¿:þgP^àó¯B€¥`«îÖÈëiA”¤±ùú8òc‚ãG1B)ÊïrŠ &„RÖ2@0Æ„`Œ(¢˜dˆb–,d#„qÌ‚ $3Á3Ê€X­S‚0&aÔƒi˜PÂ* +„Å(RŒqÆ$ÓbõFEQÌû€ââlnp›¹ûêo½U¯olÔ7ê›››Üæ&ÇsÏmnnpÜæˆz}cƒÛÜà8ŽÛdHÀqÜæf½ž‡ÿúZ©Tߨo°¿.—ÀãÑxd''Cc0§»{{{ ¿—ïÿŸÿÜÃáq·j#ÆÿG†±·}‡UfPù…Hÿ§Vü®U¢mÛ¶>ëâ_y_þ69>ëÛý&`UÀâÕGŠ^û¥òªqx« n/ B%œ$iF8NÁ8ñ„“„¹{2±SÌ–ˆPÌ”©Y‘A  QŒ0N‹¥Ü$Á(VŒ Ź›B8C„ÒF Qr/BŒÛ@i˜¤( +Jã0Á8ELHqŠÓ$*öù°³š9¬—J¥Ùs 6⸶¾ð%›ÜÆFÛ¬or³Ï)­××K¥R©^«ßvn€ÑùçŸó>àÁ``œî-Ÿ™ú??ކÃaçxøóáðçÃÎöÖÖVuoØéì/œ%po{{ÿlÜ©2I¨Z-•Ê•ÿAÀ~Of–‹¶nÛ•WŸê̤³„Óœ5 ”`‚Bd¥yÛ!ÓñP!ÿ“ü9B&L5Ì©EŠÓ0&(ŒR„’8A(MS„HŠRœà4I"/ˆã¨ø)Âú­·Ö—þçx«ôVí…~cýõû”·Þ*½U*  –ÿ®×KµÒúz½TŸ½Îzi­¾V«¿µü¸é0Üß>f)ÀIûKççsþ?þÜøùpØ GÃáhØÙÝÞfð²*Àñîíýñx¿Â*ÿ#¥ò¿¢ +p£ðÿ¯³‹Ç¶Ë¯<³Þ¢Swq\wnå=oÖ¹5¦vü,0€—|òìûÞüx^\±¶Œc¿§úQœ&q§qŠPÆiGÇ¡¦8‰1Êõ<ÆÙUO({Ÿ+óá„}B)F8Å$Æ Â)BØÿ‰'¬0@1Ê‹c„0Nq‚ÆaV†L[ãHEI†I‚â8!q”b„S„PÇ8Ž}/ˆ’¸ðç+¢ûß­××oüo®ñüùúúÚâÇÞ(•Jë¥õÒz©´¾^z£¾^*Õ×n…áú¥Úâ£~q£ xÚÙ3>ÏÛ€ƒ“Á`pj,ÇÿþVàaçxh GÃÎÞööö+Ë€'»w¶÷ÇÆ^%ÿâ÷ ®Á#dž™J_Ñ"(Šû u^¨l¬BІ}å§Ìb B]?RìÜ (G:Š% (P×uøÓ™)(„;ù'ÛVÀÇÌT‡êöìü5”?ÓA€Mp_8<—úå¥Ò@*J2„Pz~ŽôÛÎ'j­öÊßµF­V­-Lõ.íì¾yË¿(nh¥U¿¯å=¥Å>ÀÒ¼-p%ˆ"§%y~EIŒJÓ$ö£4âÅ¥(MSŒPŠò8G£Çq’¦I‚’¡ácŒã$Å)N˜U7JJPŠQDZÛÕb”âÇ£¡¼Jcþ¡yè')NqŠ’EQœ (‰QùQ’†N’(Ž'Iú–ùñB +°¾¾þF©ôÆúÚ-ׯëy¸¯­¯D÷Zi½´Vª¿µV_[_¿$ÖsPX_[/•Ös˜¹Ùt²¿oŒGÆg†aœ°½Æè/þbñ1·üc9Àg€Ï†ÎöÝí;·1€ápöçP~} Ù¼W<ºíöN»½Ón·wšÍv«Ùåù&¿ÓÜØØÜl6›ÍM¶ ”íi5ï5›Ív“oîðÍv·Ýæ›<Ï÷Ú½¿ÓâÛí{;|“o·»­žßiîìðí·Ù6±ö½öÎN»Ýn5›|³Ûæ›í.¿Ã·Û­6ßäùv³×íî´[íöÛ8Öló|¾8¨¹Ykò<ßâ›Ívs§ÝâyþÞN“ï.o »yšµo¦‹“¹¥Åì :òË >qaÖë_™cÇ¢Ä87(åÛÁØ©ÕjùàÐM|ÈÁ`ÕÝ:vyÙ Ã8Nbœ Œâ(PìGI’†®Ÿ¢8b#œâ#§) ÅK“$E “ç1NS”¤1ŠQœ&Iš¦q‚pE±×…Aœ¦q’"‚S”¢4Á ŠB(Î}“§$A¥¥)ŠQG~E~§(òƒ$Š¢(Nã8‰bQèÛŽÏœ€ëëõõz©öÖËd”µõµRi}½´^Z+­¿qãc92¬Õ××^ªÄ¬¯¯­­—Jkkkkëëkëk¥•FàgÏÎOö;ÆxdŒŒ¡qZÀþþ`áÑét¹ïç g+wööv·÷:7`häo»w¶÷Æ»w«Ö—Kår¥Z®T^?Ä^ñ˜@ *°!EñcÐz@D~_¢($fé !„šÚ…PmÚvöö÷n€"þÓí;Û{ÆîÝêÜ6o ý 7?… 7@<b«m Qº5(¢(Š ßSYö­€>a[’š¶~ €GP‡˜Àü`OÀ×’$ÁSÙJ.»[dæPàǪ܃ºÊ„<â¯DûJñ¯±¥æ°¦î.AEÚ ²-¿} ©²ôj @=ý& R­ÖjµFcöWv7<`îèÁfúk+0çõ‹‰@¥2û]YZV›Û‚TÊ Âi±=yE}“— â8FI”$QèGqä…q–Ÿ$aÅJ1BI’&£4I1NâÅ(ŠQœÄi’"œ $ÅIÅQ'iœÄQFQ…®¤…(I“#%Q'qš„(E)Jâ8A(F(Žã4ŽS„P³ò^ø‰ïa”øNÄaqQ'QºšáLÉx«¨þÝ¢”Öw/1¦¿ô)ë9¬—J¥µµµÒÚÚZ½t;äïÖÖÖY1cþÏžŸ?{öìâ|°ÏD@ãÄ8 NN;“Ñ 3X|t–ÞŽŒápЇƒáðxÐétönÀÐ0ØØc»ƒí»ÕÙæ§êkÛ Ø{Ø+/òe9ù öD’¢ Ô€ ˆ¢x(*’ f¾Þ"€Ô„ºû@l9×ísçohÃ&c÷€ÔDÀ!8êåK…¢»Òë#BŽ Jò6J( +€à(°m÷%^8P÷€Ã #Dpï4@Ã0fWùâµ>óð«TjF­ZeM<•êÃ.ìÙ=_®ÜÒLP®V—îö—Ô—Ò…E(/À*ðM®kù‘ÅqÅQ…ŽçnDZo¹QäQ( Ò(‰ÒÅqœ 4IŠÓ„‘þ8M’8ŒS” 8‰£(L¢(Žâ8 +ü ƒÐê©AÇa‚PGIÂzxQ’Ä)ÛÈ™ÆI¾–3Mã(ŽÓ(ŠãÐõbßõÃ0ðÝIQÅ%aF±wåj–ÅOqU«^+Õs5oEå/­—Ø5Ÿ«yËŸÄîûõüOëkëµ—¥È¿úÙ°÷ p2œœvög'Ëg0˜ccÇápØvØ’€•Å@‹"àh°}g{ûÎö^uA4z]`ajä{³­  Š5IAÅ>øgÀ|·¶,ª]¹ ᄊÂhÿ ÷Â|‹˜ `¨ìHbWè‰"Š2‘¡¢Q?@Á=г¡®C*Š®CÚ@Ðö8òt% À‹‚À ¢€’­˜—DI’TðŠ_†aûåo8¥R¹R«UkZ­V«6ªÕZ­Æ¦¸ †7Nc«ZÜôöˆŸ¯*Ï`$®TË¥%±`Þ¸"¾Åõl-Ò’(]h¹¾ë…Aàɦïù^Fq%q’&qÂ~ÇŠ£$Žã8ã$.ˆ§aEaàûïM<Ïó½À䀸aÆiÇq’ÄqEqš$I…QÇñoÓ8ŽÂ0Žã8ŒÂ8 +â(°-Ïsm?\Ëõ}ßâ8Žâ ßwMÙ\?¨×ë/ÍÖg$>ýµÒR +_íŒ&¬¿q“F,µ5V)(={öìü<þó:£Ï Ã0NòÀ1Z>Ë0úyÎ:ÃBØ»E4 ÃŽFƒííÝí­í½j©üÚ@w~X“ìç  uÙö=ò¢ tÿTD¼PPXpKì>—lBEQ ÔŸÛ ¨ÜPêN¾$‘­é@™ˆPYàÛ¶!*ð^NàÙ?Ķ?îôxô‡¶(I]Aàñðôué¹2«JŠ2lþo¯8̨m¿úŠ“ïn¬mUó`gÃ[5fþרÖ V)¨Õ ZAuq×Gµ0ž_ïsÀJ¹”'Õ<‡`/ ´’”oaWµ)h¶çïGa¸&Иƒž«©ªe9ŽDq¡8Ž“˜ÝíQFQGQ'Q…QFq”ÄQÊqÇçX¶mZÐ4mÛÓ6zÛ®GQÆQ…~ÅQ‡qEqR0ù(‰Ã8Ž¢( }G³S³l×±TÓu,7pƒ0Œ#ß Bß³dÓ_ØÖã×ëõzí@)Oß×—ó„µµõ¼ +‹€ëkoÜ^+,­HÏXð_œÏ8À †'Ãag0tc弜t†a§³·’äáoÆx´g{wûÎî(r¿×[tŠI(±ë_èvÙÍË\@·'/¤ “ët¨÷°%X(…,Ýg‹D›¶D t»‡€¯Eý¬§È¶Ûl¡ „º®€>€¬AXy› ÝV€ o‹¢ØA"@ºœå*@œèGW¯8LÙÛ3^Þ’[e±]­V·Uö[µZ­‘#@­Q­U«ó…¿3—ÿB(ž¨Íø@e±mˆLµZYšùË7‰-Î'¿Bô=K’-Çò?Œâ(¼òÍrËõ\ϲ,ÏQMÏ¢(Ž£0¢0¢8Š‚(£0Š?Â0ŽÂ(Œ¢0Š£8ŠÂ(=×r\Ïq\DZ\Ï5Ë ‚8 +Ã0ƒ(rÐà ˆc¶“7 £(Œ¢0 ~EQè{l;§ãyžk¹ž%«^àù~à{¡ï{–Ö3=Ï›ÿõúúÿîå©{þÇ‚¬-–ÖÉÀÚí½kkkëkëëëk³šÁùùùyüìçƒ½ÎøsÃ0†ÃNVâ?ëeè,ù€íu:þ¨3« GFgk{wwko¯2“† +sè×Î,g|Jw$0±¡(ˆ¢(Š=ápÒPò‘~©ëÏœ€®Cl0‘úBÐW@~‹C ‚~>HbOv¯Ÿ‹w?Õ¯.áo&Ò$€¯!€¶m CÀU¿@?€Ë6EQò 7Q ðR‡úóW”†30^ÕÅÏîüj­Öh°eîFî÷Q­n5Ê•rµZÝjÔj[,Î+ó»åÅúaµšWØr›.` M‚ß +\ÏqMËñB?ðÃÀó]×uƒÀ÷ý( +ý ´zª“_ßaFa»ˆ#?d\? £(b¿ƒ( £0\Íñ? ÂÀ÷ÂÐ÷Ë ‚( +¢(ý ŠB?Œ£0Š£ Š"†qù‘W{aèù~†^„~x¾Å‹Žïû¡ïyžç:TÏóæ‹º&këo¬•ngïkk¥Òzi•×V´ý7Jëù_«××ÞÈÓýÛÊ€d¬­—އóó/ÏÏŸý5ƒg 矆aÏ`%˜Çù 3è‡ãNçøx:uŽ;Çã\d,`|¶g{{÷Î"ä™ßkÈ~<;]IP5[’ ½#u{’j¶m±ÛíJ¢(‰¢$H’” |:„êG*„ª(A þˆÐ2$`K’$ö¤®£©+й–º@’$Ȳ/mÿê¡ Mh«P…¦ +€|OP%ø5$ @xO’z’ä~l±+ôº’$I’ݶ$©P’eU·uhמἂÔjùåŸÇ93zyØ×ªóM?3ßÿÂ#lë6¹ îííÇÕeò…i#gùxŽçZšf9lVà»®cš¦åú~èiš¥õTÇ÷C?ðƒ ŒÂ0ƒB<Â(ò? +ƒ üˆ­ßŽÂÀ÷<Ç4]ËtÂ(ôC×Ô,Ótý ŠÂ Ì÷tz~†‘ïyQaú~²²^†A臞븖cifúž¦ijK¶\×÷}×u݉cÊ‚ä:îâOR*Õß*­­¿_`ƒ“—0€Åf Ng8\ ÿ<øh8ìt:ÇÆ0'†aìÝÙÞÞÝþ‹NåFqèõ€«« xت­þß¡=yqeN&Ïõ««êĆö¼ÒmÛ¶á#¯BhÛ¾xqeO^Lþ«)Ù/&“¿²_H¿½´¯Ì+BøÚÛ¶íç¶=ùߺöÚW“݆A» ©ðj˜uõ¶'W¶÷ÐþÕdr5y±óbb¿€¶­ýüñ͝^@êðùÕDµ¡=™Øm݆šWÔ í<·ÿ*x1±'±=¹|Épº·g†ñ°R«Õ¶jl…cÔªÕ¢¤_Y +祅?µ5jµùê€âj¹Îo{¯ÑhÔ–.Ú‚ÏÊÖʱ×ÖLËq=ÏóÜÀóL¹ÅmÖe7ôM®¾)ÈIp¾ïlv†Aø¡†¡ùžøAàûïûï{.T»\]r}ßóÔÇKšã¡çûžAàûaø¡ï»žæ_…¡ï~^àûžoYZÛ¨?t½@ãê\KÔ\ßw]Ïs}Çul¹%[ž»°¬wÂZoÄîBsp1´øIëëkkk, X[[ƒÖ^žG”J{Îà¤s2ì<;ÿòüË<8???ÿœ¥#cxb ;ƒÎ`pš[ù¼ +އËÍËÀñp84ŽãáÈØÛÚÞÞÞtªóÂoµ\y»úöëX{È2@–ì\Æ×/Ÿ_þ“ x €\qƒÌqõcáouýë–uØWú°iC€$ A ö!E¿üs» Eñ¨ˆ"€Í™LЇ^ê_-MŽu¯`¿øPÛîÀÁwôËËË>@EÐ?<}€¢š¹ØûÂ+û¥çdk3CFnG€R©¼U­5ªsØjäPÛÚjÔj…}ÀTæMC•jµÆ¸C£Ö¨åOnUÆ\ï«Õ¬Ñ ñÞ{ï½×¨U*Õjåíê|°¼8!\*­ì·pLǵ4 Ú–kY®øžDã$Çs5ºÀr-÷Ês=/زí <ß÷êìu>?7 cxbƒÁ`Ð95FÆÈÎÆÞÞÞÞþÞþÞ> óaçxxÜÉE€–UÀŸ ‡?3†CchŒŒ½;Ûw¶wf+U4…T«¯#@fYHò€@^^þùå 8 +Äyá¯?yo P!„—¶®_Ê*Êe{2ó›HLFTtý¹~Ù»T€ø€-éÅCÈ3[GàxmëºdC~Ý´uKŒ´ÿŠõ‡º~yi_*ñc<8 +€}XT „>É€®ëƒÁ ÏÎ +0NoƹT©U«µjµQ›íýe°U«Vê-PYÐÿóç˜jИƒÓó/(HÅ{÷F£V)W+åJuV\\IeL Zš,«–í:Žãzžë8š*«² $Ušf:¶ÃVk³Èô=oÂVmæ°ë±«Ù÷˜pç9žëZ–*˪¦BÕTUM³LËa«z=ÏuŸ |–Ã{žë¹žçºÞÄq]×÷Ïõ]ײ4Y’$YS%IÖ4Óq&.ÛééXš&¶$Ëv–°Ì®¯Ä­aœgggs%Ý8ÞÞ«VÛ{ÎphÃÁ``gcc÷ì«‹O·w¯þòbd ŸŽY°ïmmÎÑh<eú““aÿççϾ|öìÙùh€1281F£Ÿ/MôïíåóÁÅ ß™¥ÃáñÞÞ*ü?€íýíA§Z.—0°üÀÇ’Ä’$ I6èC _^ê®ÿù肇¢À&Ù«¡Îá#piCø[ BåòÞoà$o @}ŠþçðH׈¢(ÂS€ ÀÇ}!ìO.uÚPÑ%x õY ¡mÿLW]‡ú'Œ<è‹(@õ á„ðR?z‰0¸Ãá )` +í¯€Z­Z­6ªÕ[À|x¸Ze àkŒÌÑ¡h˜@­Ö¨5Þk4Þ{¯VfÂâK=‡V´LSSMU’5hZ–c¹ÎijKÓ4Mþ PUÍ4ÇtËq]ÏwÏu]×qÌ|·ãº–ãZ®;ñ\×õ,×q'¾ç¹ŽãX0ß´5“íÚsYZïz®ë¿|Ûs‰ëº®c{žã°¹®åZ®e™ª¦Êª¦ª²išŽã86[ïå@Sîñ=S3Í¥ÿ[¬7JkëE«¿1Ÿåp<¨c°ß c0Øggccÿœ}õÕÅØ >eUüýý½Ng¯º=8Í`?Г““a'/ä2àx°×ùì|42†ƒ¡1tƒÃ澞£ØÏ/þ¼˜IÛ«°€#cïÎ]ƒ1VìaÿáTʯ%X:ÒB]‡}xy ŽŠôÁƒ>€€( œ€(¨ëºþO] ¼hêðk Ê{¬R +àPQZððþýû‚Àqœpp ˆ"à(J¢È ¨ëºÝ³” <ú2«¶må(‡‡ŠÎÚ AÿPÅC2 =>RìÉ+îÿ9œÀ¸ ˜^_¨ÿµÔ¶j/IŠUŸ³çy–¿°0o)È5ÖSô^•r…•Ë¥•¥`¥ÛR jš,ʪ©i–iÚŽíX¦iZš¦BS35Ó²˱-×r,Ûe+tmÇ´Ó4]×±LËrÓ¶˲lË1-˵‹­Ù³LSU5Ó´LÓ±,ÓrLǵ,ײLË™˜–i;®e9ŽcÙŽe9¦e9®SÀiZ¦å˜¦fªZ¾æ×µ,SsLGƒ¦¦IÂF ˜« »Ìz®à,ôÏÎÎÎÎFÆpp“0,Àéöž1€OƒÁÝ`ƒÎÉI'/.Àè|42ŽÃ§+"à~g?Ï:½œä*ÀñpØÙÞîìíí}x+ŒÝ;wöÇ»û{•üþ¯”+åJµZ~Í;¢üÛ> Ô¨O Þ…t¯äÀ¢ØEûÁw¡®_þ¦ `SWý’)"”ó1~x(þð@à¸ïÖëoÔ¹wA7tEQ”$(°¯Øöå׿E¿Ô!»— ˆ@ú?A >‡¢(°>cõd 67tùõÛÀXÈŒ- T*—*l+dÁãµF[/gyKßü¹"i˜‹ÿµ)@­¶3ãá[\Cnì¸S5¹Û“TM55Í4M¶"SÕT5jlß®©™–m™–ÉÙ2-ÇÔ˲LË´LÓ4ËÔ4ÓÔ í²à×LÓ4US•¡ MSÓLͲ-ËÒ Ó,Ç‚–eZ¦fjš©i–f™¦c3ä0-S3US³ ©jÔTUƒ&C}L•…:/É7j³Læ3ÎÆgg£9'«°¿»g_]üìÿ¶W0Fr¸œt:Îà¸3“ž={vþYg¿3:Æ`0<9vƒÁðÕU€Î°óÿ£îo#Gò স±ãŽÀu{ƒÁ›\žGßì tooî‘Á@^€÷ö{{ÿH{{ooÞ¼‘º^®â~C÷Þìíí ê+õ›7{oèÞÞ`oîíí½¡{{{{d‡öoÞÐ7{o¨tÞ¼¡o*•1Øìí Þ¼‘ë;ß Þ¼Ù£ƒ7ƒ½½Á›Ý äŽßÁÞ›zyß΀øõ–˺žõü ²üedQù(€ÃC'uœÃÑùò©ƒ€Yšf‡£‘“¦Nvg€¼£L†þdÎÿ½€0-íÔ–k%dÛˆì$ûþ`É1#——ÑìÝâßÑ[zѰßöŒ<#»Ä'dr]†ý>!ýËèòòÿùOý×W„Òè2º )!”^þ껥t·ÿìYßw··×Ý×ݪ.È_ÿÁúºûÈ÷ýÒ($„ÐÙ¯//ÿéù„PÑK†„Ð?\FÁ[ÚÿÔ%ä!¡OgQ†!!ýg8‚%³h&»/£ËËoožÿ˜_ÀŠÈrÇÉò²>gg¿=-Ót$Ÿ¯«@†(ŸN§_OÏSÃIùë2=:<ùì³Ï>yÔéxçy[[Þfç³Vgkkkkë'o¼ÞóÀ ¼­­-¯×ë7Ÿ`½*›®^*¤N¾ €³²L¿-KÁr _iÊó2=:LŽŽŽò<Ï_-9üš.û´;‚€•X¸õôðåå ‹B ?ßó:›noÇ—Ûóªy¿;;ÁÞ`'‚¿ÞÙììììì ;Á_Ëu¹$ ;;½`‡ìüõN°3æ+:ë…|ÕÍß vvv;dì;ƒÁN°CA°ì;~@‚ v2ØÙÙ þzGîâí;ƒ Ø ‚`°3ìø½ øÁNà÷|ÏÝ|ôß­»Õ’ÏÕóúõë¢(^ äyúåµ  s; + »W:‡Î¡³ €ZçY–³Ã4?L»NVÞ©§ëŒ$æ.€aÞ,si‰$”FcQBþ=À’`žÍ®¶èþl’/dÏÞÕ»("û„J¾ „B)%Wÿ@h4›…¹töî]4£ÑlvõÍl6›QzùÍÕ (¥¿$ﺭG­u7šE³àjE4¢„|·ZÏõ®h]íîGßßÍöéÕåìrvÍöéìêjön‹ÒÙŒøžKÜG.%³+ºïýÇRò¬JýÍfôjÌfW³wÑ›Ùì?þÿÿãÚ-MóäY^ùÕ?»Ëøío[–å*Ц_)/_—éáazôw5þ®z+ÏÓ4Ï›U¢É=ú’ÐêàÂÜX²´¦¸À5{ñ<×sµ:žëözž×“ër{^ÏóýÀï;ÁNà½Àßñ'žûÕž½^à÷z~ôz¾ç÷dWVÏùÙn¯×ó{½ÞŽ¿ã{½ çõz½_~žï=ÇëõÜ^Ïë½^àû=/èõ‚À‚žßÛñ½ž'Wtö‚^Ïßï¹=·×ó=¯çnºî£õÆzgÓ»y^¿~]’  À +_WÙMP,)€ôÐIë>@áØNq–åùaš¦£QÚMG÷ Šü¹ã8þçέY€y%ÑYntT:GKøþV.ÇÌéþVU´èè¡>õý~¿OüÀ¯G”²ýg-BgßE4Ú ÷Ãý:Ñ¡Ä÷}×u[­V«åòŬGe‡ !ÄÜrÝO]Ÿø~? wwÃÙV5MˆîG”†”FÑþ¥7 û>ñ]×w?vý€ø„lF}¿ïoûó"J=ºÊaDÿpuý€Ô©Pû9^ 8iºL€éMt»ú<-_—££t®ò£¿{]½•Ên²²,K}nÿÍæ-h.e–,]øç¸6Öl³ãn¶Ö×[­ÍÍMwÓÝt½ÍM×sÝÍ^¯×ÛtýMÏs=o³çº®çzÞ¦çnVÞ^ÏÛt{=Ïõ6%Iz=×í¹ž×Û¬6lõ6]×óÜÍj¯çº›®Ûó\ÏõzÕ®žÛ‘ òªÝ~=Ïó<¹´³·)·{ºž×ÛÜt{›ùÈZ­V«µÞh´Z­Íçõë¢X6ÿׯ_çÙup(Sé*º¶SœY6Jå×߯lÛqœÌ±gä8#§Àаª::Ís»ï,ھ爼·´ ðyèÑ*èûŸ“]™…Ÿ²Ýj´ýæ J÷åDaº†ûtŸ†W”ú¾¿ívZë-Ï÷}²Cg½PÆîdÿ^ø¬õ1u·åèa:ÛšUqLjþ2¤4Š¢èoBú¾O|×ó刲¨ï÷ŸUƒÉ$3<9;,¤”Þ€3wæèÚË£3'Í+×ïô´<»Et1DyYÇœ³×y*ß@ÕZ–EY”s /g´y}ÀBþ7”ÛŽ´VϦÛé´­?ú¤åºnÇÝܬö`nºn¯çÎU¶7— ›Þæ\Yoü ù¨uËyýº¸é>D|yStïPΡã¤U-P] Tà8ÏFi–¥©#°°»N×î:Žcw%F™ƒ¤ÿŸ9™¥ PoqYFPä…TvQGfÝä1Ÿ§}¯ƒ€4¤Þ%7ÙJ dû™œÃÿy@é“]ê_‘¾ûQ£Eè¡”Ê@!¡û—4 w£YØÿù¶ûi«ÕrýBv‚YÈ€ð ²CÂÝþÓÖvkÛ÷Ÿ²îo]QJ ¡! Ýß§!%Ô“ üÀ÷}¾ïû›a¿ïû®O(  )%ÑÖŒ„á. )}s½€4­pXò£å<@–;i>Z +Ü@¹ ^ž½.ÒÃÃ/þ®GG«(ËR ,‹²XöVb•¨7Õ» +߀N«Õj=Zÿä“–´ýÍ…oàõ\Ïõ*Kõz›®çy››ž'?Í“èÉÏÚ¬°éI[vçŠÂÝ”æíy››››nÏu7[^õ‘9\<¯×s½^%36½út6+mnv<×ÝÜÜÜì´Z­O~¸Þh®Ò’Û¾–nŸE±êEžgQ‡ïQ§+u‡Žs˜:Ù’˜æ]»›ŸåK + ÍÏÏVμÖßvìJdFÕùëdŽn;Žm/! (Š<—8˰‹"?4+m÷½À’اd+ +wCZÏü"„Ä“…¼r/à[ÒFfÁ·á3÷ãÆÇ}zEé. I('‚D4¤¹ú'Ò¶í¶Ö[•ÏøWÞöuŸ†$ ”îâ>n¹ÛRÎ϶.wå‚êòO#ö¢Ýjð­¾wЙíöŸùn—B.)!ärëmXókö_”`îÔÈó|i:ZÀoËò,¿ÿö«Ó/´<+óôËüðèè(Ï_W1Àü&ʲ,_—¥|Çë¥"ª@*€Æ{Ði­¼t:­Vk}ý“OZ›î¦4]×õ¼M €ž+íÙÝôzÕzÝZÊ{nÏ«?G +üÊj{®ënn.®òr3¯ëɯóz®ëv¤j¨>Ås7kô*ùáyÕ²ÞŽ[‹·€ÛiuZŸüp½±¾þɧ­NçÚ­(^¯ºÅë<}ù€,ÀÑÃc2 è:Yq² @ÖEÝâ<ËGéá¡#ÇÜL.ЭðçU ÐÖ«vÀ +2¶U{ó¼(SØEžgfõ;Uæ#¾‡1€%£ùöÝÌ‹f %ÿðt6 ”þñ>'»$$”R½"Bô¿£äé§?ø4¼œ}ñÍÛ«Y}K/gûÑìòr]zI‰ÿØuŸQ:PJ(tž}üguŸ|C£¾ºœQJú®ïo“+Jé»­Ùìmty9#³Ù,Š®.÷¯þãÌ»Œè¯ª¡¿„RBß­?„!!þ”ÒËw——”Ò?zßíÓÙÕålvEßì/Ÿ|‡µêÇËQÀ<åÝQíHp©Àï¦ÓÔHOÏÊ"=Ì¥Õ¿Î_ÿÝß] eYµ”Ì‹|þ¯9d% ®ëk¸eᘼèÏÿtZsÔêßõ¼…èÕVú—‹÷Wf{¤«_`³ãnº• ð<éx=×Ýìx®Œ4,)¯çz½žüî›^Ï•þÂfå ÔÔØÜÜì´6kð³[Àu xH ¿þzúêá1€ +éaZž”¯‹Iܶ»Åyžfrh:êÊ®àÅq§kKÏÂqÇ9v*@ÃùsÛ®T€mÛ¶}œæy!ç¤t‹üèШÀÒL°ïõD Ïó>{Þó¼Àó¶¶¶<¯÷Ü{þü³Nç“O>é|Öéx[žçm~Öñ~ò“-o«õÃÆ·¶ó<¯çmy[[Õ}x?îÉwmnmmnõ¼-¯÷Y§Óé|öɣΖü†omýxË{þ‹-ùŽ_,½ä׃µÈæ ;Ê—]€k + —8þnzžéo§¯Ë<}Uàèèè(¿áÌçE^EQey&ß7oÚØhÜeY,iÿVgsáT®öÜß÷znÏ•×uÏõþrÓõ<Ͻḕ P]§ç¿Yé ¯Ž+,\·#}‚?ÉèÔ +à~ö:Ïó¢,ʼ(ê‹<;œ×Û]Sºi;éáÑQš:iž—eÞEÅïÎ3h¿þÝô7yþåÂVm»€üäNêttTU‚¤iúºÌó¢8)Ë“ó³Ì¶»ÇgE&õš¦©a7`w»¶ít»ó,€±€.cÛÒC°íl>¤( w‹ü0µ«Qokµø>ºK…€aôm0£¡ŒåïîîGQͶè_¹®ëûýÏ}‡â{4HðW­-B¥oÕämºGwI?Œ‚虿í¶Ü0¢$¤Qèû®_-„k¹®ëJ[”øZ?“~ÉþOêAb³èm}G)!„†!%¤¿K÷)}·I|ßuýj"¡äÿ c•*+–g€ä¯_ëÀ¹Èó•v€,OѼä쫲,óô ôº<=—8Ÿžåùa.­þuþwGGGG¯o 2ÿò8_*•gåtš~ýuSoêÆ@gÅý—.@ØÜ¬=o)°Y+€Êöç.€·¢$*¼MoÉèÜp6kàÞî¸×\€ÍeÀ«b›­O~¸þƒÛð³N^©n9 _ÑFYšçÙáQ~˜ÛNfkšawlt˜¦iz”eÞEùô<…Ýüwçe~XY×±mÛtººáœWÎÓÃÔIÓÃ4Ͳ,;̲Ã×eyR'eqRœå¶mgçEVMMShð&ìn·ëØõä,›Çü]Ìy ›w¹t§È$FCàû_ +†³%!h¸¿†ûQ´E?!O}ß÷=ß“3¼ÞŽï¸­õÆG}BÈ›z p´OÂ0쇤Gým÷ñGÃ( iDŸ}¼în·Z~k}ý£õõõFË'ÁU§ªp}Ÿø„vd¼Ì"B£„t6 „„4$aØïËÅ…[Ä÷}ÿ/]×÷? „Hù~@%d°L²|ôº|HÀIÚlóÛ¯Êò,ÿrùÃy™¨(O§Ó¯¦©‘žNå Ùü(ϪÀ=Àë"å´œfé×_Ý…p¥íÿúrà[‚€ `IÌãõ•q×&ÙëÝtz7PÙõæj|ì²{5 dŸÌè% Iøë„Ä‹|·õØ}¶EÄ÷·Ÿ~üQËm}úXz°ëÿ§u×Ý$Àk­¯·ä¾Ú!>‘CAÃ0ŒBº?#»¤O"BÂ(” =âÿ¥ï»®×óeÃ`’ª©P*ùKžçY^ð¶ Àò÷,O´¶ÒÓ¯¤xµ €"7ì¢<=¯w+寎êtÀ—iºêe9'BYžÉwO§sàÆÊÂÀ¥q · #ÿêÜÈl.À{¸ 0 K.@ç† ï¯ãÉ·nº›• Pló† àÞéü¬ÓúÙmöŸ¦i:JSÇqRdgŽcëºítǶíî(ËòC[wŠ¢ Ðáy™ËÅ]v·kÛ¶¡k¶ƒ@·È²¬(Š"ORy_£Ñh”ŽFiQ'EQÅIq’Ù¶ŸäÙüz€‘eùÒmžß«àd޾p€]»¦c›¦igù(ÏGy>ÊŠ¼ Œ4OWP€ý^ghÉIÀa´Eûͯvé,ôˆïþ•¬óI@|¿Gü^àûîÇ|9ö“„QEt·OÃ0 w=òôqk»†Q´»þƒ>þô±ïº-×uÝŸµZ­ÖGëÆÏ>Ûñ}ßmµÜ§}ß÷É È,¢³($d?ŒB”ø»4 Ã(ú›($aD<Ù–èzµÉ?ÿLß­A»»:úy^~:ýê|Õey™Ý¢(ϧ§§_ÎtšwóüUšåGG2°¬VÿâÅYY–eq~6f_ýu· mÜ—ý)Ë¥?«Q€Îr`Åp7ç"À›Çæ.@ï.ÀÍ,€{ݸ5 à½? à]O^@ëÓÎö?o¿1lDZMM7LÛ¶mÓ¶'ÍØyfÃ)²Ìqºv×¶MÃ4 ¬éŽ Ð|¯ö¿€ãã¢(Ž‹¢8Ù¶eY5û{ä@`¬îŸgø+dΪpÛ4S mÛÌW0ÊÓT–×øP HÙGCB¢èoö£KRBÈl‹l?}êù¾ë“€ßHàïøÛn«ÑzF¡Á$ú›_…d“l·>rÃ(Š¢g?ø³õZ=ßu]wÛw]×u[5­Ïˆ,ânW#B|" £(¢!%4Ü%Q†QDHèû~´Eäf·®T (!Ä¥áîÒ$r’åy–¿*_è¤Îõ @n£å4@7­ðÛóéô7ež.• +gy‘Ý2/ϧ§ÓÔè–Ó¼›ù—÷`%PÎ@YžŸM³¯¿þº ÛîΗ…Î (·g¸¦®‰ò… ð¾,Àm.@gÙèy•iËÀu`ž| À£eü¬ÓúY«ÓÉnžQºV7 Û¶uMÓ Ã´ ×aŽchF5™ß¶ Ã0 ]š¢Û†j,wï:ÕÄy[JñIpVdõþŸÌ ®À™+ +¶óqÇÖŸ8ŽýıMÛ¶u]×Á2€£|áÌ­ÿ{ €_/N]zaÒË(Ú"†„„tk×ê{¾ïûrŸï˛ے1€Ù€üêrŸîG„ø4Š~EÜݧ­õÇaD£èÙGë­ÇO·;îS×w} ·õñZŸ‘€îúú§î¶ßF:U / + ñ£¿¢Ù†4 +wÃ0”/;¤ïûO{n½w„xïB|BvébE!DÎw}U¼.¨Û$Ê<Ï dååR!@íœýv:–åÒ@ŠÊè–y9žž§À.§¹åù—GGGGG¯_ß­®ygeQåùtše_ÝíBhw»]eièý¨9pK`) Øû/s>$ à­d¼;³n €Uàg­ÖÏZVzËqiÐò˜¦¡)JÝDi˜¦i;º¦;Ž®èOÇ4¥íëhš¦44SW€£›ŽóDFðVú޳,“"@ ??©²ŽTÕèÏk +`€Çpê Œ˜ŽiêºÀ5Ø.)€ï7–’çQ4ó(¥á~FQÊâ¼-ºýTöï÷Éî.%þà•;ƒ?ý³IHvÿHiÑ}JÃ]â‡!B—<~Üê‡aöÜj¹Û¾[ ñCßßvÝÖºûÈ'„øŸ¶Zýg¾O:$Š( #JCrÒËhF©ô'Âè—?ï÷ !W[¡Ü @Ù )%$¸ªzhHCòË:qx”çYžåE¹H³L E£"›+€ΦÓiYæùb2ÌH (Ëéô|š®¡bšã4ϯàèà†Kpvv>÷ìn·›. U”Æmè¬ÔÞ–ð\×Ûü¯˜p¯mÞ]4×}Y€Îõ,ÀÏ:Ÿ:·ÛÐu½©äxŵF£žÁ¢ëº®›@ÑtSkh¦©7u°¼¡UÑ5EÑ5Ý47 ]7l{uy_–gYq,Pœ—Y:’ñþCdž3Êî€i;Žs\¹vå8¦ãØóryV /2P^,bвØøýÀr·)¥[„ $ð{½^à“Ágþ¦ü­“ÙŒøçÔ z=¯Õl|äù½ýý A@ü^@zžëýÜßô[®ïû½À]o¬¯⺾çU¥©>¡¾Ûi­¯7yþóÀkµZ›®ëúŸUÁŸì¾ïôd‡ôz=¯çKÑIÀó67ÝMŸ\ÍHô‚_ ‚ ô¼€ èÕs&òãj4ãJ€2ϳb„ÒÅ܉ÔIó¢¾PO§e™åé\TAÀ¼<=ŸžNSÍȧ9J‹ìH`Ù8\@Q–ùÍÀÙ4•@€EöOiÜ€Õ"à +`µè_Hàg­ÖÏZ­NëSûÖcêz5:©ÙÔ¦­5ªz5bY×E××mcc£.³^Sª«º¦4´FsC]1¥B]Û¶¥]gÅIfÛ(?+d@šf£l‘0m»¾™æ’ à8¶ýçŽ-K]â*U O@Y‘¦©ñ/!ðvq®¢«o¯¾{÷nöŽþ#¥W3Ò¡3B(yö9%ä÷›‘o£Yø.$ŸÏòéºK¯è›+:›‘]]¾\]F3J¨ÿ8º¼š‘Kïã]¿éß'{{„PJ=ŸPŸ†¾ÛrÉ`¶3£·Ÿ‘€Î(½"ôjövvµóÝÕìjöÍwß;};£” (‰¨ëBHD(¡„üžÙýö›«ÙÿòƒÁÿkðnvu)×Ìf³Ù,¯V<¼*^:y8Ìó"Ï_¹1*ë-ΕX@ž/vÄFy™#»(ËóéW_å°À¼h€Wiz˜çÙª˜‡Îdb`:¦K@š¦K¨R÷fZwdÜ?9 àÝ›½ï/ú€,@}ùoµ>혷Ã0Œ¥ê× ¯À¼€æšÀ†®ë†nÆ’Ûv–W ÈO²®mŒŠRÀI3Ç1t2ÇU2Àqæ_'#¶ã86XÔÛ±mÓ6–@–Ëåyj”åNšsûÿ—Œèe½ä+!3Ï!Û¾ÿÌ÷ƒŸBfä—ý>éû>í¸ëŸBéî.Ù¥d—îÎHÒøÛ­õmJ)ñÝÖÇ­§|·NÕù²­×ßÞÝþØõ yþ¿¾Þr}WV!J©GiíÓKÒýø®+W ¹¾/wû.¡„F»OI(Çï.„S €,U¼.€–ʉÒéQµ$+¥ȪJÀt^®s~Y–9²‹¢œN¿ú*Gå¡@í¼Îó4M®àu~38M—=€4ÅK¸õ,‡[­ÎæmYï¿aÀ“s÷ö,Àu sg!Ð\Ô—ÿVëgÆmGšxµ™µ@£!®`Co‚kÐÐuÃÐ s ǵ¸?ÎN2Û6²â$sœÔqg”:Ðìð0KÑh4¥éBýÛ¦mÚ¶“9¶.’OÇOjtгy i‘ÀÎò…X›/‚\û~Û§¡4¤]Ò—Ø%ÛþÏ}ÿç¤#m˜ôé3÷©ßúôã–ëÓˆ†d7¤t—õÂ0ì÷Ÿ¶ZŸnÓýÐw[­ÖcòÙ_¹u¶Žøñ‰ÿÔÝv[Ÿº>y>뻟ºî3Ù†»„Rïj?’„þîö§-×m=%®ëùý>!Ï|ßÝÝ“óI£p—’"J •C(¥‡ùáažgyþ*/s 9y‘×Èò<ÏŠC”YÝ,‡AJL¿:[@¥n 8ürÒ‘xu]dK(Ê¢—©:B~Þ¯Üõu}ýSBHH÷ Ù•ŸMfÁ¯Bâûî§.!d—úëë·\¿ã÷üùÌÑ€úÄïûO··××[äùŒRÿñ¶ß¯–R¯óGCÿ±O¶××?Z_oí¤ý¾ïÎäg’0šJ®ÞÐ}JgQT2%%lÍž šûzt„ÒRFø²‘@özIdi5Ù%“Þ ;/Ëéôì4GFvžÛi~”•Ë.@š¦£<ÏE€+˜ë‹4]öxjŸ¾G´Vò€7*W +ðüÄâÅÆœ „†5Ú „,Ì”à‚1Á$ãœaŒ1à€1ÁØ †ù2°qÆ0¶0Æ!¯@0†æ‚3QŸ8®@«óiç.Èej@kjè@®[½ÃXÄÖ®)SŸ‹€%ÿâäD†Ž‹â$³McTœdÕ¸Ÿ4Ùè®T†mضaÛ¶mš¦iÛ²p ¶ýÄ1@Èò,F£,Ï»:èæyš¦fåÈyÒßPJ÷EHH(‘Ð+„ʬŸO>#„„¿ õëˆõ}×}ì~êÿaàº>!}Bü¿rïÒ(º¼œE”\Ño"9JhYeù(Ïs[CÒ>když£n!¯ÿ£JTÁÓß®`¾ &/Êóéù4G =ÏQš}yttTæ«8ÌóLÚ¿Tüe¶è(ª@úõ×EåHpzú0¼¿/D¼¨€Á +Ü ÁæXR†·àcØÂèJ£Ðm¨ ð³V«ÕùYG.P¸qk6µj¬j³ ®+€1€¦v—¨Î +²,;9>ɲL §(²ùúßÌ »² Ð0lÃ4 Ó”¯l» +ý?©b¦cš¦m€ú,ò¹ @7ÏÔ1» ë<À÷½°·µõ“ŸlmÊ™ [Ÿmmýd«óYç“Ï:Ÿuþû­Ng³#ÿ:[oÓÛúlÓ“Ÿ»ÕùIg+øÉV§Óy´Þhv~ÒÙê<úacýÑ£Îÿ(;þ¼N§ÓùIg«Óét67[ÖøÈûñsÏëüð‡}ÖélUŸöãú‘l}öÃGrÖ–û“ΣÏähÒÏ>yÔùñÖO¶¶¼^Ï—]ˆõMž,«Œ;ËóÜVŒÑ26£n‘e£QžeÙò$¯²üíyY棴*8ªö¼Vøª°a:Í´È+äù¢ àè:òíÿárß'ä¯üA@èlFgôêòr6£oÿ¼›IåpEè7ž÷–†——QHÃ’]:£³·ÿéÛú§àrvuõÍÕÕÕ?ïÍfu ŒðˈŒ¡i>ºE¼Ê³Ñ([åWžžŸ–ù«y–ò¼ìÚùQq>=ýª´azž£Q™§GGùGsŒ–<€òuY¨€ðÛé4~]T€¦ijŸžžNß§–pk/€ç]3ÿk +Êg ªª*P u'ðƒ@Á–?BkraÂêMUú¯Ùl65M `΃€w*€Ï£€Y‘Ù†áäÇ 8¶VVýŽa¦-`Û¶mJTs@L`Ú¶mšº4y› O ©ÇTê2€ï1–cdâïBCýxk? /£°ÿÌï‡Ä'„„aôëÿðöÑöS÷±ï÷ÃÈ£þç„jT’g¾ï’ ˆï~¼þØõû$¸ê“_EQî9äk—„¿¾|ëúŸ¶ÖÝFÑça«õT®yîþ2¢aøK²ëÑÀ÷]×ÝvÝíYÇõŸõ£¿ «e#D®!ù§ïJwÃÙ~}Dd€‘ü=äyŽlPà°R2¬7¯ôKÓ£¬.Ù;ýíùiYäY팲,ËË®çùùô«¯JvOGvVæ‹b¡££ü(•§iz˜å£×K8›ëг²,‹ò|Z~9]ñltzúõôß.jïl¾·ã»°¬Ô‡*v?–þÀÓе՛ÜÊÒ ÙljMíº¸%  ß¡–b +¦Q¿ldÇÙq&ÿ*2Ó0œ¼Èª´^æ8ŽV«† Ã4L™¦iHÔŸbÛöǶmW + Àü‰çvó|äT.À÷Ë]4ƒàŠìøÁ!aÑÿôü‹]]†}ÿY¿2½ðo/£ÝÏ|ÿéÓ>!!íø>!”0$„ød·ßßv?õ?w××o÷¯üàÙ%Q†! CBú> £ÿ·ð}·µ¾îGÑŽßút»ß¯B´K!Ô›ÉÁÂÛþvÿ3øý>Â]⓾Ü)]þ‡ÿð. !¥³(ŠèY@–e™þŸ:ÀÉÓk¨V„޲Qž¥éQžJ|uv~^–Y–ËÁNù«,ËòâÈÎ_ç§Ó¯¾*»F÷4[àõ\¥•(äh¡zÈr ð«i™OÏ»Úv×¶Ó4í¢ÓÓ¯§_¯®ÿÐ^ŒoÀÆüÅB|¸ Àùª ßPµ p- Ðx?cŒkÚM4­9߬ò~@¿=0·~ ëK)Æ*x|||\8¦±¥}ÀΜúÅq*U €íÈ ÇÖŒ'2PÙ¿–Uµ#£¬kÐͳ9ªZ/y¾ß ;[©¼CúîŸßt7¤$ê?{æûÒôÂèí7¤C‰ÈnHégDîê%„¾Ò÷ÝVôœÀw×?r·©W„„»D®õ!„ø}þúræ“§­u·FûÚjU•Æ„Ù/eu¯·5 Åûaðö;J ûô—ä羿ퟄá¯ÿÓÛÙ%»—”FÑÌ#u¦Á‘­•ž+Èò<Ï»(Ïó£Q&]€¬@Q–çgÓßy €W£ÑH ”0Œn–fu#ÁßÕÈæû‹²,ËóÕRàªÎp:-Óé4í„À×_O§Ó[Ö €Æì +| ÀÅ{€tú@ÀØ‹/Ó4°zdDOŸ@ˆ pk Pñ¨_ #ËŽ³ã,ËŽ ǘ+€j¬Ÿ­k«‹ Ö°MÛ4Mélý+·µÞh‘pöÖÝÞv«jA*ëÙ¢ÄûÅU†4 +Ã+ZÍ*þÿŒ†ûÑe4 ê^ «¨ÎV¿·nqTUó¥u0­fý£¹‹Ÿ¥i6Êòªøü«éo +9›*¯j‰òâè(/æ¾\šöêÕÑÑ«££k¸9 €s>ÍS €üUjçRLwŸ{{„B<ðà,ú€,@uõgqóëùÿꕦƒÅ;ïwn jJC®g®ïÅXuêsâÌ7ýU +,5:Îh¹'Ñ0LÃtŽíȺMwLÓ4õ9Žë™cè ›g£î +ª@Ï÷_Á?þ8 të2ŠÞ"JwCâ÷/we¹mHé[²ß!»! )¥ûÏ£ýð—;~@H({rû¾Ûò{~àÿY£õî„$ ÉC²K­ú‹wCFo‰ïûO[5“}J»Û¾ë™—!²Eƒ`ðY0˜‘ýˆ¾£4 !»á>yÖ'$¤t?zKß_PºK)¥oƒˆV½€„Ђ°»(è¿^+€Ñá¡lÿ΋²(Êòìtò·YÖ +À€£‘œ’åe)0Ÿbsm&`Qäy^¾^®ÊÓé4w ÝíÚvY:Ýüôëéô}.Àݽ&m‹Ý7³Êƒ,@]€n©¸ÕÕ?ŽãWüà@Èy_!ÐM°‚ ºaèºaèºî8žU·,sŒ®a;Ç‹Ý¿Ž €sìK?Áù‹ìz™²ùÄ1éÈ ÛÔtÓ4 S¨Àñqžå5–€R}ÿþ+€Að¿Ï‚ç{W¸ºŒh—ò²î’>!$$4 ÷Éþ•Á·ýèùå¯ö)¥•îÒw[ÔŸÑfcÝ%Ÿ„a—^†!!aíÓ°Î5„—Ï‚Á³§îÇæ†ûƒð±»MˆR†»„­ßÿ~+øÇ«w³·QFtFwå÷'Ïú$”ûÃÈe@)¥ô›hÿʨÜL¶_¹”¨2»PNšey–):Ìó£ÃQµâÕ(«ÏO¯)€<ÏË9 f£¬T… Ž^½:’u_æuíßo–—ÌǃœMót:=r êvíîéiŠsiÿÓ÷¹·öp1™H …¿%ˆþ¸×Ò€uª«¿4 á•€2X½ñž,À€t'@`X¹çÚ¹?vœìØ12dg'N5m̱'säàLº²?É4 Ó0 £vL ˜¦aš†´ iÇyv|œçYž;†»Y6rºærà_BpçÞ oè€2›=§ƒéíø=ßó¼€ìø„’2ëÁÎÕ»ˆî ¶v¡$ ƒ z~àmºnË}þæyç‡ë­Žø„3Bˆï( HYø×s7}wý1¡Ï½VËýKÏ÷ýßÛñw‚!;ƒ­oJÞÌ¡{ƒ!;=BIà{n@H@ Èày°CÞ½£tl‘ª¸€QeGY* Ò¼Lá¨ÈŽFyz8ÊÒ4½Êä,ù³ÓéW·(€¬ÈOOO¿2 4JW†¿zu”¿ª* Ól©ø·ÈË¢¨çTåA•0ì®mw§çKh<s0. „ ò{ø/ʈ»À]yõã8Ž0–¥iÍ›·¦v7nsVÐЫûÑ*«Ôum±À«ÊzOO§ÅYže£e£QV¹¥ÜeójÙX VU —ââô|úu™–_ç)²»]”KœO’\éàœHTXVC†1ç,N{™`&0ÂB¦UU…(" !„FŒ]€3ÎcÎ9˜s Çql³ýcÛ8αãË +)DÃ0 Ý4MÍpž˜¶i˜¦®¬é¦©›z%1@žåÇyžçyšÙ´³tuIð÷]ü¥„†Ñå7ÑeäÍêËz¿ï»}9Õ“x2ñFi´ý:ŠfWï~…á\H=nÿ`ýq¿†4Ø!ù9!„†Äß ñw|ŸÌ!dûikÝ £(|JüºN|Bèlë’Ò]F—Ñþååg²€ô éo»þÏûAø_x‹‡½E³oþzggggg§²­[)€ÑèËtî–4Š¢8<Ò4Ϫ1K +à¸@åHäβ²ÿyžçY±$Ê9ò²üÍÙÙôërT~]¤v×î¢ük©ÎÏÏÏÏß\*æ¼[€sι˜«€:#0Äø@àX$â3"UQ  -˲,,ÝçŒc̹`Œs±àX`laÆ9ÀücŒaÆb&Œã  Žù#>æ1d`1B +„°-CJbpÀ0æ 3&_1Ëââ@Ä·zü7 xaÈàþJÀµÛCU{Ñ< °€ZئišU°.<Ît½žQ&Gºn›šn›¦i¦®hºiè²HÓ€–gyv||œçY溓g©Ó5Vlÿûº#‡ñÒËÙå,Ú9zßw}—ô}ß÷IèÍè.¥$ iÑ(Š®Þ^F²~?Ü%¾¿íúnHéöÖ·wÃ0 ¼YZ¼ö}BBòsGê|â?u[ëÃh×Ývÿ‘rcW®ÜßšÑ}†Ñå7—Ѭ3 ;>ñIŸøÛ¾ï÷ýÀ'—¥»”*¥Á¿ +‚à_€ºEqtt˜¦Ùèðp”¦Ù¨@Q¬}€ˆ9oÞr¿ø®¢ôª(èª!ÿ¶c›†mÛ¶]… ÿ¢r¤˜ËÙLÓ4U_‰TI€<Ï2Ùj˜9NW_Jãûž ”2øeHhl=ßêA@ªu\=ß‚€<§”È ìBÈ`ç³ÙŒR¾çyV‡Pꮯ·\ŸÁ/¼Í !ÁÎN;ÁN°CA4 z^§Õh„ú­N‡„¿$$È Ø ‚€JTƃ{[AÐ#;¾ïy¾ëy~ Èo6[z dgËÛÚÚúó-]7 hè +]€Q¥ó +à°, X–²,MóQ%V k‹£Ã£Ãüôôé¨ê1Ì‹BÖ-B¯² +§§²ÑÃqŒj­§øeƒÕRàj¦˜nèU%‘aÎ`˜¦¡¬é¦®›`Ìòì8ËŽ‹,s C–êK¿[Y ô=À»Å™ÑË·oß½£³Áw³««wï‚73J)ñ>!3úÝ%ï¾ñÞ}÷íÕì»ÿüÇ?^ÑÙì¥ÿôîíÉÕ¥ôŠúäYØ"WÿùùxÝõ) ¯®ès:£”Ò¡”Ò?¾‹èlvE¿{÷-]×§³«+ÿÑåfïÞ^]ÑÙ›«Ùà ýbvùÝÞ}GgäWWï¾{·õ{JdðùþçÄFÞ]Qz5ûëwWß}óÍÿøÇ¾ÜŸ½û ÞìÓ7oÞ¼©4pŠ2?JÓW£ôËQ–¦r¿l% (Óu Õ>ÀôtyÐh”•5 c$;¾å§æuÎ'¯ÖŽd£¢\iÌó¢Ì«j€ßœO7çE*+¿ž–éèüüüü|z¾|¸Û@#!„œ3Æ8çœH?@"@ˆÉÅ„%b,’‹áKÆ^ „9cPi(P YÂ#ÌùD\À æIó8Ib'0Á,Ž9çq Xœ$‚‰dÂb–L`’  6œ$LˆÌ™`c4Æ!¬"( 4Ô„_€s&b.xóxÌëÈÿ’ù‹‰þ!çþJÀ;¿J¿5 Çqäb?Û¬bËX*%®TÀè¶mÊ +@EY€’Usf³<ˤw³Ì¹ø~¯'¸üUt9›Eß¾Ý%„~Aƒ+BH໾ïú>‘®þæLn¯Îì‹( +C߯æ…úþnk;|KÃ>îoû>!dß'„ì¾Ôû‘œ;J(!ýíÖJýV³ßï÷Ãjv0¥$Üší_Ò«Yô­œÿ÷›3B|?ð}ÿ©ï†3J ¡[4Z<"³Q!Ã0 „@·(ó=MGçÓóéùùÙ=˜÷` aŒ1BpÁ9gLº•P©>™–ŒyÌL0Œ°@PUE° ‘Š eaŒ0OøE|…@œ Îã˜c̳ƒXÄ‚Çq’$ð N’— {)/0I’0|‹¡/°œÉÝ¢»rdÇþ>¥!Ñþ¼ Ü%>mm‡——ý>~ìûψßÌ32@|òÅŒìÊ  Rê·š~_Æù)!tŸîζ¢èò×rOAòÅ%$ ¾ï»¾ïö÷ !dæ}A«þ¤}JC:¨BÈ0j¤i:J¿FË8,Jk ƒyžÉ Àô4_H€<ÏFË.À¨^]‹ž'''åÉÉÉIѵí*ú_y^H0=ÿÝï¦yz^¦ÈqºÝüß•å(=_(·O’öÎ…$€…Eí`\EùÁܘ$Éäå“g! TiÀv» Æ3„ ÂÌBóDÄŠã²æsŽ-haŒ1Ç0ŽñÅK!.&Lˆd'±H^þ=NÇq‹XpYðSüSÛAÕj¹‰ + F˜Á˜ãªœ‹ÆÄÂüÇã$ß ùéwÀ¸«ð¾ã×ðäÉâoûIµü£€î<©½ƒ'«¨§ Ùº¶!÷Ž™ºl<6µy¹Â\H87Àƒ m?X +È¨ÌøOQ½·—ßìÿ*Ú¯{÷+ໞïûýŸÌ¶ªp}HåDà€Òpi?÷3ÿQÿ2Šúýàñ¶ïû~ð. ˯f„|.³„Ògn³ßï‡ýŸ÷ õw)¥tÖùömEѼ9¸S=ÿ/]Ù5ä“Ëê„aRJÃ]HS ÈóôËÕ&ø…p¸¨5^ÏP+€s#'Š¢¨«€óyâ8OÓ”@Ó0mÓ65Ý‘Àî@Õ º©¯54C>yÇqœÃC'Ëó,³áŒþ@p `B`É ‹¦*m ´’cŒ¯›?Æh£„Ð/ª4¼ +Ù'$ CâÒ'}·µîSý£ÇO·}ß'´@ §zû¾ï“` KZëŸÑðÙãæ¶O|Ù.RúcéÚGTÓÎŒøÒ‘¨L°˜Ö,ª`6B –5ªD€¬0`Y.ò\F‹år3TÖh”åU °È›NÊ¢,NŠ¢,Š““““94MZ³È‹¢<+Ï~÷»¯_åùyiÛ<ívóß•e~~vvvvvv„Ãáp8¬T@ÕíƒP­º W•Aœs !8ÃYJAÞ˜@hYÈbCŒ0F˜q.˜ˆc<L$<3.†É &8³,ƘÅdаŠ=Ê)àc„»˜ $ßú)\€¢B„!ǘ .—5„KWÿÉdr4ýlÜ|paýbÛ¦óäÉ<XÍûPuÇ~bÞ 6L°¦›¦„”ÚÐt]ßX€ãfy–eÈEâ +x; uÖ2nôjüêâ‚}h à»p7 ÃTv׫|u×÷û}Y@:ƒÀ÷ýàs^~3 ÃÙ $3?¬šx ñýÖ6 C}ý±ëúÄÿùw5üj¨‡ï2|ßs[Ÿ®?Ž®h¿õÈ÷Ÿõ}94’­Ë„ò‘]B¨TÛ¾O~î“ÙV iBÂËÙ~Ò:•n [@QÐ(–‚rhY–åô4ÏçcAG£LfOOO*åy‘yžå¯^½Ê‹ò¬,Nв¨nEѵíÂÑ*hº¡ëeyvþ»ß}=ÊóiÙívÓn7ÿÝ´œ–gçeYž•÷@ˆáp(–€,«"€à¼Ëºµ€¹àœ Æ‘…1´—ì_òòÿSŒØ1ÌD3ÁcÌ9æLpÎ1ç‚wa"¤±",„ÀŒqƱàœ1B\È€$Ü#ÌâÚþ!„@iÏ Ð€„1—wÀØŠø—çfÕ¯¦oÜa¾ó÷_ €m>1Ÿ˜OlÇ´Í'f Ó6 Ã4MC@–ú›¶­¯¤'u ëºajkºiº®oÔ.€^=rµÞ00ʳQ€ku2Ês¿ýß hYMÕTµ€u?Æãñä‚1þA UP½jï9¥t—×÷¯h5ÐWÚbäSºE”Ìf!!ô’îG é?#®Oh¸½þѧOý>!dð¹l¹ ) CBö{tG–üÀ"ê»¶ýg~ô7!ö) CJ·B¹§¨êøbKÞÇçÿ-ñû$¤Dî1&4ˆö÷/#†ïêâ­Qàõë©ö}?yâTC× ÝÔ5ñ«¢Ó6íõ/7–ꦦêÿê¶œ/(ò,C†íd7 7@ÿè.Àû0wåÃÀÄðÁíÀß~{5‹fÑ,Ыè-½¼Š¢ÙìjöEïí%½"UÂý fWWûï®è¥Ü'¸;óèì—W”Rþá*ì‡3zE[þ£†tîÏf—Ñì ‘·ÑŒÎ":£„ÒA@ftæ»®ö©ßs}ŸÌz3r9ÛfÑ»wøî»+:û=½z>£3zE¯®öiÑ«Ùgÿ< #Bél¶7 ³ÁçW³wôÝzI”T#ÁBJB¨|€Ã4M3é|9Zn€ó“§ižUi€ééù< PŒ 2µ­œž¦u@VÏ )–'þe¹¨hÖЗåEYv»]§kgùTf [þf€Æ=¸éà%?@:\òqŒF¶ÕQTUm„3ˆ™˜p,DÌ>‰ñ˜óXsÁ1 &b.„ ÁqÂñP® å˜ ŒgŒsÆÎÅ»L° €PÖÖÏvUËB¼ºkÎÅÂü1f ¯iʵÛê–`ÞOãZÏ4Í'æÓ|b;¶í˜NU×kèºaºfÚO¤D°MÓ¶ç}ÍfS:ÐMMÕMS×›Rhº¦ßÀqžeH7œ‘cß­n!„ðC\€‡+üì/NÑ0¤”„ìRJiîÓìöÝ/ö) +7? „þ’„tVÍé[ÿ G‡Òï÷ûdw—ø-ÿ‘ï“Ý0$²«—~Ð ål?ø„Ûm="¤ï»O}ÿ¡Dº»aH£KJCJ‰GÉ® JR2#»»Ÿ=‹dp€„„ìÈ•ô™Q²z=ÀÑÜ þO]9 Ëó¬„@WF/P%zò<Ïó×E]\ ˜ßª@\(€ã<ËÏ3£ÛM»ØÎ¦UÉà5pCL&w @`¼äÎ1ër!bÁXÌCP–åÎ=UþÐ3 ‹±ÀLÄq,.b$8ã±Hxœ1æð3.¸àc‘Ä ™à˜‹8œÇä,ŽÆ8®—ƒA¢.¾k£ Th!,˜àñ˜‹„ÏÍŸÉ0‚àŠ¦h+·M© ¦n. þ¾åE+Í|Õ|oSJ}[Žõ4 ]7M]×6ÌåÀJh覶¦›’9M¥¡€Û΃€ö½øÑ‡àzðƒw, º€}úÅux»%up0 „†úö)Ý%Äßà™@î’P.ÿvŸûDv=êßw·å~‘eD4¤á5„»Ÿ=Û_ JvCz5£¤OÂ%˜•x燕 `AØÊV¡[e«ë­PU¥NæyQ'óöß“ÅYÉÌÀI~’åef¨ŠÒhdÙ´š~ö›ò^LîD@U„¿P ‘p!DŒ!G¨êrDàXˆ‰‚yœpüeÌãê>b!b$æŒ &„˜0΄ó8‚‹„¡1ç\Œ…àœÅs<–-Bˆ¡¢.‚€ EU!Â\0!¸`c!âñx<Ž1ÃUƒˆTMÕ4U]Ü4UyÀ©`†aêÆ=g5 h?‘æÿÄ4Ÿ8¦cÚºm¦i®H„ù¹Ö¥ 1 U>JSo* EÓ5]«ܹ{„oÀðÃ\€÷+€W+àø!@*€/Bv÷oÀ.!äóeüœP*€_‘T +@®¡á.¡ÿû=p}¿O(¡„„Ë +`¿\@E"†áå £@‘O.Œa Bõ~@AÛB#„1²*(+PEf‹²<;™àäìD¦ôʲè§t´µµ5MÓ›M]ßÐMsã¸8Ί2Ó+ûPÖÖÖNëÕ¡÷Ä&É=`Õšœ_$œóä†1F‹`CQÔ¶ + „ÂL0ãX ³˜ÅX$c...Æœ³É…Hบ(21gLÄLp&.Á…‰qœÈŸœ GÆ[c„ðÜü‡BeMUuMÞTE]Ӕؿ¢¬)Fº3LÃÔõùôÿÅŸ.€išËnþHÔUæ¹1ß$jê·¸š®)štššÒP´f³YOüoTæßuò,Ë ÛŽcÛ ñ@ø¡.Àûc×] ÚðFa±%÷hÔ Šjîß¡® ¬b ô1€Zìúÿ¾Ûsº»þjIU z€x5^`r!Ø ©À{]怷»ÒG=;999)˳Úñ?;«ßSæ¶1’д¦®ëº©ëÆqq|œg™^@ÆšZSÓîÀpø~Xã.˜HÄDp&&ü`ŒÀröiñ[„|O01‹9Ã3Æç˜A̘e„†sÎX|sÆ’dÂIÌ!"ãXÄ(ü‚ñcŽ„BUU—B†åó“CŒ¹ÿ±ó«ÿp(„PM[[SÖemMÑÖE›ÿ7ß ÅÐMC¯&õæêÓ˜÷ðßÀ +4Ô)Ù7$몕 ú­ÓE4E“» t }ñës¤Э€t´ÆÃá» +à, ZЂÐBûûÑþ2è5ð«»Pgæ@#$£Ãb² «Y0ÆbY‡!0Ú"˲µ¢nìÎH¸ûY?ZR·`üê:†ÿUÀÒÓ¯<)ÏÎÊòää¬<+Ïʳ¢<;9;«@v&c@×õ ÝÔ7r €%@ÆVp[px †·8sžŒÇ<Éd<±&k hU`-!4Ƙ!Æ9f¢š.ÂçœÉg˜.aÆÙ8™°ñp2_ IÂã F! ¡®,:†!h«« M*D²D >_:Z_ý‡C!S5mMS×´µµ5U[SM}P ÝÔ7tÃÔuiÆalèÕkÃ0uC~pyÏX É€ +ºY}RUƒ4oþ½™|PjÈld£±¦iÍùÜ­Ž“åEæ`??z8>8 p‹ P?Ûö/`Yaec‹3CÎ0‹ÂYæ`Œït +aY->¶ “ås k°, þüY€ep« 0¾ €ïXQ󧟪œžœžœžž–§åiyRžœžžž–åIYfÝZ4›5Šâ¤8β“³®”oÎÐlÞ_ðpÌ1„Y‹$a Æ¸Ú Xû2¬< Ì1Æ]Æ8cœ£D&1gBð ಄c¡!"c†9û7]Ž‘œ^?a$@{9Øh(³˜aÎѸZ²tõ +Æ¿>úK}P@Y3tS×—`ꆮW¯ yaŸ_ÛW°±±a𿯯†©éúFåÓƒÕ"Ä ýÚD²5US4]k]ÖhFcMkjÊR @ž9pÇ6Á¿ÚU¼ÿ²¨‹'þÂþ- B ÞÀÁ*a„ñí.À< GÎ~ °,˲îÉ „,„á¼É ÄY<Á1g\n X`| ÞŸ°>D¨ªr~rvrz^–EyZžžŸœŸžœ•g'çefY•uª¦ažœEže'綶ȬÉ:’{ ŠÁ8gV“º9cíU €ê`ÌX÷q.¸( Åp(–Eûb ç].{3Œ±Å…à˜ Ž1>ÀË$B á &„ˆE¼4˨ºúc‚'ñõëìÀ +ôÛ ß@åll躱aêfÝIÔÔš«£ä‚òylrM©tJSS4½©ih®55¹·¤RNåŒNò,­p¼[&ü\€Ž0 ÔåçüÜþ-ygs°;P¯Û@Dñwqô©€¥À« +àVXw(ËBÖO° €58ãUc+®ðê6¼x¯ `-²ï¨ªª”ç''ggggeý?;—y€ò,ëÙé Ý0‹"/Š,?9w4¹ ´@So.pK yù0È¢]6†¸ÚíË9\ÈqEQU ÆaÌ1‹»q c!C!D"†±¼L !8&"±,B0Îå]sÌæBpÇØœ`!!€ÀÍ‹v@EQ c‰¼ë!¨¢ b<žˆD`!ÃËÑ`„ h×#A‹a\­L˜@Ép8¹¨Næ/®ÓÖj©u÷ßj €eý_À¸€ÕnþJ˜•G Có±$Òøô¦Þljk  ¨kkÊÚÚš¦)š>ßXÖP´µy°!C€Ò(2ØïQK¸mœi»]½1ç—r· FÂ`Éæaû}Y€À+XЂ®@Hp ò»bŒð-Y€($«4²0ÆÂa Œ,„1ÂH”?¶ Qߪ,À’À¸€ul Žï@h¿÷*€e(gwœóÌ6³sY (¯%†¡çÇÇÇÇY~2u´F£¡hŠ|25›Mí=.@’$/ïBÀpŽ€d(„`LL€Ƙc!’äB$Cެú¡ZÈ_E,¸À1gÖàs‘$b,Ä ‡]’$’=’$Ɉ¡à‰¡N†É„w%v aÜXöµU™Cœ1Ž_$‚Å"#Qßõªù“‹ëãkWïø{)0¿öË›Q½i‹ÐÀý-BKkõ¦¦ëMÙù£­ikò¦iŠVo'Pä‡Öä•m ©“¦ÜI»N–ÀàÖÓm¨@ØmІ–… „*B " ÄxÉæÛ ­¾' °¬p÷[ó ¼Õ¸®jÁ¡¶UE@mksƒPEQe!„,˲F°’ûHŠ~h! aŒ-€- !KT`K†¨* ­ª¶m@[…ÖÖ +Cë¼'€¦”ÀÎ~[U6›ú†®›úññññqöúL`­©T.€ì4¹{$`#y™$/_&Éð~$6¬üö±óñE’$Iª8„"9³˜sÎâ˜ãXÄc!„àq „N†C‘$‰à‚Áâq’LØp˜1b,øãñÅd2¹˜pÀ‡fîÀ¹€¦ÕI€ ÃÐOм€Òh¬5—Ðlê÷÷¼|y¯ +…&“‰N^Ÿü½˜%Ò-À)j[QU‰| †9?›Äã ñJˆ¡à"‰™@2 À‡IÂÅ8L$Ãar1™ ‡ÉD6¹ +Ì'É‹Ép2á<‰' lÌ9æ CŒ$ÚŠ¢* O˜Bp‘.ïš ‘ ‡œ-›ÿ9Þ\ì7›Õ ‘f­©7µÊÈï€R¹mµêC é(˨Qe™Ûðh4ÚjûæQU /Ù‚¨r¢;B +‚1D#T Wæ`|p0fIŒ0ÄÃ1Ã@òzoaËB!ë/°p c˘YŒc±…å·“GQ +@S$¨"ynUmù0,Œ@„ …«©³È´ +ðœh¯¶A[… %–yH „ã æ1yÌ™<è¼§ð¿º1€fU`èY‘g¹Œ(ÆZs­ÚwÛÔµ%4îè¨UÀðVŒE"’Éd2ÿz(Ÿ$\Îù˜$CŽ0TTEUT´0‚2Œ'¸À8æ '‰H&I2Ãq"Š—L6 +.Æòd,†“Ir!ÄÅ¿€'Lð‰¸N’ñóx|DZ`3Î1ÄØBÁ¶œ ® +ÁÅDÄ1É8|(&L6‚ñeóÅ >(8_(“/MM× èš¶VÕ".'þníJZÓÖUd @c Ü©pv–w¡“gŽ xë"lU™3ŒÚ*°0Âв4„“ÊúˆÂisÔOmóø€aŒc„¡@†Ôi`ËÂR@µ*Ä´,„!BZR @DЂH–W+Kh«70'@ÛBРd!h!TwÜÈ¿åµéã´¥|œÖ + Ý®% +ÄZÈ‚@€1ã<ÆIŒÇqÇqlUãù¼)Œ{!&¬„16æB {b …ÑRð¡ +`) *çwœ Ùùù" ¸¡ë¦y\ÅI–×.@u͑ɧ{+'ãñdò2I^JÜŠ€ñ0^\üOCñ¯_ +À'<á,I’D1VUé@ha XÌ‹Ç8Æ<Žã.ŸˆñDˆaœŒEÂùP Å0I&Bˆ$N ÇÃáÅÅd(†CÅx‡b<^$“Dt'ãIÌcÎä¸0ÈÆÈB©@QTUQ‘ì޹Hℳ¡“XL„‰X˜¿â@ãOŠ<4Øl6õ¦®Ëaºœ@ üJÝ Uß׉TüJ½¯ôÈ3:*OÏËÔHË"sôÀºõÈEÎC9o­­¶- !°r€ #Kà6ªœçjãâ3†0f0†OfVÊí°c«Š ¨Â:æUX˜¨…Dµ™B€ª8²pÀ-Pª«*¨, X¢¹ÉÃ*ëh±ŸZl£è­*P)€Sjý€%e?ÃÇœsΡU¹@©}Æ{c9ÖÊ‚° +À3lU~‡Qàò÷`ZÍhÊAVfQE‘å'¿ÉôF£±Öl6k Ý—`8'“ʸb,†“‹äb8¹ø×11Éäåp’\$œcTUUUhɧç ó±À‚á8fxœŒÇIœ$"󱬘Œ“I2ž _¾Dq2br!.†/'ÿz ÄÅp˜$“Éäb|1ᜋÉEÇ\$²±#„Úª¢ªŠÊeh!q“˜‰¡“ÉË‹$™$“eó²ÿa¥ ¯ù`ÈzÿªèߨßÖå{o鸶‚To6›Zc µµyÜM[Óª]ž (вXB.¥¿r Ò¼<=?ÏQzVæ™ýÀ¾]@T'Ð,Ì`[m[A õB„0d bù4^€œiÆ Ã3‹An laK…L!0Æó°-ï€znLB @ha  ¢º,BUuEh·@­†­…À¶ª2‡Ê–Zå!”—~ °ª *€ªÊŒ¨¼DCp^äpÊ9ÚªÄa,^ÈÇ[– +`]ÏTÿ7Y^p'ʹ‹i7tݬPž9õ>[½©5ïÀc6O&™xù2^G@2b2I..†/Ç'‰y’LÆ!bY`Yc cÌ8ç1f1Nbóx2Ž'Ir1áb,1“‹ÉE2¹H† O&Ãád8¼¸^ €‡‰Å$™L.&If,98C‘° c„–Ž™Ox<ñE,â8‹±¸˜Œÿo/'“DLjëCƘišóS° PÙ¹©ëº±±°÷ ™ ˜O[Þ9T]÷µ*+¯çs ¬.&o,›~õëhÜ€ÓCôåWe‘§Ž ÔªoIUnû½y»°0²…€eAlµÚ¶ DBx`YY[Y–¥B ‚öBÆ8NÂÃ3†1”1Bv€ðR  -m³ @´5´% @«6}µ"PWp«¨5е‘Í çqGhY¶aûN  ªj[m×}L@ÛÀ‚",0®žØpI¨2Öm%X`–`K$x[ Œ€ +!Ä a»Ýn[×ðJÀ÷*€n!@S—i@Ã(OÊò$+Š“ +Í*êÜ|„ ãÉx2™¼L’äe%–pÁ'ãIÂ.^‡I ÄãÉx’$Éd<‰åfj70Âð€a£W<Áx<ŽeΧf)Bñ8‰¹,ðÁ £‹‹d<ž$òÊqÁâx<¹˜L&cŒ±…„Uñä! ‚R@ˆ¶ªÒ„Ä8‰9“k X=ÇhÈb æÃ ×WÿkÃÿV.ûËoƒzþ‚Ìû75M +ziëkk¹m_@CþUÛ{ýÑ[À—_~™¦ùoÊiyˆ¾<-Ë<;ìÍplÓ¶MpÛÏt½iK/,þ€vÛY–…! mµÛjÛ’Ñ@! â¶ÅÚЂª¨,@^*±…cùL†â§*B2©ðBÔõ‡‹:D9á ÔÒTñse2 p 9v¨° AЇ€6@„^ÀZr nQ´Uµ]-¶ªÒx*"¹Á +A‹1('^× +b˲–@?å +Œ³0†¨ˆ1bÌ‚ívZ¢V‚€Êéíç<3ºÅÔÑdp€““,/ÊZÔÐ4½yo7 Ã!Ƭм|™\W˜31™ˆñË‹äþûT{;cqÌÄPm4ŠÒ†²Þ‹óø€ócÌQÕ©+0Œ !ýEŽ1BLp¹Çƒ%“D\ /’¿ÿ{d—Œ -Î8Oe1ÆB–Å1ǨZÖh¨Ð@XXœcVM.Â3„™`Œ½X2ÿáp¸ (p›ÕEÞX2zãºÝW,©¿&ÐÖ¤w¯kU-OeùkkõæîU̧ø.¥hÖ”ÆÚZ£¡Ì ÿvpv~ú%JOË2Ï2ǦcÛ¶må–4Ÿ¦oØ6RÛ7>ª}S¢6›´ThYK TÁ5`ADf" ,†™Õ6²ä+1€vU\1CÈ‚#i”VEÔv[S€¢\WÚíPUµªdTÛÒ?Y°b̶’Dfýt¼æ¬* €ª@RUU,h!•§Q@E…alµ‘%,˶,lY!Z@†Mƪ*€ø°€;³È)ê,€¬;5Íâ¤(‹¬(KG—M¤UPÆ£ß?˜16–±€¤® +¨Àg\`1 Aœ üB0†V•FCQ!´,ë§ A1baÎ9fŒO°àŒ3Á0ç±à8±΄cœ ,d‘D˜1Æ¡ !8ãb(b„0cB`Ƴ d³ª4 ÌØÄŒ ö‚aÌ!p‚ã±07ÿ—sC—/¦inè€a˜æC×½ ô&k•¯ikU*_«.èJC‘ƾÖXS·›‹}k‹5ŽÊm8žM3”ž—ežg©ì× :ZSß°m„n¢Tª jSUT¹! (Ô†[m(sÛ7€@`†,hAÔcf¥ -ù€”Ö!h‘… B#ˆ«H=í¶´òk¸KT?ƒ¼j·ª¶µ +QmX˜cl1„̲~úSëj ªm9nBQ«v((““òÊ]à ­ª²^`€¡eaˆ¡Å,`YPm£6€BˆfmE…7ð +àî4` ­©7uÃ4e àä4ÐïŸWý3 ãd H–>bÈ!b&0ÆLðƒØ<ÆqÌèJCm·!ÆØ’3ü!ÄX0!æ\ˆ ‚W€!êiãÕ]…àŒc̘bŒ‘°a"†œ‹q#ŒC9FF  !jCQÆ\$ˆ½`LîeCžÈ†ãdXõŠápøòåp¸aêò¥.¬ ëî?†±hí{t ëúòÕ]þ4­ÑîüÜ£¯þÛ6µ6”ÆZµÃõ6H¥é—_J œþ¶@–°Çv¬]·ÿ4Õõ¦m#[» Ò·`Âv[QÛ@P +ªeAÕ²TÛÒú¡ +€ªT ¶,Š ÄXÖù«Âb†mEXXN…@ÈÂB@í:Ù‡€, …4‡ˆc  Ê‡¨µ­jÕdåÈØÀõÇ_]¶U ‚6h«mPE¶,‹Y [ÌÂÆC,£@“Ž„–¼w—Š#Õv…h%éX•°€–Ú ¨*Â@ ¬6¶ eµ- c܆¶lC Bk+*´ ”Mí²è‰cŒ,da˲8dH圭¶O,Ÿ»b¹Ý-OdP*€¢(Š“¼,Oœ¦l"]«€®ß[Pwç‰á3é,Õ‡"áBL‹yÂØ‚q&¬DcÎÇ@QªÚ–ͼ ½À CÇ3Áå„oYE,1®6€$B‘ .X’°1O8cX$‚sÁÑ8¬ê<Š! ³a"cˆYªÉåc,>`B0‘ˆ1ç‚a!ïúåp¸dþÃáF­66Ì ]yŸõ7†a¦i<@,Cbs™¿ÐúÕlÏúv¯¹s`:V + @×±m ¨ÚòK7ut ëMÓ6r›¶!€@µTUª@Um¨@ !°-ÃqR~AZЂ²ÀÂUg!Fⶪ(*l[b a[ÖÀC€ªŒ±C´xÆcˆ,¨ ¡ +€¬'²Ð@UUc !² BÐBÈÇ'Z%ùU0@È0€d„ÈÂвõ¡tO1´0‚*P¡T9UAþ„pþÅm Ja[~ü)lK•dˆ ×TCØn#`©lC ÄÐj·!Tá ´Õ6h·e P ° ÂõÖ½ª@UEÆUˆ«äE¶å„¥îQÛ2;Ò†° ÛØ‚@mµ†'¥QaŒ+oCµÚmÛ@«-U%Ý-·;Beft‹³…0ÍÇ'gef(† Ê<)ý`8_ÿ#„ŒÈŒ€lÖO†“!Nª~‚³Xp,ã1ã˜Ç¨@ZŒ%òr,0ŒÇL°Xð‰b‚!9êŸó¿ç”Œ_'b˜Œyל .X"¸ˆ…5fL$\01N8ŒÄãd Ác Ä P +?ˆÇHž$‚ó±|Â'(I’d"†“ñPšÿäââBð%˜ú<"×h(·½6—`› +EY[kÌÀòäÄ[ )`Û¶m;ŽmTC?l Ãh`É£¿ÍH°GÕ—Ì`è ë¤i +šMÓFHfNVŽ"ýgµÝn«¶e}åüÙ¨Ê ¿ACîcŠªh@ò©T™=¯Ëi!€Àj+Š"í¯]E×e†OUÛŠªªª&¿Z]ôæ(Ò ´Õ†¢Î Q~!rDI[~gµ­¨õPªÊÐD¥ªrI,õ—‚¶ªUQ jdíºb_ºªt€€ +Ui¨j»  äe¾ÝõLZ¦¶Û ´¥Xm¥Ý†`µ­ªm hŠÒ–2@ίThC¨²’@U…R)´!”¥ß9¢®¼ý™á'޶¶Ö @qR'ÇåYáèÕ4 µ5eMMMk¾o(hÝô{]$/“„%C!†c6BÄyÌ™ ÆEÌcÂj«PÀ’«x^0!qr s>cq‡ãa’$b"b‘ŒÅØJ’±ŠDðÉp2ÆãDðq1"O!¸˜ > ŒÅ‹Dp&†Â‚6Páq[<‰l 1ó1C!†ÃDð‹áp8™\\\pq ]×uSUî­4MÓ4kÀ|x.@×çyýF%úåÅí®ú¼•ÓíÚ¶ãdŽe™ãd™ 4 C`¾>àNÐív+ iªªjjYºî8i +@s£i×h¬>צ¤´Z… UEU‰Š¶ªÂvUwY¶¢*J[m·ÛU¬^ÖîhÒ”ÚJCQTTcTµ­´UÔª_DU•v-¯e¸­­@ £ +PŠª©mh©PÕ¤nÐV«P[¾¢©jC©Â…mYfŒ¥çß* ­(í¶ŠæRÛ2ɧ*j[N}€ª”Ê·jÊÿ ¨Êt©¢*†ªÖím “j[UÚ*TÛm¤¶å  *í6*hCU•áCÐÖ@[í¶ªÈQ™R:) BªªÖe•µ ÑÏÄòî4àY)PgÍ¢8)N²â¤À¢¨©-¯–¸m,xU3÷o®«€Éd’$"IÆâ"²‹DÄ1â\œ$1Šf˜a4 @h!Žã‚1!ˆþ¯ÎOD"œ$bœÈ¾¢q".P"†"I’q,&/ö÷‰1Žy,p2H>Ž…B\Œã |ÁXœŒ_ +Ár¨ c +Ø[BðøU,ÆqœŒã 4–wˆáËÉäâ₠̰XÀ}Ý@†´ú…xx.`k•e|R¬”ò¬œîÒ±»ŽãtS'sìã,œÌÈК€À‚5NË š>Ws`CÕï‰lÜæÜk÷«.@€®Ý•#¿î‰Œ P­ƒU+˜NóQ^–y^æ]ЭvJ†ÓͲßþÆ0èvS½Ù4mÝ€zµVÔrè’´­ÔR@?Ók’(K_®ÖF!ëäkuÑüÔ˜ ƒ + »–»&ÕöÊÃUçV_gT—Û¨æšdB¥º+ùÈ,–¾¶ÒÒ?ªY÷K÷:¯GTé—Ô²qÌ¿F­mLUVm»’s ±P sU ¬~¿y¾FYm¥VKFµzYŸ£gé~TUY®rmêÿ›ù?µŒX[+ÿkrF^ä«»TW¾UC~]õJ©œ0EQ¤w¥6ÚÊ…@Å'³‹õÎióuQœœäeq& gÌKëo‚ûž™ãÉ5 ãJñr2L(ªÁýq,;€2ô‡ùæLüÿˆûŸÞ¸‘tÿÍÅÅ0‡d] P^ Áñ +`Â>@œëEÁµ™|¦†{Oú F™Ë¢Ó'œÍÃJ©œpºNßú +¨‹y þí `x#xqè¾çMÝE™™RJ–]Õ3TÚ–m)eYŠ¿Ï÷ù‡<`!óÍYÄúñ© +…R„nB= £< ¢û +©mË’8)*•Ë/*$î&ÿ€›ŽV‘ß ¬@iæV„÷ÅãAÀ2@R +KEÊò<ö«|ÿQ]Wûu-OD’ ¨d±ÌfË_:Ñ,»¦iš‚õì iº:áÕ¬îyÅ…¬*Å×·#€¾Üy}lÏ ¸ÛSƒ‚ÞRk„ð§cëÈ®•y¸l>éZ Š%Ü €ð# +`kâBø m¨÷5‚ËàmˆKÀ§‚ÁjX¿.¸à»=€Ÿºn6“QàKýÓëiz}6›Íêz6k<üh©Éäc•€m{D¥&"*Wm[^–%¹Ñ¨ +Q±©ˆz +ZM‡nÄ“B ¨– ‹¾"hŽ„®~ˆÊ²4nËÑêAK†÷‘B¦A¸f$´­±Z¡RÊ ¶@׼ǂ€ƒsˆ´¢Ú•!­ Q™yšùã¯ÔzVÏEˆÙe +`r‘`Q4‰&“èòHëJ +@Êý*ßßðò5¤,äU]×µLd]K)ë$rÕCûc¹”R&AEU%Ñ$žä¹Q°íN|.†`PÁ›pòv/ÜPµëÐy/ý`/Øë°½phõ xè³æ÷ï¶„<Ûãë„EŒœoçÖèr ÙTYüç™Ê¸à¬àZ)º¯v„Áå‚*€õŸ.Ièsg8ôþbÿìa„!\ðÝQ@w<À—_Og³Ç׳njƒ‘Cå1™L&ñ0lfG`mÛÚ-”„ôï„ô`U–Tò²t]: +”BÅ4€n£òÐIgœ +ÕrSTˆQ£@jÑmþY•¥Qß·†J2åƒUY’Éʲ$BC¨4r ‘4 šÖR«µJ·\ ·$P0××ÉI‘ÂiY’z Ñ(2fU–´Ê\»qüÕÆŠÐ8¼`þ‹w ½4ð£?&QôÉç ÷óýGu-¥ D’°˜Åqœ»sDIá +d<™L‚è¿Åqœ&Qy›"¢8šLÆ£(—UU%l§©HEøOÀp7æîºFA°p€²{{á^°8íìímÀ¥ï˜@0`Ó{ùÜÃyœUn®„Âç\e~l5Sÿ.¸V0"ªß%è3g‹­zཾm„ÀxaâÀw`6 ІRàGêzö¸–I0õÀبÞ2µ=°m­mÛVUè–x§DdP(˜*6E4è)8øqÊ)P”F¥è ©D@*­ÚÒÐý²üžK³2%îv • +€ˆ[TH`Ñ¢PÖ´¶%PõªŸ*. @‘Â?—DxßPy_+mV¦¤–SI† º"ÜØºÓž÷ <â3uù†0>3ÔwxD~Èo@!«ý\Ö=x"’Ä ›H)+Y$Ks‘ç¹”ñ$ŽÇ“4ã4‚(võJAÅQ<‰‚(Éó@_0éÐÔM]×õc÷C¥F~d:Ž¢ñŽ>sRªu—ÚVD¾'* w»=§ZjS­ @@e§,dŒðLE  צô[¤Ìk4¢!³Z•ËÕƒïË’¨\QÿÔ„ +‰8j­ +D´º%"޶¥•&…¨[ЭÐJ¹õ ‚³ äÔjúûïï¸ÿàAiJRåŠHNd •ÔÍ×Óøw`¹Q¾—)€³{=ú½Þnøï r¹¿V K’œÅ,Žg“\V•”iøÀ/MÓ2N¤Ls™³0Jdž&y…îˆB‡º`¥…ØôÿY %lý}Ÿ ßÐþð¸2཭€Ú¿ XŽ‚`/dCH¼·Ç}AaŸJ~½PŒ‚`XŒ"χ~QWÀË6ˈ”ž"NQ†£«†ÁG<€‹ÀàëÿŒ0p „\ð0ì2L†f Y]×u]7MßìLÀ¡ŒÜ/¢ÎÉ—þÛ-”¥2­"Mœ •¥%R ¦J3­§-¡RÂOOã )4\ P +¡ÎŒEK ´Y•Ô> Z­Ê’JeVD9šÒ”†ˆ5×Dˆè¶‰)´†  Z­u˧nÆ\gãÊ*mV¥ÒÕƒ¶$2ʬ ’j¿/XkÎ?¬wrf%Wß¶w›•€aœxŒw'zwaôùyÀÞp¨d-sÆ“>Oâ4MS‘Œ·b4•¹”2ÏëZJ)“ˆ¥Ræ©ÌY”È\JG,bnsTšó$ý0Ĺ}’Œí 4Á&½MÏ{@†Á^àv¾º§Bž‰aFhÐWøíÀZ@¿X)7«²,ã‚óŒ»ñ’LJc9õ骇áÇB€ÏV½°}ÿgLpæBÁÂf6;ÿ8 €º¿dGÆ‹&ëM4ÁùÕ`„ä'´f@@ù ½O-j¡”miµШ›ºié +q +€c~ꔀºå¦Z)S4€ÀAk²š¬ý/2Ö ­ˆèÁE+"$¡Zó€Zc5ZÍ5’š¢R„H@ÖjcZ…¶åúÐŒ‡A˜!Ú)jú«"ƒJ•Hª,µd9Zó 4Æ"iÍjs=è¹»øh|&ØèHÃ8‰“Ø úÚ]ðyY€Mœ÷ræ À˜%Ià÷¼DqœÄI’äRÊúq.›ÇRJ)"–×RæR:°–IìŠâT¦qx~ôÈ?)èIn}WëJ:¶Y#¸žðÅúZ¹aì1±·ÇÂá„+€~»8@ÁÝÊ7îŸçq!8˜Œ£RÚà5ƒd.÷‚ @Ð+€MDaȸÈ|, .À8šLb7ê²®9 Ó>è³qoH€³ß ˆ=Ú¶µt¹*[C†P™vµj-©©Ò µÐz*¦0UF«©à\0E"AJYËj­•ÕQ ™[ŸäJr¡\chE¥- ³Zµ†ˆP£&aŒ†)jÐÙç+Xµˆ0mµn[Š@ƒ‚¹i+N A-i­ÍýÒZC­0fµj‰´;þ0Îj¼“3@²­z pY!аާßÍè'Žƒ«Ày®X&“!bÇq’äyšËº®›ÇU1›í»„A¾/eQË„®•0Iò<Ï“DÊœíp=~oŒÎ·mÔëRøpÝà^u:€9HùýÈ›„™póòF^ =)7 @d +2äà{À™Nè0 H¿Š ^-ø°}ÿ¢=Æ{ , £GÍló±€ÈO»þÈ Yñ˜L☭ãß³hq@€F¹\œ¡VÓCkÝsÓÛ25N¦Ú"X£µv‹Ü.(@änY£3•„RB)… D¦ˆ4šreµ% äžZ_¬QhÔ-¢µÚZˆˆ¨Ð=õ0Iš…aÈ2€LR dHi$ZµÖ¢ýSgÜÍpWtîŽÝ?ØlW®0Ž’³×ð¬yß;œJ™²TÊ<—R&Ñu™:Î)‹«°öpͧ0‹b‘$Išç¹,dÓ4³ã:ofµlêœ%y]UÕ¬J’"/Š<ÏëÇ2agðÏ 6À„ÁhÝúnή3h}=¬?}Öo1²Þþß ·"ãÜ)PMQ)P¾)¡ÉfäŸÚ&¿Oׯ÷ÝÃîÞažÿ$ÛY€qº}­ à†4Ir)ó(•ò†”Ræq.ež§I’H™çÛï¼ )÷÷‹Úyu±ÈÅñQ£8Ž“ °92bñ$rOŸçy!eÕ ¯g3€Gõ~ÕU"‘³z¿k¤…”²(fK€ÑöZ²ð÷ v`´îÝü@ÁF7¡+îë[’}%pȇÂ^Ƹ«;„Æ È…<ã f<À­;Ùc,ä! ³=± Œ\nœ³0û}§k¸dY +ᇤz¸I¨}й€qV­¯f6„®}ãÑÈ%ýÇãIÔw¹] :§¨ÔÄ5ùuÛšˆÈLA¹æZåþ³¸@@(üüæL©©1ÀQÓŠKRÎñÓHdˆH»§FC¤‰î—-"**‘”˜B!¦S1%B˵BdL§„À9‚8cAÈ•Ðn5+(®rŸ •åƒ)ºuH´–Œmïùºùf%àà'ûÉœå<Rùÿð7R‰þÇ 6ê×u•lM‡“8v⿟Ò¸‚Т>žÍ|P×Õ±@ÝÍ*Ç )/ëêVœì^ŸÈ‘Ýëà@Ư€Ä ,°V‘Û¿qîv˜î‹\Ô… Û +8ãkÔ³YÓôðßÈk¤> ŒÆQ|(ýÃ6Z"½ÖøSJFSi¦Z‘vç…@F„!癑œs¿ÕuA´"DE–°µÚ¨ÒQK¤m¦ =ŒUÔ"¡q½F…@¥XÔh5q "ÂM#ÂmTgaÀV®Q‰ˆkÔJ“1hM«î·HÊ·7®»¢u7ÿØ®X Šâôzš ËÆ/@³¼–RÖµ”‰ì%€ô¯m<_°Ÿ$<áþÁy’äÎý—~€@%ë٬뺮¨Žg³Ù¾H’¼®ª®J’j…”³e-D’Ä¡ÛÿE¿Îz aýˆQ€p³¹ŸÉºÎèû¦{gŽÖ È£sP ‚3þ9cœg"ã‚AÆãÙÞ^æ‡aî:ÿœ¹èõ<¶sàçÀÝ(ÑmÀà b~ßø†`*²0ò!ß8ãk4@´þN^ 錣+)P¤×@j b˵F"0šÈØÒBM +•R€ 5…©ÐÁÖ ‚p»CßOr wÑY?ãÇwŸ³17>úÙ•:nd(€ˆ±|@¶&@Dã(Š'.¸¿¿¿¿éôI}߸º3 + +ÚȬZÛfn0§Qš4Q‰€ j¥@¥¶Ç9€ ÝÂÐ’¦@ª5n,‘”j4‘UHÊY­,ù§¶J“±ÔjP¨I‘2@†Z¢²T†þÊI˜’AKe€œ‡Aæ +ï·­¶œŒ~ˆØ*Dj©5D Hk5ä'QÌXGqz=IâI¼³àL/À–¤é ÏS7ðzÈå¿ú ®m(€Üÿýð#u+½Îx›‰Bžð$IÒ8NÓÜÀÍmœݬ;–"I’jvPͪ$?˜Õu×ô(Ž—yž'±s~ví4fálµŸÀ–lX?÷F[Ïzì×hkT×¹Ù&gοLdÐßE3î¹íE€³+*þÉ + d‚'Üm"Üßí8°+ ÀY–eûg@4L¹ïïïïï×ûûÛp!€«í“gðQ/ú@ÌÿÓR+,j"B2DÊè)Ÿ¿B!ˆ=–q!€M 2¨Ú«¹F$2Š¡´-!Tˆ„dÿÓèVXÒˆÎ0å}£I PIf +ª$S* ²\!’åFPkõS–Še +(! ÃLgDJ( Hÿ©Èð5YD$kHkR¤h­†BO¢˜EQœÄ› + º\leâ4Mû:àõ´ w–s™ßÿš3éPoàÆpüóþGžú±€k`ûü'I’$é$Nó|Vɺ™Íf³cYt]×¹6áY]u’çuS×]#{oññ²ºÑï€óc•ƒañÒhkO0è÷þïFk7os@Ïö;„ëq„;`AˆíÓ/„p«Á8Ï80ÎCÆÜÚÓÌâ=~ƒÀ/ð¢5>®þ§Í,€÷² °îwˆÆÑd2‰Ý†`¹¿¿¿/e]çq0¹¢ßñ¸ÿ³‹@%¹±\ Ý×Ñ­¬dI¡¶ + é>¶ + ¨û€D%(Î!Ë2`¥à‚è¾RØ–+£3@2D-¢RdŒj[£Ýàú¯•Õ\i‹JYtIÕCRDˆH%RÆ"U>hW¦-ZЖF)Õ–mI\ •à|/ä­%r倸ŸDÈ]%¡E¢RSÙZ¤½h6@<‰“$½Ä8“تH®§iêúÔâ4Žg&æù m)€ÚÛÿùÚyžç7rÙ`] ’óWÇI>(YUu3›Íšã}9›ÍŽ{ì÷˜5E!eUâD¿î5 FÃúÃáèú7ý ÃØš¤¬Ÿâc+w¼ß¹†Ì÷Ówû|o‡ˆ>UD;w¯à8ðl!Цàûfï˜Lœ(ëj¿®ö=ÆãhŒÆcæ¿Ä®]m§€XÒät¶sËTkÿse,'m”›©aH‘ÖÍ)EÂõñ*¸Ÿe™œ€+j•²h<0ˆ8ÕÆ"¢5@ÔhÔ`Íê¹±ÜA$Â’ Þ'k[Õ’"2ô€J"lÛï­.ÉBKW-)kÛvU*ïÁ9@k—PHe‹”"D4~®‘±h$2̆ 8‰ãKìš´¤i²€3ã|ðê +@ÞLÀù™ozb„÷òB~zxÓÌf³®.šÇ³Nò$Iä¬©× + È yPÉ¢˜-åÅ + 'Àgàã½ýŒÜÑ0TtMˆ`½¤y¸»k°É‘K®g''¯ÎÿOiÇkü^ +€mx^œÍ\œ)Z€¯%@³ÑÇ. +¨¤”RÖû2ﻃ`<î;TÝ\Y¶ˆTzhMZmÿëùs+V¤ÉzO]­ µP‚dàÂÉ}„e @e¤8Q»Ò¥)[Dk ÙÖiRD`íjEd­Ñæ¿þs¥…Õ[2`ÜSëV= jï#€i‰H«ÿ\•Æhµ –ÊreLiJD + 9Bk[ƒHþçÊ×Ö¢%†,Ýÿs«KÕj2< ÍE?I|6˜\¥`ø( Nã¤ÀÚ¨Ïz®È¡@nœ~·lí$I²&€Ø@âÞ¶…¬¤» ÌꢙÍËÄ`&“Âs)¤¬‹Ç?õØ=Ëä7àªGlÀFh0ÌïËg·7§›ó /»î>;9yõêsÿh4bo·ø Y¶H®šˆ|Àî ɲŒ÷=¿ Æ“¸€¬dUÉ})å¦èGqO|p¶±, (ˆ­^iÝf­6­±†ÈÚÕýÖZ£Z…™*ïO3PD ŒZ €L)äVeJ•ŠÈ–æA«2¤ÉN¡mÛreü¤qÔØšê–·ÚX»"$Û¶´jm«VJ j A*5þŬVØÚ6[‘pË~[2¦… Ñ*TÀW¤¨)Xj5·ZS»"E¶5jÕšVõSOï›tM€t €Éœ¯ŒÎ…išÇ“8Î×wêþüïP2ÏÓü†£ƒ—7üéwwvç‘$"I„"p1@%åþlÖ4]“7³Ùã‡u#y^7U=kd.eU4?Éæ±ô!@t1þi.üm°yâ7Oú|äü;¼ú¼Ã? ü}³l; \5 À¶²;B€d €º–‘3zPɃJÖÕ`A04ž Òw¾m+  Kíì@È2ß% @!ÛKmi h­”!@†Ðe™à­Vª]QËÿª¬YQ~d¿R÷ï?XùßA&`})¶¦¥UiIµÆ**IiÖ1Hmk•ÊVÊÕŠZñW2ÆYæF…óŒƒ!„È8ÏYâÛUf­ié?)Ukµ¢ûd asOÒ4q!À +†y›i@wÉ8N6«û=ÒÝ +ÀUåës?¹WÉNð!ÈsÈz6kšnVÔgLx«Y]×s˜9ÌþVÕ,ò<‰Y8žì¼¢ÏÀè7][ñÀÆIÿ¤ç½w÷îÉÉÉ«W¯^½æŸùïbóè÷ͰÏÌD;²›àYR÷x4““qEÑ„¹Âöý})+YWuÞo‚ 0‰#'bÏ}åŒP‘B@R­R +(% 3­USŸ\› + ²Œs×$çPZÁ_­i[ €J‘R 2…t_¡BE@J)A@èë @ d[Ä>´¦µµò»È}l¥D«=Çç¦mÛJà>:gÂ-̵ ¥²á©…(M«Õ +µm!œÂ` ˆ?¤›ˆÖ@š¦R&éffÿrà=€mà_Üy!¥H„HÏÀ…éÒ`ÖÌfE=›ýT%,á²9¨ªœåuS7MSäRVòñr¿•Ìó$aa4aÑ™—IE“èóðY‡~ÇïHþxïß¼xõúÕçžÁ8g‚ "ãÌPwæBÎ…+ßÏ„à<äœñ½ŒñLìq–qÆXàö’ºÍàaÁ†:ßÂêVfpιû Ü/YçŒ ÆÃ0pX2μd®*2 Ã0 × + É'~"ØdÀ¾¬«ÞƒÀM¬£1‹cO&»@Ô#±ü¢ÆV‘¡4)$"ð4QYjÀLϲ,‘©Ìçå 2P ´åE¿ N +ÑB"\•d•uåúñ9h£[Dl•3ÈÑÊ@àÊŒ´p-Fe‘ TZ‘›£Á"mÈm0\i"ÝS´ +§¼×èyÒ‡iÇ“(Ø@:Ô$g&¹[ë Oå`ño`ÓxT?>çÜÈe¾QèPä…ì£~‘l"IDOÒ<õÁ‚WMÓÌf²žÍ~ª–°¢®<öë¦.r)«ê§¿U…¬dž& "·$fëbQ4™DÿWà·]ß|{÷îݯ_²¾¿”‹Lˆ½>‰ÁÝáçYÆA02ž±0cœg{Œg|Ïí YØo%wFù CÆ3Îà à"É8ç"a‚ñ¾(™ñe{î7<y誅CÎx…QúµåŒ3!X„¬ïs®ëfð&ã~æßr?Ç®ïÃ)ß Ç,Ž&.$8€ß@)@BDM@†,!*…!‘e „à™`"Ë@@Æ÷xöW§”BEt + •BPQ#)l •"…ˆ¤ •ÆUçµ(´¸ } ¾÷{ËIB׎€( s Èœ +•Ò +€€©"…¤H)‹@Ú-ê¾RO꺖Ryš$I§Éu·û×­SÝ +Ò$qÈÓ4Š?U%ãd[ÈFž½6À£sÀúèK™Ky#ÿObãÈŸÉäy§y²Ñ °_7³¦q“àkÁVÔûu•ó ÏeUíÿô·Jʪ*œ 8‰ü¢ÿ#ŠÜ€´I|:F¿‚ߌ[·¿½ûÇuðúõ›ÓÏø'Ï.Y&¸ŸnÇ ÆCÁ]÷^Æ3!Xȸ³ œk¸×x²ˆï1ÆÂ< +caÈ{À¹à÷=ó‚q–‰=!BÁ…àŒN°1Îx†l1Æ8Ï8a¦Yîyùqßô?{<›ÉI4O&}okU9oh?wþ€~äE?ðÜlpŸ.3Ö•Ó+£È‘H!®ÁIiDmÑRiJRʥȀN¤û ?ŠÊ’ )Tè&)EˆS¡¢W‚' ¦ªU¨5xN(mÑ€%¥)@šs€º®ëºrI¹$q­{iƒÀ9)Œ¥2Ïsé[õR¬³ØÍç¢(ˆ|,îN­”¢šUç°Vû»<€såÀRæy~殿¾2îæn‘pQH)÷›¦if³YÓÌŽkÁ“³º–‚M]׳:Ï¥¬êŸ~ª¤S›€nàÀ§`ô{à·ø·nÝþöîÿmC¼}÷î3Ï2îÎ"pθàØ ƒÐB÷ÂDÆXÈ9ÙÞãágQºº²ï±½ù—¹ ž…AÄ9!88O¸oX`!Œs7Ýš±€srÎXÈ#ÆœžàØIU¹™>qò Ú?¨ëƒƒê žÍŠƒÙAUÉõCæ—לïr8[Ì7fŽåùdÒ /‚÷}ÐÔͬÎ#Æä£º.VÔÍ€úog±õ6£(ŠX4™D>ø½à†VtÝl6kš*¶7úŽF£`¼]H<6u}œ×nݼuëö·wïn†oß½?}wúîý'œΓ$ñS‚üÚYιàA†AПÌ=Î÷þ„ºƒÉüQf¡‰ç£ôÐÿ コ0 ÂÌߺ"sïæ£{ÎcQÈW'È8sÎxÆö8ç cŒM½·Ày–eYæ†þÔ=ÆQ»ÉÀqÕ Ñ|260‰'“Øs~² èûýé߉Ü88¨ê¦iê‘WMUyž¦q"«áMšfÖÉÃî°Úº.VÎØ(~•yîšÿ8OxÂ}0çîã\N¢tˆò¢rÏìþ³Y³<)êºÉ—u³_?:Ès)‹æo?íçRº`M¢(vŠpâ~L&ñ$f“É$ŠâßnjUç¯ÆÅ¥=úM n^ê®ë#áæ­›w¶C€ÿÏéééû>¼»òùç~–œ3ž¹ÓÍEèfsÆø^Æ]f@pÆ¢0âbñ$t7r¶ç,@Æ3&Ø^ÈYÈCîöpΠEÈûé>‚s.\¼ÏCל芕z•XÈ™g‘<ãáC·Íˆ±¦Ï¸Ràñxâ¾8®ö÷Ýí,6õ‹ë|3à :ðƒëý',¡BÒ¤,)Ý1"…0rE€2á €ŒÑZë"A@Bm@"M‚ÈXêkÀÝ‘I"…-qfŸvË„ÒÊðQD„QYkˆ4p„©B€û +8dèò.MHH¤ a«ZBëžÚjÍA5ó¦™5Us eÝÔMSK)ó$qEvIÑ4u3›5õ¬išf¿iºÙ¬)òª©¥,ò<Ó¢ª÷üX¦¦ëŠf²ª.TCÀf2°¸k^·íÀI\ÈI”¤¹Ø4꺩5uóÈ--d]ׂ%òQS×M•çRÊfPΘøCßþ(š¸eK ®€«ÿY3ï0›5õz0àrܺyó¦ þ·³!À»Ó÷¿þúáý?~ýp…óφñ²Ì›p! Ã0p“ˆÝ¬r¶ÇÃ0d, ¹S! ƒhÏo9ðW–ƒ0 X…aDŒ±0F>A° >kÀB÷~ªÛ‘ÆB?< £ˆq2ð~½JŸ¨ëºžÍšÙLNÆÑ8ŠúéVU%¥PJiBÒ†+Je¤4p`5)E+7€µÒD– š–À”DT"¡"Í-!ꮛ͚¦98lªÊMX”Iš§I.«ªªò¢™6³n6›ÍšYs0ë~캦UwXÉ·ôÖuã^š¦ëŠÃÙáöù¯ª«z¾@æyžsÎÿˆÎãÄ…‚qÂcçùÄ™…¯¨¤lœxT?ª›‚åu½_×9K䬩ëFn Iâ(Šü äµps†Ÿ¯€ŸÿY3kæ³YãÏÿ±@°U|™ðõêÁÅçÿ‚àôôý¯>¼ÿǯ¿þú뇋 GQžE‘{Fúýeýßazú?êSŸÃÂÄÑvd¸Æc0L÷ŸÃz¿éfÕÐñ0”Cn8pcU€ùÿµ0ØÛÛÛÛÛÀx¹Æ¶8Ž*é&@äl>öŸDñd7  M¦%2V£6@šiEÊ€)­0† ‘VHD¨9‚B@ ¥¬RjJ†Œ&Ò5º7&ý¬Œ%ÓkZ"CŠŒB¤Ö` †ú§F"*¶‰I·T–d4YDg <$ÒµsÜÅ´Pµ5¤ÑBÔJi"« ˆŒ0%Y²@D¤µZƒÖ]×ßÛ+—NÝ/Ò4O’\VV¹œ5‡‡³n>kf³nv8›ÿ8ëf…¨ºCéæÕ~}PÔÕASÏfùasp>xy/€ï–îøK°„ÇqÂÎ☳˜',á‰k_.d%i:À)€}7 þQÝäq1««ú ‰ù¨®›Ú=ýÿú©. +)ó$aQÅq4‰£x2éÄQMâ(rÕ¤“ßͬ™Ïšù|Ö+€¹Àh—*€s+gä¿în‡¿züúë ¢XJ)G£ Hó¼ÊóIžE!r/8g.õÆ|! Ã Ü ]Ê/ä|…{lXx¼w敽0Œ†Mˆ,÷‚½1ÆÃ0…,ðq¯XÈ8ÛcáÞÞÞ°¹>7ª0d{{!sÎ@(XÿÄϸ÷Üj°É8r€ëçÀØ­­žL&Q÷SÏTYü@ˆ®[·¤‡¤A¡5„¤ ‘QH$ )ã¢RDÜ(¥A‰ìŽJ€»ûºédy« È´ÊX­ÅŠ4 ²-@²Æ2¤‰•ʸˆ@“Õ¢mI+B,ˬ³þ‘ÐX"²Üj¨ H‘àV@¦Q·ˆ€ÚhChÐR©ˆHXƒ†´6DV ½"íÀæiª¦išÆ•ñ$I.e%«¼èºY×Ìf‡ÍüÇ®›å¢j<ò$—ÒÝí÷ª¦ûµt²¼(Š¢È‹¼(\p©Ð_ÿ’çÿ’çùœq–0ÇŒ%Œ¹…`1ã,f,f¬È£(N’›»kÖ &€ŒÖæÁY°1¬4ø(nÞ¼ysüñîà݆øõ×_G[ãñ8Ïó*ÏË‹BæÎóåAÅA€àÀ8c‚ åNŒ;Û^ÎD?Ùú¢>.2_á B0.x&Ä2ÎCQ#‚@!„›p nc©óÀ?a– È2‘eÜ…Õ 8® cYÆÑà´çl6›ùB a¾¬ü(£5&=ü—:ãh[¸Û)iDk‰ˆV­ÓÛÈ‘¢•DhJÒZk´¼…L2È@ ˜(å¦ü¡%äšI#‘iÉêlEÚX2†ž›–£È’m}ÂŒ5FÓJ<· Ñ€QHõ*±DcHñ©J! jRÌ +È4aK•V¤­¡ÒÍ\)7µA­i%l ¤fݬkšæaí@-ó<]À)€ùlæÐ.ç]Wl Í¥”²:ûu#äÅ¥À n ©@véUäQ”$b«âpß•…Õu-“¼®d]%—M]×M!ò¢³¿Íœè«ÿãh“q¹»È$šüvt]7ŸwÇÇݼëMÀãîXF >k + ¸¢¸uËŸÿ›·Î½}÷î¬èß-NzŒó´ªò8rœÎ€˜j…J)­ºqsà¼@1L§rP<ã\¸„îR{\$Üí÷“ëýN %¦*ãbƒ@Ýj¥q +¨”㌯cÉ5D&„k’É2‘)Å@!(&¦ÙJ .€g§ÓétÚÔµ€¢É&*YUy¼þ¼ï ˆÆÑù½n—’µfÕ¶Ôb‹Új­ !’ÑhÚYT[­©ÍZD­!)J€+ÈÕnò·æV+T¤L©1V¦%»j[Z•mK­!²š¨$Ó>ä@dµ6«¬ÕHZ!= c4BB²„†È®µ@ B… +¸Š+k ­ŒmUkÅý‹sýeWÜLjÝÍfMÝ4û`…À|ÖtÍlv8k~ìºÙyȪ:¨öêÙNPò#ÀöX<ïïùýOnÚX¿´Qäê–†Þ!9Ì€«÷ë‚I)å£}>b²®ê:Oò"——?9¸J@—0Šú%©±[iÜ —ü­ðwýY×ÍýáïŽ? +€Ñ8>N€µü÷!À¿í +Ö +`t^Œó¼ªòœåBˆ© +P િw3BÀ„à‚p‘<á"á…È$nIN’9›? ¸P¨dƒ~3e4ö “É„9Ï'ŠÎ„Z{(Eˆ­Ri,Ym`e,im¬¡)ñ•nÁ* € (@¥µÑš ¡å­&²ZÙçDíóÖÿ'‚"ÿÔ†ˆLiÈ’…ÖZ2DmKh ‰çmkþÒþÅšÖj²nŠ˜6Î%pO=µ8Å€ZÝ/YÀh´†´-‰¬¶Ê«-¡m µ%xþÚ¬ˆˆœƒ™˜¹–æÙ¸Œ‹ÀþÈ/è8W,óÉãþÞû¨¿1c1KdÅ›sÇû¥º®÷뺮Üàáº`Ñ6÷ˆãÈ'Œ"_2‰X;s(^—žÄ“߀Yì»AüwÝ¢ëºc9î-òu'ñ¶ ØËž0x&üßþ·»$ ðëÿw—§yUål’Ë<Ï…RÊ¼Á³?ÀTq–1&8ƒ©€L%S>fÀû¥.Cï‹ûüº1àb€LpÎ…¡ c ÀhƒH +”€¿ý»Ã,˲Ì/¹Íøg@…ñ [Èxæën”À¦ˆ#M&“(–ò ’RîWy<^+€`ä'WF‹¢óFF;¨¾lFòcBA‘RÀAQk­5ƶDmˇ¾­™3Á•F­•+øÓh…èÜ,ãÀu–¤ RÊõù*H¶µÖ2–´nŸ È\0B»{xKšÈ¢B¸?YÆD–)‘‰,…D 4øÅ倠2ϵFQ«µ¶+רPÁRyΘÀ³¨>¦ò‹{¶MÀ\æ2N8ã<æ<Ò¯'2¢$ñ +@¸@î˺®kY×û•«Y®¥€¬óDäy}üÓãÇ2/ÆÞˆ#攀7þ¶,Á(šL.Àåî7Ÿoÿ¦;^tÝÓµ&{_€ 5À­íë›Ûß|wçÎ{'/^¸V ·§§§§§ï?¼ûðáÃ?Þø°™œ$gNâŠçB0á¾¥¹3¸”2nð.ŠÂÝ£„pߺ®ø8Ë2.2È2ÈQ¨ 2¸O*ãÈüvîºÜj0ßãO;pÖ”ÜÀ¸@<™Ä¬¯ßЭi]Âôuû +É0K÷K?zK)ÅH¡Èü4@ +Ýj_ ¥¸BBå‚*‘[BÒÊצ¤Ò÷ ’åšî—äÖú ·%¡B,•k+"åÚ•PQ FRœúðIY‘iDW4„D†ë’ʲo3$n •ò­EHñ`pÀó]&à<¸< Pø…çënœ+ÊóÄ×ÿº-}!°_ À¹¨Ó(Š]nºu]ïï»Ó/¥¬óÍ Ï÷»™@õ)aNØ$šLâ s š0Ç×ôé˜u³®ëfþ—!xºlšåØò;‚`<ÆA¿¹h7®ÝüzûºùÍíÛwîÜyöìääåëW¯ß¼yýúÝ»Ów¿ž¾?ýðîÎ(€M$2/Æâ8I’ÞJpà<›N…Ê|Ï^¦ 1!²i¦d¼ÀO|‹/w·g\p.8wˆ¹&Eh@)rÊÔ€ P¡¿ÎÐ} !\¯Ï2‘y$pÐG ÃrÐޜı¬*)÷÷å`n+·o—°HHÚºýY†ÈØŒ«úEBE†•e©”"¥¦Ì(BȼYA •V†€#‘B„¨Ú²å+cÑéÒ1„uµ}èN)•%•Ê7íoý,_B@úJ"2„ÊrO Ц†ˆ[BW$2E2‹èþ›ÉåX–ä=o•"}]¹< à<€Y·¾àRÀ—ëœón áÿ¿ø€ ùÈ•n@ˆÑ#®iißÿƒ5dšäy.;¯’ ¸{ß Å“¾R|¨‰vàRó¯söß¶Ð/—M³|Úur¼nèKÑzë/ÆA°Q»²‹×þçk×®ÝúŸ7_sûÛïîÞ{vrròêå«×oßž¾~súþݯ§ï?¼ÿõÃ?>|ø°Ñ4¹.¥üW€QÇI’‹uiÀ WüèÊÑ8]€q¯ÿ¿Þ||ýÍíïîܽûìÞÉ‹ÿýõ«7oÞ¾9=}wúîÝû÷ïþñüãÿX{€Aœ×ûûRz?,N_T™»·ý¤yàÜ-¦æÂuí w¢…áu;V[¯2áîùÎó¶X–eÎŽJq@÷<` + 6Z·¨Aim¬ÑFÑTOAd\i­´FM>g˜e™ã‰PUUU4u×ãë<)eUR®Ó€Ñà©úQÄ"v&h[Ûjݶ%YEd´+²ÖÒHŽª, )ÄV³¥â™!€JŠ4¡Ñnǧ憈œHÉVÔºª*µ1 þ“ RdÑ æ¨Êò)ã¶qk}®±TºüÚ’È”@­&$®Ñßòeè9o5YtÃFjà+_l¨•娈JRÚ &ãÚ"K%*m´6ÆãïÈ4kœWÕÁÁdzEQäg<€RÊAÄßè}?zä’GFãIœ$iÒÏÛLÈ\ʼȥ̣ Êk)¥‰ÈsyÜÍz rkä¢ c}3ð¤ï‰'Ãp€ˆEnRàÕÐuÇ [.«fù´{,ÇÍÀkŒÇ£QàŠ†¶ó×µ××·nßùîîÝ{Ï^¼|ùêÕë×oß½{óöý»wï?¼ÿëûüº©Æ©¬ëZÊÍ®…ìëœP>Ç9ÈÁ‘ îοvÞÁ•5Z?DDBÔ-(ÎyKäúÑÁW5$¸›„Ë! ~r(ÐjkµÕZÛiÛÚ¿ µð§Pê©Ö`µÖ85¨„ˆˆèÀã¾ Š¢˜1ß\UÕ~-Š|â<€3ð +À ¼3 +ÀZ2} Ù"Yi"|ˆ¢VĈJ*ѱJiF"‘P%€* •[Çe-ñuñ –ú¯Ü¢&²†Ê²Td¯œÓ +5i÷Ô¤¬BMÊ0CJ)]µF•ß#Ò"2T’5Ä4ùE¿I¯¸·¬HdˆŠ—¨Ýô².pAe¢BÃûé@¦%cŒ1Ž. ^œ¸ÕìM@ùìRRnŽNó\¤—=ò:G–$IšæyšæÅ:èG—ä¹”Iz$Ižçõq7{,S·ÀO™lŒš\:#èjèºã+ [{î†ïL@ƒ·|½ãºyëö;wþøìÞ‹/^¾~õúÍÛ·ïNOOOß}xÿþ×þñüã,꾈ª(Š¢À¢( +—×Ë2Μ%.úf}iŸkw€‚"!@kk´Öd´&ÊÄÚµ5jBí:ÓÁ;X~b‘¹ªA‘‰©ÖÖZý0Ó µµö¯ÊZý0Ðöùó¿Ú¶µµÖZ‡©@¿Ðw:b³^T²Nré{¢`@k²T:L“ÕC"4J!š5Œ@©„8kÒ¸ ,©|øWZ­é¹¡Ò”d[Ð9{ŠL©™¦ïÝGE$2¼lbI†H#=@([KdÊÒX$Ž„HJ¹}¥-k5¬¦îëc€ÿ; )"k¹¦?—¥"š*¤Òpc!™Ò ×9ÐmyÝ!@µV— ¸°Pæ[-ÁââGžçuŒ]%@šæIšÀãZÖRºª6)SÆB÷Iœ‹\ÎoÀ¹lÑðˆ¢hó·ë?£h|¸H±X,ž>}úôéâéÓ§‹ÅS÷ÛE×u‹åOE³\ËhÝB×WŽƒ`¸~€`<.rw+€[·oݹsçÎÉ‹“/N^¾~ýæÍÛ·ï>œ¾wúþÃ?þñÿÛ2£\>ªkéÌÒBV.b*Š¢è³D"Ù0kÚ¯pŽgî ÚZm­&2`‰H€&D*‰HkMSœ¢æ +µ°hé¡ÑØ>DD½ÂÝL»¬Ð¦µ5ò©B$mŸk«¹ýÜ¢k­}ø°µ¨õtúpê*=êµðãâJJ¹P'¹t½}` qMÎf6€€JV‘ÐÀ&Ô䋙΀,¶½•Wš¿ÒJk­=ÌNÐt+KdI”¥±t Ð/×xh¸¦ïKÀz˜mÐÅY€f~¡pWÕ¥ÈÏeÒ³€;å‘çù~2ŽâØ‚yÒïÊ¥¬ëa ažË×ÖZkZ½j e@@¶lÐS­‹©6`§V[$´S1…d´A´¸²–TÚ´VkTµ%²ÏÁ>D­Q€@û¢µZkmNõ¦§îûÜ ýÌ×rùÕ`uäù¢5\Ïà$ºB ÄJÓyèb'Ðl KKç@ûI +À`­è2Ð@!Ù³¸Híô†:€ åGK=òµÈóRÊ"Ïÿ¥ß ´k<Ø®‰ar€ÂؾøÇGN$QâæI={TÏd’ç©Ûˆ¼ë”{$lýùß\ +€®;>Þ,ù[¬ÏýñP¼X>•ͲóY€±Àx£ÇqïWû²ªë$‘Ûp_¾~6hŸæÝl`— ¯Ì•@IŸ €MP@(Í ôÇ€ú@ti/À|gPmôTW€Ÿ 7ŠåU€”É8šÄ}RP$ëf¹9h\Ê$L êÇëÇRäyš Ø:èÑå_€Y×­0œù®{Ú=íºã§‹®;~êp\4˧³ÙCSÐFÕï8G—à믯{|ýÍí;wîÝ»{òòåË/^¿~ûúíÛÓÓwï~=ýõý‡|øõ×_Ý€sKªƒƒBÒÀc„ÖViDx•1h”1‚J­±BkB!X¶k°T,­4`Ùâ_­µµÖ…Ñ-jûp%Ú¿ÚÿxÞþ‡ž¢nWÏW¶-Úç­%­x†S­µÖ¨Ñ’µðœôCÆÚ´ÑS8EZ{ «JzàTܪª®óD®ë&Ñvà›¶z²v‡ƒÐ;<€‹€=£¨4D+m¶Cú`œø@»³]_ +¼» ÷fUr½°î rç_ä⢻¿ÈE.eì&I’o„>®í „dÞ+€8¢ž=®Ë<ÏÓ$ŽÖÛ7°…„hÓÇãÅb±pê~qtÔmÿãõMÞ™}g”ÿ@‡åSÙ,Ÿv[ðY7˜"piÀñ8úÄàÚÍÛßݽs÷ÙÉÉËW¯^¾~ýß8}{úîôï>|øðëP¼I×7Ý@ÊþË¥µÖµEk&«@#]h­­ÖFa«¬%ЖŒÕÑ´­!4¶V™Ö«ÑZ|¨§0Õš4jR+¥[cÛ¿jšÙÿx¾²Åç}ÞZ!ð!ZmŒÖ€h ¬%«AhÛ’‹Öଞ +¨.Ö!@#'~ás?¼ªäþ‘ï0‰ã‰s~·²í6ÀŽ,À•=, ÑÊl ½ªPžÀÕ=€OT´ €3Y€Ys®ù¶ýí?õ)€4ÏóÔí!Û~$iš¦yž§¹ŒÇÑ„%q’$"I{Èm¤i.s¶VÉþãGõ#™§i’°øúdÑDÆÃéÆãh±X,:Ç€ÅÑÑÑѽïwüˆ6K7²€ã>ˆ‚Ñ'¦o}{çg'/^¼|ñêõ«·¯ß¾{{zzúî×ÓwN½Ð+€ý¦yÔ8TU%e!«¢Èó<÷˜Zk Y PhTBƒÖÚjcµÊX£.€­ ï[«­Æ‡ôí ÈÚçÏí_ñù_ÿÚZrxøPoÀÑ ôlK†6€›xT7M#£`EŒ1ÅŒ17î,úù_ñ@€M\ìöÌ'z%•D´ÒëÀ|rÀ…¢WWˬ@y@´»`(Þ™8¸j° €~5Øz˜Oì¥i~æáWŽº!d2G,f.Ч²¥”Rþ«ßFêR™yΙçR&Q"’zö¨~,“$Mâ(¾÷çýÎ…ãqäïÿ^,ŽŽŽŽŽ~ìü?Å9kÎhð.ÀW;®k7¿¹ýÝïÝ{vròòåËW¯_½~óúíéÛÓÓwïÞ¿ûµŸ Ü+€ý¦i=ªdU.°´¶5^Lh£¦­2Ö€9 ØÀƒVoÏÈZ¯þÚZ,. +€-@øp €fÿ‘@<ñI§êZ8À§T&c£ûA;J¯–øtÀMòÛôÌçyÎüP^I¼p"Ps‰WUÅ ß +r0GcñzUXžæ~ј”.Ó—¤išçIž$rö¸~,“$IX_ŸlDúãÍs¿ç¿ëÀÏGGGË-tkl5»W]wÜgf2 +6æÁŒƒ> Œ‚èSpëÖí;÷îÞ;9yùâ勯_¿~õöí»Ó÷ïNß¿zzzzz:`"ÝðäƒAœÀÔZ;„› +@;|Lž°ç²;ð›<€F€ˆˆvõ\æHyuàø^€«ŸûMŒcq’¤Iš$IšçI:x€y¿É0I…[\&Æ’TÎ×&=®zm¯ŽŽŽ–kx°À 6˜°|Z4Ëe×­à‚þÁ c/j¼7¿ùæöwÿvç/^¾|ýúí›7¯NOOOß¾{Ú‡ÁuÓ4‡‡‡‡U!¥¬œ +À‡0ݡ·ç€ýˆP]WEÑ,^>íÿwðáC³Kì +húP뇽°¿¿_ËÈ-ÿŒû4`µ¿_×"ö#ÁÞ'ÑvÀ„±èó²øéuú7{xEàß?Óð2`Wà‚vપ®V ¸SÜv§®Ô÷|í¯ûÓ´ÿEÆãq¹¶T8½ŸÈÓ4n“±ƒC€Gåc™ÇIÂØ'`ãüo*€£åÑq×=îwÝã®ëºãy÷ø¸ŸöxPû¾ eW4[n*€ ÁxHŽ\°ž ì¸vš€·¾¹ýon"ÐÉËW¯_½yûæôôõÛÓÓ÷ïß½÷Þ¥ýÇtx4À­ÐrKVÎz0ý<`µÅ0mûóÏ?ÿòË/4?þòôi_;±èuÞØ j­õÁëCÝß?8ðpuŒíËý}Y×I¼µà<â+„âó²æ\€Î›€ð·(ü')"úË_þr¾à¢và+Wn@Þ8Û|Á•žWÑ$ö þŽ?¤óð +à_r™çËãfó.©Èe¸i*Ó\æÎôÀ ßPœæi¾ €ú‘¬ëïü¬üy×-—ËåQ×TÛ·üGz΂hÇq*e4‘2M’d] 4Lp + ÉS™2ÇR>–R¦,‰£(M£OÖÿ>ØVŽk,ºãÅEè:€ãa/@_Yäb¿m§ÏW}ZÀ7ß}{÷î½g'ÎxõúõÛÓÓÓ·ïÞ¿{wúþý4ÝlÖyT•”²ò_¢¼@mѶæ²,ÀÇ=³íÌ}ôòçC^‹Ÿ—ËŸ~ñX¸` €ù|Ö4粸®˜ê ´Ñx=ÎÑõ îsžO†JÀñd2ûFÐ8ŽcÆ&“ߘp›„ËRSiÛUùÀhÚÀÛÛ€Ú•¨ûZ;”ei=˜@iLÙ–¦Etâ` D­V4=è~9€óÀ-\ Ä"ű,w ?ÿmÛne.l¾z%`áÎý“këb€íGšn©”qDQ'¹Œ£Q,Ó$I]!k0N·Æ‡¤©LY”Ä®N eIÌ¢4Ž>ãü{¡º¥Ž\øºèŽ‹îéb#pÜuÇO‹E÷´/ b¶|:LõÓŃt W£‹»v§o{çλÏþþâå«g¾}óöôÍéÛÓwz`Àñqw|³Qƒ¢~“÷%•¦]•»À(Š.Àý^üû9yÀl(DUž@ÆGÛ +€‘!"€òúãomkm»Ñ pa;°¼j%àpãïEÀ&ŠéP0äÿó¼Ç@€(No¤Q0É +€Ù²+f˧GÇ2ê€a)fÐ}»³·oß¹sçν““/_¼xõòÕëW¯^¿}óúÍéÛwïN‡n@g6Ý€ºö;\7PLmÛ—¶è•üÜI?!ùè—Ã"Pu¿,{Ð%Ö óïut´\á6¤”µ¬¤”û~È8'qOÆiš¦kÄ®ºj<ÆQ¿ + _»U|J/€BDDQºvÿò‡3 + ÄÏ 6:\I^¦¸óÖÉMw ¿ý·¶m["­µ¦¾à"°ºB%`UýÐßõ»O¶TišºÊ_÷ÿvæòHÓ8Š‚Q0’Ò·§išø€d@œ¤yÅÌu§“8fìzrÅóß=þçÀ]¿ùûòkÑÍB€~ˆïþñŽŸâ+/ +¶Ó¸yû›o¿»{ïÞßOþ~òòÍëW¯\9ð«×oÞ9°@¼ß̺®ëöý÷õMÊbíL?ÏÕYÌ=ºB4¿, øÃҠ뎎Î*€³8ê6C€ªÚ¯«ƒÚí –=â8žŒÇq𦕬ªz¿b‰Œ£±û¿Çn0‹†,À™Í@ÁU³Æ #‘.Iÿ@äÀïDWW„ê +Àõ8 ·ÛZÝ_÷Õ¥Y€ªúX%`wøÃó®ëžtOæóîŒPTó+ ÏY€d‚Ñè’Cèû÷ޓē$õø×•7dÊâ8b×ã±Âwù£[ì¸v(€fÿJè~ÜöúÖÂMËÜÁèSLÀ[ßܾýÝÝ»÷îýéÞË/_¾zí׃¼yûöÝ›÷¾Ð]ÿK½ €Úw뜋b €ÏɈ<9OwΗXàpéC€®;:ïøóß ëºnÀþæ%÷+€(žÄQ0Ç×ãýJÊý.£øº?ø±Eç.]¥À ÑBDDøô%ÑÅÀå!}Ìø¸Àí,À%Àž÷½0Ý•è£Û¶Z“;þê>]Ö,/¯<êº3˜ï0±(Šj~˜|ôÊsŒÇQœÆ©ÌcF7ò!ùïàÏ~ìë…Ó4bq*¥‹âôJ€OOoþ + Îg½Ž›§~$X—ósy€Ñ8ø,ÜüúÖíÛßÞ½÷§g'ÏNþþòõË—.øòÍ›7§oßn ‰ëºéº®s¹À'ÿåfPò7Ô!R!D±K-!f¿,þøiÑW5‡çÀâèhéà1êPo]Õ~µ_åÑ8ŠãIšF£Qr¿ªö÷+.d}uõFþ17î\–°mÛn $"}Ƹrpÿ’€]Y¨OõØE +`ˆþ[Ûsßí1 KJ/¬\.—Ë£³xÒ=yòžÛ@5?ü8Ò4 +ÆQœÆ)Ó4Ž£Qä;€RŸ&>Å,Nâ$MÓ(êCÆ¢€] OºEw5 ©óè +躮èÜTà wÇnب_6ö«AF£OS7o}ëÀÉÉÉË“—/^¼|ùâõËׯ߼~õæõ›7oÞ¼:Þÿ—ºiÖ€3ÑΠ(>×ÈE"’\ä©×ÛàèèPÝ/ËŸÿ÷_ŽªbþóÏ˧ËE¯60ïÏ¿€{›ù|©§›ºÞ|ô˜L&ãÉKƒ`4IYUNŒƒ`ìꪇ•onøs4‰ÆQ4þ´^kŒé `ú(€~øÜ,}Üü==€`ÓÜ€uô¯ióöODÔ¶å…íÀÕV%`·XÌË£ŸÝÙÞ€! p& X5‡'€Àõ8ŠRùßÒ8ŽF©ëHÓtCüÇqÌâ8Nâ4O£ˆ%®QEQ]ýA»äñ¤{rzuM>w]WÌ–GÝLnTý¸@·hüFÁøSðõ­onûݽ»wŸ=;yö÷—'/N^¾xùÚ —oÞ¼yóf˜y×Íü§Ÿ~ú©ifMÓÔUUUEqöüÅÅu—ôE^Y’Š\!7Ð+€Å¼è~Y.ÿ÷_Žª¢ûe¹|º\îRó>xÚuÝ|>?::Z +·lyMÆã Çi€Jè{DñÄ[‚Ÿ–È̳O€µð{f«)|’°en„ÃùÔÿýþöOí÷>:suóy·X,Ž~ùe¹\.Ž}|±è拟~Ù ·2kÞu;B€¼š>¹âhEQš¦1‹b™¦i'›€ùqœÈ4Ž¢8•2õ¸Bp>ߥ*€8º"~<>îàûFÁhä·l ø„f k·¾¹}ûÛ;wïÞ;99yöìÙÉ‹/ON^žœüýå«WÿýÕ«W¯^õ•£x¿ž +À@ž@ñ +À×$Y’>À@êðª[-ù¥“ÕrÀ¢Û€^,ÖÇÿèè¨Øß¯ë­‡”õ~Çã4¢q†~[…Ÿ +ìç; …Ân´>¡ Ëܽ¿Ý@€ÐTþ3²Ñ•À§zkp îø·- ç¸ý_~t´üy£Ïç[.‹n£ æÌçݼ÷Îdœ8œ'ñe/“(¢`4ŽÓ4Ž—ˆï?î× Ç,N’É¢( +¹H²$OEÕÌ›f£ð¨«òn¹\-éŠêèbïº +‹¼(ò$K’¢éºnSÌåár¹ìË_rC,ºÅÙ`Þ /ðÇ?Iò³÷ÿªêê`ŒGr4NÇcEc÷ITûn;°Ÿ¯ÅîüÇ,f·Kü*!€Xùr<‹€¶m[¥Œ1[»2mk¦@Ô(…íùdoî1Æ(•r+ÑÑ"¡FDC€„ ‘°$¥è>d4 ,É’±î©µPJ)P +1Ó5D @%‘FBÔÊ-xÄ~›"Øca€0DU&HÆšöA‹`L[¶¸>ÿª7ÿÛvõý÷.Ë’6ðóYü¼üy±%.@·Ñ¸ˆª9œûð€]x%i<Mâx<Žâ4ŠFqqžžå„ÛüèVŤq“4M60ºpÁ×€'Ý'x“IÇé%xúc×-ªå²{ÚÉh£ ÀUÿ[÷üK°ÓüúÖ­onwçÎÝ;wïÜ»w÷îÝooßþöö·wîþÛ·ßÝùãÝ»wïÍ'²i~úé§Ÿœì>¨v+ÿë•z\¹G^@Q¸> + ÈóD$UwEã°,ª§ËupÔuÍá¼Û@@×=uèGGG‹®?þy~¦  ªªú8Åã ãQ´áH™Çã5&“øz_¿îf\Ò ´]d9ƒ€l#¸¿$À¶$S£¨5nA8ß@"8ç A€EŠãýR)cŒRD ˆ¨5¥RTÛ +,Iµ%¢Ö­Q„-‘Ò¡š*$@R p…ÚhrË×Wê>¸MNY&²€q¶× à¡ %°4ʘU«Q›¶Ü8þgnÿ.KêºÅÑ‘¿õÿ¼< €_~î‡f»/ôG<€u1ðV \`þäÉ“'Ý…{úb9â8òí]Ñ8M‚X^w¥?“8fñdÅÌ>b“I'qQšÆIAM&—¬÷}òäIçîÿÝŽ4àå + ÍŸ^xýÔuþ¸ì޼ è§~ðxC\2ì"póÖ­Ûw¾½sç»»{÷wþxçö­on}óÍ7·osëö;wîÜY`ßàq×=nª¾§~óª†Qòã + ß6œ×Q… ߀»3XÕòçåògçñw‹®ó>˜w½XlÿDù°¿ ‚IÅã8 +â4Š¢JúÐ&ÆÃP`Ÿ¸Çþµ(ŠÆq!@kŒy`Œ=#²,[õ A$miU¶ÆDãï¼k0Î8ç 8¥‚B@r›{"M¤P#C"B2ô=©¶D¦ŒQjÚ’!C%ÁT›•14ET¨5 +MÊmW€¨„%­WZk Òˆ@Š”<˲€q†®xO©H(%ZÓ–Æ´µ5«Öúó¯6Ì¿Uùý÷.ÿLTv—)€å²|ÓÇG@€ ²Ožnºó> 0?<|òdþäÉ“ù|Þ]à¤éx4šŒƒ I‚Q|=Ž"D2½û.ïÉÄü¸— ¡‹ ‚ ¢hÉw.þŸ?qǼÛ\’ˆ'qœ¦iž_,»ŸŽ7¦úYÀ[§Ý¥/À;®¯¾¾yëö··ïܾsçηßÝþæÛ;üãÝ»wÿø§»wONNžœœœ 1ÞwiÀãããããz¿@%×/ÒYÉJ^–(Dž +!DQ䀢(<á0ošfÞ-º'Ý¢©ºåò¨[,é:ø¡óßËÁ?²ó¦ëËårÑÍ?ø»î>Š8 €ƒýFŽÆÑh4΃ñK¯_¿¾ ã(ŠýVÀÉd2ñu@‚f u€Jã0`@ÀÊ!€tk˶]D@TgaÀÕZp¾Ç9qP¨Q!"RDJYk±dŒÐÆC-ó@3j!ݶÚveÕhµ²Z“iI“:´VMFÐÚÒšH“ÒH  RDè0|×1Æ2dþ½m-"Òêyk¬ÖJ)üMÛ®ÊïËï¿/‰Ê²ë.WB€+¥]7¿( à@7ŸwOâÉΗh4EAÄi0НGÁXã4½Þ×þœXGA0ŽãI€~CÄ9 s@×-º]&à%ui~¡è–[ +`ýðë€Î`ìLîÀµ[·oß¾ýÝ·ß}ûÝ··o{÷勯Ü\°·ïO_¿yóæÍ†xÔ?}êÐìûC¿+ +ð×ÅunþR1Œ)ò<Ï‹b>ïš*Ͳ›8<ì]s´üé¨[8 PuËÅ¢[<ÝØ¨Ú+€yÓuËîøC.rQy.Î+€¦âÑh4Ç7®{TRVU7v,L\ c+á‡Uíç·#!íèÃÝ®JKÖjÓ¶íÊös7‚=¾6÷\ @(""KÔZЖ,²­Y³2¥ÕÔ–Ô> U©ÑÆy`ÚUk5€ÊN‰˜V[-âTkƒˆJÔZ·-éVë¶tÓIÂV)„ BîÒ€Cßc„Œs"2¦5še@ªERàå¿q·ÿ?—ßQy;À\I¬€!ÀüI€¦ÙéøÚ£qì¼€Q”F£ôz<™Äq4‰&,òÛ¾Ý[{ŒÂ(ŽÙÄ`<ÞqöݦŸùüÉ“'OžÌÝgó)€ Ò<—ÇÝù—§?vÝOÇU·üq+ ëAv(€«à‹k7oݾ}ûÛÛßÞ¾}ûÖ­¯ï¾zýúõéÛ·§o?|xúÖuö +@6ÍñOþª÷+é‹?1ÃoªxMÓÌæi.D’¤¢àz¿Ö^@žó]×ýðÃbqôËÑÑò¨[tGNü¼Ø‡ÍaãpÔÍ…H„€B¸Íïy¾¿eʪگë`E£Q߸ž¦iÚÒÀÿ(¾_¯Ç›D“Àå× Q)Õ‹3À#W+²¶µ«Ö¶mkuÆÝ)ã{'-ä<ã ç‚ ž‰ @‘ik5iB + mµÑˆV¦4FGÔ¢ÖÖ®ZÓ®V+ B ÎÝØOI°­ÕжZ¸}í „€Ld|j@(‘q¾ +Á }-XòÑhìq"]¶þ©EqŸˆÈ›Ï…"B¸‘oý%Š"IŠnÙÍ Ðu]õÃb±Xv‹îèhÑýÒ?TOèÎàð‰´ä¢(D^äyžž3÷e4 +ÒÑ(ºžn ÈÙ8#€Éõøúõëñ$Š/€Ö}{Ì%"]ÎlWH ΂Ñh²p(ŠãÌå\•… ”B‘R.àЭ¥U¹2«çSæŸ!ÈÈ2EDÖ´VDš*!„`"(Dw \ÁyÆ9cŒ±0èÿUa8FA‚ B† +тȔºOdL»j¿/˲,ýù°ìc€ÝiÀ+fæ‹®ëÇîè0oºnrîŠÇ½yƒÑõh4šL¢Q”ƾ¶£_óÛ¿ê‘0Ç“I4‰Ö +àüµXlµïŸºîÒJÀùQwæåèèÇ»£ŸªnyÔoov[ƒñx|²pí«¯oÝúæöíÛ7oÞüúë/¿¸ýêÍ›7oß¼zóæÝ›Ó÷ýbõ;?æÃOý+²G¬ªê¼Ø8¬‰¹H„ÈAl¤òB$E÷Ô+€y×-ªüðѲ[9 ðtS̺ná#€'ͼ[,—ËåÓ®[ E^‘çâð°9€ZÆ£Ñ8Ç×ã4¾îLÀJE‘F[ðI€É$æƒù”ì6Ö2‘è€(¥'…@¤”€Œ£ ¿ÿ{w1ˆ"ÎË„àB€ÎœÔV€J‚J*Ý@p|”RÈ]a¢B"Òþ@ª$E„ K8‘¥°ÍÈh¹Ê2‘AÆY†{+©ÅÞh4 +9dŠêuŸŒ;ÿÞ8þe×m‡G;Ó€[½—+€ÅNPœQófÞíÈÆ~¥æ8žQ‚xÆ×ã(Š&Î×\õwŒÇ“hxy°^Äuþü/ºùðiì.õ˜ nä¹Üíu˧•ëëu´.8ÞÊü2¾¼vëæÍ[ß|sëÖÍ›__»6¹}òúõ›W¯ß¾yóæÍéÛ7Àæ¹ïïþÕ:XUUuÆغ_Ï…"Ir‘yEïФ:ZxtNuÝ¢ëžu‹…—› éM3Ÿ7ͼyÒÌ‹åò¸€#J.D~x¸lv G£`⸠¾™ ü^€ë½ èf‚Ž#/Ø€µ¶Ü@)ïn#À…ÌZj C¤€³0 ! ×pƒ€1Î…€L(ЀJ)P¤A©Ò‰~y E¤,’B7+œÈ +Z‘! + i€Xsÿ{BE$‚×)Z!µà`EZ)@PÀúÂ%Î÷öö‚õ¿ +`/…™RhˆQIZcWmùý÷.WÃù§n;pQÀ9àêY€¡ àÉÙB m0Ÿwóî\‘ìÄß¾ƒh2ÇÁ(ˆ£É(òÞ¢(ˆ"¿U/ + Œ£ñ(˜8øÜ;Ïÿ¢÷ð©ué ·åP.Ï]O»åOØ «Á¼õã¾H÷ .š öÅÿý‹ó¯¯]»yíÖí›7o]ûúË/¿¸}òêõ›ÿãÍ›×oÞž¾}ãÚו€M3{üøñã®{|ÜÔ}ôïÏý ä@ƒªªªj3 pF²Ïgó'>è'@¹(@.»m8 ðÔI€£®ƒºn¹ýt‡óywä«„–K™@Qä"âðpÙ4;PåQ4E~$è€Bæ€Èï ™L6jÅú 8[–8#¬/ F׉G(ZCH@¨0޲¬×a†ãYÆy&„ýèÒ€dI¡CT’) ’2FY4ˆJ¹‹Âº|?"鵡°m‰JÂ’ rýÐêP*B"EÚepdã{{l˜ 1 +A)> +($MDºE )Õš¶ý¾Ü:þDç€;çÒ€]×Í?ݹB æððÉ“5ºn>ïÎÆÀNžÁhGQp=îÅþ8r7Ïõ;ô¥5ÎtK8wŸÿÁÄxâÛš¯îøJÀ\zœ'À¢[›Wè&ü6ðÕW׮ݺuëÖµk×¾üâ‹/nýýõ«—¯_¿~ýöíÛׯ߼~ýúuÐï›ÈÇÍzNÉÁ;ñ€@y¦Å¡ifó¦É…È“Tˆ¢È (ò¢(¤Í€y×-ä} °XK€-`Ñ4óù¼éænÀ¢@•ˆ"Ïóâðp¹t v FiäëÁ‡rFW 8`3Ÿi¸}þGÁuŒF£`2 +Æ“IÄQ4Ž\Óg¿i»¯³ÇãqèàÆmîÊùã½NvŸ4h2™l†ò<~ì~ê°[þÔÏù= £ÀmÀQ,¸*¾¸öõµ¯¯Ýºuëæ×_}ñÅdôÍß_¾xýúõ«W¯Þ¼~ûæÍ«W¯^ë:€GͰhVø¬ÿÇ ½ØÑåÔ4Íál–$I*„(r€Š¢(| gù¢+z °XK/kàÐuÝò©ÀÏ•y‘.Ÿºã_u;0Fãþö¾Y +<^`ãô;øáKk€RJí®*H)ã0E­±D¢’ŒÊ …´Öœ„è³á &€sP( á’Q+a샶,˲5mKhQkƒÑQÜÀ(4H¤9"’Y•†ˆ´€Ó¬‰[ 2ÊýS!i@®|&€³0èó€\ "`„J;¶  +EŠLûý÷ÛÇ›íÀ„WÌt;Ò€ùv° ÜÍG[ƒ[ƒh´VñîÎ>Çýzïñùìùºº>¸°èÈÀ ,yòäI·èv¶_Z ¸ì @·ìªn¹ü±ë‡‚º½ÀÞ“ÜUtu|uí«k·®Ýºuë믾øâ‹Ñ­“—¯^¼|õêÕËׯ_¿yyrrrôÍñþãºi=ªëº®gõ¼šÒ¨i;ïºf7šæ0M…p©z`w´1ûi±¨~øa±èŽŽ pÔO·Î×4{—®[,[8\ºÛUÍ»³¨\0Nø“qD‘דøz?ÔWŸý†(•R +à ´÷I)%¼€S$BMhˆ„qRZ‘. Z¦Ô ‚p/ x¢x–¥´ …Zâ +WÂXC-•¥5¥!0ˆDSBMHFg- $åÖ€qB*WmÛZCeYB¢íŠ-ê–´i³ P0\)•epÎ×IJ•Ä[TD®v°E䤈Zûï«ÖŸ¿ö¤ëÎxË£ Ò€WͬÀÎB MðÉ9ŒFãh3ŒGÑhEã¾Öc ïFýÜí¾ãöB,{ úÿÉ“';G‚}¬pPÕ<ý±[.{ôÿ4÷‰Œ× l70¾ÿãŽkòÅW׮ݺùõ­[×<þû«¯^¿zõúŽ»ºçK âè™Ë£_ RùÓsá.€j±èÐÍÝâÈI€7%Àò,FšfÀÑ&¤;ÿU5ïº3=‚‰ß¾©¢qEÛC‡Á`ÑØWß3¥Rk°á:à€J $­Q8•NT¶Dd¹Ň .Pd0 +ÑfH¤µ[ëg,ZaŒ¡’L‰mÙZe ! +$Kd +ƒT"¤–Jlù}…Ôš²mKjfísMdVdL+LI†H¨5åB&Øë@ PiBa‰JKÉ–-šŒPkÊ–È”eI;àsgLÀŸ?±àÉ“ù\1 àŽä6‚ àÎËÄUÒ»Ìù¨ŸºßŸ±~æFp–kø>@'>¥ ^‡y¿§p?-»åRΖË·6ù1àýäú~ÈäÓðÅ—_}ýõµ[7½0ºùìäÅË—/_¾xuïÚW_]»uëÖÍ  išGꪪªýY³_Éêàjp÷èK0?ÌÝ8À¼(Š"?ß&Àx󗺹uM÷FŒ¿®¸ F£ êÿŽ~þyÀ|Þus_ +Ô}’àB€Á¬*)6ðt±\VÍò'€~ØÈOÖæsð…ë ¼víË/¿øþ‡Ñ×wO^<»sçÎ{w¾øâ‹/¯]»vmÃhê¦nšª’UÕÔûUµ/¯'Ñ›çЊ\$¹O6GùÞù¢[,¼ p4H€£i)Ã0Ð àJ†*!’j±>þóùülÕr>ŽF£ Ž}œ?ü]ß àkIâ‰ý<€õÝ”(a#Ø}M€˜•dÉ’ÑšV+Ûºú¶Õ–«L)ÅÖ€àx 5"´V·Æ®4µÖ¬l †ÈÓZ2íªU«UÛZ K–¬µ´j[²†HSÛRËI‘mÛ¶m • ðçV?G"zÞ’!mkZmVšŒ6ÖX>U$ÀUÌ #Ô-®ìŠZ€–lBŠŒYµmÛßý©tm@g=€Ÿý^ÌÏOÎçfÎÀ}omïoYÃÀ•ýxÍÏºŽ¶à$À|PWœ +¼Y”ö +à > €Ùrùããm`7¢h|u`2¹öŵk_]ûò˯¾øbòÅhôõ½“—w¯}ñŵk_~ùÕ—_}õÕW_•€š¦i¤,*9kd%ë+†®]·kšÎ÷÷m]KgâUEîC€¢Û@7ï‹Å… qt™¯€ûÆXø ùá¨ûÁo•êæM³Ý·pàB€q|6¨¶ÀPM6xëJ@wëEÇØ‹zލ‘ÖVs@HƘ¶¥vÅ ´6¾ˆ…Ae ×JhÔhD&@)à÷ïßWB¸YãÆ¶dM[Þ§¶\!’±Æ.HKÚ¶dWœÀ˜•U­1¦lIpk4®ZcuÛ¶e Â}À•RÀ™@¥@ãÎð +@kk5ÏP“ÕZ? j9)ÿÔåpúUyK?hy¾ðêº]•€}`lšy7w +`›£³Xßÿ/¹.âMÍó>xÎì>2p+¨¤¬êj‡Ø6Gë` *€/þ‡³×“É_|õå—_~uí‹/¿F£/nݹsë‹/¾øò‹/¿¸víÚ×_ýõð?0‘MóèQÓH)+9««jhýû(ú­}lCs¨<òb£éëŒØt¶‹Šà¿y]÷óò!’Žz»`>o¶WNŒÜ4ØM²klÍð!¨³q@¹mºZBdœqÆ9$¥€‚k™S Æ2ž‰¾Ž_¸š;"0ß»ª^P p¡ÜWÅË8ã\d°ñÔ ¸¥©Ö–Pk´È­FDˆˆÚUÜ'ʨ¼ïÌÁ9ga¸·®Ó€!gœg¹ºCàFkm ¬ËyPIª,KZœU‹õ²† º?–Xô«ºK{æÝ“nÞuÝìôñÛí}»…ÃfýÿÑ–èºnî¦z\Õ`ñPÉê –MwE0Úö.@÷ÅîëË/¿üꫯ¾úâ‹ÿÛh4úÿóö7¿q\Ùº7˜Jš‰bfO^("aDòì\Ñæâ€x!P“kÀ/jPð™­E>{/1Ä”3ÌS[y·BdÙ Uî +toÝ>ýÎ.`¸g†0ô 0<¨ƒóOõ`G&“_úpÕémVùCrRJçþų¾žÕÙêßݾ;l;»{÷÷öööV¿ýá£iUM¿¨Ê¢,"Ê•}Æ%ƒÀòÊ_-×vÖíî®ë©€Å¢®ëª4±¸¬Oëz~9 pM¬µÆÀZàËø){þ|Ж«ºªæk0Åôц[k9€GQl¬°µŽs£«$à2zäåup·Æˆ€L Pd“ca0ˆÀD&M“$]&ºÝÍÍ{iš¦ã41c""a‚:k\[¸w M™Ñv ƒ˜ÒÈjçÈÌdÒ4V“Ô“""¦TH˜b–â wÄÌ+K Í$YëènF¥Àm¯ Lã,KSНÝÍ[/Í,ZWà+!À{Tæ·VÖÊ€Õ¼ž×aÀúµv:½^¯7u;[Å0Ëâ>°h >l­Cz½öy¬9 +&ݵ¶Á^¯¾ +€ÓzÞš¼Àh4YWÅñ´¨bCÛí + …@ç-!@wY½ ý~çƒÎÖ‡íôa«¿½³³³»³wÿÁƒ.VƒÓªšVÓ¼(òüdZ>º¼å´?t±µ/þ¯¾A,u]š<Ï…Z¬vÁG pzE¬–Tk)Àºn¯}¶¨ë³³Ù$3³hCg‹/I€,ŸNÛ*ÀÊë§¼ +€Þ…ÀÖp˜ {ë9€‹gó +—â€UY¬­¶w©03˜{õ™|¬¼SÛ +ÔŽ IšfcccˆÈ03ÃÁqxØf9K|Â,H…¢}D@¤Ìܶ3|"@ì+$ÆÁ"@™‰Lÿd6Ó$M×<MJ,D»ˆ!Ì‘ÀЄW×ÿ2–E€k!@4=}ÇY€Óº®ß¥ +0Ÿ×óöù_×õi½*ü%YQôzY6)þXô²/O¦Óªš—ÑǦ,Êèm³ú ·Rö$O†“iQ´‚óúºXu¿×f ­á•F ¢(«¢ªÏggoRîsËBH»Oáɵ©~ÿN¿ÿaëκ®é÷ƒÁîÞîÞîýýxViЭb:­¦ÓižçEq2-‹òQyÓ}¿v.-î[x]Ää’Kž?^¶†Fp³Xö´¯Öþg_^ÿú쬮gMÛV¼|ü_ÀRŒÖPEY¶ˆÍ ½^²TÉðÊnÀe›¯à7Ç˶ (€„H˜Xb.©—!@wssó^’DC€Ä´n§pGí 6Á9MEìn_šÅ0D,3‰Umûü‚8M£fMâC=¨2Žâ¯‡ÓØl¦i@·õ4$D,VÈŠÀ p YÝ\Ë,‹³ÖËí†iÀwÌÔõ»ÍÔõ“e{ñéÙi;ÐfÅó^7Ë«j’M_TUU·{.ªª:.gåú™NËr:{TW³Ù´:)²a1Æeâ“Öqöùâ +b'Ðé{»_.–­h߈g§§§õ|V–e=ÝFOêz>Ÿ?™ÏŸÔ«=˜õqžçùüÉìÉj‘Z]/]’žÌŸÌë›™î\ºÿíÁ`g÷þý½ýûü×O>ýôÓO×Àt:Nó<*€²|Ôº­ÆÿŠëFeYT—÷w×Kpu ²˜<Ïˉ̖’p¾üã’ˆC;bÖ'Þÿ/‹vŒrQ׋ÅccLµh=Ãæíâ5°Ñé|w~,P<ŠØèvÛ¹Ðá* Ø:F-ÊÚ–Ñ€ˆ¾\Llb‰ÉXd!Bâ-Tøà€MÊÍÍ{1§”Qü✸‡¯^s c´ß@˜!H,1‘ˆQQ¯Þ +€’ÄQE˜`8z@àà,CCb¢‡Lc³9¯ƒl&_Zˆ™œH >X*ð)‹™{ƒh%ÀMeÀyý÷Î\À¥ïß +€aVÔ—ðÇ?Ö8>~¼€Ge9UÕ¬š=®ª“b˜å-&õ¼¾ª. A¯ïxÃvàK€­8¾¤ÏÏNOOëy|#ÖIø&İ(^ÿ'ów©ll{÷÷ö÷÷?ýô“ßú»ßýî÷«ÀV €Éd2™œL‹¢|T\Ø€]ò[ý¯,Šr6›]^à]¯Q`ù$/òr’W§Qb,7¯O#.$Àúв°ørñ¬®ë³ú쫳Ӻ^œÍVhïÿl6;YgùôQ;‡[½^²5nÅ_sþ(&7ºÝÞÆFoc£ÞZÍl¬Ðîdå剹±?\.eD$Qf¢81ȯ +ËdÆt€Í$M÷€¢‰g£P~Ø(«;jÐÔ9D!$,’Z"ÄC‰arøf,«%$Â"†Å– JÎ1ј7ÇѪh³ÓétS“ ‹µ`¶$^=‚fmØûT¨•9ÖÚk9€ÅrAØ5G w.ÞÚ4¿ íŸâ½ëv7z½ë¨×0›_UÇU5«feU”iÚ*€hCyOž<™·3ïÓpS#Ð%ðâÅÙééi]­ ö8\@Ù`6«Zw¢øäÒfNgïpÿ·vöîßßß°ÿé'¿ûýï>ýì³Ï~¿¶¨UxtÙðæ¯Ùì +VÉ€ê䊀r~m1Ò% ð¬>kNêj‹/§ÏêÓzQŸ-ê%æ‹z~²|úϪª¾€˜LâÄO¯e×£²È"6¶Öú’d¸u¥xYE¢Àz°â`-‰@+ÄFÀ* +IP«rÀÆDtâf 4MÇã1%ÄBÄ"Ä¡Qœ{ˆÓÆ9` ÀÅXÂ"ñBDö¢Q\hÀ$úMt@Lv,Ö1‹@¤ |èpÈBÌŽˆh3'IÇ»D=+däÄ ¶z® „ Ø&Áìõ—{€¯/¹< øÖY€e#ÐMU€õiÀùêRŸ.¼ñ¢D˰j­[°®ONêú¤Š®“Éh” ‡“Ȁ㋧ÔÕ©®ÏžŸ½¸ÜÐOÞ«`xSÀº¸@Ìæ«jèM +`6¯Úçþ¼~2FEóyýNèïÝ¿ÿà“ûŸþþ÷¿ÿì÷ÿÇ×_ýõ5O&“I=-ÊŠ7æg³+X ªçkqÀi]Lò¢Éã‹ÆÐ•X“g§õéÙ2X¯•_ÖÏÎNëÓzq½Bg³Ö]luýgU4 +Îó<9€Q@|Àoõ.Ü͆½NÛiÝë­ÍGoà^wãJ' .#€È^–€HĦËÆâUƒ‘‘q§ÓílnnÞK6Ó4MÇb8‘övئŠkŽ:vÑË"±6³ˆxX¤¢ç^¢µ1Þrô +aQˆ±ÐàETl rèÙ¥´™^˜n +%9b/VŒXåB ¢Q˰€µÞûÎÞb +Z¿c#ÐÛfæóV=®ÿæu{—O.prrRMË"ŸLF£,ŽZ̪º½ô«<Ó:Î.·×Ož<™¿÷f ásÏŸ_Só'kÕ›0[JÿåpBÄÀ¯~Ìôïïïòé'ûŸ~öÙgŸ}öY\ ¶À£u”Å£GÅ[PÅqyËö½ØÊ·REžG\UkàÙ³º^–ö×K‹E}º8‹«ëE}zúåâlf¢»Ø¬ªªÙ¬šÍfU}‘L'Ói@«ð“­^ì(ʲȶ6º+ôV“€W†º+DCmfæCfbâ‹8À´Pç<f+6õ€!·ñ°Ö‚iC€$‰}2”0H„ÈÚÆ¹#µsp¬ ’Bœ¶/ÔBˆDD­…€Å+ùäÓO|ò»Ïþ×wß}ýõgÿòõ¥*ÀEPMËÕ8à›5@Y®PÕÕzS@]Õõ*8«‹Ižç¥yÜÿk¬Ïë p÷ÕAæóù|Q×§§_E0|UuºX,g[T󓪚͞ÌfU]W«`²TÃÖ¾Ý ”çEYdÃÕ¬UtˆßZµ­—£'S§CL—DãDLd"Ô*Ä#…@HD VÄ’õ^UÈéøÞ½ng3 Í ¥&MŒˆà@¬ýVo£#FŒ§.Xex›XÉ…Y,ˆ/­Äbƒ 4ÆbâŒa x oÿCàäP!txH "3ÞLMLt:M‘Är´!` ^U=‹X/¼Q+b¼÷iºüìŸÍ?.˲Ìóýô÷¿ÿôÓÏþåÛï¾ýúЏœ(‹âÑ;€ÒòZ& ÆóU2ð¬.Lž%ÍV]ë˜/ßÊúY½”QüWUkPÿñì´@l¡ˆ8«ëy]TOâw¿(˜I5-.$ía»ì¼¼€UðÖp8ì%U€Õ 1_Ž˜ˆ,&bc¼wMâÅŠ±z` +6 +ͱQ"Úìt7ïµ^ ”˜q:§&šú +‚ªÕÆ9ïBðM"¢ñ¥…¬Ä˜_¬èyCMრ!«ª^Ô:bbba2Ñ)DÈP’¶Æ€Ng“(=°tp D ˆ/DȨ©@ÕxŸ¦Æ˜K)ÞÓº>==km—ݱg§WŸõ꺜ճÇgíÏ]¾Îž<™UÕ|ù˜·ærOæ³y5²\4»xdŸž.óUÙ¨®ëº.3cÒ4GgY6)&£Q6œ”ÇÇdzվÉK¿•r¹»,Ë'³Y;xTÍf³ù¼M´È‹LÄÕsvvö¬>9©Š­^ÒÆq7@ÑvM«¥|©gåéõ7¢žÏžÌOª6Ø©£ÆÅ;±ªŒÏW)²ªºíþß¹Óÿp+†ÛŸü>n +ýìÛ¯¿ûþ‡èpS š®µ¾k˜µ*à$ Æu]ŸÕ¹Éó2Ïgqé×ÕTà|­p%@ €ù|^·oϳ€/[”&ËëÙ¼®ë2–fÕl y5-²^§M ‡½yYí5ô¢h»Cv­ ¸ìÅj°N€˜ +À@ÌdŒp;`—¦Æ DÖ{¼õ1–8ÞnCi·Ó–6ï%ij’4MDZ§WˆˆaˆjãUá ClLël-ÈŠ V¼÷Þ²$—Šh€ÓhL<ŽKŒ€ˆ$3X˜½%Jͽh ÚÚ¤F¬±bƒ÷Öì¬ÖÆ—NÇ)c¨^æ÷ž<©OOëh˜SÏ£«ëz–·»`®àìJò¬õÛ›/3ßOæOêú´ÌËŠâ£Ñ(›OWÓj>¯fOæqý`ý¤^SOª'QwDøÌ£ÆX—Ë¿ªOëù“YÛÌXUU]Íʸ¦×ëmt{½ä£a–F“ILL«öÓ|¶ÖK¿ç“Øû¤=<Å7b¶JWÎfWZ;“›Åÿý~¿ó›þoît:¿élúÙï?ýýï¿þúÛϾýöÛï¾ûî»ïÖ·· + Ÿäï €T@;0¯/@Yæ“Ù¢mô½Š€µ7âÙYìhK§ggg§§‹ºþª®Oããÿùâù¼*M–×å¼®ë|VÏW…€ Ä 5ùÛÚJ†yÛv ½5c°›€¨õù +˜È:±Ù8tñ'1¥”eã1ûü)²D&M²4ÝŒ{Ú( ¡$1&¶ 0G§_™ˆDý˜â®°Xv`J)54fc"2"bLÆddÆÆ˜hü›zaÆD 1b{°¡ÔŒMJ†î%÷Ò{Ë>CãÔ¤cJ)¾4 ÷ +Œ1c2&vÑŶö"?¹ø/ÚÎÍœ®%z.îÿÙòC_WeY>~<›Gá#Áº®ge^–UU׳ÙÉIUUícx^×óÙãÙl¶VÍü8Jþº>[<[¥[,^<‹Ý¶_Ö''Õt:=žN—N¦ÕÉÉI=»Ø8[×§§gg§u5+Ërö8WNü–Ë*ÏžÔõ|þd™¿8]-A‰Aðñññ¤·±¬.Ç æ£Éh2)ŽM«º>{Ö Ž]嬎OøjÞ¾yÕã2/gÕ“z6›ÏãÇ{'];·ŒEmõûý?ìÇ¿|òé§Ÿý. +€oø>àJ#PQEÑæÞ×pr²6tVç&—²È«º^¶úϯ=¯Ë ˆ‘ùütqÖ¦¿:Ó/‹YU–U]×yYÇû_UÕ¬Ýc–åÕ´œlltZ[Èd˜ ‹"/м(‹á°·ò[Y`™*¸Ø¼±Ñív66:ê£Ö§Xd_W±Àñ‡|ÄspLd͘…ˆÈ¤DÄÖ¦†ÒÔ¤éfëÒMÒ4:ôCë÷" f(‹v`"CñŽCˆ)¶÷Æc2Ä&Ú{c(#J1ÆÑ8%‚ˆ0™(JƒØ ÀaN™iœ¦q3Áf[ b2æ`1fbLfr)g³Ù¼>þä³'ËoÕÞOâéɪX¯ü“eëÎê]8©ë““êø¸õ6z½äbä ˲Ѩ(Š|’—ggg§uâÙÙó³øFTóÙìÉl–%YôÐɲ¼}#–mROÚTȵsãTÔßôûý~ÿNÿÃ;wît:ƒÿã³ÿã÷Ÿ}öÙ¿|÷í×ß}÷ý?üðõ*@ÀÉ£²x\j®¼žm“‹Åóż,Ë<7YYçU]ד²žÏ«X ˜µ› ³|:-G½Nëû™ ·zÃ<.8/§E¶µ€­ °uÉd9PÚ®ø¼*„ˆˆ­ +Ž$¶à;&!c¤]ÆA±6x@Æ'¸#¤›¦cc26D†äÀµLË–b¶caŽwÖGÂ$☈Œn÷|°lvÐNü"b±)Ãd 0[IÂc2&é½Í{ÝN§³É2Dã1CƈÀš8:DbH„A&N2.¹_I`µOÄÓå-9=;[,NOŸŸ]=­ÛÆ|^U³ë"u}V•gq‰LìŽm[WIû¶f\?©ê'ÕìIŒÔŸ<™ÏãÓàøøøbnu)†£²š˜Ì˜,ŸUmc½¤¿w“‚qÉ‘1í¯ã¢º¸0F¿ò““êø¸õ–³f1É” ‡ÃѤ(ŠéIý¬®ŸÕ§Kœ-£€j^ÍnêY]–åi]ÍgUì½z®µÿ¦Óélõ·–#A;w:ýO?ûìëϾþúûï¾ûîëï/`X”Ó/–˜ž¼Ûóÿ +V¨ª(ê““U¯E €2†g×þS¯'s땎hŸÿ_E,‹ç‹E{ýó,] XÚ]$²I@oc£ÿJ¶b—ÇÅ0Ùèv;Ý^; ”$½Ø-¼5n ×ªí œÆ-¿×E€ÄÖà¶Øa8ˆl¬ˆ98`ÂOxlȤI§ÓÝL’¤›˜ÔrD4fÁZB`€MUE .V/ÍDD–ȈÐÁDSP»ÿ‹ÅÂJ+E[ K°L’À™8œÞ»×ítº)3ˆ Í“ÉH¬Äg–Úõb$80Ä \àô¬’¿d¼xñâÅ‹¢üùóÅ‹/ž?ñüùóç«¿Z\ÏÕõ|6«f³ÇežçÆL&ùã**ô³µKv%…4ŸÏæ³'ñ–>‰Oíùlv|.Š¢ªÏž=«ëú«ÅÙÙÙb)V‘ÔézÌÅ;qºxù!Ðïwúýþv°}·ßïw:ƒßýË×_ÿË·_÷¿¾ÿîûï¾»”Üší4`žçÓª8~ô×ÿF\AÀU>)–û¯ `­³«%Àê_=]´X´ò¿Etš¥Ù$7eW§gõÄœÔUU·GSÈLY•£¸¬×Kz[½Þ0Ï'“\Vèv[0ìõ¶’­eµà’ˆ­rA€ °D€x¶P¸#+íZ° +Ç^ÏÖž'80æŸÈŽ»n7M“Í$£ïacãR ²Ð¦ñvl@Ö»`©Má9V"‚ÂqÀ‰âÏ)˜ ±*ܨ’åò"‚g²€ò,Œ&¨OEˆÌ˜Ò4MÓ$Ýìt“È5¶Æ±öâ2‡&U"Ã|¨Ð86íý‡{qéüå/—UÀbqÖ&oÏbáç⯮ïâÅÚO>é³³e-o>_ëh£ˆ/þç¿]œÿ׿ýÛ¿ýŸÿöo/gõɬÌs“eY–¦Y–™ø‡É/ž•EYL&“É(nõ†“¢(¦Ó¨NNÖæüÏÚ¶žkuý«zqÛùKëZ{òEÑæzKOïQ1YÞé뺮Ÿ}¹”Fí[ /Oë“XØ8[ÑpõNÜzÿÿûw>èt®|uúôïn¶Ûý~ÿƒÎÎ'¿ÿú³¯¿ýöÛ¾ý»¬.à]r«v‰[û,N® 7“²ºŠ€µ( ®Ïf³j^ÍÏêÓËäߥëO“º®&Õ颞d³º:Yú‡VÙݶ pI 766ºè]@¶VÕÀÞFgã²_‹Ú–h³l‹»ô8ô¢ÄP'$@`°M• Yç’Ng3IÓtsœŽÉ°¡1ñÁˆ…qÅG0V–¶Âj!ˆ›Ý±ƒ:&8ð©2“;:"AhþÛ‘¤(<ƒ„‚`™±Ú>µ$464n³€Ýî&G™"±ÄÖ¹F€0¹£ÀGáaÔ€òÍò#ÿ×}ŸŽÏoÀbqvö¬®_^ÀóUŠ ^º*þôº~²þ¹_^¿/^üõñ¯þÏû·¿FùÄdY–¦i–™‘1—PÇE1™L&Ù°×Nò¼˜N«““ÙlÖ~òΖY€ÓëJüð?Vø2àŸ‹ÑÆuLŠé¿Å´M|µX,¾úrñ—ö½[ºª] ÎG-ÞNçÎå¯:þV0ØÙ îöïö;;Ÿþþ믿þöëo¿ÿîÛï~øþÛo¿ývM™L꺚Wf¶XÔ“´¬cÞ6J€5t»ÝÞp«×&ÃÉ$mEoØÛØh/®­˜ïu{ÃáÖp4Ê:kÃq¸€Ú5`mÔÆžâÔ}s†°e8%‚:u"ܘlhlH;Í{é8ÝLƆˆm¸”TÕŠDðÿh¼MÙ*{n_Úƒ!" UbVUp«i`¨QeÁÇMðiT(<¯Ë€öO€¤DbLJqEø½d³»“&ö7 +Ð4‚‚ 0täŽpîa|iV’o¾¡ýkÀ‹¿F¼x#®)€@?ÿË%<[,ÎÚ‘zq /nÀJDdiT“̘Éì"P® + >™Íf'ÕgþûU0mÀj«Çh2E1Å´®Ÿ>{öì«/o@}¡æõ|>?«ß +€Kÿ;ý:N¿ßß vw»ƒÁvÿÃÝßÿËg_ûõ×ß~÷Ýwß}ûígŸ}öÙ:ŠUðpñ0Ö’ÏJSäy¹B@^]EÀr‡äi]Ϫªª¿ŠXý—×?Í&”›I=ŸWsc/už/® -§-b`¿5Nòɤ(‹i5i°ìŽý?›½Þfo8ÜM§ÓÎÚ8`€èR¬‹kYàTT­2DÊ‘óPÑ£à`Å’¤ä§ÝÎæ½qš$阈ØÐ˜ˆ`ÉZoÙBÉkó÷©* °b¡Â°Þs°D‡`‚Â9‘ª:ë)Àp\Ó<„D÷ &Àƒ¼zeÀÀj¤6ŽÍ8MîÝK6»›‡BÄÂÖ+Àà‚ªC_Ú¾išæ!8Æöœ€¥xñâW ú¿øË + àì:þû¿€ÿóß^ýäÓÏ>ùä“O>YŠÕµÃÓo{üË›P–å¬>YM,ÊÌäyQ¬`&7  ­ÊT¸rýó,£Édbêy5Ÿ›‰É[œÕí\ð| €¤˜·Øj ò<ŸÄ>€d¸±Ñëvº± `8Üö’Öh8œTmgu»Q¦µc±v%¤b-<¬¨Âsãm‡B¤ ‹óʰÔ4AD)XP·»™¤ã4"±<&õ¡ Vÿã›sk¼Z Pö°žEà#¹!B°8´Ü4GKÁ8×xwô0€½Â‡`Û¶jBìçÞãÀþGl*VHˆScÒ4I“ngbŒ8> ñ¡2³pœW þª84zôð¡ò>¨% !ÐýÕh;ø®(€hwzƒøŸWð?ÿº8««YY,f™Éb"ð"8>>¾¤ò Pÿ=øëZ ð?.Àéÿõ‹-F½­ÞF±  (¦¬Ÿ>«ŸýñËÅW|#æï€E¿ÿ›þ;íWÿ·¿ý°ÿ›­þÝþöîî`0ع¿·7ØÞlo÷ûÛwïýÁîýì¯'/)€7Öó\b`r“¿ UµJ´~UæÆ˜¼(ŠU'3U7#à´®ªê«ú«ÅEÚóâúOr“Ód^Í«jbò|6[,ê<+Ÿ­ ,Š²Ì’¼*³¸K±×ëõ’^¯—Oò¼lÐ[ ·5ö¶¶†›½Þf¯×n­°4dî4Mí¯e$Šñ÷¼o ê½á– +•&4½ê¸ìLɽÍ$'›©aC £ª8²laDDDm#ã Ö‡‚à‚úÀA˜p!ŽóÁòMh ÁvÚàèa 4€Z +!5* +{Õ†¦^˜¬RjÈŒ“4Ùìl‚̘&¬eúƇ‹—v;úo Ú(8"¢xþÇ_ÿðü&0_ ‰^ÀuÐ ¿!0¹ÀeÐ&«¿-þúâÅ‹ÿÏK +`ÀÚb¿ÑhR|üq|Î~Y?«ßgï€N¿ß︵µµÕÿ06þ¶¿Ýì ;wwöööövƒ»[«½¡»»{{{{ +`TÓi ðÅô]äžç&Ïy#.Ѝ³Yžg¦(Š"—òJP]Ûv+íY]“ÓdBU5¯æÆäùl6«‹š²r¥êª*Ëâ¸Ì’|ZŽzÝ6ÊOz½^‘Ç +Á´¶kã– +`8Üjƒ€ápëãª:¹ B‹]­÷7±Ñ PcÕ¢Q²LÁ«…ª23ƒe 4õ›IjÒÍ{I:NÇiJÄìšöÅhlèâ°ðØ{ hœ7^ +&¯P„ "ÂãäšÆ5æ?š€qœV4†øððâ¥Mlÿ‰óBƘ„ÌØ¤æÞfw–â<¡ÖZµÂtÜn02ư0[K 減@ V¨ˆ³%0 3Çãqº™$&évîY"bcÆãÔ!8Ç ²1"3&‚Ç]¨ÂÄ¥ü¯O>~s ~ï@¾žc²É­9€eðV—rÿ:½È¬À¤m˜ÖÏž>{ö®xpçƒ~§³µµÕ¿³uçÎ~ÿ7[wîtúw·ãzðûûû÷÷v{{Û;ƒÁv0ØÛß°¿¿ÿ¿_@ñÅr$hš¿ýù/ÙÄäsùÖ^=uY–K °˜Íf³ã<Ïò¢ˆ“ùWpåß}ñbíú›É$ŸLLü‘‹ëÿ|±x~’™Ù +u]?zTLb•“5 ‡ÃÖ°œN†[½n§Û‰?ÔÝèõ6z½îF·Ûíö†[“““ªÝÑ|ÕU`ÕÆª à]°0y Šn"E‹6‡ÎqÝW|onv“$IÇw‰„ÁD„…!Q8Ä–ÈÆÈ0¥&*|â‡xèçœ,Ü*0iW•1s4'ÖØÂÄÌál¤I’nv;îx<6†Mklð `â8߈!2 @(î1Ƙ¸Âô×àæÀ-}·åfK$ËF sµ x|½ øPë:ಘ~qCàã©|~ p¨[üñíx‡$`gëƒv Óé÷?ø óá‡ý­»ýíݽû÷w÷ìïïïíìÞß vwïnööîß Ši1~q1øæçÿRTÇ·…u]×e^®z·#fy¹®"`v•ÏW÷bò M&“ªªªy{ýg‹ÅóŋŢª²IuV×óe0ö4÷²²šô–…þ$&[ewžFt»ÞF·³¹ÑÛÜèm.0*Š¢­´ÿñÿK"€—a«A  8D;°ô@ˆ"u +"b5¹ÙÜÜL“ÔÄ"b² – 4ˆ—xùÌP²C„EéAòe÷ÐAãRhW"€Q»ò(…QXE#€Ô“a&CÌÆŒ)'½Íng3&c Ã!f„):¡b b‹!¢eØòú«÷þ×+€ÛûNß'C€¶`t¥àj06ýÀ__¨÷€Âæ>Ž\ÃEá½'Û¦Š™ù€AdR‚sŽ­p»hýP¿nõ?ìøÛ?üíVëÃûöûý­þàî`ïþþîýû»»{;»;1¸»½½³Ï%üó£Gź-ÀŸÿQ“OL]׳Y~ó™Õu]æE½x¶– +ŒÈå¢+("`~Õ*×81dLˉK×ÿyUUy6™-꺪ãï Y@ÒKâb²œ–ey<{Ýn·ÓÝèõºN[®ímlt»­/Hl\àqüœ_ÄVmÛäÔ©‚Ùš¶XØŒd ¦¸.ÀPL€‰…’ÍÍ{ij ‘°‘be‚|UÀ +êSñN„`„DŽ#>6#1 a†s€C˜X¼Šsbij"80ÀCâ ðø$  Æ“¤÷6777“6å˜3–Øo¸\E"cf¨¨sT,¾]T$íý÷!¨¿g7ånÀ›úb/ð…È&·–ß j"² 0 "¡ÔXBqp޼BÁVU…%߯o,Þ{BÛ9~È|ÀÂ|À;%ßÞ +Üï÷?Œ§ý‹­?ü°¿½óÿû{{{û{;»ƒÁ`{{Ðßî»{{×’€Å£¢ø" +€Go,H[ÈÏ1u}<›™›OyR×¥ÉO_ÖKC¯ ”ež²ÀY}ª8;`&¹iŸþóöúÏâõ_TUžgk8999™N§Ói™ee5º €ãããut–èmt{ÝÞææÆÆf7ùhØëõz—C€Zh‚¶"À1y±C4ï·ÜF8HŶKöD Kıšñ½{Ý4MÓtLlb +Q,ˆ³¿Ì€y"`–SÁèlÇ ‰{Gââ/f& ~¬RA`'›Ø  ÄŠÄ5A,c&“’IÒ$MRC$$Ì”òÁ˜„™q" ÓÒ˜ü⥨¤¢ªê5àýmXÍN"Y™X+ ’ø+·ã+d[K3f‘¸4‘ˆ1$)T$®=%) Q\š€qRâHâ` À^Hàœ³ÞZÄ­ÉÔ©‰È2Ëf[‘õ’ƒfC,&5V¢ “C¾‡‡Ð%d €Ã[àðÕ?7.ÞÞÞÙÝÙÛÛß½¿·7ìloßíouúw·ƒÁ`gg0¸€éô‹/¾ˆXú˜ßX\–êúäxVUÙ'?©ër’×õ¯ 9Ïf³YÞN^æyž›êT¹1-ÖŸþë×?MWhÛ#óMZž¬…ëøü²èƉîf·»Ùí}4Üêmõ.'Cp.ŠÝÐ4Ê,b@€PË ‚S8U炦DD €Å3ÉÀ0Iw3MÒñ؉mÅ&(¨<‚ˆ(‰¸Q›©Ý<‰DèxïU<¥`·û™÷^¡V=³XQ‰L“š{iš$c†ˆ“¤D阨%ŠÄ«S±’‚(.˜Ø¨*¼ª# oÀ…Ò:h ر\€¥1C ]€½ ×®NÅX°ÆUk°$°¬ö‚DW`y¹5y €ÄæƒjÐÚ6½E¨Ø5˜øØ¤„‡×¼=ðvüö·ýßþö·¿ýíåû?Øì öîïïïýï{÷wƒ»ý­N¿ÓÙêo÷ûÛƒÁ`ûŠ/¦ÿº@QLnN,Àl6«ª4K¯}eY^E\îôùr…€)˲,M†ÅIÖÛhû€†1 C€éU´£Ýn¯›|4ÜZZ‚m´è„Bp+ ÌlÄkŒSB©SçâcœaMôïÿ\Â"K ŸHƒd³›$iš‰™‰ ¬Æ‡¼FOoUÖŒæâ¥Ø”Aq1"$¢"LΫs°’ +Ya @,LìÜàEâÖàø$kؤƤɘE¢ÉabØ€°#ð&¨ƒƒH*b…@< ¯,¼Æn¾^;à+°jÄ^€3V +@Þ¤×pØ€oÖÀkHÞ^*È +7vMææ<¼÷wà¦5@ý­þÝííÁîîÞÞýû÷ïïîîý¥UÈVëî`pEüsñÏÅÓ/¾hC€ÉU\ºÿ¦-œÄ™Ÿ,Í®~eÙ¤ªëY–×—í–†€g(˼>›™· Zš"®jÏ/ª<ϲ4Mó¼|\µä² ,§“$ŸfKßï€G=Šøh¸Ñí\ÀÆæÆÆæFox€uBp]³ÊÂð€W/ÊlƒñP·’ñdˆX ÆC,[13ï,Äl’¤ÀxÜŠO 4Þºà‚@™^à%À ¬7p(,b˜²+*f™z°!b!«B‚W@ÏE,‰²€,ñ˜Ä$ã4IÒÔDÃâƒÄ‹,—±K…¡EH-‘‚Š40^•E–f†sëX¿þë +€¯)s³0oQæ’p+´ +@Öàâ¹)x;ÈÒºÀ›`qI®ààÜß €Uüßÿ͇§? ÷c¶ïþîî`÷“û{îßßßßÿä“Oöÿëý¯k­À£¢(þùQÌ7g׫ @;ôws zVÏ&y½, +<{‡ ¿\ų¼ž×oTóÉdRÍçó‹ëÿ< ϳ4KÓ¶‚¸L!ÍçóyY–eYåɤö66Öl™=zô¨*Ër: {×+½á°·Õ†U‰xìl£ªÚ4 G‡A+yçspˆá±E0q®ÏZ8Ç^è€= [˜hÝBYbkÅ6ð Ë"ð^)¼ƒÆç.¼m ¬e p®–ø]õ1`Sk-X!ñß0 <;ïƒñ–£)Ø2¥D”ŒÓ$¹·™D7›JÜTˆ%Ä äV}´/Uö!Äo¿züÎ9]€/Ÿ5Øü,ß èÍ + y‹Xð‡u¼UHì­)^ϼxƒ¸îïÀßt:¿é÷·¶¶:¿‰†€¿é÷ûýݽݽÁÞîÞýÝÁ`ûÁ×ßýðÃßûÃ?üôÃOßûí·ÿër (Ú>€é´˜\K¬Åÿ’›ü’X%ì/{•Ï. ,Ëg±r,êzþf7½Ígëê±Xy–¦YûƒóùªÒ¸€l2\Z~mm ³,‹ÙÁÛÐÝÜìnnö†ÃáÖå@§‘ˆ‡?œ7ªŠ¦Quµ€²¨#¨€×4XñsŽÔR[ˆ}IÚ%“¦†8náià¡ø%Ÿ*…²&òã°·&QÃ=tìc’‘!ˆ%M½¨(T¡ô <”ßÀRì_`ˆ ‘IÌ8I77SfÃl%µ$N]¼ ,,„…¦6ãà-æÁÚãpPU,‹UêïF`×€DÀ·‡·)€„Äܤ,½ï–àuP €¨o °¦°€Ãàþ.ÜùàÎwîÜépçNkk«¿Õžþ`wwogow°³;Øî÷ï÷ã?þøò§úéÕϯ_þøã?®°»/²ÿ“kX¿ÿq +À¬ÙwVeì²[ÿ2³gõlRÖ—›ž]Ä/ZLÞ€j~Uý/žçY`µ<¸®ëª]©P$½$[Z~mõ†Ãl¸Àq±ÀÖÆEÐÝè¶eÀ­­Õ^€ðR¸?à¼QE€¨%«$`¢U„q +âIÙ)YḴê'LiÒMÓØ*Db6m¬µÞZ§ DªOŠŸR…Áœ+Y(Y~MDDU±@*qE1Tñ9<¼ZEPÖ¸ý±‘_Òqš¦ÉfÂBÌìSk‰¬eqDJñbá•á + ,‹i  ñø´Me\¿ÿ—€\€}CpkÀˆyg€5ð®9"fCtMß`M\˜×ß¿mÎï·wúý·¶î܉cwúýÁîîîÞîî`0ؾÛïÜÿîûŸ~øñÇ_¾|ùêõëW/_¾üéJ#PUœþó“[*²*\l¹¡È”u=3E}ížÅ8`ñâ]@uEý/ùµ¥ Õb-ËseÒÛ^Ø~¯0-ËY €nw£·Ñív#.767ºÝÞð£á°·Õµ»Û +\$€âü¼Qñê½…@­xßçEPEc¬÷©µmQ™$v¥iwlÒñ˜b8¬Â7!àÁ#(à5Vï¼ÿ†–Í7ðVmcÔŠU(ެIô"ô€Ö¦Ö²ˆŠz¨( À‡ì¹÷ {eX…0 kjÆi’l¦ÄÌ|à“¶ÃªEÑøÒNm +Dϳø½L6% ËûoÌõO8ÝঀyÇ*€yÇÐæ rpC€nV´¦øí +À]„" +°9f–&NÉܺ/®&¢_€­îܹóÁñëƒúw>øàƒ>¸s§¿½3ìüß÷ö;Ûƒ»ý΃ï~|ùãO¯^½zýêÕëW?¿zõêÿºªŠµ. + +à’¸Ï&WÀI}òúÆ6Aóø“w@ûð¿ñÅ"Z'ÉøOÊ4I’å´Ï°7̆Ùt:VÇQ,“€ÝN··µµµÕënÆNÀ†½­ t—DЖ(ŠU…zïoÈAáñ°POA</6šz¤D"lÌ,”¤›2ÃÄBµ¤Æª=PÎU¼ZÕ _mžzØ“U¼Âzà ˆWµV YÓÒB +%Ol]Ó¨þ9¯V­«ˆ,iJã4M6“f"‘ÔéH£â=1bm¤6 °í³Ôª(’ØÄ@,’Äïlèðm!nϼ½ +ðî + @~s`ö"@k9^Sº ¨ò±,£^Õ…6PHˆÔ‹XK–R†ãvmÓ•“¦iúkða¿ÿaçÃþÖ‡±ýïÃûý­~ëÃþÝÁ`g°·w0Ø úýýöñÿòå«W¯_ÿüóÏ?¿¾Àd€è 2)ŠüVMÌUpRW¯ž7 _À[@µšû¹­é¸ŠŽ@k˜–Y’ —Ž_qGë´šVUY–Ó"[)€^·³±µ5ì ·ºÝÚ*@7j€NGW@!XG†˜¼…W@5À«Rp +hì U56ø¦ùsÐà…UˆIXÂDã$Ý4qaL4a†!&¯Ö+àÕë'ïjD-Ìyö›æÏA½ÂúØèˈ +ñiP XA‡óÀñÃÌ CDj`–‰„8%3N“^ÂJÄ"i8hB¼Wë}{ݽÂz'âÓà­ j„|˜È0Sý¯=þM:N߬ÖBX½–x×*À»+€6à›sW°R—€ƒÄºC +>BYaE=‘—Uj¡¾m +§îà€,Ó˜@264Ž;YV'kÿüë°VøßÚê·ƒÀñÿ;«Àí~ÿÁ÷?þøÓO/_¾zùóë×?¿þÛßþöó øbúÏ+¬ßYË\U]Uׄù¤Àìú9ÉßCTÕlñ|GynùáÇ~üñÇW/_¿~õóëW¿üòËÿw-˜\Ž®æòµ" ¹.ªº¢äòº®L~ø`]¿—ˆÆRä†LcY”eQ­P_@» 7«ê_«jZ–ŠlØÛè.°1ö†½áæJl ‡—p!nqA y8Ç,`²©@b;­!"J™ÆD1Ù#,Æp´ÿÇÉfç^r/36™!–DË) £Ì 0Ç—f&Ž]Ã)1“,,lŒPû±‘¡„…-z€ƒG™˜©¢¸$414NÓäÞæææ8›$jSŽQ.“EûQÂlĻӶ7¹-Q¶ï'ÊMšÓôºÊe"36Ì&v)3X ö1 ÚßG¬30ƒ5c˜)ËyKà­ +`™`™Ä’ZÃ2Æ›Š“qZ›‰ÚŽ0,$Á‘@”IX ãÅÂrì”öP‚´¹VD˜Óv%Ûj/[vIdiú+ЃÁ`0ؾ;èouö¿ÿá‡~zõúõëW?ÿüóÏ¿üòË/×P,›&Ùä¦1 ¹ÞÐ +JÒ+×öVÔõ{*€JÖ÷rý«ú²]'r€G&I6»íú飯/ªêdZ–‹Q@§Ûëu;½aoØö– + ]Ö pů] ê80âãARm‡ðcÛ|N@›éa¢t³»™¦ãq7ð0±m§†` y‡ +!MÛ. @X€Ä·ÓíµY)@ §Œh &ç$…ˆh3xca&"IˆÆ4NÓô^JDœØè\bHô5gÄ—fs*€ÈXX„œ“± +ààøî(™4MÓ¬9o/îúWš¦©afŠ”/'L;cL b"Jˆ¤]vµÌX=ƒÈ˜ÌИHit3Gó¸Cv±×ŸRC`bÀ + ÐJ¢6H Pk“D&5FR«,$ÆCcCÂ6ÿõ¢±Óá(êcƆ˜…Áp+m“„A„‰Ç)ˆù€)MÉÐxíö_@š¥é{ ¿µõÁ-_ýþ`°³³7ØÙÞÙô?èìÿãËW?þôúÕ«ŸþÛëÿùçŸÿ¿7`Ùœ\K,{€®öT'U]QÒË®òÔuE×P_À[@U¾ùTgkÖâk + uØêm ³,«N¾¨N¦Çey qþ§Õ ‡-ß–¸!mÃ'1ç£Ë' 04µx' '°i€„„Y‚ÀL`"%›Ý$§ibˆÈ@|â­²í÷Ö+b»| +¸¸Š ‚øÒ8„³<rN^˜ J“@@Þù4¨/P¼Z2 +vܦ$!âñ8Mîm¦Ä$)8F",,òãKƒÁÎ97€ÕÛ48/ª>6 ê‰(KÇišžŸ7͵¶°Ô‚…À4޳ &öE@H%ÆcY.9M£oYšÆʆˆ<„…bm}lŒ1㸮œ—ášÕ[!21@†™IˆKR¥ ËÚ8'm锥fl(5DÅŒ14ã†d"a&2ä ñ˜ –qH̤Â"Â@íÓ2Š¿)æ4MÇË•ŒíV–‹ÿ‘¼7ú[¿¹å+öûÿo»ƒÁö`p·ÿáÞ÷/_¾zùòåÏ/_½~ýË/ûÛßÖÀÇWÿ’5 £K!Àõ€“ºªò$-òK K#òk¨ë÷Wï€Gå£òÑÔ$i¯³Ñëõ’­^’ ³,û¢ªªª:.Ë"nEÇßÞF·Óîî. ðQ«ºÝ%bÙŠx1óŽ»·mbq/0@êã, 8· ƒ”t’dlZy+@j­²'߈i 0ÄjêÁ±ÃPÔihS{(­q,ÒX¸‡cKNCTáIÕ–L SÂÌrÐ?¥Ir/eaI<·«GDpÔ¾4“¨ÀJ +„áÄ“Cc‚ +@ýImÿfœ6çÍùys=ÑW¤)4ŠæqJK©#B†Lj8¥¸2}œ¦ÔH° `A"lÉcÎ=Ù`Éž«J ‘ÔPjÆië¯Ä"ï=4(TD‰q§£,“ˆ†RcÆfX: kÓq«cRcˆHÀdá¡r˜Æ†˜(¦7¢ñ‚14&cÆ&MfˆLz`W™ÑV¶„ b~?ôï¼!Øîß vvv÷ÛÛý»[¾ÿéÕ«—/_¾üéåëׯ~ùå—_Ö’€£Ñåë?™$Ù:dÍ +xrC O’´(ë¸  ý*òª®&WPÖÿ + ¾€j’¤›nè%Ãa6l_ë8 Óévº½îÃnwY\`c ëÛϸ¢­'‘ù‚W°õ ¶©°sG€HpHE|ÞxÁà $ +°Z"…˜¤“¦ccRbf7©·^ÛÒº:%ó'("ž•}*ì\€hŒ=ÒàAœÀ ª$A­ µì!ˆ…Ç7i£TçááeÜD£ ø MLÜK‰ã#ž!Náw$¤ +0‹÷V*;‰×Õ|“6*^ÅÂ(T•(OÓlœ6!„æüüWOBV¯‡ªlU5†ÆKÿÒø¼'æÔC –¡Ñ Í‹ã†,±œ7ŠÐÄBA¢`¡\¬µc±öMÓ4‡°W\4Ný&À°1K`ÌØCʤ Ë«¥•&ˆXØ&HÓ¨±ðêÅzoEŒU¶"‚×$µ‡æÈ«Á7ÆÞ„åÅ6Ƥt€Ël‰ÖZkLcùö#ï€~ÿÍ)€íÁ`gwwgg°½ÝÿpÿÇŸ^þøÓ«—¯_ýüËÏ?¿zýúõZ0»:ú7I²Éä㢈_kV ×@UWUž$yqüìÒ­-òª®ò¼>Y?eùk@õ6¬mQ,§å´œVùÑh˜ «ê‹éIU¯ªn·»Ñ`3`«íì®)§~) Îçi£¬Ä;sPˆ’¨BXþA`+†! ¤›¦ã¶ðGÀyjY<Ô9†Ê¸±À$PØP8°gQ0fAÅþÁY¯Hì²a@áô<õ (`Uœ•4 õÛ#¢ú§qšn¦D$ ×ië‘ÆA{²N=l­ ,¬*4¤"¬¶ Ä䔦ijšÐ„Ð<=oì5b¡Êª*ö¨AbÑü)ïµ×Æ’D ÖZË$ÖK+…ÄÚ 6xae(D`a‰AŠh¸£ðP-!‚)þWÁQÃâÏ¿išÆBðhlJÒ%k ÖjPª ±¯^ °b²,âk™…,Ô¹‚Xöœ:4*jC£hô›‡!x‚žÃzKB~ KÖ2X«!õm¯ò-ç€íÁ`0ØìíîÞí÷·üðã«×/_¾üåõßþöóÏ¿\îÞ€br£¸É͵@ž$IQ>{V·+«ºªªbÀ¥Sü*ð®xöìÙ³%²t³ÓémôzÃÞp8̆ÙÕUUUdz"Ûêmt»ÝNç"ï·¹¹¹¹Ùív‡ ·†ë{:8çÔ/3–řԉ€!±Dà]χΧ,`…w*.ˆhãÀ8 &é¦ãñxLB$bSo­µ"Pu"jRA„ª‰Ä,7„õÐiª†õ^AH…(Þ)4mG€@Ð……—jLCq&abÓxœ&‰!–”! ^} ù `x+ÎÁúÕK«p£> Ú¶Áy(¼¡4§¦ í¹IXeµ¬‡‡*îHSxïð<£ ÖR*Ô4a±ÌDÀÖhðµB¬qh‘„Rï%:³Æ¡?k¼…À98vMsD€6ÿ­Q¨H€Šrj8Z¶<&±b-,9µ.€ÈŒgXOð–ˆ@6ˆ™ÂGMÌÙª*b (šÆ«z¯"b…ˆ¬h¬>CÉŽÐÓ; ÿ6ììîììîvwûýüðò§6üýËß~¾œÈ&ÿå*Fë IžÓ$'¢Ì1óúøŠHóâ8`åîW˜¨ÖŽ©ÿSÀ<ŽFã©òQù¨¬ª2Ï6;^/&1_YÏŠá°·Ñínl,ðQ €^·Û®ú.À9ÕÇ^ÕSàuÙ+I´‰Š ú&¤ª¡i¬9ð +X+¡´›ŽÍØö¾¤AñP…ª¤aÙv(’hè­š 4šÆ{gÅ{x!àµM +¼XßX—X‰sAðyöß, l…À„‰ÿ‰Æ&M67SÖ üÙéQ°ê,ûà㔇‡¦mD!.X¤Þ/3"𒦩‰ÿðôüüiš6Á¿úJ¬%j‚#uAÕ©¦p!„?‰l-,Ȉ im XXB¬²aaFMP‘œáÅŠ2¬!!H"j-1k Ï*@£ƒ; +GRõ` –Sa4*¦hÛdÉ+»F˜­@¼5V`­+2 ñ ¬¢Ñ^¡ÁGÁYçþd?‰• i`Ù‚líMƒ½zçyiÏ;à-÷ÿn°³·»3 ;ƒ»ýÎÞ÷?¼|õÓËW¯_ÿí—ׯ__®¬)€—IÀbRÅ$þ™É„ÌÄÊŒÉÌ  /Ÿ=«/¬}gUUfW`LUþg(€ <[,ZP•f €áp˜²ì䋪ª«iÐénnt;N·7F£Q·»ÙÝÜèö†€—{, 6Xãl¢íÃMœSõ,Ü„,談ºÐ@Ýòg ±LÚ5ã]"h’ j}°ÑàÇ·/í¿ ‰eç€@@Òà¢+¹ pëZ÷Oç›zmW³oôÏic½EˆiDx;ö°„„zl˜Ø˜4ÝÜLá…»È(8¦%…à‹Të‘!øoÒ¦±*mNÔªdÆ„6ú§±výë Uµ +*wx¤)\hÇ·ˆÈÚX‚„0ÃÊ(„Î}ðB–a™¬„HNa­±PŒ]PàOAçÜQÓ=µG⡎Ҁ£#0[uN5@Š uç©ÏØÿóX=yëkA k¼XX°X±6!’¡4ÙL ì‘2GjuTm4©Æ¹@«ÁÃÿGj=©8%¶Ö|¾ŠÿC!4ÍÕ@ªz8 8hc><:l¬…#± +2íÔ½´÷LÄ‚Ý2ÔRU!Aˆ $D°4b¨Ä9Œ¡®qNÎéÑÕÐ(dÏbÓho*@ì¶B^áB,¡8X 0q?3LQ'¤QwÄ5íppäàà8 ލ9ŠömÌ +ë… X"sA`±ã`-½í¼ý~ÿÎN¿ß¿;ØÙÝÛÛÛÙ ¶ûýï÷ÃËW¯^½úùÕ«¶ð" Ø]š,Šb’ ‹øðŸL&ë9À4¯Ë¬ž?ž]Ê”EùìY]Ÿ=Ë×À´ÀÙÙÙY½¸“_€úڙ׋*ú—Çå´*#†£Q5¯ªºªOóØ +Ü YW—gZ\|ja¡°º€6ŠMU±k€ÀZŽÕòÍñ>oð9D—`[  ÚÃ;§ÚD¸ v €v5¸6hüŸõ¤ð.ààh ¶À‘mÀêl €ÇMd‹…Õàÿþ#…’êj?ož®½r¢hpι£”êGPXeƒ!^Ñ'ÀF;t˜ ^!Là¶Iˆˆ”Úe§3œsspÎýI|ü^d´àˆ!°Â)(öiǵib…8£:¼˜„‘1‰°ØÄZi[ áœ#@áUvp€ÝCÁµß ÊF ²­ï*Y;à·€Þ€þÛÏ`°³{ÿþýÁö`wp·ßÙÿñÕ¯~zùúÕëŸ_ÿòúJp €‹¢ø¸˜E‘W + â$`š/f¦®ÊÙ•@kù71U5­ªiUU¥)×pº8›MÌIñ÷*€úÆ3o°ö3«2étzÃÞ0ˆÙh2œœœÔ'Õñq1özÝn¯×ét»ÝádROz½îFoøÑZ+p{Z<¾½ÀÑuàŠ`èê®àÏýùX•>‡}4¬)€uˆ:ÜÛ¸ÆÿÙ¨'¿€Ü Cé½Í”¸•Pµ $@aƒbM¨…µÁ{ÿ)”ì +Þfþi|òŸ?=???oB#WÎ +u:¼ŠsGMz€åÓR  ÷ + 1ÀÎAØŠŠâL%œDOe¡èŠHˆ¸`,.„‡@:ÜQ Ò‡G ‰†çlRXá¶'‚ dÅD_õÖóD e'àØ{ÈDÄ©À‚˜v`çœsàØJˆÕ ±ÑPI HX œçÄ$œªð;œ7 ßïßYYÿÜ|úƒ»ƒÝ½û{ƒÁîö ßÙÿñå?½|õêõ«¿ýüó«+U€¢˜VÕÉÉòñ_E–Å(³I]•Ë Ž€òÙ³“ú¬Î'UU=ªªGUU•æQ]M&§§Ÿ¨ßå,p\–Çe5K:ÞVo˜eY6šŒFUUU''ÕlZ ·¶zÝn î '“bRLºÝîæà®) k­ª½€pbÕJTkàs>VO^.ÀÝ äfà¢h®×Àç7`ójpÔÀÙ -.€®+§1ðËû¿ ®~ Su®Yn)xèSHpNÅ:“fŽ‹ ‰‰…D±£,<ÈXq4=o‡ƒ‰Ó€S<†ƒsMÛ2 ˆ‚;r.nlX–Tˆ‰¤Ý  +ŽßÛÅVŒ—6ø`!2”.ÍÁÛïrñ³ÑN$¹#ÄOB´næ4/cý1Qªx§ó&ôßåܽ; ööƒíÁàîÖþ÷?½Œ…ÀW?ÿí—¿]ÀÖô_ãó;ÎFLÖ@&~M²¬\Te=+ËöÆÖeÚæÇÑñ37“êd]ÌL4í#ÞEÔ×66ÝpN«ªªŽW[LFÕ²X ·z½n··Ùév7{Ùäã¢(Џ´7ݪn€ê¸8Ä¥ÛG—pØàó+!ÀãnVÀ%¬åŸ}¥½¥°9€/½´ +À] ìåûÞЕn—1ëÃ?Åy à¨1pÁióY¡ÔJÑ!"Â!“ƒ˜-<¬Jƶh»îÉ@Úˆq9R +‡ððOއæx7¹éIãÇA‡.RˆëØ ÀÃ#ÂCAëûG”¶æ +Ñö‡Ò4MÚ*лàfôßÛƒÁ`wwwgw0è÷·üðÓë×/zýúÕëŸÿö·_þýßÿýßWñáô¤®—ˆ'K&ÿeMÄ/3ÉLµXÔuY–³YUͪª.³Þ¤¼õ‚T8ztRk@†Æi’Ž“4MÍẋDÌ c’•# +³{ø0"'Êpx[+ŒØš,©µ–@±6µÖÑ:QÈÐ8MÓ´—¦f<6¼ôEˆ¶ímf°{xHp.ú?^nRkÅBÄ¿£ ›Ðï¿ØÛÝÝÙÙî÷·özùêõë—¯_¿zýúoû÷KIÀa«&ë­çâ—™dù|ñ¬š?.g³Y5;Ž0E|B·  ªIQ—™)«êó_›8;;«ß³»|&£¶ÈY}þ¨®Oª¢ ‡køxòñ¤(~…°oQr= xKàóËøU€rïÜ»© +pIüáÖÀ² èÏÏÏ›U)ðispõ¨BÉzk16äøÓtUgõÖ[üyðâÏ­±6@ƒó …àÒà4°ƒ˜Rc/h,¬¶Ýì\ÐUø4@ScÀÌtñÈÛ4XïCo¿Q›Š8ÀÁ{ñMã•lâ›°ê¡*LLãTš¬¬Pu`×hP”÷>GÄ1­Œ Ôß‚ú`µñ61Ô@Õipæ¿„›¾nÀÖïvîÞììîîîíììí îö·|ûêÇ×/ãóÿõ/»ÔtIÄÛ’õnÀd’æõ¢®æË²,g³YUÕ³ìåÕY}!ªÏ§­!ÀI™™r6»@ÛTç“r¾@V¾ï€ÙqÜ;«'Ýî2މ¸PÃ^;ÐëeEññÇEÑK’^’ ?úè—¸š¼­ +àéóËI@<~· Øk +@ÞÜžt—úV9€[ÀÕ€z~þt­è|ÐÖŠ„À¯ê‚Þ{%oY­· +ïsïÉØ8Êã›&4ª–9+®±bƒê7Áž{o¼Uˆ÷$hBhð°iÔÚ‚ßXÄf<šÐ4Á7ÎûÖ%xŸÌ•$. !4¡ `¸„Õyx+Íù9¯ÖB¼·ä5„¦qM!XÕÆA}ão”5œ«žÇß“,üÆ>ïo‰áà BÐ#}—¯#wýw;;»»{{Ѽ¿õÉ·?¾üéÕëW¯_ÿüú—ÿåõºN«úYý¬.>.Š[lŽŠÑ(ŸÐ +ÕªÇY’G°ÌTÕ´šVUU'e–µ¨ÏÎf“t’•guU×¥Y€©êè)øœ¾ñ¬ jBÏN&›Ýáòþ1¶ +`€V '“I1šl ‡½a2\Ov»ñÏ—­À×sïÀÚ7)€ËeÀƒw,ÞPÀÛª7…½·æþpk`4OÏ› \/kiP„sX%ïƒ4qÓ™:UxZV,T|ð&óp€Bƒ÷V©Âà ¢hÒFcÇDY›£oàÂQ@ðªPm-[½DáÕzåh]f-Þ«$§ §Ú„,‹&¢ª 4Z¯A½¦¢-¬@ƒçšÔûàUD½÷Æj õP%À€«` øs !>r8‚·—›¦Þx® ÿîg°½·»·»··»·³=è÷÷¾ûáå?ýôúõϯ~þÛ/×P×)€IQd›£ÉhÒ~åd(*€¬\WeUU³,™äU=¯ë|RÕUUMUÇÕ窪,OÊ,+?^,Îêúìl6É’¬\ÔU½¨ò²Š˜Ÿ=6U]¯Vþœ]ÀãÇÝ£¢xôèÑJ\†±z8‡Ép4²l­ ð@ï\ˆûÞP°o¨Ü\¯è[«·7]T.åì›sË$ ½< ׎úª`ÔÇ §¸IÉ{¶˜­’uç^)õ>š.ï½À‰g2vpqÛ1)044 =:BP‚úàTÄZ/€‡Šª*¤ª¢Á,¶i/‰„ÃÀ + MHÈÃ9 ˆ{^|+Kæ#uhêœ +¬µÖ3T­·ðp>®b¯ 4!qê¼oŽŽŽô¾ŽŽT/à=îÌìÝßÝÝܽ»ÝðíËW?þôòçW?¿þùõëýúõë×ÿ×å@±ÞÐË.@ÔæLZÖ‹ºªfeYÏf嬪fY²Ôõy=_Mc0Ëò²|PQ–E|Y—euöbQ×óêôñ¤ªëÙeWá“€‹Û"€Åz *ËÙl G­xôèQQ|>­ë“i‘²õàãâãÉdØžÑG£Ñh´&º¿>pCð×UÂ;W,~M¼µàrO/uß§ÔeVm¼^=¬4ÂPi¼7©‡*àÔ{õDR+*Ä æ!Ç–AE`§îH}€ ê‚S6ê[xn÷xSÊhÛŠþügˉ=w`@ãÒWf$dqû€Û)¬¤u7àèÞêܧ¢ªNUaŨD­Ä.á8&ÁªÄÁP¶ ðÎy߸÷8ëè¿× vvwîï vÛwûýß¿üñ§_½zõò—×?¿zý·¿­c ¸¤–òy2™Lh2É'“In&YY?««Ù㔳ÙeTUUMg³Çm ÀbqV×§gUžemP?Ϋz±¨ëyU—e=Ÿß`+~ K¸¦ŠéRdÙ¥$àR ‡£Ñè£%:Wðø†À»‡ËNÀ›À•à]s¸=àÞ£èÞ›röÍ9§màÒýgº¶*R ª^ ^àãZQ  nÄz4ÁSæã¦ !x3§b9@DDœ@Ôs<”K¬^Övcª ±<Öðl£9UÖ&§hð*© q ShBPB" '­æ'u‰@œâ)i°uÊA¡AâÐXĉdQ¨Õ8Ãm!¡íh‚ˆ €:ïÿÞç\ ç=þèß½;ØÙÛ½¿;ØÄÅ ?ýøÓO¯^½zõòU4º†Óª~6YÿŽ>.Ь›L&ñù9š˜f2™-êe9+Ëëø¼œ-@U—&ËÛöÝÓEÀ鼪ëz–Wõb1¯ëª~ü¸^[ÿ{óy Výój>Ÿ_Àh©Š€üjP|<¼Àp€å<à¯í_Ý øŸX¸)Ø|SààÍ9€õ`uÿÏo(i¹hÒ£ÊP´úâœÆEÞÁAD}ÛK©uNªªA!NAÒ8±h¬Œýj’¼÷ ΉsPu +©:aUŽ›[á A!X_7”©‹ßÊ7MP° â–f(#¶ Xu€uêGà1‹‡8‘vÑ/‚½“ M#œJˆ–ú'÷^g €÷{þß½;ØÝݽ¿¿·»»··ÓßzðÃßÿôëŸ^þøóëW?/ðê*þKQ|<š´˜L>&£IfL–31ÐÞÿãdzù,^V³Ù¬ª>_ ™\@ZžUÕ¼®gù¬^œÍëyUWÕ­àâ¼ N[;µõà’(b° ³µ`2YÝÿáG£Ñ0ksÝ·àÝ«mð¶*ÞT¸}ÀÞÞð>@½7õ¼càRpC zèÀP§ÌЏQKÅ·~®uô…2Ô[oÆ6¾ÝþH›&¦Tž¢‰n¨*€zJ=¢=«jh–D¶Âð±3ȽØhÞë(Ž^ Ùª„6)–0ƘêeY–³jf²¼¬ë“˨>¯ª“ª.M:)Ë¢(в˜Y/I&Š¢(¦“lÒ® 8.âOhOYEñ¾ +  í¶à50šL&£Ñ›@v ‡}t¡V¸­ +ð³€ï¢ðkg¿f ùuU€fZC°›†[4Úª21¼¶.½Ãøø´V'@PO©åø³àÁL”ž }Aç*iXîl³C@N8¥•Øo]à âÃ…eÁ‘UáBPf’Ô + ptVQÕÄ·. dEÚô¾FB×:²DUXXm-¡`¶"’ +\pËiÈ÷9ø5÷ÿîÝÁîƒýûöww÷ýýo¿ûþ‡|õÓ¯^¾|ùãËóÿŽø¸˜“ÿ2‰]“‹¬›LbUp4™Œ33ÎLf²ì:*“e]Wuk¨ªªªþ0nõ†ñÒuzÃáÖp8ìu{mÉ-ˆ£lyFY6Ê.þv€Aÿ]B€¯–¦Wr« h@v « àp8úè"ðVð>³í8ð¯š8úÏžHÞ4 ðŽ}—B€›àZq!ÎÓJ|J*ÑTKÓ‘qLï;'ÌlR ~ÙXi,r´Dbì\\Þä qo +, Nb0»èç—† L2;‡ø"‚ØqcK&i‘›CDøða\Œ†±¬ÏñÄnH8ŠòƒRwHäÜ!Þó8¼ÿýï÷ƒÝ½û÷÷÷ÜßÝ»¿7Øÿýïÿég¿ÿ—ùì}ýí·Ÿý~u~×é §Ë§ý™Ä‰à"ë&£ÉhCè¸Æ$KÍeÌʲŒ +`^WÕePUÕÉìËÇ-â~®n·÷p\ÀÚõ¿À(ËFY6ɲ,Ë^~6èß}—ÀÅŽðõàBë +`Ä Àe`ôÎxY€¥!Èö,ÀÛnþu}7„7Þv®½+„•ça €`BÂ`fA\$ʆØ9 Ýfž.'ó°œÑK…Ebw03ñ0;jûÀ†R,.W+Q#Š–HÄ0bŒqŒ˜™8ñ‚Ö1`‘ijĖà¸í¯].8¨oQ7õd£52>úè£wMêûŽÿºY€dÀ¾C'௚o@ë£é.=°¢_†Fƒv‰Gj Ykƒ p0“·wš¢œ'2iÜ0$‚ÖaƒAflŒ€XhŒ™Á‰F@ËUІŒ!ÑøÚYbÇ&U@ÈrÜCD)µ»Œ ,DdX˜ ™¥0À†ÚÝŒíö6"!S»t̪B‰Áxïóþ ¿½3ØÝÛÛpwïþƒýûƒþVÿƒ~ÿ·ýþö`wí &—N[L²QÛ <ʲÌdY–e&¯Ï–U€Ùñq9›U•æªê*ªªªËª2©)Ëxµ&£¤»ÙËŠQ6M&ɨ(Š˜u(Š¢È/ÚŽãã?˲IÔ¯^ýøÙ ·¿õ>¨—&“W(b'àz0E%²R½{p‹Pk|»eÖ† èv;Îf÷Þfr/IÒt³Kd,‘ˆ÷bÙRê!žHA}çTƒ‡)Þ½ +ðwŒÿý³í¹¹˜Å8äCafâv 'ÅèÑþƒØbÁ¡ØW›³1cĽ~ª!(Ô#® +& ÚÀ¹¬ƒúÃC‚ã¼_»“Ú­À ¸¨Üˆµ6x Þ6^ã÷xL©0„yl54 + ˆk%µ^Chœ' !ëÁ‡ f2ß)NŠPûÏE,¬÷^‚Wë½7ÄLï}Þÿþß þo;{{Ÿìß¿¿·¿¿¿o°½šÜ[ÀÞdmöÿãe@/F“Ñd4eÙØdYšÇy}Z×Õl¶–œ$yYUU5ÏËe0mÛ€ÊʤF¤Õá“ds3NE1œÓÕàAQäí/ _ò Eýø²U[Û·vÖu]Ÿ^@݆£K + ¸6 0ºt&7àö$àå€:UµÖª?Pk‚·ö@X؆ ¶Àæfrï^’&››í*ÌïE¯Àò-¬©;ef#ÊÞzïÎ}oã?² kCÞ;§”žë7dŒ·bÅï­Z4"> ³™&é½$M“ÍÍÍØì´iRÀˆVÕZ=»=ž†§Í[û.,ÁV^`rã‰a(`)xoÌr‡±1fllðð^åsx=x16zvŒÓÔÄG¶!œ7B°bEο!ã½êQ‚Sø€DÇbëƒ,·übcŒIåßXë/câ¤pšÊ˜ˆÆâϛЄୠ"Ö›X@C5P£-Dä<o.v}™uÞ7l!Æ‹ ÖUüÿCÜ ööîï}²ÿéƒýûöîïï ¶ïnúý»ƒ½Ý½õ3‰®8ÅÇ->þ¸@ìcÒ,K³4] ½´y‘g½v¯™<ŠÏò<ÿ¼À,KäE{é³Þf2i³|z²ô ,Ërµ{dµˆ$þ¯ø¾ÀÝþÖöÞ›0¿ìrrÖC€ÑG}ôÑGk?úèÝû.BU«Ú Xo­}ê­µÂX@·»y¯@—È€ˆoTþB¼ v ²BðÁ°Ky+*ÖøàÕÚËH“€Î +t€&„§OÏŸ> áéùÓpþn³ËûìÍŸ`R hÂQ<¼ÑØ7ÍÒ_Xñç +ÞŠñVCÌ¡Ya2ãÔ6Þë¹Q Á˜ŽŽŽBàð*„\šÐ4VC ‹sAA}^ƒ-¼ ˆz5VCà˜½!2)!4Îk õ6„ Z1sî}ú´yÞ1 ·1 |èpäÔ5îh,Îrã¬UhðçpÖ°(DÁ± ÇNF£‹,4x+A¢Mð*™æè!Üч'¢0çª8r8Rh€ÓÀVb›^¬+TDbÂÀ¢íÒFÕk4øÐ%¯¤Ž‚‹Ã=°PËÖkðêÊÁÀI«bãÀ³A\)jápAŒý5!ÀÝ÷>ÛÛƒÝݽûûŸ<øôþþ'Ÿ~òÉþýÝíÁÝí½ÝOö/'“I1*–6 £%&£Éh4YË’¯ È'“,˲QÒλY2̆Y– ³,ËâÒ`¦Y–çÓé´(¦ÕÔ$É0Ÿ–åtz25ùñIu<;.Ëò8ní.Ëã²,ËGEÀgÿ²¦úÛÿûm¨ëÓÓ³z^_ýçí0а +nºÿ£nS7Ï´»Ã¯*ûflv9*€ƒ·„°ï€›€YWk!@²¬+±—B€æiˆwÿi´úzúæY€6¸õœB•£IŽƒs.Œ*Þņ9X4¶MC€=°!nçˆ%¶ "ꨆ²MPJÃÑÑ‘sŽ )TÕÃi\ß¡!6ðûϧ".°x‰Ý@€ Æú¸'µ ïš A„4¤Á³PÀšvE˜ëQˆ~%ÖÚ¨ŒˆÂ³ZX'h¼OÕú÷üã×åv÷ö÷÷÷ìßßßÿôÁ'û»ƒÁ`°=ììíÝ¿€¢˜L>ž|\Ä$àd4*ФÛË.Ês&3&3Y6Î뺞ŸTÓ*÷»Ï®)€ÁMf u}ZŸÕÕUÇÅéÕ2`QT!Àèæ³fÒ][ ânÊ ví.«Àí +`sðEpCÐø·)€psàFà/)€Ûrk9€ðôi!D<}ÂÓBxSÀ[î?¨Bᜇ p€( N‚Q«€op°l "Äf°+„¬ +1lÑ5¦yœ;ÂaPà%e)£â§GÄÐØ¤ +‚5ä-DÚmo6¨M­2XÀBþà½5hš´ Õ ’6`§¡µ^íç&æ4q¤çŒ@êÞ‹‹‹ ¼(Ùv8õFTÞ[Èû+€þ`wooÿþþÞÞýö÷÷÷öƒííþöÎ`{°»wíì&£Ñh²ÊÉ&E1ìö.Jôã˜ÌŒÉ뺮OªGE^ämæ~ØK²I›FlÄ:Lž?ªŽËãéÉñ$I²ò¤šOO*STõIUUUõ¨œVÕlv\>ž–§åç>4-Ëòóß}ú»K +`k{ow0l×7#àl~‹Å⫳+@1À­÷Õнe3Ð +ñ<€K!Àm9€îª +Ð} Þž¸1¸¬–¸A$oUíµÚ eÀ[rrûI­‚Ô†ª:§iÛ/ûpᑸÞÇ@” €¶–¬¨¨õ’‡£Þ âããžDøX§‘„UÙÃ9; F`â`!‚Æ‹X„(7ç‚Z#ö!)4 ®išT…<à­¤‡J꫇7”¡âœÄù ‘˜â8hP4^¬þÿxû»Þ¸®-K ×%H;ˆË8:ºõâÒ^„šDØ^š¼'`ð"R‡LÕ5/BV¹ 0ÐsÇÜË ~Ånv®¹Gʘ€YZŠ/KkÃa~œçk½^¯w÷$KÆï¯•‹}«yžç?ì-cWWûýü`/?î/Å χÃÕƒãÒHt¿Ÿ÷û{Gûû½ƒƒÞ~ï`ï`¿×ÛÚúæ›p·¶PoE¸Sy'äùðÙó?Ý€·¿+¿©åk–—ï_Ïþ¦Îâýååå_$ +Ýn  ±ˆæ•œŒys¿¸ ÿš)@™ø÷6ßÎ\YÄÔ +¢Ø¿:Õw÷ +þY†›ÈØÝ—¥‰†8ɲ¸u+ŠØ]AéæKOœ©:¹° §fÈ*”E•8HBp@l×ïfÎ* È¢¡ qj©\Ó•¼w6Äh£xOÉ…‚‡Ó€óœE4ûÓͼ¡r•Èœû>ÛÂ$þ@€zDCA@¼Ø¸¨0~'ùãxŸlHÜ€»µ_ýh¬Äm õöF{½¹²qzzvz::{õêõÅùÅùéô¹¶~ðàÁÚïoŽà Ÿ>úôYžÿéVð}ظ¼¸¼¼8µtx],¾å ôî)À˜ànÍÒ>Àx“ ¹ÑÔô>v +ðQ=.K€"æÿS)@ §êÞ±  …* ï?Æ!Ë¢ŸøÁ(\p–!d°RÊ{@b-}º æ]Ö`»È<2µDâ½µÌ9ª€O,q8Ö¬Ø Þ–ò# +… ‘‚IJ²‘Z, 8 OV‚ !¸ BL¬^ŒS³hÜöÓpN£/X–Y‰¼`\*©ƒ@XË g'·}€Ék e€ñF‘|t °²·Ûë­V³±qz~~~þúââòòââÇ×çÓçÁu÷®Ñ^žÿtéÁÚÚƒåß­­ýnÍ.Ykí²µvux|œçy¾ÖÛ;ìõÖöz½ÞƒÅdõ`¯·¶·¶¶ºQ!Rƒ'@Þïï÷òá¾5e0|š¯Äbâ ?èõúý~ÿðp¯×;ÚëõòýÑÛ§±¨Ü@€á³gOŸ?}ö<<}ö§éóþïÍòýûåêï­Çâòýû¿@<¶‹"ëۘà |¸P½w]ÐÏ7ÿGLÞÙ0ïéÄ)OMÆ£€ðCDd]ÞæÄÀê{_âò.@æeΔK³Q•[´Üë€I „\LË!ÂÂRU›‡‹ˆƒ@¡šX8€È@È2gWËxË „B‰\4$E”±*¡±I ÀV¢ Ù‘qJªd4. ÅLÆ'•2ñpÙ÷»‘Ž—£a(ºÖ—ÑM""*j╲Ã7¹ããŸÆÀ€ëZ@ ú¯>µF£Õj­·7×[ÍæJ£¶1zu~~ñúõùÅåÕÕÕÕëéó`š ¿üàÁƒµ¥êüâòòZä/ÛÖZûÀZ»:æùqÌö¢÷ª]ZÝÛë­¬õbaP@,–¬¬æy¿·—ïY“Øþ0Ïóá³áj^Jˆ÷û‡ûý¨/Øïõú‡½Þþèä»wd¸S¹F€ai=üôÙó|0|öËâ¿V[^Z\\\ºýXZ\¼?=xŸ(hü€L÷wì¼£øèÀ¿n +`>”üðCø¡€qø«‹ â½Ë\>pŒöwáÊ&`)´KNàa`f©G -€KA.KÔ-½zmlš+,$`!%@6¹U3¿Ôß¶‘÷ƒÈ+Ša)ª¶Œ<ßÃd»"«åY"2F™ ",F&ÎG6Éø3d´(œs¥&D?1(`ÇY¾\GøøS“é&à$%ø¸)@­Þ(s€V«±Rÿ¬}zöêüõååÅåÅ›«Ë‹Ëéó6,ÎÍ/=X{°Àz÷îý2"Ðu@M ð‹§ïߘd/ÇT "²V#@Bð@ðÁ?Õüð>«Q‹Û¿™!ÈØ\SH„ÄÆu{+DÂÂ$Äãýa7x%ZxÌ”:8kÒÔ$–ˆ„!¢²šÄ¶!Xâ†/ìu\•“¶h4ºjIˆ˜DD, ‘µ–„DÈZ&Êœ°UØ9±‰I±Ö’ÄÖ¬° p]Xû¯êüš)À¯àÐ4üÖªSUu“Û¿|è¸0öÏ}ï±´fᔉ‰EÀbd<äf‹¤`†µÖÅè´ÖÚ%""K6%K¨Sêº"s¢‚S§B©%(Y#uâ¨8 vU„£¶óv©Üà/½@㟖V%f”T»Gª‚sJ…SÒ(W$"€±± (ŸPØÒøc0„I D(åÒèG®¶”)øu§öQ5ÀJ³ÙŒ@wj­³ó‹‹‹Ë‹Ë«‹Ë«oÀ›¸ 4n./?XžŸK&ÁòòßÏp8Èóÿgžç½ýƒýýƒý^¯···¿·—ìíìíõzùÞÁ^~ fùqžçùa?æ6™p0Ìó|ø§ãÕã¿ê‡‡ùT0F£˜|ýÍÍ `º X©T* µÊ»3€ø¬2óAx' `é­)À€ˆºú K&-ùæ$Õ1tÍ:ðÿ¸)À{{t]üðÃ8üUªŠø? –Zô‹ô-Œ˜(b, “H +áÒèi´â²L‚Á[bf"&S¯Þ“÷U¯õ–”‚ +<{uêÄv™XD$1KÆk­%KÂ"©%ƪD·ß/,‘Àƒ‚„àŒ 4x r¤««¢"N|W†à `…ª*«:DÄØ4~âefa­sLsˆlq"pÞ‡ÔŽ¥‹ä/¢Pk¬4[­Vke¥^oÔ6ÏÎ__\^^^]^^þt­ ~uuuuµ¼¼¼ü»k1åð»åKósÓRלÛ|˜çƒ<ï÷ö÷öz½^o¯·w°ß;È󃃽ƒ|/ßÛ;ÚÛ;Ø;Ú+K€R´W€ð|8€|¿—÷{‡ý¨0ØF£Ñèt´µõÍìlÝÈjc@­LjµÊl¥rž?þ¼R©ÌÖ>ûÀwç½ÀÒû cæÝAÀ¼¿PžÜÌ~ø7ÙxgàgwÆÀxðg-«ÓØúsþFø+1‘Í™_r’$IŒ1)ÙÔ1³½øB½F²à|á}ñ뀟ýÚS[¸Ûh¬¬¯·Z+Fãn­Ö>¿¸¸x}yyuuyqyuùfú\gû×Àû`˜Gk°½ƒýý~o?zåy~°¿w°w´w´—ÿý°·4ÖîíåÃÜ®&X‡ùñ Ï{½)‘á³ÑÙh4:-Ç€ŸÉfffkµ™™™™©Hý¤R©,T*•Oj³€å÷¯½³(cþ&È ÀüûõªÉ{J€þu<€ÿQ»4€Øù·äœ:·þ¦ÃŸ™(M­IYk‰EUÔ‹µù˜¢äsW¸à¼CÁ^†"„¸º¼ ]/Š#·ÌÔ2a¤‚(C­UbJS"ânWÉX?RY†‘w*ê=Žà5tUÕøÿ^8õªâ¢pAHÄ‹ˆ‰ª7Ä ÇcGÀy"° ‰ªsÆšñdB8Â<³Oï5sb²¢ðEÀGÀÿükO\\o­·õF£Q[XuñúââêêêêÍå±09·e±ÖÊàÝ»úûû«½ƒ{GùÁÁÁAžìå{G?ìM¬½zy>Ì{½ÄæÃAžŸçkÃ?ó|ï÷zy­×;ìõ{£ÑT ð¤óž@Ìfff§‚&¾ÎÎÖ>©|²P©Ô>ª °¼¸¸¸0•Ì•cÀÉØŸw?©qêÕ«IÉ2CC@ÕJ¥R©ÎÍ• xuΑ÷ + +êãohšš$%fkÈ{ç‚ Uˆ@j ¢Þ;¯ÆDé ¨2‘V‰œ/”=2ç2µÆ»U ÇdCpêíø4L”&sUc’Ä$&™g ± +u*‰!‚Sxû«sê ÞÀ«¿þijMªªîƒ¥à!`URG^Y½xçBAeìâczLÅî÷Žô—¬^Ä«A8 —EØbK "QQ'ªÖ©ª’í2 /Î+Ä‘Wï©wNÅ1>tjB‘í¨zH·+p"™W¨F3Ÿ‰8õñ*…HðÊü’¼×—pEA¡(€P:A½w€3¡Ô×}þ_~>¦Po4šÍf«ÑhÔµÚÆùùååÅÕÕåå囫7o~œ:?-?X^þÝï–Wv—,'s‹S0˜œ|˜òÏ×†ÏÆP’÷×z½^ï°×;++€Ø|Ç6àÔ`af¡ïüÙÙ ÌÎÖj•Jeá³e‹Ëïì,/./.,ÎO+•C`çA@dc–ŒM D”RÙ«F¿Ñ¹jõ^’Ü3óÕÄDYË,ó˜ˆRÞX²DLÌd,lúEjcŒILbŒµŽÿØ˜ÔØDE» +ò"PñbD¼X"cX„•ˆˆØIw˜¬Iªå™›ûŸWIM5æ³66¬mþªÎA¼÷€×àý­ðOSkÌ/€ÉµÇPöÀêà¢( <â€ÓC¬R‘9@5|œW%Q©‡z'£¤Ë‘&Ôf°‹Rþ 0KWÞËzv¤¬NI©Tf+•ÊÌìÌÌLev¦Vû¤R©}0X\~`qyyyqaqaÊ|®Ragç} ·!ÀH)TOBDLL”Œ!e®2W™€¥ÔZkÊš‘ àI%¢Ÿ\&p†;lKIJ¢¾%EÑ{&ËlmjÌR|²ÄX»dlÌ&ÈŽŸ3˜/DÖ$J’1Ìņù=²éXN“!d‰Ù©ê8ü]ðÁûIø—ñŸZcUË.áϽ–28Ž„Ås(ôPb‡(\úiy ÞS‘Pôç8â9Q&G.‘ K$J6Z~¨#…”UiÕyx§qØH`¡˜ä+'ªj\bÑnNEºÌÝ.³t!åÇL™+‹s峈 +¼WGñóaÏVRRÄ[Ø9)õ‡<œˆq¡Pº®f¿ú|DÐhÜm´š­f£~·vwá³öéÅëË««Ë7?þxuõÓtðã›Û%Àƒ¥ù¹Å©$ù:þÇÃÁ0?î÷zý~¯wh×òƒx+üÓÔZc~ѯJEòpÑÓì„`Õ;ñŠ â ñP±²WUU/¢P-Ù} +•TËå#!r"tUTÍeU=öPab(iô]QeuŽ1.«hWY‘’ ++À,IŸbMd*JäPQ— Âj»€>B®ôvŽœ@\á3 œ‹ü?z÷6àϽ| ¬ÔWVš+z£QkÔ*íW¯__\]^¾¹úñÍÍøÿñÇÛÚØ1¸ÿŽ `Ó€ƒ^¯ßïöW{‘”ä½½<Ï÷ööŽööòãã ìÇ  ¥ ôJèçƒ<_•ÕÕÕÕµë +àíàv ,f?¹îÌ,ÌÎTj3•J¥Vùä#àþup*ˆkkÓYÀî ˜¢p3‰Xé3Ù4Q¦4)»€sɽ{IbLj¬µD¥KHÊÉ œ9Äp)v38M4º '’Øibb!J ,ÌÌ]æÀ‚„Ë䃈™Å0 Ybá Þ!JMj §æ^R™››«Tæ(Ü(±–ÄZ%f?™û{u>„ðÖퟦ֚%óË*Z”¶@Ê çbÁ¯âÞ)ƒ÷A¹,çHl€ÄÕÚÕ¸bpÄ"‚X9È(ˆÈX‘H¡r£WUDH¹KG^¼BpP… +©F½eU…sÆÒU銩ucˆH„EºL†!ŠLe‹0ì!^#•W­:: |Ißõ޳Âp°˜,ƒDÑ_Àän½Ñh4š•F½V«UÚ¯.ÎÏ/..®ÞüøÓO?ýô3°¼ü`q~nñþõ–ÜqTœ:½^¿_røòýÞ~žïåy?Ïóü ·Aà(‡Ããáðx˜ïåÃá0· ‡ÏóµáÓhà“#ÈêÚ à›GïëÄ&`Ì*³•Jå“Ù™XÌÎ~2;óIe¶öÙ‡ Nýß.߇å²O˜‚€÷A€j¢$dU!–ÉÚÄØÔšjI˜«Þ‹½µÖ¦ñšæX§ó8sÊ`)®Lt¿ÓÈ]“¤Kd­³…¤¤P×eá.k·ë 1"ûE˜IÒ8ަ=ˆw˜ÈXcؘ{e0g,Y“[eKÖ +ÙLJN¼w¡ BPu‘u›šéðŸLH>8 ìê@bS@2•¿¬ƒËPöÿ ªÖ*DT•*B gõH€£8€XkUâÜM¹Ëu…HíªB”Y5eæ ÊââgU zÇP2ªL,^I D$J¤Ò…0­u»bÄ ‹%Š{ ""¤;€–Þ_â=r%ÌqT‡GÀ‹w„Dœ€ðC—È~åËG ‚”ñߨ7îÖ>kŸ¾>¿¸º¼zsõÓO?]ýËs³¶¼¼| òè»}µ~'p¸_rxöóü Ï÷Žóã½Ã^ï ÀQ¼ý‡Ã.ýC%‹+»Q¥ÿèÈe@CÅúŒ%Šú€ `ü­R¤ëG®¾ ‚¸‰·ÊÌÈ@,ÂPf&ŒU…I!ÂìY-çó"^˜c‹0‘XR™XÙ®ˆY]í‚âº!Çø¦RËcU!âͪ—,®5•z`B¾ÔŠoÄdÈð‘磚€ÆJäÕïÖ*íW¯/.¯®®ÞüxõÓÕÕ›S€Å›QðY^¬Vï{—ÆCÀ1 òý^¿ßëïç½ÞAÞ;<Ê£X>ÈóýÃ^ž÷z½ýÞa>Èù`bêðÇ|-é ‡ùñ`ø|`RPôÖzkg域_œ}÷Íööööèäl4uê³3 õæÃæçf½Ñh¬¬4šív£Öøí¤ 03S©Tffg>™ýlv¦R©Ôfî/ÞC¿[û‹o3ùeáÔcìxó^ˆs#QâÜf!1IµR¹'vnœPT“¹$¹g¬I­µ–­Ä[-+Šeìî:€ß &zÔ +wSbí&±À¬]/Ê)«——ŽIXi0*Ì~H7¨1»Ž™hÌ”CIr¯Z™L¬5ÕJ¥{ìbNœóΩ >xu1ü»ÝÔ¤±{ÿ<¿´ xk]´ù‚CæÀ ™ "Ú]µšeÑbƒã2 €U‘1ÛÆ’ñÊSd 3 â˜D…H™ 4îãt¢{yJãM[Èj€DËNfV"”ë–Hd•%†I$ù [ˆ“PT•¤LaT¢§ààÄ"®ô(ã.¾¿¸Þh4VZÍæÊÊJãn­VÛ<}yqùæÍ›«¯þåÇŸnìÜŸ.„————çª×ÀÒbÉ·üwØïöúýÞáÁA¯7Õ"Ü;<<Ü;èõz‡×4 ã<χÃgùZÒæƒ<>ö†O‡ƒ<σ<Ïû½µ^/†ÿ«óWççWç£ï¾}·ýb4FúÌÌÂB½Ùn6+Õh4šÍ•fks£ÝyøùÊŒÏg•Êgµ™OÞ? X^¼¿¸¸|ÿþ­×Û=€Je®Raæ—…S‡C"»wXEç®]‰tÉT+•ª3Žÿ¹93W½—ÙêLdXI@üàœÛÙ-v2vIÈD¡y°0uY’®t-uY4–ù䜳8-¬ ³‰8¡TÁ*Ñ÷–D;`Jɤd’d•$%›T+s‰I—XX˽xàÔ‡0éüw»&MãBÜ8ü¿ðKvÊíöc3b«\ ŽÆ«ÂdÙìûï³LJol†A„dÕ’-™„ âÆ .£5e"“‰0+@FéLUˆ"±^P¢ÔÈÎÎC &Ѹ´CÖÚ4r8’.±°Hpd#þ0sš–tpÀ™¸Ú¯e€íbÉ@Aö=„3‡__¸š¬¬¬·šÍV«q·¶°°qv~yyõæòòÍO?þô/ÿr+¸µWÀýh•³4âKÐü×ï÷ûýÞa~Ð;œ€ƒýÃ^~pxØë]ãB>@©*\–ƒ<ÏóÁ`P®Gy²³Ñ«óóó«Ë³Ñèd´µõÝh4uj•ÊìB½ÙnÖë1h6×Û'oÚ­Æìììl­V¯}6ÓüÀ…™™ÙwžåÅåÅ¥åååÅÛ¯ïÊxx; ØÎð0Qe‚˜­½7W©’ffB,LÌ\’Œ¯Q6d ‰º¢úßN`X‚°ìÔªÜUq]£„nWˆ„”Y)ŽØ‰¸ë˜CHµ Uî’pf…Œ¨Švø'"!ËL”c3•*±š˜‘B”Äé÷ÁMÂ?µ&MÍ8ùßÍ®à—ìÂ`˜¸$'qÖ餥@†DÝ”±ÃqÑžc¼PÜ…ŠBÈYf¦n± õ`sFi’Xâ¸ôŸZŽ +"Ua€H˜¹BBIÙ1aËàl'l´íz§Â +µ¶ÜëÑ +-à lŒ%.=Œ \š( +Å]G‚E¡CŒÈùK™ƒ®¬4›Vk¥Þ¸[«mž_œ_^^¾¹¼zóã?Ý€¥åëG€ùÅÅ¥åÅÒ+ëæ Ïóü°×ë÷ûý^??:Ü¿þûáÞþaï`ïð°wX +úý~¤ÿŸå½¥ÞŸ†ùòAÌÊúb\¼:?¿úéjôÝÉÉÉh{{4:wf* w>o6ÿª^¯×WVVVZ›O¾ÝúæÉ£Ï›•••õæLåªT*•™ÚÌl¥R™­U*•Êlmv¶ö®G©0¸~}0¿,œ‹ªïz &Y€ˆïªXU¡.‰¥äÞ=ƒà“ Ü3sÕ$æÿDl¬5dS˶,ÜW Á{u2çbÅ…s*"N”SÕ.uE˜ÈƒU4*w¹>Rç´å²¹\ÑM‰…‰É¦ä˜ˆ8MS›$Õ¹¹¹jùiq·€nWˆ8@TŽŠ‚ +?nýu»d§kÿÝòfú>˲¬\¸ÿù“beš3‚ ã& Cܪ•Øo·ÎACÉ_`!Y"ˆj¡â}¡ÜnpŽ»’E'±8%N¬‘Xk'Û@Ì A—˜„É’µÌÖ¥`À‘0ÅiJLå-ï‚z8 +¯äc v‹ŒTŒá²+aÒ±¬w©äI|ü¢ˆˆ dɪ:þ‰ˆ°ó«ÏG©7[F³Ùl6êå2Ðë7——o.ßütu£¸Z\\^¼~½_ÀâââRäǾÿy<ìçy¯w4¾éÃü`ÿ ÌþPÆ>æÇù`8ì-õž ó|ÜxœFçWW'£Ñèäd´5::wg* Ÿ·ÚÍÏ#´Ú·:'Omc Î…"x/à„Õû—¬»pX²L²ãDvw…H“”LJ)ªŽ½y”LÄ–ÆÛþe) .8ˆ!&`G !]뜈:„¹àº»qPQˆE¡]5†¬%bq€wA­%&ÏaaÉ1+|ÐP„àÔc»¿ú|T°ÕZi­4ÍF£Q«¬¿:¿º¸¸¸¼|óæêÍ›«›ÀâýÅë×ÅûËó•dz.p;üùþáao¿€¼7‰ÿü8/oýý~¯—ó|˜çÃá`˜ùp˜/õâ@ñyÞ+§Šù`PÀ îŽFg£ÑùùùÉÉÉéÉÉ(fõJ¥V«Þl5›õWõÆÊÊúã­N{ãÑ£G­Öz»½ÙyÜél}ÝétÚµÚõŽàìLYÄÁøµ2÷~–——–"¸|×Þ\¶Ë$àüÝîîn}a2d—Ò”¬IÈ+L|oj®87WOªI™›„, [€£2}ìr¥Dd»êÓHã9«M)MmJÖ&QK”Ad­!klì+Œ¯=”k·©JɲÖZ“ÞKLRM’dnÿs)q:7—$† ¥&!!R0b矉ŒI¯oÿÝþåío³,ÓŸÄ;(DÕ¹—êcd¼§ÇDLÆkpxTâ¸=ú¢!ˆðÞipÔ âPœ22еp Î2Çœ9&¢D!,,^Õ Ƥ©%²6µÆØ¸s%¡”QäO,¼s)©Æ=+²p™sN%òˆœÝuNŠ,À -)/!Àû âm”¡qáADÄÞ#ªðÎ9£¾ø‹Øƒ7+ÍFse¥ÑXYiÔ*í“‹‹ËË‹ËË7o~üñÇ›D wÀüû Nîú‡½Þ~ÿ0ÀÁ8ÿ ‡ùþäDZ`??·ƒá ‡Ë½gÇùñ°dÊA2^¯œ^½:ù/'§§'£íïJXX¨^ÿ¼õeó¯þj¥ÙÚüöÛöÃv»ýèQ»Õlm´ÛNçñ×[[_oušÍf³YŸßÿq3bvv¦2~Y˜‰›ÿÑötqùúíòòâ|2ß‚7±˜@ÀŸÿ¼»»ËD˜X¬e!K”""3Õ¹ù$IªÆXK–Lj- ÛØDdaGÂi°³Qé;åS  ¥ñ©­!·–Œ%c­µ¶Kd–h5 +Õ¤l‰…tJ¯ßZJÒÔL¯U*s†£lPJL)‘M˧&&kìTí¿;Õ›‚]ú¥]@ÔG‡\8eñÆ*Àp!ø¢(‚§Â›—>\Õ«Hœ+‚ ¨ƒzâÀà.t—v ´ª˜12bÛMLDJLHŒªxuâ(”¼3N} bÝ|±žTñ'¯.ê÷;Ö83¤à2f C†]8°õðqp"JF=œwÞW@¼g„H|xœzShö—€»õ•F«Õh®4›ÍF½¶Ð>{}ùúòòòêÍå?ýxƒðæ¦7Îâr€…÷fyž÷{û˜$ƒá ïO`z…(@þ ÷lŠ Bƒ¼\5®!`ôêä¿üóÙéÉh´›€ŸÔîÔëõzs½Ýl®4Û·[­‡>ÚxØl®on´Û_mv:[[[£[·¶¶Zãà½ëÀ‹Ë‹‹Ë˱°¼¼X¾]^\œŸ¿p2 ¸Â$²ºQÃ6*D˜¹©  ZML’Xc‰,,qJ¢– ›EP]f‘¸!¤Àn¤²H¶CDÖ +—èÀ"Ð%±qé=µ««kU ] +%HT4Êf2SJUkL’Ü«^—Ua‹(M»$q0îÜK”:²7Âÿûëä?Í~á€bZ!NYœ±àã¥Ð™Â;ï½×Ò« (¼Ç.y¨¨SÉ.«Îíº ; YΘYwÁ Çl»‰•Hè‹<,1¢>¨ +TªÖk¹b¡¤±?"b™âl¹:Y(ÙLE\‘… Êœ°»±Û98ÇjØA=kœbª#säƒsΩCðꉢ(©¨ƒqÎÿúóq<€ÿu¥Ùª7›­•»µÏÚgç¯//Ê}À[<€Ûç—@¯ßï÷¯Ëÿ|0 ‡ƒƒÞޝOžóÕþ³ØÜ€Áp8Oâ BÀÙÉùç>9¶F£³ÎÊgµ…Úzýó/Ûí/›íÎãÍæz«õðáÇ­æúÆF{ýoov:·¶¶¾þzkk{£Q¯ß©ý¶VŠhñÛñ¹¿¼x?Ö‹‹“ñßòòâòââÂÂmÀ» àðz"—…„ÁÈÏ’¬t­(Y;•ÌcMb(%¢Œˆ¬ RVdÌ~ƒUžøäíd…ˆ02uÉ +“!Q!ˆ3ÊTNÇD3K"]‘B¤Q1q´]€5&I’±@%1Ä0Óªµ*dåSû%%êÚÉàowœý—·:É>ÔìŠ)Uðê ØMϱ¯ZxˆŸ*BüÿT\ˆõ3‚¬¬êIC .‹BI˜XJ‹¶HâH ,”Y#® ªñ$Ö9'âÕQ $…H”;ÿ[çp™ór&deâ–ŸÀqâJ,ÅÜÅ9 x§>x/!ŠÈ0pî×gá\o¬4­f£Ñl6îÖ*ëg¯Ï/////ßüôæê¦"ØÕ[Òx?SŒÇz½^¿ßßïÝøëá0Ï{yž÷ûûûû×2"ƒa> †Ãaχ"Ð`"Íðäääääôttz:mŸüó?ŸžœŒFÛ£ÓN­RY¨-,Ü©×WÖÕÞì´××[­Vûᣇ­õöWív»Ý~ô¨Óé|ýuçñÖÖ‹o7Úív{½Ýj¾û,ÞåÎÒýû‹‹÷ïß_¼?š¼ äÈu Ó…R|ž™±JV…¬x‘n·+4ŪV數IŒ!K” ‘…*;§Ž P ð^Ó#-2Å©§x‡Ä΄¬0[ò¢¢ðF)]"b&!ÎÀUõ§œ*Å‘93QbS“$ÕdœÌ¥&².Y‘®'Ä*`”$µÓ៽#ü³Ÿµ÷ÕkL‘PtSƒ‹ ;Á8x¨/}3O¬ +Ð*„Ù.Ž(v¾w` LQi/ªñ [¾Gå@Á +"”ÿ—æT%z„™XÉ8V!X"ˆÄ'œe»¸Ë„La3±($Ë2—uÕP\LR@XaV½Š‹~‘*ÞYxd +§å—`<Ü_"¨×­f³¹€wã2ÐÅÕåååÕÕå—W7ÇÕÿøí‡ :yìN5ŽÃá ïõóü ?ŠâßÇ“e€áàÃápøl8<ÎèO5‡£“xûŸœF¯Î¶OþùŸONF'£íÈX¨Õjwêõ¿úòÿøúñWí/Û_¶Z­‡76¶Ú››íöW±øúëÇ¿ÞÚz±ÕÙüª½Ùél¶ß}'=ûå»÷'ß‚dñ­ àÝ0žBv]é@…YR&¡Œ˜dn2¨&I€ñˆÊB•<UÁK£Ê +r*ðº³ë ݸhÊLÖv‰ºä#£ñd­’öØ…X¡ÒU/ä",qQØrÕ¦Æ$Õ{Õ¹Œeg;ÌBFˆ„¼h…À8ºþãëßÚ”¯Ã¼³û³àÊ-¾È˜ËÒ%pÃ=ƒ +ã¥'K~d!¸.•þ ŽºŽ¹ôõ&ÈF&²”¾ÜLóŽ‹;k"mŸK¶oªcú%ƚĎ ”ˆ%«c±™ÓriY8e0 2D¨ÌκšcÓ’qìþÖSñ>Æâ48àÚêËÁ”Ãä_w~½3P£Ñh¶Z­õõV«^oÔj¯Î_¿~}uyuùæÍÕ­àgK€…wg¥•Ožçý¼ß/‹€á ïåGGy~ï óÉã8/©DÃáð:Æád +pr2:99ÎNFgg/NÎNOFq°Y«|6S[¨-ÔëÍõη/›Íæzóa³Õn·›­v»½Ùn·Û:_ýõÖ×o·¶¶¾íl¶Ûí¯:¿~÷Yœ†»[ð–(h¹„þþ,@! *¥™v\´©q$Ëœ‡¹qüß«s“(Y§" À…×4ê³BKC:;!‚jÆ¡\9yi@d™]ɸØkP”|>±êàˆ”ˆ8s,÷¬5ÆT“qpÎÄÙvAÈI0PM%ÿß_ßþ7Â_”>È0 +EüeZËckP(TT¼)Äg +Hµ–Ià2ŽjûêÔv3%•ø}ç®dÁ â(1²ÃDÕÈÙübPBÄ–Ç.Bâ’Ò›+rˆ‰„ŒˆQÊúªŠXW"º wEÕ@™»"pˆÙHB*"Þ Åz-,Å%ƒÒ•ˆ”aDK.`üòb úk¿¾¸ÛXi6[ÍV«ÕjÄ&àåë‹Ë×—W—o.¯.¯Þß\\\\ü´2¿¸ðK`¿|/öÃáQžçGyžå×BbÃ< Ãáp˜†ÃçÃýáÓá ï÷óáN✞œžŒFgg£ÑÉèÅ‹£ÎÝÏj³wêwë+Í/¿üêÿhùes½Ùl5[íV«Ùjollnnv6u:[ãómg³ÝÞè<Þ½óÔë‹“«q +î/.,¼Ý4MA€Œ!àhâå¾ã=$£’¼O 80 àXH¢HõÞ\õ^šRjª6¥È‹a¬ˆ + Dà +ç~°*"uYæqRu‰âSY` ¤Žˆ²Ì‘h¶[ìÂP,9A xoË1 HÆ,UJS“$¨FÂ3»ò³&Ö, )ˆØÝÝÅTòoí­ðWKÌ&Î@1 +k½s.óÎyçJÀŸÓÂ…Œ2æÿG©Ý˜ø¼Ún–±t3H¤ø²ÐØCXY‘AvHæiâÆ–D)!a-]HXàaì3G’³M”â. Ä)Ya@Ìb£ &e88Gl¬v£g!A÷wv5¶úQúCÀù "ÈbÅáÄx‰¥Ï¯:Ål5×Ûë­öz«Q¯}Ö>;õúâòâòòêÍ­øæ*ó‹ ‹‹Q_ìvø_@?Ïó~ïp?<ŽG‚ýÃü†Q  †ÃA>ŸúçQd8˜€ÑÉÉÉèdtr2ÅÍÀÓÓ/^Œ:¿©Ý©¯4›Íæz»ýeûËf³ÙŠ×non|Õét:Γ­ÑÖ‹ÑÖãÇß~»ÙyÔy²õâô]§V«×oÌ=®s€…ù·`âßöNð9àÂ`#sÄp™Ë„]Èœ0qu\T“ÙĤÄÄ·õ©:öwøÇàÕ°:&v%¶PP&" çˆ9.·gáû-4¥b7c Û-B0V'.’Ñ=y@Ëñt ¢{KÆš©@•,w™x's–9’ï³".£@,¹þßO:ÿ;|3üãÚüÏMCÉ–W€áÿÉ$]xŸ98 (X½Oƒ A£ â,AAYb®e€bÆ 8R@a¹¼«Á4ùNLÑuÀQbY,‹D +°0»„Y‹ebfk-“±)19²ÂÄQ-æû°ƒ-D(Í€ lJe‰!p—Š+W %@ààRq!°Dãr”‹wį;¿>¨7Íöz»ÕZo5õZ¥}úêõëÿßåÅ««ËË7?[Ü,.Ì/Ì/Þ€^>Leý~ž÷÷{‡ûù ^íÒðQ/Nvˆ†" Ê)Àp—PBÅh4ŒF§§''%àôtôâÅ‹£N}¦V»s§¾²²²²Òl¶Ûë_~ùå—ÍV³Ùl>lµ±±ÙéDx²µµµµõ¸ó¸³ÙyÔÙÚ¼ãÔîÖ§ ¼üï/.¾ üøþľïNæ%ëxÇ1e.s™À¹t£*ð½j51&åÔ¤Ör\fµLP¼²Â‘sÿøgïóq©$SuØU"Ç;èR驊98OA-à‹¬(vËL±eXÕèjÍ$™'JÈcSëX 6шP Ånæ  +µTL-¯X›òíð·‘®ð³•4˜#”2/QÎ×E ì,\ö\¶3…%apÙðca°¥ @Wbêî$J.Š0‰²ìB’°e :HÀI—…⊴“°$–"c³2DdÁBàÈ×§ÒÆƒa°qÛ)ÄvÀ†&°pÆ@aWW£ 9X P……f!f 7… ‹ÿËì4­özk£Ýj6µÚæùë‹‹×ç—¯/.®~ºx« øV 0¿¸˜Ì߀~žóá ú‡½H÷ä“u¡£<Ïógå àx ùqÙïú|pxò<Ï/â9=•+£8|ñ¢S«Ôjwjµ»õú_ÕëÍ/ÛÍæ—ë[ÍÏ›ÍæÃöæ£66:';·¾~ÜÙÜüêQg{töŽS¯-ÔëõúݲÀYˆÍŽ…ØôHÞ.¼kÈ”MìÛ ê¸ð.`Wˆ\±#báÃqQ8x¹Îk }ùA,^¬ìÉ…P( +õÿýåKM½W)àÄg\ø,ð.ˆ bá8.ŠÝ¥Â +dYá±Ø;xʵW¡Â{/êUHþ”¢Ô˜ÄŒmªd¡DÈ ŸR!x@)8‹ À.¥¼s3ü£-¨%û!Q;ë£ HÚtŽŒf1ǠʲêGE ÆÅܸוfì”!:û`‡,3ÁÆ‹ž8â]†nB2ö°ñ¾ï–ªËÑŒH¢ñ +á˜w&8îë0ØÚHŽbKD“´Üø‰ˆÔp$pÐÌÐNy»«@¡©" qñ) +а™ò ÿ7^j®¯·[ív«Ýj6ê›g¯^_\¼:?ýúüõÅÕùô™Žý…q 0¿¸°0Ÿ,.,ÌÏ߀ÁêÁ0šý”°ßëçñúpTbÀpøìÙ³áÔ‰¿á`øl +J¹ñ<bàdôÝèÅØ!h4½xñ¢S[ˆp·þWõúÊ—ífóË/Û­f³Õl>l·766:ÍNçQ,:¿~ü¸Óé|½uz~~vz:~9;;=;;=­×kµz½~÷îÝ…XåLÀÂüüü§Ÿ~úx?1r~'W`7x'A„ðwðDÈœÀã‹Â±•Î`Õ{ÑJÆ$F˜È‰u.s…cÕ8K§AÒàÕ‡B ÁÁ{Þ"ìî(2çùsQÁÛBm¶v²¿-²°ØŠ +ï)„ŸÒ%&%J(µÆÚ¤Z:UMš1‘¸!ÞAœÈŸC(ÄŸg³l÷ºö¿þcS@…võç^Æ=€ñ÷БÑÌI©¬A°’9á±¹³KÄÓ˜â +Od@1“eæè¯7xy‡FRB‚5ÑXŠâDÌÉØupìb &Y)½J¬ÇR‚Ç‚ï†É’’ìÄÁÔ„Y††„œ–¢NÄAœ%øú¥Æ!6¿^œýàîÝÆz»Õn¯·Ûív«Y>??õêüüââòòÕù«ës^^å%xq!ÀüÂ|²pöúy¾šóþ†ý~¿® /ç€ÃgüãoÀ`0óá³çƒýápçûý|˜—p:Žÿí£ÑI9ŒUÀæo?©Õîܩݽ{7Ò6~ù°Ýü¼Ùl¶ÚíöÆf§ÓÙhw=êl>þzkkkëñ“NçÛÑ«óóÑNOOÏNÏNOëõzm¡V¯ß½[¯Í¿ã|:Å‘‡È{ïýø—WÞÁ.€ +§Š‘2‡ ÞÁ¹Rq£R©&U3' ™$1_¤6M ïìãdÔZ"Z-ݯœzï^f\xÖLNãâ°÷0à¬(\aÿ{ŠKý(‰wvv‹±k§‰Ë¼c›®{sI™eÒe±¿à‚S¶8Û-Þþq3ŸTá>쥷ÊLÊ‘ÑqVµKIŒƒX¢ni JlÒ4µ4½2`–JÕSKiüÂâ%žÆõ "æî˜TNY…“Xj—ýÎù‰(‘MÓr‹¦\y©dósJD”[[®1rœ%0ØX²L°0;-owï@ ,²Ä’ ­–r"BB†RúõðD ÆJ«Õn¯oll´Ûë­æÆöÖ‹­o·¾}±µ5ÚzñbkúL +Œ›€ ó óóóÉüÂâô{·  ÿÐï÷Ê €˜ Ÿ={öt8,³€qÿo˜Ÿ=/)Aý~>ge0ÚÞþn4:99==5ÀéèÅFmvv¡V»[»[«×•õV³ÙŒ,ŸV{½Ý~ô¨³ÑÙÜÜÜüêÑW·F£ÑÖ·ßnv:ßýŸççggggg§ggÿ<ÎÿÇP¿[¯Õ>}Ç©Ü>D)9—i K6ó^¤€*ŠÐö¶65)˜­)%ÁæªUS%c‰£ ¥d˜¢£K·*Ñ›¬µpT4x!0ˆÒÔ”;ÄL–‹–"Es´'&a”Ž÷“ °Ö&Æ$ɽ1ÐÝ##$NU»8¦ÔštgÜB‹O kííÚ?^ÿeøûXÞ3½ë…ED,ƃ8a‚X“÷J%C2¥!JV(n@ò8–­¥iËD)3Á:„ÕY¢D˨–¼œÎ“Šèfk’¸’m#§ÆÜ°47Œ­M­aÀݸoÄ%¦h¢@$dì8¶¥T[N8µcda² k옩økÎG1›Íf³ÕÞìt6Ö›Íõõf£q·Þ¨7VÍVû«éǸÛ?€…¹ÊüÂüâüüüüÂÂüûà0@ž÷ûGyÙè»ÎŽò?þñÙÿøÇqÐÃk8ƒ¼ßÜ€Û/FßNJRðÉht:zÑ®U*µ……Zín½Þh¬4Kh·šÍÖz«Ýnoll<ÚüªÓùªÓùz4^|ÛÙìl}÷êüü¿Ý<útP«ÍÝ>•Ê;€1Φôœ®!€­ÐKRhQIššÔq¶ÃišÒ½±+È\’$&µ&µ¶\<'+ÌÑN†™âGb[‘"u.ˆˆí’¦ÖX˲Åø¦”@©MY˜T-#ªdÉ +@ÂÊ(‘ҸןܫV«s•¹Ê\¥Jbêv»«¤)KB;YÆŒ8²–ý‹Þ +ÿzï£3îÏŸqd'm©d`޽Ð4@`‰™½²²Æ;U„à +ïÈ;ø`=º]/fˆXñl„UI@ì\ð^¼Ú´-¥4µ–ÒÔZNL‰1å’§†˜4Ù@ÅG¯%v**¢Ý¨‹BÌJ*BâD„8x8ç|‘’IÆB)¥D c£¤1Û”Hf£Aá•XÒ"xPüE–š+­Öz«½¹ùpÍF½´ ¾[kܤÈ.,ÜD€ù¹J ÿòôûýþažçy¿Ÿ÷Wûo@^À¤£—çùpøÇ?Þ€rN0>û‡Ááp88¾€kÀÉh4œœœœžžŽNOOG£Z¥RY¨Ý­×ïÖëÑôøáúz»Ýl6[íV;"Àfû«ÎãÎÖhôêìl´ÕÙÜ|¼}v;þÿ[£Þ¨×Æp§V¿ëïŠÿÊØ¸g: ˜n‚,@d­eK6bÿLBÂÙî÷˜ìÎÍUïÝ3÷’ªILjˋͮ²( ?”‚÷"*ÁûdŽ8Àª?5YfcK1þ>û>ªL +±ˆJ&( Ðh?%B” ãÅÒô^µ,æCÆZÚ!+^¡ì{|Ÿe.C²÷„¿„¿HñóÇ£€ÎyïCpDll\зd­I"x§ +Õ >„ FY”¶"¢jî:À+9(Á©ñŒ˜é0Á9#žÔ©÷âó@šR’ŒA(M1,X!§Þ«‰Ufaeˆ¤ä”TD™Ä½LIBªDÄbˆ:„ ¤EpÊ¢Î+Rbc‰(µåêqÊÎ9ÇΩú<ÂKÒ(³ú u”#wè8ü(QÐVk}½½±±Ñno¶×ÛíV£Q¿[¿[«EŽàÔYX\XXXŒ0°ÍñæÞ ½~Þ§þÓ¼?(`8Ìóý¸0¼é0>‹g8|:|:쇃A~QàŽ{ÃãããëàœžœœŽFg±¸ ^%@c¥ÙŒ­Öz»Ýj?|ØÞØØxÔÞ|üøë£ÑÙ«Ñ‹­NçÉ·[£Ó³ÿvvvvöêÕ«X4>¯^¯×jµz½^¯×êµz½òÁƒ²DÓYÀt!@€ZVÓK‘Ë2X"[ÚÜKŒ1÷È”bÀ`’®UQFDµ ‰ÒÒ$YÆ,ˆk³’EG +5ÊDqö}çbC9Šg9ÖGùý ÂjêQ°¨F6°µ”¦‰1¦Z­V+Ñ@b·«kº%§>û>CæbÏ*²è³L¦Ã?6ÿH?Žùy.» ä½S†óâ_jQüSÎi°ÊÁ{§$ŽÔ±H×9£]p—£)@©e–®†²1 âHÄ9%R‰â (‹§"TEU…‰†˜”™@ªKÒ•h†ÂDŽEØrœ²Qg‰|*Ê$,NDX 340؉rT5r/Cá}ø§BœsNY‰”ÕQ`Uu ‚·r¤Püœ}ÊsôãxÍõõöF{³½ÑÞìln´[­ÉZ\sýFü¯OÀÂÂÂÂü\e~áÓ[P* Þ Ãá ÷þ àéðé°ÿ‡§Çc*ðÓö†Ãü=é@§SĽN­R©ÔjwêµÚÝ»õø%´Ö[­f«µÞjµZ766;››Ç¯ÿ¿£³³³ÑÖ“'o¿ÝÝ¢Ô1ðË\¢V¯Õëw? @yçåD`j fo†Ò8jˆ-ˆ˜vq-˜Ò{•Ju®ZMŒIækhìØ%"Ç;Ë •6™â!XÀ˜~êh‡"Äâ9ˆ%áhñG±iÀ +"¡ØLmbLR­V+•J56Ù„jˆ,hLS‰m‰”*äFøGé]…›„ÿÉ-^4ˆ¨¨(‚0|èõNU +ÑÍKTwUTŒ°#*SIjVÁÂ@äõ‘%%e3qÉdŽÔÛø)  @WQA¢FšM‰ÁÚ54¦lR—º ¡RH‰…,‹Xk5¥nLêbÛO”IáU9¦ )ŠPxý³ç½*œJ.ú ¸”aÉAಷðq*àqXò§OãWŸzc¥Õj¯o¶×ÛÎæF{½¹Ò¬7ZÍÆJ³Õn¯OŸÅÅùùù…Åù……Åùùæ?ÿt¾|éOÎaзýaÞ”MÀÒÝc8ÌWo&NUO‡Ã? óápp<ÌÃgχ‡Ãáuç7à$R¦àÎìÌÌBíNIh4>o4šŸÇD¦ÝnµÚ›Ç_w:¿.ÍÅŸt:O¶¶_¼Øþ.žíÑwßm7&P÷êõ»w~ .œ>Œ ¹V²Î¬ˆ›ß2ºQI:n ˆ%f2s•è lLÕšÔ¤Äcݘx‰¸ ƒ„zEÅ<‹ñS 1ª)Oæ"Ë\"I8` $£`‹¬œµ+˸–šªI’˜$,D, íŠaMéšõ$¬`0åì¯oÿIòþÌÚŒn9N”ÕÙ9§]8QíB4PÔ!–®t»ÂB¦ËÊ H"VCB–¤$ÑòÌ„aF&pA§sˆWÔ[JY”¾IQœP˜¤kº1+ˆŽ*,BV`Éîì€,)‘š’í0ñf%U–h$qÁ…( VíZ‰‚m,Vêªé*Tü;ÜÆa?õ7ÞùõcÀZ£Ñj·Zëëíöf§ÓÙØhµVVêf£±²ÒÚØ˜ŽÿöÂÂÂÂüuÒ¿ðé\åÓù[%À†‡ÓÐ/cþmȧ€ÃgÃüã"a0|útp8Ž©À¥8øT ßžNÔA:wff>«Õjµz´=o”ÞÍV«½¾¾ÞÞØÜì|»µõõÖè»ÑhôÝV§Óé|»õâÅöô¬£~ ã)@,~ dYôÜ™‚€ñD[‰!s™s.Ë‘ª!¡R³ `±LDÕ¹JÔ1Õª5Ö³ea²NKÛ 8x(28e‚Õ,Ë2ï2 ¨a±Õ°È.–Xžˆ'f°‚ë¼ÃvéRdZ“s/À=3W¤k–ƺ¶ *ÄÞ;'ã•?žJþýTø?_ΑD8&ˆSçÁâ™YÕYaÊ»+,’¨€¢¼oô³a!+Œ`‰ Y.­•)J±°:ˆ*+‰ ®z§Ä†â¬ÑŽe:mT=!JLQ–˜ˆ„»bEˆxgDŒ&µ”’I‰‰EØ•^#"34¢Â)IJ8Äíànlü‰–6"ÜMIU…Òßøz3ðµ¬>f¨Ùl¯¯·ÖÛíÍÍÎÆf;:…×õF½ÙjߨnÂ>­T>ðéüü§SS€~Ø‹Ð?ì÷ûy¿Ìú‡Ã|5š}½ú¥(@>>}š÷n@žO•§§§'§§§g¯Æ@}vf¡R)Í~î4wïÖŸ7›ÍV³µÞz¸¾±±ÙùöÛ­ÿ¯­Ñwß}÷ÝÖ×cØú&Æþ7ß|óÍ7õF½Ñ¸.b°~·^oÔ>;Ȳ,RD0€² ޲Ìe1‚Á¢V…‰X%2Ï,‘P™€IbLÕ$ƦÄ6:M¤Ðÿ­œ@4 ƒzdŒ"bKyg¨a&ᨭHœœ b„D1DîeÌ/]µEÑ[kŒ­šêÜ\%)gØ îš(ßkE¬ˆpÉ<‡?Åðw·ÃÿçÝAXD$.NÄ~{¡ì5 Q¨³Ýè³fs¤*B0 ‘™ÈÂÍÀ6ò¬á’"Tvù˜v%Jˆ°29§1ÓŠÀ–,Ç9!‹0­Š$ŠèI·µ™‘qìéYcÅÆy^Üd±c£_#F! ðB`V&ƒX£Áa·«QrÐO…þÛýÓÀð1Æ +­õv{}½µÑîln¶Û­V³^oÔîÞ­Õë­æ-ˆ©~ùŸ…O+•O?þtþÓO?=ÊóøÒ?ì{6¿€Áp8ˆÂŸÑî3G Àúƒ)ƒá`Bž€Óg§g£³˜tîÌÎÖfggfÇð›ß6ÏËmÇöÆÆf§óíÖÖÖÖ×_F_o}óu§Óé<Ù~ñbëÉ7[ßlm}ûäÉ“'© ^oNJ ²˜n:fëbš“õ˜p +SPVÖ¸‰b¢1P’[5KÖ²Vãˆ\… , Ã3œd,¶´“Éà@"–IÂJP8±¥Ô9(‚‘®9°sˆVÜ*,(bKlÉkL5I’Ê\¥J¥q—eM!∠²ˆëû™º +W†¿}gøã—´´EÙ+C•HÔuY€wn½Dš=•J¤–(qÂB@Ù`&3ž¸sTáJˆIYÊfe"/]–8Aœ°ÄG™@c>D$±%6\®ÇvаŽÒUHLÖš8Þ!)±„8í +1‘F*`ÜÔòÂLâXUàÔŠÄ– +•¹Kj‰¡1={Gà߈zý×–õFs½½Ù^_oonnl¶ÛëëÍ»µZm¡¶Pß„“3±ò¯T>ÿôÓO?ý4"Àu°ßË{òaÞÏ߀ޭà×S€áðÙX´œäýkˆÿh¯ý“ÓÓÓ( ôßJ¯ÐÑÙY§6[«ÕffÆV?¿ýÍo~Ûh4›Û­õv{cs³óäÉÖÖÖ×_=m}½ù¨ÝÞè<)3€o·¶¾ÝúvëÛÆ­ |[6ûÛ°ƒ Ù¸ˆYäÈ{o³l,éE°±0TE–±vl*•J™Ì[Eq……ÚBÁ®€Ë¼ÀUY$ó^@. 6âŠ0§…Q( \@–IPTºtFU•$àÔpï<)JQ0Jɘjrï^e®Re€"Ð`T…YæJ±((%ï˜ YÒÃ(hs;ü?„åo´ ÖTXNÕ;§ª€£%YŸ¨K¦[:›Ë˜p¹z™A–Sá$ö3pl‹8(Gƒ?€šŠ’¤”š¨tsK¥„7[b9Oñ"'fk‰"g)€xÌ_ˆ}„ÈE¶!JãÇ#0ˆÁ:ÎΠVºqˈ•Œ"¨ÞP9ºñ‡£wü¥}”$àúz{c£½Ùn·77Ö×[wkµÊB)”y÷FÃðÓ2ðÇ@P–rÜ´`Þ{®àÙòŸïLVò²0 J †Ã|pke÷lÿ£Ó³ÎJ¥²°P‹ñÿ›ÚZ ÍÖ—íö£¯:ÇO:ß~½µÕùnô]çÑ£GíöF§³õÝhëº Ð˜€r +P›dFãßÿ‡ÿÐúëV«ÕjUn¯#Ë2"&*®!À±8gž´v2Mƒ’/û餑ØjÊ1`bì—äbJ¸Ë`q`—º ¢Ñ4ˆJ­0‰i•}±VlJÑG ª$ÝdÌŽôGˆZ!!D›4ˆ¡.q¹ dS""c-SZbS”@5¶dIºLVY ˆMVîÚ®%êŠâ/´Üj¶Ö×7Úv»Ýn5jc¿ŒÙÙÊ-ø´¼ùcÔÏÏU*S÷ÿü§“`o +âàép˜¯£} +nì=çSåAòkL`\ŒG§''Z”÷/àÎo#|Þüòaû«G_}õøÛo7;O¾þvk{´Õy´þðáÇu¶¶¶¶·¶¶¾ÛÞÚÞÞ¾õ›=€­¿þë¿n=|øûÖïÿŸ<ù¿ÿýïÿûÊôxv%;¦„GFáÒ¨Gpêoü}ëáÆ“ÿôŸžüÍÆÆÆÆßlTÊYÿÔO#CÆDT.xïP„—6ƒñ€¨ÑAž½#C†ˆ¹äcì¼ÆÁ€€^ÉÓ‘Ã?8^z‡àCp>8„ì%ep¥‰à‚ äŽÁÁy+ˆº ÎAà–Š²“ä>S +$Ð"¨Þk,-[kMb37W©’0+‹@]Z ¤pâ= . +öº¼÷ÞÚwÞþøà¥FÌ«ˆXQ²Šª†ãˈ«4lMìÌ¥$Ö’µDiBD€c²†,‘Mº-ÒxÛØ”K9%DÉ‚@édGŠr72ʉÈ2C˜¬5D`î +ÒrSBÌvÕ&ÖXÛ¥qb¬5‘LDDŽÙŠÚ„Ñꌘ%bGŨâN¸yü[ڃכëëíV«µÞZo5µÎÙùëóóWWW¯//_ßÐx×FܧsŸN6d§ _[òþ ÀÓ[ý;àY©þ´Ìb `¢0–ªàcÐYɈ|tgvfffvv¦R«ÕjwjwïÞm4Ÿ¯4[ÿÛ£G:ÍÍNg#J>j·¶µnlntžlm÷b{ûÅ4Þ"]÷Z­ß—%@ ó7ó7 ×Üè8b +Ðà +xç(8ç}pGÞÙ A_vÎ+±21Kc U…¬e±äÁþeˆŽRÌÂ,–˜½Wç>óðÞ“÷êPÀ9ؼ¾,þœw¢>’Ô{8H0ÁC¼c ðç@cy,"±–B"–(5Æ$ÉÜ\å‹0‚ iŠ"… +JmÍnLðžn†ÔÖŽ·ÿN–1ïðÄ8ýúÄÉ+—myÏ$BP†·î¼7i\«#kR2ÖÆüԦƤ–Ä”KÿLdŒISk{íxd‰ØZR!J)Rvœ‚£A SJ)I‡ñr´±Ö‹¥®!¦$5c‹O.÷ŒãüÁFÅr_0®š”¬ˆ(˜ÊrÁ’%Ÿ¦,× ¶dm-Šc‘bÕZeÞaKöמÚÇÌ[Q¸¹ÞjÔkíÓóóóW—W—WW—ç—7nFÿÜܧ± ð~ü ŒAà­ χÃáÇÀ MÀ‰nà-ÝÎÓ³Rpt2êÜ™™™™©Tf?‹_ÚÿR61?oµÛuÕ‰°Ýyô¨Ý~Øn·nl<ê<ÙÚÚþî»Û[Û[·2€r +pçVðûßàÉ5Xëÿvd2¸öiˆ8x™xij⦹µ´d¬aØJ¥Z½—k¨š$Æ›¦©IMšZ)Ee‰°£ÉÜ‹Äs1¼TCA©aârÇ’uÞ‹+ p‚µãMxkMì¡ù…da-¥Æ“D&àÜ\% ”¦Ñ83je,^¸púRƒ%²öfø¿'Ìœe"ã`*ø§ÞG­b&²‘k‡ $¬M-YJmìó¥Ö&Ö¦ÖH)ÝA”23°“¬1Æš” i¹ÿ”‘°H· ŽzK"$LÔ"m<½8¤«6nS§©-ubçD‚R„„c‘Ȥ&‰‚Q|ˆ(µÜf[¦(;Ëy±0[[~b%áÓv%fðµ+â¿á:p½¾Òl•\ùfãn­}þúüüÕùÅåÕåÕmYðÛ0÷>èõzùê­ àÙ-ͱèí `<g·औŠ €˜ôóüÏÿ?ƒµÞA¼ÐØh4+‡6KØzÒ‰!í‡Γ­­íííí­Û/®àó[»õ%Àÿõ%€µÖ:܆Ž"ñR#ba‰R´†ã¯£€‰‰–L ¨¤tKLͶ¬%é&Ròö² ìa­b¡ fW>5qü¥7§f¶vgüË"K¥N¤üFã'ŠH޳Bq>5‰™»W«TªiJ©Mm9c#”îL6^\ "J˜‰ÙÞºýÇÍ¿hÄ7"gý;;ÌÉ™°¸ñ> úyÊ|º˜‚”´¢ ôk¿‰Ðl4®?zôèñ×_}5<¼€­íï¶·¾ÛÞھѭ×*ŸÕêµZmv¶V¿S[XX¨T>©Õj¿i´ZÿáßÞjmlüß¶_lo?yòäÉ“'%Xu €©F޼2D•Š PS”Ä&âŒl\Y§4©ÎUçªs&MM¬^-à“-•²Î¹qÈ‹ÀMžšãS‡(ù²»BY& ÇLBd“ ùÌ™°#x€bHÔ +Kmšš¹¤:WM˺–4qËÞåÕ¸FÄBÀ’ÄÝC¹ÿ†“Û_dÌÚ÷±L­ʶ9O†ïD1'7†ÒÔ²%k ;&¨Ë22ùiúÅƤ&MLJ [êv=u•TÙ¡ŒêÔ¤Dä Q—-©Mb +ŸÚ”‰I¾ ¡(¬ÄL>NËò̤d™‘2Y¢„”ºNƒˆ¥{e»ÀZ&Ë‘øIÝ{ì^¦ã\ƒRK¡(2dJgùžóhµZíÖzk¥q·¶°ñêõÅÅÅë««×—WW?Ý<7€Q¿rZãV0x/ ŸþiÿÿlžMຠX6Ææ`7K€³Ó88é÷÷ó<ÏŸ=ÿσòÿeÜhΊDX»ÈbQ™“©V«I2gŒµÖ§D’Á¨:ñä˲ NlÏQ=OàŒgѦ'S…ñ–8Ðì{d‘È'P˜r"—8sÁxçà­s‡ +%[ˆ¥)YkÒt.©Î•Ë4ÖÄǺ#š“”OÍ” CÅa¸¨tXNþ¦nù@oÛ”R$1cbmF.vÖ̸4J ÀêT²"&_¥†pE·P66¥„,1Ñ®¸Ô: +Yêð65ñ%¶¶‹RÔË‘÷Z@š21!¥|(,—´£À¥±(ñÁ‹wH‰mjŒµÄB¨²¨s±È/Û ”²µS +f“ Â’µ65Œ +þŠ@õF£Õj­·š­f£~·V[uq~~~quuuyõã7K€·2€[çV0øÙàéß? ƒá5Lzù \ŒpJ…Gvµ¥„bL”ˆã½ÌdÉ~A!!¼boù¢P¨ˆ~?`"'ÜU'¦*9ç‰/”!Û+*l‰c)q…  1ˆlbc†gþ‹dµ¨ÐZi´õÆB¥}öêâââõåÕ›7?]ýôã àCªxSpx³0|OàépøôúLÀ³8  &jÀc=€üöàt4õ÷ÿýýýýý|øì?WÇp _=zôøqgÒh·ÇcÀ%Àñùm$I×k³³ ³³µÙÙw@ãóÖÆ£'“ \C€Ÿ@@¸8”FdØ!ï=`¼°Ûeɺę0 [[­&ÆÌ¥i©É¼4žœhððÈ$sb +÷É'š2d`ÇP‰C¹8œdœ¤ÎÕD¯WL2WOª(œ‚ œx!f²&µÖعjµjbÖKÄ’ÄI> âv…4º’Ëœ‡KbÔ»‰•ÇíÛ?Šü¿ÿÔC‰‚õ^¥`bµ$ÐÀ3¥` /5x!çvwv˜ç\ ‘" +¢!¸‚þLdÌdlÊ;XDvˆ@(R0Ëcà4©hµ€RY4øpˆ0é)YUf¦”‚°ó;§Æ&8baT­ÆŽFÔýaòª!ʰ(TXCæH»N%ˆCØÝÝqRÀýzUàá¬ÔWÖ›­•æJ£^ÿ¬²ñêõÅÕåÅÕÕOo~ºzóãÏô~z‡ý˜äq†ÿ>xútøt:8ŒL  Ly>—ùT p2:;žžìOÎðÙ}Þ_íõÊ,`íG_óž<ºÕøîÜ©ÕjzýNm¡Rùä­ð¯TfkwêFóáÆÆF§Óé<étžTâ&Ûm` Ê(X°ã‚ ÊȈÄ,”Ú2KdŠB½ñª^Eà2ˆ8k²XYªÈbyÁº“9ã†xç—,¹Â«d‘‚,ÞÄE€Âyã]IOR0«5„‰mjRcmå^µz/Jà F+ì½ó^à„\p`x•,¼‘ñS»éÛ7ÃÿýâàLШTbœÇ÷…*EÃRj¶i>¢ªd”A$ìX20‘†8—G–!NïK‰%Ë™YÙI-™qâ…™Œa*ûó%ØRÜ{"bN¿HÓØãKCÌ0iš¦V Ô sÊÿ†ÛImšRzÏXed !Wµ +aâ.¢µˆU„ÿî¸"b…#ñ*Ê ݉,EÄô;¿úÔ>r¸Õjµšõz­VYõúâõÅå›7—?¾¹zs3¨|zýøôЛœþÏÀÓ)˜€^T ŸùðYd•&ƒùð8ÀðäV 0Úïõbø÷ö‡Ïÿëó|µ·Ö[‹ŸGl6×ãp’tÝjno7Ú®OÀÝȘ}çæßl™´Z­ÖÃx*qÚ5É| nÜ àD8‹žzÂÁ 8B¡ºÉi"’Újõž1siJ–¬RW¨3ÁA=ÄÁ98/&LæŒp1¹ˆÕŒ"˜à p¡(¼û^»Þg€!À9o¢²¼h(43ÁCU$ƒªÀ±ÉDØYcMj*Iµš”æx gV‘?;¼ºLÅï:-· s¦lúRÉŸ§Â?‡¿þŒ;€…0‰3*ÄEL‹ÉA`ãÜX<ÂLÖ!‹ºFêkáÒ(à± Nɘ”î‘í:€Eº”J¡äÄ‹Œ`g +Ê] ¢Ò4e&¢/R2„Æ|‘¦d‹ @„wˆ‹òÇB)™²iÀŽ˜s +e!a›’%[¨LÊ,Ý € +%³ål‡•²ƒ¿@ Po4Zcw໵Jëìõë‹×o.¼ºúñ& àja~üˆçvçeü¯æoÀ³wÀÍ `mð¬äŒ›€ñò‹Àep<]œžF½^¯×Ûï•ðŸÿëpµ×[“žH¯×+3€/Û6;7ÇS€ÛMÀ­í­ííïêSPÿm½VoÜy|òI­Öh4£ØHy*ã+î(Ü„¨d™‹:š;…[ +n—ý®Pd¥K5“5Õê½$­Ž=«ÈR@a +ñG¥(œÀ«Í4äIÀâjPQ˜9vðÈv‹¸/ź™Ôĺû¿4…z…óEh×d= RkL€™aY0Ü p! Î#C& ï jœ;Nnºþ^ØJ\²×„˜1SôªÖ¡tÛpÊ`²dv³Ý”ID²G–a£tqôä"cRJR«àÈ$0ÆÕhQ€&@LÒ4¦×íRƒG‚ˆ“¦)Q"(BIÅ Ày|A6Ö —“ÔÌY§j¹+”¦–¬ZUW€„Á0d v€r1æJÉÀl ×JÿÐh¶VZ­Vãn£ViŸ]¼¾¼¸¸¼zsõ㛫›öÀKÓçÁƒå¥¥Åd~þº*ˆº¶¶¶šçùÚêp y>|úìéÛ¥ÿ[°:x6<îK€gÃÁ TÈûýA$þa0Üœì÷z½^o¯··wÐÛ>{þ_‡½µÞêÚšôÖz««“ 3ÝظYloommo7¿ŸÆowjw~[«-”ñ?ûVPk|Þh4>o|^J§W&=î xïAp^D¯FË2 ( +ã«ãÌ–h° bIªÕÄVÇì\&8S°zïááx™y +ˆSìf +gÁø, ÅnbÍ9'.2g“u…¿4¼óÁy8açW£±)…IÍ\R­fÞqD¼ã§qЊçbdB…wL˜Ò@ +ÿqòïS§îý®©JJ”J”-„#9‘ \©bY2b"ÉÜ.È!%c,ï쀅…î%)%%³žDÈkcHŒ)`ª kˆ-&"òe€"D@Yd§1öy‡ÈR:—"JAG²4ü£’2‘µ¤^ÆŸZð¬ì ”0²Ý ʲ¿H°±ÒXYi´š­F½^«¬¿º¸¸8óão®þå§ožÓgmíÁƒå¥Åùk9€±@m5χ·àVàÙ°ìùÝ€üÙp8€§O¯ ï‡Ã~ÿý?äÃÁpBú¿N÷ö÷÷÷÷ööûÃçÏÿëóÞjom­×“µÞÚÚêd +Ðé|Õ÷Úí[cÀ­­íÆ”üI£Ñ¨ß­ÕjµÊÂÌììÛM€Ù™ˆœ±Âh4Fe¬vß#¨ +TàÔ9õðY‘ñße²`BÓƒX*0E{!J’jBsc‹)r(ŽŠÔyòp€w Vg–ó4uÞEÈŠ !cÎLp.@!Ëœ ".s@ðÝàP@‘‚ÿ'«ž¼ €F ž%”ÛDÖÚ¹¤šDA"æÌ¨Ûu¬,¸BÄe.Óà¥p¡@0.Ž>Áe2Ö®Ã_#Èû{B–9%2–í÷€©« + +KA(Mã®°‚‰ŒËvS"瘭!b#&MIî²£¹ªáª%0Á11Å}iRL”ºÕˆû?ÿsm¶òI¥2é’ ~¬ ADŠ‚`"‡ Hm|*ta‰æ,À–c¹BdÉkø;î–¤b‚cL¬0eNµ)gYæàãWø+ÏÇÀJs¥Õl4Z­f½QûlóõùÅùùë7o®®~úñ§Ÿþeú¬­ýnêeíÁƒåÅdJ#p²â¿¶šçÞ ó<ôûý<ÏÓ«OßQ ijš?¦2€ãÁ TÉãsýá oììß8ú½^¯×[ëõz«kkÒXi<\ô¨óxBÞ¾Ýün{këíEÉZ-Òf*o—µÚÝüàF£r-x‡Ià|(œ÷ž82*ø¾p\d@–[8ì|ïê"±F¡Üubm’$IR%CD]a€\WK"o䨲© …sÞ‰ãøÔYá¹Y°ÞgÀp™ª.„ +gŠ l;¨ó;õ“§ŽJ7Ä".03Y2”Ì%ÕªÙ&bÀÀ9rL^=2çT\QoŠ—žc…sÞÿvø{ âß÷ , òÄLb¬PÜò"5‘îË¢b­ÚÝ,˜ÈÕ·lmW`ÈbÎÀlachÞ’ *3Y"SzœŒ V«}R«}R›­Õ*³³•Ê'³³Ÿ|R©}3€‚ˆ1éiš†Á` iJÂVÒtÎ +Ô3u­!¦U͢π%J ÑBŒ„m€Ê$†CæXíx“ãß+­ÖJ³Ùj¶Vêµ…ÍWççç—¯/¼ºúé§ŸÞL÷\»y,Gøô¶&h€Þ°Ô½ “àë/Wógƒ|º†y”ŒÝÀ<ÿC> ‡“)Àþ»`Mz²¶Ö“ÕÕ^oµÑx¸Þ~Ô¹Á|tc øÝöÖç7<šŸ7z½V«ÍÌÖj3o§ µZ4¸3Æ0†@$5iü-3Þq<Іs¦p.¿êáº]€»c›´Z½WMîE9;K”Zk‰Ù1@±¶f!‚§¦T¬2Îñßí:;Á—¹Ä9(œ‹[ƒÌbwÀBd —9/¥ü'‰xv .ywÂD&1&M¹7g’¹tGÈ™ãÈÀ9/Þ3‚˼zè<È;`¢àœ÷RŠçÝ +U§Î‰Lé„¿ãu…‰ uQ T‚‡ ¬±–œ%VØn7Í2¤ÆR*Ñ»›Ôx“m€ºÖZcïbœ+¯÷SM€¿©ÔfkµÙZí7¿™ýd¶R›­Ì~R©Ôf+•ÙOjµZ¥V«,Ôf+"Æ|‘¦i[óä ¤©eþâ Š›L]&NçR¯ª¬” ©PáH%K$È4ƒùoÂÊ)+˜•˜Ùüj˜ùÕ§ÖXYi­·Ö[­f³Q¿[Û<}quyqyuõæêê_ngÓá?ÎÆ:oÀ` +n÷Ÿ£ÐÍ=À1 b P2†Ãkˆœ€üøô]÷€çÏû=‘µ2èõz½ ø°=+‘X{'(ªÞ½;•TZÿöší&D, Õ߈Œá,s@Œ|m Å©FC›ÿ?yÿ÷ÜÆ•¦ ƒ‰ D’¶p À8¸1ŒdwPÅœb%“ +„BÎ4^(»fï 'íS,ìä‘N"[(™´¿æbQTu3ĪíGGE(¢¶¯aºÌ¨ñ††êV¨b›Á‹ŠQ¸çsÏ^Í]ÿ µuYë[¾Ø‹“ €¿dI®ñÄÆRI‰I‚äûäóþzžŠeYF`Ák—^«Ã0,«bÛ°l[¶ ¥´‡25qi¢£–Ô #èt¤”{ƒÁpo¨fçe0„BÊ¡Zη;Üë(¹ûÀ+P•1ˆ I{ š +±õ°eXÁŠaYÆksssFØö@Šp8H6׆ÃA|i)…ݱ;Õ¹%cM{%¤R›†…a…B ƒè·JEÜ4„°£h #ÕUì ƒIË2,kXAÚ–mÈN`V°¢Äm;4ìKË7oÞ´…eY¶ae ;ì ŠlÛ² öÃ0ÞV¶5œ®ª]×uBt’ÒuMKÅJ¥t=ERºFˆ®]OéD':!©áPÈŸï +ìWfÛìKv$ApS +[À@È N_,;¢A$¤T‰^Gi“Ø–-miYÄö…/r^ŠTÍ*sY•™´X ëvüégŸž¬œf«KÓ`>3•ìNS€ú£»ggÎdÛ§ ¿½˜Õ +¸sç|èwO×Ý¿˜m&“€ÓA ó|­J‹EZ D×ÎN%cÉkš%g!@!@ ;Ò^‘!… ¤µÜ +Ô,i…Ê“&6½³âå#ì•×^«++öÊ­À6„mÛöZH):áÀ&²à¶-;Ò6dH!a­Á­•À,[HÊ éžY–e[BØRÚQìWÉέ½Ž4âAäć;êÈp C!Vì@V%° {Å2*—ææ*+†Zn„ˆKæñ*±[J[ +ÙéH!#È¿êCŠ(P>ÿaEa˜„¿.t¾N¤’Õ@R‰ŸÐ Z d¬Kj<ß¾iY†vŰlUd·lÛ6‚JÅPß–˰P‹’a¨i)MK¥4M'$—Jéyè)’"D'ºžÒR:ѵ”®i)=¥ë)¤4¢ë)¢§躮§ô¼öMÉ@€•xÜì`Å¡’ül«bIÛ†¢£,€T·1R†j-p „°ÅÍвå­À¶n¾¸€eY/å\¬šŒ±jµJ_!¤ù±Ò8>>~òégŸ^ÌN§3 @ÀÚööîîŒF£ííiê®@€èÝU»ÿIPíŸýñyñ¯àþöÖ©ÓsoÜX_ÿË$Ps3 àòסä™Àw +„$5‚¬Ó Æôl£#ƒ #¥´mѹ¥Dee¼X–ºçªmÛ°i¼v©b¬Ø+++¶]vˆ0P62ÒVþRJ[Ê(°TR¿–-#i+‹o)l!¤P[ù–âôR†vÐQ ºø/+RJ‘”Ñ@Í+…”ÁMåuõš´W,K¹¶a¯Ø¶rµƒÀ6,!”¾ŒÍ5b[ HH)CkÈaGŠÎLøG“»¢¾wnPÆÆd7WÂ0‘ü‰”rKRFÃp%¶¥TÒ¬x7P +ãÒ%#þ±bÃnå·¬ªnö’eXÁ-;ˆ";Hiš¦é)õ"¥¥ôÉM@ŸÀ„TJÓu’Ji9]O È«+ME¡WV‚àû +”ËW`"’·5$lØ7m;RF±íŠeah+O8˲¥-„mVe%Q$6Ôß/òü2]À"-PV­V)¥’­txxt|üø³'ÇŸ}öéÉA ó@¢z2ØVЋ`ggªó·³3³0êõú£þd°>lo¿w^ü¿{lõê7Ö×ÿrýÆl `ÊÎù¶¨ÐŽ=ÏÝ"„èäX2†€xö5”2Š£Ê™Kv2öê b‘=Û7ã¥WaÛA%lëÒ%Ã0VlÖA%v¤‚|0Ò„ £­&ñ#Ûê„J#$¡ºt •fˆKˆP[ +)…ˆ¬PÈ0P ɬ0 †RÄ”B]3ú‰uÓ„eˆÀZY± £RymÅ^™-ÔÙ¡­.(þZQ ´F¥”²3ZQG cQÛÁ`¨â? <l{ÅZY±d Vd¯Úa,¸"d`ð Ë^»iÛ¶!l«’©,+JNÁ¶—¤Q1VV¦`Y–•"Úwt’")-¥iºžÒ´¸ª“Ê‘œ®@Óµ $ @×Sš®ë$¥åÐ' ëy-•J¥Rº¦i)MÓt-§kD#ò4A`ÛÆÊŠ±¢ö±#ÜA`+v ¶ c råDÜ4 ;&/†a­X/öü’sÔdUZ¤”’…úÇ?~|t|üä³ãOŸ%BÖívßíîîîÞßÝÝÝÝ=ÖÏS:Må'Öõtì5˜Nkg†ˆ¦“ôìÿ«bPƒR#TÆ»A$# +iGÒ–"¡B)¬2Œ²+lkÍV¥R1V*†eË ")¤-£(DQhI„RF" +¥Â*U+1ƒ( +bq!J!2´"¥'.dð¿Ki ª˜ l!‡‘FQ42ÊAEVG2”2C[HÛ6Bõ i¬•Ø"GYæ¡N¤NRZÂŽM¶…-ä 2Ä „Œb0þª4®çZG¡qSR¢ Š‚po¸×±‡ ÕµŒKË® [(§˨Á0 ,Û2T…nBËUì¦rzФR)=Eâ9k³ @×t=§@K%5]×Rª@ˆžÒ&E@¢“”ž×âÏ¢€E׈¦‘”b©„*¨+§ˆN‰F¾ÿý@È êDaÙFe"h–!„°ã ض½d ^| ȶõ>„V°*¥E¢ÁÇ=>>>~rôä³£=Q]Ñç¥ó™ù™øï% €^¿¿³½½ý^vþggÆ êµîN¿×ïoO`»ßW Y +ìϺugºÝÞ 8‹ÿçõæY OSýéÑ Iké´¦ëi=­iš–N§OÏgÓ©lVŸb‡&©'k8Ld€‚HBK ‰íD + ì@ù„‹Ž°BÜR¨À +„°ŒJŰ Ã¢›Æf^IiËØl4A$;¡Š@ÚB +Ùé )C©K )¢ÀФá@¹mEA(Q$¥ˆ@vö+2 ‡j;)’Ò’‘)¤Ø‘ l#T»-†¢¤m+–mËÀD, ¤r ãÞ¡Ñ +¤ …£½%¥FRJœ ÿÀŽÃÿ¢màаe ä0º%oGA4Ür ‡Ãá ŠÄ@FR••àf$nÊ0Ñ@¡e‰ÿ[”ËyZ|§×4•·/ätMÀ ˆëwS Ú{:Ié)M'q ¡ª ÒS)m6P÷ÿT*†•œú×TN×R)BR)]'Dûަé)MÏä©2ІQŠ ÂPFí…b ma yÓÜ l!#9È6¾U`jRJ«ºÕ*%$ úéñÑÑÉàgÝ®×»âº02‹™y¥xŽ+ÈYÀvÿ½)Àhgt’«÷»ÝÑövú§`ÞýñüîäüøÇ?þñ»?¾sNâÀúÙ9€ nÿzV1-ÖÓZZÓô“Ö⦰>­Hy†ÃŽ ƒá0 +É`ÙC©*cÜ‹„Q'°¢-eÚ#BaÛÆÍ`e嵊QQR€CaG„2 +~"B;´;Q$åpO +a«K" ¤´‡2’Jvb)Ý +Þá` B1ˆÔ¾Ï@JÝZB");ƒPŠA mÉHáMËDÒ®(ý•Š5‘ºµ¬@†ÁÍPJÛ’uó—r ¤B!ÂA åíΞ!Â0êh(N†`?3ü¥”BFòVGv‚°3ìážìtþßRF!÷RT.YÖ`Ï…Þ D„¶ ‡år9¯îº©TR×u=G´Ñ5’JéºFT¤žÏRºNH.f1PM’ŠÛ€)MÓNuRZJÓRzJK¥4¢iDÏÅ €ÑuB4¢§4-¥çsÉÓ¼€›¡l{HFáPÊPÚ¶-­è¦-ËVCáFd¯$uÌç~ 0)Umn• =>züäèøèèøø³Og*Çâz¼f»”Yšµ 03 Š€½ 8üèLà$KïvG½ØîooŸªнsæ©Ûívvwïïþâ¿øÅ/~±»»«^îÞ¿ÿþ/vwÿþÆé9€ ¿+z ‰MÚÙ…`]×I:;Å-f Àâ¶Ý —B[ÈA$m9 …”øn…2èt†ÒHÞ …°-aÛ+ÁÊk—*òVl[JiØÂ!e ?·#[FQ„‘PíÂí›r0v8”¡-¤ ¤-:ÃPˆŽŒ¤‘ø‹p Cª`8Q´·7´l)ä@D)£=ué(åhmÛ±bÛ¶0 èT.Uâ>eÚö­@†”rKÚRÊáO„Ã@t¤Q„ý½¡%¥ƒNg F€Î ÿs‹€a%ˆ{ØQŠQt;ª¹7ìüß…”RDܬ¼frÏ"n"QhYCíÿ_ŽŒ¢a†A`Hd©O9”ÒƒÀ¶ÛíŠõ­ ™Ìeuæ2F«”æG=~||üéÑÑÑg³Û€Ÿv»¢Û×»gÀ©" Xë÷c{ð ôU\'2 ñ$àÎløß¹³Ý‹`{Ôïîªj´Ý럀ëçœ;ýÑh÷þ…°»{jàâëé œtJKÇe"BT3 «·1Û¶eö`V(„mF¥bY†!ÂP†"ŒRR7 97…eÛ–%mË–Ö¥Êk†aÙVÔHaˆ@„ƒa¸7”ÃË%ж,£R±¬C„a$ÃHFB²ØF85ä?B£hhÂH†{{{{‘HÉ åp('§e¬Ø–eTŒ›V<4wiN«¨ä]ihIaá@†[¶¡ø‰ å0Šv$#)“K‡ÃHDƒ Ά'i•s”âP')‡·oECCFÃáÞ ÄJb¡Q±E &ov†¡m‘T*¥B5]!³ž#$§éºFt¢-¦÷yuãOºš¦Q]Oé$"©œ–×u-þÿª–#:ÕQ®OÄzŠè„è:ÑRñÕ4MKi$•‹‡‡O|LNÍç’ (ß·ƒ@†¡ª ‹Ø«È7mû¦m¶]‘+†õm‹ÕjÝu«.cUJÉ‚{ðàÑãß>:zòÙñ“££Ù>Àõîõ®¸ÞívÅ,˜.N«Ýµ~Ô[ýØÙvN2€ÉòPf¨?Ú~¿×›Å€~{{ûÊ9gõzç™ð÷'æôt<Öuæ¤u=Nü'Ï''µ4IéD×S„,¤0g„ b™îØÂö0^F2è ÅMCy@Ka K¬£bTŒ%keÅ2VV C‡Ca‡Jç[y50ÈÀŠ/½V±…ö0 ¥ È¡†-¥Tv¢öà'áÏ¥ü¹„¡+vg8Š ŠÔp,Že öíÀRw~#S™«T*—æ,µè&„°í +…ÈŸÈh0?؃0Ü £Ÿ‹A‚À +Ë’{ÔQ$#i_DþÏCvd0T¦·nG22Dg/Ú“2 5ò°RIă@€•„g^# +É©þ\>ŸTyuBTÜëzŠèzJ#”hTOBÈ‚¶@4¤4–,$Ü.—§„\žäNå‹)¤Òjm(¥¢QMÓ‰žÊ刖ä–ùx“€RÐíax3T H2 +•h¤°í›ñwÄV62vE¼xøÆKƒLfšÕ*s3‹d>>|üøñÑñÑ“ã'GOfAºÝ®"×O¥‰Eø¬$è,l÷ÔBOâKß=åÚëõzÛç€úÇ÷{ýþ³‹gž3«ýÝûÏ<3]]OOãýTøgµdY"nûÚÖÔ‡¤ Éjº®§Ñ:2¸¥ª}RÉY+H‘´²× 5Ö²bBDá t:ÃÁÞÊpF¡m[ÆŠa¶•¹47w©R©T,ÃR `YvXjZ@ +a KÄ#¯Ø+¶b £pЉ†Ñž5ÈA˜è“ÈÀZ[²,¥2¤|t,Ë +a )•7P—la¯¬(lY¹d•K—.)×­@ù ‡{¶’:Q^ºvXše6¤ªk'—–R^û_àP‘RÞRÛ‘Á-F‘!ÄPî…rбƒh ¥\‰…¼&‘Ø>Oò9BH.Ÿ#9¢Ó²PËSJÉçó¹<¡ñ-; cªÑØCŠ,ä½t¡œ#„<%9B +ó„,ä)Íårù|>Or9ZVŸ-GH.EÑXJÓ´!T{%o‰å)ÉÇáŸËR Dc´kMÜÞ¼Þ +lû–€XC&Œ5Zl!ìÀ¶ìKV\yùì T(šŒU•(˜I ¤þÑááãG=9>>:ž1ë^Wë5B³IH@æD(ŸfJÚk4F»1üô,ôû½Xÿë¼ß{¿÷þû½˜˜’Ï¿Ô25«¬.«š”õ>~|[ƒÍz^ï +Eº§j18ýQßîâU€I + ºwwwïÞÝýô<ÐëmoŸ—¼ÿþû￟8„%ÁçÀhçÏŠ×e&¥&5©i2JõIÆrÕ7«gÓé´®&€fãý 8UP¹í­ ˜èÞQ§#›[*±eF [Ê=C*MPn>JèÞ¶K¯UbPŽQ¶mÇ·é06Ü’B²Ó‘"RoÉaEmÌa¶C)YªO +e°¡D…b)ɼBX"”RIïHV¨èD\˸d•Ê\Ų••ÀK™V‰H©ZqxÛ)D Œ›Ù"BXRÊPLÿ3 ÿÎùš¯Ù2‚½@ˆ¨#¥¼=4Â`¨:•‘Q$åÊJ‡‡Iàtp>“¼˜ä»£µîh4€þlðoÿvgwwçowvÿvç,ôÏ+¾ß{_΀~¿ßﯮ®®®ZÛwÏÀ¯~õ«_ýêÿg.3MÓ¤Uj^5)¥”¤Ói,Äý¾´¦ëi¢ëDÓÓi¤/læèZZÍéz:­+ „”òŸ*!;·÷†Q,Ñ/+jjFmßʨbK!‚5¡<»CÅ¢WlCMX•خ¶E ƒ5[t’KG‘”†”·÷†QVå1§‘²oFƒÁ@v¤°£Ž”AGŠ´UˆwD`ã}`[õ +eGþ$ …0"y{¨ÔAÛ¶ç,Ë0.Uâ= °„B +!¢A4T“>)l)E()…%dG +{(¥H¡z[É’ÐÉðdå¼siŲ£[{v :2dgÄFQ(¢h åÊD`Ûåä0Æ X.•KŒ1ÊjÔ|4N­ÆjÌqeŒ-ÉJAáE0J)lB©T¾ª0„1V€2+—ËŒ–jN£æ`6j5V«9ÀJ”1·Tb¬LËeZ*å)Íçœù!V*MØFX™•ʬ\¢ŽƒNÍg&:µéa·‚ïÛ1t:±¢ˆ"A àÒÜk•—€—±3«¬^¯C½Þt«¬ +÷ÞÙxç{¿oÜ»7£¾kï*­­¥Ó5€8 ˜äs ÙÞ¹{wggçîÎièÍÀD Xuzï÷ÞûBè÷ûkkk£~59ÿ0›ÿ»Œ1JM“–LÓT?-]×tÉ:ÑÓZ–¤ I5–>µtԋɬ ¦ÅF€[2RK÷BZ²óW·oK©$óÃJÊN eGÚV¤r†ÃagÝ´•pÜÊk¯ò+¶!Û–"”A …F²£îÿ)C«Ó¹=Œ:jp“‹ÎPJaÑ^Ev:RZ2Š¢¡¥ˆTøÊ.À +í¡”rË +[Q b!CKÞº}»#…ZO³.Y–QI€Vd(¥´ä0ІÛC!"µH)¤X¡J)‡±8ªEƒHÊÎ9á/å¹0g+ñ²`²3¼•0€( +…rT9Ó›±i²»jš>»zÕdžç8`šo€ Ìa5×e¬:¯)Ïx ”Ò’Ã(-š&šÈLÓd”R“šP@“šo0Æsà€[`Àc ˜KÙU¦ltbŠP „,b¶˜IMÆ(5•ÙÞU“!cWóÀ©½aº.0âãÁ÷í$èÄ‚A N@åeÀ‹»(«²zÖ›ëÍ:«šŒU‹Åb±P¤Å"5ëÍÉ™Ñ×°Œ¥Œ6ÃM­­8’ïL YãÙŽc9€äœ€÷ÏÀ{q +ðþÙqÀSë +~qÿþ¯þáW¿ú‡_ýÃýû÷ÿa&þc®ú1_5Mój¬ä£ëšžÖÒšžÖÓz:­¥ÓILëégLtè§«‚³·ºPFR,“2Š:”²"¥ìDÑ0èH)åÀèHD–ˆ†‘€PÁJ`©]`ÛvRO2”¶ênªØ„%å_íÉŽ”Q¤.-¤ìDC•.ïU:RØ‘DÃhØÙ +1ˆ†ƒ Ó‰‹ÖPÊH"©jжì(]RÉP– +lµ¦vÉ2V*#°ƒ[A ‡)eYvt{ýÕp(D "‰oi B)Å #¤ #i[²ŠPtbµ€á/å¥sÎÜk#P‹}AÈNçV@…¡Êb„l˜9Xp·8À˜{Øâš€¼Åq\àˆã7XžPš­1†XCD@ÿM€È[>¢¯ŒÞ9‡Üøà6Zc]À169r@pßdÀ@¨1@j-Qмµï{è!¼á6]—ÇàØo "4—‘{-e#‹o¿Ý²íIÐ9Q‚›A`YÖ¥¹—¨¼L +P¤Ìt]€f³¹^¯ƒË%$K4BèŒJÞ,,N s’õû^w$¬þiHÊÀû½÷{Ûѩ¥Á‹Oמ¦*íÿÕªUÆ\æÆ €š4šN§ÓD~<ü«.š¼pÆ+®èªT:ú¹Tb¼ÊHÚ2Rþ]‘ìD‘ìÈ(¬Èh/Šl1ÜÛ‹†{aKѱWl«R©–m¶;" DÞÑ^©[m´'…èt:2’¡Ê@FaEÊŽÈNÔ‘N40D4Œ"[Ü{á´£H©¨ò¤5¥”)¤°£¡º´áPm‘”AGضm]2V,Ã0‚ °+"ŠddËÎp8Üî…v ”T¡BJk 4FDGÜŒBÛŽ:h¶ò/ƒ(‰¡[X±y” : ˜¦¡Œ"ZIPÁ˜“h¸Õ ÆcŽã@ š-p€A‘ƒÃ£ºNÈ+•(-1Çóüº5uw÷ «9ÆØ5Æ˜ãøž‡m§ÆG]Ÿ1ceÆXÍñg!O(ce¨9à¸À€ª/¨æø^kكɗê8›9mPpéÒ\åeàe¥”¹õõõfÝ…zÝef‘¢iYR¬VÙ°:ËTÍdN@×êžYäõ'±¬à¤lGïý^ï½í~¿ßßéÿ¤?©ÄbB_“`Z¸ÿW¿ºÿÿq¿ªÌO\FMÓ¤WéU3–+ã‰5ý«Âž¤5EþÝ‹Àôw=ÒŠ¢¿º5ˆèv$ä ªIííER‡²bö")ä°³E{C[IkÅ0*†a¶qSùŋоb-Ú“‘*óEáš´:HFR £Žƒ¨bËAGF{ÃÛRvnËŠ ;R„Ã(÷†RÈho˜øõ Bk bQ„ÛŽöd'ÞBZ²RØذ/–µRY‘Á­ dXá”"£ápoÚ2* )d(¬a,  Ñ‘¶ eþBÓÎ"@ÅšHáZ +nÝêtÔÂ’bƒi@p¦¿o0–0mÑóª p ŽÃjŒ’£ eZbeVsZ¾ç£‡à€Ð 0æ2PWù!zžÀ¼)²šÂÏs¼l9G°Z­¦>±³oÖjŒÕXÌL|ÏÃå8ÉW LàT à›ÀË«Œ¹.¬C³^¯××ën•‹R$*•™œ™i­¥¥ÕÌÜœ6§ÍÇ ¸l&›™Ïlãzlö9ËNžSº=½í^?€ÉÖ_œ8L„_ˆ;aWMjV(è:Ñ•ÞKjºïFàk@Ä:¥°!„ê77ˆd$£HRFƒN4¥ü«Û²"‡‘”á°³w{ ;VÀª\ª†e–!D )… ìè¦m+s¯NGÈ(”RÈÎí@Ê #;²u !£N4‡9ÊŠ Cíu†·‡·‡ÒÃh/ ¤” Â’RH1ˆHØR{¯É=Ùé‘„RHy;2´ag,Û2 K2°;·£JíIî)7êH Ñp0„2DI+”RŠÁ ˆD E\z&üíÉ v¼VIÂßþ¾=)¥ Ã0ŒûS8q¼åÀÌÏkø>zh¢ãx =æ2V&„Ò,£å2kxžçyx^Àð æàêàû7< dm3`¬Æ˜Ã˜ËjPÏsÇq²¥Ga†S4ÙÌ…4<€ûèñ¢àÍž[A0CÎ@å¥àå|ªõúz½^_‡º[w£êÞX­2wæ»»¶v}íúõµëkׯKŠ$ “Édæ³³ ·½;êVÖú»J×ëyàýí÷ûJt4ùˆ^ÿ<[áÑð‹»çŽÿÕYlÆ’@éjiTO뚦§tÕÝS½ÿtúÅâ_‹ïrƒ”r ‘âér0†E¡Fƒ¨3Üû»Û9¼-*Áp :Bì ;ÃèöÀ¶¥ÂP›@–m" ‚@vlƒ0\“C9*oh z~rй-;rE†Œ¢A'Úû»¿êÈ¿êÈŠDBŠpou:ÃHˆ(F¡ªôE‘°?—JÛ[ˆ¡ª½@E¡ºô­Pªyü ¨XöŠe¬Ø‘ ‚[·dE")Ãpo8”Ñža4Ø‹âÛz'’Öðï¤ÃH D0ÂV•Fµ•x2ü…ú®Œÿ¥JebhÙÁ­ 3Í¢( # ¤4’I€Sñ&¸*x<Mt€¡çíƒSF ¡4 Œ1p<ï†ãyèa¼†¢ØðÄ7ol{ˆè²Æf&à25XÍq²%B¯Ñ`54Ð…7Þ`Ðh€ßòqsÙ޳gã¼ JÎôÒ¥—*¼D +P¤”¹uhB Y‡:s™I‹Å"¥&s¡>=kÓ“9IüŸ€ÑΨkXýÝ»½„<l½¿ý~OøFý^¿ÿ“€îùP‡z’$]J“"`±X(\ÖôD$&=-𥟯/„k+KRvä`8”QEà ”A§£SvnËÛk ¤Œ†½Îí½¿ ++ÁpxK†áðçC +1†Ö¥K±B°!„-äp„ÂŽBa‹(RóõÑ@ ¤èt„ ·;¡¼­„Ñ ’Ãag¯ÝF9¥ oï ÷†R +¹÷wÃA$ÃHʰ{Bö†BÈ +ÕŽz'î´d ;A0ˆ¢ÛRF" +°-èòV o‡9¢p°7÷†RJ¹÷÷ƒp0ŒÂhZÃÿ(å`8TÞÖÃh(CÉhEQlÒ%„Lâÿ4ÌÀ÷gr€ È(’¡Sh4Яá5¼†à›Ìˆ´|߯rhÜ@Ž ‡1J%Y§Ì˜ÐòÀCÿ +@<šàºu8‚^Û÷ý}€qèûìu¨1äà¨c¬æRŽ2`Ìñ<î‚ À|ð£ïû|ÁtOžðT @Hi —.]z™&àˤԬ2—¹õf½^o6ëõzQZ,Š”VÝf}š\*ý?‘(ØZ²ú»£n4RÆžçÀ‰1Àú œdïO^ŒF£÷_XꌙìD  D§@ +y%ÿ1­í§Óϵ0 Ìˆzƒh¶mXÎp8ö†{Ã`¨Vm‡{ƒ½h¸íu¬Ÿ †R#¹·×Ù†»É( +åÞpoo(Ccμôš±bÛvÛ¶¥ØA`G¡¡îEÃÁ`¸·'†uB¹·7ÜëD{QÙápu†hoØÙ»VlEHD{·÷ööDdXv$BFÃÁžŒBûçBÈp0”2Q$D$‡{Á@î ‡r/’‘ Ãá0Ú“Q$iØm¯¯2¢ŽÈØ2Šd$öö¢áp(ËÈ”Ñ0Ú“Qh B!å`8¶”ƒP äðçá ÚF‘Ìîiç!ÀÒkÊE Ù'ª€2ŒÂHu,WÔGž Ô^£‰ËàqÀkÿÈç.7<ôýMæ@™ +À€çy ôÇè€×h 6<@`ð‰"~Û÷?YÆ,‚çù¼½5oÜŠ³}‡±r¾¤à ¡àmEÕ¾×ÞüáØ„ <}f“1À` +ß ´êÖëÍu€úzêuF)%…bV)«O‹€3ãš35ÀSš`½Þöh§·dtG½µþΨ¿=z.è€íþ¹)À¶ÂsÛ€[;»wqvü¿uÆ®ž®˜SP ô¼Aÿgµ !D¹]N$Á,Û6Ô/n\È2¢pŠ Ó‰d`¶=ÊAg{·;NX‘ÃPÑÞ0ÚÛÛ†+öÊŠmÌͽöZÅ0lÛE öOn†7ퟤeÛk±ìC`ÙÖJ8 DÐétÔ¥‡ÃÁ s[ʽN'ê *ÑPŠp nÓ{{Û¶­ÄÇ–Â)‡ö`8ƒŸï…êË/mYF BaK!{eeŸ)„µbTVT"ž EréáÞϪh7sé ;Bùóÿ* ÁIW?¾ûËÙø? ³`ÛApK@R<õs8‘  ‰œsŽˆèóµÛÿä.7¼·|¯ Àr¬Æ(4âøGÞNˆ¹ç!zà"÷¹ˆÜo·÷yó{<ô}=ÀoüÆCϧVs¤L"¢‡"À¯Ý"oû-DĶßn·k^ãoÂé£`vø›ÀKM²z½ ëÍ:¬×ëÐlº´H Å")©iN`íÈÌÏdžá'`g§gUÖº××úwŸzgà'gàýØ\àý÷Ïê~Š­Ý3»LÀÄÇ›RjÒ-M‹€¯ +…"}AaË—ggBµD4[ÚA`K!åkÛ–-b“ŒPFáŒöþ.e Û²ì HÚ†mVP¹té5ceeeÅZ2 o†¡n +KÉ[ iB]:qæ°زsKF"äÞÞßÉøÒ–eÙ±çRD–e·ÔrÞ@a(B9Hij…´%= t?U#ÞNÔµWŒ×ìpOFC»¢P–ÓKËȶì@éÛ9FRüd0´m˶V[HKŠ@4Å™ûÿIXzíµ X¶·T࢟‚9s¾gš溮ëVݪi6]×u¯¹ËnÝ4ͪkšËÅ¢YоCÈB¡hVMÓ4—ͪùàº×ª®ë^›\gÃtÝúµzÕ¼fV]×uÝõ{æ²iºÌ4ÍesÙ¬²jýšiVM³¨BhždiµêV]ÓTW®š.\s]·jš ï_þÁ5óÌ9Q˜€eY/›¼\ ÊêÍf³ Ðt¡^¯W Éš¡3_ìÚ­ÕŒ6§`ÙÐßÞ¹Û³–¬5k­·£Ü½ž úSØMmgoþñéõÞÿ´úÿÚÖΙ.Àß³ó@‰R³4“Š$ÿBñŸN§ !yJ)}5€@Ynul‚ °l)ÅÀŠD ;²Ó±[€[¶ò…Ûˆí>”Õ—U©¼¦T­ë¦Rˆ¶Û²)ì@ˆ¡%eRB„Rñ¥ou”'Hìé­.m Cù‡-e§Y¶Ý‘yKJ +Û² Û’ +œì õÍ#a‡RÚÑJ·;ø¾±b+¯U*J¼rEi¨Y¤@ÚÊŸÀþ~2ë¶µd¨MC¡v[‡–B“»¿<ÿ ,F±1æ×ýøÌy78Ç1ÿ°ùóñrÞv¶}¬þÙGl·X²Èys|ÀÛî?ñÍMŽñœçÈy½ÍÇ|Ìùxóà¿pŽ|ÜÞo·9GÎ÷Û|ßEßç¬ÆcžCó¶Ï9úˆ-äÇ|ÇÜ‘·šã±ÏÇûgÎÉ)o‘¿<x™.€i2ÆêÍzÝuÁ­³ºk’…lVÓ´t–™ºÅ,ˆ@KºÙ30Ú¹Û³–*K†ug4ê¿÷Þ¨îðÞéeÀÞío÷»£Ÿ¨ÿ²}nðýä(AÐn·Ûí®õv~qz˜%P­P³4[,Š…bþ9@66Ux•–h‰R-`íXrTã±'@I½M ˜;€ïǰbØV`ÅQªàÖI2˜@Á ¤ Â`RŠ@Y‡R¡€ XQðZEIœ!e'²ÆLÀ¶E'°m%@.÷lÕ ¹èþŸ`À’a¯½¦ÏûC˜Nª6ßDäˆí{ˆÈ}įú¾"ú¾‡"PZ#Œ1`5¨¸€-sŒˆØ@lÆ É}¿…¾ï·Ñ÷Ñk¡ÏýV ÑçÜoòVÌÿY•RÊ(aˆ "zo4€-Äñ}Ñosß÷ý³GMÄ%©î!ß.PZu«CÝuÝzÝeõõ&¸õzêÐÄõw&gu*=À´ pŒîö¬¥¥JÅêŽFý÷FÛÏÛ ôûwF?ébŠlF£íQ¼<ÜëõzXëݽ»s÷ôý?NÎ0óD +P(¾ gRe4DϘû¦½bX†mݲO@pˆ“ð p>tfÀ> •Y†Z"œ0€ ˆóÀJ@ÙfŠ?¡ÄNਘýíÛèûˆØòÛæf|[÷ñ†‡è;”:…c¬›táÚ&z +ÞÄ–ßBt±…-ã@]}ßÇVË÷¹ÏqÜÇq©%ÀZb‹#>üÏ îû-lùû.W×8{”`ÌLðm@RƘë²zÝ­³*mþòã~ùË_~txøøÁáãÃéYšã9Àènß2–ŒÊRwôü5€íI  ßï~Ü‹¶·ßmoo'Þ‚ + z½íí÷··{½ííº«g€±³ €R“^-QZ=‘ŠEZzîß;¥,“&¤@)UÕÔ)̤ây vÌ0€ïÖM{eÅŠS!^˜LàVðôS|°ƒÀ~&¸%m)exšØ1tN@ç™÷ÿ—F€éiªP'wqŸ›clµ¢z>:4_.85Æj“9=€*÷Zˆ€ˆM•˜ª6Øjù¼Ýòc4@ôý¶ï£¿þ Þçu§ö†**åEô<ô°~ËGLê‹þfûI†qúÈS%5pé[ËH¬Ìe¬J‹ÍìÄYíÝÝÝÙ9ÿ³5€É€9Sˆ¥/ÊÒ¤P,Ä• Í>‡¨Àó¤JÚk +¶uÓ^YYJ€øæ àëà P%é‹À´ à àt +ð§¾ýkš¦á›Éðý"¶1¹ÙŽ«ûˆ /¹;”RÂj5'™ýkbêM³í£hBÛG„ö÷ö[ Š´}uÁ–ïû›ÜGŸ#ŽÑkxà@ ºáyØPø‰ÑGÄl¶Ñ;ŸLKñ/Í7 /£V4Íj2%gHýãÃÃÇ=z|tt|tüh* hYKɳ±v]çâ1 ³°=Úí¯.Å0]íÿèÇŠ@½~¿ßSj"qaàè)‘€i±·Ú»û‹Ñù0í¨9sZxe/ˆzŠ^)ä&²àçÀó13ëD @1€[ÖŸ”"0Mdô5`MkzíI$µÿËþx“#ã¸|“óGׯãßðq›{|ìû~Û¬ÐP4«‚ß¿÷I›sŽœû8þM{Ìë>ûü`<9²Ï}þÏ|ìÿ°}0Þßo7Ûm=@À4Ôëãv ‘óMlÿóþ˜s~€œû|Üæü ÙÞßoù¹gZ¾iðe€P“V㛣Y,æÇ‡=zôèèèÓ££)¬Z–e)Ù cízFÓfàÌ@{´»m/ÙÖÒÒõ÷”+Ø×Ÿ^¿¿ÝÛRžÂýQ[Û1Rœ€ÞyÇêݽ? ì,Hj%sf€L G^àW/¥R(¼BNÀL + åó¦çÖfÀzpðëöµÿ5δL]wÝjõÏ®¹ß»æþàš:î²{Íu]óšiºÌ,5ma¡P4ÍjÕ\6M³ê^«^s——¿·lšß[þ^Õ½æºîµåo^[¾æºn| ÷ñ¦û×TWu«×ܪ¹¼¼¼\, +YmÁ4———ÍeÓ¼vÍu]÷{ßûÞ÷®]sÿ½víÚµª{í×Ükîçd ð[g±/«2V¥RÿøñáãÃÇGÇŸÍÀ¤¸º´´v=€ye š™ÏdN)‚ín¯-­­.-­v.àÿçœm¥ Üë&pg‚ý^/6 ßÞŽ=§Š[Ýn×zÿ`'àd €š'¦ðb ›£SoÀs€B¼Tàû߀üú!˜7ÞF¼Æ›€M޹zóMÄ6{PΕ<ÆxêŸù8è"@³‰Mh6Ý1"6°…‘¯±ÙDDŽÜGäû?ˆ³û–oÔœr¾€àºÐ€7×›¸ŽMDŸo`ë^ó‚"¢ý§*¼L જÜjU9=x|øèèðÑãGGGŸÌh®®^±¬¥+W¬UkI1€¹‰ z>£¶ïn÷ß{Ø>çÞì»çµí‹ z¦P='È‘B=›»\ ÏH„xÞàˆk/Ã~}ppð¿ +À›Íä ¾‡ÐÄ&€ªòï©Ñ<Üäz@óùc5hxžêÏýÐoûc‘#@³ÐÄfÓåj X¥ ؿٟ·9¶}ô|ßåqƒ¯N­\Ê Ô\h Âøo¾ +‰šˆ¸~þi®Ë b¶pÉøÖ @MµP5MJ i~üøðÑãGöÙ,XµV-kÕºÀÜüdà<Ø­-­­ZKký»£ç‹þŸôûÛ½-Û#eÔïuÏ‹ÿ÷Ï€Ñ,üý ©”ÎI”¦û‹tÏ€Ù@Èêü jñù_0Žþæ›MDäךЀæ: "~`"¨J^ =Ï+‘£eVÏóZ¾ïó–ïû­:"@³ ušÍ&®c«îÀ›qw7÷÷}ý}ßWày¾çy^ ÆÊ„°Z`½®€yž¨RâoëˆüÂ3-|³ àešJõ'ž‘-Ò|ðàðñññãÃ'OŽŸ|úäd +°º´ºd]±–ÄõŒ¦ióZ,0ÜÝé.­­®¾ô'°uÞŸ<©7×Nëkkkâ$0öŒUªÀ§SBHþ•Y0}ª@ÕPÄ[oùþ[È9ÿÑ~Äïýò—I¯çð¼ƒ@§º§kÏ=ð냃ƒƒ_ôë>ü_ÖÕÓ:""Þ»¶ÐTLš€×ðMls¿Í=l0]/Ñc +ÚmÎÑo£«ÚwÐTu|w ¤Ø<@lù~»í#¶ýú>¿æ{¾÷–ç·ZžÃÊT_P*aMµ”Íæ†;@¼·~îPrþD5À…—8¤`VMZ­»UJ)!ÙæÇ‡‡Ž=>>þôèÓɱ,˺rÅZ²V­%q=37§ÍÏMT3™ùÓmÀÑÝ®•Àöèù ·Ýïßém÷c¸s’$uÿµsÏèî/F@õt €šç¤„˹Bâ£kQfÒš¦iÅõõ½óÖ³àì$ xÁ.À3jÖó0€~S€Äàzò·z%•:¡i¨ì´gpî‚õÇ“kR©éÅS³×ιøD‰úëkU.¼¸>{ññx<Þ÷}"_Cl"¬£ï#®^Ã&¶¹ï·}¹çÐ<£¬VsÐó<ß÷Ñ€±‹è©„±YßXo"ú\ú›íMαÝö}~­… Ï÷[-ß÷<§Li©€ `  ˆëÍ&l6›€ñ›ø,àðm—)PÆ«3J)-æ²Í>~|ôèèøÉã£ýì_'géŠeY«W¬¥Õ¥¥®€éÉdÎG»=kmÕ²ÖúwGÛï]¨pºÐím÷{ÝÞhÔë_”¼!ìÜÝÝ%³À¯³ïBòÓºžžšÕ)®ÿe o€·ð­Y0M¤xÙ.ÀÙÀó0€ßž8qé©T¼À˜Ò´TjæA¥&fh$?‹)-vОDl*–@Ö•¯fJÓôT*¥ç´8Â5è1Žä'1ªÞ¡ë$¯§4M£©XrA×S©óW¬SzjêÜ­kº¦§RšžJ]O)7öÉÅ>zøðáo>|øpü7®a›­V ±e"ç?â>çè´ý†Òßó<µÜ‡xPEDð°é GÄ7݃€*{o!âúý¶¿ésŽí¶ïs[ˆ¾ïyžç°r‰20¹§Ò†u@l!67¡‰>oµÔt?ëüO*èD)¹¬J)- •9àñññññ¿NÍÁ­dxÕ²º×3sÚ,œã 2úEommuÕZÛ¾;ê?/ô¶º½Q¿×½3€;ÝîsÎÚÚÚšúZ’?k–uN¥&»ÊX½Î(5«%JÍ*Kr€B”U®3)ÀŒ7@qýwÞB|ÇŸa¿¼w"8Íä‹v.¬<×.À“ß8ÿ’Òu-¥‘”Š-mâl™Ór:Ñã%$¥ë¹<Ñ'·æT*¥,oSšžÒÒºcF*OâÛ¹Nt=•JiÊŒ3¥éúÄSÏ¥ˆNRñ˜!ºžË刮å´\JÓ“gMKë§–¯óq”ë„TŠè)]˧R:ÑS„¤rñÕs„èDÓRúï~wô»ã£ßþîw¿û]rEÎ7p|-þy¨é{4q³ýCß÷}DoŒè7eŽãxž×ò=Ä"\ãÍ79zªbW?@Dh¢ßB7ƼÝVŸ}ÿG¾ë·|ô=ÏkyNQZV€¨ }á`#$ò¹þA“·Ÿ}fKßâ !EÅ\Ó¬Rå øøèøèøèÉ“'Ÿ~öÙ‰`5¶¥´™Ûæ Üﯭ­ÚÖêöÎhôÞ¨¿ýüÐíö¶g {>Ä'€UËZíîÞ=Ü:cì*3™ëºªö•^MŠ€ŠÅ^É%¡O!š®Ïˆd_¯×_gõ:¼žŒ‘Ö¡ž¨&i²×= /Ûx‰9ùßNBˆVVÞØD':)çóù<ÉçK߉½rI*¥“!z>GR„Ìh隦ë$ERÚÂÉ©DH#$OR„¤tè)]O)#m”¹|>Gr¹\슩Œ¹õ\Žè„ä Ñc¿ÜIi)¢§Rºº¹OóB(I‘‰ ·ž"Úô>•Ïçó9’Ï«‹§Rÿõ_þå³ÿú/ŸýËý—Ïþ%©zrl6›ךÍf›°ŽM¨»Íåæ:€»u€ºë2x½jšL僯»u×uëˆ&¨×š87›àº×šõºÛt]À&€ Í1BÓ¨4]—Õ9.c³ .«Ö_g¦I)¡õe·îº®ëÞ¯€‹M·Ùl®7ëÈ×›MØØÀÉ¢Ñ#Áÿ“j€„ҪɪÕ*3«¦I³õ=~|üøèøèøÉ“'ÇSwðÕÕ¥Õ¥+ÖêÒ•¥ææÏ·Ÿ€µºfYý‘ +ÿ¯€^o«ÛÝîoÝéõ§EÀîõ|¬)6°jYÝë0ö:cUZ-3“¹ªÔ™¤ÿ”Rú +-Ò"!¤ öz”“g Éê:!ie@­“¬®ë„(ÏWz~ +ð'ØxÞ.À?}þí÷„²–›]ÇŽvùr–æs ËÂòT•<4-¥i)-•ÒIj!ùÉ]ÿ%Ù|ŽäÔM8ŽËš–'‰ûvžÆß’Ë’ššcRÖ•Gö\u±úLš÷Ô•›j%õFŽäó%Jó$OiüÏ1Âýÿí¿ýÿíãøŒ7>ùdüówÆÍ¶8ŽÇœï#Žù?ŽÛõÎÇ­ lúž‡räܽƱ‰ï!¬ãxÌ?i9çˆøp|0æcÎpÓÇñÛã‡íßrÎù‡ÚûÛ|¬z…l6]à­&çÈM@ûã6ÈqcüƒƒG›ü×ãñøm¾±±L´¾Ý@‘2³^eUåš™­üàññãããã'Ÿ}vüÙl `iÉŠ—¬ÞõÌÜÜÜ,dΦ»#±º6€Ñ×Åÿv¿ßëu»Ýí~·ÛëzñðO·ûãn·ßínmÝéNaàœÀêjwgww÷Àªæ«Œ±«UVefÕ¤´jRZœnò j+JyDªð&zút],Kˆ®ë¹\LxÖÉåË—/_¾|΀mK!¾Ù.À t~öüá÷¹](Ó\N¹á–K¥R©”/3yJÕý4ŸSÀ@R„hº–ÒSš®ë:!ºF! )I©Ìçó¹ÉÇ1š#%­DóT9r—ÊŠR•H-—Ë’Ë‘\>GH>¯lt5Frñç#„ÔÉ~G¥! +tÊù|üQ9Br¹\¾¦ÑQ¯SZ.SJóåR‘Ñ\Nÿïÿöûûýïÿûÿ·ßÿþßþ-‰!Ÿûþþ>çØâî8YÃQKº€&¢ï·€•ÊŽã8c @—Ä+<À9ø€žbúÉ&OÜÇGô<Çñf` =DÏcŒcΡ  : &ŒÁksÇßãø6rDÞæ¹ÿìó?c +€J«”ÕëUV­ÒB¡HÖ?~pttôäè³ã'Çÿ:;0³ hõÞÍÌÍÍ« søÅHØkkÖjgÔï÷··G_WØžÀÑ(^êu·ú[[ýn·Ûýq·Ûí) 8¿ØÝ¹{Ô_gÊäêU³J«ÕªIMªÔÐ&I!¤P(òJèšÒûÒu]?Y±./’£”äÉç/ÏØ«Rz¶TmÀ?É.À×tþ?øÃ‰ØWç÷”.Pš#¹ÉÑr‰:år¹\*'\€$¢&”æI.§¥R©”6­L†ÅÉBI’4Å7vJ©VÊçiŽä ¥¥2”ËåR©¤®Sö|>O)ÍåÑhžær„Nnñºê-¤TŸe¡\¢ù|Žæ)Íçr¹<Í—5õÒ<-•ÊN¹LóT}'a.)®sÕðçˆ-wìsDÀ–çÅòÞà™›ˆ0š§ÌaN 8 ²øñ¼ Œ7ᆒñä1øˆø&¢‡^ü.σàycc%g¼¢.°¬´=# ¿6ö9窃°Á¿îüO)jšUæVMf‹”d›?9züäɧǟ~úÙäXÆÒÒÒÒÒÊÒ’aõÞÍÌi d.(Þu×ÖV-«·“øz<'ôºÝ;p§Ûíomõ·ºÝî·¶¶Þ½Óí÷üã àîÝÝÝÑÝû÷ïïÞ¿Ÿ¹Ìeî ¸Ê®šñp±XT6ϦIi±˜3ÍBRzJÓcÏp}¶k¥2u/Êçé©sN +`¿@ +ðµ5€g3€?œ=¿ÿýþðJ³”*ËÜ<¥¹ór¹\(—ËåUö”–hŽRZ¢š–JÅügÊÄ ‰ ± D]§Diî•8ÊÊ“LŠZö¡\®ÑR¹\¦eJ ¥4Ÿ/Qš£årY£Êq;O(!¹!DË’&ßÑRº¦é eª>bzæËñW–£,_bÜ)—k”–ËêÑÅOøÃ´ À[omî#"¯9GäˆpÀq€¢P+ç(-QÆX­NÍAt]nð&xèx¾7@íòqßG¥y7=ô^wœZ±2eó„PÆ+ÄîÞ<àÕÍÍMÎǼí#Gl}ÝùŸJØduFi‘hÍãŽŽŽž?9þ×Y0–Œ%ÃXZ2––ÖbŒÇ'Qæºs§×ß~¡`µ·£üAF_? лÓívGÝÙàN·Ûívû[wº[ý­­­÷»ýþûÀ/vwîîªÃNžjµZ~•NÖ÷‹* 0é«jJýª_&DW¾ßÙ,!z:žV³UV¥´\އ¦Xl•œsv^$øš]€¯éüñüãÎ=4[¦¥r96®¥µ’ã— +¬Vsh‰RZ¦å‰©­–×ÑI.—£„¨x,W(¥¥2+Q³eZ.%ÿ½D)¥ ŒÒR™–Tè²’ã—«N­Æ:ñÇVNÜΣ4¯ì²IAM]Oj)(+7íR)þÒ‚Ci©\*ǧÌc0æœz¤ð7Ûþ'ûíö¸õƒ1çèaeãá0ÆLF)Í—h©Tf5`ŒÁf“Õ”(¸ìC=Ÿû-„q’x¨îî Ä4ð†Òb”–4ÊÔg¡¦ Á”È_|ÈÛœ·“$åëÎ7š0Ò/u¥Ô4«”Õ¥²P?|t¤nÿGO>ûôɹ°Ú»žI\AÈÌgæç“ü¼Ûëõ·G£Ý˜ÜF£QwôµU€þ»½n÷N¿ÛíÞé¿×ë÷ïôûýw»[½­­n·»µõîsÀîîÝs@•_¥S ”iR$ôr‘R¼LQž@ét–ô¬=`öõzbìÆØÔ5©–ÀÙ@ÊçúF»¼àüáüc®ÂUÆ€Ró*crpÀdˆè1V®1V¦È£Œi¡$›£”"J)53+•(-2‡1(9Œ±£À£YF¡ÄÄ€ˆ›À<“ùèyŒ•»ÊJÈÔÅ=Rd5V Œ1ä ”rŠ‚”Ii ŒÕ®ÖcP+1§Äè‚I¡\fHéÕ«Œ1#CÆüä%ç{ñ¹æºu€º[wÿâßÿàÚ5Ó, +¤%Y•ß-YÐ4maaaaA-ÂN6âÕ4¨Y(Ä›‚Ô4ÍeS ‡šÅåÂòr¡X(‹®Y,Òåø¿“’Í.d4MÓ´B²$»@æ YUY+Òªym9YS¼víZ²]ø¬ó@ö%‹€¦IiµÊ˜I)% õ?RK€ŸöÙñE0?P=À™Qà­F[«k«–ÕÝmFýµþY8¡ê?Š»ýn·»Õõ’É ­­­­­nwk«»µµÕÝêöÜ}&윀j•±*¥f•U_¥*äc(RJi1&óBÈå8ˆ ‚Oά‘×믻±ïc8 Ì«sN + ^`è›ìüÿøùçŸþùçüüó?þñóé‹?þñüc–d …l¶P(d³ Ùl¡¸PÈ’B![(d³Ù,)l,É’y¢i$›Z Ùl–B + ¤PÈ.dã`)RJ …BdH6[(²@Ôÿ$…l6›-ŠÙ,ɲ„’ͪO£þy¡@&!G! ÙìÂÂBvÚz,P“ +…ÂÿI}t!KÈBv!K²¤_œ²…BáóÏÕãúãçñs’A÷ÿË?ÿ¿>Ù<|øp|°ß(-B£¬ä°2¥D'šbW0 +´åAËk8 pŽÈÛíö¾‰ØÂFË÷Þh `¬¦}'ö ` (>£A^'9š/—1ÊeeÏó xpð»ñþ'Ÿl<|È•øÀןo? ª@-xðèÑã£'O>ýìÉgÇŸÎÌÌ€Õ¿>?™<[ØJº[«kk«ÖÖh4ílÛý3ÁÛ³O£í)Ü9 ½n·çÏ,Þ½»»»sÊU%ÜVeìUú*¥æ ‹EB.+$ „\&—ó„èzZ!@Z×Óú,À4€©LÏ©M ßÎIÄ Ítææ^làó Ï?ÿüóÏcšʲ–¡É€9À+ÕcÔd”1ö†ƒ…«4ŸÏQZcåR¹Äs(pƒ_MºÔe¥’ºä„*ß` j Xù 3a/3N‹2‡k€Ã”–ná*«±2U=½ìx~ `F©²ÝdTÑ«24h̵L€ÓîóÏý8öýöú䟱Í[È7ÛícºFHJÓˆžRI]×4M× IBi>ïd Í—kN¹\.—£¥cÌñ|®<|kŽƒÔ¡´¬tÿh™²r\óÈB%¥|>§iy=¥izÜQUmÑ|(k çív»9†gÌž—€¬Nô?q0nj àøÉgOŽŸ\™ym’ÌÅgÆâ£ßŸ@w4vF«[{†ŒfŸFÛý^¯×íözÝnwb Üëv»]UxÆÀÚÚÚÚš½u÷îßìîìܽ{÷îÝ»?±6§¨&€8 (HBŠÅbAU¶“Ä4>eNêÍuµrÀ¦š’xñ2/² 0Ÿ|Cç“oèÜsu.Šþ/¾P}^b”ÅnèŒ1f²WceFY™•Y‰²R©ÌÊ +,.í—JŒ–ËeÆ^aµšã°2sXMùï‚ã8Àc%VV5z•–™ÉØÄJ¶Ì+•KìUÊ+ÓWËeÆX£Œ1VsâT¹ÌÊÊâx"„¤òŽÓÇqj4þºÊŒÑr‰™,.$$å–/ÎúìɧÓ9€S071ô»ý÷NÀ{£‘un`ÿé÷G£íþ;wºÝ^¯»Õ›@\W|ö:[wwÿvwôSw'¦¯¾J)­V_e¯ViuZ,Ò8è )’×È+„dUyZ?e F`}}}=vˆƒÓñß$Ð&F«'`NÓ4íÙ]ñÅŸñùç_|þÅçql$o%çóÏ»jRÊØÕ*c5g™956)cPÊ-;N‹¹\.?©Û•+P‡±šSc5Çq¼Zìm]»»Ü×”¨i–c&«9Ìd਋SÆJŒ–Ë¥²ã Sô§ÆjIŤV+ÊÊ´T¢”æs„äj±q¶yº¶¢`ëÕ2«±«Ì‰æ_|‘<Ð/&?¿½ÿŸö7ÆŠkoâ¢èyØÞFò¤À¨k>œ¦'+ ºž")MÓI¾\¦ª#”ËçËÑÔ¤“¦‘”OHÏ̇0¿AR>_/öFðð‡ÿá?ø×P‘þ6¯”aÀó€ñ­m.,,,R Õ*­2jš´@´úLJG?~ôäøÓ'³cÇʸÁX2Œ¥ÕþõÌ„L`Òèwû£Ñh÷nommmÕêî(°6:‡ôO@·×ív{½î;³ àÎ3'OÀÝŸíîüt÷oþæo~úӟƆ¯¾ú*¥”¾Z}Uª§]Z,Äåÿb±X YU/"š¦id!›Mki}Ö!˜À:®¯£rž‚XþyzΦös¥š–YÔ´g€¦iÚÅ]€/žã0©ÀèUVƒ"s æÌ@¹ì£_íÄÅûrT›#q´¯AÍix ˆ«Õ˜°*3`Œ1Læ«1–4KÔ{YµÀ%ñõ*c+ÄÅþ<ÍçˆF™SsœMBßQ*•ŒRÊ Æ(cÌd ±™}t“ø÷ÛÿáÿÂ×9"úÈÛ9Îü€|DDF ,c”è¹½~26Ô»pè"0Š@ Õju2òó*-•ŠÅbQíþ©ÁŸ˜² ¢iº®éé´¦§Orrc׹ϕEÜi87xæÀüüüüœ¦egœg`ò¹çÏc_|ùuÑÿå—_|ÁLvµß›¦×`Žz=¾“×jàSVDŇ)¥%Z¢eV.°«Œ±×cµp`ŽÓŒ±šÉ=Úd¬ªª + zÀfnõ¬æ8^›2:µøeÊX©h–(-—iŽBR”9PsS]<þŸÀLV½Ê )5œ }u¦;µíö'¸>NönùÃö¸ÿŒüo!ËÑÆL“£ríÝÇ–rôóÕ úMDÿ‡?ôyØB7ù&@, Þ€F›Ðü.r¿à¡ozŒRè·9¶bíðÿð‰mßjù¾ßÜçm<ùËòÌSùvã¿X,2ƪԤUZ ÄýèÑÑÑÑÑñÑ£ãOŸœ˜0–––f€6™>›lõG£ÑÝÝíµµµµ¤`¯?¼s´½ÝïÝéu»½n·×ëây~°W·îÞýÙîÝâûü«Õê«*í7MV*Ñ!¤HŠ”Ò")U€ $›N«u¶d]ö´70YǸ€€ÊLgJ»gS[9aœs™ÅÅÐæ/€¹ÅÅìâââbfîøò‹/¾¼øéË/¿üâË/¿øâ‹/MuOD + •Ì;àÔTˆ:È£8 ¤´Ä3ßPžÊ5ƪªg£á¶SKîÒj°àÜ€¸S¢‚8¾¸ÙV$‚Õ«2VJ*„%Js„PBPg&‘WiI}íž5öÅêñ~?¶/¾üòË/§£À›ã‡¼¹ás_µÞ÷ÛÜGh"ò–‚íF-Ÿ[¸J¡ÉóöCÎ9GŸóöþ¦Ïy«åóÍö'üa“sÞâœó‡Í6÷MDιÏy qÆ?h".sÏóLdŒ2[Ÿp}9çíß ¿ÆyËçœsÞÜoû>¾@!ð[€¥Ô¬š”š&£Bê>ztt|üøø³O?›M&°Ö¿žI~c3ó™ø÷tÞíoO`k´3íŒÖÖF£ó¥G¸@7€íó ßïŸhÚj`mm­·; ¯*׾ꫯª|ŸRÊÌ-/“B±X,^VT “€l6‡<ÑÓºžÖôôÉN in ®cl :¿µ¡Îy)€8W(þve3óóÚ¼¦iÙÅÅÛÕç€ÅÅÅÌ\f)“ÉLàËç9_|ùå—_*Ÿ «z €8ÀX¡çcP€JeU¼gÀ®2æc5 ÏsÀóðMEë özÌ(c55ÿR…xÐPs3Œ1ØE5Lç0ˆ?$ÔW3È””ÁÇkxx•1VcjVB#â¯ü‹ø}‘<ª/¾üò‹/'€ûí\orÎ7ÇíM·9os˜¬åúèPºX¬âøüÐoùcÞÞ䈜·7U|sŸó6¨hÿ°½ymÎÛ*—x'{ÄÆãõßÇußó¼«^­LËJ*ÄW΂~›û×69ç~{ÌùÚ›Ó/ä¼<(ÄÚ8j±‘¸?><::>>::þôøxvx)1XMk™ùùä7u +ýþè½ÑînÿúÚÚªÕíŒF?­­]4 §Û#Õ¼“@ÿÌ|ˆŠúY°×ìµþîÎhwwô³ÑÏvF£x‚õÕbñÕWÕÔ}•–'c@…"¥ô2¹g:ÉfÉBZ' ÙYÐ)Ößyg×g¹Çii繺A&³æÜüâbFK(ÀÔg阋ã~NË,Ígæ2‹‹Jù5‘ÿtæõ8¥E4Àó<ð¹×p˜ +SŽ ŠN>ŽÕ¬5\V5òоïûû¾ßò9€º[']?Æ®²ÚÊkÃ…†ãyž‡ÜóÀdÌÎT ¿ÁX Þ`W)-© Í×ÞòÇ-ô¼1S×vÔÅÔÔ¤ýs¢ +|€Ml6rÎ°Ž¨oºM· .ºJLÆÀåÀys}ÌïqαÎ9âF³¹Áqý¾Ífó탇cþNó⛈¸±ŽÍ&@sšˆØt7~à69¢‰€h+Q +JHx›ˆü{MXxpÀ9¿¶Ž±‰Íç=ßfü“B‘ÒªY­VY•‹YxpøøððèÓ£GGŸ?ùtº<³ ¤ q<¶G£Ñîß®«.ÀÝÑh÷|Øîo«\;€˜ô'ÐO åÄY[[`€=yÑ¿?íþt4ýíèg£QñÕ8ú_@<H‹EZ,¨.À¤üOô´®ëiòBô´¦ézZe©i +ðÎ;ï$1l¼õŒ.€2Â@fNÙ',.ª¨V`>¦³eÀ™øŸS ;€+êóss™LæL˜ŸOã¨#¸. ˜®U# [‡kHsDÝf¾€8`Ux¶Ú?â|Œ¸‰.€4ß` ¡þ&‚ËÖ1@0]€·1ð± ¸ÉýO° àŽ9GpñMTêÙo cŒÒ%DÏ}Ÿ{žßd± §ëV`s\à2ÀäÅë©zåËļrük>>¸·qÀÇ>äÇëûÉï8çùÁ6 +ø9_»‡÷Æ9"¸9ߨøè£þòà—üƒ_òñÁÁçÇãæïÆc>>xÈÇ|<²0Þàm>n·ïñ ¥9 øC<䈈qãáÁ½¿ßÛßãŽù;?s>>àû|›P¤Ô4«&«Ò*¥â>8<üí££ã'ÇŽŽgÀZŠ­ÁÖ’.À\üûªÍis³°½=íìÞu¯¯­=úI®¯þ:Î! «öêꪵj­®Z««kköÚš½ººÖßîÆÞ;£WU©ÿÕW‹¯Æ}ÿb‘dþ§XTÃ!´˜ì·ë š¾ eI6­©ØW〠Íw3«¢oóÖÆ3º±îÀ +EæÊ•Å Ä cn^Uæ˜ÑX{˜Ëdæ3ss™.!ê|ùôi<mšÊ ÊuÕ¦Tµà^«V«®kÆC{n¡X,MÓu]ÆX•.›×LÓ¬Ö]ÀeL½Û×u—7Üúº o¸Œ]uM³jš¦iV«Ìm~Ïe®Ëª.¸ìZ5¶À`,Û¬V™IM“™¦Ii±%…ùM+2n\P¬²:0—™èºM5uÇXÕdO'êéÓ/¿üò©zäO¿LDÁ›MÜ#¾ÍÛœ·Çc|T&¾ 8Ì)i$Oi¹\.QÆ:ztttt|tüéÉ6`rf‹€êø$ØîbX»~rB`»ßï÷·OÀ» ôÏku"–­õwG£ŸNìC‹“£Š€—‹EB)^.r™øÅDþ‡¤uèš®M˦Oú€ÆÀïñwU)[œ?« …Bª”?se13Ÿ €JNQ€™Q€³@K*‹ñæ´žENßç¼Ñ@ÏC¨6¼x± á!:´T.3'‹ð}Š0Ï‹i« ÄB– €Fh‰–˘pT•¯ž§âÙm€‡>‚çxž˜.¸^ x *Ìó<ôšq%<ÀFìÃác ÿÉDDðÀóh8Œ•(%”’ç×hxà=Ï÷=¸ÆX}Øô<Ïó`’ÑÌ>¨/Ÿ>}ú›ê ê°1æy»Ýæíö&6(£µXõ@'$Grz¬x¨iy]×!û†Ã€1æ8à0Gí Ò7‹ X<àè˜û¾,ˆ®A#©o8ÉÍü†Ä²kJËlÊ9çíýýý}ÿàÅàE9À7ˆòŠš´ª×cUZ$õ_>8<<<|ôèèðhvøSÃ0ŒÅ¥0asš67ÛP5€vv·/N¦ÐŸ€~Ôí„¶ÎDÿ;wîL N,ËR°3BH1itg6}¦­ÿÓGÓˆNR YMWìÿÔ$à:¿wï¸ö7•|Sг)Àb6SÉd*Úi +°¸¸x‚Ì%@; § À•¥Ì%Eæ2™LfñŠ +ísÿL#?I—€‡-à#‚ç©HõÖ(-—Y#ÛP#Ž×ðð<›xèc<ìæyž‡›à é0Ljð€‡Øò=|Óõ ‘"zèûmÓ÷=€†×ðà8Pcå2#9Bò LÀÈkx¸Ðu˜çsô—§Ú+Åɓ˄&3¾Sí²~ôñãÇŽŽ?Zƒ†±´´´”ÀLßzV°uýúÚjwgw4ÚÝY»`` +Ûý^·ÛÝêõº½¸(0ê÷û‰íÏ;wNÀªuò¬mïŽú£Y˜žP¥ˆ¦z›å"8ÐÄ–ßþo·Û¿Ûßßoû/x¾ EZ­²:4›M—™´¸þñƒÃG>~|üäèÑ䆱dL@‹2™É­j¦\—@w +ן¶ºÝ^¯·Õ›™Øš®M ·4ãV?/YýÝ÷ÎRL¦ÿ&iÿ ñÏBÒ©¬¦B²š¦¥Ó„躖ÕÓº~bøò:ç÷ø[o½Ã76wcÆám6Pqž]\Ìd'0K²gª™ +pa `éRæXZ\ü*‰S¾šÊLÀ€€¼…ž ä*V!Í–#„2¶€Ž +Ä$¼Æ4c@õ*šPã `¸7=ßWÚyØp”œNÜD\æx p æ¨-Û2¥„æHyzq®Ë€`»Þ9q?9³î ã‡ˆëëMDÖ¬B ˜Rƒe¦iR¢Š€WKŒ2F +Y5N‹”(¥´@)˪ .ÐÂ+”RJ³¬\.QZ¤Wi•Rz•š&+Å‚05Z(dÈw4Ê5¯VM“]5MÆ(ø›Íf³¹ÑDä|×ùxÌ_0xþ,àÅ?¡”U«n½Ùl°ª¹ñÑáƒ>:|ôøh&þÏ€¦Z×™Iµz6ª“`mm­û·»;q +Ðÿš ßënõzý­X,@AÀth†,=–Õ¿;zïg£÷&5r™\&„\&ŸðY‰Nà€žÖôØ#vP€tJ?ð_ò·Þy‡OHÀú ¸¡N’ˆL&“©ÄõþÅJ&''(@vJ2q%³8—”˜?Kæ˜Ëd²ÙÅ¥Åóà«§O¿úêéÓ¯¾úê«§_}õÕ,x€M<ðMG¿åy­Ö$ê{……¦3½FÃqÐh*] jqOßÄ:{½Æú*5À7Ðó áaÓ÷Ñó|pÔÔQê al2…& F‡Z ”y +rbE-Àl2æ²:ãí$þ¿úê«À¦ž’Öÿ3ÿÝ?þöƒƒù—ßp>~È݇Û9ÿ ‰orÐh¯ÅÆ8úd®n~k ÁDäœÛ³6öù˜½áÀYÇ>ÔÔP-PJ(@8<#ŒùoÆ|ÿ_~û»ßŒÇ¿½·ñßþùáo¼Øyn(|“CÌ*sY½^o®7ë®Ëšïpþgãwø/O#޳xPÓæãÖYèª"à/b¸»{w~’<ŸSXÛêõbC€Ñ¨×õûýþ¹öÀWV¯¬^YUÏWV¯¬.Y–µÚÿ›Qÿg?EHár±xyúÙlV×ÉåË—Õ ®g5MWÒØ3wþEÀüG¿ä3Lr{U @Å~e1“Éd2K‹‹ÙÌ×W´ÓU€„Ì&sgÀ⢊ò韧êÅ$ø¿Ra£â¦k©*@P…;hŽb¾¶Àc5¨ÅÄÀl NÊûo@ÓäŒ1×ð=ð è{ˆÍ4¹¨.Ž3Û“ÜÜð Ç©1VvÊ¥jŠq¨ôÍkçèÅ"€™ÇóôéÓ§“allñ1ßäœorΕ-È|ÏÃ7På`¥µrßSë dÓ…`,€£f¥¨1ð¼†Ó`”±¸à8 <Çáà9¾ï0æ8ŒQJHž17&9¸ˆØÚä¾Ï9ç­q½ÝæüÄéóoÍj•¹Œ¹Íõ&¸nênµÏͰ*›N'€¹yík`wÔ튵µîÎîÝûçíüälw—ºÛýÞv ݵ‹e¯_¿~fàd +ð3%×]œö;./_ž”5-«§ !—I6›%i]Od€4-þK?ebG<Î9kÚ€õ„à:¢W*•J¦’Éd+ÙL¥RÉ,..f3™ì +0’(®ŸYL¦/&™ È(°¸˜ÜïŸ&ðtO§¿û)‚‡-ôÐCD[F£Ì)BeäMV«cŽžßêÝ 9o$I€ÉÕØ€ŸˆïzžçÝh" ×j!úÐhx€ P‡:óük¼á5<Ç©ÅÛC娋2œiT7bÀ¹¡@mf2€¯&Î@ˆü÷Õì Ôn#€ë€‡Ð@l8šÚöó¼Vƒ1p ë°šš4P_98 ÍÉCmxÀ=Ïóâ]GõМ†çýÐóT“QªÆ”xx<8˜ømrÎùµö>GXáÿã @©Ye šõf³u`USÕÌHšÉ‡ëº®añ.€*ÎÍÏij(™\Îé©9€_ŒºÝîÚZwtÿoÿöþ…Ë@ÛSµðÑõÊÚè½^²Ø]úÛ'…ÃTp÷ß»žœðÓ~ÿ½÷&5€Ë—/_¾œ?ý€¤µtZ×’B`:­¥§&`i]%§—PM޶fÛo½óÖ[qàÊ•+‹1d+•i ’$gªóss™ÅŒ¦rE2óÉluL5-&“•(07÷Õìy:ûWr÷Sƒ¯ž>}útº“^ÃÇ6€«iBh¹Y¬ÆÀ÷PóÀ`u€ïA‚àg3‘ÛPÍ|êàù-¸ຠ@ä&4âá9jeF¥&!º–c.›Þ!ã…˯fÀW œM@í«™¤™„¸û‚µ|Äåù-Ec Ýŵ÷G=Õþít×Fïõgëú3o\?çX½Q¿ÿ^ÿ½øœT·ŽeîÔëi’^ÐuU\ÐÒš¦eÉ´õ—ÌÿŸ2!oâÛ1Õl)|‡sþ–:Ú•+W®,fâÈ_\¬¨$ »˜©|-˜Vf &‹ó ˜?[X\œ›{:ûiT$wËI¤Äñÿ<[-¿Õ‚&ºž*€åó”RVÀ˜þ¶}Ïð=Ïkºñ?ÜðÑS!âñ* ‡Ói Õflºjì}lÄóA.sу¶ï9Œ+•X–¤R”Å*k܈ë€u×Ç¢÷tb榃<'† >ú~Ë7Ç>ú à€­V =-–¹á`ì'€à9¬ÜlÀ¤×é¡èÝð㺧‡ˆžëù-Çñ<•4BÑ<)(qï {·T0¾ç$zдo f•¹õf³¹¾¾¾^¯CÝe´X(RjVYÕ'g±²TY4+Æb%fóÊ |¢ 8€­‘Úèv»b­;º¿»ûL˜ŒoÖvì$ÚÝíZÓˆOîý£Ñh4êÞ;'þ׬îÿÖ÷½÷N@|ËÏf³ÉÆEÿ¬®ëé”N²š®¸À„÷«)àô¹®ÕDmÿnnrÎã½ÐÙY íÊ•+WV+ d²™³0K2S +0?¥š–$U ˜›?S˜›Vææ*™¯.8'€ ©~uðð·m>æ-· +j¯¹q€íñ96À¡%êdìã¸|ÜÞDþ°í8Fä¸È9"Œù9‡eœÔ-ÇŸüS{“#º&¼‰ „&îãxŸ}¾?FÄM>Ùo‚èý¨í5m!ÀS·¼9Æ1rÞ4]Üü#Ÿ>)¶ÍR‚u¦&Oâ¿…>úü{-Dð6Õ¼"ÂB™–kqÞ`°ÌQ¦–VcjY +<ðñd"÷n€§d…£%K $`nJÎVæææ³_]ˆO§YÀ4„–MÓ\^^^þîòw¿»ügË…ï~·¸l‹…‰E³ …l¡PX.©ùÝb¡`šËËËêCLóÏÌBqyù»…âòr±ðÝl¡°\\Îf …B¡°œ]^^..›ËËË…å?ûîòòòŸ-////›UsÙ\^../ +ß-¨Ë,—)Ͳ$›]XXÐ4m¡P,³ËÙÂòr¡X,– ßý³åÂòòòòL‹kgqƒ7ך€¾ßÞç-t}Uéð=ôZ-Gc´¬,vHF˜Ñ×u]À6÷7bOîßú5ð€±¸·É ÆhN-Zz*½YG÷Chª/¤ÝÞç>w}äˆî¿øùðÃñw~=¥U¯þ¦U@ÆsݺÛåtËÌBÆàõäÔgBaIyN ĉúÚdx«{}­û3btv¼÷ÔbP×0¶f aÛ +0A€+«WfžWWWWW—2WÞ}·Ûï÷ûý3ΦÓ:I=Mˆ¦ôþbů´€t:NëgòþóÀ|üáxüÁi…7­råÊ•+W²*ý¯d*‹™ŠêL`†ÌÇ€Ì) + iqEà XœŸ;,f/¤'xsÒøê«1çãqkÌ9Çæ>¾9n«%v¯LK¬ÌÐâ[8æ.Žùæ˜s|Àö÷Ûÿ\u90øÎÇø6c“™||€œoð6ª½ywŒ8>àíöøÃñxÌ}Žø£–|<ÆV‹£ ¯ÆÊ¬œsøØÈ\D·îº€cÎÇ9à“Zß©ûþô$vˆƸŽ9o·79¶ëˆ-loúþ&o!¶Z°@˱q€50ÁQZÇÞo[ˆ[x Ðîc»í#ŽÇˆoÇÞc-Ĥ¬Ár¥dH‚1Fó ±‰>}¹;n®#Ç Î?l·}ä.÷÷Û/yNÅ~ìÞžÒSDÀëߨX¤&cõ:0XoºPwë̤R¤EJ«³ÎZ3¡`$0wš¨¥¾µI°×½~=f«‰(hï¢ÓmKÝÑv[Ö‰ +À‰sêæ¿ºzåÊ¢–¹rýú»ÉùߦºÇDÝÞÓjÜ_Ï*ïMS[¿ê¨ýŸ§]Œ°…œóÍÍñ¯ýë1¦¹—¨T*™L%³˜]\¬d+™ó«K§(@ùš6?€ù„ÌeæNWææ²ÙìââW_‡qsðDÕ¬ "2ô|ô€çÕòù-•ËåšKz`•ûÜð¼†ç·}ßosd±Jc¬®xñè_"˜bú¸èûžçûzžç5Ós˜ÔÍêx¾gcU—1å¸àAØ4üŸ^ôè&}*p›Ík×êͦ[Çwp½YÇåñ¸®[hÖëÐDwžŠ”MÓu¡ÎL3[¤¦[5«àºPoÖ›Íu·¹ìšfsp½Yw›c·ͦ Í ·@%…ªë0fº¬@ +æµfÝu›Mhºîµ\sÐlºÀ7°Ù¬ã¿Á…úËži½OÓR)-¥ÅÆÕD×u5Üü k¬^¯»n³ õªÚ *PBŠEzÂøbz*Ýë™øu.QÉÌÏo'½µþÎh4Ú½¿Ýíu» XÝÑööéøæôú£ž±8€Ÿö¬þdªçkàú•ÕëK—–®Ï@6›N§ÓºžÎ¤IZ׈®ë)’Jë©´žN§Ó$Ö4=Vi¿~Aê?ÛPñÜ bc&þQËdã$ SÉd*™Lvq2´˜tNP€ì Ðb +IV€ÏTæÏVæææ³™Å¯¥Iø$±„¸³Ù1SΘ´n4Êù|¹Vfår¹–j6V2@žç£ïû-¾¬zfàÖœZÝ·î0Pw"úG5ý`ª½?Ǿïµ~ôö¯ ^£á80%JózÞix^1Æe»n _hž9cÎùG÷Öù'>?trŽ oµ>rðÃ1oßãŸüc» ¸É‘ûãÏoy‹›ÿõ`<æùñí{Øó~Àù˜#GŸãÃïqäcÎyÛßÿä“ýMÄZˆ.ßDŽ Ðaê÷‚}>·9ò{¼ÉÆ¿}ç¡úÒ|ÞÜ¿ìQ²Å!DY)§âD×u}ÆÏñ%5Y•A½^Wcju.K +„ÒúÅ ÍÏM€€÷¦ `çîhg÷þv÷ζWô¶fÏ)г*Sø›žuç<¸{A`uéúõÕ)LÃYOeu¢îóš¦éiõGS¯'Â鯋 ç››ŒÇ¿ÞÜL&;gô2E®'ìQÍ--...V*•ó)À•¤Ñ4m.;?'@FKÀ\&“™€ÅÌâ×S€Sm¯0)apW­ï:à8N9—W¦¡e標<§Ý}Ï÷=,‚LmØ3¦”{°ú¾ßòo@Ã÷=ÏCÏÿÐT냢ßú¡ï·}ßO:N9̯©±ú<шÓpÀtc)0ÆÜ7àLªÏ€Ù<¬‰Èýú­k<éàœûŠªù^­Ìj5pÀh ¢ç@ËCVƒehsô}¿_}>ÇÅCÿZ+.ûzˆ¼í{à!p¦ZšµšS¦ ù½ÆmŸs%/ÚDä>¢ï«±ñú¼9~û%®§tM×5]'qgJ¥ê––J麮}£ ÏB½ÎêëŠOÕ×a}ßyç^ò|æg “ÉÌÏoo÷GÛýÑöKÀNϪtGq©`ô³ÞRw4õº;?ÝýéO§{¾wïŽî¾{öt»ýëׯO + +éDÔ+­i$­eg·ûô´¦Rÿ”öua"àãñx|ð›9oòÖÉ}`m©#Àb ÙLÒ œ–NP€Ìœ¦]™Ÿ] +œ›ý„s‹‹sóóq`n>!Ù)Èf³ÙÅÅÅ+W^¾úêéS¿í#z ĪšÊsœZÙ«•Çy½\.« Yp€WǪ) Éã!ÞêUÆjñëj> í <=Ï›-5?ìÁƒÿôOÿå“}ß÷ Ððà ‡õ+—h.GtM¯ã™Ap8YÁ¼àlÆGEoKÍi˜~ÅÈïÅ4­…Ø`q Êãžr¤%ËˆØæü„w‡ÿÑÃÉ5®½´ñ<Ï÷}¥2ž×p€±2eØBŽþ˜·}Þò[S©ò¦zÝßG|ø’ñþ¤´\ŽÄƺ®i©TФôtj6Õ}IA ÕlB½^¯nüòãùàã<8<|ðàÁÇ“s +æg £ G£mõ¼ÖÛÙíìþb[YúŒîïîÞï[ÝÑv¿ßŸÿ;wN·wî•룑Rý¬¿ÔîvWû£»?½{÷§SµŸ08yúwÞM^Ýѧƒ=ét:­ ÿô”3åû£Fþ´÷üðë~óáææœ#b«55}ׯd2•+W®\YÍ&ÍÀJŒÙÅÅJ¦R9AæâF@B¦½¿æ2mRÐ.Å-€¹lLæâ +ÀâŸÿù•¥@€¯¾úê)¶|±Ñ3ô”Fp­æ” !å¶ÒúU^`rppÀó<ð<Ïo˜˜¨…¨1Æ<ÏkxØn{"úèyc=¯Ñ€†žÏÀÿç¶útà€ScÔceJóù!zžÕÌX0ÔŒË +Ï÷ˆ&µ2î+)~¿Åù÷¸Ò ãÆx"×Ï=Vf5€0®–[~Û+Qæ-#ø¾ßÞlsäˆos¿ÕòùúX!|›]ÎÑWò€jêÐ÷›  á8e-Þ÷ýv»ÝŽ%Ç|Ÿó—#úˆ¼ÍþRG}=¥i¹Ié©”–ŠKɿ躮½< U“©)ÀzÝ5Ù_>xpøàÁ£ÃG=~ôøèprNÀܼªN3€ Œº +v·Õ"¯bV÷îèœéŒF]#s}´½ÝïÞëvûVw4ÚíÝÄIôÄÿ=ï¼wçú»IÒ$ø1µWUþ¤ô—¼’ÖRϬüŸ>>8øÍÃ7?ø€ó·[­·[*5äœsmi)€+×ãÀÏTÔ4ÀÒÒbv1ž>Ó¸¢ªñrÕÜÜÜüÜÌxõÜbFÍh“ +@v–,...^¹òçÏñ=ú¾ßjÀØäž55„S+åIž–™SSñï˜J <®Ý5Zh"Ô•~æ2PõÀÆD=Ãk5èy-Ïxh~衎çyž¯à†ï8NÍ©9ŒBYe:¡eæ4À„iÍÙÀÓ#?Ï®pŽ\é{}pÐ\®7›ëpÿ’ù:b³Ù䉥^D>æcl"°7˜èâX5/6°ÙDŽñ?@àÖ›ÿï›Øl¢ ˆcÎù;ˆ."ç¼ ŒQŠˆ÷>Â& œsäÍ&nàÁAó47ø ò¿X©ûJO%Bõ¹XÓHubP¾„š®iäå¶”P½®Ëª”®|xxxøèÁáñ㣣'3’`S»š¹L±›Ef>s®÷v~6íîög ·ÔÝõÔv¯:g`k­’Y‹S€Ñh·¿t}4º»e\ŸýO?Uç½³g4õ¯_¹þî_ÿõ_ÿõ_ÿõ{$éI*þÉ›Ïðç2€þñ?+À[­·¹Ï7¸²x%[I »8; °´´˜]Tã@'(@VÓ´+W2só™ùÉvåÉý +-“™›Ï\ÉhÉ À¤0“üùŸ¿P &qüÛ‡ÿtà6Ð÷æÔ%„–ã,Þ@Ø›ÊÉuÞ| –]W‰÷MźÕL*Iðxæ†ÿÉÁÃߘȹÏ1Ù)fjµ•©òÀe@)%)BAƒ-W™é2—¹ªôô4©>ûÜ‹çˆ×68pÜÀæÆú½æÃ1¿÷Ëߎù‡|<æ÷–98L q|øð ÊÇP«¹¸ã ÷!"sþäüƒñoùï]à Þäü#>>àcÎ9bÇœs>ÆÖ~s0†7<  ðç÷6–6ð!çï4°Áùþßãÿ‹ ¼÷—_êþOÅ×4-¥åH²Ÿ¢âþ$¤´—j²j½^w«2J ÍÇG=>útF¨2=Z7nª.@&þ3ؽŸíÜÝÝíM`wkiëî¨×ë€%€íµ%#³6¶ûïú£Ý¾µ6íöŒµ^ïN¯wg4ýtÇÿOß}÷ݳú¢£þZæJRL +üÓR öÍN®±ùÁ‡¿ùÏÿøÛ‡ã>ˆo9|s?iKKW®T\¯(PI’€Åìâbf1S™¥sª0%£)QUM›Ëdæ3™¹L,8?q˜€ù¸0I–þ|qñÏ—^¤¨fƒÝz€)%OZ(””˜ÍwÈÿº¿ûQäÊó}á@²’µ›`ƒYlɃ¨5¹#\Ñ>‚ +7O +i1„YÙtÅiZ‹Š5Ù<£¼ÝõÅpΜ1Bò5Bªç/'ã®}hr̦æ4›‹šÍI»2ó.ïêO¨©KË7vùâ¹Xä{yfëT/ÓÕ®*’Êv{}âû{ûþ$UœT1Ž&T1ƺ®ëü¬¢ó­‹z.—Ó Á8‡IMÍa]'¹\«:gˆªâ\NWÕ¸®scÏO~ˆõQa<— $I’ % Äê‡âÁ†žSÕœþöÍûÜÈ£bTŒŠA ¥µ‡Ô ”šU“1ڽό‡N£A)5c*­&0„ Ùækü¶jU‚¥w!&ô>5èÏI™2ºÕ¯¸Ã’ŒRƒÑš¾Ó |Läۄ5x“ßÏyöô#•`ÅÄ ”–X…’ +¡Ä¨{kɘIÙ5¶†ÓÌ·ò †BT +@ÀÍ)àí6äµ;ˆ1Vsæ`".='ÓÉl6Íf~KÀZâÊÄ„€¿pÿà óéAÓ²ö<XòÞ¾Ýl^H¶Ö¾4»m·]Ñì;¿•µV˶?þøcûãþÛû]«ÕúÝï~÷»ß·ZüÕ²ßÊ +¡¿ü¯Š¢(?S„ ë}Á/ªŸÿãÿü/Ïžõ¢îNw§Ë$˲Œx7@žçÿÒ— +o¼,ÂBˆËžôz-C®àÕÀ„•ˆ °‰6BwÀëå(Ý÷߯l0Æñ8ŸˆaP’¢1ˆ“¸Hqœb\€©".‹Ü¨ŸÕš+þÆË>Æõ.~Ä%„ë*BôtõI¹ìæ +ER(’2‰;îbXT’ ÂTŠÏrù¯Â-€îð–}ä?4)á•;j5Jt§Ñ`ŒÒÖ &eqÝìF™r™m9*ÃÑX×þrèŽÿPsëˆRJy Oº÷)ÕYƒ=¢”1³Jé6Ý!Þ0U™"ÁÃ_ FuÃàf&Ü3®Lef•RjÔÈ–ÓØù1ñ?‚/üQ怛B ü¸*@—r˜ïЖ"¥Ñh?9Y)Ÿõ†`å ðV ïö‡B äZ|[Zóà`¿óø`Ï€Ló }¡°·×^[&¢Ý“Ó»vËî´ÍîX²eó{ol_€Ç=Š Dà›>o€oÖ·e[²,[vËn·Z­6W+½{ཱུ_kh-! BÈ{Šúöû½ +B@à üñºøGçŠxN²,Ër:QEÉfQq,ÓE@Ú'D1x;¥è:«…—8yþÏçB¢(Š!Þ(ú€8ä;výàà{Bª„Z¼$¸ ¡ÄƒB)p7½B‘‹œúI‘l—)Äÿ„8ù!Ÿ’/’b¡€‰ºZä…q +cÊm¿ +GTl’B +{[¿ Ä‘2„±(ŒB“‚‚Fa2™ÄÅ¢»{¯lÍo«ºyd°U Î0ŒZ·Qe̬2“5wh-ŽaÊÛkFe÷)uÞ— ‰0ƒB*„R“•æŽém1œÒ°ÄLÆ7í8”ß íº¨¼1 aö°F BJ„Pjš‡CæþÛr Ç|óû/ƒï¸!@0 +RÔKÿ»÷]âþ»Ksâ7öÀ9׸PŒÆ“Ùd6Ÿ.æÇ'¾Õ`rÖ5áÎdÀå€À²,kooOkv:ŸtÛ>X™æA»Ý¼Ðp÷d¹i·ÚíV«Ý¶;­L¦õv>m-°Üü»¿ûÝï~×jýVñ%Ò|ƒ}.0ïü»À£/þÇÿø—g>°€°Œd$Ën?P>Fé4H§#¥H¯°”¾Äü™Òi€Òé%Xs^¿$d¤l"t7¼^õ.×…‘b±‚±¨$H’„¡$o6Ž“&!.ùšÏTã")n—!Æ8‰?„É$äCþ¯OcœJ á‡ðCU…©".òµb!Å)Œq±Ê——#Bÿ³”ŒEWã,1˜*Buyÿ¿_N1ß U:¬˜¦ÉhÉ ¿z×iTc&k4´ÊâÜË")“ŸSS¥”ã¿4(¥¥!Ô¤¦14©énóef|YrÿßnTÞÆqÃ& Å"&I˜ÄÿéF©AI‰PZ¥Uçó_›f½Râ}Γ£Êç?ªþx·Ÿç¼ÍÁ€ Ü2ಠ+ „À @bžœq(IîOçãñd6ŸÏg‹Åñr;øIv €lZË/Müð.·¿u`ç9~»Þþ³Z +d·¸hº + ew~ŸÉ´·2÷–èØöÁ~§Óét:ï]èúo¿ûoÍß·,´Ê¥¿÷žðïî„wBàú1¿7Àÿ¼V„ò"ËhI€ˆ 7 Ë(â“‚è¥úA€H$"Š¢ŠD@¡´( +E!Àjõ‚òÝÿÍMYÙÜt ß5à.Õùî;ŒËîx 7 $I0‚’$AIŠÅp„@˜Ä)œ* œJ¥p*‰q¡H!NaŒ?„©N¥¼ç=Æq 1}È7 Œq±€q!B „8•JaœâGqc„1) 'a2U„b\øÎ€ÛÎ +ÕCâ +€ +užî<¡µ£¿» 󗌲x +¦ð‡Øõ:+3•RC>IH BH¹JÍÒr‡;dÆpȰÃ&«ò~gÊ'ˆÜù_ a’Ô<0”(­Ò!£<-aСsØø“^yöæ÷_‚w  ß x,¸¯BðFGJ@•‡s9˜$¡4šŒ¦³Ùl6Ÿ/ŽOWe@íAÖ{¥µ<…B—€w­w›Î€—°µLë Ýj6×»ÿZÍ/ûٶݲ-Yδl·àï*€fFöÐñ÷Þ{ï½÷Ö)ðÛ¦•GÞ?…÷Þ{ï½÷þ þ}Ú ÿzxO‡Ã²,Ë2pƒ€¼ €t 4HYŽ I§¹X6üˆõ‡9H#„@X¸§è2œá¸)ˆ"×ÿHQ„î +|µÖwß}û-6‹8•L¦RXJÆÞ•¤@ HR4*Ťä†0™J¥’É"Æ)˜Ä˜?òIü#œÂ)¾D<™ÄÅB*•‚)OÂ$„8…= Q.b\À8E"Bå{‡¹£6Þ€1ƒ0*IÉ  Qw%yK0‰ ùî;/¸{' sž>-5Žžî°£#æþß_þé‰Óu†Ã£vކC6úÜ9RSåmJ™ù„QJ™3ÔjŒ@Œw˜ã0‡±#ÆçáÓçG‡‡Ï˜3|òåÿ:újëÃáðËáááSFÆ ã©óäKÇRFÊL Á˜Ýwž:GŽÓ:¬qäPvô%sž2çð˧_ÕjG‡‡_¾Ñ ’Û¬â¶ûø:_€? øQ„*ÆXÏåT5% ¦“él6/Žç'óùÉòhZÖ{¡Ùe~êJìu:Îc{w€––iØ­æ…ößeƒO»ÝnÙ{ò=íVÛîØšÜìXÙÚßßï\8ï-ÏMV¿ýÞ_¼÷Þ{ï½÷_þâ¿,ö_~Ôë¶#Èáp!yd—Q×2B(Âsù…\I/ +b$BiQCi„@„"aA(â#@tËB EàÆÿkoë|íY½þþûï¿ûöÛo¿)âr*ƒ©TJÒz 70„0 S–S) “)a +c\ˆè;. R˜Wá‡Âw„¸€Íb&“x£ÀðïBèZêà ƒÜˆ! Á(„ÉTKB˜üö»ï< p{ ôÐ;•ûµ‡ £[1 £R«Õj5c«V«Õ*Fí¨fÆCU’ Œè:)éz‰PÃÐkŽCÕ ´BkµŠa¥îCãáǵŠa¿ªÕh­bèü¿Œá}ÃÐuUÕu¬o†AtcuC«µ:cüÏzøP¯Fé¡a0ÃýFhí?­Ñ7²) „@`%w·Q0 ׆xo0Ïu o + s8—Ã*„PŠ£ñx4ÍfóÅüØ_ð™ï¥3·(€–æõtZZ¦}\{Z»ÍK ­Ž•‘­;ë°¤€ïý¿p9ó)}o,ˆ?þÓiÀWÉ2Š „ÂK=/†@H#€.ÒïM4B@@Á*p↓x÷ÿ.X¹„ÿ½+¾ùJR0(A˜Ü€Ò²Ç„ÿ{7RÞÇ8…!L&¹"Àá×8ÊëI÷âÇ—LˆJïJR4…£Ä8•ò I±„0Æð”b0Ê×i¹Ü‰ASÉ (Áo¾ýöÛï¾[.7»UUUQºóÁ#J)uÛ³wÇ94† F™é”ãÛt¿!N¢ÃFÃÑ»;~-¸~‚%¯Æ ®’€€7 z€«×Nqa<—J£Ñx:ŸÍóÅñš°–÷ßÊd²‚°¯Ç/Óìt:;M-oY–e}üxÿq3£ÙWåZ­–m·]§Ÿ¦|Ok¶š®°í|¦õWÀ¶ß{뎀9#Y–e¢(J>¿¬òmò&âÑ¿(r;EÜÝŸ +Ãa€6B(}ñ¨Õâ_¢(òÀ× ðýwß÷Ý·ß¼zõò, R*–ü[ЂïÁ $D¥ŒFc1˜J%a Æb±˜£R4"ÁX4åFÑX ¦`T’pò¢»XÏ=Å2$>"$¢QIŠE(E¥@0ôÚÚ k×|ùêÕ7ßò(àõ$3«¦iš¬Jwø‘ ‡5:¦É>£îfο’¢Æ)¡„0Ó4Ír¹l£,RJFc´Zã9ÀGXƒ1öäó6d¦Éï7£t釂 !tÇ4Íjµ/¦0e̬š¬Ê£UÇð#‡‡ æè¬j¾AÿO@É5ý ÷Hß8p@‚^À½þþU¥oâ +¬æÔ\Æñ¸TÌf³Ùd6›,‹ X^ðL¢è*p ÀÞ.—ÇKÖöìvó·|Ï×j“x»½@+s/Ûj5[¶Ýj·mÛ¶dëö2²¶mïïïï¿Ø”åp „d%"þ4@|aR\;p·} À/3R(†ÁªÙ2-ˆ­~D‘'@Èm BŠ"+ +Z€|§A ï_»À«W/¿þï‚…EIˆþÄ-$ƒ’¥ •$•¤d*™,¸Á„°(IÉŒJ& †„°LR8*mHïB(}˜Jââ‡É$”$(IP*&‰$$Ễü3p1• “$J‚pì‚”¢„}þòÕ7ß|Ëó€wVUGïRJ+üÑK¬¡3j>Ùr‡&¥ÔÀB!EBhÙ,óÑÅLIÕ]BNÙ£:¿»uêªÆJÙPwØç ƒr Qn)Z(s†ÐxbêÎ3Fs*üCjŒ1FÏÃ-fšwõtÿ¤@Ðm +^Ð@ÀõXޝ)€7 @Â\NÍaœËÅã0.UF³Éx6›Ï§‹“ã“Ó›p) ¨íZym×Êg›Nçñþž¥Y–¥í}òø ³'köݾ¨šív»m/ÿ3é,WüçyÙêX² ÛÞß_­þ}  +2 +‡Ã²/ø³,J»Î`é@VøF PˆOqlºÃË /§1€×Õ¸É +¡ˆÛBŠ‚ùîX™¾vSß|óêåù3çn%åo~3"î/z¿·qáK7î\lqŽ8¾]à–< £jj&£Œ+€ŠA)c¬Êœ†ãÈ·`¹7ÌmøîÛo^ýÛ«W/Ïž= À”»¢O" B I +že–„˜àÕžx_º÷Þ€ä>·‚Á€[‘v‹RÏf{Rù»×/JPÀÒW_???ÿ·e ðýí#¾$à(cÏêUïîné5ÍFã‰Ã(-BXÀ/D$$Lšì‰iˆËUJ)Oà5J;Üa¬Ê¨Ó8<üÓÿÓq¨i²¿9ügJ°ÀÔ<¢R ¶)¥¤HH¢˜,T3ͪi2JÑ/tJ)sœVeÔaOÿôPWï¶XX¶û +’à5ú„õa /ÛôZ/æîN€xªXÇ8!”¤H¤4OfÓù|6_Ìæ'³U#oî–@¸€]MÓ4Í@[Ëk»–¥YÛþ;Û’3–¦ýù@Vd$‡Ã"ïÀ H»&Á¸£?E\¿¢äeU¡r»}Ðæ&E€ÒîÔàÇ ßR\Eß~óêåË—/ϾzúUÞl’àõh! 1!Æ/=L]Ýà¥0õ¨±úÕËÿj^×j%¤^ž=~î‹|¸Þ“ó°æl Ÿ±£#‡1ʆO¿Ï£'qЍ:¡Ôd”ˆÙ“gΰZ¦ìèépȆÎc¿dÎ3Ç9ü—«ÕœÃ§‡ÃÃn¿æPÊž ÙovHK˜™C&u¨I¶ 1Õí"=Ÿ>ûâ©ã n­[ê5ÜùâÈé2ê>}rxèl=|Z»[ýÏÛMëûx¢4Àt‡V!ÀZ'à…]Vw¬ärØ–"Æ`:žNæ¼pr¼€oA_^Î.7®)€¼–×4m7³Ç«€»»–ei{ÇûJð ,v»eÛÛ’3²¦e,û’Xëm€"‡Ã¢ŒVÈg½J@¤(„A(‰N#R6ú¯(,†8 ¼2àZ ÂaQ EP$B‚ +@ò2À§dY¾i,ØMzm€ß|óêå9€”¼éöûÿµ +\FEàJå ÜØv}ÍïHÂË—ÏŸ¿|ùü¹[ðàVC~Å0ذ[c5‡1æt»løðéÎÑ}öç3ÆX9CÿH't8¤ºQ"„ƆŽþ9c]Êj”:5£Öíökìá±zƒ1Ö«;_|ñlȘó÷mBt¢ÿuŽØGºaTˆNaÎÐéyC ʆŒuknÃègGµ§ÎÓûõÿ +<ÌwMy¡Ä½ïÑh0à .€#:xCÄ9œË©0§æ0ŒKBi0NÇ“ùd~2?öŽ}×Ï’3!AÝ> àÀ®–׬L“Wwµ]k7»÷÷;v>³×ñçüV€m÷G»™Ay®Z-ÛîØùL&s޽Ѧ,‡Å°,#$ËÞ Gn@X q/åe“/Ba!Œ”MÞßò+1”FÞýG +‰ápØm +ñBÀ/þnr^nÔ^¥Î_¾|þÕÓ?}½SzÎ} Ýá&¿á[–åǯŸ?þüåù×~ÜZ ¾i Z­²gŒQÚh˜|%_ƒ™Ûi0fVÍj*‰ãËä%ŒùünîsÓ4MúÈ)¨2¶å0ÊÌd;ìŸY£Á?Ãd&¥U“RLË”ï@Ð1Æx;‹Œ5ªŒUM׸Z}ÄFOM“: j²CÆXƒ±ÛW€,þ:(‚|æOÑè«Å ¾$à¥wkÀWT%¡4§³Ù|ºX,æ‹Å*°€¬Oø íîîæµÝLó óØÞË[Ž­eöVIÀ Á|Hk­æÞÀAKËfµ–Æ?-ûmBŠ,Ëb¸A@ZQåg2 +§Óžtw¯.âiâé<¤È@ /€Bi´¼â¼M(Ì¿‘—BîïòPÀ½ÿè]@n +àÕË—¯^žŸ=;ÞM!x9tÿ;OŸþË×ÏÏ_žýüß–K p;Œ*c V}V7™Ù`Œ5ÝÙÙ1)el§aš¦Ù¨¦R4Q.ŠÜ¸ƒ½DÈ6Í5(5—ËÞØ«RƒUcÌd;½!k4h•™†iš¦ù›fòM‰žŸŠ +a´À¨IMfrâ*c öèÌq{G5§áT¾ö¼ ¬Ò*A!À\θMSÜÔS¼8 ­€p'‡¾cU…0.Eôþx4žÍgóùb~ì¯ø—sÊYn ,ø7ƒ…Bš¶›×´¼–mtÛ–få-K{à ¹T­ëpÏj7÷öìv«mÛßÒ2.Ö¶ +Úo³Px1P”¹HÚ[ä  +…1‚øÊ€6„ør<9ˆpã{ˆáB÷ ]R7xù¼|xùòüù³#Çqîüvý@àŠáßyŽŽŽŽž}ýü^ßÜú‹>«ÑÓ4™¹ÓØúœqsÞFÛÙ)cXL‰o(!Ä [NÕÜ1Ýüþ¯3ƨi2ÆØñüÞÎ5k˜;&«8Ô]%È׃Ã8þ¬Ë–K*¼¢0t(«šUÆvœ‡l‡±êmóÿüŸkpé`¸!H`n æŸV!€p·ÏJÂ\.§c5—SR¤4g³ùl~||²8™¯°¿:Íl&Äl/*€|~7Ÿ×²­O:íÝÝ]-oñŒà +Íu4›Í¶Ýä?Ú­Ì=ËnîYv»Ý¶íNKËd4MËîíÛþ‡ëíU²ìñRÀ2 „@HĈ§Ü*€‚ÐUÒ>(JZ² ")HF²Äp8K ‰W*Y¾A¬r€^àóW¯ÎÏŽ'Î-ø}ÕÜÌ_à?\|ñÅpxô”ÀÍ~w—n`ïöW(eÕ*{äPÆ×ƒ³C}ȪŒRÓd¦¹Óh°r +¦âEo5 ­PJI…[;¼ÀûøJ©³å0nð»Óš|€i2Öh4v£Ý¡IË´LÈ_¹ ¦:ÔÝ?˜A©C«Ì©1FMZeŒ;¬çÏð€[Í… €àwr-Á|¶à^P¸ÜI@!T1†*VãR„ô'£Ét1ŸŸœ,Ž}Ã>´²2Àºµ¼¶kå5-ÛÚï<¶w5ŸvZ×)¾ˆÿh·²÷¬vÓr@§¥e²Z^Ë6÷mÛv/¿‹û­Rd$‡EɲŒÜ …D!Œ6^_@Š"#”¢¸LÊ€Ð&’‘¬¤Ã €¿ˆ B¢(z;‚]€ÜÆà[¦Vm¯^¾|þ/GC‡RJ˧§§§gg§§‹™côOgõJÝŒz¤Dz³ùÙÙÙ˳³³³³q½VŸžžž½xqz2sêtxröâììüå˳³“yŸ’ÁÉÙ‹óó³ó³óÆÃúéWggç/NONG„Þx0z=VÎǬ4Ž³ã¯Ž¿âƒ3Ãùúëççÿv¡ø& °ºAŸ3V¥ô¨fš&_í³uèð¸œ1ÊŒm§’8Q.]ã.o³[î ~=¥ôh‡™”:[ŽY¥”™Œ9Nc§aš&3™É¸±_ƒ6Ìr¹L-SR$%Ì(c´ÊË ´ÁªUÊŽ¾ U“šÔdÙq»õùï¦û…€×ý +€ þÀ•­À¼w`-ÈýA‚·wª‰\ç`N…RÐ.à­.r(2E!äI€ôr¦ º£<éH¯ +@ÃîÎß´,È€4¿ÝJZ _…¸X)¯&xËv@¯ðÍ«W/¾>2 æ;§gú.zƒñÄÀùÙ‹³³S'§§g§ç§çç§'³^NÎ^œŸ¿xÁPœžŸŸŸŸŸ1®`X?99=;qrr:"%Ý^½2˜ëýÉt6^ÌŽOŽOø¾B?ûçç|àÛµàZPw£”%Ã0ôŠ;ˆkü”Qj”–¨a0jœ‡Ür°”ÓuC7Œ’QÒjè†Q3hÍ©3Z3 C§÷©A b†QëSj­ƒÖ ƒ‡Æ¡„„èzNW1†q)¡ºQ¢£FkÞ7R3*Ôý‡µ5Œ[óÿÀ*ïõy‡;~-«Áå›V­À«NÀõ¤­ Ýš „ ˆs8§B˜ˆ'$©4§Óù|ÎÇ–Ž@§>´5ëeÀ|~7¯i™L¦ew·µ]KÓ´lf¯óøÀÊhÍξÝn6÷n@æže7-‹·uZÙ¬–ÏkZóBÀÇl¿Í!€"£´(¦’@Šò3%ívï!ÞÒÃ…§kðy`RÄ*ëÓnÝqsjìÌéÖJÝJÍqè#Çé sú]6tœþµ/Þÿà-SK’Û ìîðLAy»ðz+ðå$`0 H·†ÂÆ9¬r?€Ò`:žÌf³Ùl²˜Ÿ\Y°-‚.øh––Õ#ÜÂg W)€ókP.pv2ïѼX€+VÌÇÌÀñÉñI¦`²áŸž¿|å뺭 à%ô ƒRêlQƒRÃ0xUð³-fPJ©ÁÍÓ,ÂT‘ Û¿¦ej2Z5MÖ`C›y¤bƒRJuÆò­^£”V¨A™Sf&¥¬ñp‡º‰2)—ËE s î^ñ¾÷Ï5*¼GxÇxdÜèÿXù.Ç#) ¬ö‚ ¼ +X-¹Ð +|U0(HB0¸9PÕ\IǸ„s0!m”z“Éx:Ïg>CÐãããcß"ïv+D!$\jv€•ÏkZ6Óì<¶we­}%Zí¶÷jÙÍLfÏnYÖ +š–ßÕ¬ƒK@¿Õ +)²K€%«¤=„ød?âëBÓé4B(Í¿0-ŠÀB›@ò&Bi$#EQ”´Â››ðŽ`rÅ„ _Wà ~à~¼zyöìÈ¡Üàçôôôôôìød1éåjÓqÍèFãI¯¤—z³ãÓ³óógçççãšaŒNÏÏOÏÎÎÏÎÎϦuB‹³³“Ó/^œ{%Ü;9==}ñâŋӜZÑõÓ³Ó³gççÇ‚KÝÑx<îzõJwÒ¯tÇÓÉt<žÍf³Æ6|úõù%ܸdy(­|¶U!F…jP“R³±E)%dÈ™i2³˜Lš¸X,–ÍrÙ4©Ù0w V£”´B© +¥”>ìÄ ¤bðÊ‚Á(5c ƨÙ0ÍÓß<\6ËeZ%ÅBJåÃ?êÞƒ\üÓ +5)¥O ºt¼â¸š—÷Ýh>àµP»@n€?-»Ö +|„ÛÆKº^Â:„q)BFãéx:™ÏóÙ±Ÿm¿o\1¿»›×¬¼•·íÎã–¦YKäe­Ý±Û—`Û-ÛnµmÛnµ9ÚÖ \†Wàí…{ Ä}·êD| + ^†Š¼™Gn0íNÿ€•¤W¹ +@á@(x%!¯þw7|¿€¯Ž†ŒÏ¸/‹ÅÉ|>›ŽûX7Œ_ÕûƒñÑ´«ã’3;>;=;ñâìô|f”ŒþéÙù‰›˜ÖJ¤¿89??=;?;;9™ÖsjÿøÅÙÙù‹ççS¨:¬Ÿœ¼8ùâüìtbàJo2&“q÷W´b”jƒñx<Œ§Óé”B¨sôìùK«àn{(e[Æ/ ” J‡ ó°aþš6åÄ*)Ëå_—MÖh4>7jɤ”PJ ƒ_yúpH à Ëþ‡VMÆ Ó¤æNÃl4ô*_Äç‹Åbº]Äû£k%b†—l¤O++£’+âÿબÊ€ž”_,Ç„Â>úÿ¬p§NÀŠ{(5¨Ñߢ!}Ä£”PQÚpFiÃ,§ V‹„“š¦yø7fƒQÆtï¢WøF©V1 Ã- ZùGJÍÆŽÓhPÊL³Á¸àuýÃr™b˜„ÿ%Z¡´B ǨB)¯/çWÞbákòÿ+»ß¥A‚Wp‹€e#ÐòQ¿@àÊ2` H<³¼Ù—0ŠGŒÁx2ášl2÷¯óßÿW|“­ÏHÛµòš-¯Y–ö ³wÐik²ÖêØíÖͰîeÚíÖÞÿùÁoùý׬ƒÛ·ľÑìm€’Óòž©÷¦ $£4(ҢȠ æBrXt ˲¬È@ ‡=° ÜF¾9,tG\jrp䘄BF£ÑhЧc–€F½7Mgóù¸ÛíM'§çg§§g'g'óA0===}ñâüôüììôxÜï§§g§gç/ÎNOçƒ~wrz~z~vzvz6Öõ«Œæ§/ÎNÏÏNÏgýn:›Í&“Ñh4èÖKq½?9>?;=?999¡”R6|ú¯ÏyðÍ·>gÐnozÄ(¥l‹¿4*”š¼(·õˆV ¶ãT)ýù¡™J0&„˜fÙ4ÿÚ4i™ÒƭЊávð€Ai¸%=Ji™¬Ñ` F)i6ì¡Y­š¦Y­šf¹XÄI ãŒÒŸÿ’RB\n0ƒÔ0hÕ¬R“RÇ |uøUý¿Á•à ¾ ; Jž%HP +1i½ +p±øŠN@A +ºÃ×mJH UœËécœH2>OdzÙbvþ¶™ ¢.`WÓò»»ZÞÒ´™½ýN+“ÑÚ×ÀÞ·í}Û¶î=°Û­½f»mÛöÁ¾å`¯s`|ܱ;Î'·x¾eY"@.déM_€B(-Ši„C^À¦ Ä4d¤ÈÞ2Á¥àÖaÜH¼ÖwyŽ€/Ï¿zv4d„Bf³Ùl:õ{Ý +ĤÒíF£ÑhÔõgóùbv<_œÌç‹éx4ÏOæóÙÉ|>Ÿ/¦ƒþh:›/fÇ‹ããÅl>ôG³““Å|>›LkÝ~¯;ž-N‹ÙÓÙ|2ŒÇÓÉd4ž ÝzÝ€z}rúâüÅ‹óóósÆÛ>ýš`i x[À{ŽV£”mÑ•_Õd[Ôù¼Á\ŸŽC§0)l—ËfÙüëOã±á–ÛÀ;¤nGðCgÕXX5uX£Ñ0Yä”4>?l°‡&3©išmVËÛãŒïPjÔ¨›5`^Ò*_+äUço®»ÿ>Óú€Ûç–Ã@nPx}nÀË×&A¼˜!xƒ€ÐÛ蔋ƒÁx<Œ¦óÙl:›O—ÇŸºoå †BÂ…`WÛµ´|~7oÛmKÓ,MËdöìN+#k­»u-nôs°oðùÿv«éàÀÊhÚ®¦iÍÎÍ·|òÉßýy!9-¤ð2 W| ,¸ý>éH:d ˆiä¿ÄŠ D÷ïåM>b¸€,º !·€ß Ëiào¿yåÆçççç'§ªª®Zïu»½^0šNÆ£A< ú½Áx4ǣѠ?ŒFƒÁh:G£Éh4GãÑh4G£Ñ`4 F£Ét4žŒGãÁÀéõû£ñ`<šLÇN¯×uêõz¥„qÎ9=?qþâÅ‹¼Z÷ìùó—þFÀ[ƒÇ=CÇqØð¡ã0‡ý#;jü‹ÃŽ}è°gCÇqØcÛ¤HÊe:4͘ã0ÇqÆXŽ1Ö­±!ûÒqž:;¬[:Œ9Ìqž}îìvŸ~Ù:ßÀØÑÐxâ ‡ì7æ¡I©I¶ ¦qÃa”1ÇùÓNãsgÇaÚãÔúÌqž:OXãé‘3tWúð~`9ví›ü›>„e' ×¼Ð +¸0 è*B€RNåûÁTX£ñt0Ígóùduþ¶éýÕl¶ò@B€¨iV^ËkŸxhÚŸúp¡¨µ¿pàuZ²f·ÛÍfÛ¶÷íŽme¸hv:ûüÙÿÉ'Ÿ¼ÍX„äÅõD°‰BžïG¥Óˆ÷)²,+ +Å%6o +J#E–‰> nA¼èMÞ>;€ï|èRJ)=????™9PJä1*õz¯ßïÆãÉt< FÓÑh4ަóÙt6Æ£ñ¨?L&óÙ|6ŽýÁx<žŽ'Óéx<÷“ñh0O¸àôûýþ`0žLÇî›û½~¯V«‘R®6žNççgggçŒ16œ<{þò…€ïîÐøCÏ=ÆCF ƒ” ÝÐ’Ñ3*FÉpz”gåé5ŒŒÈ=ýt]/R*ý¢RÒ ÃÐõ’atÑ­5V1 £d]ã¡Q§FÍ ]‡Z¡F¥Ö5 Ã0«3J Áº®ç°qI-†^2 ãƒ~×xÈh¥b” ÞhT˜a” êÔ Z¹âHÁÕÞz¯ +°2‚KK°å4`Àõÿ^î^? (’Û3¸VÄùfœÓu\Êa£[«×jõJ­çôúƒ~}yÖl<ò@…K!€Æ @¬¼m<>°øó;cÙ›Ykï·¯ÀêxhÙû¶Ý±µŒ¦iy®îl þV@Vd”’¬( +¼®)  þ#W<àæ>ÿ•@‘B²‚@Ø „…DÂa·±´¹‰€Wà3®HóF¢[€_pÁ{vvv6§9ARKF­Ösz£ñx<Îæóél:›ÌæÓÙd:›/ŽONæ³ñt6OÆ“Ùüd1ŸÍ§Óñx6ŸÌf³ùt>›Ï'Óéx>›M'‹ùñœÇ“ñd<Íf³ù|:žŒF£Á¨W¯WJ9£fþéùùùy×qœáÓÿõüùù«%VU€k à¥ÒMê¸ËÀ™þ9¥Œ²e¥¬Z­²Vb¬Q†)“Ó¬ò`2jü’”Ñ­Qʺ”QÇi2öˆRÇ©Ñj•RÊvÌcUÊæ|h²†;áǪnYF¸±8OlÕ(Ÿûe¬æÚ›ŒÒƽÒX’Ö =®K*ïã‚A)°¬D%> ´´R–¾Và«BÞLä­6®8RB5‡s:)c¬ã\<'â 9}UªôyØy +— æ¹o¸eÙöÁ?tš®°ìŽ%Ëšm·Û-nröä]®öíæ¾ MÓZƒÿþï;¿ït:Îßÿ}§Óé¼ÕPe<€"®(@Äðé4B®#ˆ×à)pŸYA)ËNàôåØT6Q¡«¡ •P®nZ/òÀ˳¯fG³Ùl6®@IÂF…uÁh<Oç³ùÉb>ŸÏf³ùl6ÏçóÅéñl1›ÏgóÙd¾89^ÌæÇÓÙd>]xFr‹Ùb6[Ìæ<·¿˜ÏçóÅb:ÏçóÙ|>›Î¦ÓÉx<õ{=V+Uj©OÆãñÄqgôô_Ÿ¿xùê›oÖýVóŒ×€QJ Ó¤Œé÷÷ÛaŒ™îL®Þ` š‚…b‘š&¥äç”P³f +å³”¿Ä fš”95ÆjŒ±¶cš”χ;ÿÐFƒ¹…ýrœÀdfRŒ: Ó¤ÌÙrsç®t‚žðª^wÁ@ ð<ƒþž`@ +ø[/¸xpc†`0(¯@„¯À¥’QÒ1.årP’"^€ºZø¼ºÿû·6W—ªy˲¬]˲íƒN§©i»šö cÙ6€›°Ö<Á|µý}K¶öÛífËîXÖ~§åÀîøöÚ|MØ'o;ÚH‰xë|DQä €ÐÒù/¢(²¼©¤Ã>!EI#YA"ú™–}@n (i€ $Š~æÃÊB€o¾yõêÕË󯞺èõz½nHWê½þh4OfÓÙüäd1ŸŸÌÇ‹Ål¾8žŸžœ/ާÓÅ|>›/Žç''óÙb1_/æÓÅÉÉÉâd1Ÿ/æ'óãÓÓ“ããùÉ|Æ[JsNƒéd:'ãÁ W«TX·V«{üèéWÏŸ¯àÖ`ÙP¡”šÌd”=üÜaŒ±†YeUÊ(3«LwvØv2…W“@”RZ#„V+UJ¥GŸQJ‰IÓÒ!ãƒ?£Ô¤Ìd¬êòM¶í/RŽä ,Ò*£ŒÑšN)#”2sÇd”m5¬Zýœ5LZõHä;<Å +Áàr XXÙ©¹‹<ï ËváõVà`àÒ4 ? JÁàu­€¸¤—J%‚K¥R.—HH„0!TW§½jÞóÀˆKßpÛ>ø´ÓÒ4Ë@þž€½5ìíí]ÀÝj¶l[³ö;Ílv7¯išfÿ¿ûûûŸ|ò‰»ø-€¼:dÑ#_˜vŽ „Ò.ÜÀ¦,#„²¢ YQPee€Ï)ŠÂ׎ð>#À§’eåvðÃzð›W/_ž5{:dŒ1Æ}µ*ñ©uû£ñh<OÆóÙb~|rº˜ÏÇ‹ù|vr|r<Ÿs0ŸÏŽ'dzù|1›ÏNæ‹Å|¶89ž/ŽyÉñÉññÉìø„o™:9žÏù{g³Él<G£z¥Öïõz½n—u=p¾€G€îäÀ3Ÿ2ÊèÃ!WéŒ=¢”·ü2ýIcg;™*2!e¾ã—V‡ñ)ýc;ƒ6ŒÒÃÏØc;;Œ1WÞ3æ8 f2¶2¡åò6|1¦´ÊXÒ-JMÖ0Í'‡ ƒ±Ò¡÷ð?ðòþ/®k@Ë@0øÎr=¸›äUwnx=py@ +’›/ð¹p$)ÕF©DJ8¡$ÁL¨0‡qny|hÛy bè¢#ˆÿC§å–-ÛÖîÉšm·\ì¹woï"2ÖÝjµlͲ;ͬ–×vóšfw:Îþ'ƒýOö÷íÎÛ +€ÕVžªB@V€à(‹bQ#^¿X¾!Å ™+ pÇ?F + ¼ÌzB° +ÐJ\7ôƒ¿ˆK€ó¯Ÿ=í3Æë÷ûýÁFaéWÎh<Ïæ³É|6YÌO'§‹ÅÉÉb¾8^,NÇó““Ùñb~<ŸŸÌç‹ãÅl¾XÌæ''‹Ù|>Ïçó““Ù|~||<ŸÍÇÇ'óùñ|>;>9^Ìf³Ù|:Ï&“Ùl<9•î`<8½^¿ç8Ž3ôð-º=øƒ·N“:” g8¤ûŒu?wzì3Æ;b5V£Æ?;CŠ ¥„V)¡‡_Ô¨Ãjìs†N·ë<|JcÃ'ÃÃ/ŽÚu˜Ã†ûŒ1‡9ŸÕœZ­{ÔØqœ†sÄ=r J Ƈݧ~DÙpØï3çƒn:Ôyrè8GýãŸá,—úŽð@Ðwy½À@ °4îÁͺ®AËõà•-¸pEÐc—@$!Tu½dÄ(éXÍ©ÞÃë%½´<—pyȯ:.2²e·4Ù€eYÖžÿøû{wµfÇn·ì¦•±ìN3£ñ4¢Ý9è|²ÿI§³ÿ‰ýç€,€ŒÂ(Ä¥ªE1ímôœ²â­á˾dYAbZQ’QX‘‚€ë*žV”Mñ-ââ&7áî`ÀŸ¸"x½ÌðÀËœ?æ*€~¿ßº‰\¥ÖMF£Él6›Îx¹ÿx>›ŸœÏçÇó“Ùl>/æóÙ|z<]ÏçÇ‹Ål2›-æóù|>-æ³éâx>ŸÏæ³ùb1›ÎçdzÙl1?^Ìç³Åb:›Íç“Ùx:›NF£^½7£Á`0àøjM¼¾Ýh)¨¾8üÒ©Õºë3æ85v8œŽã¥ÝtŒ9¸xŸÒ!F‰ô)c5ƒ9O6ü’1Öí)cãÃ#ÇyÈæÔæ +ÎѰ^ù¬[1Œ>c NWü1(­Ò÷É6#e62ÇaŸSÊØÑðÉ“¡^ûÌés†ÆðhxD‡U~åû«"·Ëǧ‚«8>(HÁ@p¹@Q^t'y§g +ê[~9X*€˜½Ü +¬B¬—ˆaR˜BÕœŽÉ*p ¡KÃ@kø´­åw9Úš,k-»Õj6-Ëj®Àß`¨ñvAÛ’ïY¶[Üå8Ø·ömÛ¶;ö'·q@@(â¾Ò¼û ‚à@Dæà75â:ü YAe7ÃbZQî(Fв‰dÃHAa°ª*HHF ”Žxày€4J#ùºÀ7ðݪàülá`6›ÍÆ“®š«t{ƒÁ`<Ìgóéb2›.æ‹ÅŒ_ãél¾˜Í&³“ùt:™Ï³Ùl¾XÏfÓéܵ?žÍxÖpÂk³Åt:åiÄÅt6_̧óù|:™L¦“ñ ßcƒñt<F£‘ã8Îѳ¯žŸ¿ò–~·ìx}Ón@~Xãðÿýÿvö¨ê4vÊ·QBeÌl0Ó$)œps÷å†iîܯ°Fã°ÁÌÜi˜UFÙNãOþ¯'{DcŽó¬vH¼%?”™‡ fš¦é|F+„1M“’œY.–©É3Œš&eÃ'ÿןt‡=bl§qØx8,{vcþù?ÞÃ#ùú\ðïXͼØ]¨È—ƒü³+ý–ŸÌ½äÂ]AK¥R 뺮ëÜ圊K¥‡7(€PH¼ ž!€lÙ­¬,kmëÀŸÌì¶ìvÛ¶dÙZ4»ÓY9|lüqë÷o¡'˜iä¾x÷@H‚ ‚(ŠaQÜ$`zÓ‘t¥ÚÜDeeY‘e%FŠ¢ð(›vF?ó’€( Ü€—ÅUôdå†i ×¯×¦ÎÏžM8&“Éd<íª*é ÇýÁt4šNù†¨Ùt:MçóÙl>™M¦³éd2›M'ãùt6›º£ãÓéd6›Ìgó™[7ô~y6Îæ“9_89Oç³Éd:žL&ãñx2 êýQ¿ßïÕëu6üÇüüèÙ×ëøþV¬ ÿ¿O¿¤ìQ×á¨S¡´JîÆÞŸ›”\HP¢B‰YelØåfŸÜ7Ф”RÖøÃáw*”=â¾¥´ºŒø¹Õ­u9E¨IÍá–Z%¤hrÏ V¥”šìð¿ÿáp‹W F©AÝåcëû?‚A~»—<@p= ï¼Ñ?à† ÁepÍ8¼ìÐÆC€ÀZà2âÂVõR©ä^ÿœ +ñDœ/¸“€nÐS–¦eeËneÿ{+ðÛõû¿2ng-ûÀnÙí¼,ïuÚZfw©ìκ+øÛ€t¹/Ä€B! !Bb8 +‰"Ú‚«–@m*Ëî?Þ¤€ì•CHK(Š¢Èa€¸Ó‚„¼©@ž¸r=Èë×?øc€e+àËó¯Ö0©C\éŽFãñ`4OFãÉx:§³Éd2›Ž§“ñd:›Œ¦“ñh<žŒÇãñd2NÆ“Ùd2§ãÙl2ާãÙl<Žg“Ét:™Œ§ãñh<™L'ãÉd2›ùrЫ%=‡1ÆÃápxôìùùËãÀo8 Xeóä_ÖØ#Æ>w†A+”z—’Ò“– &é:!„üÚd õÈa¦i2Ӥ̤UJ)küÓ?ýái…²*sË•+Ü׋R“Ò“Òj•Ö>£€ižªå"€irã_“~yèlñ¨Ÿ9 õš) $¸ ¼yžÀ¥ý¢ß|Už-ðpe+ðå*@Ð_ˆE¥`PX뀪9Œ±^Òu¬çTªÐECsQ ëº®û`ûàC€µ»»›·¬ùo>ܺè*à\«Š® ^P] êàèPÞ1)5éå`ûZ\Lw b0øŽ ¬ª«2ಠ…¥%h0è@àB °æ +¸¼¯ÉMº_àWAþDâE⯂8‡s0®×ë½z½Ûëvû½þ ·:~ìÿN¸ +¶Ýâ™:»m{ + ›Ñìü½ XKì-†fööí–ÝÔäÌ^§™Õ4-oik¿Óé¬Õ³Ùlöm€¬È +¹x(‰ á0A:-Š¢Ùt¯?à¶`ˆ·Ê` €¬È +÷RX–³Š² D€YD«b¢à¼öà;¯^žýëì Öu çJF½[¯Õ «¹œNô1HIǺžÓK%R*ñˆaTô’þ”*¤Dô’^ÒKX/•ô’^"¥RI/• £T*•tBÜ/Ñu£Tâ¿m”ôÆXÕZ­Þ¯WJ%>(çàÅË—ëv wÜ äËøP½:ð`^RøÃž^¥¨«®ÀÝBfòæ?A!&¸ |‰ûý­ôÏxoYVò¼í]ƒWVAO\È8z„`P’$‡PÅ9UBIïõœA¯7Æ£ÉhÔ_ž;(»u\äå̵ðŸL“àœÙëXYm×Ê[ZƲ;ßáõCKÓ´¼õýpuºZSÜößÍ"EY)¼ +À^Ë€Øtrûy%@i¤Ü¸$Üâ@.¾z6d]ÆX"‘HÄ¡Š+µšA»u—6¤8„q˜H$$)žˆC^†BUÍ-ÿ>‡0ÁóFñ„ªªBsªšSs9˜ƒª9&xkyÂD<0.mH°Ôc%£VÉA˜SUUU‡ÃáðhöüùËWþÝ ¼x `²¿yòO_ÖvÖ«s 7À.åþéøòî +À½«^ÿNРĽ-~Âʵ?X>ÃAÞá5?‰¯üp÷­ñ‚€'ó¥€ ¼ã&òü³øûü«Á.lºÔ +|©Ðý!( ‚ D6܉`Æ!„’ëõzÃ~0Œ£éd´<ë +` '€m»Û»ìvg¥,[“3^pϲ¬½k ešûvÛn>4;V†¯z`ÙNç·y-“yð@ӟχG£áÓgϽ­ß~÷½7 à-6º n®|tCp©ž^Wð‡B?Ãy_~p)þÝ«yB àïXkžA€Ûê zÕ~!Êõü;WÀºvàB@à +Þò@˜€qI’"A­÷zýA¯?ŒÇÞ£Íû«àXZž×ñ³rF¶¸!XsÏZ%ýšÍf³ù@ÓhÙZFÓd®¬ŒlÙ½¬¶›Ï¯)€ ?ÙL6“y €çË!Ë2W¢«ÄwûzÝiàȪqèJ((,†P^v“€<@á0@JxH{í@¢ ˆ7‡¯_ÿÀ7ƒ|ÿ½Û +üêåÙWÏŽX·ÛýÍÉÉÉÉñqJ 5Wm¢_#¤ú@bM¨žÀê x×ýrzîW“ÉŒ ‡ÃáÓÿõü…¾>€Û$À€›,¯%ÿúB'à—7ô¸!@e™–¼…ÝKîíô¬À3ýâ½e€÷vÏìÀäUÿ¸-¸p©È}–_êôÀÕIàB@`¹<|Câq‰;K’$¨õn¯×ë÷ýÁhíøçvý +`­ +àY|·íΧ=MËkšfÙY%#[6¯äíYÍud²ÙL6›Éf´l¶ÙñpÐÙËòÕBšew:[™Ìòúg2Ь¼•!€"ËÜÑCFÀ€ai„Z@V¾ÐMfQØÝ+ÊË@L/«Y9HÛ rp{ðz­àì«ÙQ—1ÆNNNNfÇ(%T¬^€OàK +`=PW9€?çê£ùâd~rrr2 ‡Oÿõùó%üÛÁo¯úrŸ_›(&.䮪|y{ÀÍïw–y<~¹ÖsW  ¼ãv® ‚ JÁ€ä®å~Á‹ðF†=.Í\ +z1‹k* IŒÇïJ’$ýDÀõ^Ïé÷3Œ§ãU`àfØV^Ó4«%g×мÙl¶ÝÙ·í¶öÈ{NÓŸøØÊfVGV2òÛ×Ç!EF® X„6Aˆwó"Q ‰)®öws€øvá5(ùõF „E¤,=×¹öƒóêå˳¯žŽY÷³Ï>;===],zp#õ¥¸KàB°T7…ž'}.—«Of³ãÓããããÑ£áÓÿÇÀ7>?×wšðUœk«]•¼Xxzk`Ã{b~"£Á@T’‚@@ +Ä‚B Œ +1JÁ˜$E% c|˜'(¨ ’$HÉhL +BIŠÅ‚ +±  ‹X4 QIHBI’ $E¥`P’°• €Á¨$IïQ)”$)(y«Å‚« á`0*a,*q;Ѐ¥d@ŠE£X  ÿ!"E¤„0.I’Ôn·×Œú£Ñh<L®Töþô¯‚[—àÛ3ØÌd²®ªÏ<ðp¯Ùé4³œšõq§s`e3YEYª9óv&‘+P„û€ ÚDá¤EÞŒÖî?â¹ôça(Ye™óJöÒn)0B·†?,sß}÷í7ÜèùW³£Ï>ëv»'''''ó!”0&º{½áV +ú@âjpSà¨b\Ÿ,‹ÓÓÓÓÓÑ£áÓ]ó}í.¸¹ À p§*@áª$àzàŸ®UË`ccã'?ÙØ"?ÙØØØ‚$ý„?»ƒnŽO’$é'A~U%oçDzHè-í½÷!ðŽàvúƒ‚”–ÝzAI’‚”$)ø‰ûP„À;’$ñVŸ—OO.¿ ?‚’ÄË”?~¾#B$(IñD"ž¤ˆ *íuëý~o4ŒÆ£Áê¬ ï ®ÀãÎ^VËkšö;Í€æºpÀÐìξ½ßÊÊZ~WËZ/P¼ÛÿvæÜô¿,ËŠì@!YAÜÔ“‰Þà^­‡¼øÇŸüKÞT|p@Z ƒ•n/€(ˆé›ðú‡^¿Zì|õì¨û™œ÷¡„K:¾«À U€»ä¼“À¸¤×§ó¾€~8üãðéÿz~þâ’)ð¯ï@€»ä +øB€ý˜*ÀM«6c0•¢R1c0‹FcQIŠEÝá_I’$)*E¥˜c©˜a*&B@ÂP’¤Àò3bÑX4&ÅbÂXTŠÅ`,%‹E¹4ã‘Ä1‹¥°”¢Ñ蔂?YÁhL’$Æ ŒÅ`L’¤h,%¥˜ä}#’ %)ÞØíözÝþ ßŒãñ5 +À€x3,MÓ,+³®¬åÝ÷å + «Ùûö~3›É´wšY+ˆf§Ó9°d9«d²ÙŒ,+rF‘³om‡K")pW_q€UÿÈHAaw(›2W¢˜^SŠ¢Èá°˜F"ð¶£4B( @$$Þ¢®XøêåùWÏF;Ÿuyp2ïC ë%ÃÕ¹¢àßYX\*a6ž,NÜ$à“áÓ¯ž?á[ ʇ¸ |U€Ï¯­àÿ€*¼|$)úî»’c0™„1)*‘ØÚï Áh0è6àÇ`,Š#©d¡JS±  HQ¸ù?B(Ea4–L„qSÉ$ŒÁd2 !„©„PŠJRL +HQ)*ádªXH E(I17`T’xëO !ŒEáF +&áê{!ï¦Rî£Bž¿ˆH?‘qIŠRP€´Þív{ƒAoÐŒG×W”üoé<îXÙÝ|ÞÒÖдÜ`€fS[kÿS€¬Ýé4³|¹¨Öìt:[r&“Í.³€™·|–G–e9âú€€<EÞ¸ò]Ä€~¦(ŠœE”õ•7³Š‚Âa!( +ò‘ Šî¦Ð«[_¿¾d ôÍ«—/Ï¿þÓQ÷3ÖírG¯” .•r¾³LúªðUx5>£YLt\ÏæÇ'''''ÃáxøôëeÐÝ âuÝJ€7QËÀ›WÌ‹—_uÿ‘Ä¡“0•‚P‚q +SIa +§R©T2%¸N0…1!–R©b1ULA“bâˆûÒ»B˜‚<ØJ&aÂT*…SÂN%½?4•JÂ8I‹…b1UHAcPÂF%IФ`@ ŒÁÔ†)“ãÆ8¹-R)!¦R)Þ‚’$#‚$X©wn¯×ë÷û|×Ó°ÿ[HÄËp·}{ÐvóÚ®¦e39³\ €½ƒÎ¾}ÐÌÈš KÛÕ´½N§c[r&“‘3Ùl&“Í(™ÌÛ× ,(ü.ó¾@!$Šé4ÚÜTPØë½ßÈפÈn@Q”l6íÙŠ)ÞfÀ4JVQÒ"€ì|E@èÆa ×—ðêåùW:Úù¬ËvNNNNf3Â\‰êxÒ`çr»/½¤—êãét~r|||<}q «Q€[ðÃ]rpYÜV —Æbü!„¦0NBSñ2Æ&S©.`Œ“‚‹Áh̽»³x±X,1N¥b„Gp*ùƒCˆS0•"*†I˜Âc\(` ‹\àïI→D¶ËÅbã"^~å»\I(„b «)œÂp¡€1†…"Æ)˜Ââb±ÈóB$"IRpCÞ„x¥Vg½n·×ï][´íß¹† @ÛXšµ»kiZVÎd2ÍK9€¿åQ€¦íz¯½ƒOìƒ=Y¶ö;ͬfYV>¯5;Ž­­Š€ÙL&ó²"#Äë€+F› +aÅPØä÷u-À-›að¾@~ÒŸBÞ2 ”æ9€ÜÀà–V`¿'ØW:ê~Æ>ã@“ÖI¥VÉ©pù‚ª_ܹ +p üd¸TªtGÓÉ|1›ÍfÃ?~1|ú5Ïð*àww˜òÛ«þÀ5€·Tð¥SÐ 8‰90Nð÷%S +¸¤(”`*™Âc\(â¤X,‹…TJ +HÂÆ8…ñ‡|*æ0Æ s)Œ1.àb±PT ÆŒq (¸X, ÅÆ'U qÒ H¤`P‚0…qÄuõ,p±ˆ c¼ÂEŒqªà@ÜØDÞ‚‚dÔjuîÐ0èúW–mûw@D!tá´Ûm›¿<`YWZëà +ào/*€Oìëžl4³ZÞÚuCÛ«¸ù‚·n@–ýH#´é]ápˆal®§8$#BÊ&€’å{€Á¦¢¸@iV²?S€DÑ€¼’|O Wa¸® è2žý§£ÏºŸíL&“ɤ_×õJ­VÒùóÝ{ý¨*@NÅê%äÖÆ¥J}ÐŒÆãñxüä_¸}¾­ßßùúÿðÃo¤×øÜR¸|HaIŒUCU1Æ©ƸX,â ¦`,ųP$4Ap‘‹Œ¡qGŠîó ?ÄÕ䇺ח ¦…ƤX(¤ +\ÀÑH¹€‹¸@&¸€qQ%)#H’‚«¸×ùÇ‹LI‘âB¡ŒSÅb±€‹Œ=l¸%AAâ¥J½V«w{ý^¿?¼yàZ‚¯u´Zív«ÝnµV +ÀÚµ4-“‘³7`7レ{WìjZë¸ÈzM€™L&›Íüù@QP8 Òiİ(®€Ö’HV€è*6EQ6ÝÅ@L§H‡‘’U QÃ@VÐ +®;ðõ +àõe?w;ègŒu¹·>)U*•R ¯_Ôܬä.ªIÿQ11 ƒVJF½^¯×¿øãÜ Ÿ%àw=ÿt‹#PáÊ$àÝ«äÊS&ER(`L·ù¥.•bŒ T·I™–I1µƒ)H +…bp±X¤‰"&¤ìÝzLn,É6)qcÂTŒ1Iª˜”Ír™?*BÊåmR, +¸PÄ*%Eþ Š„‰Z$8•LÂw£0$Œq‘Ä?“.Ëå2)JÁ´XÞ.R,A„wÜ«ÿN0(B¢dÔjuÖí:ý~à\ w/À-ø»]-oåó––ÍdîeZW…Íf³™_À¾ykײ4­õ¸Ó±³™¬â@É(>H§ÝA_àZ÷ˆ« ͧÒkØä9%«(2â!€œƒ4W?û™ lòq!NH»‹BÓ×àõ^ðûï| +àì«§CÇqG×u½”ÓKF¥R)]xPçð¨\ ¿®€•Ša”0&†aÃ?~1ä›ÁV–€¯¿¿[Ð;·Í\™¼k€æ®<”'ª”=9:¢”2¶sß „:CJ‡U¶M˜”LaB cf™Ð²É†9J)m1ujRª«d›B JˇOÌmJŽ®RBŽ©I?7Zv fVfî8UFˆC͆Á¶ eDgì ;d «´L +«ÂrBJg„0“1ÚøkÆe]f2Æè!sè6­šË¦wxÃ;‚(U*•Z½Îúýz¯×]K½$€?𠸀eYyKËÊ9ëæöx ù·KørKÐ<Øï4³ÜbXk=îtÚ™¬+þþ㟈 $¯Zù€Ï¾Ó}úû7Wò +÷þ‘å°dE‘Ý À +¢ÈCEFm"„"éôš=øu]€¼ð»µqà§GŽã8N.—ËA¨–JÄ —Æo^È©¹Ü…q`÷k—Ðɯj†žs÷SŽFO¿>_Û öúûï_¿^ZÞáܽà:?€ªWƒÐ_ê:¦]B )èX×õ!D'ŽAÖ1Æ8ùnBB!&q†„PJ‰N"a B(%¤Bt¬«„èc]ÏaªëÑ1!¬Æ(½±N ¢3²34 ¥””ˆNV ¡„` ab¥$%¢c«9¢Bj]§´ËØûºŽ)¡| YXÞ|/€ èÔêõ^·Ë[9] €Ðeð2@çÖù­k³Úî2à)€LóÀ>hfòÖ«µ:;­L&˯>”ÌŸ "„”DÒËf Eq}¿³ +ÜU@ä›@8Í€ü³üŠ«6ÝÑbÄCŸðV-ð¹ó¹ÓëõzõÁ:1ŒÒåTWîM«|¤Ð¨ª9õCUÍ-_P¯T*µZÖ¸ÀÑÑèrðÍÀ?Ü9ð×o\¸îTi™”©AÕr¹\^„”™^&„ ŒAHp±HŠ„rÙ4Ír¹L‹…Èöv¹\&eZ¦”’2M”Ír¹¼Í?ÁÐi™rSþ¡ÛeGw«Û¤lš&-oSJtRæ_S.Œ 8N0Œ!)B +D'”R>b”²½½½MTF(¥„T} +@<Û!I7Œ©ÕkÝn½^¿U„®R¶mw:›'ó-_Ào× -°@ûÀ>hfw-+ŸßÕšÇV6“Íf™@–3&࣠+»#ý!ß4ઠˮ‘¨ 9 Œäë°2ýÞ¯þ'Àññññ|Òƒ l_qÞ´ +sêš!ÈPÁFŨF“Ù|6›Í\¼xé­¸ã À…s“#Ð¥ÀThùšCM“–)e´JMjR÷¶’mB¶I¹T&„`S60!L¶9(-— ‰ÿ’´LÊÛeJI¹\UIÙ¤´\.“mB¡„m‚½mF„ê´LŠEB¶ )›&¥´ZÞ&„PZ&Û„” )p§bÑ`²\&„|äሲmB-—)Q¡îŠdÁ,€^*•*´Ö­³n¯V_žu„n +ì¶ý÷޽ëÖñ²rFÎ4íVso¯ÙlZœ@}U€æÁÁ½¯ÝÓì}û ™Ñ¬|^ÛÕö:;-¯(›U²rFVä?R|ûÆQÚ­Ê<÷§¤Ã< ðŠ?ß +2psñÉ Ð:d„PDV +@F7 ­W–!Àññññü¸‹çJ%’»Ô릪ê›Urj.çWWÏjÉ0JÝñl¾8Y,‹Ñ߬¦_»­€opÞ¨ +P½kÀ¼á4œ2¥„‘2-›U³Z¦„mJÊd›é„2†01) Á¤\Þ¦fÕ¤e“–Iœ£¢J©i–)5ï“ퟗM“VË„’2¥Ûd›n«Œë‰²iÐ2!¤HÊd›–]-S“Rƒq8”Ëe³¨ß–bR0U6))R.SR¦ôÈ ¤\&¤j•¯5'”–/O9ëĨTê´^¯wo€ \¬z¿ßjÛŸx°òš&gîešv‹‡ÿÖ/àuìÛûyYͲ,mW³Ü€×Ùíøs@DÚÜ”ÁZp“OFVyYQdEÉ"^Èn†Ý2 ("­V²y%-òL‚¬(››²×z„^@¾+SÐï¾ó÷ÌFŽã8Îéééééq?!©ºŽ×«€®Ñ×›Urj¯)þ™k‰IIgÓÙüäøôôôÔUçKxž€oüðÃo¸³#Pãúó§ÃCæ8Ìp=tŽØðËCæ8ì6ØŽÉTF#Çt›RÊ(a_6!kì8lë!Û¤Ú8j4ž8sÔGìhxØpž1æ8Ì:Œ1Õ ´ÁÌ“úSƳ±MËÃÏUƾh0Æ F(5wØ‘9¤UFU‚c)©X}ò¥ÃœGlÈʪ;ÌaÌi Õi4F­U¯@DÍa¬— Ã0Œz½^[žöÅ2 /¬WZíV«Õn·Û×ùÔUš¦É2ïähî­ ­®“‡ù{Ú¾mw–hvwZ-›Íd³Ùl6“‘ÿŒB›¼•/½¬ÈK/ .VŠ¢(Yä· öªy°éÍðJ §äëÀë®Xøõì‹%'#(å0ÖsðºóF³+À[ù½Oò¯WUU5J¸>ž/ÜVàñЫ¼Z®¸s'°ÿܽ +ÀîX¨Ýpt]×õ­-]×õ_ê¹ÖõÜCCßÂz©„ï«ê–ªÇ76p<_ +£Ê}JrêΩ9«z‰ê:Æ9}KÍéº^Êá\ëªÑÕœNJzNÍ©º¡«[:ÞÊéz.—Ëå>TuÝÀ¥Üƺ®æT½DÞ'üŸqBÇ#‚9Œs%oéî‡lÝ7Ô­¿4¶Ô­’ánû¹ä+BˆaT*•:­Q÷å@»âÅÝàÞ±;Ÿ¶4-oñ>€{<°¬f³iývM÷ò7]ìk÷4Û¶yÀ²\(™xGàÿÖÛ @$ +ˆD"?€@¾”Ñz/ ,+Š,+Y·8‹Ös› qÏ# Q ‹iE–7‘âíF(²ª\£ø\íú4ÐËó¯Ÿ}æ8ã~}(©%RººÞ•ÃçV|Ž'ú¹óŸ'x´ bÌsßîº Uuo¼ºŒ'TUýP-á\ýh~rrÂÀpÙ ¸êºƒ!ЙÀ;äþú?€«ªÎMǤ”¡ýK/r¯é„Z¦”PB à ÞäC¶É6%„ª&%„òd&Ø1–ÔÈÕÑuJè}/•H)ai’A¡d»L©Y&Dw(¡”–)ÝÖu¢µApcœÃ +0ØPþ¿µìn'.ÕˆqŸU·)%¦Iͪi +|Èx n¸VÒKF©â;>´Z.Ä‹}ËówOÛš¦q'ïŒ|/û[–ÕÜ»d +âÎÁ¾} ÝÛݷ탽LÞÊ[nÀÊhYN7Pþ÷‰¢{WQp 4B¡É?F¤×à•Ó }! (ËŠ²² %Ë—‹È +RÐJd9ì`SQÚ”‘ûBË$àu!¿ÿßs|ën}ùüÙ‘ã8;999Y ½T*]{ÿ±û£ €\çT¨zêÞT“8—Ó1GcU½FNè%\›ÌNNÎŽ‡GÑçôíÅY€7Àw͘·8qøâ.Ý¡•_„÷™Î“uîÄÀv™Wîci£ˆ1Á˜lóü›êr™”I‘”ÿŠÂhœ Dßg%L¡Åm¢2‚ !åmJ ¡)‘ªÙ ¤P¦´¼MHnÊË„BTã#ZÀ'á» RcBxÕ€€Ðû†ßaŒRj2“QJ…È;Þ|ñª(Å¡ +a.‡IÉ Æò´m›·ú¶W] »ó˜+ËÒdd^سÜí Íë°oÛÚ=kß¶?if-KÛå +À¶²²ÙìÒPùwàëz¹o? @„B "(ÂÅBÊ&B››²|;ÐI@xeÀÈZ!qÈŠ,×Zœ¬rù, +ó±b È +RÖ‚–¸®ð‡µ€¿8ãøl±X,N=Ç„_ïÉžËñ¼»$`€¡šä +`€Vyƒ»g5ÃX…¹’Žk³ùâøÔU££?=þòß^­ ¾ÿqøáGû¬Wr´B«Oo>ì}J(¥ô}J +¼$G©QæÕ7BÖINÚ ¸€ …By›’mBURæU:Ì%ƒnnQB¶ ½O>²]$å­2!EþD§©ƒšt›r¹LHy[?$¤\&åm²].B¿!*Áã#P + +vSƒ„R¦„üœà ÷ÍJé¯ù¦óÈFDr糸I0Ts8‡ýëÁ×âk¯Üi À_-ßþÐÎã–¶›çͼ™÷Xî¹\Àî=ëÀ¶š,˲vwµæ?<¶­¬æï ú¼ý!€"—^£=@7ç.£+pølzÍü+¤Óke@$+|'hZ–eEI_Àª0›Eá0‹a)Š‚.7Š / +7å~X9‚¹eÀ—/_|ýŒ'çóùütÞIzÅ(©WåìÝg¿®¯B¸€º®.„¹\Î+¸Èår*&%\ŸÌçóÅÉÉÉÉGd„&ÜÊ~‘I±XÜÎ ¡!zŒq‘”ËL5)¡»É¦3ƒB·É¶Y®R»(!”ð‘€DµX$ ¢c %)(H)LH™8&¡&!eB ¡ ò¤Ä5Mf2³ñå—_JRPJÄ!Ts9žÉ +¹z¯WI†$-{7!„®@ ‚è«p Ðj·y eÛN+kiVÞÒ4-{ïÞ=Ën5-¾Ìºè ºôìØö¾Ïìqä­ü®µ«µ?¶w5-»rúT@„_DB€Ï8Š‚àB€P(@ôßU„t‘—€ +A››ˆkxàºvlÊ|3ðÒ”×òV N§AZÉ+(…\È +ZúEÜÝ Ü˜ô–û¿6ül¸TNj޻‰!†îÛ ÏÏRð,à2ÀXU/&¡»o~9wWPNÍ©9UÍå š#¥Rm4›Î‹ÅbáàÕ7߬9½i?÷ïßWÕ>Èmmmm}°µõÁOº¥Þ¿ÿþû÷ãïß?q?þ~<Gq)²±±±±Ú®9Œ±z¥Ô`Nƒò^;^7.šEZ&’D1ÆïqÍîBʘù nÁQ1Æ:½OñG¥â_éR&åû”R,`L(!&¥L§d{› - «¤ˆ ^$Ý'Œ1Ù†JR@ø Ąʖ‰Œ2Ç1†¬jV™Ù0YµZ•$þ¨ÏA5 ˜Üê%ŒKD¯äâ‰k¾"ð÷´[-ÛnÛ×é43»< eeùže·~k5=peð·Í»}`ç3ÍŽmÚÊæ­|ÞÊk­OÛyM[N,ÿæßýC¡Pš¯î‰x›¶9ÖDAx€ DñŠö2O\@ÀU +ÀmDaÒé´ Én0âkà9¤¬R˜^PòŠû)bDÙt åMÏ„ƒoÊH¾%àù‚¿zõòüëùx €Ù¬+%ˆQ¹ª8§ªn€ý!Àª/»TÈ]T”©Çc¾`4úã“§_Ÿ¿|é³s‡Þ÷ß¿ÿ§ê*Àÿg €Äû÷ßÿþûñûñ÷ãñH<Ç#¡Ðu÷_ظ- ”Ѩ;T¢´LÃÍÎaj6h™B‰`ŒyHé6»OˆY&„N¥RI1Ƙ1Z$„>“2)'Ì"!EBþŠÐ+›CÐr™q±Œ!Ä©×6sCÃSòQ +B(IBʤLå25`ÃFãÐ0cŒ±c•JÅÝ aNÅ9ÃxDï÷Fý^oÐëúÞ _B!jÛv»ÕnÛí–ýwŸv¬ìnž‡Ê~{ëŽsìïç³ÍŽmwZšeYšeiÍOÿ¶¥inì¿À¿;à䉤ˆpomÏéˆã D– +@Ýǹ²ºÿtK­|ð §W@òJ¸ N#6óY¯›ÀݲlŠ ep]`mØËœÅ“€Îh4ú5WjãâõWq.§æ® Ô‹9€äU!À_äTþU˯Æ—*µ^¿7ÇãñèO†¼Èç ø#pÿý÷/(€– +à +ll„®@h#òð†c<Üú`KßúE¥¤ommm} n©jN/©ªªê9UUsçâ’w§!yKD$UW¡‰Ç㉌Äãñ„JT^0MÜO@UÍET5¡ªü3t¬ëÜÏåT—$Çñx<®&TUWÕD"¡æ"÷ùG©Rä'‚ ñû UÕ UUsú–ºµU2)?}hK%ÝÐuý¿ð@ÍåT˜ˆK¥Þh0 FãÑhЫT|U€‹ðKà¶Û¼˜oãЖ + yµh¯RvûÀÖ´VǶ;¿×òV^³,Íê<¶5MËpŸøwÜЄ@( @:ñ®ºÛÞä=¿=À½[róÝÿ• ¸:ào ƒ4'@(, +¡e+ðò?n'«ä°«Ò.Ò¤Ó(ÒJ^Iƒ4è:lÊ2â +E¼Ý@7†k­À¯ü¨×ëuª—J•ŠAJô¿ªær9ß5P¡zEð¼9Ø{øóO¬Ôêµ_‘J1Ö‡Ã#ׄàõj9èë7Ôÿï¿ÿþ}¿¸‘x‚@¸^llDâ7*€§¿:ì±£/Cæ0JÙРԠ”2W`ˆ7ŠcB̸;¶Gè/ãà/ -SR¥o—Í*¡ æPJÈ6¥*o)`”RV¥CVe:)—1Ž‘¸³½M Áüˆ2“’2¡”V•~„‹8YÄ0*D !Ôa¥”RƧÁœ!súäpÈ(sŽzO~ã4$I’ñ„ÝÁ\B*ñë?Gãñh5 Ø[Ï\î!Ðn·ïNt:^ðÖ µ€};û Õ±íN+kYy˲´½ÎãÖ4|«ÍOúƒèmØã[6DW¡»@à=òßo¿Ïµ +Aˆ¯÷æû=âB2J£´¤Ýá< ¨È²‚®H‹HQ6]€"i7‡Ã®ØÜD²ì­ @ô¦å[îÿ÷«å ç_»0 ÃÐs9ò«:­\R¯­p¨úrW„‘Sÿ"aÂ$„ªš„ªz©V1JªnT*•_ ‡£áÿøê +ðÆUÀ-€Ÿú€zE{¸Iü§x<~xíù§Ã':£ŒÒ2£Œ™”n²ÌÜ‘âG“b +ÂT2™J‘mŒaª&qC) +!.Ëå",â"æÚ¿XÄãBœà?Ä¸È å2)³ˆ1ŒmŒ“ÞLÃÜK¬X.—©š‚I¥˜$IAˆ ¸HÝ‚aü’RzÄXã Ã4)¥l‹1J«ñx\‚b½T*•t½„UXê Fƒád<¦cÿb€kXJ€v»ýûß·Ûíß·íŽme4‹·òiYY–5ŸØ»­;«µÜ@sÐܵþ¼öO€¡Èö‚BTs—C€\Ný ÌBTUU±ªB\*ÕH Ã6 b ‡£¡—pý@~~úÁ}/X)õ²ˆD<Ü”mD"‘Ä ø¢ô9[ŽoSJÈòÁ:!¤€‹¸\LA!aª'Åæó)ÁÉ$Œ%a2U,a™`Œ …b‘¹组âB‘‹¼ˆ1.nÀ$Œrñ@‹ÛÛÅŸ—a!!ŒF%AJ¦ +«Fñ#½¤Z¦”Ò3YƒPjšŸ F)¥’$Å¡šÃ¥R “R‰”¦ýÑx<šŒ'“Ét<õ™‚¶ýÈú[ü¾ýû6°;ö®  ÍnýÖíºí»}°ŸÕÚ,ù¼¦­@{ išöã®?Ÿ¨w ¸Ò…<p÷Žr¤—puÀúýG]£R €4W"’Q:²L¦Óî~`(Š’æP$¢"%/§A‘ò3…' +VÁ¡Àë¥!ˆÏÝ€}UˆZªT =·vÿáZ _¨ë}jîÊà/°ºî4¤—JF½^«×ëÝ.y+ð¿]p~ÓY ÕÀý+À•…6®'@è'ñx<¿~èPw˜Éh•ßÿò/· Ä`p1.q 1‹!‚‹«• ˜›~'a*…!)rû^~RI ± +“0‰1&LHcÕµMI +J&“0a +' Åb±PÄEˆ“Æ$) ùô5#„&„Ð2!ßüºúT§fÕÑÙ¡ bµT"%b†A¡]æt»N·ßë;ÃQÿÊ ÝÒBâÊx…€–ݲ½FÀ}Oä—hZÍßÞThò*@öÁïl»Ó|·ò–eå›7µ¼¦e³2™ìƒø:qM{ð@{ó.ö=/qùí»'^Ú-À;‚"¼…'Àåû/_ Oøª€K\¤—­€HQn”æ£>nà¥Ñ2@È]¤øzAèFà&Ó.y9€ét:Nº X*=ô;Á%nÖû–¸¨þÖ’.ézm0žL§ËíÀWØ‚¿apKý©º .)€Ä• +`C¸¡ øŸ"‘x<’¸ŽÞ0)5«U×#´L¨Ž±ëð‹q0Æ‚$SÂŒBcpB“ÉB +ÂT–q&¹Å?N%SÇ=T`œJbR(`ˆ!ŒÃTª˜‚Q!L%aÜU…L¥ +0£|ýgbœÄ˜Œ cL!Ô4MóH§ôÉÖû›ßxPq©DJ%BŒJɨÔ+£T*a½¤Ã(]ló€(¸ß @˶—ÀyžHkv«iíYw€fØv§©YÖ®eYZóñã=Ͳ´¬–ÍjZVÓ²M{Éfµ7¶^öõ„üX®8("   +EPEJs="Qä÷?‚"À»ÿ>{¯Ë³"Û&âv^ô.ºfÞ.¼i ¤(›a™{»!¤(2H£ô +b)y7 °®®^óqÀï—–@îrP‹Åb±Xt%)§ß^Õ€CP½*ðæïUU«¥’^Oç'‹Åb±øbøÇ/<|ësz3ðÁ–ê î¦66B× ´án2eלÃRûû¤L·I±@UŒ± +UŠ!Lâ$Ná” IŒÂTÂh4*Á¨$m@a &S0S¤`”ƒrwï”$IŠB aÂb¡ˆa b‹%S|G„PŠ’X,ÆY“$•äKA€I¾>€›•7&„RÓl<Ý¢Î}“²ß6cqIŠÃ\©TÒI©fT*F­N+¤„uŒ±NŒ¹  \`Û|»¯eYykWËÊò=­ÕjîíqðÛ°ßÊX.v­]˲¬æãÇMn®=Ð4-Ã)àžqý¹1‡/ +pÒAˆ ¼0q"¥Ó ®ë„"—@„– +€ß\_À'd¤l"%‹8¢»!€P:N+y9Ò„@ÙŸ)Š¢ÈhóN +àõº%Ðr9à˳¯žòVà““““ãã^BÊ•J_ÿUñ­U€õ2à !^õb¢c:šÎùrУ ¶àßÿ˜i@õõ¾§îß9°±±±qS Ç×hvXjðÀuå*`ÇI 1ÁÆb)XH¥  Q)“©ŽF% J1¸‹B¾þOŠB)£QIŠÅ¢Þ/mÀ¨$II‹Å q1•‚ŽGc±X*Ut—„A˜ŒÆb’Å¢0™’b±(_$Ê1LBü!1¹õp¹a6þT«ÝgÔ4ÎŽŽŽâñx<—Ã¥R©R«TjµJ­[¯Õ*à †Q3ŒŠ±šôåêÚmm­ è +€à÷ß¶mûÀÀîî®–Ídîe[­æÞ² +àïôuØö~ÓÀƒ%:{»Ö®¦e<Èf5M{ÍjY<øQ×ßÌõžý‚[H§„bpD89°Öô?Š\¥x€ÜÍ>‘4ß â ÍU}:½rA@þ™i€)2Orij‰^áà®W¯/Ô]<ÿê®Àɼ— ê>÷!„9xEpu#Ðzð†ç¼õÀê8WÏæÇÜè‹áú^€Uýàƒûž¸­ +à@hcãüeüýxâº<ÀQéIƒ±Ï«´¼MMRÀÅ‹˜–i'!”R0‹ÅA’¢R*KIQI’b¦„_Ü c„0£RÂXL’ø†/G£¦0„&‹©T±(mü$•bB F%‹©ıXL’b0 +a,%%£Ñ Ÿé H’ôî»zCê 0³ÑxrhÜšÕß8ÃÆcLŠÇ!ÄØ •J¥^«ÕkuV¯ÿŠrÔ+¿b>K0?Ö¯ˆkË÷?å†rFÖZ­f󮨷íý¥Ø{ܱ¬Ý]íÁWð¿ÓÞ,.ÀDQyŠx€ü·# ·;€( ‰€(" +XÓÿp5Ü„¸ë—û|V)ä€oå¹kE@É£t„'PVQ6ùÈŒB›·àb`©ž­,Áó”`ç W½0sê]B€ä…$`î¦ ÇíC$IŠçr¹Úxº˜ŸŸŒ†ÃáÓgëxýf‹>PÕrK ¾®?‘¿ŒÇ#ñD<W·¶.¿¶>(•ô­­-U½Ç#\PHñ ƒöÿ®³!‘óe‘ )D"R<OäT}kKU?ÈéúÖÖÖÖV"‘€—H¥bTêµ:cÝz—ÑZ½^«w{½n—ù|Á[­¶÷jµWU_%øÐiiyMËf3÷´V«ù[oè +ÀæÓ€–•·wÜjÂų«i»Ú»ÿ Ä£××@y£?aAñ4 Oz‰BD@(B $ +"@k÷?¹ €àÆÿ+Sàp( Äð*Ho;Â[•« ޤ9ät$aùgŠ‚¬,·„{oìøá"Î×rÇ=(A«ü~B¨Â\îNU€ÜZàÛC&Ý]T0ëÓùñü”/]€Û üÀ­îûÀ«7d!´Á›ñx<~•)pÍafƒ±J¶ ñïU†1I’‚k·+‚|I¸ Á@0*HB0t·y…  H‚$ƒÜ¡#(Á@P$A¤`PŠ +0Á` $w÷ ò]áÜØ7 „€÷’…Q1NBL0&„)5ÍFƒí4˜É“$ ª¸dTj´VcÝn¯[ïÖ»õz·×íõû½ž¯Ð[W!¹à/·5·Ž·«e²Y³oW¶ €ý}Û¶÷2»üË­Çkï"ø&MÓòw!WQ ‰¢à:›x + ´@EÒ¹`ˆ„DÁk ‰‚io+J§¸2°r÷ZÃá+r) +’9½€¢(Šœö¤‘ 6ór!@ ¼¢ðâÁ +¢à®U~¸e?ø÷Ë*À‹³=Zåæ(Aµ7Þyçw¤T¹±¯?Èá[C€›«8§ÂcÒ;‚ HPÅõñbÆýþøÇ?þq· +ðý<ÿ·¶TÕŸxƒ*ÀMøOñ÷ãﻈ𿵗A)¥Œÿà$|JQ BI‚R0VŸðÿML +‚ú~Y‚@põ%õ/ ‚þ_ øø¾Õµ?M„`@♂O·Ê Nwvvc,‘H$rúC£R«Uêõn½_ï²n¿×ëõFÝÁ`0ð;¡\a5 È1às |l{дl–‡\ì]P.lÛæOþLóÀ^*­Õ²:¶µgYnæo×O€]-—(ÀÀ/G $ +¢("oH Oh„ŠD<B!QˆxSO‚4ðúÓàªÀr8-‚e0,ŠiyéÈ@ZvAüùºp7I”åCˆnDð³<ïؼ¤(ŠòÃu¾à—ÀK?æ‹”T«0‘HD$®æáÅF Ûgn®ä üð?ss¸;uí¸øŠ›‚.soФ~°õª~°uÿÍ«!á&à&ãñx<©TèÅ—Q©ÐGŒ–Ë'yü.I’$À˜páBúYx!ð^—>á¶O %I’ Fc¦Þæ;XƒUMÓL$ë¥R¥V©u»Ý~¯Ûïõzƒ¾ÓïΠ?¬.àòn°ud=d\ì¹ãÀ–µ€åØû¶Å°ßÌæw-Ë:°µÛU»ù|^ã{Ä´]MÓòw•ÿ‘túBDÑßÏà&ܾF‰O¬Ýw"^·`:rM7m*i^Lƒp8 \NG–Á¼ xAÈ + +¤lr;rÞM8ö@¹Ð$_°ZxîÏŸŒ 1Æ%]Wƒ„*„C|U°–øðæF ŒUøa,’PÕœ +!¬M¦3_ðõóçÿæÏÜ=ðªn}À“€o^¸1ŽŽÄÿr€+wƒF«´Œñ†QIòî}@øßxîüáÁ  9 +˜P—UsggGUU¨â1*•Z­Ûë÷ƒAÐëÃÑh<ŒÆWÀÖB­Øå7ØÒ´Œ–‘µV«µç)€uØ>Ø-­LÞ²,«Ó±x1¿ì»ù¼fiš•×ò»®¸% °÷ܡӯDïù¿ªe„Pˆ?÷#„€ ovÈ}#B‘td%àÓA‘]»$»!@¤9D·„á°A(‚"i€Òiàö¸I@?½A—@y€4B |^Ù”Ý> M„P$ + Bˆ ýp‹%Ðj3ˆg Æ«‹~BÒKب%”+pK ^]¼¦H…&" TH.‡»ãél~||||üdødøôëç/|›Á–5€×wÈÿ» +àÇU6n©¬p*F2s›`ŒSÂr +Â(„P +ƒÁ€.z à‰€@0 ƒîO=`ƒ`  ù›  ø»É` èþª{Âò‹ƒüÃ×â`0‹E£š0•L¥RS~ÿMVeÌl4Bã1j•ZözÝ^¯?F£þ`<Ç“ÉtyÖÀjàìúwVÖÊhÙÌ +Í; »ë@³šÍ=KÓòZ>¯åóÚ®–ßÕvww—;µ[‡~}øÿ³ö¿mdYº J ‘6O‘«z9I;¥$eWx3SC5£¸•LG' ‹´v+£;væŠØe¢KDáĸã²3û¬º. ˜Á} “%v–§u¨JA9Ó>T_]õ9²ßüVBÝ~lÌË©ì‡û°#øC’Y5gÙ–mZ’mí/¾õ­o}+“ÉM˜@<‹ÇcÉÙ™ædrRؤ’©Ü$$žœ >H&S©d*—J%åV®\2™Œ­„MÁ•••¹ ·šKFÓ€7’ɲU/%„Ì$teee5—Z]}ªändäþ¯d<“Ë$W6V2©ÜJ.'w„ll¬ÎîÞMÅ¿®Ü vz4É8(J…VjûÛíxK`dàÍ%@Ayïvú¶N÷·i¥Æ†£Ñx<F/Gƒ¯ÿi2 øûåó…½R!_¸WúïÜHü»Tê]Ù 5þ ±àc3 °€=bìÈê½,ø¨ÞÓP¯ÓÍMmyK¹¶pkii‹–•MZ^.×µeeYQXy¨¦h]ºµ´¬,Qí:]Ö–65­¾E­òæò’rKK×7µ­­ÍÍ*Õ´2,SØ,/•«å2–·Ò[emsiyùÖ²¶¬iե孥ô­ôÂÂB,¶ Ñzµ +”Â@g,3ƒ@pÔ Ï¿bG_½^O‘Y•Æöv£±Ýétöúýáðp8ŸŒN®€ÖD|3ìý§)<(>Xyð`w£ØÚk·ÛŸ·›ÍÝg{Íf¼¹±ÑÜàó€·q)è%s [øÉD2ÅâÉÉs=Ê )€ÌÙ +%€Xø^âò…‰\2•J&’©L&™ËL`%·’›ëÈa€dâFH’ÉñébÀd¸0Œ–‚"X‘»BWVVd ÈêÆªì„À rCðjî;À7—D @Žäw´Êövm»Ó¨hëëZEÎÓ +¥•J…V(¥­ÐŠaPZ¡†^©¹ÖZ×ÃÀpJ+”5h͈F⌊®­RÑ+Z©„Ô Ò`Û°ÝÙï÷†ÃãããャÁ×ÿ<3 ü»o¾ù®5@>_ˆJ€ÂÐxÛ8`âú»‹©¨ J]¿~=1ÿøgÐh”ŒJÅ FÅ0*ºñШèº^(Öµn+…‚²˜N_O§•÷¥ hA¹­”Û‹J¡@? +#“ßS”¥Â+·ebº¢(ÊíÛ×SiE¡rtªð^J.þTEÛ,4­PH)EŽkÝV4M+hZ"N§ÿ(‹Å”‚¶®iš® +%£ÑÑ+FÍèÔÒFÍ€ ¤ÓØ0jšTþ÷ûÃÃþp8‡ÇãÑô¼ âW—{{OÔ"úwÔ­Öîî“)Lµÿæ<‹í=ÉŠ¼¹±ûìÙŠÍ >¹óòöGo¿±üO$’Éxâär¹d<ÇcQìWHö²½¿Ô¤ˆhAT D‰©\&@øü—±¼Éh-@*'s½Ãqà&ÿL.“É­äVW¢«7"HF¹‘Le2w7VCîp#“L®L`U6’ñD"þ6øæß.ª€Ò üÿÉ¨ÐÆöþ~‡m× £PÛÞnlÆökFc»±]ÛfÛÒ0²½ÝÙî4jÛÛ¬³½]kHëØv­±ýÃFc{»1ùåíFg{¿±½ÍØvc»Ö¨m4lP3jÎÁA¿aÔŒF§Óé¼ ¾þ/ÿõ·ÿ2³ø;@^>ï/h¿O ñæNàõÔââ<Äæ¬À–ÅØÃÀ0¨•]£B%4j››eÙPE[Ò4jÚòf™š››e¹»KÓÊåòf¹úmi²C± hšv]{oI{oIÓ65º¹Y^¤š¦-iÊ’”–ËÚV½š¶¹YÖÊeM£[eZÞLi7ÓéXìZ,­È(5 J fc¬!a뀢(Š®ÕjÆv‡í÷ûýƒýƒáðXòÿ“áÉè Ëç·h{{aßäÅbñÁJ±õ4lJ!@Þýæ“'Ožüõä|Ñþ¼Y,>Ý“"`‘7‹»Ïžýe³Ùj=i‹œÏÝýâ \Íf¬ÿW€@"OÖÌhÉðŸ¸âñÈò%’ò ¾»ØÊ44xr$“™dòF&,äbÀLj&,€•d<ˬ®®æ$äVV’7’©Lfec%“ËD%ÀÊ ¸›Ë­¦âñD2ñVˆƒÈ[² 0€Z­V«(Fcÿðà ßhl7ýÎþ~{¿ÓÙïtÂvpg¿¿ßßß?èoïwö÷ƒýþÁ~§³½Ïö÷÷·;ûûÛòeA¿ßÙßïôû~g¿¿¿ßßïìGëæ·Y§³¿Ý¨moï÷ö5]7jµZíè?F0³ø;@þÝwóRÈÿa]€·–×S©i0T g€;lg‡@ J+TŽÞ1=äFšF©rssQQÞSº TÛÜ*kå2Ý¢eZ­V·ª”Òjµ\-3º¹LÃ?ùð^¤Ëš¶¤iš¦mmRz›Ê_«Vi¹Z¥årU¡e­¼U.—«eZ¥[´LÓš¢¤Ó ±ëKá !€R`ÐgP£ë1X\\T4ݨmÖé÷÷úûÃÃáñáðøødx2_]<}ZŒO2Ág)À<„‰ ¼X,>P‹­§³ àÉ“I2ðîÓ3E2€Vk·Y,6‹|îÎç0 ø6óOü*ˆÇ§€éÏ'fjÙLNŠùgMÊÞ }ÅØŠéåwo€ —ÉIZ¿º²1€d,\þŒ4€Ìd2“YÙXÍä&ÀJ¤È·š‹Ç¾…ÌL|3“ ôꟿ‚ *•JE[¯4ØÁááA_^þþÁàð ¸Ø?<<ôûÃÃÃÃÃýáðð ppp0<8îöûû‡ýþáAÿ ßïöûýþAÿ ß?8èôú‡ýýþáa°ßï÷ûýý~Ðïìoš¦†aýúÕ´ 8] ðÍ·Þÿwóù{…Â@þ¿›š¯ÇsÀv,‹Öj(Õ)5(–©®éTÓèæÒ-º¨(¥e t³L«å­*Z¦4Z0LåNððé¿.ÃB颦iëmsS/Ó2¥·aS£”nAu«\5«Õ*ܦ››-—·êÕjµ^¦Uz[SdºoZ«„»FdÖ+ƒ†lö‹Ú€•J­Ö€Æö>;è÷ûýƒÃÃãáhx|||"³Ãsbß +íbè,‹Å•bëéî“'€ä ½×n·Û­b±¹±±ûìÙ“fóéÓ]ÉŠE^,nLotšÍf³ùVó_æ"L 1­B3@ +iATÿÇ#šÅc±¹wŸ‰ÍìèX™€»«©/p"2™ $9ÀÊJwWW“±d2·ººš‹‡ § s««I®¼ÿ~TÜ C©·ÀŠ¿ `{{{»Ñ0*°¿xxpØïî‡'ÇÇÃáñðX‡ÇÃþðdxxx<J¹èd8<<勇LJÇÃápx|0<‘’Òð |ýáðððð`xxxpxxpÐïïwÀ¶···ŽŽŽþñ¿Fq ¿‹$€oÌçß0€?¼ ð •Zœ‰Y°Ã˜Å20(†´F £¡SMÒJ7—ÒŠ¢(Z™ÒêV¹¼Yý ^¥$¨VMÓ¬­hò:ëšF5º©kt‘¾ÍòRZ¦¦ÑêÇUÓ¬RjVÍjnÓ2ݬ–å;©–)ÐÛÒŠ. €Ü†ƒ|Ìv,‹™pûömE§µFㇵmÖÙúýÃÃáááñèäx|zr,ÓšÃ󸞶÷öÚÍÅÙ ½;Ó|ò¤ù¤ùäÉ“f³¹û×3çó 5€ÅbëÙ³ÝbÈÂ@±¸! ÅfsƒsÎùoòæ…Ü‹'3Ç + 1÷Œžý‘Ö/gœ’³õ±09 LëÉ%cs«~fàÎ]ÙHÉbá†4¥rÉT*—ˤ& ·ººrwuu%“ak2«3 “¼»±±º"K€ÕÕ\n5w#öm"àœèw¿ —ýöÕדPÐãag]ï쇇Ãááápxr|||2<œ G''Ç£“Ñh4<9>>G£áÉñp4:$ONNއÇ''‡ÇÇ£ÑP>GF£“ÑÉáÉÉÉèdt||,ãfŽ‡Ã“ãƒmI)úý~ÿ«_ýêWÿ4#ün2 üÍ·ä¿ûîŒð‡uÞB&³Sp=‹M‚Áàc=Ø¢oša0yùªtù–²¨(ÚVµZ­ÒMú±iÖ«ÀªU ¦Y­›¦\2ÐiY£”þ@® §?ËÃuZتÒ2ÍGCý@?¨š&€Y¨V)5«ÕjݬV©FË[·5MQÓéØË0` +```2€¦eY2èöíÛŠfÐZ­±ÝØÞï÷ûÃááñèøx|r2Çß +³@|:0ÜÞÛÛkJð"DãO¢5!³¼á‹)‹ŧÏþß­b³õt·Y,676¤ð·!ßïF“ó&or.—6g 1¿ÙãHÄñé@àL’þÙ›€ã† @þbF>Ì3±ÜÊJNVr+³ ·š“3Da9‘ÿd2—‹Ü„«+«+wWÃ8€œ|#~#'s?37’ÉdnuãA&™™€ÜVîæâßß|sq ð_ÿõ_~ûêÿœvNö Zcÿðx8<<O†ÃáÉñèääx<ŸŒ‡''ÃÑh<NByx8:NNF£“ÑñÉÉÉñÉÉh4F'ã“““£cùâÑht|rr2IMéd4:99ùúäðx8<Üoì‡`3<üú믿þ/¯ÃÍÀ³KÁÞJR!È.@þî¼®ÿ»Ô»‹·gK€ð¥ÓÕ&”€š!ïVßÕ²¢-.•«å-yÓå3ÿª¦ù±i~ ÕjäfA-DJé»í„êÖVµÀª`šUÓ„*ÕÌOL“ª°cšuÓ„*¥UZ]¤š¦¤Óé?R(˜J?2Lfݬ ¬žµÃ3CP«H'ðþþþþA )ÝÉÉh<Nϯ€ÖÓbâ*˜2€Vû‹½½'¤È›Íf±È#x2 »W@qšüé³g-i¼¸Ql6›œ7‹Myå¹.Ã&0É+¾2Éd&žHDÛMã3¹ÆÉ™f@"‘H¤&šÀäþ'“QûP®FL&“Ò\tE H¦2¹\îŽ\ïÀ¤t&3ɤÜH8¯ä’ñÜÝÜêêj&>ÓËL4€»«‘°²ººr÷»0€ ã¿ U€×¿îÿ"x ‡ÃáÁ°£(°0ކ''ò™=:=ÇãÑx,¿(Æç§ãñéñxt2>G£ÓÑh|:>ÎFãÑèôüìl<>G£ñéè||v:NGããñéød<:ǧ?ŽGÃýZg0úý~ÿ׿þõè¿üæ_æ—‚|[ P>5Ë +` ñ6àúÅÅ9 Z‡#Zmšf‰…!À˜&cA€Õà#0ÁªPE«–ËÕjªU +Õªe²À4L¨~òg #û˜nJÒnT¡^Z E§Àê¦ ¦iÖó“`½n˜Õê'¦YJ·¶Xžjš¢¤Ó±% +¦É‚¾üÄLf2fÖÝ©‡ÂcŒM öÃN¿¿pÐïžœ‡£ÓÑh4Ÿ½ $¢Í WÀÓöçŸïíFÀÆ•ð$r´gû€Å• <(n[Ïþ×v“G%@±ÙäM.W†É¼ æF³¹±Î CˆÏ<ܯL2™§c±iko:Öþ(5%Óû‹ÅåÚ€d,OÞu,Š˜–‰d&™KM@&l>dVg@˜(0+döwn5€÷¬ÌÀûPº±D"ñ­F 0B€ÿß?ƒÁ ßï÷¶•õÚþÁÁðxtr2:99ŸŽÇãñxtzz~zz:ŸŽÇ§§§çãóñéx<ÆãÑx<Nǧç£ñéøü||>ŸžžNÇ£óÓÓñ©|§ãñùÙh4OÇ£ÑÉñèää`xЩ5ú‡rÚäÕ«W¯~ó/3MÀIàͰøî„þoÌ\¿~=vý->€y˜ E¡P( +kë¥R¾tï^á^á^I¯èz©T*è¥B¡P¸W(¬—J…ÅërÀâíÛ· …|>Ÿ_/ôõÒz¡/ +…B>_(ôB!_Èçóùº¾^( +…wåÈÖ× …BáN©0=ù|A/åKë¥õè‡ù|>_øw·¯_ÅbiM/ +¥uÝ(È¿’®— +¥‡z©T*­—äQEÑujÔýþA¿xxx||rr2:GãS™ÓpE Ð~œ2€ø• àóvÔx\ajïµÕø”›ÅÖ³ÿõ‹]¾+ Ùlòf³8sß‹!ð&o69—J`|zÞ ‰xLFLwÎЀäüÛSþý¦py@l + *ÉpïàªÜ3&ƒG¦ D€ä•YXÉ­æB `c5—\‘‰$É»3 ô%¿\Üð¯¯ŽŽŽŽŽ:Ng¿ßPÊúÃãÑñp4ǧgãÓóóñËñùø||zz>ŸŸž¿<=Æ£ó³ñÙéùùøüüt4>=?;??=ŸËeŸ§ãÑøüìôt|~~&ßéùùx|)ËÇÇLJƱÝß?èlooo›¿ýío§€h)ÐŒ€yÕýO-NÀŒè˜¸þ]‡®Ïä‡Ê®f@°Ù#€Á‹k°GAéˆc]Ò´å*¥f +Û±˜ôØ‹ `&Ì*ý€2.l ø˜õzÅ@®èÁ#`ÀLÆspʵÃ=ëE˜–ÜøQ¥P¥šv3NÀ 7x Ûþº6`Œ¿j˜Ì„ŽÅXÀ^È@[¯ÐÚÃFc{¿³p8ž OF'ÃñéÙéx|>=sÀd5Xü ðt¯½×æE¹$€æ \élïµÕ̃§{ív«ÝÚ(›ÅÖÿül¯@s£ÙÜhn4y³¹!wŽ4›¼(‰ÀäðÙûÇãÉ«A@ª€Óå7à¤/0UÂû‹Åg~C|v†èjP&ÉLÈ|#šàMfr¹IÀÊÝYú¯$“+9¹ ,–‘™@¤dVW#pbˆ'±ÄÊÛ€³óxýåÑÑÑvc{{{»SSÖFÿp8<>ŸŒF§§çg§ggáÀÞÙùÙùéÙùùÙÙùéh4:ÏOÇgò^N_žŒ_ŽÇgç§£³Ñéùyø‹gçã³—gç§çã³ñøìüüt4>G£““““ƒNÇ€Îö~g»ÑhÔûÛ¹DðIýÿÍ¿½‰\O/.^b`àm°8×LLѲ,Ë*PÀdŒ1С΂ºÙ³˜ õ ´&Ðåå(˜ l‡™¦i‚iY (…*˜Ô …z>¢Á ÜTlÖ‹„¾|ÄÀÜaÌÜÙ1MË2ëUJÀÔuRª•5åfúZŠ˜`þ…e°ÁCŒ5€±Æ€1ƘÔj5E‘qµÆöþþ~ÿ`xx؇£““Ñxtzz~6s.@ìmÐj·÷>oÊ`C¶ç`6üéÓvø­ýEKͨ!I±YÜýÙ³g(Î_uÞäœó™57šÍfüòI^h°wî_:1ëˆä€)ÿŸÁ‹X,1/!¾2©T*w7·š»q#™‹‚%Èä’™\.9£„Úßäj.—[]IN vVsÒ +œÊdr«R\]‘ów“ñXü[À7—T€ý×yýŸk?¬ý°VÛÖ•J£?‡G‡''ãñøôìôììüìt|z~6ŸŸŸ¾<ŸžžOÏNOOÃ§Äø|<ÎFggãó³Ó³óñÙéùùÙÙË—gggç/ÏÏÇçççg§gãÓ³ÑÙùÙéèx<އ‡‡‡ýý†QcµZmk–D5À¿½Å´xýz:•š×þ°Y€Dâ­Ã@J€ˆAä)ÞR€‚i+Œ=‚ º¬,k›r3(+˜&3Yx¥M¨Ò(P”†=:“‚Ý”¯ª„¿%”ò3”ñL  +@?JšF©V–"@І¯Ô#`¬ÁXÀL€:c¦ †¡(ʺV1jÛÛl¿ß?è ‡Ãé8=ŸI)à +'à›Àß´ÿ¦ý7í¶Ìýü‰ì†>€ÖîÜýÝ ÖnµÚ­V»ÝþbW]Y™2€bëgÏž=mîîî6‹Í"çÑ•M†|ò3¼þ/~å¹1ÉdRÖ/—ÿµçw„ûøE¬ˆÅg ñFˆWs“Dd2)@&“IN½€rrÐJ.·²š»9ÉdéÉ…©À««+««wå Q,žˆ%B7Ñwb¡èõ`0øòðððpxxظ½¨×:û‡ÃÃáÉp4Fggg§§ã“ñÙùè||~þò|<žžžÇçgçç‘Jx:ŸŸ¾GÇÇ£áp8ìïw£Ö988è÷ûÏç`f-à7Q¤éLçom-Ÿ_üw×Ó‹©ù.À< ð¶qàÅKÀõYX /.3 ÄÀª›ÖB`u«ª)Ë››eJ·ªÀ +Ì4™¦Éêu¨›!nL—€-Êef>hŒ ˜YŸŽÖŽY¯›uÓœüTµ:Ði˜¾¬¤Ó)Ê¿5€£ÆcŒlÇV—‹Ð’(­Ô¶·Îà°?<<>>ŽFÃÑèôt<>?¿É +œ #A/ÀOž¶$hµÛÿÏ/v‹ávÐbq…·~r&KÁ[OÛòÛ<I‘[Ïž=k7ŸH¿ÉUžüÓqþ&ˆÇã7nÌŽýÈŸ›»Ó³ ­;L„÷ÿÂõŸ€_è%Îår±Ù&@.‹ÅQà×ÝÕÕd2î‰'¡d&“JF™RÈM}«+Éx,9Vïf™Üêƒ „@,–ˆ%¿¾¹8ô/¯¿ürpxvvvvöòÕ¡’ÖŒm‰ÇÃÑñÉÉx$5û¯Ç£Óñøì|$‹€ñéH*{çãÓ±D€Ó³ñùËó³“ñÙøt||<ÏÏ^žŸŽOOGçç§§R <Æ'LJGÃÃ~¿5­R9<{õòììììŸ~ûÛ‰õCóäóï¾[¸—Ï/^¿¾øî<¸÷wÞ ¶8oša½^o°áTÔ>*>%œŒNF'ÇÇ'ãñééh4:>9 GãÓñød4:9žœÆãÑéh<<9> OÆ£Ñèt4: ‚Û®UÖkûã—/_¿zõêÕ« `Òœ×/ÃÁŸwßÍç%H]Ðòxàí"`êª.@,–Ïçóù’¾^*éz¡P*Ý»WºWÒõJ¥’/ÉÜM]¿§R×åÇz7Ÿ/ä×ïÖ×õµR!¯PÈçK…BéÞ½Âz¡°¾^*”îî +…BI¯P½RÒK¥’^*•ŒR©Ïç ùB!ŸÏî•J}½¤ëòÏ”Ïß+¬ËVBþöíÛ‹©ë±Øõ½RI§z%¯ë¥Ò‡¥’®¯éz©/Ý+îåó…Ò½R)*Û¬³¿/IàÉèd4Fã³Ó—ãó7Àƒ ˜k¶Z­V[B@»ÝÞ“À‹ÅbQm¶/”òò_ÐÚ¹²’  XÜhŸ>{¶·×jî>ÙxÀ/\÷y>ñt÷énëiûéÓøÛO2qãFR’ÿøÕÿà2'0¹€çpB^þh‚HZ‚©)D]€„ûCr««™D&Œ'WVr¹L*“ÊdRQ`2N$@nuu%·Y%d’É\*™[ÝX½;€÷W“ó°úí à¿EÀ—_Êûÿê7¯Ž ‹‹…ŠQ«Ac»Óï÷އ£Ñá¡ìÔ Ç£áptrx8<<ìG£“áðððpxÐ?<ãcÃáð`ŸŒG£“ñááðøð°ßŸŸÈ“ýíÎöv£f¬+Ûç¯^¿–ð_{UØ7Q Ï ‚ €òÀºŒ ‚NÁQ?Ì`ŒAÐ;ê}݃à¹Þ‚^` ‚GŒ5X}SÓÊ”*iMÓÞÓÒÊ­ôÂÅ/‡4£±Àt]×@£š’^¼™¾™^XXXXËçó¿ +¬^ϲv‚ÀÚ1cÌúå?|õâÃÁ'Œ}i=ð5S”eMÓèVÝ +˜iÖÙ ]Öô,¶ÜcfY–i2Æv€1ƬދøjÐè10ëù_ª¦iYŒ™Œuð4ÀbŒÑõiî˜[UZÞ,+i­Î,ë—ÿðüªôœ±žõ¼÷¥Ñc9‘±^¯×{¯P(èㇰ½ßÙ?Ø?‡ÇÒíuvzvvzu@n–°¹Å ­§“ȧOÛá4@±¸Q|pž4[»»»»ÿÓÿ´»»»û´ýTê†íö“•læÉퟴÂ6àÓgÏööž6wŸleÉß”Ò_(Jüxú´ÕÚmíJ}2þ­çFèå¿=JIÀôúG—¶ŸÅ" +0âq™ß“ +C2‘94eRÉLjš +œ‹@f†¯ärÉx<€ŒTÞÞ@Öw“‰x"OÞ]]}ÿÁêû®D€o¾¹¸$X2€¨Ì;PJµ‚¢W*FÍh4¶÷Oûý~g»ÖØÞît†'Ããa{›u¶;lp8öÙv‡±íNg¿8žvýýÆöööÁñáññÁ~g_Ž›O†ýÎv¸{B×µÊþéx4 +¿Æþ˼xÀ¤6´tz‰ê t¼ ¿¼iÕ¹3°X¨³ç¥G¬P•ö:ªý@.îÒmñ¶’þÞ÷Òék ×.Åøitº*uYÎã§Óé…ØBza!ö?–þÇÒÌ?ïY&c¦ÅêPfZ¿üåQ‰±:0˲¬J )Ц-k”Ò­­ª¬åY ƒV˜i²£0-ˬ˜¦ P7MëïùcìQÝ´,‹1¶âš4 YfXÈPJ© ¦ä×ÍjÕ4i¹¼¹¬)iêì“Þ/¿zQb¬eY½J‚1Ù·@F£ÓÙîô¥™s4OÏÎß䘀øÜ,ÀLfÐÓv{¯=Þ\báíßÝÝmµ[ZíæÊJ~¶÷³VswW@Hó7š— ?m=m=}ú O&ã±x<~u0-"ÏïÌåŸÞþxÈâ‰+ —.ayÞÏÅåò)ä’©\*j¬¬®¬®ä¤«/¾{#OäVW¦°ñþû«¹L.s#™ËÌ0€»¡(™L¤ÉUY›ð«­KvSÖ–”›i…˜Ö?ôX lÀØÎ+¨| u*g +ZE§ÆööþþþÁááÑPŽsŒeçå›J€Éø„$®€V«½×n‹EéὊÈó?íî¶ÚíV[þ×Ìf’òíÅâÓŸýlïÙÓæ |w7*3ž¶þpH&‰X<ÝãYßObV Ë‚eBèd`$ÿM²BS©T*•Š­\€ÌdóWîÆ ¬È€\fZ¬ædõ/@&·²’‹ÀÊ\ ‘mÀdnõý!¸+K€d"‘J¤VWßÿýÕVW¬^]Ûq´?å‰è¹…˜†>ŸvÖ …J­Áö†ÃýŠÞ蟌NÏ_¾<ùòüô¤f4Æ/_žŸŸŸ¿zùòåh»f쟞¿<{yþòåË—¯N¶ZçT.û;?ê•Ze}[†þ¾<h¥qx2û ¨hz¥s8<>9™‰ž²_„+ÂMfõ,³À¤¬_1«Š¢,É$jx‹Ù½ `P +`Ö+Â.¿Åäç&ûóìÑ×3ŒQ:%9 j‚Y{Á¾ÔJi¹J5E  g%€:3cì!ƒf“ÌEY×éÛN¿xp0GÃãÑøôìôüôüìüÍ vq·æ•ð Xl7Þ +»»»­Ÿ´Z?iý¤ÕúI»™Y‰e= €{?Û{Ön6›Åb³Yl>}Úz;´Z­o¿þ²´ÇbQäŸñI&âqéõ ü‘O H梕á“ ‹Å©TNÀŠ”g \xw5w#]€L ˜‹@N2€hÝ·€¸€\Vs™\&™Ì%“¹Õ÷çÀjÈŸ{ÿýVW=‘;ŽC8çü³n·+@pÎùxòãÑx<<ÞÖjûÛFgÿàxØÑ4œž¿|ùúåëßþæõ˱Q©œ¿üÍËßþö7¯_¿~5jT´ýÓׯ_ýæõùëW/_Ž·+ÚÁùË—/óúõË×úA•ýW/óú7/_¾1ŒÚ~ÿ`ØÑ4m|öòìå«ß¼zõú7'5œ¿~ýêõ«×¯_¿|=nT*ûç/_¿~ùÛW¿yõúÕx›jû§¯_É + ªt^þæõëW¯_Ÿ¿jŠÞ¶ ½:Ú>8ŸÏÏgŦÓ7µÓs'€k±Xø3·nݼ%)6ÿÒôµ……k7c QLw,¶[¦”jÚ²¦É0ãt:}3­Ü¼öÆý×.ïæˆÅbjÆ Æ3Mö|‡1PgŒõê¬2f ªËв¤QZ…ê :ù’®÷cÁc&@ݲzŒ1u“1ëëúÀxÄäí˜eš2nÀf†" #X+•ô†ešìÃÖ¥´º¹¬Ü\`Œõ úDv˜õ°gš&PC2£É4 ñÃíëlŽ‡Ç¡0>}ùòìmÀÄÕ ài+Z €Fø\êüeÍVsö9Þlíf‹ÒIÔT‹ÅÝg{{Ïöv›Íb‘óæç?ûÙ³¹³7w~öì­Zq“aMŸéæÅcrEXTñG°X,•ÊÌÚåjî\*•’óBñx<‘˄ۧ2`ÓÅ_7’€ìôËÜd@Š€+ wcÀ«@X}°ê á‹À ¸Î,xý8îèóÐ?½~3€þÙËׯ_þöuëÁéëW¯BXoРèWÀÙ<œ^bß|óoßü[úÖ­[·nÝJßJß¼™¾•ŽžÖ×Ò!%O§Óé›étz!½° ·á¤ÒéôµôÂÍ…ôµ%…é/,\»¶KSeYÓÂ]Ý‹é¹•ë «5®Éµ[—÷ù†aô,fÖ™XŒí0¶Ã«[Œ•‚)¾1}PÕ–5ÎÔM~ Àø°Á Ë4ÁŽiÖÖNt7M6€Ÿ7˜išÌ²X§¾ÃLÆ€@˜ Œ#¶Öد³^`™¦eX&T·ª´ZÖ–”´fšŒ™%Ƙɞ[Ö@±ÃLfÔ$®ÈPàZ£ÖØÞß?8<8<NÆ£ÓÑéù¹tt_1 0ë|3<ÝûOOÔÅ ^,òjs^|2€'OZOZssA-U`cx±Ø|òÅn~of“'ýdJ0–ˆ†Bª?Ù<ùcÉU;ÒÕ0!Lêò…©d2•’"àE§}/•RˆX@.·²*=@á¦Hxx#bw'Ó€©DêîêƒÕ««V…'„ðçøÙ§ðWÝ®í9^€ÇÞŽ:Zg|BÎÀù˳—¯^_£íJ¥öòÕ Ì1€~óû0€Óó‹À7ÿöÍ7‹·oߎöŠß¾­(JX¯_O‡{ ÓJ:V‰‹‹‹Š¦ÜTþø–í"ž…ôÂÂBZQ–4å;mï6}EÂÜÖŸµµµµÚÊ®ëÃÐõ’^ÑKúÊþ°òŽ®hÔ¨AµJ!^\Ì +ë…B©¤—Jz塞7>Ôu½RÙ®è´ò*zE/éÆC]/•t]/º®—t]×+¥?¨è%ªë2¤]ºŽJº®X2Jº®W*u]×õµŠ®¯ +ëeñz*¶X*ézE×¼®W Ã0*óz%z¥’®¨ëŠ¢hºaÔ¶¬³px0<9NÆ£ñéøôôììôåÙàA"ˆ{ ´ööž¬€i F‚Ékßl¶æûíŸ'PäÅ'4‹¼¸»÷Æ»ÿ6páò‡Ÿs\V1a£_6ô'€ùÄb±\jâS&piHšø.0Y2¬\,äp&R s¡ (7Ó\¹'®b¹Pxð`žܸ!Àû¬®âM`ž\ }œ–ÀþÛÀv¥²v¹˜cçßRüó8=ÿo3kAd  \8‹š–ŽÅä]—“ +J!µ¸¨(‹¼¸¸¨,*…?Vo..*‹‹‹Êâ÷Ré´²´|]I§¿—^H§o*WVüWÀâÍ›i%½‹ÅÒ óBÆcÁ €Fƒ±4XÐéŒ=t X#Œ ss« +”V €GÁ€ z½_AïçÖ``3³:  Æ€€u¶±Ÿ³€1Ì ‚àkãE0ÆÆ‚Aô¿b¡ÑXôô˜Å€êÕ +J:­1Æ‚`-Æ‚clô¯z Æ:Á ‚BAQ*4dýƒƒãá0Ì=;?Ÿ½<{CàiQV¿‰ø…6à<ØkªÔb±ÈçŒ@Of4€'Àn«Ý.ªí§!hŸüloïg{»¼Ù|°Q|ú³ÿåg{o9W0€«/¿œìÅcÒÎ?ëý9ÉÄt¿Oæ’K(Ÿß)¦_Q¬äVV33 `¹ät8Ú)0Ѿ¬F ´…]€»«ïo<$€î,„€/„ë8@øè©¼ëù6 +ä.çÜ&œ#Ú¶¯:ˆ¶ÀW¿yõòj¸ªx=¿8=™–%€vñ(Š’¾»¥,k𶬕µÍÍrYÓèbA£Q¶þÒ²¦-+KRº_^VE)—ÓÕô­›Š,ÒRÌ“»¹ßxn-/+KËKŠ¢ÅÒéôÂB,½0•LÆØÇð‘ ½:”è?.  Ç L·ª›ݪR0Á¬›ìW¥ +JÔß Ô †A)|D)˜¦e2fõXððEØ+€ºiBÝ Ø‘eÖMSÎ –dÿcSÓ4åÖÍtZ¡5À0fYÕë™À{Ñcr戱ºi*Š¢U*F£±Ýé÷÷2 l4dðå[¬À±°;þFhíí5w›jQ.¹ †%@óØmµžÎ0€fñɳ½½½½Ýb“?(Ÿ>Û{ûùâ‹/¾ø"ÿ-—?JúI¸PÅÌ­•±RöËÌû¢8äd” ¯pNZç4€»ïç’S•™\¸èR ›/ro‰¹d"‘ìv]W8Žû#r‘ضÍÑ€p.3€)àexŒèÚ¶ªœûÑEïm%À4í;i§§§ƒiËòDß//+Ц¤cÊ–¶¤iÚ&Õ6)Õ4.Rí=EQd_Êýïiš¶´¬hÚÒòRy+Š¢¤åߛ酅k±ïÅÒoÝå©hÊ’¶¬(ÊRLI§Óß»–^˜jr²7”çh ø€RZ{8B»LßJËu:ãV¨³ ²c±ºiP +_ë3 ~ +”VhР“N¢Ì´Œÿ½Ju“5zŒÕ3(ÛÑP ´LËš¢(ék +¥”²,ƬÀ²v0öÕ/Íi¾S”ºV©Õ éÝ88ŸœÇ£ÑéùùÙÙù«—oò$®ys[­öÓÖÓVëó/ší¦J¨W9w[?þñCY`º%h·ÕjÕvk»ÏööööZMþ`ãM0ßX[Ë¿íòOÖ‚ÄfÄþé#?~‰Ä9éôÉÍ@"‹Éb•¨8_¬äK\fá`ßL °2ãxsàÆ| p×qœOmD´ín×ý‘+„ø‘ÀcÁ9~&‡Û6爤۵=qÌ0gÐW$ xŽÇÑ&Ä÷]×sà;1€+àtvà›uíª£Äb·ÒŠ¢iÚ&­n–7µ2¥‹T{¯ ¼tS+onj›6eÛO£©¶¤(aàÚB,»™~P´²²¬(Š¢]WÒ©t:}saêž¶Õëak€VŒ‡c3fí0+èõz@«uZÖ§ùÜfϰ,¦i}õÜ4ø8‚JuF£v³,«°Ú‹ç–D +u0Ao‡™&c½€™=Q¦¨¶¬¤Ó +ý€VŒ‡ì³,Æ‚Þóç=Æþë/-34ÕS¥ éF£¶½¿½ß?ë@Ç'ãñh|~þòåù˳© œÙoµÛ­§30¿ µÛj·Û²+ßjïµöZTõÁr©hî¶®LÚmí6‹O[»!lì>ûÙÞÞ^kccãA±Ù~ö–‹žüü;ïäßpùÓPÀÄTðŸyòÏBÔçO¤r)9Ù??)ŒÅâ±ø ä¢NàR‘0ßÈdRÉd*—Ë„ ·¶W¿C ¢ãB"—`w»?r…®KˆãyBøÂæø™c;\2ÒíÚ¾p\DZßÈæÑW—Øѵm2eÂñÐ!ÄüØu}ß·mDDü¶.Àw,ÎÏOÏfÀ—S@zqiYÛÔ(Ý¢›t“Ò­Eiؑ際›››š®i¥ò5Z™.jš¦,--)Ê-åæÍtú{iåúÍôÛ`IÓ$fÐë5–ÓéôÂ%0™Ìï1 JA?b&³äPeYfPÝÚ¢t‹†EÔÆL0ëŸôv{¡Kî_…0¨F¥—)Ìÿ0w³¬ Ò ˜´ñË&àŽñµi«³žµc™ëL:¢5J5åæ­´B)¥ðaNK2 ¾²fæ  (šœltúNNF£“ñ¹Ìw{5cj·CÃ^a=Ñ< €ö³ÖUUU2)ž4Ã`ÀY>°;š­šÍb+dͼùų·]}yÞ¹sçÎ;ù+.ÿÔÆŸJÍ.›ó^x¹¼ê©\.•”zÞ„$C!Ü!šLÆr˜€ÌÕ]€\&™J¦r©h^pR¬|{ —L"v»ÂuÑq!ˆ¶í:\×q®䈄K€Ü¶‘#Ú‚#w‘ „;œDa#çrÂÚÜSyÈ> €2€ObO€£‹òø>Gü¿£œK +=ÿ MôNÄ–7i¹*ã¶)ÝÉSMÓèÖôwhÚ&¥´JËe TÓ`q"!Ü’}ƒt5¥¤Óé…k WÚ¦¦-kËK +\/¤•túÖ­›ét$6=z€YŒº5`†lçK€e+W«Õ­©È|Q², ˜ùü/,‹ÕטY}”R¶ruó“Æv˜eü²X¦ìàñcµ¼Û=˲Ø: ‡œÊååeåVZ¡|%0kgDzXðeO†„1Æ ^—NÀmÈùïƒÃápt2>žŽGã³³—ç/Ï/ÀÓ§íÈ9ég4€ÝV+ÑyÚjµ?ß{Ö*ªªº¢N@O®€'¡°ÛjµŸ<(N YÜP‹¾xë¹sç;wÖÖîܹpùç"AgJý¹Í€óR@2,b‰D.ªr‘Ÿü®œÜ–тРÀå.@&“Éä’É ]€ÜÊÛ»®‹‘œ/„‹ˆ!@›‡ Àý‘+„ëâ~&l•Û6¢kþ#W$*Q³ˆ( ­ª9çÜF[%„s‚‘Bˆzßæžç °?îgŸBªŽ/Ð÷Ïñ' e…!ïÿcŸ;Žã ¢#¾Sà²xz~z1zåÑ5M¹»¥,o–储V«4X¬h¬^ †ÒMJ·äþ=J)Ý4Ci@™ÔJLQ¤xíJ€¶¹¹©i›Ú2K)iEY^VnÝ àZ,L×-麾!ÿW3uý¡ñð¡^Ñ+…EE‘á½zéÞz©¤ë®†!;r•оVÊë…’.‡ÿïJ¥õBaÝ(QCöu]×+º¾fÔ¨®ëòCJº^z(g´¨^©èù’ .Ü^\\L]¥ ¥’®‡¦bè+ºþP/5 V Œ¥Ri}}½ ÑZm{;ÓÇ'ÇÇããÑèôìô||þòåËW“Ón?m·ÃÉýÖƒädFîÂ0œê‹àg!¨’È}€²Ømy‘o4ùŸ(ÍÝÝ]™Þjµwl4ò¿Ýäj±¹÷ì[®ÿkïܹóεµ;wÞÙ~óퟹë±äÌ2° @”ð™‰2Â)\2@¸dÎ ˜ËåVB#PnÞ ˜LM£.ÀŒp± @ˆhÛ.Ú„?AþYWH + œ\´ín÷G?r…纜8ÄãÛÙO]$Üý Iô]ÿq…À®°mb#·9wDV%D%„UÍb—{ÜáÑ#¶mÛä¾JÉ +¿ëùžã9]’ñæúQ >ÁÇ}îÇùˆ玃¾ïÿ^Àùùùùéùéé7o¹ÿ”V4%S–4º.تnQÊnWtU-¨ÖëU¨J&° ! LË,¿%-ÀKKKKR +TBfÿ&Ð&-Ë1 z]Q5eYQn¥Ó ±ØµX¬Ñh4ÀÆX‡± ~õ°Æ¯Õ{Ñ{qôâhGƒŽöqµÊÀ0ë,x°//Žž³ì :õ ÷e‰A‡1ÖØf,°‚3MÆØÀú2ƒÞ€Y,8jü^ôž1Æv~Þ`Œ1Ö^ °/Ù¯cƒ^¥CÙ6PJumó½›0X/пôŽGGƒ£õ|0è/zÖ°€, ëÚºV¡F­Æ¶ûû‡ÃããããñÉh4>;;;?ŸOïÿ«§ó0™‘›’y`!´?ß{ZTU5»²¢>i·vŸì6Ãu`ÍV«ÕÜØ(676øFqFœ€b‘[?ÛÛÛ{Önnw¿>_»w¶ÙåÛ?Ù,Ã>cr;x"9M O*ÚfŸJûoJŽ$ãsK¦RÉLT\èÌÎdfKy.•—»9ä¹CÈg6ڶ뺄säŸu»ÎØ.¢m“nWªˆ®‹HáY‡P&pUÂÎá£ëvmÁÑóÜ¿õÿ¶û·Â÷]÷…ç!z¢Ë9'ˆ]Ä®C\!ºˆŽðy– ·ÛÜñ}g +@È„ã¢ë8œ;.ú¾ï Ïëv¿DoŸýîwo¾ÿ•–5J«[U€­*T)e‹”RMÓ¬Vª”Ò²N©YÝܤ”ÒÍ2…|ÖËK! xïúR:N§¿÷†.€F©V.‡ ¤ÓÊ’¤×b±XŒ5GP3 ঌò¦G3ëÃM€År¹\ÖÊað'ƒn™=Ö³¬0¢ƒ•Bõ€R +”Y2æ&ÃK&–ešŸt"9Ò€YG=Ëú‡@*ú‘Ì.P”tºl2(¡˜YŒÕëXÌ4C)Ò4MMÓ$lÿÞˆ‡ëh/À̸N»ÝÞko„0Ÿ‘J™a ¥Ú’öÈ €€í0º^ÿ]¼®(7ÿXI§S±……Ë ›”ÝÔ4øã”¢½§PMYVnÞ”ÃAÒ 8I!P¥7À#™è½ÃLÓLi[åÍpéŸiš0Ðû¥õ–Åz&ÀGTÚxÂlð*˜”Rºô£Ð\T7¡ +úcæÈ­`¦YgF`YÖsëf… E$jï)Ê­›éM +U`%Ròç ˲Âôa`Œ±¨øƒ@ü +0³×nfWV$xºû$\¼À¬ `·ù—Íæ_î^€Ö³½/¾xÖn7ÔâÓo€;kwÖÖÖÞ¹óÎwîÜÙfAЯ$'˾&Žyˆ%“ÉÔ•§„bq©õÉ iæ§|òç2ᨘ€PX 7ƒÌŽgr2)øb`E ú(@ØÙìg6rιCˆmGÀþÙ¤ " +»‹ÈÑVw‘snÛ*qT9QW¹Oq|‡sÇ&ȹ‹ˆ¶ë>ö]t]9è£ÀÇøXD!9>îz‘£Ž‹œ£@tl.P¨~}!8¢Àl×'®ÿ#î:"#f€ ç?ºŽÃ¹p]¿ûÿè>ö¼nWE´IQ•‡s®ªêU0ó¶þ–³¾~;K+M×5m]Ó5]×t]_kè:ÕuªW*º¡ÿ€†V0 +T‰¥ …uM×u +úúzA)h…BA¹½¨,¦ÓétJ&}^єҚ¢(Ê픾¸(_½®1³¸#dÖ€=<’D˜i2fÂõåry³\•€iÖY©×³>aána +A5Y$PJi•Q0ª[4Ú•#,ؘfÝdúQÏ2MË +ßè¶¶(ýöž¢(é´F)… Ä&MJ“1“&cÔ€iš¦ù‡3€xd~ø›vs%»’]ÉFÐl>yÀ샿ù—ùd·ÙÜ}ÒÜ}Ò”5@»Í‹Åݽ¾ä×ÖÖÖÖÖîÜÉßÉßy·Á‚ ¯ÿjî€|xÇ#=?•L¦æ€‘%J±?—Kɔﻹ\2–L%É”Üñ—Lf2“à +€ õ¹0œKf2™Ô\ à"„x‚>: +`Ûˆœã¤@$ûˆè +PØ<뺂 Q‰ª’¬@N÷„ê9¼H¹Cˆ@ŽÂU]ávÑu‘£@‘ DÑõˆ×õdmñ£.á6ž@„sDW çè¯ø]!|— +\ˆ²ö÷2B +ôc–s²®ëw»ÞcÏëª) ¢m_Õ8===%äÍô¿¢SªÄÒËeZ8쌭-`ú׬nÉ«E{ €iŠR/+ŠFéÔdÖ–®i´¬iÕ4 š¢(K¡-èÚ­˜²p… i[R\¬kЦ,+·n¦®][¸»Öxô¨1˜x>w—‚>ˆ‚÷L`ÉRKËeM«V%H˜Œ•˜Ñý€ $û‡†A)­RªQ˜NkU +Õ*˜uƒP˜a`îTv¦ûÉôl|¾§)7ÓiE§´6(Ódl`€i0Ó€z½8ˆ½LT€v»ýŸÚÍ•lveEa!ìÎìj6wwÿò/eK0h·›ÅⓊßwÖÖÖÖò!¼À'lrùÃ۟ɤR™\hŒÅòQ>€d<™šü§®Ÿ\*ŒJåîÞÍåâñd.•”û@“™LXH+ÀÊE àîêe'`2¦…ãÀ¾ïG!„@×Ct¢`²@$Ó>¢|`;H\Á‘b»Hl•u…Á ኢ#8± ÏÚœDŽ®Ëñ±ÿ#n»vðÜÇB…‹È=—#NuJi_· efT-€ªò=(Õ”eÊ(¥[4J÷*Sº)…À›ét:ýGé´»"p“ÒÍÍMmIÓ‚E*=A7Óé´L'‰T>0 6É3à”ìX‹™[饥M-L0M¦›æÇ‘wpú¤¦BK tJõŠNL+0¡¨CÕ2Yä2¾‚:Ôë“…!:TetiYF‚Õ ^’¶b€ç_YÌü93ë LÆL³.üÁ@ì’К€§’dWV2“@"@ëÇ­Vk÷É”+4›ù—»»¡'à àÉ ÿéY{CÀÞ[ ½6wîHøÊbì“?3[ÄñX,™IÍèÉØ¤ˆF‰0û[¶s¹\2'#HÈår²ÁÞ˜0; Le2!DB—`!¢˜P€°ÀI €HÂ>€ïŽèy.GäÜþws•تªª÷É}Õöº?ý;âpÎ9·?%¶“áŽè " +‘ ¢pÐQ=DŽžp]¡""º\ ð8ñ<‚áÈŽh#"º.f9¢@›¹Iÿ(2ŽýXpD÷±›E.¸ë8œWJa@l¢N ºÿ6±m›„WžbÛ6~ðúƒ+¿éºVÑ•…t¹yk$ ¨²ÉM¨Jý¼ª( +¥T[Ò4Ò?¡T£”njÚf¹B¥p+}3 ¸b `ViYº‡hjsyyI¾^ŽÅ Ã0‚P0{¦¬´Yiðˆf½èYŒm-.-keV­×MÀ3ëò.3€ÌbÁ#ó…iJø2t#Œî°ˬ³˜uätê0“ÉÌC`Œ1¤î©itSIk,0~ ‹ ‹± 0¬žµ³óÜŠˆÁÇ0¸Ô¸ í¿i®4‹Ú»»»OšOvwŸ´þÃ,´Ûí)xÒÜÝ ÀçOŠÍ⓽½/Ú{íb±Xüü¹&ë?Ï߉îþµµµw' €±ðÁŸ™í’©d<Üð5«$ñˆI –HDÕ¿D€T*™ˆÇS©L¨ ¬ärð +ÀÝ‹>€É8°Í¹m“ïÿûÄ÷}áA„è ‡è†à³Ïæj€«øW>GÏF!<[ Šö_q›;KˆªäÇžO¤G9A®rŽ6ç]nÛœ´9ç]T…ÀÐÌ« +DDnûÒÄ rŽ(‡sä„#çYŽ !¶E$ò‡Nڈ袯¢@(<"\Ï÷¦¹ªƒ¬:¹þ6ÐÀ¶ß¤PJuc!Ö¾”!{UJ©FXž…yw´ +`ÖÁªn)”–+a¨•bü榦Ñ2¥š¦Üšr€´r%l•µÍÍ‚¶Y¦)mi)b ×®]»¦øá‡¥B¾Ï¯éúzÉøP×õ‡¥ÒÚ½|^X¹W0>|ø°¤¯_O/.¦ +…Âíüz¡ —t=_* +…|éž®¯—J…Rþ^¾PÈçõüz¡"§õ×Kù|¾ ë…‚~¯¢—J¥¼®—ô’®Ö×K÷ +ëº~¯TºW(äóú‡%½TW„¼»˜_\L_OÇÒºþP/å×òùR¥r¯d+%ýá=]/åu¹Ä$:÷þP à[@ëi«Ýn7WZÍl&«6Ÿ¶www›<•Ðn?}Ún·§ BØ(6÷ö¾hÿÏíâƒbó‹9ïý_|ñE»Ýn·å½_“€;kïLÀ ’²í–œ»ÿÑn¯x,–L…:€ û›Œ Æ' ©ˆ¤¤õ7•LÄ“rÃo8*Ýþ+|Q@fv1H’ÂѶm›|ÿû„ ï G8 +€hÛ3}€I @PäŽ*Ü.¢ËQ @mBᜬªÕó„Ol…'ÛœûÜ&Ü–¦aÎmQ%žðQïsŽœ¨¹œ@޹csÂBˆÄÎmNð>Q‘ÛY‚mâÛ®«fI6K8çÈ1ãØÜFÛFUŽDꇢëùž/¢ +€ÌWö„ÜŸÛ¶É„ØÄžÌÚÌÿŸJ,–.׫ U¨RJ)ƒº•g cïhÕÓ4YukR­LiE+(ÚŸ„nYM¶7•%EI+Êÿ ³„n]‘ù³@)-—©Fi¹šÒ–åÖ­‰páZ˜úµÙí£a £AÀvFÀl--/k…­z=Ïíõ˜¹SV€1Ë ßMð‹Ò@nÔ`,Sÿ2ÒÿIc°Ã˜eõäÖ£.«›u€úVjÚrZÆu`õ `ìˆ1ÖØ“•:Œ ,ÆØÎÎŽüÄÿ;i­ 1ÔÖ“ ­ìFÐ~:¡ДBán«ýù.)›_ì}ÞÞk7‹ŠÍ/¢ ºùív»ý×ý×Ýn·Ûíwî¼s'ªÿïÜÉß™€ç¥äÅ“J&ãáŽß˜ –ª^"6C&‰á‰¤R¹T*O$S©T2|ð›]Ö6.&ÉG!hËïÉ÷¹?Už¸S +p± è´µ‹.rôtÐá\–ÌDUmô‡£#Ø}Ï#ˆüSÎmB'hbÛv×÷¹‘sN²„ÂUns®Ê¿Ml›ØÄ&„‰ÍUU%œ£JÑrá ‡ Ïá6·9b–ËëÍmr߿ܱܿ‘;ˆž3í\QbÛ¶:_LÀ.JׯÅÒJAƒê ¨Ê}Pä³.Wnƒe2Ó²LK‡­%~@5EÑèŸè”Ò2­–éV™j›Úò{ŠróVúf:}3½Ž)—úË”–Ëeªi¥)º¹¬(7oÉT¡k ¦iš¦ÅL6‚ÀÜa¦Y†\BfüÒå%MÓZ¯ÒêÀÇuóÏÓ¬›õGùGá&“™0VªZ¦Võt¢ÿ„cÁtI¸iîfÝdfÝ0 nF~!ºE5ZÖnÝ\–â€ÀL¨³^À¤àÀêë³L£Æò°ÿ>]€‹Ðj=m·›jkWÍdÕæÓ§³ÐjíîÎÀtcÐn³ÙÜmî¶ÚŸï›½÷y{O2€½g{_|þy»Ýþâ yóÛív;ù࿳¶–çÎ;wî¼»6Æž—Ž.!@B¦$ÂéÞd&•L¦R‰¹ + 1ƒÉДËÉÀT"ž í™T.“ +ƒÌ—Ѷй.—¬×&ám")Àœ +ð$¢ó}Ùõw¸'<Áå@ÚÜ&÷ 'w8Ꭳ:NWpEW8YŽHléíÏd³*]»ë{(ÜÇž?õî«j6›¹ŸÍª÷‰ms 6Ú~·ë‰¿Å®§Úý®ïùŽïuÇ÷Û(ÿT6ˆms'KˆšÉd³Y5«r›«„Ør_ ƒÂ>v³˜TSðýìL0Gì7!€Y£ÊµEå=ÍdÔ¢ÕöásfR +P…ºe2Vý`kÇ`´¬QJõ‚&Ãù7)¥Ô¤åD¡ 7EI§c±tlùÚ%°N·ÂTpº¸%UÛéô­……k×®-˜¦i2f1`fQÓ²,s'\ý&€)gzé²VÖtF«Õª¼ÕæŽÅLÆL–gF( îX`šlÖë2)¤ZÝ2 º @¡Z˜Ì„-*÷ì0Ód¦9‘ùë¦I·ª´ð‘²¤Ü*›;æÌ¬òסTÉ(1ˆºáaoÿ¡"à hµ.#@»Ý\iµ|wh6C-°õt¯UT‹Íö^»½×Þx GþÓí/Úí¿þkyóg@Täß¹“¿óÎ;ùí)|Ò+}Å®xþÇ'+±X*™LåRÉD,žœŠOD€d2žŠcñd.™ŒG…™à++Wi‘à¾~ÑG ßú>!|VpÑC|l_è í… +ž ÜAD.¥¹,'D%H ÍQ8¹ërŽˆÜSÎmŽ${Ÿ;ˆ¢ëæ ßs }î;œp‡s›ØÜA• DÂCÏF]G¨Ý®/<áØžÜ÷}âØz‚9ºH<â!zAÇá\U‰ÉÎ! +´¹@ÕFb_QÈ;ÿF`ÛæÕg@KÇÒŠ¦kÀ¨šPƒRVX˜›]·~uª”M#¨n•5íO¨¦­k~@i™Ò2˜e]nSn)Šróf:¾K_JICµZ¥•²¦½GStsYî»yëÖµ…˲¬(Ê7‹™R£3#ëMPb`šti™n¾@µ +@¡^g–eY̲Óë@ÀbVÀ«³{ LË´ÂÞ¾äì²$¨[&3,V—#Ãæ³c3Ù¡)íƒæŸ±j•V TÑ”t™YcLÆcûÓ¬›V0( ,æ4˜±zþ;h­+Nûiqå©€ÖÓÖîî“'O¢…^»»­‰€w%|ñô +ø|úÌ—o…?ú|-A€,ÞÙž)z¥°0{ÿ£øßX,–ˆÅcñȘH ‘ +gñX2—L%ãqÙÌ¥’É\lºä*@"™Ìq?›½?{ªòýP6gT€È „¹+¤äÆUDÁ‰Í ·‰(l• rnsÛ¶9 +ô‘mns$ª't8ñÐE}×ue=D¹ ]a{Žð…‡èqÑë +T}Wê‚¶Üï"rô¹ê#GôlÕq<îu=ÒEÛæQØžðlD‡ Aü¿í +µ8[„À³mò`«W3 -,,*š®ë”| Õ¥´¡3“Á“Jzªå*ÓVe&¯¦h”j”–i¨Vf MoÉäÏËV`Ù˜ÛÔ´umQN+·nÝ +ã…¥$ùÐxøPÿáC9µW1*ºþ¡þ¡Ì ½W*é´J-*ï®kÑÈ`åa ¨ñP×õµh P¯†¡Wò½ ëšN+º®ëà™/•J½¤—Ö’aº^*é%ý¡a†A+ú‡†®ë:5t}]×× …‚²˜JÇõ +­èº^z¨W*•J8R¸^Òõ¼nT*º^zžJE×õÊ·€i2öö.@ëJøIñÁeˆ0à[ -àóö^»øàÁ Dÿ)˜wÖÞ¹3mÞ¹sgm†„Àfõ¿èù?™iHÄ¥@0-Rɹè‰Kä’!ÈŸ‘»/Of¢i@DGGd³Y{z±ù<ˆT€9 +ðÙgḯÓurmmU6ÕTÛž>ǬÜáÈmN¸¶MÔ¨Î𼿠µ:Žˆ>Ê9!h£-Ptª‡Âãè"AÏ—nD¯k;ª‡œs$Ü“m€°=`#¢´rä6r[ r¼ïÎ޶¼ü."GäÈÕÇ]×ó=®’ì„@½ÿ&`«jpÅa,íæ÷´÷tRjcÀÀ0˜ñcl S¯0“=*iŒ @dÔ¡”~ õÃÁsºI)UEùÒéôµtìŠl0- ÚШ¶¨iÚæryYîŠ¥Ó V§ÓùÚ‚€±€5ÒccýF¥±{~ô(`i‹´J ™Í°€U޽ À¬Æ‹ëA£“gü|› ØNÀ0Jlc?ÿEl‡±çúó Ã‚ÀblŒ ½wÀ`‹QÍTÒŠÖ64ŒG,ô·;A‰±à^tXÀ¿Ø…¿R ìyÀ’Èe';l‡í0V7冂‹Vàø·@«X|ú´˜É®ðÖSºÛzÚú½à‹ö^{cŸGÏþÉon×ͺ¹¶ÝÿwÞyçλwB+ðØcæÇŸÿáç/Ž©d.•ŒKSPÑvÐX"™Š‡J%£¶A|ºêsbº"P’bÇ"›½?¼üs*€MÈ÷ùŒ +€ˆǶ-l;[ü̶ÑFîÛˆhBP wü®‡âqW :"á6›Û„Û<Ëm[%È´»ž”GD.l(ˆ/$=·çB؈6Ú]âqGÁ=ázèÚGGõ¹Ê9GÌz?ö9çȳžm«„sDŽÄF‘ íø>:ˆÄ–Æ`Dô\tìбäC°íˆÜŸõ\"ªzÕ,@¥¢W +±ëŠ’/Tî4 ]§Ô¨Tô0%ÛÐ+õŠ¡ëëëúúíÛ…Bi½°^X_/¤ó…u½¤ +…uÒn/*‹‹‹étêúõëß»:X×Ö5]Ó +…ÅEùêÅtêz*ÄŠ|>ŸH4Jð­V3"þ^7M`yª¤hÊ´R•Æ=Vê…½:ÐŽ:`R±3îÒÑF‰E"ujè@ °‚0%Œ€ÎXh&£ +záE•êTÓ4íº–Ž)ôÊ=ˆ–‰™&°‡`äƒ  &c»òô&P7ecc‡±)Èd!ëò,À…›ÿ&"xÀÓvëÇ¿/˜€èæGoÕë¦išÛïÜY˯­å'ãÀï6.3êføüî\¶þÃ@y¥SS?`´*0žH$’©x<—Jf’©T2O$g9@2“‹"Á.vP¦m ¢Bˆìýì온ž³9!øÔvˆjÛˆHlÛ'ˆ¶ŠžÀÇ®àØu9º]!£@NTÙV'öý,ñÐGªïw‘{G ={’"x’ + r޾ìÝ9¡(L∈6¢ƒYasäÂ%¢ÚÅÿˆÄ."çªÇ Aù‘UBØHÐQ¹ƒÈ=©p.Y@Öã„{œsŽè9§À³mõí@U¯üBݱèÍ[48‚ «gÏ+,c,,«Áª([²d`tK)è˜NY•JO€F«rEà¦róf:}óŠMŒí0Ó4ëuM×´2Õ–—”eE¹KÇb±…þçþçp/aã• +ø Rê™l@ƒ*)J«2̪0=´*˜@X­“•¼TtJa« +¦Î  +A½@iã­³`̬€þu¨uƒ*¬½þˆRJË?¸®¥¯Å +vhP ?£Qjyù>d˜é|QõÉ'Ÿ˜&ë¬7 @–eYñÙ.À¥g¿¼ã?i‹OÛÅLV€Öïí9h‡E€yûMÓdÑóÿÎ;wÞY[{çÎ;W@êL˜Ñÿ¢dßdÉé¶x´úGæ$©Dè–¢9n¾XÈ´É™Q8ŽÀûÙ¬-¯©D) }_8³@—pOå‘û3Bzª|>£ë>Vw]ô\äˆDµmN8É.<Ï'Pdá"r…çeepˆŒúT‰°mÛ—YÈmª‡ˆÜAQt]Ž.þT *‡ƒl›s÷>Ú9±?uœ¬à<œL´ rmDŽÄA´Ñáˆ^—m› ¢*»( +‰OÈ}2!ßÏÎÀ%@®‹1V¾yk³ +”å ¹š‹1 ¢=³Ш…º–VÊPÖ4-­h: =³eiÜ,ËÌßhýÇ% tU«eM[Ò4myY¹•N§c ×®-, ƒ5Û¬Ò\€``šP•¶ƒ²‚²X¥rÀ4ëÒú¦ ¥Ì–ï@£dÐJ¥B«UV …@ +Öh ˜e10™¼¼t0K”  ”¦4e1S(˜ž¶j cY€‹ Àü3ÆÌ«ÀÕ`YS­oa—à'˜­üYtýÍ:kÈÀµ0ì"°ÆÔ™u+ø$~áþKHå’òæ'ÉÄ$óKZ¤.ös¹D"OÎp€\.s©@Ž8ƒ’;BÍfïÛŸÙÓVà„|_ªs¹se©¬fÝ®À,rW¸®ý#×µñ±¾;kÛ*±1ë W p»ˆ˜ sƒÐ"ËÑ–->ß÷=Ï#nmb£M"'ˆYD$]!Ÿý\ räŽêvѵ ¢­¢ª¶ í€Ä&DEû¾ÍïÛaB)ú»h;*GÛÉ +¹Ã9ÈÑã¹,<Û&Yõû“ +àPUU%*¹š¬–Ó·Ê”j¬0`LÝKn\—Ýwös£J)hiåOê@5JµEE×)è‘(\ø«Mc‚c×®Íg¦·àƒä¦iÚÒ’¢¤oÞŠ][ˆÅ®AùÆ`­z˜Á€M°¬CRJ«[&0öœ[—¿0 ?æ@ÿFC¦PÓZ7ë!PÚè| 2#Üd–eè3Ô ¤(KQMQÒ±[Xý×&‹Öj°öõCËduÓd¦eõæŽ.!»;o˲â‰x"!ßÿ•"ÀÕðû—ÅK"`}òô7Mó{$å¿wîܹóεü• ˲vfïèúK¤RR÷O$‰)ÄC›Pbº4—K%±xbÊÂõà“À¶å£„À'E€ƒ÷³ÙY°9Ÿ£Žã ›DéÙçhÛ÷Iö¾šµ¹¢ë¢ÊÑé +D}´}W ëpÛ&Y‚Žã9œøˆˆ]hÎ]ŽÜá¶@‚ÈU}·+|W ¢‹]DßVï«hsŽ*·ågk#— +!2&жe¤ «r¢ª]‡w…ðmû3Â}_øº$«"r›d9'¡Üè`÷~×sÑ· q]ž¬?ÕCÇAÇñÙ#ö ªúجš…žiÖác³¦) Ö°åmý€n¦• +”jT[Tôpjˆ–Ã@[–`I¹uóætç茠º5ÉÝ\Ö–nÝL§oIÇPX0=?À0Ñ‚ ò+˜ ¨š“˜¹Áú$?t²ê›±¾±¥Õu +lAUæƒR‹U^@¸800-ÀxývyÁ×`ï>Ò4EIÇÒòƒ÷¤ÌÀjÁàW{!…2ƒ9þð‰eýÙÎ'ìꀽ¬àùóÞä½ü> `Úß½ˆþsMáºÉê ™t'ìÞy€eYÖclzÿÉ”L÷I%B#PrvUP<ž¹f8@*5-l]Î/PGq_ê€d"LkO6rÏ÷Wø]ò}ìúÜÉBG>ÿÌžï¢@¯‹žgÛ(8GŽŸÊv¦46ØÄ—-€ûo'„\YдR®ÖÙ ÄL¨K- ¿Jë`² +PjhiE£´Buª)ŠN©®”Ò²FË岦i›Ú²ôߺy3½^¸ +”.ommU·dÍP.kš¶¤ÜL§oÉ_•%€ÁX#|‡ €E!ÁÌ:ê±R`[ÑúoZ‡ ~ÃóB¾´Ï€!`&K€À ,³g1¬Ýê™À Ì+ùJ (e€RmY¹y]ÑÀ„ç“¿gYÖ‘ñÃXµé©š‘¥é»‰€Óóç½ 7‹$ß…ü‡‹%@û»3€Ï?o·MVŸw…åB,™T €|þ_ –eUo*´jZ/ôŸGº c¦µ#9 d @0ŽŸ*¥ë•ãC´º%7‡,+в¬(·–b—œé*À@(-k›åÍMMS”›iE¦‡4:Œ J_ÿ‚5‚£Á~À€  6°_öÙNðâ諞¦ ‚ô˜Þ‚`;G ~=аt‚£;êtìèÞ`g|=ø@ðâÅWGƒ’1 Ž‚`ð‚ c: ‚ €AÀ Ã¿.5€ô G@5JÿXg¬×`l0þ÷cAðâ«_ƒÁ‹Aðâˆuf{€¦õg&1àù%ÀÛÀê=ïYójÄ[@³ye 0 êõMÆØÎó£G Œè7°vØN¯Òÿ8{ n²:@^€;kùüÚ%»Q ¿\ÂûŸK¥r©œd‰x<™’}Ád*—I&b‰hùÇd è*Š­¬áÏó¼l‘_¥ªjö³ÿÛ¶™&@t…P…+8·m"8"w›DÑÆÇ»6GÛý‘m£íúžç zÜq§ë¨Žï¢pÑ·9_ˆœ¸þO}_zrÉcÄÇîcD!²‚û.º.:D8Ò dg¹@Ïè Ç·»Â'Þ$ñ}s!¸ê#v]™øécäØåÂvÆó„ÂñÌŠ°Õ |t¤s³DNstðLjOä䡃ŸzdžØ³€D qá@£Ðtº@ëìE©Ð` hŒ±G lÐÙÖuc=¥èzEªSª-*Ô£TÐõŠNu]×´hMQÓi%þ^:»Ø¸®¥Ô ô´@75MƇh×'ËAƒR‡5GG/‚€A£Ñ€~§FÀ¶Y§øAá6@ÀuŽJ¬Ñh5hƽéÑ€Á#ƃ~a&{4©Æ%f@¿óõ_°àçƒÁ`ð&§YgŒYÏêæ$õt˲.@ =bu€mIÂ"à]€Ø ‰}ô•Læd0 Az¤áO®ù¸M_à1׎!ÈG<çü²(PU¥ˆ–þhÛŸI@ß÷„‹ÈQxhbó.ÚœâOÑæÈQ ÞG!Ó~Ñï +B ç ÃmÄ®CDögDEbîù¾èzˆŽÇ³®‹®ð‘#ªDx. +D‡Ç(:*÷sØõ|ây>ñ8¢ã"GŸ#·mt}ÕwD]DÝ¢k# +ôñ±“(½¶—EÛFîÝèyaZ€‹¾/ǧ6w\´_„Nà‹`RB.~5A7ÊzVÀ QAÀ Ö9bðˆ5‚~Ãè0Ú…²c º®ÓKºž¯Pªý€RZ–±@ÿ>N/¤/M¦*` ¨NN8R¬¤Ó·d*h¯×ë J;Ìd;̲vØ#ÙÔ‡Fƒ=zÄ ,³Êò&T· N’æÔXIÞt0{½=ÆØ£0¨Ï„:ÀGR䓃~ÀXoÇ +~XÌ“•¨QcçÑ#&ë½è}mÔ€ê°UÖm ä_Á$}mYÁ¯ kÇÆò/æÚ€¦ÉBkÀóïÜŒàùe`¦0“™Œ™Ð˜€AƒÁáe`æÇ&3Íz/ê r‚?» ’°w&&€µo/vä‰dfò\O&s9YÑÇÉx"™Jå’ÉD2žˆ2Ás©ÜJˆ—8@Ìu1á¡ÕOR€yШހÌ7ˆð¸p…ÿ8tò«=Âæ„žuç¹ërmâ ø¶'„@D„# +.D‡«ø±¹ý™šU Ç, +»‚NƳÑE +ÇFîºQ ê¡r (<ôÐGOÅ®oËҹѨÄFôT_*xˆèß%ˆèâc’èsäòn–Û6¢OmŽ6Gôï{èw…j‡6Â"áÒLlÛ?uø}B¹Lî«áý'ÞÅ' ³¬­ô­2X¿´,•£Ðô>én?’û¯(Ð[Ú#}`1³jšt“l”-hUJ°¹,k%}ýæeÀB9´nÑr´$LIËÕâ ±^¯÷¢Â`ìHû=ìTÀ€h / ³ +y¨V·€åÙÔä_ª³:³÷Ë^ïÑ ø$ì Èi@S أП#÷@P˜&•ûˆ ã(|dZ½^¯#PmS[Ö(@}§5€F]"Ñ?–õ˜i‚É*lFƒËbÌ4M“}‚ߧ ð‰e½ gÍËŒÁ®fƒÁáá àã&ÆL˜€£ú´`e]ÍBÀØwîÜ Wƒ¬½½ cÉT.•›€Üx<™Ë%’©x<™J¥’©\.‘̤’ú÷  溮páxžçyö„\¡J +ðÙ”`4(º¾íúBxB¨ÈUÇSQHÝßæ™Ð‘¶J„ðºèéø÷ +…‡ˆÈ QÑóBP¸ÜqºN—£è¢ç;œ#f} À„È:6º®í"‘b"p²%èS‚÷9º2L‘x}´¹‹¸â£ã ápD¡r_2{—g<Ç%Èzݼo[å®kÛh;ˆÂ!(„°½®@Bäˆ1窃6qmÎ?儳DJ!òþU%!ð/|Ì,š¾¹Y·z¦ A‰Mó¦ßSH+TïY&T«@µ2ÀÝ¢] (-Óò¦¦iTÛÔ´%eI¹•^X¸œ ¸EMR)Fy 7Ó ±Øµk×Þòò6"p%<Š ×ë5ŽB5oÉÍ^=K@]ÀGTÁ0Ž`Ñ‹’‘4msY£æÏ/@ð˜ÉÀdçà+´Ó|rIøvðù`šûWÀ 8l´Ûív{fð™±ß Ö@.%Dð6€YØa,•š@.•LÆã©T.™LÆc‰œ¬ ’ÉL2 JåV'pÄ\×u…‹€ÈìÏñ’(+Ù,~&éÿ„|Fl»ëû]D‰Šžïr‡{ÈU›pm[µ yìv…ïzBåÈOÔ/àÜæä>÷~ücDxȇ{÷ºÂ÷9Aôl9‘Ž@‘AÇuÑADÁ‘!PxÜ."ô»(¸ˆÜ&‚xÈ w1+D´QüTEŸÛ]ßåYÇA +ìfEWü­§ªœ›#r×Ue„ zŽç{j—«ÄæªÃ‰mûHlÎÑÉÚ6O΀ÙÀó=§6wÀ”mÀ^]:ëäÚìIwÍ0à#¨ƒ–V´3{ÕòÐ%-ìæÑÛ[t+J *o.////Ék€9=$—iš¢,É@ ôµ…صk ½Þ/çàÑêðˆ1fYßÂþü—½EùâA©QvÔYÓ€­ äW°<·‚3‚ ´ +†qÔ˜€(üÛúsk‡± Ò³L“þ•ÔM°žG `ÂÅÞP¼]¼’0K{ h4BC¤Í=†óÍÓ@j³%@pD €…;î|×€±–›­â‰x÷]!\7ì¨IÇ­ì9rîñOÑáž§:ÜAsÏ÷<âw…p=Ž‰ŠœÈO„ßçĶ]¢“ëá§a$¡ms}©¾Ì¢G÷j쨳öá/:[l‡±ÁtŒY°¬¶Ts粘јÉÌc&cÖ'ì÷p†Ç%0Íçó|;€z¸é|²Qáí%ÀU T|"kQ6à·u"0¡Éd2•KÆã¹\êF2›vý“Q(øŒ +p™ÄÐ ‹Ç™C~QŒ(F Éf¹#ú¤ëÊŒ_¸]ÏnÖánÖ—æGx]â ßF×E!¢œÛ6·‰JUDî9ȧXäˆ(?WåçÅ¢JQUt8'ž£ªÄ&mô‘Ûæ¢­ªÄ¶¹ð|Ïsdl¯ð9GûÓO̹=à· !]á;‚;Gî9¶ð<·ë{=_øžïزö—ÏaOåŽïØŽ°»ÂqœOA‰g;¾ð~ÚEÇóîø\ ?åB.(¾oÛ‚s¹#¡áoïûªT9¤!@õ»¾ï»]ß•A\j6çœûYõ>±‰L›B|:h±t€cÑbH¨Ñq +TQh!¨×·Ê¨¶離TnT´ª¢”«tùÖ-EÎø\ж +‰kJ¨^-\»­ÿN ê™YVÀ€µ|ѳ¯_ËbŒYV0¬Á Ï}`ä;Gƒ€™½AmÐ zõ‚õ䃳`Ö¡J¡!ÓÆŒ mP; +ŽžŒYVï¨×ûÊЃ/Á—=küúh°z0`?ïÈkÃÛ ô¯™|œ23„Ÿ¡5øõàEïùs™\Ðë}5x|ù¼7èÉ€ÉÏbÌb–õÉT`¿Ð{QX=Æ‚Aƒ `ƒíƽ{ýÆ`§V0D$Àˆà#:;˜Ü ‚^Ã8 +^ ,¶cõzGÁ€•à׫}¤è}†ô¬~?‚ç}VgAPú:°«÷kýÅó`0öˆY,üã׃ޯŸ?þüyðüùóçϧàF<ÏåâÉT2 o}*—J&SÉÜ´[p÷*ŒaˆÎ!pƨF UI8±‰j{¡óßEDÂ}Çv#'°@Ìr.}HœÈ",u¢ª¾p|aûB zØu8"w9w%ˆ¶L*W?ÍdUõ~F"€|þ‹OçÐbé2Ø ÷jÔ¹ú²&wì¥P½µ¼S˜P¥¨¶IéÀ…ÐÍ2Ý”·ÊÚ²¹¼´|ëfzáâ’ðÐB0ÕÊš¦,)¼(@,îý ÀÚ™ +fÀÿùËžµ#9?„Qç%]×uýÃ×Jƽ?|¨ë•‡«èƒk yÇ¡`šP¥ÕèG¥pïÞ½{÷îý©®ë†aÔ Ã ºaä +•†'ùÞÃpVÓ”°3&5 ƒRªh<¬è†®ëÝ0ŒJI/•JºÌ ¢ºŒÒD ÔLö ýïÿ!Jm/•J%½½¡WtýŽQ*zI¯†!½\¥)Ð)á{xXyøP¨–>ÔuÝ0 f”êÆ‡ZÑõJ¥R©Tf2'ðÜbò£WŒ‡•ZÞÐõ +­ÔÞi<|øP×õ’þP7Œ‡ÑçHHÅãñD.OæbñXR¦ý¤r¹„R¹+`Âb8A€y!pÞˆ"¢Ù¬,Òm5Ôòä<ñzˆ.J—¿‹ˆ+“×ÈÁ´ º2!Üë +=ŽB Gô=bÛ6·ÑF›g´m”QÕFçS§XäÈm¹í8„ çØràÐsGBS×ó|áøŽã9÷mäH®:2~”p›dmÂÑ%Â!A…Ç]á >w}=Ÿ#'ÜAÜFŽ˜õºž‡ªœ£ ¾‹Žç +ä(¼ìc×v!mn&­@Ÿªj6›™˜€'wœéa½€Ñ´F!8 +ûÊ0àhÐ`òÁðå× ¬4àçÁ€QE£ëÁ€1lÒ`À‚c`«Ê¤¶·©mšZUI/kZäòŸXC‡€2ÀƒÓEI+éôBúÖ­[7oÞºuK™e»;sŠù„üÓ H£N‡cAÿ!cá32øjÐ`Œ±ÁQ£fcÆ`°M«@«”6$<ÈH‘Fìcµ4¥m)Ä5¶¬Q«ÕjÀM`Êz`÷îÝ»wÏ0 ÃXg V‰:0j5è³Îp8ëL2€©æ/ô¿ÿ‡ž¼ÛƒØ³  Á€É?×Ñ t%] >úè£>ª l°vÄ j4 Ø`ÁÏÆ ¨uXÃhM­L3 à¹EGÁ#Æ;0˜a4:vÀ Ñh†Aa._f‰x<@rZø'“ó"À• †˜ Ÿê€³³YޱíûÄ‘j±9ñe#0+9>çÈmNúNØç³m$ÄvºŸÙÂ÷}!|ÿ1®#DŸûŽÊî :„•›ØÙ,Qm›{œsá¨Bضã|jÂùäŽ'=Ž +!?å!ÂãÜ÷³¶@b䪣:ÈÑF¢Ú÷í¬Ì þñSRÄ0®å*`â DŸ#‘ýáq‚Ñh •Øè¨].\]á‘Ljˆ'a@:±mÕANîߟUGþ©ãˆn~zÖòùÅXl1ŸÏß»·VÊ—J÷ +…R©p¯P(ò÷Öä‹óùÅë©B¾¤—ò‹‹ë©TjQ®ÏÈ¿»˜Z\L-...¦®_¿~ýúõT"võÉ¿+nÜ^L-¦R©ëׯ'.½ôÍ àBˬgY«³ ö¿ìY,€š,s­Àúå?õŒ E6%«a{ÐÜÎZûÈ €GÀä8Do' %aGXc"…$dÖ…À ¬{÷Å5¥55g“æÆYÈ>™h¦+¬Ìë¢}–Õûß¾2¹`'ªÚëì«« 6™¡–ÛŒ=`ÁWL®Ec½Æ¯d,Ü€5Õê¬Î,½þÀG5 9³EgÉd-ì$ãñøÝ\"‘Ë„­Ÿ\¹šÌ€;/†­@"€j¢“E›Û»"+›y6Áÿ—oû¢À¬@´CÆNÏሜ¨Äv}Û÷<ßs»(\]týlX8Ü·ïÛhÛÄ!\náȪ¶ŸzÜqPp.V„͉msÛFÇ&‚èp£cãÛñmGvmîy*¢lA~ŸBlNTU½Ÿ!„ØÈ¹Óµ ·QîEsŽÜv„@߯b‘Û2€PåªæŽÚ(|Um9ȹ·â»6w\.“¬‰ÿœp›s;"a€Ÿ +ÑíM΂¤Ó›Œ ‚£„…æQÀ?cFçh`  ŒR«×{ñÕ@­P—M)¬Î(ª3(4EÓ%­hвpILëu³Ã˜P tsyYQªÝ¼•^Hß¼yó¦Ü)ô'àŽuzÂ}Œ¾pÑ#¾\#ê +WŒ{œ8*i¬H¸çpιãØ6· ±íO?³?%êgä>‘6bÑáBpz|½¬ ùqlbg ’ÿ?kÔÜÆ•e‰Â`D]*W1ù1É×F î"‘¥@dDÇAe +N3GèØéj>å<òI¤õ2ýtñá>“=~Ðo8LYÙ*öè +%]±>+ô .…jZò›Þôæg|'’eWÏLÊa;,š)€8+×Þ{íµ|_w|ß×-¿Ó±â¥2ÛÃ×…šÖé¡…žþ“Δª•R÷ìKV¹nY +d'˜þÌv3¿¨ÌnH«Ë·òÌÏü,ÏüÝŽßñgup«Èÿù¿“³B ä« !Ž)!LÓ…hžD*Èž(Ä(`£)S’„ƒ9oÄCQÏ:[q/ƒÍugÃY]yo ˜ÀÀæu†½ð&g®Ã؆³º²º²Zǃ¬4”#ËÀù`˜àþ¾=_›D’´áeì'F$GDˆÉ‡ÀˆˆfL²®Í¥}7ªä‡ß—¥= +ûï1€ñ¹à+’íö|¿¶UÇ 5% 1‡$ˆUºdgz5T„(,× ”DŠDdÊÏçãâ 4ôs ’ÛOG#$9–u¥$D"3*ÿõXÒO0qê +h¢QJHû$«ƒaœ¼ÓQúøã?ùä}ô‹¿ûä£×–°Vw—ߟÔû@ïq€†>ƒï4­JÇ.ÃØ.€mëûÙl¦‹©žîj­UG³Éäpr»ÐS]´2­uÖi]VZO ¥}](¿øvr[Ť˜vŠ"¯í~lBÀD©Y¡}_)¿Óét²ŽoËÿVGM•Vê–ÊUGëÅ¢’ßʲ֮¶ŠZé\©,WyæëofY–éV–©,+òÌ÷?õ}¿ã+?ËrÝñw;~–)ßW¥2M,w©_‘ÖÓÙïgYmOÜQ¹.²ZªÔ™å¹öU-*švre™ÖºÐ*»l5Av?R)ßÏ +­ýÙì´øçÃÉäl2Ð;㘦¦oDš.#sPõÁ~bàpÀT„˜¼&‡à3Ô}ým»lõý‹ñÞ»ô¾Ø÷ÂgÍ&o:cëÎÊêÊêÊÊÊŠí®4.˜Hùa8_$¸/¦Dci†rAÌ©D7$•&²i?„)"¢ñXJ3–F’¤”ªä_K2 ÂwÀ;%Éãà{k¸ÜêC¨I$qÔ­NÀWïödy^`ˆ(ˆäQð|,ë(” ++ó“ `hÝ›)8Áý}B9&’R~ý•”%‘D1™?þ‹ü  ‘eŠ) %u€*Ú÷L ~ˆCqñ+~üñÇŸ|òÑG}òwŸ|ü‹­ÀòÄÿâŒÈš¿ÏpQ#°6RZëN]dY–e‡µ §.ZY¶«[jv[OÏËËZg~kêÛ…Z­§SÕº}8ùv6+tQøjZè‰Êõ¤˜Ö F_)¥ü,ëèiÞÒEa÷µÿ©¯|ÿ7YæûþB}ägYVÜÎnå…ÖJeZgZå…R¹Ê´žj©¼¥”RJgj×ou:»-?ËT¦óŽÍT~¦}ÿVm®uGMk `¥oÏ´ošJwþQk=™ù C1]LkÕžvô7YIz«•û~Ç÷/+k‹©ŽRBéÃYž…¾•‡ÿm2Ñù™óŸ4§ÉãTbPRе D)úÑÂI a}â8Æx¸Å¶âx‘õÃc‹`gcùˆ ˆa!o3¶Í›îZ ºº²ba`uuuµñ¼sø‰¤,¿.˲D2øoÇ¥<ëË9² +z2 }E$„ * RUÑu‚Ýyøb±è€p#I£zºgU.²,ʲ¼/Äýäß_"ÄQ²xZ.2‡£)ÇV(©”ã±4íãÐBÍ©²ÂzßHL÷ØÎ%I)Iþ®,˲¬«èø¸´)i§@H‚äQð\Ji…ÒÈÒŒ‰æ¦8´?¶°þùY$øl˜@ª ²¥Ðxlß>S–eYÒèëãߟ"M‰ˆÊ=#I "ñUYš’ˆž'£˜Ùœ¹ÓY +`[kk6| kËaýïkŸ|òÉ~—¬À@ßRUïí²NKç·—Bþ¬åç³âòíÙä›Ia‡|~«sÙÏUÑQ‡S­´žÅåbVhýÍÄf~(­”VÅíI+ׇµ/ ïg3¥²ì—­]­|¥3uËò€Ìïø¾ÚͳÚpVä3­U–å¾V:˧™ÖêV~+óóBë"+¬˜¥VëovýŽò³¼“)ý¶{ú¬£üLÙ¦ƒšÚ.€VJå¹Êt¦|¿£,ÿϬ)‘Ö·'E>›u:¾Ö¾Rߨèa­ò–Îu–µZY-V™Ò¾Ö~®À?Z«ü³E 0gƒ‡â¸ýŠPÔ§i'((I0©Ïs…AüY<€p‹³>[ø{1~ÜzàÝK` ñ èqÎk6™³ùÎÖý¿Þ)Þ÷1&iJcä×eõÿ­,ešžy0ˆI–’¤=+²<–RV’"sÆÙÏ©ûHpAiJ4þª–Í}-¥4¦ü1ù÷ÒHÂtÙ˜Ž d¬›ªüý±”4—28¿%<&±<+ &ɰ{"ì‚"I²3#¥4åIÿÑï¿–ã/p´_ÃGŠH˜ +’ÇÁ‰×ÄÜK)åq0:w')ÎÞ ¡T‚hߪuÆ$¥4æë¯¥)ñ÷¿/¥L‘p4DÄQŠ)¥Dãù^iäB³X–¥”²<ŽöÏt)Ä⽬™O>ùÅG}´¶öÑÇ—OÀúòñ/Îh>ùäÓ¿ûäÓÿüœ€¾ ¨•®‹€NG«‰ö;y+Wõã^kíOóY1ÓÉÄnÏ+¥UëS»ÿßÉíŸÌ:ÅDkMЉÎ[Ö^CëÉd×Û™Ÿy‘*óù7­Ú‡Û×Vk¡«íd»öÐ)=ñ'íû¾¶f#ÓL+ß÷³<ËŠ<ËüüÓNǪ;­V§uù—­ŽŸùÖ‘d’uv;~§“ù¾ïãû™ë–ò•oµRþtVø~¦fµÅ  îhM&JMóéÌŸù-é¬ÈôdRøLùÚ×S¥w;¿£t–©Næ+•åºP·Š¼8<̵R¹:Ê "LJ¬{<ˆ€C48!"çl•…Ö0—1ÎmBί1ÎÛnòæ6cÌÙXwgå]%Я1†õùo²»î8޳âœç ++•Æ9ð~šeY³çø¨üzL"MóÂ:÷˜$%•ÝÌ%$Y–68:8³ídÏÿ¢5—$ &‘Y<ÙEjÝ=ínž<*­@}‡´ÞŸ#i¢yÍ4–w’f‡êÜq,,_¶*‡d8DoNDH‹NåòNGýãRJ)R!jûˆ‚þ¸sD$HúB|UÚ7áØ[`ŒToI L’`ˆ˜”öë; A‹F€4XÚ;á‘R뇩 ùÕ‹ÍBÐq)åï¾–U”,‹ ‚}ûÎD#Ö~òÑGýâïÖ>Z2€µµZ °f-N瀟¾ß8z2™L¬èt:íØö–V¾¯•ÖºSdÚWE®[‡j¢´Êt–e3=LfE++&Ö¤[«ì²oýyóL:S3=Sþ¤n©éâr=%Tz’iߪ •=ÛÊ÷/ÿ²å+uËv~Ùju:­VKÍü¼(²YGg™ÒBß~ˆ˜¦S±O²Ü1D"’Èk{~Öñ/çNë—ýÍ®5ïÎôä›ÝË—/·²–ïßÊóC­µïw²L©ì;üÍ4×Ói¾[Lg…o3…•Ò~®•žL”žú¿ù§Ýé4÷³o2i­•ji¥üÌÏ”Êk¥±Î}¥´º¥µÊó¼øç.&Z©\jÀ¯n„qF$Äòw#A$"Ä`×wxØãÿ-"RtD´¿O˜".}HÊñxž<*K))µ=qÚ'ª¿ U±ÍòTS–eùµ”¸ƒË]ÊQˆc\@Íq¼cÆ4BB”„ º¸¡¯dT–e)ÇöOgÅÃu¾ó••Þ +a J)ɳÌ|¸xQˆŸ!P‹VM´Dû¸/„õÆD£ú[¤Óý¥&XPÕ_ŒPÊß—_ËòkYF{„˜$P-ï_7÷ÉG}ô‰Ýþhyàí ðãq^ üÉß½Û8 K(° ™VÊ×Ú³7×3k™7›M 鉾\ØÁ¿¯|?ŸMt®•.:ÖÐ{:U-­­HO;‹ À,Ë:Ê÷;YžY¦í^@룖¯§µ,ðr«µ{9_ØvÛKGi€E­·OÓ6Ëez$3&$ˆºîÚåË~‘ù¹ï·:LeßÏv;Jç-¿ÈóYGù¾¿ÛÉ|¥c— +r­”{6™þfêû*Ël˜¡5ÌgY®µV³Â6Hµ_ï)•ùYËϬ˜)WZݲf$·ü¾=ÑJ©¼(Ngä½U§ ¢ˆìÄ|I‰‘l±ÛÆ14›½0³Å›¼gà·½Åv_s›1æ:ÌYwœÕ…À÷, z×í:ÛÞæ[n×a¶°ÒX–Çï]fnæ•1GóGÇÏÿ?®þ@ÇÕ£•å£ãJ¢ŽhN'f~\•%QYVdNNæ4¢‘©NªÑèùÌIeªjnªò¸*¥©~˜Ÿü¹JÊãGþt,͉1Ue¨2æ;šï“¬LTU?›Sß?yTšŽ°wª*¢“ùü¸*KI•©Œ99™›}ƒssòÈ$Çzdª¹1åܘ²ª*iÌŸæó?ý92Ç|ôÃqeN ™Ê©ÌwTSEt<Ÿ›#çå¿=*Í£ù%ÉïúîóùqU•T™êØœœÜ?¦ûX™ùI•пž”Ç'æèèĘã£ãÊùãùóú×GÿýÑI5þ¡"slŒ91æÀ™£ãÑþIõÜT%=2?üÿÊòþüQEQ2B"CÕÉóùqUÓW¦š›òý˪.«:Ã>ùÏïÍ“w@å§àgJ«ÌW™ÖªãO³ÙLgÚ×JOµß™Íg3íS]èN¡³NK羚S=± ú²íëéâò´Ö*å·”ö;N–ù~gZd:¯"ó³Nërc7Óv­8›tZ—}„¨ë%HDÁ@’1BÓ<0ˆé>.—VSΛé¼2‚°è³žuvwýÝËÙÌ÷ýÛ*?Ü=Ì‹¢ö2´NäZû¾><<<,gÚv —YD*Ÿu¦:×*/ +íg:¿ÕÒ¾5#VªsYû~æ«Ü×*·³„<ïÌf“‰VJ…Ößÿý÷ßóÜçHhŒÍËʌ͙GHÕ*2DÈÙ6Ñ±ØØhr<¾nZœ€nö8gÛÐsœ&Û`ë瑩Œ¥ ^ç|€×8cΆÓp+V4°²ÒX]i¬®®45Þ¿>?'?½šDý~;ÁÎNìì;;;žAðùÕ¥†ÖêiûA\ý<¸ºÓnï\ ¢À v¼ vÚm/‚`ggÇ~ý½äsûÿìV¾DA]Múý~^`¿0v¼`'ö®îÕ"á ¢Àj…í®îìØ/ìîìÁÕúN·³쵓~?©E¾ŸÛ;Ù¿_öûý(êÖwÚ ‚û§ûüê^Eýåk +¢ Ú{µíy;;Wƒ ðo'ðïªçÙ×äíÑÕ½½½þÞçÁßÿ}ð÷õ³¾_ÔúQìÔ¯Þ«ÿ ¨ÓV,û¢ÚíoñµÞŽ·ì´wÞ¿¼>ú䓱h|¼¶4Xûø¼øïÞŸœc5Èó|YdJ×rw]Ì‹é$SºeËÿbZÌf3•Mì8 •ëBåYQhe•8~>UjÖRº5[ljÕju>½¬Z_ëC­2_é\)eiZ­F'Ï”Îô7Û kGílH&bb矌_J!Æ÷IŒåXõkù™M¦BÄÀ—‡±”%2èÚ®ŸµZßdS?+¦j¶›ç¹ÊoM³iÇW¾úÿ*¥3՚ݞæS=+TË_ø*¥”ŸÛ½b=Õù¬Ð~æûùboªhÝÒJ+¿Þ,TZ³:yÿzôü¤4†Ì=cn“ãÿqò?~˜ßǃÿ÷€ˆF4'¿#š#cÌ|>^ÝÄŠæ'•1ÕÁNò`>¢ÑhD8Ädt"ú£© !ÐÓS=úó£2Õ|~r27æÀTæaD>ùž?¢Ñ‰!¢›Õw8Ñü戌©æžÏ‰ˆF£2ÏçÆ|$Õœì“á&Ɉ‘ùŽçTý—;æäÏ'DTÍOæÆ)©¢Ñçôçç~>Ÿ¬îÂdDTÝ= cîÏ8ynì‹5æùÜ|gL’TóƒÑMí㇠’©2ß›ƒV†¢‘™ÿù¹!*ç8996†Æ†ÐèóÑ~þoóy‰ß׺âŠpˆ42怌™??±oCÏçÆ˜»£=37x“F£›8%4:Õ^»~ñwkýâ£÷ÀO̓ìCÿx,(ŠBééTw2?Ë´í©³¢( ][u:³Ùlv8ÓZù~–µò©×ËòI +ܱV3ßïd~§Óie™Ê:—[Ê÷s_ù…â*¥r[>tZ­Ëµ¾É4 +J‘hÔÝÚB‘.:N(L9Ÿ^ÔG*ËÊ")ðĶÓIbš"¥µ–;Dq$Ç‚3Æ]~à›Ì÷ý‰òõn®U–i?Ë;¾ï«ßøJeY69œh=Ñíç_뉞L¬KjÞÉ´Îs­´Îuîû—Õ2/yÖ*´Êó¢öJö3¥ò¼“+}kšçVA­«ªªæ¥1±³ÑH‘„¬î›ãê(1¥©*YUÕ|.…Œ8±êÊàœR–Æ%‘Ay<Ž0¨}­ßÿúyO€U4†ŒLââ˜3æ8«ÎÊÊÊêÊÊjc¥¾VWWVûÍÿ¥”¦Þ=%CôŽKyDdl×{ùIÕŽ9’÷%I$’÷Ù2šˆhǤg²††˜$ˆdŽ$QJ)RT‘”r,¥‘’l>ÊXUÑ£ßI)„\†ª/Æ&:*¬H¦(eyüƒ UDGÁˆNõ¸‰íªYJ"¤)8!)%™±¬Õ½bLDô}pߺu½³¼O42ÇR–$V²<>‘‹;ì%Gg^"&„B–†Lj´cìê>C½Ã;6h¤”$Æ”œ¹SJ„d’¹”ÇD„G²<~t´PS ÷Nç(˜Ü’‹Sç?ùdíã_,*€3=€O>þøãÏL>ùä“Oþî<hLêm¾3 õ|¥t–©¬•ë‰.nß>œ:Ë:Úß- +ÿ°˜Í +=SÊ÷‹Â/TPh?ÓJuÔT-‚‚üÃ"Wy¾Ûñý,/´¾•ûSçY¦µ¯´¯3?óýÝVëòG i>Ä @·ö8µ_[`2DCdˆÌÕ$ÚA?©¾Ÿ??1µ±>aŒ1pÎ<Û8!Î6yb@ø™šê]uKÝÊoeÙ­Žßéd*SY¶[ËnOü|澯&“‰R¾Ê2¿£2e#‹ÂŸå…8IëVG©<×y>S»¾Ê²L«[ÓV¡~£þQëY¡ÿ«Özá:ˆë¤ÛyBR +!HQŠqȸKað°× L qà1‚ðǷ™ÃØ[wœÇi¼#XµÙ€’CC¯rÞܶñà+뎳î8õß–Ž/ºN#ø0¥ƒ~)¿J…KIz‚‚(E|¾s$I–Çe%¥|ô{)l«èŽWìÞÀaˆ1cDýÌÙycŽŽ‚") …gï$ˆ«ÈH’åsy,¥üïe)Q¤H£t1‹ƒ$ÁdˆˆR”"âÁÎ|±K?&Abl]?Ò*ÖZ“zk@¢iD¥$ùHÞ7R–¿´&§¦¿èÜ&p#IB$YJA)¢ S/uêSŠ©IÆR~E‚ÆÉpxêjL)õKC²”¥‘òèø¸î ¥)’j„ˆÉ0†Iv¬ùÞ/üäãÓÀÇŸÔ Î Xk·p?åŸ4&çÏ¿E•…ÒS¥;Ê&eæ|2Ñ“ÉDÏô7Y§¥¦³™Ò‡‡“ÙL+ߟNunx•nÚoívüEº¶>œNõL)¥‹,ÏõTk);$Ô‹ê?ó}¿Ãù¦ã4‰À ’9Uc3–î"$ÚH!¤ô€Í%…â$(K# Ñà0êv½ ŸŒªGUE €ooóÚŠ—C›`=¨ÓpvU¦TîgÙ-åïZ¯Înm4Ѿž¨él¦ýN'Ó¾ïg»*³V£Z:ÓyQø¾ŸeZ©YKç~®n©<Ÿæy«°Šßh­òßä Í„BPŠ"\ulE/(ô•<îY»ÊÕšƒðºËÖ×ÕÕÕUÇqk†ŸAL1t9çc¸ˆl2ÆÖÕÕFãW°UˆãQpŒ!ä!o6›ÛÍ guÕ>óWWÞÖ#hU|à’ÖŽу¨”¥ ”¬4] &õÐìdR–Çå×e}Xö‰]À·ïR€dJOU¶«uæ«ÿ–û¾µúPýMÖÉõt¦‹Öt2›(­¦3=Ñj:Q*+”ÎüL«âòTë¢.™µ.¦Å­¼Ð¹ÖVD¨²Ö´PÊÏU–+?SÆ1„!°µ5žŒ*#Q ®ˆcŒSF +))J0é;ÁèË1 DaúRÊ£1D¦4'剡~Òm··ºgÌÁ"IBJ3.°ÐSA#Œ1÷Užç™Ÿ«Ž¿ë·rë‚àûÚ™j­g‡zÖjíú¬•ÙÑLçyVäy®§µ‰ö³[*×:Ïó¼ÈU1UÓ¬ÓÒßj=És­íâ!ÑXë§$PÖ[S"$Ü&c뎳î¬3¶Í!Ž ð¨Ç9ï…¡U÷l°ím¶±^çŸð‡Ç¢ qòo6›ÛëÿŸ gÕRþ;\]m¬Ö²À‹?X(jo˜Rdd)…CDDHt9Mç;FʯÊòk)”_Ù0"â¨m–À!~au:6_£ +qñ©– =‘R–ãq}§%P*¾Œ¤ñQ=ÿ—FÚ¢‘v–lúQ‚€ˆ_“@Ä)˜ŸJ…éôNó€¤$i'òh–nƒ‚èF%IY–_×:’v)ËDÃe±ý$´–BØ;™€R{~EÍòä˜H¤ÔGkꃘœÞÉê¢r,eYÉòwõ>D¹@Ö ñ‚_)~t>Y8,º€kç—‚­&¨ÖL&“w(@y¦¬/žŸçùáô²šL&º˜è,+f6.Kù…mãù…žøú°°y`þìÛü–os•RJOü\¾Ò~žéL©Lg™òý\©,óµ&L©[J|ËaÜÀú5¢ˆ›ž‰ã8¶>ã?DA;!B¼!$¢À²/„Q$¥4¦dˆ9óv/JåÑH°&7€€@)Âjue~«uKOoe­N«ã[[ÏŽ¯2_«|¦•Ò¹nù-åûJYð4Ó…Ry®T®ülÖÊu–åZå:Ÿæ­iq˜³i®üoêÂTeÙ2(,tœmˆ1Åâ @A)k€¨(µSònö¬÷'çœÀg1ò…Ń8´*  ¶Íغ³²²ýž%ààa !çÍ&c¡­êîÿ‚4j4¸øü§Dõ¹$00òˆ¤ePg +s¤ç;RJùû¯KYJ9›åƒŠ¬B'AÄ!$HH(ˆjq+õÍ¢™pj1&D: +HJ!Å;-!è(2u®—”DãÅó÷«`y§ÅÞ¬ZÆ€ˆHíDÜ?ÓM°~ÛU@’N% +´øm!îFRRY~]–RŽI¥ªÆ}J—.Î@bɼ¬›&¨R˦$ÆB…(“TJ¢®i "¦Öó·4}»pQ–RJ’åòí%ËÞ„UN}øº±¬jSÐ3¦ çÏ~= زWc2™¼sþk°v~GçSuøO…nM­íV>- +Å¡¶ÖØ:Ïýì°ÈìáÈ|ÿðöa¡UËNÏ­[ˆÒ~ö•éÝ<³ö>*ëhåwPàXQ;ò¢6a9ÛƒˆHiššâAŒˆôHb%8¯¢Ñ$()âKúJÖ<Ÿ¾2$Œ‡hUðŒ9×è;s2ª1é{îÚZÄ A"‚¡Ÿ¤ˆXA¦•R·üÝÝÎî®uöV­Y¦'“ÙañM–ù»*Ëí2‚ÖZgy‘ç*³úa_ïª,WZÛa•y>Õv9ÒvAf¹òýñx<4–¶`õÿˆ£S!Rc;ØD„n +ö „°v ®C]çœ_c<æÛv¨É˜ã¬¬4ß-–à…6°ÙÜpÎį,½ÁjH/ºPÛþ„  $)l®0"XKsÕ”æXʯ-_Xœïœé® —š„Ï £E…€(p,ü|ä LjQ¨3€ý1"+§‘RŽÅ™;UÁ¹;ÆÖ«‘Èî ÚSþŲ& 1-©AJˆV/èGU}§±µ ^œÊ½3rþa’Ø•JŒ1AåUsºU€õ[GD&A"cqºq„‹ÎGt\þ®\ì^|%—<ÿ &ÉA~N`Qò¯­®|ò‰ëºîÖ–{åŠëºî÷Ê•+®{åŠÛøö[K&Å»`…ñ¹_h¥fÿ-÷;™?u¬‹ÒJOtÞò3m]þ +}ªTæ«éìP;ÓJ]Öµz×Ï|_é[™Î²]­}Û$ÏZY’ŠTЦߎÀ÷Ø:_GSDhC¤#1êzIMšFˆŒo&(„‚bD)$I‰ˆè!@ræ: êé!ï!REAÐn·Û]€ ¢±! óÄó;~–ëÝÝN§å·üLå¹V‡­³L™ßÉób!÷Q»vQ+¥ó<÷;Öè8óuV´¦¹Ö3+Ê; “´\ùõY!pÖ¹-1A@Ñq‘RÛi Èq‘ì ƒ­1D`YA“óíæ¶­6ÖÕ•w`…ðç=Î9›ÛÛŒ­Û`[ù[XŽ>ô¹$PÔôÈ&F”B‘&V8<=ûáÓX’6#$"V;gÏ +!b:ÂpHIôÝù;¡ BAäýQØÎ¼¤4MEm»9&~]ï( )jý$ˆÏw(=í˜@b‚Hèœá5B|Q{…š …@$R$Ä´ö¥$©j'O;0¨µ†h¢ÑRu6Ä$I ~¨ÇC$:ö» +‚H&$„H ÇõêQ(@•õÆò\ó–°“`’$à× YT/ý¬9ø/œF£yÌu¯¸õuÅþuåŠëºÛ“I ÅY¸m÷eu®g– Ìt§“ç¹îLµm’i­ý¬“kO&¾ŸëÌ×JO‹BOŠI1™d·::˵βüŸô2EHguÆp…URa²àµÈFiÈ_z·$Û± Ðè;¼?­W.º67ûiBH(„]¦D¬‚a Nƒ"ö½Þäip)êWˆ˜D^»Ý"€XE^rëVžu +µÛÙíd­Y®tQ;„·nùZûþ­ÂÆùY6UEžç*Wùt¶ˆUÔZfª¨mõ¬5=œd¶ÂÊUÝx¢¸f‰¥uH}³ŸÚQ8¨“?³õsp;ûã|šÛMÆ6ìÀYawÄÀ+ôFïYéàÆº³úW àj«6+hõƒOÂŽ«ÈJ1)F¤ÚÚÚfÜ“Á6}%„ ‹ñ©!ÀÓjçd‘ˆ8D¼1@ÄÅVbX·0$Ä…h•ú¦},R¬†ˆfq'ë@¡!aç'cqæ¬< ŒXì$ˆ£$©7‚ëwñê]ÄáÒ\E:&A©8*D”€X-ê0aEθ—Ø; YO ìk NOø!â0†ÁéL{´¬[쫪_SS´ÌUXt6ï€Æ•§ÆÅg^áYŸBÄ$ÀÅ¿/¹Œ-¶X—³-æÔ°¹¹é^q777Ý+ö²8Ðз'ßNl#p‡¶-¨¬[–šæÅ¬.Ô4÷ÕT«:&Ó÷õ4Wup‡VÊÿÇéDéé̦nu2¥“ùÓi^øê–ö3_e¾ïï¶2BI4ú[/: c)%B< ø278â1„Dà\ò€Ž’ø—ß ˆÈ=Ç0ˆDŒñB Z3 +ƒˆ٣ÛÌi0HnÐ 1Î8¿nHi4¶ ”Œ¬êÍñdÔÝ+M®´ÊòV§ãçJÝÊýÜÿ&Ó…ïgZûªÈ¦y‘«Nžå™.Tv«Èý<ϧÓéŸù~–»z6©+ŸBgº˜ÖæzÑ~¬¯sªÛ‘H&²Ó?D:]-‹ê!,À ‚˜×ÀclcÃqgeýÝ1`8`Ì#€ó&oòm¶á¬4ÆêêêB¸²²ÒXi¬¬¬®ÂÅW­Ý?&"Â(EDÇH5¤©e‘H±n矙¨Ï=s†Á.šgP¿|1 +n&IIrÃ]B´sA¯J–ƒ}F. ­¢ a Õ/K€Ó¨ÏhÊq5CLé*A‚ÖYkÑJ“$ÄQð‘"BIBˆ4ÅT @“IÐÐBk~îEõOK€äØ?yü@bÀK’“äÆb—W –$ˆ’zqÌØ’$Q·FÇbq'û(HëkR¾}pêr—1ÏqcÌcìcŒ_[÷<×uÝö×Ýt]÷Ê÷Êææææ¦ë6”¾=Y4ë$,}¨u1™L2_«\…Ö:S¾žj¥õtÚQu¤ïwü©Ö¹VJûe+àYæûZOf=Q-Y[À<÷ýL©\ÏŠ™"4óÄ»ŠT}÷‘D_’Ðû:æŒõQEWûÉ ‚8–BÊR’8@ð€7Ù6oö8瞈cˆQP*¥$&€ˆ}DK˜³Â ªѰ½Í9À0AìüÂ>XÄxl«ÓÏ0á?b1óó[ëNÖÉ:?kåYæûõm¦ói6ó‹LYpîßÊnå…ÊgÚïØµC•)­þ«ÖE«(t1õ§:›h]Û_ + ××·°öÈÈN¤ÿ^ +a?Ö!Ëͳ@Œ#à „çÛ|›m3¶Î6gÃqœ÷£Á bbCÎy676guµ±záuacé¢!2¥±[ñ‘Àô B<׋?)¡ "< *‘.K\¼4ÄjIÔV;˜ 1MÏ™ð›`”$‹8$’eI$„¨¼±8ÆAíÖ—¦(0Dx72u¥`1Ȳ»ñn€´üöI‚”ž [DšïÌ“aI$ËJJÂ'B @òK!Ç$D]p p,,íXFyPJˆ´7:­Ä!A˜¢ˆë]t~Õ$7è ISY1VEŠŸ )ÕwJ‘QTÕ?÷~¦"%É¢H0¹1DñSçßÙ\À6;+mî±Í+®ënnº›– +¸WÜM÷Šë6´E=ÑZÏjÈnûÅd¢²étZh»ÅÓQ³ižkkåOµÖ:ëøù´ŽøÊ”Ò­Ü?œM[E¡•Îôd¢¿ÉÔ®¯gZe:ϳ\kieˆ íÐAÛ î[Vl·%E +r67ÖcEAB´OvåRÈ/Å—BHaÝ0®q¶î,$­æÂHc¬ò ‡8Jl—€3öë† €äY¼Žó–[ž±E‡_ +°6ï`Ò'IÇe6Í;¾ï·:ޝ¦ßÔyÈJÍü¼ãç™Ê2=¹•ç»¶ÚÏ +û….2?S‹ýFíëBO3•E6Ѷô¬79U¦ï2’ª>U¦:92Tÿû?¾\ÊûUDD£$c$U$¥1xPI‘"ðkœ‡&ãMÎØúÆÊùM€FÃSJ8@Qðp0›M¶¾ê\|áè¢ å˜d)åX4w£”å‘]©§”ÒT Q•%ï :0<¥ÑN´1á D<6„äDI2D¤;€†ˆÊÚÌxõJ9–’äØv"íU‹Î£-Ý­©Ø¯‚‘u]¤úTR²=Õ”ÌÈ3I2DD¬HÐÒ},º/„½‘íØ LEJD#ºFH)Ú…¾KÈ-xÀ‰m‰¤‚Iš«‹ßª:“ˆHÍSDB!å—’ÆÒZƒ ¢*2µ„Rû}S[$‰e‡TÏ7þ$?ëŽã¬3æ­mÖNQÞY°Í=¶énnnÖÅ¿»¹Yw݆R”>ƒßN2Û,²™Êr¥:¹ÊµžåZæJ:Ë|]ÌüœÎr¥ÕoÔoüÎlV…îÜžd™õÏÊ|?³Ù¾º(Z3­ ƒv`uyœXyßX +"IR ÊXÄ|£q ÈR/"¬€òK!„À0f¡]–í!w#îu=/úý„FûUûdFˆàÌq ’Ä” çŒy<²=õ8@‰X’¥´kÖ˜" &ÉXVIDÿ*ÉÙ´“·:~Ç÷/g¾ŸùŽòµšey®v}_åVÄœg~®‹"Ï‹<ËõÔ*ùJiý©Ö¹VŠöÕ«W¯^½ºsµ½ÖhüÚõ<Ïóvv‚v»ÝþÛňõÏóºA7hïìx;ÞÎŽ·°öÚíö•öß^qÛ[[îÚÚ¥µK—Ö«^®×¾rÅu×Úm×®¬­}ø‹ÆÀÐñq)•Dôo£„$™ù±1²zôh~\ÑýÊÜ?~tTÆZZ#b5?ùãóùË꘰THD£}!CTýùÏ<dÆò‡““ƒ¾göGóù ™±yTʲ”D'‘dÍÍœŽææÇÇDTÈj>ÿsbîÉœ ¢©ª?<ôÇûG•Á$0HDûû#Bª ‘ü÷??Ndäxþè¤êï$„#¬NNæt"Í*iî›ýýê~b÷ªc2óGóã?Œ‰Ì‰©ªû®*C†äœ0¡ÊÌŸŸÌç¦<%{#;*Fxס?ýéùs#HRõèdž´÷F8Âêùü„Œ?:6r^™“ƒ9I*çU)ÍüÑ|þHѼ*ïWšÿCEc"ª &#SÍŸÿp|rTÍ÷qo1hð;cˆNþíù…׆ãØ`m³>ü×ÞÏ>÷mðŠmÖ%€Òêö·õ,pV÷&Ygvh}ZåÚWÓ"Ózj½7;JéŽXØà¯©þïw²Ã[E¡‹Â¿¥µMÛÒ3Û ÈT®råSäE}JÐF%ÀÈÔ1ôBkQ%mÆØvrªÈ&b±|¬ ɳîrñ –(R$˹1CLúA;FÖ?lp8´ €;c^TîJù•‹¡·›7ËÒ”IDå#I·ò¼ÕéÜZäû¾ !³¡@~¦s_e:×*S¹Ê¦|:é|ÚÉüLiígZ“©E€ºÃsðùÑÀÙ ªh|$åó¹¬mçOªÊ”æù|D÷¥|nÌøÈ•?üpœ$¦¢;dÝƘVˆ&õ8¿Á™û+ްµ±ÁÖdï†:xR-êmƒ1@ˆ°¹ÞÜXoÚ`ç]1pûâËó‚«Aày„¼ [c’×öÚ;ÁÎŽAEWƒ`Çë^»Ýnívûªg·ƒ«;í¶·€±oÇó<‹gÒêßð<¯íí ¼v»íyWƒ ëy;ÿiyßÀnÍEÑNx^×þ‰‚ÿäµÛvYðêN{g§ÝÞY¸¯{žçu½Sð<R‹½í`ñ»A°xÝv°¸“çyÝ ˆ¢(ØÙ Ó*ó3k(x8³°žxÆÃ¦B}Y‡[ +Ke‚Ò6žH–BÊRpˆ8„ oûMÎÙ6s9ãëŽcÝýÎ]±qÇñBÃ^³É𮳱¾ÚX­×€Wêf m¬V_'?œôñÄ!= 2%ÑÉ0Í­C&™“Šªç'?œÉÏ€øòKù¥ À™U ¯.퀬\`!Xùâ‹‹@ˆ½çbiå…iHHR¤‹Ñ½µ½:×ÛL)zµÈM _‘sD"Šeic}ë. o$§Z_<¨!âgË0 à~=µwBÐïdU[ +AíSe¯Ý»„_¤”b‚¦”¢þï) +B+Ù­íþÒç‰Vb!Pˆ)¨ +f‘ +‚¤<–T «$]DÛ)J1$ª®!#Årþ„8¼a¥(„H«ÈæÙ;šÈ¤)ÕzÀz¢iëC¿‹·¯^ƲÁè4¿z‚ÒNÏ_ÕÆi °vÁp¥Áê& »énº››®Û¾ânZIP£ö½Uêv=̊Ÿ拈OåûS]̦ڦi(ùþ7³ižçZ)_k_eþ´“+;?T~¦t«c×€”Ö~!HVQ´°3‹?‹k"`L’ܤG•}©ÚŠ{Mæüu¼ðÊ4à +c¢vðù +ãbhòÐd2‚ @‘"Ç‹ôuŠãdTZ—Ø?ô6X¬O$íÀko¹çÀ¹•Ù"¤+Fž.i +q4ŠlÈ˸ÿËË—ùËv3]äYÇßõýLéi~¸»ë+_ë,W³– AÔZeyæk­‹Ù?eÙDëÿ{v8[@åÉpÕirˆc<>þ—þý÷_Û™KBRi;é4¶ë¤”Ô«`<ê÷k[pà!çœ;aØk² gcÝYm¬œùõñå—"¶F‚À9ÛÞ´‹ƒ+‹e :PtÕîà\(Dú¹€¸>†4² ÎÀý` ãÆ 5Ô?)´~7SúÂÀw•U /á'8®}w—Ïj::€”®\˜ÒþD­ó'BüÌ@zR"M‘‚j?=€Ô¾¨c9$ÆìÄóh_ý<ÄŸñÒ^rÆ xÜ~”^†Ó8-Ö>X¸W\×ÝtÝMwÓÍÍMË”ö•VJÝžh¢²Ã©Îý¢°‹o™?±<`–wìó¿“µ'ùÔŠ2Ýñ‹"ïhe_ÖL<ÓÚšç‰Gí‹A#ŽD@¤$ø|Ïœ”²$Y°÷šÌiÕRR‘Ò ¹5Þî&TcÄă0ŒEIˆÐ6Ø‹EŒ©õ#8D‘ÁBÎ68’w\·QÃu뫉q*æ^-#Î×.Ø:I‚Õ3f"*½j?ˆzœ³ÖGýòo¾Ùͳ­½ôÄ®ÈÛSÞ9œîÞž(­£¦:Ó™ø¾Ît–e™ïg»y¦”ΔRQ„ƒ¥˜Éòü#ìŽJòŽê¬ÅŠöšM‡Y'ö4MÓ£9sŽí{ÕF@!Æ8¡l­%œsB¢ÒH)I¢±Ô5C77zHIiV‘³m[I# +Ú""wV‡ñÄHÉŒcÕïRÊ ½¨.(œ_~¼›eÖÁ8WÊWJ. €2›žæ«\ë‰ïûÖYOõ?eY¦õlñÓJçÑ|à¬7Cˆ1Ûg)ïÓR:´kw‹ |:èjè[¹Ìo99†aöb‡õ>ðúúêÊù€pöÆ@(c€0ä=Ιµ­%€Õ•ÕÕÕ¿ZYý+ë +и ¸|R4J éèwï3º˜Èe á0¹QoÙ¿ËRDÄ`~–ˆ¿”¤ï€ ¿~‚ˆ @zŽˆˆŸSÀ{ `|ÆïÀ|g~X$g +p‘Õ2€+õ?mp¥n*‰£;j6Ñ“ÃbR'ê™.&Öão¢|_ùÙ4×Ù¬°ÿÇ7:Ó³B+­Zúkì±ëgY¦T¦ ôlc5<±JND" ÚÁhþˆƒª^°¨Õ1$œs¶ÎŒ$Ñ(ŠÀã8Žû„! ”|kK šŠ ‡( +‚½`oHD湩è]‰qö¶&š~J$ÇiŠ|›ñ…@¤"[Po; ytãTQy&‰J)PH:ŠJ+ÌõºÛŒ¹ŒÏtÇÏ|_ÝR¹jåê0»åkߟiíkÝñ³:g,S-UoV,`Ñ®½ÿãžI‘Œ@)%cމduߘùüþøû9}?^UÇs¢´"’f/A:°îö)ưWMhr·±õÕÕ³ áN*HD Â"p>pšŒ¯;ëöëVMìüE @¤¾å)Œ>T,{t +8¼€,K:_ü… àl @K}ÿ_ÀÞ€¯— @ÜöÏÀWâ˯ÞeøÓ ~šŒß€öã÷J€:¢ñsSË®lºWÜZpe±T€òµö3=›éÙíYQÅ®ÖþlêO´.&Z+5ÕZw2­•Ε%ù¹ÖÙ7¹Ÿkß÷³¬UL~ãg~kן¶”ïG€'T(( Dq?ê÷ÛŽP~e-+‚ìÛ£òí°ücE‘—ÐÜŒãíæ@`l[üIŠH‘%ƒñÂ&láðñHžT4Âdt7I¢«xbÆB2#²êMθÕû úœóˆ3ÇabŒœ8F¤ÄTTEÑWRȱ!Y[Ö×cã1 +Yø­|×WÊïX[ƒ<ËU>õ3?ókæãûZië‡f ¿¸¢~´Kn{w£ ðv¼ êGQ/êÚÿ% +v<Ï‹¢(ÚÛëGQ¿EQt½E‘çµ=¯mgØÜc[îÖ–wÉuÝ5çCj ¯kGÄžç±­-ïWÌù)ÙP㢀H\ pZÐ×?],€9Ó\ÀO0€ã÷J€Ÿgâ”ÈE ð1€wJ€¯Ë%øâ‚`ÿ|ðËw@½+õ”â/,Þe_,Àþ/)Øf­°Ý¿¶ë¶kPÏ3­¿9œª(t¡u¡TG“otaýlT¦”ÎôTO§ºÈ[ya—ûfSû™¯TÖÉ&Ze»Y«Õé´"¼B z]ca.A Ú£dDV…#œ‰b³Ÿ.1xÀ›ÀÜvdŒHQ¤Ðãaœ"JArDm̸‚:õÑða-ë9¶“$%t2—¥î\j¸þÄïÿ@•Áµf8@@ÄÓmÄžë0þ¥àá6Å¢ä}cªh´‘”ÑܦYÀšÃa*¤ŒZÓ¼ãû-»Ô˜«[ªÐZÅí¢ã[u-\§p–V`Œ]¶ªÒŽüÒ±¡²œ›à9Õ"³òÈ ’UYšd„ˆÉ!„` t!›vA8˜ƒ’b€ÁÂÍãNxÆÔŽWVVV.¨(ýI€2€–1€aÍ8çÝ.çï1€ùÏ1úI@â?Òøßa4~àO2€ôgJ€Ÿïœ‰w:3ؼh +дMÀåBàææææyÈ2?»=™‡3e×}5›éÉLÕÖ}*SÚŸzRL´Îs¿¸=ÉüN1ÓºÓéø™•úSÿòåËÎaÐí&íÈn/¥&ˆÚhv†pˆcàXõö& #R•ЖËXj©µhuTbÔŽ€sãÁ%Ä.ð…¶ÀU!b•$.¥Hœo38~>ÿÎT7GmÏ‹˜E€D$$R +0H3‡ñP4›öþl<2BˆŠ®þÃÕàæ?$‰<–ë ®mÎì‘@!)x+Ïþæ—»¾Í×·ríçZ)eÃE3_Y¿ÃS 3ÏT"pœíkÑÄrña'"Åyp‚ ÚãjýåÑX’44ª%}ëÇ!ï9Ày“Õ¾wƒœx1>Œ!ìñ³ufÏÿÅË@˜Ò…%€8exýô@ +_-€ó­-Öõ<Îy·Ûí2Æ\×õºOþã=€3Çÿ­ÀÕÎÏ1ù2€öèç{gK€³1p?S¬Ú m7€6-õß\øØ + ÛÍŠÙÌ/ŠÛ6ä/›Ί¢¸]t¬Pe™?ꢘ(­”Î2íÓÝ<Ÿª¬ÕêdZé¬åëÜoí®3Îàoa‹ôȶô¹Y 9çÔ6@†ÆÇ櫾×N x3lp”KÓT»íÈ®xp@ìV¹€îukør,mÌÖAûXJ1Äœ3‡“‘TVÁcC0€¢®çu!©dU#c]àNz[ ¯„Q2Jpôü`¤DŒó&gëç_ýQJ0ˆ‚²V«Õétü,»•«<×¹RZ©â°ð}š[aÅ)ˆ4µQ%‰`ÃÙæ×]Ž•u‡"%ˆó ZºpIÛV0B„Ī †8„0ä×]ÞdÛÍú©~^Ðpê õ|Ày膌mXPë€Ïœ}ÇqœÕ ÏÿO÷ð'ÀøB`§$„ý€vy·»µÕõ¶»œón—1Æ\×ëv»]Ïó8§ ú¹)ÀègÆ€ÿ‘À‡§â¾÷s @’Œsˆ"Î!â¼ÉXòÿÅ)À…=€SpìÏ”K8Wpî±ÍZl§W®lº››î•²–ÊÕ¬˜f³™ ý,‹B“ÉDut=ß/t¡§Ó‰õõle‡YžeZùªóËZ*?Íu|qmŽ CgÓM战Àl íº³Í9ç€}Lªª" qò&Û^0$J†Ýµ3ÅÂxŒÐ  Ëy-íC¤R +¡ñJi}«9sšÇCD4W Á~5"S™ +ñ`'Ør]8ð5ç‡fcþ'Td"¨0„o3¶Þh–Ç}’#B$Šy«³Ûêt|•–dY–+=-”?Í´¶ñáŠdqJ!ac£É¯»Ô§cDAsÛn7‹…vyd¨•‘ 1I.T”q# Âxϱ¾ Ž³ê4«+çABÄa÷ÀålsÃqœuçL pø“=€ô§z˜pÎëv»Ì³ÿä|k‹sK8ójøkîy]Î=Ƙ³É؇€Çó¸ÇŽã¸[ìŒs]ÆYý;lÓu]‡m¹Žã4.cîÖÖ–Ç\Ç±Ž +®ëºî¥kŒ1«¯à×¼kŒy[Œ¹ŽÓh4x÷ãœyž»êpàŒ¹klñˆõ¼K—~õ«µ5Æ÷¸k3Ûá:8D¼×d,âˆÖ–m ®_¿¾¶æýjm­þ.ŽërÎc²”´øé¹œ÷®u=ñ-Æ\—yÞ%—1×uÇqÖ XoœOx=3ؼh +Àëuà+Wl V^¹R@Öº•ùZÅDMtÖɲ‰>,&ÖÈ·fw¾ŸY¿l­¦Zûjšgªh)e_^ÞõýÜŸª 0Ö ½î ؃iú}ƒušóõ­kŒ3Æûœs@Jñ.%^ŸŽ“±ýŒ÷B¾á’0f?ñ‚„П>ºv ñˆÄ€Þ +""É£Ò3DHBˆ8ΆØ$x°C<Äq qRI•1ò:&À9w™Ë±ÆlB÷ADˆ†¼ÇÜ:ð‡²œcTD‡Í°—éËß×·tžåy'óu®´Îý|6)f³³p¶×a 6çØ¦…'©)!bZÏ¿Àte9¶¶ ¢Öfد)ØÁwkOǹ¨¹wÆTŒs.lo°uÇi¬:(Vßs¤Ÿ™,{4þK¦Œ-Rͽïr¾µÕåÛ¶ðc®Ûívÿš{×<λl‹¹ŽýRvžó<ÏcŒy=osñøã€À˜»Æ8c[Ì»v\§Ñp·˜»ån1最ÍK×¼-Æ9ç!ç×¼k󶶘ëüºÑh\»vqîy[]=žÇ<ïW¿ªàš€ Îá:¿n`ƒq ×¼kÖ´®_¿î®µµ¶æ:ç þ쳿Zê3ÎáÚµkÞµlyÞ%w‹9®ÝÞj46ÂóðëŸqîyuãßRÿÍz°é6ìù÷}•k­‹l’eÿ¤'3é¢ÐÅl2™´”Ê”¯fS•Ú¶ü¼Ð:WZ]Ö¾¿ûËËšû·q0p^Ço %Ö&†sƶë5-ˆÉÎÈkGT +Ÿ“-YÃAÈV w"$Cˆ7\èAŒ‹¨W*bÚÂ…gMŠBʶ[àB~EÀ·™ÃkëÖï"lnsˆkº€1Æ(ˆôBœcÜâ1@ ŒÚfgT/$v9ôxs{Ýa’¿ûãÞóƒMÜl6CàïîúY–eyÞÉT®t¦”¿;9œØÄ´%œÖ–’â þ[jè×Εµ›ìwi­T3 Z•¸;DûæÅ1@óž ŒÕ~ —j›Ï³ž€ ï{¼ î5ÎØÆÆúJƒ]LVßµµ³ÛŸìœÀÏOêÏ¥e °%ÀVwÛërÞõ<Ƙ˺Ýn—{ž×u½Å3÷ ¨×àcŒ{̹´€¾¹Ìó(b›WÜ+‹5w³6ßtöü«\i•e‡z6›E¡ü"×…•ôg¾Rº˜äZjªµÊ¦³"ÏUægÊÏü¿¹|y÷ò/ ÑDpD"n6{1–Q´©^Œ¡Ç{±D‡qæ\r8 u»N–;§•E^É Î·ë§: ‚žv÷gqš+¹žD„„ aìì]!šçÏOJ¤RU|{cµ¹š0ÖƒÁÀî³ D$™ ÞIÈŇ"%Ý‘I)!DÀâÚ‰÷’Ã8–¿'Cd³h˜‡U½"§t¶»Ûiù¾¯TÞQÅÄ"Àl6›Yx×f“;M°Eµ^ý.„µ¤O¥”Öâ`i @8@€ëuUϯ¯Õ^¿Žãüú\ F£Á£(²¡"=ÎyèÛfŒÕÞžÿ·oßœm +J…øË”€ôSSÞçg€óú,[þÎ#Þå<‚~ý(â¼ëyœu=æ-Z‹ +Àóº]Öµ¨àY°<œ{›Î¯ÇaìZÝp¼e àmºÎ{ ÀcίÏ0¶daÄ·=1ÏÝb›Î¯W o›Îª€µ3%€wéÒ9pk¨ÀuŽÈ?ã×¼kËÀ][ó.9Ný¢—59@ü™³úWgÀè½€-À¯W>ž4S€Ú d!v]·aÏ¿²çÿöd2+t¡¦¾¯µö•ò}¿£g¹VJ«\M²©öýÝÿ[ë<Ϭ÷UËßm9Î6"b˜RJ³fh¸‡Ñ¢pç@è^øh†q<ˆãÅ”ÌÉ ^”˜ º¾M°‘BCÀ×GûI×KhßÈ8 RbÈàø{ó§Ê3îW£$A”8sš‹Ð‰`Œ".Íå¼{bĤݎcX̪¤fÑŽ‡8Žm÷ÂI¼¤2Ç{G¥‘C‘g½±É˵VÖ:0Ë[j2Ó5fZ×n Ë9wX éD5 ,L³gRA_JÍ}#I¤KEƒ°˜´lëñ¼… ˆ½'jpèsÎá:ô ÇyošÛÛκãl¬^ØüñÍ›7oßüϳa (è/ì|p +ÐïsΣ³°("Ïc¬ËyEQÔï‡ ô‡CÎ#Þõ˜Ç¹×ÝÚrÝ®·8ÿܳ ùúù¿ =Õ%À– €yç§N›¹[.clóÒæ¦5¹‡\»Æœº xú„õ<ïW—~µ¶¶véâ™À€_;3Xs]ïW—…º€8§nàÝÀ;[ð‹{1[Ø +À­-kÀÙó?»=)&³Bk_žZûY«•:«—}u‘iߟJ™ÒÙ®¿ÛQ»ÎÖ¡Ï1Çí5Œ‘¼cÛ¾ê`!…KÛ`< æ;„ ":‘!í&Q´–ò0%De…À¬–ÆìÉ>‘¿+KSWÿ‘!LÁzBŒ¿’¦ ÚUe EÞ%wÍCöè ÂmΡŽGD¢òÇèXı‰Ö"MÖð ƒáhŒÂ>þcùvsÝaóQ@X!I)â0 Á` K"(Õñ[¾ïû_i]#@~xx8Ël$ài•¡q6¹ ¢¡ƒÅh’ÈóùÜœ¡£ã²|dÆG†Ì\${D)¥e5—Æ`*D…œsX㜄Œ±æÆ;R  RÝ%%p1V4¸ê¬¿óËqÞüøæíÛ·oþç›7o#ÀÚ¾ó'zøÓS‚ßöûÑ{À˜=úÝ.úIÿ0„ÑðæoŽF£áÍa²0=ðøÖ–»n™‚çu¹×åœy?íx̳ `Åq\æyï@{Q¼ÓøõæE=€ómïcÌÛZ6=sÏ»¶é8ïc–üê|Îõ_Lb¸¾¶æ®µå¸ç`±Õrœ–ï€-Ûä÷~ÆôÊwÓÝt¯Ôæ€WÜM÷Ê·a ,íùŸM&ßN&“Bk­>-”ßi¾M·TJëB+íÏfjÚÑy‘)ß÷;­]Ÿ£Ã؆s LJ÷¡ögœƒõOK¯m죋â8_)–ÕAÿjPYÛùààòmÆ‘ˆŒ£Æ]øŽ°»3"3&D¤ò÷åQù ŽƒÍ©SÊý ’&ãŽ~¨îÒ(I‚ ðvm ÌQU"¥Ô—_%BÎÚ7€Cí)DÕèsS!bÇçÖ[¤ †2" `€hªˆÊ."Ä©ïïúY¶{Ùït–PÎf3ýžËžÛh\ZóÚQ;p¯\‰Ú^Ûóv¼ÏÛ ’ÏÛív»ýù^E]ogggg'øüjÔnEŸGAEQÁN7r·Ü5÷Wk—.]ºô‹K—Æûƒ@×½´·\·íºîšë­yî/~ñ‹.¼yóã›7oß¾yûæíÛ7oÞZò~1 ÷•€1€q¿ß߃þûÀ=æ1Þå¼0‡É̓›7oÜ<¸ypppçÎÍ›7‡Ã~ŸG¼Ë[̽.ïvyw›{üÚâä×e@Ïc¶¸¶èœ)Ø¢x¯À/ž0ví}àyÞ’¬alÓÀ¥Kkžë^ºÔøÅšÛ¶¾›—†»æº—~µ¶¶¶åmyö?×  þ0Ûpç\¯{–ÎOö~¦X8¹õb°í4ìó_Ÿ9ÿ6$¨ãû-?ÏòV®ó‰ÖZMtæg‡¹ÒÓéîl¦•òwý¬rð8»´bÝ£ƒ´Æ‡bÍ©ôˆ‚L …¬·£d‘ç&¡ÐŽ"Û¾#²ilü’çADÑâKÇeY–Òö©kJ#k¥”Êè…ÀPòEÆÊèß*¼v-‚(êz^Èà>Qtÿk!8ï@L¸ÕO±N½#š‚J¦(DøÛÐîÚq@!Œ‰¢û$DÆÖ K<2Wçck_öeþ-?ëøNGÏôd¢m'pv^]pbŒqXŒž7JÉXU’Iæssp0%DÆÈ£çæß›s2ÿ>›!Òü®!YÍ!Üð<BÎ}ÀsÛ€G†Ì>Ðw×9s]V;®Ÿ¿œ7–½ýñíoé/íŒßë@¿ú ü6zºœsÎû¼Ÿ G£›£›7ïÜ9¸sçÎÁÝ;wîܹ{÷Î;wnà0àœw½Z7À»]Î÷¸ñs@HÙÆ6J rôÜ€„Ä9÷8Ç÷5~q-Œ8ˆ3ƶ·Aˆk<Ï#‘Á®Ó ç1`M§Á ¦pƒä€3Æ8 g!^çÀ# Ä8¥Ñ㌱hßìpÆ‘AÂùZ%$2¥„1«çÀXÀÖ߈<Bàˆàz×9pÆ9pæ4œfÈÎF@0‡ñmÆ6{=Î`ˆû€# "ô6NoüÚÒDôZý¯×¼k^ã”ÿÏ&“ER¨ÒJ_nùS¹o-ýµVþ´Èó"·Ñ᾿«oAüWßà–`'ÉÞh'tÆC1íìã`€ˆ1çÂC$ä¬q@Dïî2} +“0!øG¢±,‰¢ ˆÜ1(Qþ®”’ä׈$LPŽÈ¦ +Ad‚y›,7® ˜#49çü: 1tRí!FžëE‘1 +!ÇÚD$Çu÷ÑP—J)Â8gë …U$2„q=º&8ر yh=ƒ— µž³Ù콬„;ëuÁz£-3_ ’!& "Ò±¤1aŠˆt7aJ)¦õf¢õF‡^/´ìd‹1ÆÜZÛ{V°8!„ð[l›mo:뎳ÊVwfÎoÞ¼ùÑ>ûíßßþøæÇ7¯ž=¸W=xøðɃ{ï={ñæÇ7¯-P¼yóúí«7oüñÇ×?¾zñ¢½þú7ï>8xøâõÛ·oÞ¾}Ûú}ˆ¢>¼.@?ö‡Ã›wnÒ;æÎ;÷î=¼ûàÎÝwîݹSÝ»sçàæh8L’>D¶gÈ»Ý.g]sÎy†½°¾ ÎVænóE â Ϻ?pÎ9¿Æ9çœwÙº³îôìh¤^ fœó<î¹ÐëÙþJÈy¯× #ósVïqÛra«Î:ãœï3ÁãÐã½èzÝaåœst9[w·WێûÆùpDZ]Í¡îˆõ8çÛlÝqÖÙ:[_·†. +‡ú[FPÿ ‹œóm¶¹Égµáp~ެÖÏŒsî„aØ ­æ˜ÇØÆjÃá!T_\õ’GQÄ·–üÿÛo¿]$gJ«V§Èu¡§?×v˵(ЉVJçÓN¦ýÎ &p7·›À‘ ]ݧ„8cŒ…ðö‰¢„à œ£H¼`äYinŒQýhù¢Vú!Â'8ylL\%S!pþ[HŒÍ¤•_KñI$0yH´éT© .»I‚8!!¨ +J«CäÜ@¤6š$ÁÑ0hwÅ—+ðèØ,{`ó¤+eöšŒ9MÀ¿"’f8'¯s(û$ÅqêgÙ-Õñ;O;VP=)ÞÄÞºÃÀãö +Épay$£ý¥&â(¥ãÀ ÄT âxŸl𬪆1¶n‹Ã•³É@u–ÎyØ«¿rù äõ‹ƒ}Êj¸·€§À›×?¾zQA”ô‡ý¼yûæí›7o¼ƒ]Îa8öaxpóîÝ»÷î>¸wïÎÝ{÷î=~xïÞÇ>xðàÁƒ{wîÐÁh8çŒw»Ýn—os{œó¨†  é8l³É9ïñ^^çœózýågž3æ\â<‚C MÞƒç=Çø@ÏzÄÁ5œ­¯4œž}·{Àg}›÷82â¼É9Ào£®ð8àkÀ˜Ãøuà< +94‡1¾Í;†8F„ÅO.Eõç‘­o8ζÃÎÿðV-ô8‡ÀZ®çöGhÂæê©­£euÛ<ìmõ0ìY¥(ïññ&cNÃáæpÊÿ¿ØÌO•e¾ò;y1Õ*WEqY)¿Óéä‡y®õÔ¶Z]Œc€Û!gÛlƒ§Uß!¶ñ:ç쯷9àA;¨M@x/Mñ`äÙ±Ô‹–NB”ˆÐzD'$¬ˆxÑ*O‘¤””¢H…ÀÏŒ‰ìöŒm”'$ô-Ã8B˜¨qØä<ª¿ÍÿÓ6˜‘RÄqŒ‚ĸ¤¨*e½—)Ê€ÚXVl¼4ý#·"Œí¸ +0 ŘÔði§3SppîBDŒ‡ÁV´ü׎$£Q„UûËÑ<2²­M ovĽÅùߪÛCg)ï÷ë™!„¡Ubº.c++FcÕ9ýµòêõ_À> –œÀ›7oÞ¾}ËûýþÞûÀy”$£›7G7ïÜ9¸{÷î½{>xpïÁƒ>yüðᓇ?|òðáƒ;wîܹyp0JúQ—u»Ý.ó<ÞåœGý~|æBî8œ{¶œðùu×oAÈ›Œ9—~Ë£ßBÄ=‡±BîqlcŒŸ+,BÎÙÆzƒ €à9ŽíØoçh§«aÙ‡:¸îòmæ°¥þ’;cی֬þ bˆ!F¤(†°× yÈ[_çÛÌÙXwœ…¡ãœC¯Çùo{§kx"Þ½Æ[_mlÀ ÜXä¼7VV×õ ÆX³^¼ÆÀÃ@Ïî±8€Ñ…WC}þ[¥OGéN'ϧµ/xÞòõ4oýfš¹ÖJëLëNŽˆ1V]À›M¶Á£äN‚˜D}Îã<'í{þÁ +q{\´‘ñÏì:I¤ <Â>`‚rn¾’pÇe0=¸J)!‚}t"ªµñD Íñ‘Ü3ˆ6¨+)©Ô>€>ð&Ô¯óHð‡ˆ÷ÄöÁß"Æ +!HÄiœ +!ŽH¹•嘄À;6ã ä|D)†!T^b’>ÙažIÚ@$5|ÚùôSûæM>;7L°Ž(áí I’ái/&€ Zwp²{Dfoþ•XæÉbЧR@~sÞäK +°âœÑ8|ù€ ìð•5·×í2À¸³€w{çÀÏ•ýþÍ»n.K€·ïGï#çýG7F7ïÜ»s÷îƒ>|ðøÁ½‡OžýôÓŽÒZm‡Îó¼ëõÓb×QØ}¿MíqNI Lþ mjœ5ÒÅ¥ Ç½¨Ç9cÛÛµ'ÈÙ6ÀJˆ0¨5Äœ3Ï®b;+5a\·¿Ö“wà‡Ü<-,$ï @?ŽnÞ<°Ïþ{?xøðÁã‡?yúäéãÇOŸ=~üôé“gOŸ ° +A¦¬ÈŒ’d/ùû$IptnÔó„°ŽH’>à¢>4[óðQ4¢ ƒˆHÔ5˜II‘‡Æ3ˆao³(鎌G2¶[@1’7§`G.B¼cÄýýÑw:þ§Ÿvv;ê=H¶Ù5îÙæ?%ˆûiƒˆ’æ H­–îxÏ‘RŠZZ+ ÄHðÛÞõëÐã]Î9ãÍ3­À•¢ý¼"!ä€^ý•Ëë`”Üyy® ø¿8x·xËßC€n?ÒÍ;wïÜ{pïÁÃ'?yøøñçϞ>}òâÅ«/Ÿ>{úòå³gÏž>{úøéãÇÞ{òðÞƒ»wîÜõûQ—ÛúŸG÷º§’e9ñ6k"@,*HnŒºˆ` pÑ +Þs,/äŒ-ƒ¢‘a-¾A ’¹‘†qØÜXmÚŠS"Æ!„‘‡ŸY›ZÄ C + öíåö‰ 4tÖ›¼ܱi´øùË + KŒ0Ãæ6k†ÛÎzse¥Ñh8 ÛõK†íïì]jà ¼°û. +ÄJqlïŸÅÀ9o®lÀªä«qáùWZe»:ów;™¯gÚFüîf…úÆÏvJ”ÔMJDôÌ ð&s¶qçIpz×k?«Øé"QÚã¼gUª1¢˜GÕÞΞ™ÏkG´J +ð& }%ÌјmÅ…d ¢ýT9²Ð–Òyˆcë6™$G6‘ØðhÁIn0"z°0ŽKñdG +YŽ£À ÍØÞñ»½¨2Æ ¥Œ›ÍúÈ'ˆOÐC‚Äú’ň1ŽF£ñA»Nç½§ÿhD ¿Æ9DÝU„û´?4ˆCc†ûû#ÂÑ(™ŸT怌UF4Ú7RÒ‘Íâ{^Í pE]Ï~=æŒq¶Íc›Ìq.Õ>HFû˜ ]èEàáøÙó÷,¼ý©À¸àï#@ró€îÞ½ûàÁÃÇOž<}üäé“O_¼xúâé³W/Ÿ½xöìÕËW/ž½xöòÅÓgOŸ=}úøÉã»Ü;07‡Ðç‹ú¿Ï=Z,¢¸ÉG†n £¨U‚#À1Á‘8`̉è{B¤&Œqˆn$xÑ«žWßïöM Òýx2‡‘œÿéäOÙ6óø(Š<“ b„#DL DHHmÀ<¬›7#`.çp£mNªj4B"ƒV>!Æœo‡’p›-òîaëþ1Á!¢À¬ÚJîqg…%d»IÆÊêj£ÑpœzÓ’oYŒûB¢8:©ŽšnÉL²÷àp6ûö|ýŸO´VY§“}“ùùå\é™VJ+•Ýnå…öñæ‰À†yD„iä·Rî4.]iï· Ñ$ !ŽDDÏ£¤¬{Ý B—GDˆÑÕþhD8Âýúç9—”"FЫ<BÊñ-‚Þ´î 2wÏÀÏÀ \lò!¦4Â$9"DŠ"Œþv„Hdì~€1 &ˆh(¸Q‘ D Ùäø1ò¤àÛ½iD&I%Ï¥a7<Â#Â}ÓŽxƒ(’ˆ’Ì*‚>½{ü:D]|Fû£}þ‹ Ò<8øÎŒ~Ežç]çpƒ3ÆÙ5ÆØæ&s.5êÏÇG ˆàz/å9xpþõ%À;A‚£ƒ;wï=xøðÉÓgÏž>}ùâé‹gOž½|öìÕ‹g/^<{ùòåË—/^¾zýòå˧¯^<{úìÅÓÇO?¼wpps8ì÷£ÅóÿšÇºõ•ôäó Š Š¢hïo£ èGQ¿ŸDýZ;ɱÛ]æ°¨Ÿ 1IŒ‹Ö¢(ê×_Ó ¨m˜“$â<âÀ9k8&0Ž0‰×ó¢µ Ûµ·9=AEW(I¢ks¼>&8ÄQ²¹ó¢îâ›'ýh/‰úQ!Š BÀ(bÌsÍ…÷P£Ñh\ZÛbžÝ⪿9FQÛ`õûI’\"¾ÍœÆZ´%{IEî)¸ä8Œ3ñnèYOi€(âœ9 'ö‚À{ý¿\×ç?Ó“Âïø:×·”Êr­uÖÑ$pÞŽŒõFCDžáÀyÄ8[ïÍGUUEß=’DØ€ŠQ@˜>ÇhD‹i@ˆuƒdTÕÏìÚé7J)‰ŽƒŒ[Äpt†˜£Ÿb×@D˜Ü=ÚG¤( +¢¿ÝézAxAˆx3I’!î#Ž(0$R$”‚¤”1@Œ)ßh2n¥AÆìí=*„v½qž •"E$h'à3ˆñ‹šÐAõ.Ò; À㽚Œ, ‡Æ$KðCeˆÈü$pñ‹à×—ß8×ẀÞéùx| ð.ÞE€~tóν{>|üäÙ³ÇO_>{öòå«—¯^¼zõâÅ«WÏ^¼zýúÕëW¯^¼|õúÙËW/ž={úôÙÓ§Ož<¼wïÞÁÍÑ`ùü÷7q`½ó,|DˆQÑÎN7 LUÑ“I2¬=ƒª."úJH!¾@ ׯ8 +"’$Éìñ‡ÐDòªñ¿H)0†˜·nƈBœB€ßéŒpôîEIÍF3€dþÇæà€¾3£Ñà:ÿøõ0-®_‡{ýìñÓÇO>yòàÁ»7‡Ã8÷<Öí2Î<ûvî“€m[i•iè`QÔ"è÷ÚÄí…LS‚ífì’%Ù)âMëÀŠ $$,úpÀÜU¶Xh¾¹é]C­A„=üý>  ö| !g=V°€ã°.?9%ÄÄÀ)ÆqœïñmÆìLv¥±Úp¸‡µ¯(@ßxH@¯*¡VÉ!g뎓ô¡„°®¬X“1+°E«À6zøA8?ÿÓÊžÿÎäðððöd2Q¾¯µÒ™ïk"ŠC‚HJ9'{&­ÿÂ{Œ9Û± mZp}‘A$ÂÊ3)ƈQkw„ “휄’¤‰\WØzç}˜ â Œ1>7Ì"FQ·Ûow cd9&ch!Ã(DEíd.E,Êì9„|›±hNBØÀvŒùZפHž<þú÷c zl›÷ÒÈ#"Û~ö2üP ðÓ  2ô³ ú¹o¼Ó8[ܳڻ9ø—V·Ë#ÞúýáðæÝ‡ï=~øôÅ‹gOŸ¾zùâå«W/_½zýúÕ«W¯_¼zõòõ«—¯_½zõâūׯ_ýøúõëgÏž={úâÉ“§Oß{ðÀŒF£á°Ï=Ïóg;ó®³S}€È›# ëGÿ"®äsš" +!1Îq+±ª‘ +a¥è4@$ÂEšÆ!ð͆;.ãØž/ƒ‘•!˜6@/l²PŒmÇ+âŽÃ<Ä4M—r¢:¤âÄãÛÛlÝqغã4V‡²}<õùo9@ßúàˆÇVÔ=¾½á¸µø„ÒA= t ‡±mÆ C&„ÀCΘÓp!0€÷æÿËó?›ÙßiM•ÒÙn.a@+IÎGÄÚ¤€“ì[LAE†@}ohË $D"cß +k:‘|g…H„ûDBˆ±<d_ÊypôA@ĸ.ìþÝì´½ÑùÞ1ÒÀAËAó!X +QG‘‰BÞ㽓 2õbŽíÑþôû¯Kv­#è…œYˆ­“ Æ8í¿wþ/îŒÎNê& 3‘yóæÍ›×?¾x8„›wîÝûýäÎÓg¯^ýøêõë×?¾yûæÍë7oß¼ùñõÛ×?¾z|póà΃‡î=¸wçÎÁÃ×oÞ¼}õã[»åûão~üŸoßþÏ·oß¼zø €ê/ïüÇK€-¾D€þî>|øàñÓgOŸ` ÖN<pŽ[79 !R;4K‘ÄRÄÐî6Øâó|Óaüº7èÛ¦ôBã6Äao‡B¦%ŽË8ˆ¸Nº·ß\ˆ‘D ðtys¹Æ¹²ê°>Fs[\‡¨–4ƒáBñÆ!c '$A 47VW¬ ЊCèqàYé1X§á@ŽÐœþ/ÏÿíÃC{þ'Z·rßWyI¢@ãÊD•I ±pêà® uFÿÖþ®·,MEe` L·O;4Tjñ¦‰lUT ke,#¹èHG; +/½Â|‹»öÁôœ‘“Àaªp°±á:±Á¹Ë þ†%²;G{8d%A7*¹›`±â.îâ'Ðÿâ\¬J²åú˜ÓáL[–¨ÅÍõ¬÷ãyŸ‡C'§­¶)°êsÛÉ+0¶ÇŽÚN8âЃ<GTà÷|ßoà÷rY‹;€¸ºúP +ð<ï¡p5¹°¬ºeéOªž§¤ùü^Oˆï‡N!7}kì®Á}›sŸÛM»Yj¶Áúý²P 2B™ +«ü÷ÿöþ/¥M¼Ó®Th£‘CcE"€À‡#€›.€çÞ‰þ0ˆˆß /U—Lsí@&)e’¦Y*³,MÒˆ[Ü@v–³{#€Ý.@vDr s»C1[­æË0ŠÂ0Ülâ”±LâT&I"ãu*7©L¤”RƱúSnd­7Q´YÍ—‹ÉtˆžÛjÕ‰Úÿ„¨€##D§Œ1j1&ªˆŒóÔqY«ÕBÆÀmý’¡´Dó“‡w By•}i!sÞá9ªjP!ÇÌšŒQòoH¾w]F5B(T;X Y«å¹Ê°Á«N˜ v“VÀ‘cв46Ѷ8rð<œP%*¦Ó›9î=ZÌ3XSQY‹1й +t×ÀœËÁn3FÉÞ!c‡1ç›Všå¢P"¤L›”6˜£3Ûfm›5i+ Ü{íÝÓÿ»}þÿ¿þþïÿþ?|öþ÷1è°ÈÑLøÆ÷ׂ½Æ0ö4`:0JöÙÎX8À!eŒ9Ný˰êËÝv ãq´<ç¹ëPᛵ›åƒ +xâ³go°I¨Œ1DŸÁÿo>جAóA›Jƒ6w;ó?V¸Õ¸ËøÃ‡C‘þÙGóÑ.˜ŒðÃð ûלÈңꭖçFÓùj†a­£x#eKËD¦R&Iš$2‰“D&i’ÆR¦‰”ëXnäzoâp.góùt8ìv‹æŠâ¤ð/DÎrf?³ƒª÷Ôeð í0×aŒ=e–ÅžrJ(W¾„Èí +…ªÅëpT>?v^] Ô6%û¤ÐlgìðB*ó[cŒ=U$¨.Àf”4;J-ªiDˆ:¨cÁÎghƒÒ²òjÚ+€2½5à0g(}Ƽ¨ík–ã0ä>ç6m0Zz Ê€%BÊå +¥´Ù¦mÖnç@%öàÿý~ýï³ÏþëýßÿK±ÿÿÓßÿ‡Ïþs`XÈ;`CÀ1hù…ŒØ ld:ú¶Ý†=õ@‡#¾±hªŸÏ,ÀÉ€cÇó€£õ²ãät—/Uà]°o@üîÃ5°Û·àw“x–eu]o¢Q ¿ÏYk#V€ükDô£”P¢°Å‚µe:Ú ˜ÿ›ñ•?q»­Ü9KåJ…Vè{pßþÿ` À¹©,q8Lwp_ +°¹?@ñN +Þ“,gÓÉìCEÀµ.)€A·;™Ìgóy®×ëu¤ød#e’ÊM’J™&IšÈT&Y’¦'±LÖr#ãM…Q­fóår2ê]DZŠÈ]'‹QB[ùÆÁ*¸9 0o…Qư +”PÀ"òØ•Š:œ,ÛÇ\ÆÀa€>ïtÔ%û0ŸRÏÛ€À˜â—;ì9S8àUlÖ Mž[:Ÿk„ª(Ü/ò»QO£ÞÌ-½A+åò@ÛßßÛ;`L€Ò`-%©f•ƒ6rÞ6kRmï±.kÁï‘+š|yoooïvP"eBH…RÐÛ̶Ÿ²†Õö4Ç€\{ïðÿ>ûì³Ïþýù¯ÿõÖþÿ_ÿóÿ×a†È; ,:ž…ì–±/«2ÎÛíJå“|w÷Zˆ¬¡~ äFÀyŒ1àŽâÞ ey8Ï€Þ.‚1vø UÀœy7îKŠ‘ ¸ü®`YÔ¢UÝ{à9"‡ªŒr°Oð™2臇šŒ©Ã]@ mUT/W*•Jã=ïðnº*¸‰bˆˆiúgFj'æ@wWèª ½?˜|°ø¯5 BŽ¥õ–û«áp2¯VË(ŠâxÅ2N’$N’D¦išÈD&2‡$Meœ¦iÇé&Žå:Ú¬£M¸\Í—óɤÛõ\Ç¡„rttôòåË—/‘÷”æsž÷‹³%ÜʺóJt %´ƒØó‘CÇ.Sü…ÃƬ@É—©ºè©Î"kÛ”hež»xªB#è€À(5÷0æ²a;ÐnVrgT#eJqç±æC®Æû¼I•’¶§iûšF™ã¾lù9A¹]ˆÄä.¹U;rÖ¤ÚCK‘–ýžÝl²¶Ý(ï?ØÛ×H‰BË´áè ­cŒV´}òÜ€wãÿÏnÇÿÿéïÿ×ÿ¼0®;ù{Y¸U@†²þf>Öl3ûkÎífE£ÍÇÞ DD»R¡ [øŽå98ÌaŽÊ8G#àWÖKœ›"€ +Š"À=Àäêþ`‡I· ø]Àª×ꓪ•à­ à¹ÃÇbÑCß÷}Î{CõK¦mê ààŒz¨S–;ùpŽPeÀmÖ ”R®Tô`žNÀ»Ëüõ"&7Wš%óV«;šZ-×i £8Ž™$I’¥2IÓ$I³8MezÝÑt:]ÎfÓѨ;“2M³,K²4ͶY–¨¿¥©Œ†£Ét>Ÿ-§³ Ô'©í4MÓ,ɲ­ÚåIÎFÓÙ|¾Z.§bgI’ïþ4‘i,3™ÅqÇÓzÝñ\·ÕM»³8É2µ–®+°\G“ÙtF›0\G2V™~"“$•iš¤I’J™d‰”qšÊ4M2™$‰”™¬åf³‰¢õ*\†«Éd2òºžçPrttt¤"€±BP5îî9¸gø?„""x{ Gœ9MãŸdœCë{!†¿ï! +ô<øÞô h{t¢Q!ãqÈ(%A‡à{/!žã8®ƒ3Ã×B,°B!Lª:%^Â9úÏA½=ʦ˜Ãç”±&¥%¢ík¬­ö½#0—9à À÷_Áp(‚Y €@ ”–Ö…çMü'M¦&mö÷öö*¤\&eBèçü"JèáEË î¿öî‹ÿÿëùû;û±t8~_QHU¨?øŸM€1fÿšÛÍf£±×DìF xѦ&k³èÂкsæä€À»–j8àõ¼|Ÿ1VÚïEW“ɇ@lÛ¶_ŠÉï:`Y´nTõêß©à7>öÄðû¢Àâx¡@)âRFÈ—ª€!eféõ6ç¾o36÷gް›Mڤ܅ðçuÜ;]€?\‹!Æ››+K“Ít4šÎFÌjÑz7’I"ÓD!@*“$ËÒ4I¹tœ!Nf³Ét6òœYœ$Ûôm–¦é6M䶈îev»ÓÙ|:›L'CGŸHµ³³,Ûfi²ûKšn†£ét9ŸÎ¦Ãî,ŽS™IUsLR™&‰”q,ãõ”è-‡µêÞ|âÍâ4M³$I’„êD×õ:m¹nw4™NWa´Y¯×qœÈDÊ8ITÔ¯¢)ÓTfišdY*e’I)e«ÎàfGë(Z/gÓÉdäu]ÖR:Á­V«Õr\Ë8|øðèÏ~aÕë†õ•eFÝ0 ×xf†eº®ë–~ôׇõ–eÔ-Ë0ª‡‡zÕzV·nø±¬Õj9Þ£eõº®ë:9|¼G £^7,Ëprx¨ëºeÔzÝ0¬_Y†Z¼®ë†eYuÃдCÝ0 Ã0Z†~øø¨Z×-˰ ËjY–Õr~V§–®ëz5÷üÔ?ØÛÛÛ{¬ÿÌ1ê–aèÚá!Ñu½îÜ,~fäºé–¡ëº®W5mï¡õ•e-Ëj采zݲ¬DàǵCéL'GGD×uúÿ8Ôöë [ÖÞ{çÿ¿÷üW# ÂAËñ9WžiпfŽ90ÍmÖl6¿Z8]D:¼Ç5›öØp° Œsö\…ˆžܳ,ÀUT€›"@“±_ü¬ön àjò»?’ä’þˆˆ\L~×yiYÔ¢gÕª#&B_€£†ãñb¾ïûy,hƒÝ¡ÉC%‡* ”!è-ß÷CÏ‚CjÛ¬¡ €¼ ,Þ3 àÜŽ0¾}É$IÖálºY„ê¤nd,eš¤2‘2?oÓ,IÒe‹:]œÌ&Sáq"3©t™©+ÉR™¦‘렘̦£É°Ûª׉”iš¾MdšfÛ­Ê(Ò4•ÑÐMf³ÉTxîT&©Lò a›Æ2K“DƱŒ&GšN[–îͦÝiœ¤YÇq×uBõºN[ž7œN§óe´Žâ(Žc'2‰ó!•y¾‘¦iš¤R¦©ÌSUÜÄq¼‘Ñ&ŠVóét*F]—µ(Ñ Õ}ß÷}ŽËH…RÖX¨SÀ@G%ç2`6«4 ‹ÀÛ”Z`8ÀÔÛ;×¹FÎ'e¬Íì²F˜ãtX›±bnÛƒ¡ƒ¾ã@¬£Üf„PÆ=è~~H(c¢w…ˆ„€¾®Èð¬Ñü%µ›m¢iÚƒ½=ÂÞœ‰+@ ´Áo 7‹ á«'fŒj{Äj½€`<Ú„6ú>UÂÊF‰R`=VTQg0ü¾sï{ïžÿÿþNýOIt8B`8†P²°œ€ç ŒÅ3køs}hÛn6š´yÖ? ¡ u’²«Òbhþ™Wgò(º–…/Áuœ<ø:Ošìðgy07ź\]}8°o #&NDzêuCò«_)ðEßÉ®ˆ»ýϹm³­PÃëÿämJ¨Å˜C}à aë0×è¬PRy'ø`ðòþp-æw®0œGëÕl6Õ9‚Õ&Žb™ª :Meq,Ë­;ÝÑh6™Ž;Š|—`|…•vè×=Á;üYžì«ÛLÀ€mç¬Ç@«^¯Õ³¿ó®ò"à=æ%¬Ii…å• ýœ¶ÏA0Ô¨}à£sÃÚ¤´|7 +ð¼?‹ x‡ðw‹?ü0½{¹Žë¦Ë0ÕÉÑ‘nâM"e"“,‰åMÕM.[õVw2M¦Ãn‹Nd^ŽÏT„°{˜ [-·;šˆÉhè²£‘”‰”Y’&Yö6˲m&Ó4‘Iš.¡å†ÓÑh赦qš¥iš¤ÛLÊ$“8MSǛ͌hÚ9<„ér>éºÌeÃáp8$:ÑõzÝñ†£Ùl®Â(Š7q,cod’H™©¨?ÍÒ$Qq@–$i*“Lõ5ËX&q,ãx]¨Lg£Q×mÑz½^ϵ”Uî— \ÁqÚc@t`–eQËj1n7HSÉ*Ù ZÊXë6O—#ŒQy[ºŒ1öKJIi_cðltJ)eO•=¾tœŽ£Ø€-&8rvƒP°m5ƒdEÊemèðö˜s8²Y‹QJ 1Gm_{pÀ˜=>Cp€B)CpZè0ÊZ-Öbc%V•#%ûÄqòÁ:Ö¦Ìðy§±··÷`ÿ¡’)SFJ2õy QàÞ{íÝÿ?{'ÿïÀ îûz:`ÛÌf¶­€öÌòcìqyp{༟Ø;xy5ét€YÔÒ«UW€/Åðûçê”pë"ÈÝ.ì6kRJ›|g 8°/)Ñ©ÅVÄzK0Ðk4cBJÝw à—ÿðÍgðçtà&àìaw2™/Ãh¤‘C –Q´‰T³<ÉÒ,“iªHóu¼ád4™ ¡E‡Y°û·I–fª_˜¦i¶tZŽ7ͦÃ_¹­£î&ÍÁ!˲$ͲT¦*4_¹N·;‰áÐe”©LS™¤Å3&2N’M¼‘½Çšv¤9³0œ†Ýîh2™L&Êá×jyÃétºŠVQÅRFª(e*“L÷YºÍk‹yÓ#N¤LÔò©”2ÞÈu´^GaEËéd2ìº-µ +W“Êl40ïÑ»*ÈÄ–Š7)k@óo é÷8G°Ð2eÌ*šÿ |ä¾ïƒ®µØîSfwz:S,}7gá¢ãt +­D` Žvƒ4m`À¾KÏsfså°Ä¡Êe_ÒÏi.Ьíka ü3Œ1 ŠN‹çê¯jqŒÜfMFIùaNþ^gåf³Ã;Ü÷í‡û{{ +qmÒ&¥M[gdÿÀøÿ³»ù?t:ðâ…ï׫úÑG°™ÍšíF“ZÂ9S(æNz`C»]ÕŸS¢éÌ'°®}¯Úõ#ÔR¬†§à¹NìÊ€ðÌB¼Éx>Ôl²<è›.ÀäJü‘ÚwÀ²h½®?©:“«ÉÕ•ÿoeÏâÕ ¸Ýf”6( z"p X0B>W0æ8ð°G½Yn(|q”BµëÀÓ¼Y×¢ pŸÚÛfo +Í©Â6pþ×ÔÈ@®å®„œÉçLp<à¸À(ùš'Ë-¦­Z–ˆüÚçÐV™É^`åJ:À}ŽÕöN(—¢”2hÛ:+=ÐcÌy~Ï/gïîù'þèpà¾Q=«ö„à=ÞF+ ›1fUsUàñ—ŠÛGuP†K”1,Og]ÇqZT·Ô+ñÔϹ xt-Ä"È‹*øENêÝ€—Ä‹Á`ðÛÁ`0èÓ¿xÕï÷;iÖj§§§Ç>¶áV +@½^?Ó«îï®&Wªè³Ëž·oe7ûŸQJkÑÑB(³(Ã*²\4FwBÔïEƒÁë×ÿðÍégµ“óË׬ܧ¾wÅëuoÂ0œè„hy´Þl6qg2M³$-Ê{Yh‘–7FCÑuè$–2S-6µ½ešJ¹MÓ$ro8Œ†.¸T2˲T¦2ͲìíÛ<üOÓT†®×Î&Óá¨ëLã$/9ÊLÆI–¤2I’8^¯GdO;"Gš;_‡›8ŽbU¤­¥–ëyÃé|¾ +0–›$ßÓYš(Ò`šd*UQåŠD¦©b'‰Œeš¥2^o6qEQ´šÏfîç2Bêõ:cŒ¹%´É9Œ9Š{ªðP©÷µ,J‰F£ÆT”2`¨Ä^rÞóÿðß·rf+£ôsªí—\x~õB£7÷náèänI®š:¢ì)V(S¦—ìócŒ 6çœókŸ£Jì³prÑ©0[ôð‰Š¢)!ô—ʤ–VL¬Å,Ö²í&¥ŸìŸ0´Y¥içcß/ï?Ø{°Ÿ©PÚ`ŒÛLgd´Ø‡®½Ûçÿ¿¿³ÿ;îŸ=1ªuDœ¥ååt +àæŒ+Ôœ÷¼ªÅ¥´¬<”„a,”ÓŠkϹ(òžgYX4óÀ¯}Ÿ1ö3þàâUß<®õû¯µOûƒAÿ úƒ~¿ÿêÕ«~ßü¦yzúŧÇ?þø£¢'òñé«AÐéXuƒÖõªçMT + JªðܾÕØ@³A)eà ˆ€‚*^¦c©"¢8”Ðk3Æoh·x«e¹Wþ"Œ’½2x~NçŒú¼‡ ¡²··÷àÁ_kšF+ê¶Á¶uFöû0ÜÔÿ>ûìvþ¼ýìÉãûA€À F+ÍëÖÛm»(¹²ÿ> +4Ô¸QnWÁ¬gÆBJ¿tàðž!€ÊàÅW"8*PU@ÞŒ]\ôƒAíƝúæñy¿aöµO_]\ ýË;Ð7kµÚµÓãGw ßôOÌ~ðMÿõÀ›\)`ïV`ßôr:˜ÝfÍm´9z‘s°¹U­; «+Œ˜`àTu6߉(5¿¹ç—¯/ÿñ»üº?¸Å¸âhm¦!äЙGÑz-c™f2˲L¦‰Ld–&éʱ¼át> fÓa—Ž’,GÅÍÏòV[*WèMF“Ù|:u™>Jd–¦êNr L³,M#¯;™.§ÓÉhèNã4“ª’˜ÊT&jƒJG¢½NŽºëM$¥Tý„Ô²Z–E=èvGÓÙr>âX1¥LS™J)w¼cU¨ÈÿšÈ,IS™%i&ÓDÆi¢8Q¼^¯Âp¹œM‡]Õë”*Ñi‡1V!Œsa@Á(Qèä™&€ÃZшÅ|90J)¸B±Ö:þ9‚ÏE r!Zÿ¼RÒH‹ðý ˆÔâ®™àÈž;̲¥6iªÙÆ€Ñ&Ë7÷ù‹p@ÝVJ LmP +¾ÿ¦¸”P%8…hpµ¸ã°–Ř%ì¼¢qø€ ç«„צMÎ;œ ×±Ó&ÚÞÞÞþž¦F>/Óf“Ù6êHöüÃpëü¿•ÿpþB¢?yRýþû^ÀmVn÷jÌÇÉ_ á.„ÑõsÊ®Ò`ߣ?¶D!ÐGië©:øÝ;UΡƒ/îæ——ƒËËÁ7ýþà²vr1¸0ûæIí6ôûƒôûßö¿5ÍZͼNÏ_½|3¸¼ÔÌ×—————·2Û¾•Ø* mó—¢—“DÛ¶-~¡3ÇVpÌ-ª[®€zý=0 øÿÜŠn®÷k7<€äÞÝŸH)e$7SJh½Þ].×±\Ë$Mâ<|NÓDÆqzÐÌçÓùl>íºs™¦Û8»±ýM³t+ã4MÂaw2›ÍçËÙdt(eªüYª¨8Û¼7NFóy.g³Ép%e+ITRÊd¯7Ñh„RB¼p'2UFRoµZ-Ëñº£Ùl6—Q´Žb¹Id’¦Én„1Ë2™¾ÍT 0¿K©¶¾"-%iKo6›8^Ga¸œ/§Ïsi½^·òž²Íh³ la)n*s‹±p/×Ñ@€Q¢ÆZ"à¹]¦xˆ8æ‚ëÀQø"¯ ¨·qiOc¶ý_ ÆNt¬Êit€Y-Æ(i"¼@®æÝ(ÍÇÊ•ó%ïq8‚ÜgPÓ4íÊ¥ ÄY7ß'”1xCëæÎ]Õ|´pÀ¡IÉ‚€cìøÈ²6à¾/ªW/À¦ûû{û{Z‰R©Ðf“±¦]gd0—Á#€âü¿ÿïœéºñäûÞ÷AppnsÞdtÆØcÞd*W`zÒBÜ­ßd_Bù‚œ­Ìý€ã­F€ÂOÄ—hµÀ¹\ú———ƒÌ‹~ÿrP;1}óoïDߪ`PÀ+³öEÍ<}^ ú'æ+ Ló{ùÛË×—µ“ã½½B‰ä&¸  ʱ#zˆ¼Ðf6€XX?s•f:¹å„½æÅ¾ùì¤vrþ.|÷Ýw{Æ_¾ô°8­ï^ùȬ”³–N)u§Ál>_ΖóùjEaEa…«U4§³¥2Ø›ŒfJS/ +£0R‰¢p.£h>™Lg3åÀÕu…šÑ]…a¸ £0Œ¢h®Ã0ZG“Ùr¹Z.—ËÙhEaÑŒ ÃUø&\…«Ùl6tëu‹Ñ:éFr“(ŒH’¤NiËjyÝ‘˜.çóe¸‰£0Žc)Uñ@µ‹°?˲,Ù¦Û,Í’,ÝUR™&©LãXÆqËXq‚§“n×iQjY‚‡:ŒQ +>¢@-½m#ûècOø€œƒUÇ 'ó0FæP¶ðª¼A ö9eÌqà™7€B ¼ô<ìÁq%eŽ@cÑÃ6øÈ]C¼‚h¡ÍÏ Ñ)ÚôÊA«ˆœȂ߻ÿ;üèOžèúö¾‚€çœÑ?¢B¨æ8€âŸ ÀŠ™vUÇf¥É‘ƒûÔ¹0ǽSàœ¿ô<ä—ƒšùÝëËÁå ?¸€‹.¯úæßÖ[)À·ý¾iÖjæééÉ£?Þ»ßæ@ÿòrpn¾þß.{y©`oooo›  iÒmÚ€BéÙmÆìž.Çæ0·•Ïž€ã¾zççæÅÅ |V;1o§Åõß½Gò^zé¯$•2ŽçL¯[­–븎ã8®ç1Çq\Àu¼®7Šùd:[ÍVËÕr5›Žº]ÏÅ®ãxž×õ<ð<×ó¼Ñ0˜Í—«ùr¾\Îg“ɰÛv»àª³ëy® Cìbw6ŸÍæóù|­f³éd„žãv=ϧ ž ®çº®ã0—9®Ó¢d´–qœÊ,I¤”’ÔëuËq‡“I.ºŽ"ÅÿOåF&INPÚý‘¥[£(ÌKÓTÊL¦R¦2–k'2Ž£h­ÂùlÒu[-Ë²êº®ëÆ³jõðH×-Ë0êFÁ¡5 ãìÌpª†ñ¬U¯u˲ô‡uÃj†õ̱ôº®Æ3K=Ô°ªFÝ0 Ý0 ]¯z]¯ëúáýÇÖ¿«†eX­:9ªêu½X\¯NÕ2ž=3 ÃhµžµôªnýB×ëÆ3ç™Õ:3ôC½®ÖÖ­Ÿº®ëÕjµztxxxx¨ýõÇ{{õg?«V Ãj‹éU½®ëºáT-£ÕR‹Õ2ªgϪŽa–eé‡{uð,Ë2 ýPÿ™¡ëê©êº±S ~øøèãÃÃC½ªëÕ#mï±®ë†~ïµ×¤Íf³Ù|gÿsýÉÙýÌÿƒ‚€p>¾³i¥R¡J5lh¡Á`6cH«Œµ›&çh伫]À˜ à9vp^ûôؼ¼¼ÔÌï.óà··`0¸¬˜ƒ‹WýóOÏûý‹‹.oG¯úýþ+³V«ÕT +púEp9˜æëËÁ.Èàã=z|œ€½ À{¹ l»×c8ôŒ!8J†±6Çyîtv‰€yn^ÜŽ>»?øî»ï¾û?Þ‹’<ØïJ¥ÌR)å¬UWÛŸ1‡µ˜ã´X‹µÇu\×q»£Ñr6ŸÏ—a´ +ç«Ù »žçy.s”RµëºŽë¸îp8›‡óy¸\…+å¼áy®ëüÊÇq]p\çW®çu½ÑtºœGáj…Ëår6u»®ë¹®ë2×i¹-—9¬Å,æt]×e–>ÚÈLÆ©TóD':mu»ÝÑtºZ®ÂuÎPõ¿<óW'ý6Û%)I’d‰ +R™¤YšÈ4‰“X&›\GQF«ét‚¿rZuÕÏz¹9ãŠü‰B D_ˆžßûõZ-_ˆëßãñØñWWjžhl¢'„ð{®ž£DcÐ +T—›Y ÄØGñƒ¯ÆÉ†?8ˆþXøÂ®Æãk¶,@,~?€‡ }ºPt2ÎX»Mí%ä@#_ +0~‡í¼•†ã@`{_ !z «‡~!Æ"¿AáZBˆà‡@û€öp!D1èVqˆB|-ÄKDÁš¥ªؤZ^}£””¨@ø¾wïU@³AY¾ÿsþDןèú÷=\ÿÀ9_'–ÅlÖl²ªÿÂï5í1Ä3 üÀºò9­*ë°6k3ö”w, €åÌËcm¨W´yy9¸·R€A^x/ø¶?|[Dß~köM³vzú~ ÿª_D¯/çæë׃w#€?þøÑããããÓÓÓ\á6hƒÜ)î¢ãFp–9Œ=w ^×iÿâ0?ß}÷ÝÝÀ‡ê2MâX&‰ŒW­zËí‚×uÕ™îzt]·ëu½Ñh4™Í‚Õ2T¾Zár>›ŽFÃѰÛzÃá°ÛÅîp4 ‡ÃÉ,\G«U8Â0ZÍg“‘‡8ôºÝnwØ»]ŽºÓÙ|†«0Œ¢Õ|¾œÍæÃ¡Z¯Ûõ¼.¸àëz¿êv]×q¨>Z'Rñz¥”²^'„2o8™M§Ë0\¯ã8Žã$•±šÚfÛTM'gÙÛLѳL}2•YºM·q–È4Ióá¡Íz…a¸šÍ¦Ó‘ç¶tBH«Õbà9¨³ /sBH§è¨ø{=ä6¥À,Î9"b9¸ê«Á™è(vpfµ€R¢¼Ñƒcmîß(ÏC­Ï |Ä+°ŸQSïJ&¨þ`3›±_枎DÓ´=b1uÁvæè#0ÀQrYFP,ÕC ¼–ßS)V¡Œµ•D0ЯòNGÞ^~°·¯=Ô4Â4,\ÿF«pÞþ¸€&e”²¿ÿûÿÀõ'Otý‰PÙ?ðñÕøÊ², €1ƃýkÞám€:üÞ÷}QUЃ:  mÛöÓ&¥°Š®YÞÈC×4/úýþ`p^_ƒþàõàNp“Ü×È#Ó웵/j_|qO àÛ<\¦ù——ïG˜¦iš&k6(mx¢§¸ÊmÛî!S.~cÄ?Av%v»ûþ^\|sa¾Ÿœß—µJè—T#LW~¤Œ“TÊdî´ÀóºÃ!v»Ý!»^w؇£ÑD̦ÓÙrn¢(Zo¢õ*\-g³ùd6›N†“Éd:Mp2L&Óér†›(Z‡a®—«p:™NG£éh4'“‘˜Œ¦³Éd2›¯VÊÁ#\…Ñ*œ/§“Éh4šL„èGÃѨ‹‡Ãî¨Ûu¬úp­=2˲¬^¯×ë–‹ÝÑl¾\.£8Š×›Y’%Y¦ÈÇiú¶èR¨(@æ|D5˜$i,c™FÑFÆ›p-Ãù|4éº-¢¢ÞTäêÞ¹q,‚’¿âŸ!`n÷Î92€ ðx¡,|sèþ¤Øls ¥¬t)¡¢Ž :¹nè@‡£¡ ‡ˆØ †pàœc‡s†…šÐXǼúG›ŒRò‰¦išÎúª"0›©î¢€=ô{ˆ{oÐz‰j5¡¸s`Š­Z쀌E$ð”2c´L˜Ý¾÷zšÍæ ýë(zÁõ5Ï·ÿز,@°mÔ›6÷}_X:"÷}߬1çÜ·¼1ç¿VfÖFiÇR£¾´¥ì½˜ã˜¦yaš¯úýþå`Я}zlîD¯/ïó Hú|kš»àþ`ðúrp®àòžàøç§_|qjšýo¾yeöé{€ò¡ì€ À1Ô Ë™'ÎÅ7ßü…ÀwJ™6+±›f"erï%“$•qšÈ$ô¯;ŽF“ád4Í&ÃÑp4M&Óùl6Ÿ¯ÂeGë0ŠâXYj,§óùt>Χ³Éh2›Í¦«ÙlFŠV¯£(\‡Ë™Jö§£Ñd6šN¦óù|>›/Wa­£uFrFa8ŸÏæóÉt6ŸÌ&ÓÉt:SÀ1 'Ý¡kéÝ(NwCºN)muq4™NVËÕzoâM’HÙgi–l³,M“m–n ¡mšm·i²M³mªÆ‘ÒLÊT¦RÆRÆ›(ZGë0œÏ糑çPEhcØŠï§+»G çȇ-§4‡øë+Cµ+íˆ"ç~z/oÿ=ž³‰,ƾtœºªòÏ×ð\µø÷†ÒŠVsoÁÐë Wç9WãÀv@T…º7(%švDc0Ô1'1SØ îÕ7z€ˆ½^¯×Cî¿t8"ìLQ9bçØŒ]Ÿ‰tçÀ#û{ûÿF#úC •2-ŠS:h6(k6›Mö䉮ßà ¸8À­í¯&mÑi0›¿*¼Dß÷/‚ñ‚YByØö|ŸsÞ®!Zì—Œ]\\|sa^˜¦i¾ê÷ƒÁ¥€AƒAÿõë»)@ÑP5€DÿÑ웵Úi­vO°'xýúCÀéé©YûÂ4Ío.Ì óâÜ<?à*ÌäDÇB‡åÒpí6»¸¸èßçÚ¨Ú¬<&v£Ñh¦¬˜ÈT¦!8Þp8œN¦Óét:›Ï§ÓÉ|2ÎfóÕ2\Eëu¯×ëµÜÈõz®Vóy¸\­æóùjµœÍWËÕjµZF«u´‰ãx½‰6ÑzGKõ ³él¶Z-ç«UEá&ZÇ›MÇ›( WËÕ|>›Îçó¼<8Íf“Éh4™tÝ–> +™¥ù\aùs½Nnw:™Í–Ë0ŒÖ)ã|~Aª¹¿mN>J³­*ým³·i–m‹úÀŽt eªD‚£p³\.çÓéÈkQjYÊG¯P»âùþï0è!rüÞAD¿×ëù~ý7jsþN½Ä™\×aT3‹1f¡žSòÔ÷ zˆˆB©ÝûØó}¿ÇýŸÐá»YYè!W>Ðö« ÆXË¢”RÚ D#ŠßæRb6(‹l€0ÛGä¸(Gìù=ôÿ­bGâCc¯¸óz¸.c :h8”h{{5ö1­T*”ZÌf¬ 4s ô¬×ë©âÿxœ‡ÿùã{ÀYÓFËSº^È{> + t•ûpà¿VºmJÁ²,à<zqqqa*¸0‹@ÀM +pyÞIj·Š€ƒAÿò¦ÐiÖNk_ÜSüön àòÔÌSÓ4ÍoL3‡ó¢ÿ~¥ˆ‚–Á³\ìàÏë|÷Ýwß}G +¡ŠFìF£Ñh$ɇB™¤q"ã¥×rq4LfóÙ|®Ú}óùr¹\-WQ¸ ×›8^G›xÉÍznÂ0 Ã(œ/W«å*\Fa­–Q­7qoÖë8Ž6q†Õ0 çË0\.WKÕ>ŒÖá:^od$c­ÃHùö®æª¸ZÎgóùr6ÎF“ÑÐkQ©ñ~™eYvtDtæzÃÉt6›…á:Üä,À8‘IšÉ4˶H‰ei¶ÝfiºU¤À$ÉrÑ¥”«DQ8_Í&£¡ë´Zº +¿êCì GŽ~§üÀØïá×ðìZ¥è¾ð}ýߌ=D޽bxÏW\JëËÉ]ªòf/8ž b‡÷|¹Z€¾ïƒõ¢š!õ}ÿ×þx>vò”£Øóóêâ)Û1dÊD+ƒãºž-TÊ‚ì\ÃÔâž Gô{¾ïû>úã7Ž@þ²€,Ž>ö8€°Bp +ÔüÎ+ûš¦U>þ’Òf“5Û6ûK€ö‚ 8_]ÇW–õ¥bÍÁ÷‚9 #£‡ÌG¥yê#âxb]urRÅ×}Ÿwx»N© +.n®o.Ì‹‹<ø6¯¼“¼æ=5€oûƒËÛ]€¾YûâC)Àí.À?¾þ@àøø´fž~±€sóÜ4/úýÁ ÑÃ`,tŠª †Ã€cšÿ3¡´Bh# úó_ÆRfYÇ+·åáp:™Ìç«Y¸ +Wár…á*ŒÂH‰mÄ›Í:‘2‘Q¼‰âM´^/Uë…Ñz³Þ¬W›Íf³‰ã8Š×›µ´‰ÖjØn½U¯?ZEëp½‰¥Ü¬ãµÜÄro6Q¸Ž¢yEá<ŒVa¸Z.gËù|:M‡]VÅ2IS©ø=GGGõs‡³Ét6Â(’Š%§q§2IÓmÁ>Tû>Ûfê3ªA(³L%I*ã4M’TÆr³‰×ár9W#ÁuBÀÇhyèyj”ÑCô¼+@üÊC/7’ Æ×‹áKáyè!" +Oøˆx…èa`ð¬å8žë8Žƒè9Žcµ<ôÃBôÑØ-cì ¡ò…Z<øñ% +ôÔ&¢˜Ñâ“à¹U·,‹êôè°L)m9óÿî‰å!*ùxüÞó<ô”¢ €g¾TîÇ>ðñøú‡ÑC"¢7 +Ð +ôZî÷ÏÆˆJ±çûœw¸ªX»Ío`^ä)À`ðÙàòNÐ|?¸ËÜðLÓ<===ýÓ]€ûj» fšýüü7M³€W¯ƒ[>_"cçæ€ÖÊï@ƒ~(PCsqè9Þh4›-çËp†óPç«p½Ž£HÆëµŒc™Ä‰ÜÈM,ãMÇQ®W‘²à\G›2呹ÞD2ÙHoÖñf½Ùl¢0 +£8ŒÖ›u†ëµÒŠ7I²‘±Œ¥ÜÄŠPEa†ë(ŠæËå|6›Í¦ÃnËš$2Q€4Mëõ:m90šÎfóe¸×Ñ:–©Ld"óJažéçâéVuÓ,ݦÛmRŒ É$Md^r½ŽÖ«p5Ÿ‰¡ÇèÑq]@Çj¹ ‡žãzØõ¼¡çüêÌqϺJBŒzÎÂõ<ðð†žã"»®ã¸^Àq<ððL¨ÍºVËó~åyCÏ=µ8zžóä™Ã<\èâ÷JP|ï¹KG- ¢ç8ÌqÀae–ÅtF Ñ•Ìç!X–ƒçy=OíÎÝâÕgγ®®‹(òÅ…çÎ ÏÏ@pC\  à8žøÕPäRHTÛ{@4í1Ñuj³¾d ½û¯@“ÇWWWEôÿüùóï™Ãœjõï†uàm›s›÷V+>"ç@é £ïsÞJ)Üìÿ óÂÌkæ«{»—îœzÞE¾¼}³V«þé.Àë?Òx'Èà²o¾ ýÁà27hyÉTîƒØA4R|8øP€” ¥•òmh| P\Ý8 =·;šÎV«Ù\MÇGëÍ:Þ¬×q$72Ùlâx­ØöR&‰âÏÅÑ:^Ç›(–›M+óÝ\•G&É&‰“Íf#ãX®£8Þl6Ñ:^‡›xÇR¦±Le¼‰ãµ\Ëu¼YËx½‰Öñz®×*%X†óå|6uÝÖ(IÕŒo"e¢ë:uÜád4-£UÅÑF ™¦±ÎÒmš½Ýª šfÊÒ¢+%©¢§R&RÆ2ÚÄÑ2 çóÉhè2ëè¨ð{éô}#Bàc¯×ó}ô_ZAnöáûþ×¾ïÿæ¿ý·±è €·S~©þM9xÐW†¸¾J¾ýºZ ï£@äW=ìùèûèçCð@ß÷Ñ÷}üß®bkX”è9ÜŒ§3ÆX“²6¡Íf³],ÞðÐ÷ýž@äW¨L÷Ðg×êÎEž`Œÿ/á#ZÊu•!t¼¢‰xå PwÞkÓ’¦i%òùç m°™…>ñ{ׇ Y)ÝÞÿß3‡9¬Zý» (Ìóç(<:€¸°ÀÁç¿þú×=ß÷yÚuzqû2ïû—ƒÁû)Àý`Þø, ¯"€Z­vzoðvàõëuŽ~jÖÌÛEÀ.Ìoƒþ`ðÛA¿ÑᎲ=@Žˆªsø?Bhãnð¡2@œ*ÝÐs»“ùr>_Í£0 +Wa­×ëMÅ›¼Y®”öŠ)z™Ä›uá¸Ëu¬@AÊ4V¤£$')¡žXFkå̵ŽTò-ã8ÍUüâu’¨oŽ×Q¸Ž7›x*vþl>™ŽÆón2Ì€¡qí£Ï±˜Tëìʾœw•‘# +Cädˆè#÷ýÿÓG„¡•ôoÉSªéÂ&kvØ®4zÐÉÇà€9Øãœw`Œª&Ñg×XÖ¡¼ç}@ãž;ï¨ÿ‘‰–ï÷zªîMí¦•Èi]ô?dþGà€|ûäÛ¿@ƒ)ÏdÞYX8æàˆ¨TÏat^Àß\ü1ØÕþœ.€ªÜ.æ!À«W¯úŠT»·Ø‡0øó"SÀ`pÙuñm0øvp9è÷_]\˜fpÄ Ó4ÏUróÖÈ h7иH¤ÑÈÍ–ájFë(\Çëu´Þld¼–±ÚˉÜNd"3™Ê$‘2RœMœlÖ…Oª›Æ2‘IRèïJoä&–RnâM"ãd×SÊ|‰ŒåFn¤”Q,ãMÇÑf­ŠŒÓÉhèÎâ4‰S™&i뺮SÇŽ&³Ù|mâr”jB1Ieš¨*€ê¨D`›$çÜà¼'Yš$2ÙÈx³ŽÂ0 §Ó‘×u[¤Õ²mh·ÁZ¨@?¯œù–@Ììõ8rs(FÛ(w¦C`ž ÕúØé€ ŽàÀ8ïç‹_YvÀfÏ8ö8rßG€—ŽuSJ,kÛŒÒ2ÕšMÞy±[¼à8#P:xàÅÿ`Œ€1€÷zÊžžxÆ»‹».€ǵ‚ ÀŽ¢"´+š¦h””i“5cmðñ/ŒÍÊ!% +ÏŸ;Ž +ÿ«A´Û Ê€QÊxO‡z9÷Ñ7"pxÁ9ÿú×¾ïó/.Þ»î‹î¤—´ ð€êÜ_üöÏgªÀ7æ7*PãˆýWýÁàÛoÜÕ¯U9óO¥÷wˆ’o}7h„÷\2ÙÈ$N“t%&ÓY…Q´^ÇñFªr~n¦›&©êÈ8ÙÈTÑîã$Þ$‰”q.¯“‡þY¢TÅÓD&I'±ÜÈ8IŽ$2‘Q"•"g’ÊDª¡œ8Ž“XÆI¼ÙÄ2ÙÈu)©®õr> ݹjò'I"e’:u¼Ñd2_Í–Ñz“ùs¦J  SRäY&³·Yúv›fY’lÓ,{«ŒLÒL&i§iK)ãx³ŽÂ( +—³éh„N‹X.c À°¼£Î±ï_ùè#¶Äî¬Däx…>ÀбoŠâLy{0p:ÀÏðV@ \fœ §¨vÀ±ï}ôQX²ùqr5‘žZܺ…. nQF¡eò˜hÔ¾!Øà æ[€cßÿ_£0®ðöû¨ìIê…ì}ZL¹„r`Œ9–2į̂ͭ¶w ‘Ïi…6)m2fûœýë{þû@©B€9»í´Û”R¬Á® ñZ ’ø=t1W?ã}ßwÿEÀ‚4¸¯ 0ø@à@N."€oû¦ùEÁøèÎ\~° pz7P5€KýÁ·*Ḹ0MóÜT[=þò.) ¼ãä×üýk¶Z…óù_mb5(7JWLÉ$y0M¶oóv@¶Ý#B2I³4»Rq¢0šÏ&“®q~Řrc¶òh8ðqž8‹V1ÞØQús˜“6Y¾GŸƒ[ìQGuþ††ÈÛ=: ÌZ;ö/ð±ïûØóýq+È{òùû9‚ã€Ulÿ<Çm3Æ,JI›´¬úTX´¸ï†ÅðƒJ0ü±qÍsŒà\E›¾ë8`À»Ñ…Ãcð°<¸18b RÒ4B*JŒµmßÿ5¿ç¿?•”þ†jsŠð¿ÝnÓ†R"eUx ØCà\5TTa…ó_ÿú×¾ïóÀEQìÞIþÂ.ÀMðí··xÿuÌ@Qxõª?èûíà·ßæpQ@Žq €æ ˆ@o@sôþÕuž±–ë 'Ói°ŠæQF)ãx#“8·Ø‘q§Š-$ã4ÉTå MR™ÄIÇI"ã4•U§“In(”f2)>o¤”©2í’Iîý‘f‰”2N“TmÆx¬7qœlb™&rʼn £p®æËùdÔõ\`Žë‡„zÝÑh2_-Ãpo6i^–H¥LcUá˶éV gÛt›n³ÝtðVy•%Y*ÕpAÇRnÖa†Ëår:×µôVë—Œ±6tÐÚUÜøþµïû=ßÖXlt@õ¨%#/òs×a¬eµ˜Ë€9®3<ÃbÿçÞbhíðÿZÁ‹°®ùî˜ïð޲ÍÛ-ÀÕ$›O'£®cÕëuŠ,D{|±ÐCDÑÿË’kxsâÊ =œo¯‚!âB®x  =\\ _þ „¸Æ^…X,„è ËÁBø¿ÍOˆŸ~J~tþùú‡@"_yð_ŽÎB »jqÇŸ€è°/B“24ðá‹…bø 1ì‰Vë*øAøoô{8ÂÅOÉOÖ¿\ADØo¯î"ˆ q€B ¾ DOü |ñ#öòÅÒ‡´Í˜Œ=¿Ýšü³ ïÐ&emƘÂëó}_°ÕPpP¡MB3LóÂ4kf0è¿ê_š>zTëúýÏÎÕ‰þÍåëÁ`0¸¼º0Í‹‹W}óÓGæÀüfpqr®º§...úýWý‘W¦™œžžþüÑÇ}tS¨½ê÷û¯N.^]¼ºx5è_šæëË~0è×>»€Û‚æÅ×ÌZMåæ« ³ß¿¼ì›¦yµóÚùÅ…iž›ç*)ÈqÎ4Í óäÔ|Õ¼¾89=99¿|ý°t+øs`2Œ&£Ñ|µ +Ã0Œ¢M¼‘›8–ű:ÃÓ$7ýHÒ8ßì*ØÞ +å¶¾¹½·²úM +9`™¨M'3™Óo3¹•jp'ÍÝ@Uö ¾)I¥LË8Ž”xØjµœÍ¦ÓÑdØŒ&“ 9:ª·Üád:›«;Žc)‹C"óš_–J¹Í¶Ù6ɲì­:ñ³TU²T¦±Š¤L’ÍFª¾ãr5›NFCY”þ⿨V«gú“ª^­V «Z­žU«gUÝpÎïɳgÕjµzf=Ó«ÕªqV­V«Õê“jõÉõaõìIµø>㬪ë†~Vµ ÃÐõꓳjµZÕŸœUuõЯÔ÷=9;3œ'Ž÷Äqªº^­ZÏΞT«†®­nD-¯W«ÕêÏtýðððððáÇ«z¾¸ž¯ùDÉU«úWù“œ=9sž8¿zâ<«êÕjõ«gFµZÍ儞œýììÉî¦ÕOlT«UݨêU]?{’ßyõ¬øòceztxx¨^©û®?”T*ÍJ³Â˜-„ïe>¤HP¾/Š2@G#”Òf™’]¾|±Û#*€®ÕúƒA¿ßýêÑGNúý~ÿ¤v9èæàR ~æÄA³öè¯ÌÙœÿ­ªÐõO™¯Ì~¿ŸŸýùŽ==>>=}üèãÛ`ö_õ_}vñê¢Ñô¦ùÛ~¿ßïÿÖ| +¨©Ó¿fÖjµZŽ*¸4k5Ó¼0ÍóÚù¹išµÚù…išæùù f\\\œ›æEíøØ4ûýKóäôäļ|}ï€v“w®i0M¦“ér*À:Žâ¼\§išdI±ûÓ,)È3¹ìÎ6M²Ý_R™fÊ€+“I–e27ûÌãÿ4Ëòð ðåȽ»²4ÿ0MÓ$Ùíã$Ž×r­7Ñ*ŒVóùl:šN†ÃÉd29:Òë-èN§³ù*\oâu¬zO¾_(á¿y€ ‡À¢¾1pÏ ? +|¹§ãgˆX XÅ#ä¢Êp!Z`÷¸?þ)øñDZ]b \c|³ +<ØEuçxcx ñ;€á1XŠ!þËÃÀϾ@\®øi ‚7B\ýKðãcñ-g)(‚2zD(k0øð8П™T*ÍJ³LØXˆBmrdÀîõ~#]BˆF +Jª:¦~+Zfçfíô¤Öÿ¶ÿí`ðÚ|´÷щÙ7Í“Ï.—ƒ¾iý~ÿÛ~ßT3ƒ +úýù·5u(Ÿ|jšæÅ+³ÿêÕ+uö«Ý§àø]è÷_Õú¯...^õ¿í×Îûý¾’¹ úèøøçÇ9ÔÌÚy­V;?¯™fíçµWƒÁo//ÍÓZÍ4ÏÍójçæù¹Y;?W?ÖE­–£ÜEíÑqÍ4ûóääDun®%"xFS1œN¦Óù|¹\¯Ãu$e,)e²Ù(ÍBA7•Y’eq–ÉT¦Ê(÷óQsºY–¥Y¬RðDáÒœw——âÜžSyÊ$Kd–C‡2K™¦I,ÓT¦›TÊ8Šã0 £p5_΂Ñ(¿çzRæGÓÙ,Œ¢M¬¸Å‰Lb™Ê4͵~Òl›m³4}›nw’Y–%I–å6F2g&r³YÇ›8Z-WÓÑh躔~®·Û¶]h¸æ(á^ä?>C@DÈëx¬Í˜ ¶z®f9çBïqôs«JßçÊ#z¬¤úT#A)`2T–!‹–œŒÙèpߥ2¤ˆbð¡m7i…4÷|îû¿ñ‘ûõÀ¶omJÇÁbñb} /o3 ™ý”€DT¿u:XýÑGäˆ=Ÿ£?öEë'(,xÕ4íˆJ¡¡$ùÞÿïO€JXâž%ztjšfíÄì÷û¦*»õûÅÑ^;þø¯Îýþ öéÉéi­¦àÜ4;R3kµZî +v|üóãwŠ€*6x•#ÆnÝÿhÖ~¾·w;xôèøññññÉ©Z®V;ùìäDõNM³ßï_öÍ“ãSE8<¯ÕÌóóÏjf-‡%Hzrjšç5Ó4ký¼fš¦yrròi­?¸¼üÇË×—¯/__V*%úN +p—pL&£Ñh8œÎWQ¸^‡ŠX/ó™Ÿ4IÒ8SûJÍÓ©: RÝP{]fq¢"ê<äߦYšÈLu ¶ÙÍX¾,Z…Ÿ" lÓ4Í}HUƒ!Ie²‘q*e¬ÉË(\Íç#1uEw8Ö)¥õ–7Íf«U´£Œ“$Š$I²4ɶÙV…üÛm’Ê,ݾU‘ʶÏÒ4“q’("¹ÙlÂp>ŸMD×uÝz½^·mpí¢¨î0Æœ§¹c‡0ƨAò¯ðktnÑÁ@|SÝq}ìqäâÙ.@PNPJwŒ@PX€@.·csÁÈoqõ9‡ŒQZ©4íbw:ˆ¹†Ð¾9Gsé@@`ˆßᎣÜžF¯~·Eµ`qÄ^no€ãg˜“ URÓ>!„²Üjô/€Ê;@‰ªz&ÎÇã_û½žïBH¥L´2¹‰Hƒ”Ê¢¢~µOòÝrzüèØ|Õï¿êÿÖ|”ÀɉڥçÊé/î1ÍÓã>ªõÍþÅgŸžŸÖNkæ§'7ù¹¹kÿÕNO=>>~|kÿï=:­™¦Y«í…WùG_ÔîÀG}üèÑcÕ +<=­©©¢““Ó“Zíôø‘€~ß<>>̓ƒÓZ­V;¹Ùý§µÚééÉñéùy­fšç§?:>=5ÍÚɧǟÖúýo////{ùÛKz/¼¼Û ÄawØõºB©tF¡\'qçÆtlöT1†s`ÂAØQoÀÀEÝò¯âÜp_á¼Ù¹½8Öôá<…§ùâÈ[â™Ó†S‹þ¾¤JÙÅý3Å`,ÖdŒA.<ˆÖ¿a*«¼@´FÀw·îpŽUÏÉGg˜#p·^ª'·•P…B›,ÿþ|¸Ó`å] +Àe´©|<öý­”Ë +H4MBI©R)“ÚícòôôäääøøÑqMíÇÚG{=:1óÌÞ¬Õj·‚ôZ­vzüxï£Z¿ß7OåUºOÕ,v¿Ú}§§Ç?>>>>¾ê<¯ÕLÓ<¿µZíô´v|;øèãG=~üøøø´vZ«ÖNNŽONNOOO~üññií¢ß7ÍÚññ±B‡ÚÉIíD-~zR«œœœžžœ?>­Õjµs³vüñ£ã“ÓšiæÐWôÃKúgÀ;οR2Ýél6›‡Q¼YÇÉZæsò*ÛÏ#ú¤¨©r[ŠV#³$Éd–ïýd+ÕØ½Tl¼B™;UóCÛíÛ,M²mše¹~ßM«^&ª—%Yî &7qÅ«h>ŸÍG]Ïñ”ô¸ëBê–Û³él¶ 7ëõFn¤\çCˆ¹ªD¼U@5¬ì‰بÞc’¤I²‘qm¢(œ-§“Ѱ«T­»!Õ쌻8Cã +¡hÓçzüºÅw[Tù‚¿ÑEnÄ«ø;È9püñî|ÀŠ3úfq]ì?!'#ókÆÞ8>`..²a¬2¡¹ÙÎyy qcÌ~ê:Œ1ÇU-†*¼èìV>f,°®sJ¸ðܡߒúÁ òˆã–縌 ñ3];"„2û²X¾Ê9@£T¢R.߀]P!¤v+J>­œ?ÎÀ4ÍG{ýÕ±ùÅ-0 ZÏI­vzzüø£NLÓ¬?:QðѱyZ«ÕNk¦:Þ¿PprüèѧÇÇnh@{Ç'§§·2ú[í½Úéñ£½÷ ‡˜ZíôääDÀññ£c•Ï›µŸÿüøTý§'µ“““šYË?:9==>9>>­ÕÎkf­vüèÑññé¦ùÙ±€Á·——ß^¾÷Ì4Æ;ÿDN«eQJîhºX.ó"`œꩳ<É’4U[(ÍKëÛ,ͶRù‚ªH_*|P÷,É2Õ{Û¦o g¾$Ëäöív›—¤T©D¢JtYÎ/J’¼â(eÇñz½Wál.<§Õ²,ÚjµZ­V½^'uÇM§³p®ãÍf³ÞÈX‹ËÜ Ùæ•‡|2!ËR5ʼ´™•*h¸ŽVóùt‚C—µ(%D¥ÎìæügEÔŽºÏ‘w8‘Óf8rŸ3KÀ€Ÿ tSI7÷‘sÑó|Ow‚ O ¶ªÅAi‡çÜçÌEëê&DwWT‘êŸ3•Ñû¹8é×jsªÄ"ÿ#_\T‘#çÈó0ÐQ‹ëcÀÎŽ À +Åâ«|qܧ}ÛŒjZnú¯Ñ¨”Ú +èç{„5XwS€"(W)‘Ûpzrr|üé£ãSÓ4_™fíÑ.øÂüB€y䀀Úééií´f~a{[íÔGï–Žs0Ïk5³¶;ÿ¿ø¢vzüø=PÀéií´vä nE§ŸÔÎk§''µÓ“Ïî€Ó/ÌÓãOw@´² ðnP'GGäˆÐº3™®Váz½YÇJ÷#IT`®H´išfÙ[¥³»sûÜù‹e[U)ÈäVµØŠöÛVfÊ’'/ä–oßfÙjW²ÝJ¥Ùªº¼LS)7Rʵš +^M†-¢‘C¢Ôºë„êx£Étº +£hobÇù|aAGPòÀÛ,K·J#4ÝfY’n•€2 +IÓ8‰äf“Ír6<ÇÊÍA mà©Sl# t¥PËaÐiƒ€”´SÜç C€ã@žˆ±ïûþØ÷ýÀA¸]+`Œ±SFdè¢Ã‘£@`€À³œßÊÞT¡Lt”õ‡ðýÞØ÷ ¸µCU¡¥zoª=α˜/Rnœxú¹&tœçÆ÷ðü9 <€`¬÷ýg˜Çÿy@4íPÆØý\à¿´ PÊ#ZÞ#Í(¿*¨TʤDù%£Æê›¬¡gv£DÊ„þòðJír¥B›åJ³LÚ„¶›¬Ò¬ìiŒ4I‰VùR!DûœBˆ¦ýM¥BKåƒ["š¶ÿ`ÿ¦=xðàÁn/k©”ö5í€PM£¤]®4*ŒüM³L Üh7F5Íf´TªTJ¥’V&D£ª¢Ú¤”PR"äÖ¥d¯ÂÊ”ü[í`ïÁÞ»—¶¯M£!¤B¨®i¬Â€–Jô—eJH¥R!MJ -k‡ïÀý<€÷ª€(F“á¨;šŽ&³ù2Œ6›8QŠ>*ŠN2¹ÍvF;JROQþ³Û™@.½™©ê[¢Fqe–$ùDþ6Ë‚,y+3¹MÒ,Ýn³¼“­†T™Ü¤‰Ü¬åf†ÑR ‡ÃÉpØÕ=«io8šNça­7¹QÂ#‰Ì!Ë’T1¨ +DšÏ(IU$H™$ñF®åzEa¸œD·ëPJ)BDD|)ޏ¾Dñ&ñF8Ö5ú×ã1^‹Eè‹Å›!‹ X àCô‚…!Äâ|ù;Šÿð‡ëÇâú'oáyZçŽø˜"âèÍ¢ƒo‹`, ó{ñ&„@î‹Åáüp,Þ àß ®A(À— c´íÿø‡ñõØþ™=Ž6€`¨'z³@\Ï„Z‚|qüZ,ÞÆu¼Q‹ÿ„Á Kà"@Eã?ütýãµü‹'{œ3`È ðe ‚Å¿V +PD4µGïÖ(m4Iƒ”H¥LJ%BŒV+?l²f[4J„JÉa…Ú• +¥Í +aebj7Y¥Y~¨±† Í<¼(WÊD#BHIÓh¥BK•í€hû{û4mÿÖ¶ÔH…h¤L5V.W*ŒTš”@¹Ñ¦Í +£5›ux³DhƒrP!D£• +!äÐmÊ-hV¥ä!aeZ:ÐJïÀmŸhT#¤\!´¬ýuÍ +%„”ˤ¡àJ+ò>¼¼£ÈD ãÏGÃÙ|¥¨ÀRµã2ÅÎ-’$U†;oÕ_LפÅ睊——Øs?Þ­²è(êoªŸ("nšnwUC¦«¿Çi>oTe½i,å&‰72Y¯×kJ)¥-·;šÎæËU…Ѧh^¨.EšäŽåêÖÞnÓ·ùˆPªØr§D eo¢M­ÃÕr9z^«eÕëõª®ëzý¬zfT• ŸQ/LøYį̂UC×uÝ0 ½ªW«gO Ã0Π㉮ëgÕjµjgŠ%ø³jµZ­uC7ô³3ÃÐuÃ8;;3ªgÊåï¬ZÕϪúŽéW¯Õ³³º®†aT«úÍâUýìL-^­>¼y«<Ôëu]?Óõª¡ëU]¯V««Õºa–±£ø½·¸eèzUÏ?3ªggºQ­V«ÏÎÔM©;×ëÊÞ°~fgÕêÑÑaµú3½Z5tV«Õ£{¯?³ ð^ €VîDy +P¾U(R€Úìó‡ô=øäJíJ¹F(k²J³òPk*¨ì œ@¥R¡¤r MÛßÛßÓ´ý½ý»Ù¿•J…•+MJ€P»Ñ¬0ªý[›o–Ë´AÑî@“6J;(“F³R.€h¥û÷@é6h¬Â R*)*D¹\ù¤A)¡DEän +po ¾{%y¸œEØÎ—QÅñ&Ie*e–¥‰Lâ\V³àÖ¥ÅÑSìò½Ÿ*Ñ´è¼Büjë§Ùv»M³<ðßÊâ¼ÏÞ¦9Y_ÔÞUqËx†óùÔc³8O R)¥¤–Eë” q2™Ï—«Õf³YÇ2Ú¬U/ ˲¼³˜eYºM·‰jümw&Ai’¤q’¤jàQnÖ«Í: +—óù»ž[§õ:_]]ý¸®ÿéëMà/~>.„ï#ƒ…ÄLÿiq}}%èÿ = 1¾àÙ›ñâMpý&øé§…@ ~'DðÍB×c!âê þé÷?þðãĸüñ?]ùx-¾VŒB "õfq½Äý @±wõÃBŒ×ðìM°xó»àÍ?½Œ”Jûûû{{{”r°md šmÎlöˆ7ã^‹^±x „¾ +‹ëk±ðý À"Šë7âê÷×]ãÇëÅ,?ýáŸî‹Þïijç¸x#Æ×Áµo¼Œ7áËÇ °ù¸Ólæh÷F•÷®’vP*•4”JÚ¾¦=Ô´R©DH©DJ¤TªhZ‰²§iZ™TJ¥R‰hšFJÚÁ¶¯=ÔJ%R:(hå’úVR&¤ÜÜ£„h%BJ©”4MÓ4­T*•ʤtP*”K%RÎ/‘ +Ñ4hÚv •´mÿឦ•ö5M{ =Øß°÷Þ™¼¿¯•´}MÓöµ=í T*—J¥ÒV*•H¥T*—K5M+BJ¥ƒ’¦i%B4íP+RÒ4¥©H4R.—Jôq©D4íÁþûûoïÁƒý½}MÛ×öµRIÓ>ÔöµR‰h¥R‰hÚA©DJ%í@ÓöȦi¥ƒü“„ +)‘RS#å»ÿfY–É$K“¨ëát¾Š¢LU«.K2™Åi®­¥YòVµ÷³,ÙfoÕx}¦Ê…ÙVJù¶h&7är›ïÊl›eo³TfyUNë·…—w.Õ™Ê,QÚâ«u¸šOF›¤…Iš¦©eYVËjyÞp:š†s¥a¢‰ÒLJåû!“t'šÏþåuÌ\Ú¬0Šãõ:Z‡ál>ŸOºà´êzY×UÁoÌŒ_ó?ðNs xG™hˆj€œóï* ô{èãÐBßçÊÁš+áQE%s¯ŠÐŽ×Ø::âGþ#ïøÈQ-α tJ Gì(á=–ð/lÛ¦e¢i¥½½ýýýƒ’¦iÚþþþƒÚÞƒâÍÔôù5‡r8Ïí?êÈ9ò‡Î uç>öP`½Xœ¿à>çÔawçÀÁfvI…{öö5­R¦6þ!"}ï*—ËåJ™R©” )R.W*R&„TÊZ.W*„°‡„jWšå2!@©T*BÊ„Z¡å"ˆ.—Ë•J…RÚÄǬR)W*•J¹BIEƒ´’#Që“r¥I}H¡¬ÂÊ„¦2ŒJ¥R&D;,“2!¤T*ì^Îû7;s_;8(•vA|¥R)— )—I¹R.Wh™ÐCµx§R!¤QR¹{¹BÊ„|RÜy)¿Z.—+•æCZ.“’¦hïíþûö÷5í@Ó´=ÐJÊ›µÒ(—I¹’ß@¥\.¢UÊ»W…”+¤Bi¥Ri´5Ö¬ÐÛ¿²»WÞË’¨‹Ãér­cÇIKÅ©K“,IÒ<ÅÏ5ö³m¶ÍÞfEL°M“|à'ͶÛmVt ³D¦Û,“2Ë’í6Ûn·ÙÛ·Å&Ì·ãÛDÅé¶(Ýå`q"“hEá|:3Kr’‘jZ–EiËÃÑh4]®Âh­ãÍ&ŽÕ,€"%¥r·õS™ç éV±’,Q*£I*c)7QÍ—³Ùl:òÜ%D¯ë;¦žg0ßÞá|p#Ç*"ç/:N'/«!çèûâ¥#z8"ú¹Ï9Ï ×Û¹?å·‰gà2¬¬>¯àÆT Ï9v”dðÝâ>¶ÆÈ9rì@³M+„=MÓöTºz§fµ·w`÷lÎ;®ìÜÚ„¿49t:ª"¨¸Å¾ïVà+ ÄçÕ´4:œsìå5BÆè­·©F´J“Ùv` Øx÷¢m4MÞlÚMJG”RÚh¶›”V(¥´ÁšŒúåãÏ)¥”õš¥;Ôh2ÖhRÊ>§6k7(mÒ +¥´Ñ ¦â$ÚMÚh6h£Éxƒ¶›”PÊ´Ñh6› > Öl6)¥‡JʨÓlä_`6k²F£I)k4•ÇŠº4íàv`ÿ D(!üf)mä§´BͦMiëRJ+Ìn7ó/5Ú¬ÙlÐÕ±&¥…U·KéaS‘HéÝ`_ÛWñÄA©D(!äB>'¤ÑØÝy“5*³Rî0Íü¶Xƒ6š´ÉØc¬}ë—ý®,xšÊL¦I²z£É|¶ZG›$ÎåwÕ¸ŽRÐÛÊ"ÝWî:2{››n)Z*óoÓ,•Û,Ë +æÝÛ·Yòv›[tzÜù‰¿MÓ4}+o„º¥Â$™&©\Ç›õ&ŽÂÕr*ïä…ÿ\¨Ã™ã÷8pPÕ|îs¬¢²ÜíÄ@{ +½qÑœïôrKá'ˆ=äÀ9@G-ŽÀ;=t,Ñã úxh³vƒò1Q¨¶¯=x°¿ÿ`„R>¾aøõÀ7^ú˜/€N:à#XW>ç8r>Î.Ü-”1Ö å›÷烊ÍfÛ.zŽïÞ»c¬Ù´›MÆÚŒ1Ýðˆ›4ï-RúüQJéçÌfÍf£É(c`·›Ê‰Ä¶™Ýf¹=1û’1ÖdU¿­ÞêMf7³Y£IÛŒ±&c6c¬‘KSJÙ‘rR³;í&k4cŒÛmõÜv~':©”i™”4íÁ¿ÙÛÛWûQÓ%”²fƒYŒ5‹›§”6k²&e¬ªv&p»Ùl6X“1°Y“1¬cÛmÛ¾¹sÚ`”²Æ!4­”߀ûÚA^3(7H¹¬ë”RJ:Ðf¬Il·8§¶m3ÛfŒRõÊ2Æhƒ±*‡» üŽ*xšW÷³M×Mçó0ŒÖRÆj X¦Iö6• K²m–dÙv»Uãµ¹ô®Ì>ls.oV¨ñgY–Èâ ²,K·ÛìmºÍ“ƒt›½ÍërIZìü­ÒKeÇ‘Œ¢h5ŸŽ\w²É Fê®uBw4œÌ–óùr¥ ‰d«úžêð«œb«î+VH³,SÃé̵Σ( +Ã(œÏÅt8ô€é„O>ᜠcާsŽBE‘sèý'_Qüod;Àî3G ( K?#°ðN”´&8À;àŽã`õ¥â~ÝáŠ`›óÅÅ_æß'œÖ;œ+½Îf“VèCJT ë@Û{°¯i7ûïÖ)ëÜìUXo%ä Ï=)מ (`ÀÜÒ€‚w3±­Þë*P2M«Øí¶ÍÚöýpÏçÔû‘1Æl›Ù³³¡ØyŒ1›!³Ø¡ /)¥m`6kçÍŒ1ÛA¶R[Í­3cÔfâqΚÛfŒÙ`3f±‚Jus{À« +‹Z”Ò]Õ^lf"‡6S{´BË„”ˆ¦i·j€¥ƒJ…6ò vÓmmçwŒ9º×h¶”´i~qc¶P/4gjû·Aa@iƒ6YƒRRz¿ x BËD)0ZÕ\ÊÞ%]¶ÍÚí€q°ÕëÒ¶muG Ú`L§ï¼þï@¶M¶2I’låºÃél®ÂH&2”I³4Mò1€·[UÈÏ[ýŠæ¯Fn¤âÊLn3%¿›¥Û,Ùݶ™T£CI^Ìûˆjl •2I³·J¿#Wr-ãÍfÍçóI׳FŠB\Œb¹CœÎf«yFq.*eœ- Yˆ~%I–&2Í2åTð†s%óx½ÃpµœO§]t[-Z¯×ÿ憦Ó:s]÷i‹±qîü©œù:ÀzÈ}¦ôwP±úœœÖ‡œsV*aá;ʰ*8ŽÓjµÄ­Åñ±—O xàC%PØáœ³™Íš´ùPeÕš–×¾<Ø…­¤B(í€ Ï¡ƒ~¡Ó鵯>rìõÔ&Y ¹Â€÷ˆß¹±“DÌ@ËKc¥=•‘Úm`÷K‚½ÿ©6Ø6·í6›1ú  6¨/¨ýʘå<(cÔb lEk®V 9ØNÜ´Y§@Ûà`s›©Å-f³¶Íì¶ +j€±_à—¥Œ°™ ¶Ívc/òó²É š¿¨š¶¯:ôÑJ͆‚.æ8`·ó­VÐ*0§Š*ì`h3v[-nÛð|ÞáuC»¸th6k2Z¹§  i„PJ¡”Ò†ÎT*ø­™íüT–[j·:Î;…Ù÷¼e’¤Û,‹ºîh2›/£pË¢äž&™L·Ùv›eI’fÛ­Tõ,I¤rÙI·»Z[&ó¾`’¼UD@µû¥”J‰³¨#õÀm¡Û‘%iîá‘ëI™Ä‰”ëU´šÏ&CÇåd¾¼õxøÉáá¡^§]Åt6›…Ñz³^oÖëXõ0dœæƒ¾²à+©TGõ7“D&q’$qœÈx#Ãõjµ\Îf£‰×u[”ÒpÀq —1‡1÷éÍ”òq&|ä}èt +Pà[ÈÙsг¨æêÜpó:ÏçI.¿ Å0ö9a\ùXLaAÿs„ñ²H88ØO™Ý¤íÇ´¬b€R©t hÚ¾¦åõkB)e óÙ DŸw8pëÊGÎùnvÑq . È‘ó^:€À:îÞTm›1Föìí=x°Gö´”¶?¬pß'ó'lÆÀr˜ÝnßÌ]°\í¬º¸9²Û`³§˜;ßçòàÅ´#cŒ9 P :2` 61c¶å¨¡ˆÝü0€±*îgÆÀ¶™Jãlå‹dc¬¡*Ÿ!{•ý{„U´’ÍÕ«dÔÏÞÎg+3D±û°Ílf¦ñÐä¼ÃïR@êÈlÆš JÞ€ý}­DHƒª¡KJuÆ¨Š |ÆÀf¶"šÛ v8ðbPËeŒ±–Í-ñÎËÿN0Ùª ’†]OÍFëxl”rošnS™ð¤Ù6“yçïm>Ú“÷ýÞf‰ÌR)³·Y¦ZùYÁÜfÛ4ÛÊ,M²íöm–½Íú²,“ŠŸ—eJ=<ÍÒd›&‰Ì”¹”›õz9_ÎFC—ÎdÑ5Ȳ,ËÈÑÑÑÑ)óºÃÉt>_®Â(Š¢8ŽÕ<³Ì¤L’$ɲ]}Q ŽÀñFndFárµœÏ§ÃQ×u¨NˆNÈóçÏŸ+=LÇì©:%;y€s€àLpDä>ÏËà‚ :ã\1í:ˆ¹)Pu§Ð}k¦–óó Ÿjqa(¢ÐÉhpö”/,Ìi|À٬٤ð˜VÔqEJ%­TÒTýúÁÞÞƒ=¢òMP€Èy§ƒùâ=„º€9Ìá •ú!€ºs›a=g,>ÏÏJ¨S=vG¹5P, ÝÿDîÆù·i¦ºùRµþd–Jµ“wŒàb¾n[d71ÿÛ|"'Í’4ScE̶Ùv›äCÁI*e–dR¦iœ×–³ÉÐmÍR¥(XptBt¢×[ŽÛŽ&³él…Qn6ñ&Þlr-“D*éq5ü“H)³$M¥²(‹7›8Ž¢hEëp>ŸÍ§Ã¡ç1ªÝ8ƒ2€ÀP$èù)Í#rßÌà€ü⽈Àk¡ˆä¿ñ¹zìØ`®Ëœ¼´V\Á™x×H°‘‹³…òåá¨<½‹7:~^Àó}m6㇔–)-«æ2!D+hý`¯´·¿Ow5vûfñž%r9s?Ï/€c§ƒú8¿ó+Ÿs޼g9ss˜mÛ k”ö÷öö4ºW&eÕ‚gŒAû¾_ì‚#ÿ×Æ×¿ò¯Ô¶¥t&Р;¸@C „@@~%N E}?ÈÙÚ¾@¸¨þ¤ˆËþõõ®¯ÇÁØP-=…@Š—z«³ð}DôÀ@)µŒý…cÊÈœc´L¥eö°q°¯5¹ïÿ÷ë^\ƒ±/|§x¤"h {ˆ +¬·0 ˆNô_ùc;" @D"ð±×CÑAä#ÀNO`üæþ;]ÀÒ)WFƒ1ÆíèÆcŸ#vàB‡Eà` "¼Dãß+ÓWŽˆß·„ø£ç^9ièyÝÉ|†ëh½K)ÕTÝ6½e®—úc~i¶M‡?ËdZ )"`áÏu3(¸MÓ·Û4MÒ·éÛ,—Üæäá4Kãtç t:çbÔk'éN\$MSBH¶èG³ù\¹„űê$i¡,’‹„%IšÈ8ÏÿóIÃX*½Mͧó`Ôíz-FŽÿíááÑ‘ +‘!¦Cp-|_ @QèàØ ϼ@½§,Æ…/° €sí÷Ñÿóâ÷c_Œß(1Qô^ !‚@,ĵð}ö„@!ÆW=a@¾x ®ƒñ +!z ÷œ{Œqü‡ýÀçÈÇU‡1F)£´ÑhÐ2­”I¹|@öööH>òÓÆŽ=€ž/Æc_´•ˆ«`1¾£ï Daý„\!âøÇ?Œ¯ÇâÊ_´Ô–@%9Àiiÿ@«h{ŸÐN“µ{ +#ßûµg¼wYÖW†Ñ²Z–¥-ËzbYùª†®×g†aœýÌ0,ËÒu½Z=3 ð ò,˰ξ2 ]?;«WuÃhY–eX–eg_U­–e–eX-fÕëêŠç<;3ê9¡Û0ôŸuË2ôª®ëú™¡–¡–aÆ™q¦Wõjõ¨ú‹ê‘~ttøøñÞÃÇýðáÇ{{{ ðZ-«^·,Ë2ŒâÎÏÎôºâІa¨;7ô³êÙ™^¯†¡–euK7Œ3ÃÐõªqf0õs[gú™ñ³¯Ô_ê:¹½ýÿúððˆèkšvxxxtTýÙY½nXŠ®uÃ0ê†eXFݪÆYýL¯ê†aµ,uuè>³Zw®»M™J™n³m–ª`†ëõ¦0ÍJ‹ñžÝÞn³4ËT0S3BÛíÛ,KU»-{›©^aRp²LfoS©*ÉN(˲·JW }›¥òmA0PÏ›%‰Lä:Þ„Q8ŸŠ¡ÓšÊ4•ŠDœ$I" !D¯ë:m¹®;œLç³Ù2ŒÂhí\O•OX–((HÓ´–$–Jø4Žâ( +Wa¸šÍ&ìzÌ¢D;üäèèè°^¯×ëzݪgUð,«^Õõê™qfÖ™zÏYÿî™q¦Ÿ†z+Z†e†qf=ùJ½þV‹µ £nY–UýÊ0Î/ÿ¬˜-°vot£ªŸ)Ú¿UWïãgÏÎŒ³bñÖnqãYµøPÍ,Ô©®?®Wªzõððð±öX{øøáÇ{ù˜À‘š +¨Võ3Ã0Îê–egÖ¿S‹Æ™aY-ë+u†ñìߪÅZ–U·,ËúwÅû¼^U[¦ =ÖÔ @UÿÀµ÷¾Yе!ÂèŽ}Œˆñëñâ'4O‡ \€ðÅbÀ\ÏyæŒÂC~èy^0 p<PèÿßQt¡ôΟaà÷~‡>Š¢¸N|ÃéŠ@ X § tÏ—CeÎÂ,g@Cáõ>úŒ1Zfª¨išÖBˆÄ3 „¨ÐÅu",¦ÔTBxá/~Ài9€à¹b1Ä.¢ð^ß +Ä7‘#r!„@ö÷”´ƒŠêú1ÿ„uËÖ  U1X ÁrØK·Õrð:±ˆ]~%ÀÃÅøŸÇ_ãBô8¢x7{— ˜³öÒÜ®˜ÏW¡âÕ&‰R÷¿iâ¿M‹áŸ$Í”×–ÊÖwœB™¥ª°¿}ûv«Òƒ‚’ŸdJ?ËÞ¦Yú6-¤’$Ûn“|‚(ËÕG”coÇ›uÎ'£‘gMbÕ:,² µÿ !õ–ëy8 fóùl†a´‘Ê-¥‰J â8ZÇ›8ÚDñ&ŠÂå|6™LGîӢúÑ‘ö‰¦ !„ ÝápñFcŽpÎp±à›ÅñÙDðS€ÀñO=D!¢¸"Àg(üñØï /ÇÁ?ÿˆ†‹A P,<ƒeà:Žƒ:†wýÆCñðÍbâ⯄@Á›ƒ1ÿR¸p‹…BˆÖÁGì g øØg eŒ–)#ìï= BXežó ĺÁûñÄ¡~ðc€ãï,âjñý3 |ø(r!~ÿ«-ö<ø’< Úç„P†hQj9´¬Àûeô}DäB£´S9÷¯¹ïÇU`-ÆZªXÌH3ÆÀõZù¨4px®xŽŸÓÑ÷­Xÿ”ýÍrãH¶&Š‚fi´»½j±M6'eeVDp–FƒY›³€äb å'¸m!Ò*¤ïzc gpA%ì(Þ­3t¥ê¤qÝ4æÙf˜á¨·¸ƒå ¤È¬ÝçxÊ2~¤XrRðåëç[ßGD˜iEŸ´BTZ‘þLZ/ŠaËZ&©5.ŽN$Òùse6AŒÆIC†}Ë;â»n·¯H©„"£ •ÒHúÿ›iýoÅ'˜Ì¸#CMàýLâäìÀâ"yçap¨RZ+m±á̽˜ è2øïøÔë‡z+­Gr⻿s½o…Ͷ"1WED¤9®´Í©aFÊ´oK;±þ(îmy}=Ë˻»‡õvÇHyËåËzeÃýv¤¶.›Š»‚e³ß—Ü)Ø?YDOSqذ¯÷MUr³ïP Ü·5yîðüpÓT$Ü’U›õvµÞ®noæ3qs€"Ûåù£‘çùž7šLfóùõíÝÍíÃÃf³^o¬¢‘…ùVUY³öÏn»ÝX¤PU•åv·Ý¬V«ûû»ÛÛ››Ëù|6¾çô¼žûß^W@Â@¢D2ŠQ"*¢€ i«YËïw‹®§D›É¢¿¿ú…tž« }Ð[ãÀÆghüók{Ï¢ˆ(1”1 +ø€ngþRa ˆqŒyÇ1¼Þï~wÂm·ã8®ÕïHGÈyþáY”DJgãš¹B(!­‰™ès¦0¡ŒHVZçÙ…‘ð:N·ëY|ÚHýð뀢Œ”Âeð™;œ¤ÎþòM‡Þ063f/…‰´&ÄŒ”B"2Hµ:Á¤µÖ:ã÷ýÇŒT¢'‹L!RF™aß?[ÇÃ[ÏÚÄD”)ÛT¨(Â$‰BÃþ©×CÑ÷ŽºÝNŸñØ2× +Åß×h­G3˜X4Úž À¬5®‰x\„ŠHÛ± +­µRZ›ŒT’¨D)¥Pt÷¨ëºÇýþ8NP)¥üÄï\ÏÄ@L¥Äˆ'17Eë ÖDú/¹Ö*ù?8¦ÉhêušÎonîÖëͶ¬ª]Ýìʲ.˦®žö{;í·ßWUcEvÊýþÉJl´uÀv*ñ÷¬ÎWÖ\(d.°§—â íkmºçæ!K3#ðÃÝ5¥“[&ó®ËvÄÈùžç ÏE“4_ÞšÛ»‡‡ÕÃÃÏØ+ûUîÖU¹Û–å¶,w›Ý®\oVÛõæaµ¾¿¿»»¹¹¼™_¤2ùþ‰wrrÒ³oò{s¸.p€€4XiRIÁ œ”Gd;þZk¥uþ¯Zgª}ϵœ|âaæYdi`øøÏòçÝWéŒHó¬2ÒçaæÉeÛ?’Bõ%X(ŒãX©„Tœ¨ÞNm°ïvÝN×q…ˆàOé$ëE”"EJ§”P{вLçÿªµ¶ƒDJ-ÎþN +“3ÊrMZ+5 ø“˜¯Ûu÷Øõ<¦ +ü?v”iRI¢£/¤T‚ÿU®h`Oä{ÉüH–ˆ ä$ÕZƒÆu6#R +•"\h­ó\k­T¢e™B$ù ©„ ¤uN4ä‚îû÷&€g€$j‰™ÖÚwJEñ4Ž!„Pà¸ÚŸ†aßs»]ŽfŸ3¥”Ò”i6>jµÚfLòˆˆh¤4™6¹F£•"¥ôÒª,*¥Zë¿ä,ÓÆ  »¯ÛíºÇ}†±J~DA,Ü#ïÔBL¾#€ 2ÒZëÜ(­Ù5-"¥¤L-´Öùßò\«¯‹ÌåëU2.ÓËë»ÛÕýŠ‘²U]>‹ì5Ìþʼnýž‘þûæp!3Ñ@Mi«Šö/öM]ï›æ©Í­m*ÐXÉÞf_2Ư)[5‘²ªY¯³Ü=<ÜßÜÌÓ躥³®¢<Ïù£Ñh$f)ίoooîîïîïWëÕz·ÛmYÝ´´ªå›í®Ünv»j³ÝmÖëÍÃj½Z¯×w÷ww××f>O¥ð½‘çx'''Ï÷¿ËÙÃ?3Xj­M†Æðel&¤(IP)RZkç¹&¥~ྡྷG©ÛP,ÓZ/é`y6.ß#¹o´Ö†ÐR‘–dÄÖø•ÎT‚D¤)QT…BÄX!"Ɖ¡L á¹Žë:Žëp¾É´6æ†!:M±5~¥µþ[®5s kM*¡B~>БÖ9Ï-ˆ¼.Æ{Âóˆï‚Ño®ßÀØ8éKðØrýh ƒ%Ú‘‚ˆ)ù)D)só¯ BEÚ\ñ;3³‘s‚”ÿ-ÿ÷Ÿÿ-çàKkMJ-Ï>³qE”ý¨5¾Ág "n9r÷Ž¥¤½ÊuBŠ´Q ¢¢cëÆaØŸª8ì{Gn硈Hrñ¼s­óÄ„3@ÆvN +1MskJˆLÞžQÕNäy¾øŸù_xú"càu]÷øô´/Â8V*V£8G®'¾¾ˆ¸§2´r“EDyN¤ú4Òúˆ*‰x‚mÉêó†#~ÔgÒ7Z/Ie:#EŠ¿ê`üóç\k{gjRô(?vž‘6±cÏi€è Á}ó(øÍõ[€¦Œ‘Ï göéÔ –ˆRN˜Á q&g¨ˆHù‚ç"ôiE4#R‰J¥(Ï.ò¿±_á@ü¢&Èsô£!Ÿgrb¹×p6CëþðÇü߉ˆ0áäM„Ã4„p<Ããã0ŒÇžçv»}~/¢ÏÏ;×D9†ˆÑr I&„”ÿ{FD‰&M¤Teœj(EùâÔúßÿ¢5'F¤D×9îºGžw:qŒ„‚p]Ç€Úi%…‰BB™Ö &ÄyÅ£o¬€²R?å +Iÿ=?¤Žÿ0°™ë™¥×w÷«ûͶ\o˦)­¶×üž,ø©²‘@Yï›}½*KÛê=G;n𧦩žš½ öMµ²`áýËæ ¥mjîV K„°Œøzõðpww}IpSÕûê03l‹¾ßß +1Mä,½`“»‡ÕzµÛîÖ›õ¶ÜnvÛªä®ÿn·µ†ëõ†çînnn.Óùü_ÀÂ÷G#Ï;ñÚó?‰´GT2é.?çŸâL9S”PÄ1ºR +¹B\ü’kû¦gD„cÛø7™,3|0Ž3žÔGú1øœ/~ "äÔ6!ùl\B\ü¯¿ñéÔœø„Oe‡`z(„'<ïÄu]×é:žL‹¿,ˆXr‡°Í.”"Ô9)\üÏöñ^¿ç#j…ˆâ€b¯Ûq\÷Øó„Ç1bôÛë·€=7þÙ{4#"Mf`8Ñ9“Ðx‰H+þ’+EšˆT–i­T!µÎ8oÖŸ‰HÑÒ<¾Ø‚†5^øËÖ™Ï*DDóÇœ¬q†XB%C8 C þ©çŸ9Nç(„ic`”¢ƒëʨˆŒÕuÙì`\Û&n®‘x¬Kk­Ô—Èd¡RJe?3“ûUnxÚ[©°ã¸]×ó<1C€XÅ&@Þ³³|þßgq†¶Áà1*H“J”Rô¨HªSÑãr±Ì^jÒ™‚«cs”‡YŒ«ÇG6^¤†²¢øø¹(H/?åDht^,ŠbˆãqØvOE ‚@þ´,~2ËeF´ ÌÜž}|6>C$4D?c4-óB›Ï…Ñ¿H“/–_¾äŸ®(/ÌÕÕãc‘‘)Š¢(~.Àë:BŒ@cBW"ˆSáE€HËG¢¥Ö†È* +Z…Î>ÿ\ýËD_-–_¾‹œ®æ*|\êLÿôj}Õ,wMÙÔeÍ@ {+^VMû¹JÈ·ö¾a:¿C‹¿Þï÷-5x]Wûý3û§åÞjöeµß3؇©÷Á†<[²¾gÝ0f$«Êr»^¯V7×ò¶¬Ìó¼|¿/|!„?šˆh"Ó‹ù¥¹¼½¹¿_Ý?¬6ëÍz·Ùí6Û²Ú•Ûív·[o¶»Íf»~xxX­ïïV÷7w·w×7sJQNFž`à ‚ï'Á$ò-òi‚`Äè(ˆ‚`4ùý„!oÞ¸n¯×ëø¾ïûÁÈ{óÆ}ûö-ÿÕÀ¾ªèL¾ ¢ üÁ0Q4 &gC†'E¿FAþ`ü*9û:¨ê¦¬«²^§éÍÝÝj³ÞívÕ¶,ùoí½^ïŸêúɶâšj_s Õ<훚þúéY5äÀÈsu]W––¯Þ7L#¶ß³6Hý²sÐ0WOUnw»ÕÃêþîf.owuYÕeS?Göþ÷ED4™È‹‹ùÝÜÞÜòHÓz½Ûm×ï¿ÞîÖ«Íf³~xxXßsñÿöîîæöò2½˜Í¢Ñ‰ï ÏÂóG£úÖÃÁÀgøZA ì”ÑiöŽ¢ þ0 ‚ FL‚ ƒÁ Fϰ±h“?×ÆÏ¢€GAøÃ ²ñ³À¢‚ø9|k(b2ÏQ0 ü‘ïû#ßø¾?ðO|ßÛ{ûÆbל7þ(†#»s?úÁ󷼫aÀŒŸüKÐÑ€¨? +FÁ0F£À‚à÷> ƒ;oÞöÞžôø Þý£.@ñë3ž=’1„抌Yš(#óiQüÛ"""š§†Rc–Ë+Sý)Å£,ÈÂKC&[\óSûi‘›O>áwÇ®ëyÞx,€ &Q!ñÊ\ÿúÃ8?üj)…Q«œ’vŠ‚4e¦®y2™ ŒÎ4QBxNDúÅ(1]â,À<#;“Y +³ƒqÅÆ‘¦Lü]%ʈÈr"¢”ˆLúb#á±Ç1ô„¢ïy®Ûít:ŽÓ9¿!Æ\XÕ™âyÏŒ´ÎeÚêµ b¢3®Õ’$¢,i‡<ð™?5 Òº=椱xgD×qœãcÏ ! ˆU¢HúÂBDBÄÌᨤè5«""Æy¤TšTküõÚ¾^%#äšf}yy{¿Þl7ëÝ®¬ª]SVMSÙ¡Þ²±¼–Ù«*›r_WÍS³çs„ïŸö­FÐÞR~p_€çöMU?Ùyž}³¯ëÃ<°mE0YY•MY•uYnÊÍz½º¿¹¾¸k¥_ø.Îÿ'ÑHDÿìF£‘œÍèr~}s{{www¿Z¯ÖëÍvµ^¯Ö›Íú~½zxX=ÜÝßÞÞÜÞÞÝ\_ÞÌ/..ÓL"ïÄyžõ/'×Y¤IëLS’˜ PDjöúM'Dį>gt C¥ÒäPÌ2¤EšHçùÈ>¤RÚgQS¢Š¨ •½ø‰&íP! neJ&Šä¬cCÔÄ“î*‰ã„NHæ²é:Þ”˜ ”"z–F…I¼Fˆ8‰ÔçÌ~#•*• <ì\åšÉ2RJ›pߺ®ëzߊ0±4€Æ\ýÆÇo´1AÙL\eZÛë–ˆ´þX5$@$<§ŒõŽÒy‚ ÑóLŸý{~c +R¼QE*A,–c$î¥$ȾNëOQÚÖs‘PQÆ•J¤„$"¦ˆøi{b=Ñ÷¼ct¼é[BD€ˆJ[B5n‚5ή‡2+?KXº SD2ü€ˆ0Wê½þTˆ¸Ñíp pÊìiˆJ)ž'„ð=ÂêPr·?"$Ô’§ÔÏó¬}@KR1ÿÏÀ®n˜Ckww{÷°^¯Ö»5ÏÕOVH×€¸§·¯­†Oɸÿæ‰E¸ë}Ý쟞šªjš}U1ƒpYWåþ©fdàSÕV,à©>ø†ÒvêV$¤ªʳÛnïïîoÌýÎ*þT/ö.ÄhÔžáùÞ$ú—¹¸¸6··7··7·÷÷··«Õjý°~X­Ö«‡ÕÝÝííÝõÍÝÍííõåååÅl6›DÞhtò¼ÔM„ªÔ–“• ®žY=Zn"¥ð<(˜—›uH!âEj©¶éŒç_)ËHëÂñ ÿ@¶Cd£¤—Ó¯™=õÚiweÏ?È„‘‰‰-nc¢ »žë:Ž7åI?Ì&&Azaœ2­ØÁfÖ8ãQÐÈöˆ’¶Ì¬VôÓ€@¸Žãº®'Æ0µ£îgÿ Úÿ›@Ñ„ +àüì3úÀ,ƒg8û€˜&¤2Ž’R{?Ïä Ï$jM:ÓJaIÐWI{&hË€¡sMLÓi­ÑGœá åL"ž[¹v¢”_ê¹”3+õ¬PáS€ïzÂOÀnÇéxÐCç ¶õÒZç`XWQ2>4#J%4á½Ùv”¨)ûQ“B èOn+£BtÇ=êñ•\GT¤±ç !FBŒ"l‰"<,¯ ÿPg0£,ÓDxî0/Ú>R»î_¯Õê~ÅåýÝÝjµ-Ëj[Uå®Þílf¾¯÷m}¾Þ—{žØï›º.˽|z†ýÛ°€öuõôT7u½ß7O\G|zjó~ý×UU33yS±¨hS—Õ®.Ër³-Wëõúîáöön½^­V÷«»{£Qt8ÿž7òG“Yš^\^^Ïo®oïîîîîïïîV÷w«»‡û‡»»ûÕýÝÍí͹¹¹¾¼¾œ_ L¢‘çž=€çÉgÝ4À™D$Ê2J¶ˆ<“6Dȹßi@PÊFLå9³×j®s{] ã–áLÊ´!*¢è…òJ PhÒ¤âÁäöÔX~n¦˜¢±ÆcàIcµìM™|Úu»oj¥ƒibÃPÉÖaVhÒ”)D) +Ý'…ˆdËåúyç‰R¤õ£OØw;®ëºžâxÊxÚÿŒ@Hg"%ˆ¤óL%ªí“ÚàY£ÜâgÓC AJ‰šO„J93–¢xßÎ3e•P‰H/"zm´ÔÎJµ.1A¼)gHÈüçp}ÏïøÈuÝnÇqº"îјUm`çò•q‹+ tÒÎåÈ‚D£l›u˜Ífh, ‚bš‚bÜuºî‘7nÙS§€‰¢Ä6EdÙT¢ƒ–eŠàƒD9k+òÍìÅÛòëõºÀYzq1¿¾»»¿_3 +p»­ZaÐö‚nšòi_µ„ܨ÷u]?=±d`ÓÔO<%ØpUOûÊ’ƒ·Ì ‹2WX]Wûº3HóTïY´®9Úßm7ëÕêîæözNi:KÓªf/ϿߎÏ.æ—óëë›››[>ô÷÷wwww7÷ww7··×77×—ó‹9a*!мïµxI^ÕÞ«Ê’ð-ƒ¹‹”’opMš”¢_lõP¦di¾—g¤‹:&|‹ËáÀ&A¢œ“¢ÈbË­q¾Oˆ·˜i–ˆ-ßE΄ºÞï\×íx€” *lyG?`K¿Á"N$ÊXŽ!6~>£öY€¬ýÖ’Âu™ ˆÛÒSDšü¿ridÔ9)"ÔšˆQø„DY\ŸÓ«s” €á—ÊlE’Ž©µ~ĺ‰uÂu×ã5F¦âãüw»Ž3ûÕBDš%”ý»ÖÛ(LP.´Jû¾$3B)g6-€‚ ªâ‘ˆH2í×á Qd~H8ê]êL³æyBD&zlKDÙVDÓ‘k<–i”X/0Žq +ßóz®ëv]·Óq\óbŒZÑ‹`bZïúQ¢ý\*Ÿ: † +Dó™HQ`PJ€‰<<1&0¢Ûq]Ïóâ0œ†c¦aS +{‚©¼‡öD§Î$ ´Æ‰ +Dý˜)2Ö8Àì×ÉÙWà’ÈÌoæ×7w÷«íf³Þ2gFUÖUÙ”¬§azÕ +mr#¯Ú³X€ ß›}Å„áLöÑ$:›²¥«­ÁC°oö{;XïKËb©¼ëj[VÛ²\3c×Íür~1¿|ÐëûÿÄuOü‘BL¢Yš¦é|>§ùüÒÌç×——××él–¦r6‘!F#áŸô˜jåE ðÚ`üaжX=XÎÚrQ4"õy¡EçØ²´4p3N•"e²ÌFìJ‘¢ás¶ÏGñ<¸æcÈôˆp¹PDì&È´ƒ,i‚˜ ÂµíĈ1ö@ˆÓÓÓÖ ! ``@‚”ˆ&MÀIµ\(R˜"‚„ÉäÅ)’tÎÍ6,þüÜ;PHƒ‚<ï[Â4Œ~CÐqþQ`"+®ÌRk­0±ùÇ_}Ãߦåòåf‰D®ÜIØRqÎ ûœMPZWÜF&ÊxVé…ÑZYÚcB|ä Ö¸º°Œƒæ ‘˜@¤£'ÄÈ÷<×uÿÉu»ÇtBqc‚ˆF³n +"&„Ädí/ŒóÈ×åLÎa&g-#¤ÏYF6.9{,‚bÜqÜcÏóÂiØê¥ÄˆàþÎë‹g)D%›À€<ŸÍh™éŒ¯’ sA~µæ¯×õõõõííõýÝýz»Ùl×å®b•ݺ©ƒ¾uóôTÕMÕÔû¦Þsø_–uù þ·µþ§rß2Œ´ŠM«þ<`}@½¯[q]?Yí.몺¥íÚnÖ«ûõÃÍÝõõåååå+0ÿêþwON¿¹½{¸[­×ëín»ÛUeYòíß”ÏöÕÍ“­û1¬÷©±½¿½·ã>e]si¿abÀƒ’`Û¨ìqjꊣf/Û9¿Êj…•5 w—åv½Z­îïîo®///æ¯Ïÿõ«ûß=99ñ=á{ž7Šö)'39™L¢ €˜®ôF¾çyžïœ¸¯b€_qØ.‰ð'$¢+…H4ÅœÒ šRF)¥)¡ATŸL„ Hå8šPJù’(Óšr£¯ åZåD” +» MŸ‘H焨¤?)S¢ùÉ¢s6ŽÅbÂbc²EÉ IÍ’¡…ÖWš2"" =ˆc!ˆ¾{ê!QNˆ(‡‘!šÑâ|N”Y"< KÞ9 TH‰2©ù‰Œ!C…)L–iæÔU¤Ðu=Ñ bR0ñ£W‘“<€çcDxèƒ`8øCŒtÁ÷9ô‡¾ÏLˆ¸õ»á»á`ðnøn8ø¾? Ãỡ?ŒÞ ‚!sŽZÐà] ˜¿‘1ö­õh ‡–ôÀEÁðÝ;0¾ÿÎ÷_ Àý?¾íõÞ¾}†U;NÏÿýÈ2,Ž,#çá»Ê`è3±ã‹„àÝ`ÈÆ‡þphwîý x7‡ƒÁÀ÷ŸqØÃàß÷eýOLz2øÃÀ÷½7=·×cVPÈóAƒwÃ?ðþphß–Áp8ôƒáð÷Áç†~ÃWë«`~qqyi® «­±)Ë]É|ZUÅÐÜjokö,ôÛ¶ù›§'ûÙáÀªÞ×û’ù‚š}KÜ4uýT—MÕsÁj0áHeýE³·x ²ªšŠE»Êífµ^¯çó‹¯S€ù«ûÿkàyþ(šÀ$BˆÑh$"!F¾7y£S¦¶à8¯¡ìØ-â=üßàƒ?òtÉ`0üÃÀoÿxøçÎ÷Gþ °üÐ~ üÁÉÀ÷}û‰a0ò‡¿÷ÿ8øckÿå/þàƒ?özÌÀéûƒÁàäd0ðücïÂ4¸='cò«_~)rCæ‹Y©xœ›G4Dæqùåñññª5~†s* ¥|û§dŠ©”ÅùÀ„øNDzÇn×Â¥œÌ1¥ŒÌ—/¹y6~iV)¥DŸþ÷Kã3S,‰ìÎçæÞÌÓôÑ¥ééáÑ,MNT,s¢ á:î‘'ÆrC*Áó%™á Q-$æq¹\óXÐüºHå̘byÙ'óhLš>š ˜§ttÿh–ækVÐ¯æµæiš¦óëûû‡Õj½ÛmÊŠ9A«ºiê’srÛÎã‚ݾižšºÞWUc«ú{[)x*YNxß¶ë'‹nʺ©jž)jš}SÚÚW ÷ûº®÷uUÕû¦ª›²¬Ë¦ªë]U–ånµÞ<Ü?ÜÝÝÍ/çó‹9}UÄô_ŸÏÂ÷DRÌõbσ±‡E‘™Â ‘†*¢ôJü>PAEŠdpqŠnÍ)Ä‚ +`-yNTèÇeF„æ1ÅÑya’ÜcÏõS"šâGD’Ñ·Ñá£Ûév;ÿI @J‰88G$2šˆð<ÁìÜ6ð­²ÃíO¡€ÔÖÙU«Ï°xW ¦(gòƒ°_.g˜RD¢¼5Nd†ÊlÙÞQ]d˪3Ëìe»NŒeî¹n×é8‰Ë‘”P[@"3¸B²D‘-Þ:ADL‘­x¦mãŽäG Éò3ˆ(g‚;¬"äр ßï÷¹8ŶؑØÊÑë*cËåÜbIàL“Wkö//'Çÿ’^ÞÝÝs°+Y3¸®k&èª÷{Vñlš'¾®ŸÉ}êªbTïÞš}Óªµcûúi_í›ú©¶à}óTîëýÓžÛûú‰ÅGJÁ,Z2o÷n³Z­îo¯çó‹tö/R~ÕUê:ß8í1¶ÀóÄC;£E Ò9Òc%ÈÆÕKæs8ÄÙ¡(0êEöÙ9r]×év/F˜ +òÑF¶@¿†H%¨2BäH`v€%ÍY5%>ŸE‰f$AJ˜®pJ½ŽãºÞi_! ü¦€þ2>õú§@Àb9ú ŒRÛ¶‘-6Ý~S)¤„ðí¯ªh×——××—77÷«»»»Õýf»Ûíʪ.ë]ÓT—Ëʾ,Ø4åSÍõÀšËUÍ:!U; Ì:BO–”ÿbßÔõþ©Þ?5u½çê¡…üÔm-À +‡”MmþwÕv»Ý®V«ÛË›››ëë››ksýª„iº­v×qN¸Ð:áYõk „7úçÑhäû63`†îQ·{Äblýç%<ÏóN&<Ï;í Ï{ñç¾UãòÞx¯×éé©çyâ苾ðNûÌÖ鉱/Ä©çy§âÔ;Ï<ÏózàzÞï_žçyÇî‘ç½aÁ¿àøØu]a¿é©8õŽÝ#÷È;uºvtÄê ®wðKß½ÅW†ëÍØó~çyöžÇñÃïà­¢ß?õú§§žwzꉰ'Ä©çuºÇq»®ëº®Çáy¿cçÿà±@~‘²Vf’ *úÈ´$Å”(ú¬¸‘Šˆ˜³·ê3xŽR¾ Tlà ÿ#â9Ù†âß#C”$J1Uk¡‘Îíq!kY‚Ýc?ðöà=×ítbCT +?$6PDÁï\¡"£^ Œøþp÷¿Ü¨/%JøªE'½ŽÓR-mÈoF‹¸ïñäULjuôÂäô…@Ê<Ÿñðz­×ëÍn³[o···ÅÃz»ÙîÖ»ªªËƒnh½oGx9Ø×5«4MóT?1p¯Ù7{KýÅU½mîë};dQûæ@ñ`hš}ÅMf +)˲ޕ»r·Y¯în®ïÖ,ç±^­_®îáq{qïxž'"µšê‡ÓêŽlðÏ#ÏßZ&¶Ð± Óé|ÓuÝ#ûÁJ»ÞËÃçXhèóÿù·ŽûrÙOw:žãwíµíºn×=u-º”•¼½ÿêŸÏévÛ?^Û‘ø/'¿ûÝKÓGî±ç¹®ÿæÔ&žÇ~ÌsÜn·Óév;]Çé8o\ÏóNO=Ï;òÞ0ªý…+ét]×õFº¼^ÿôF8ž¶ë8|s|ÄûâéxÇ麮ãv;oÓq:ÿ, ‰h‚Ç,³ĉBEê1²¤ßë¢ÓáºD3xÙ3}>64HŸG'ùoÞ#€<ŸäŒ.FBLZF‹ƒq"ÒêYû1õé+írVþ½HÑ?§Þññ‘Ûé8ž€É02¬ h9()‚Ï9Ña¾8SÏ;Oý”^!öÛBÅhö¡½µí”7JßuŽûž'ÆœÛÅSÐÑ£ê÷EBO§˜zÒ(e¾Úúá7‘…ÑZiMéƒqŽ8¼§×:ÜÐÄJÇ3Dî7Þ±çyB|Ǭ#ql¢,‹pZâ ‘Œ¡à#)s¥MnŒÉ?ÿÇÏŸ ¥äå0E$C2Å4EJS2(éÖÐð¬X.É㜮ç­qúž>?. ¢9‘±Æ‰ÒüJk“k“®~^. ál"‹Tþw™"çÏ•…9L¤I?ø>áõ<Ïs]Çk3ïOË¥±áKBÆP`ˆòÜè«\ó¹úyù¹ A$™"Äâ†ç˜’A™&ý>šK"š§ø‘ ™9¦iJÂuÞsÇoŠD蟃€"D*þ÷²XÂÈk’¤Hÿ#•˜¶ÆS™&=‹¨X2§™úh²ö¿Œh»û­UV«‹ sw¿Z­7»v ®+õ—‡`_=íë¦j*– µÕ»ýA-t@´Žao‘Á–=ضž¢²¼á0PeeÉë²Ü”»Õzuws9“—ë²Üî6ëÝúå®Çév;mÏÙy™ØË³Óáóðü‰#çÈÞû¯.,ŽìWw»§säuŽ^D]÷›nç9è´àŸºÇu·Óé:|>mÀqG8G6ˆ¶eùç€Ïý‘Ûíj œËt9Vè:Ïñ‰ûZ8þ¥çzõÏév‡«Çq\÷èè˜@ÏñlpdóÞÀÁtÙû¸Ý#·ãtž#€§®;}Ž߳ˠ×yãv9'xU¿ZQEßÑ$ˆ")ÏάŽòDFQ$£t–¾›œM&Qt6‘¬¸| Až nGA)Èèl2‘òLž½2|E‘”ò̪G2Š"ˆR™ÎÎ&¬–-Yq9`jàÖøp8 ß÷ý Š„?òý‘ï{½^Ïí¹®ã¼õ£(EAHyvY½r9‰¢³(•黳³ÉdM&99‹¢( +dðÒøaE¢‰œH)Ï&ggRž¥ÁYEß=Çq·×;XJàHŒ‚È÷zþõ}ßùQ$¢(Š¢I¤ÃÖø ëQp6”M&‘”Rž±ñ×HÀõëµÝíúw—ÎLq¿Z¯wå®Ü•u]UU³¯KVõ9Ìô4ûŠÁ›¦Üï+®ØP ~¡Äì!LT[îЛøs¼`ë–\¼)«º±ªdÕ¦\o6«û»ëK’×Ûݮڕë×)€Óqºv_ ¾ÿÿ×ù:è<~ë€ÓétºΡ_>ê]û©çÑí8Çαýc·Óu:Xtœ®Ûé:ÝN§ãtº§Óá°ãðé;í¾¸LCØÿUxòÊt^ø³¯-¾ü]×é:G¿á2ºÝn÷¸ëtl õ«ßí¼Ê§ÿ¦sìóÛzxcmÕq;ݡ֫ÿÚ ¥çd }¤”´…©}üx~^£µÎÏ,[iÊ\™)R ç!JcˆÛ؄ҥÉYþÛ\™<7Y1—HiJdÈQfLfˆè£>§¥1”™Å™1ÏjЍ(¡)bãÈPÊô@F&1„0Cáy¿s1E":ÇV=%Õ†ðdZk³ø…… è™û3=‹x‰ ¥Ï;—K£¯2£‰Lž“çdÌÒyJ8u]×õú‚G®Î‰¦ã©ú–l»° TR™Ö8Í0MS")A.S“kcH™Â“¤/_ÿ¾ºú×ÛÝz[îÊruqanîî7›²´@ü²©mœ¾ß·Õú¦nžÊz_–OuSíyæ?åŠ+þƒHÒΠ榔«€ç爆”"ý%2¶ýwè>Ç—à/2ÚÀB!„è{GG®ãx€†ÙÑ(9Ç$E"ÄsCD”ÿ˜ÑÁø”@À$$HÝÇ[³X,H£ÊˆHg˜P¥ˆPwŽŽ<¯/D8 ”¡¢oB˜>¤<ˬ€*Ïv±8.qY¤"M”QB EÑäÅÇW`³ÝíÖÕnW­..æ7·÷ëínSÖeY²^ÈaŒ§ÞW|‹34¸<„õ­âGÕì­ðAü«nžêf¿oª¦~j*Æì맪yª¹Ø4M½¯šºzªlüÀp r[nw»Ín³y¸¿¹¹ÀÉͺ*7»ÍjõÊt;Ý6Q~q3;¯#€çGÒ^ÚÝ×7˜ýT›t:N·cӀׇ§½*;Ï.áàÚ,¤-¿uÜU‰—wvçëþÕåÝÆ×Îë/9D_çöù…¸¯À ?ØuœNÇO/@Çév^x»ƒ³ë¼Œ:—/ˆ#€Žóu¨õÛÀN´›$AéX2<×D”]1¥ß9O(3D9š%`g cš qbŒý#M !"É Ï"')³ ¦Dˆ†i³ ®UŠø¡5>‹@ÓlH€hEv.†aŽû}Ï;r]Çé‰ÉrL09#f%ÒW‹á’Ç«d+>>‹€b€Éìyç’gË ˆQaB™N1%ŒR)š+" @P‰ª“ÖDY©ê("«J>ƒI` +"²ÈkÂl­¯¯R€Íz»Y¯ËÍî!Mç×7÷«Õf»Û–»ªÚUU]ïx€—¥yë—Í¿ªäÚ  lªºÜ×MÃbvh`ß´ºÀUK ÀÀ¶°È¢u]•uSYe@‹.wån»Y=ÜÝ\Ïg“ëõn»Ý®6›Í Và_:mðßm;fç뫽óòo9è¼8‘í%Ü=¤N·Ûí¾8‡3Ðé¼*2t:Žã9Ç¯Ž‰Ó†ÔÛÃë¼8‘ί•¯bv¼Þ¿/^8€¯}ÈÁ5½vί"€ç‚M;N\¦íÞgŸð3tŸ#€CêÑi«¦]öC][|}®L~µøÒÊH)>üsæÔB4YFhè/(À >LÈ*oL&ÀDâ ¤<³° ¥(³ô #å3¢„ZFL2BÔ”exE-c0ÓˆÌ>HTÏÆ¿‹¢g`¶ ¾ƒp<žu®‰™ÂDŒcF,q®r3xa\ÊRʃq˜D˜"À´<¾–Oà\!E ¥D<êYì™ N!Q*âe„2™Nè`&̈€r;«@8¾¾v_áÖëõzµÛmv÷(ç×wëõz[n¶,ÍSÖ; î­ëý“Mð÷Oõ¾)ë¦nêªl›ý¾®÷eµß?=í÷/òý¦©÷<Ø´Háf_Y¶°j¿çP lÊ}U×u½¯ªºnê²,Ëj½Û¬W«ÛÛë4\ow»íf½Y¯wÛÝáã%L¥ïtùìvºN§kŸñn§ãœz|¥ó1êuO;üÐv»ÝÎÁ÷=‡{ +¿wùbç¾{ÔíòñækµÓép ýÔé¾XöPuºÝããã®×ív¸†Æ÷m÷•´YA—K”œst½®ëÚós¨§9N·Ó=»ï¹Óív®Óq:~…N‡_H·s|j|·Ûé:^×ö%Y÷ä8®{||4vºÝn×åOw»N·Ã5þÚn§Óé:®­±t»Ý~ÇÛ×Úv^øÛvÝc×íö»ÝîQ»¹gXЯS`©Ãþ%ç̨5)$Š,éKº2}´1®e[œ!F-úWe”)B¤tÂã3Vü‚¡ñ–ÚdÒ@²ñ¦xŽý'dV”&DaB†âÔms~$J¢œÙdŸ4)LÈowx·ryp]& ŸN8ˆJ(Â$ùk„  ÜîѱçõOYw9FŒ‘1˜ÿ ÔeÕ<5<ÇS·½¾Š,lÙ9!x²Óejž,HÝ4ÕÓA a=²ºªÊj³Ú­Www7—ót2ß–Ûíf³y…üòоì{ÇÇÇ®wäºÞ[ïëºîé±wì@¿ïŠÓã#÷øÈ=>>=>::r]÷øè¸?ŸzoŽ<ïèØ;õŽ]aµG®ë»®{äzžãv]×;>GôÇo„wì¹GÇž'NŽ\÷èøÈ;í{®îѱw|t|||úö¸ï»®{|tt|캮w|tt꺮çxî›ãN§Ûu=ïØó\ïèèèÈu¼þ1· +ŽŽŽûáéé[Ï=¶¯U0,èÈÂzŽÜ#÷è¿yÇÇGÇ=ïëº]ïèØsBïÔe‚pÏ=>õŽÝ£#÷È;>öúýþqßõŽŽŽŽ=ïø0fplaÆGÇî±ëy®ç9ŒY<ž¾ñ<ñ¶ìyÞñÑñ©8>>öŽŽŽŽOûÞÑ‘çºGÇGGÇÇ^ÿ­çZÐño:⌜²'”)e4!ÏA6Ü—h˜®—)´¤œÍ$HœH,hŽHR Ò >HšJ6ŽÊÅ´«–ÜÑ¢ð%ÎдU…Édò|£Fa†cÑ6ˆ›`FŠKD8Ô%àü{å·pŸ™œq¸ŸÂL@¾ŸÎ$@ÄØ¡«â(E¤L$åµ·ëz}qÚžÀ|T„¡çMß¾šO‹&Ó¨à¨ŸÉ f ¥œ´dàÄÆñ+°z½ÖëÍz½[¯7·³ÙÅüænµ^o·U¹ÛU<|Pýjé¹ X–å¾äA`KãÁÄ¥% +jžÇØo´âÁ-)@óT75sVÍ~Wq>PÕM]ÖeU•»rWî6w·77óËtbÖ›íz½^?l^â˜_LÍ¡·gäÔ¢Ï(¹Óo½S¿×!ú}o,Æ¡÷û§Þ©çõûýþ҆ɩp=¯ïy^_œžz4Âã?{ýgDñé‰çyÿ¥‡Ð÷à ŒCrÃ~ÿÔó¼þXŒÙ*D? Áó·rzzzÚýqßm±øý¾Çè\!ø/žç÷ÝÓ~ÿy6 ð¼Ó¾ñpÇžwzêõû§zÂv§½#ÏóNûÏ~Ð÷]—…Á„è O÷ûýÓþ©×âôô´ß÷Nû}†SOx|Lûýþ©§ÆáØ;zþv‚÷)N<Ïû/†ý~øú"öÆ¢êžöÇcÑ?å—ÝaŸ¶ã§§}è…ãp<Çãñø·×§4{€ed…ÈSÊ£Œ=Ãñ&,ÌÐà&‘á0—ˆEJ¡’)ÁPžñ”áAˆu7Ô~ +ŒÊˆã÷ ü¿$JÀ™œ=gÒQɦ1p €G+džr²ßQ"‘Έe +ŒÊ^î|&S@ŒíØÀû–¦KµââJi¥PÑH´à ß§ž1Ž!F =O}å"Œ0~ÿ>ŽgžD~{&ÄÊ­ñä¯ÿ©X­6ëMYî¶·³ÙüæúîáaµÙ1/ ˵ÊSíë†çxŸêÝ}Îèm(PÕMSïËf¿?Œ·8‚ºªXA iª¦Þ?5uU?+ƒ1 I]UUY•ån³Z¯îïno./&×ëÝn»Z¯î_…/¯è»FqŽ…=­Æa8¶PNñ­?y+ F/C& C!„‡Ó8‡Bˆ¾‡@!Ó/÷EŠq”„ãñXx§õ<áyß‚¦(<ßj‹O<”ÓÀÎE¼€¿ @¡R6J(A4¯™¾>ÿëÕj³Ýnv÷r~}s·Ú¬7۲ܖ»ª*Y§³i¸¾W7 Ôoe>ªê0%°?ðú4î­›¨÷MiË5ëÿp¬¿ß³Ã°äàmtQ•u¹««jW—»r½^?<ÜÝ\S:¹\¯·ëízýðRè>~±PÄSûBŒ¿³Cò0B ýÑO´’:ž†1L§vÂÄBˆ0Œs>@† b°cáÿÜ_ˆp >òß +2x¢B(C€8ާüÐÀ”` +!Ä1@Ü‹Ã0 CáÙ#cvOðö;À“·â㱈X¿5 ÃqŽÇ„ïc=˜†Ç0EChé±CÇÂè Äž—©0 §‚B€P„ÇÓððüLãB¤¶¦Ç"žB<…PŒY‘j +Œæƒ ¿'Ð\øq†±‡ÀsÁö¥ŽÃ¦ +Æ­µé”NÔá‡òòà<¨®µ¢ì U¨5%tŽHfR= $Ì0ºßòÃsnÉ$QH™¢ŒÉÍé`œ¬\“e Rç*E¤"XÅ/fs^ŒÓ̸ËÎ@Oc€¦ „çyGGß8Ž€¹@”‰&£‰0¡ÁÏíÎÁêÒ¯&uìá%¥2¢Œù• ØK¨ã®ëžžòH8(ŒãQx§Ðû‘V‡qE|ƒ@«%<Àï)ÁDeŠ2bNtzíî^¯ûõjµÞ¬w뇋‹ë›ÛÕjµ]¯7»²¬weÝT×ï-dz·È?¾Ä÷¶´ÏbÀUS×ûêªÚŽ@ÙL´ßۙ⪳uK'ÔÔuYUUYí¶»õúááîz>ŸMæ«Ýzó°Z­î_îý%Â4™¥6˜“" ,&Ffv$¤PÊ]i2„HŠ2ƒ˜`†SÄXá¯)CSÊsµð!'Š16…AB "D,’4êKúH†N®Íg_#%4eÍ%eˆ ¡&cxPŒT¬5!Þ›i#*cPDDC¾ð$ÄeÅ@@„JabPç "æ„ä"Šc½TEf‘iDmCN +±@DC½ï˜” +ˆ‰Ð¨D&šGT”*‰(G,¢Œ +Sž«¥WÊ$ˆ_¿VBñ–$ÊÉ×q¬—‘„)‹b¢eTBd4¢4„” ÖZá å¹És“çW¿Á xMdñ—…ÖËå9¦h +Jñïya ͯÿžž“çEQ†¤¤9™ûhV˜Â¦ Â<_ Q¦Æ˜/Ÿ?çD?-‹WÅ2 ¥æ‘ª¥¦å#¥iú± 4}, +£é£yü{™«ÖøI†èñLæ¯åoðø‘`–ò¼¢$Â"/@!!„ã8šÇùÏ ¢åOç˜"”¦Ë¢0DsóøwŠìÎ?B6.Ï +Süµ0…1æÑÄqÎ;Ïþ² b:¨eàyj Ówúpê}+€ÀhM¬šò]0QZ›%š”Ï&ÅuQ˜¿þõÚÌï¯HJD4˜Êô£É–_¾,‰–Ë⣹z<{üÊ<Ü߯֫Ín÷¦ó›»‡Íz³YovÕvWÕeYïš²´â]V$œYÛû~ߎûðeÿbñ°­ ÖMÍ ÿà`ÉBõÔ4U]Y2p®îv»jWîÊõz³Z­n¯¯ç³ ­·›ÕjµZ?¼Üü+¿ߟø#äF0j[Ÿ2Š"? +üÀù¾?D~D‘?ð}0èµëÄ÷ý^¯7ð£ÁHß÷ƒÁhù¾ï¢È÷ÛV* ‚HøÃÑhä|ßÞúƒQ0þÀ÷Gþ`ÐcV>?~ ˜9ÿz'=ÿ­ô¼/üß÷…/„ˆä` |ß÷ü“““““¿×ø¾rr2àýôN''ß |ÿÄ÷Gþhäü‘?ðG3õ"ß÷}_ß÷}áFž÷L Fv£Á ÷Ç–Íp4ŒþÀ÷#$Fþh4øüZG£(òýÑ(ˆDE0ð£‘?1"Ö÷ßú=ß÷|¯×;ñ'½^ïÄšû}À쉾ùþè™Ñ÷ïµÃÑÙ:ýàû(Š&gòAŒ˜°ó, +¤ôGþ`0 üè‘?ðýa }߇A4úƒ ðýÁ`8dÊÏ/§ïûÁ ðý– +4Š¢èlrö.ð£`èûà 8‹‚‰ŽüÁÀüh ¾ï³ñwÃQðýß [Gß÷½ÞI¯Ç‹Žã8oþ(‚шOÎÎÞ£(úCDÑðLŽì΃A4ôý¡? †L*DÚü z¦+ ‚À÷ƒà÷ÑpD=Çqœ7®Ûëx¾å›ôý“7n¯çù'-q£}¦ø5?ˆþ ü§_ÿ©¸»»_­VëÍöþbF×·÷«Íz»Ù•eUV»]Å·r]6 ׳ƒ¾Muhê©KËÿÉ¿<5–ø§±ÅA¾ýK;Ô쫺n*Ë5øÔØôŸq@Õ®©ÊºÜÔe¹ÛnW›õêîþæòb6™¯V›õúaõ°ºQ|=a§¦È~@D9ÅrÜ šc¢¥’€¤XÁ%A€Y±"!Ä·L@!!FÍü]}!šZ¶2 +•ÒK`Ö +ø€JÑ1N°%Õ"ÀRJ@5(@2›j€äQ†BØFsI˜\`‚8`Ý7)Çœ˜D‘ï>ÀG1æ+&BDøPAº-Œ% + Žã I%€€cŠÌã8j«Û‡vÚùA¾Ds(l&_ˆ€EÆ‘(A¥ô""æ¾a¸YÜcRØbAÛ—ÃÃÆâXå¯Ù9~kÀ$d>¹ÎÉ`‘2‹C)Qaþ7¡$<7HE@Æ}4çÏÓ i-h†ç‘L^A4DˆdRB’Qd~*LvE&1…!óxvNte/ÌÏ%¥©IÈœ¥Æ‘¡ç¬°i†K”¶†‡¤5*€@x,ÐuÉ, +2Š +Cz¤DÆ0ha3”tŽF)-Ñ00Ø0Їî†Ë4e°"’)ìÎçÉ !¥þ—s2ŸÔo'q8Í'à‰ÔT`9“óÎ 1#Ù"!?) +Òü¶H}…ô5cûÍëuÿp·Z=¬V›Ûٿ̯oïÖëõv³Ý•»ÝŽ!¹œª—Vµ»nöûýaä·nšŠÙ>›V¸©kæ 9…ÖO\2¬ªf¿ß×U]?=ÕÕ¾²DeÍCv%µ¯v»m¹Ù¬×·7׳Éåýz½zXß?¼<ÿúÅB@E¤Z2:DTŠõTÙM,m9É‚=lÆÀwÑx ¨P)M€j’kâIÑvžSåÑR'V i€CŒø¦É–$ñb‚J)ESqå* ÇBÀãU!bÅ”{"¤•ƒ #ì"i%i 3¥5±(©VÈ¥Ši¬B–%¶[™FæÃÔnbÆ·µHWøVTk€ýM¼–áŒóHëÃKÀÞxÀì;!„#!!`d§J*S*»Bxf¡üq``1@¥•JsRôe á1–)Ę“´ÓìE`Ú*Á >HÄó" ˆ&Ñ ûI›ZKVå\O«$A4¤ô§ïñƒJf€¹ÃÑL¾2NÅ@DQ$ÆS` °çýÎu»î±#úÇ´DŠrŸ8% `Ž g1F’† N%âl(éËð"ˆ&˜êvç1JÄÂ_D„#÷èøØóDøÂVVDßõD,„€ïX‚”ârȘâÅr@Ö8¾GMÏo QÎ_­¯äÁïoî׫õê~{—Îæóë»ûÕz³Þl7eYU»ª®wM]Uu]UO6Ÿ?ˆù¶dÿûvV¸í<5õÓ¾©˜€ˆºjªªª÷û¦®ê}óT7û²®[pn¶Z$eµ.˪,ËÍf»¾¿¿»¹¼˜EóÕz½º¿¸½}¼¼r +‘ô¿iÄ)0R‚1¢ÊL¢ª1T8OÚbÌ4Ë—~ˆcŒ•R?(Dij…•äÆÀ*ÎÊ…"…?XåàŸÄ-*x¿? ¾&èH-•Šã)šèß5"ŒÅx ÇS€)ŠÑÔ@LøVýS$ÂÐFád2™€ñùN~P™R?²bG®ùß"LÃqH…"Çq ( œ2‚¾¥!m¥hЂEþÌ•8Ÿs•jUjŠJéQn§ØB˜š^Ât +ÓPˆq(„“ï¾#%˧RÖöÙÛ ýÕš´•1£’„ðJgš!tÈWÃŒ?qÌj©ï%ZÞ/"B4™D0RšKéüƒ–ïo"óÒxbtf"cÁ8¤8¨$ÇzBV„pÆ…2>!ˆ( QÅqÌbK§à9ÂŽãDEJk}å“ÕZÅÙ éCû3BüÒQ‘’‚Éd2äf"©D!J@|b‚¢ëxî‘×á”À,¯Â;ò<Áϼ‡ȪGÛ©µ I†I¾2ÃoƒýÊÜ­V÷«û»ÙÅÅåíýÃÃj½æëWÕ» ©ëªä€¦~Ú[-Ï=—÷k®ßÙ±‹Ø×Ö]Ô6ì™ü¯®ËºÚÛÆ¡d>N PUåv³Þ¬Öw××ótrq¿¾_ÝÞ>ÜÝÜ>¯Wà_ÂBçZ%ქâUHdÔŸ•RJåÇfˆÒø@„!D‚Å­¦ˆ?$¨”ÖÚ ÊŸóLYá(æªV:ZÒ +*£®H=,«ŒñÙçLy¦(a¼i=Eñ­¨³8†8F‰Â¦€9b'‚á' ¦S°èO!"ã#ƈJ)¥´ÖZ+$k…/:CÓi‚W±Â16˜!jË Æ8Fë "ÀV:^g™þË_®®PM~ɳà¢Ò£¥"…J)ƒ±ØÆIq !‹×M Špd,­oΘ6@Çüjeüƒ™!eJi ÚFÀ ߣÄøhê€AÎäìkð„“É"ÄÞ/tž)¥œ"š kùu I+¥µþ±•àbù/…ˆŠ&¬Á̲½3THCƒ|B WJǡ蟲è;}xaœPk3BDKKŠ8û0C…ø>Ê$! D)ßãT4Ã&!ÆEžgÜNd ú‚IÏÀuœc×ë‹q ±…0ÇÇžwàæÆJ‰ÓXΓÂ&B…yq¥ÙÄ¿án_¯››Ûûû‡Õju{‘Î/¯ïîVëÕn]–eUÕ,îmU<š¦dÆ.f¥ïºÞ[˜ú0áGS×uie[žàº~jªæi_ÖuU5ÕÞ~’µA+¯ªº®kF!—»ízsÿðp{sy‰“ùjõpw{}wýróú«µÌsK%÷áyXƒZªÉüG•“•Lx*F°ú¶!¾‹¸ºÄ±R¤3­µüü¯Ù3™-r° B¥ÔŸóœ´./d¹¹¯Ä©úËD1 +c¥´&E¾JTÜF0EÔB!BDZR±BüD(Æ1Æ ¦C8QÅ äŒ4Ýæ:Sˆ¬öLj +„€ +Už+¥UD€(f1(Äl'}”*¾²ßdZkø_ùJ«Låþ‚˜°Ok…˜ \ÂxÀt{þ»»šÓWQ ôPŠ”Ò¤…-Ÿ€œqc~ÓDQ@3bïý‡Ô q&#!RBZh¥Œ¡Px´L‚ðž(SJ“ùžq:˜X《&„fò ‡ˆ…o¸¡ F>  F…8õæû®Ð–ä/ªêfÏ`€–ÀÊ[ +¢Šq@»ÝnµZ?<ÜóTÎïîoooo._2«—‹èÇ/¹Ñ/^0@‹Q +Užg¹¦ óÈJŒQņs—GÀøßþ@™"M$?k­Å|Q ª$ ´Â$!TyN¹Î{(1ž! ’Šcâû{òbtJ ±RJá<• N Æ)ÄqæÿÀA¼RJ)&BüiÌB0B á´-¯ñÁU ýga‚€8‰ˆ§†c¬ò+¥T‚‰îßÛÆÄ`{YbÂà»6:ùüN£ðœMé¡Q &«ü/êGEˆˆ6¡ˆ§,WšŒ  ÌÑôã­DàüW„@`g’QiEú/ÿªóÁ¸-žÈVþ âÁ O¹IDÄeÐrkIˆ&0‰”Éõ6‘'4Q®e‚ø>њȟ-‘'‰'Òï™FM4±ÏÈœ¡B|ô X•eÖ’Š)ŽC!úÞ±ëºc'lC<ÔêÏ:ÿ‹^Ü}mA„ï ’¢Izèú· æÆªAD“É$¢O”[ŠP@\úW„âÈé¸ý~_Äñ{ô ƒâ{îï±R _Ô=0QhKÌí4™L`‚FåŠË7³ÿ-øÝÍÃÍÝÝju;›ÑåÍíÝjµÞlwÛ]¹ÛUuU—uUWeS5ei[ö|ÄyÚ§®ª¦©øØ7UÕ†ø-xßTuýÔTOUÃK º««ºzª8P(˪nšºªªºa·SU»r»^oÖ«ÕÃíå%Íàâ~uwsýŠüÕõ¿ÈÿN´X|Îii¨ÐT$3Çü1_Ò"ÌÍbI‰d¨(rc4Z„1*`ˆŒ1K]è\›Årñó$_,¾|ÒK2ÆMTQ‘/ŠÂŸ¦X|NˆÆÐ²(®Œ!MT<³ÏEôÓ/ŸòÆRZ“^¢YúWùóƒ…ÂBá9"QTäšP«…V¹Æ(BÀœ4 ‹SaÌ‘rËÜ,‰–I®&]˜G¤|ñùJJ2¤ Ô‚4ùgMùBöµ¹1ÊЕùlÈ É—˜þ¼, +c–¦( +m‹å—Iþï‹¿çú‘Œ1¹¦sCY-óE~¥Íç…Îõ'¥ˆ C +ˆ.òO ÒÒL>É Ê +cLn2ý÷bñ©àõ5i(±\ÝÌÎG? Lb52`Ä¢<Óvx䌹îÐŒì#rÂÏ:)LÚŸä<º¢cBD•+­IÓã™QœQÀdsÆ1”“±Ss0“ˆ â ˆ1&h!V#?ö…`e× …€£ÊiÒT:Qˆ³ÀÀ ÐÐâÏÖðÎp9°iÎ`2™D¨P¡²€†E¦Æ®ãõOÇa‡j¤ †„ëº µ„µRpW±Æ kœP‚M52> +P©—Ê@_k^ß·7w«‡ÛÙÅüúöfu¿Zo¶›]¹Û”eY–\—/«ºªËªáûÜ’|¶ÌÞ5ƒ|›}]1°i꺩ªÆÒ´àž¦®˜f˜Ñ?e½«-ßPÕ”õ®ª[ìñnWnËív»Y¯V÷w——é$]>ÜßÜÝÜ\¿ÒŒ¾ž?ξ?ÊÉd2üa0ôm3ô,šL¤‡<‹¢(8´Z”ÜNF''ôýÈü(Š&0ÍÒYE0‘“høÃö_Dï¢(šÈb0áŽkQô½efšDADÑ;)¥<‹¢(£høÞ Eb䟜øÏòQ0„í³"ߌÞ/éƒÑhäû¾ Î&Ò²[M¢ Š¢³AM¢`´†ÃßóG£häùAÄö;j˜ °d—PVLXîv»Õúaµº»»¼œIº}¸½¹¹¹6ó—º@™Ö‡ÊÌóܶ< h(S”f‹\J(7!Ñ<"$JÓ¶¿MpŠ„HFkRIBDš +ó¨ufÅ¥ÒG"úëYQ˜L£¡B/ð22M‘0EKb•™eFD|Étf z¦ñG±$ÇãH”ŸB@"£"ʹ.‰¦‡|°s¯9ý&L£vvD1]§ZkE€ˆ€#4€r½@nèGŒ$;·U:kB"*´1¹1Úhm2m¨˜ÉŸ…´˜O§ˆŠ\¡¡¿QH&ú"€xŽJüZ—Zkc,£¯)¨h×o9þ)R¤´B"m…=€VßN"Å 9DÄ9;€l¤>9|TH|±RDDØÖ6”"ÊÌ`‰ÄÂl`7ÁÆÕÙ#¾¶N‹u+VòÍ÷„ !¼c×qºNÆyû¹o8#±ÆfÖ¸|ü:òØ^©Í_`6,TÂPNyîRxÔq½Ó~Æx‚6×úÖu½Ó>B@¬â±øjç-€jäã¯7"^/˜¥óËô‚.ooîîV«Õj½ÙmÊr[V»]U—MY–uY7U½;ÌìÖM]×eÍ<^UÝìK¾à÷çòµ­”,&X5<^\WU]•MÍÔŸûÚª–UÍ9DU—ÌF´+·»Ízópw{}9OgóË‹4ʼnœŒ^¬×l³‰9ÓZ)Õ¾dR„(sM¹^hýïÜÒSH@ÙD¬T›|NcL¸0ÃÒŽúÇ?+¥?XÕ9EˆEd”^š+­ u™D|1éþM +U,RÜ牕Bà+5¡ÏÍœïâ ªXåZÅ?êþöTÈ·¢Šc€˜õèy„1‹”z~Çà“R3¥y2ˆÑ +ìI€`A÷->±¢8*SÒ¤±ðœDEˆfdÔ £µÎó bÄ8…ï„'”íù "EJsþs ÐYA…¹*t^EA™Î úÆ,)ŠÇår¹$D4Ñã’¨0† bb_D”Q±DÒW i^\D)±ÐŒÆ™ÏZã¦( +C¤³¿R@fyeŠüqy»|dã}^âçüµñYd–ˆ¤ "‰!D(„çºG`A¦ÐºÈ‹<Ë å Yæ¦È‹å’P¢1† }1†–EΣˆ3š%!™|NHTÍ0•X°êúlž† +cÔñÑiŽE + B“1K@ „@Rh L‹/ÆÐÕ¢@$CSLϨ $c !ß2ÍBZhÒ†ÒÙW!ÿ›×Ëyóæí·ç ¥Ë›Û뇇՚¡»ªªv»j[ÚƒÞ”UÓ4MYÖu+b'|ʶ4ÐTüɲfÙ¯ª®*; \ÚêU6eÉ߯Øp]UUYVeUíªr·Ýî6ëÍúááîööö2M¥ðNÞ¾u¿"œúêrÉ'úŠÚ¼ )#TòJëû›ÖyÞ>ûµµ€ÓX©B(!„ÛIí$AnöPKßNDê:2ôã¿åZk“Âsþô92)‘”"­0F\œÆq¬Æ0hÇŒ:@æzˆÍTÅ ©X+¥¦ãq!ô¦ì4Lãic†€>Æ\ÓQì£p)”>ÔâÇbª0_¡ÊµR:Ó +ßCÌú±ÖÌH×HS""T‰R:£Œ!’ÖYB¶Ý‰D„f¤)˯þÌ(«?"mcÒ€ ÆêG…Œ’HÚ0åÙüz`8<üvøÃ¡?‚|Ë‚åÁ_Q }?‡ƒÁp0 †¿†6EÁ`0x÷ûg˃àÝׯ}ÿ]à¬Ìû`0 ƒ?þ0YãÁpØÊªïþ0ò­Žû ÷¶×{;èõz=×bßø/Œû~0^ÇXdÞùÐüáp0ƒÁ`ðn`SÉa ƒÁ`0ø}d®áp¼{AÐcåõ·oßöz½Þ 78 ƒ·oÞ¼ù¯oÞöÞ2Wp0 ‚¡ ‡C茇l90üþ{ÔÿGÚí/)âN„¤ËëëÛ»Õêa½Z¯V&å*Kž®84gÁຬ™(¤ªš¦¶ýÂÊ~Q{§7 ‡Œ÷á.]×|Ë7鱪lš²äœ¢ÜUeY—å®ÚívëÕj½~¸¿»»»¹¼¸˜0ÓqÇù¦ýp^5”2­ºLLÐH³œtžë\g­”™ÐmŒ¯Ã0 ÷ß% b¬{Ï’~~˜)ËH‘ùQÿkÎÒI’ ⌟ü]UŒ€ü„ˆSà.žÄìB nÛMcƒ¨TòƒÂ8þaòÜ0´@ˆ0 c¡Aùñ Žmµi¤"‰`Æ*†x¤b¥þY)¥,RQ>£¶Q רMAVOϘOÆEa–Ædýÿ¢Â,–…1ÅrQ俘¿ÒŠOËÅ2_.)5æËò‘É ]HmÈc Q^˜¥6dSS˜`^|láBzaL‘ßšÏÆh“,£‚Š…ÉÈW† Ó×ÖCÏ9r¡Xdd® +S¤ÆóWc>Rb +³4…1 ¥¦¸ +΋É|2¦¸ZšGc>\žú´ÈΗ‹ÅÕO™-‹å§e±\S,FO½c¯ßg$"BJTƒÂë ¨|Ð4…ˆ€† +cŠü§«GóãG“.fDEQèf±XæË‚Šáùc¾,ÅbyõUÖoy¨ÚÇùÆq\O@z977÷÷ëÕýjµ^¯w»Ý®,˺lJžÎ«Ë’ÙúªºiveÝ”uÝB-›G+ì]—œ*T•% ¨jüªøî/«]YÖì,8úçÞ_YÕÖël6ëÍz½Z­înoæót6yî+¢Íß’ˆˆT#"@E”)-užk…ʸb²œX!EðœDa̰1´Q%¨ˆB$LŒ<Ÿôßþ¬5=k×ÍÒgÍk©Æ1¢­_ñ©ýá‡c˜b[´?Lãx*A)ÇÓ÷!L­qB1œ„qã1Z|Ä1cŽFˆ˜@Œ0Åý úJiÆ1¨øÒ7Ð""@&R‘Z]L´ýS¢”zPiûZ-òœ´Î”R1˜Â‡è»1ëV)ÎPghZéN•R¤^ü@~[”2E¤ð™¡/!De'€K‰ˆøÃ.ÈŽó£R&xLÈJ‡Q¶4Xøüš´i+Rmœg]šÒ ™ìÓ¬Ç:0‡(T&X¢Ê¬ÿBM"ëñœµè{§ÝŽãñf&/¤ËQ)jAhleÑʆêVò‡ ”Ì‚®³,Ïp9H3M”é,ËÙ”VáQ×u]– +ÄLjếó<1q™ÜÏÆ1A:3LNB¤3­ é&õî}û;N×=ñ'3šÏ¯oîîïÖÛÝn·+×»rW–UU•»¦ªvuU–õ®*ëªÚ–U[(˺.K[ à ¾Þ³âßçUÅ=’Û|•ÿ)ëzWÚV@ëveU•»Óÿm¶ë‡ÕêþîîúòbžÊh䟸î7Î7N·ýxå”"17 ë6%J‘2’4i•eºÅG£‰l¡ & „͸D@ SDL”B•… +H%JÚÚOk¢,£¬ Îe;QÞRK€D +–((ú¦ƒ Âi_Äñ4†B€„PqNã)„–n{Èd%vW,ìkA!ÜkާöUÄq"bLã}Äã0V Æ!ðkg¯7gÀ­V7S`¡ % ×H‘¯ÔJý¨ø +ŒþB( }q L€ 懣¦P½œ>q’_-D$•`‚¶s˜œ“ H|lé5™Õ’(!;Z¯è,Ce´Îˆ”Êr’…o~$ëw 5 +D²]wÛAd@@óμ€vY Qd:2DCD‰Â$Q± ÂxÜï÷=ïø´ëxH +Q!þ>â“–• f&xY!®À¦Lÿ‘Jr>¥*#Å`©‰Q*d R㣎붪ւ¹$& \÷Èóø/…ЉR+}ˆH4!ÂO­ 3¸"K D_i¶ü±-Çt÷­{â@¦óùåÍííÝýzµzXm·e¹)weÉ·uYVUS×uÛ,Ëü¹²®,f â‘¡ºdT@Y–uU•UÕTwÊzǧ¿lʺ¬«]]×u¹«w宪ve¹ÞívëÝf·Ûîv›õêáöþîúúržÎ&1ò<«¸g#—)@Nd"†…“nG":ãÒù ˆúR"N`B€ ¸¹ì íÝŒ¤4‰"„+RJa‚¨2m‚œ³ R¶™Ìl<9³í ¶æ-B7‚1 B8õÂ8Ž!ãpO!Š-ï¤åàÐK˜à‡)yBKÒƒ!¢¨EƒÆ„ˆ"æò ÆS!Æ!Ä1ú¿ß‡íü ™ ¾èµ8Ù"îZnJ4IBë—¯ÕÏÙü`‡#°|%ž`ÿůuø‘)mQ%? –ñS)¥~KŒZÒ?ÍŸÛÙŠ,M§”Üֶ蜗ô¶DÊœe¤3¥ˆôÏh‚¶êðƒe±Æ'-Ho†¨p{L"¦ï¬qÖöÄÆó€Ð0Sªø‡°a(ú}ïØ;v»Î)Úú†’/ŒÉÙÉ@Ã4 Ä÷,\H6 E$Õî\QF¬}üsßRê¥P%–Âg|Ôí¸½–›iSŒ'Â>g`±l3/%¤’L’"bã´D + )R*AzHÇùÆqºÝo¾qX@¶ãžx>Ìf——777w÷«Õf½Û­·%kíÊ]Uïêgø|Âùüsp¿Û5VÈcWVuY–; TUUÕ»º®«²¬vUÕ†MÉÒeÓ”Uµ+ÙK0ú¯,ËÍv½Ýnw›Ýj½ZÝßßÝÝÎ///dF'=×qœ.û€o爈&‰Rˆ¹Ê2RŠ0!B™+K¿dC±¤ˆˆÇÃÚÅÔ<©žˆ¢HŒQiCJ!-•"$­tFI’$ŠÐDF±5f‡%<Ÿ"€ Ç-%ƒdES­„„c)‚ÂP@‡ÃÂч·6f5³CÁÅ@ˆH_ˆ8F Æ(bDŠcŒa !Ä |WN…M‚1³Îâ H1EC cy®üOkDšY€ÑD‚D”ܶaÅ[‰(M`Pqlœ"+uH:ÓdÎ )~ʵ֤óÿÏ`$¥‰ˆ~HЀ5>;x’™”3”sŸ5‰•!T”ð%­3M& {[X'ö¹—!ú§Þ±ë8žÒÌc¨‘r&åžô$Ú°žI§ÔÁø2"B"ý£ÖZëLçÿ!MöB15É(#pÎ1ë= ã±çzß~+ÀÂ~Íáí¹BTZkZJ$$Òö}Ñúó„2²å˜¯ÞÇq޲棭°Hçsº¼¾¹¾½]Ý߯VÛ5§â»]¹+«²j«Û²ªêŠƒªÜíʺªÚ+W—uUV»²®ù3;®éí8(«ª*7eU—eÅ”£ìVÊŠÿ ¯7›ín·ÛmÖëõÃýêáööæúz>¿˜I1žëZ×ÕýÆq¾yÝdòƒïAàƒ`Œ‚ úAECæC ‚!cögÜ·üq0èõz¾ïz=—y_Þ|ÿ¤ç¢ üÀF#ÿ€Œó‡£ ŠÞù¾?ô‡þÐöz|?˜Cf8ôý(j»TÜr +ü“ÞÉÉÈôÞöÞôzî›7®Ûëõz½·½Þɉ?èõÞ¾íõz.ÿrÒs{ÿõûöíÛ·nïmïmÏ;±„EƒÿÚ{û¶7œôzÜ£¿÷ý“Á`0œœpËè¤÷¦×{ëöÞöz–Óf0ˆì¯ƒàïû‘eÏñ‡C»;?ˆ&QŒ?Ú×êC~ëÃÁ`8ôexr2´ô8oÞ¸½““‘2ðýQàÏÖ"ßyXŽ1×_}||Ô† QJ…,H‚LÓTJ ©¹@”¤æ~DiÊÊa8/ +v¾¸\ÂôLrJkÌ‘)ÿ[RaˆÈ3ÿhæÚd&£ôüêbi$ÈÓÙÁøèãcú.ÂÖ8…1çóƒñ!GæOÓzéÃÿŸ³·ëmI·…e !l{LkLߌn/Фu×l”Gl–̸N÷ýÀ`­–Í8þà¸~½ÁœÞçˆh—õeQ†1æ>> åÆ ߟ0°Qã›F£a¼n+°ì.‘Ât™gû§ÝîÓþ“éòÙ2вß|Úív›Ýn·ÝowŸvÛ]¹+ËrSnÖër½\,ÅlF4 TÀ\×¶Lù¯Ùh6›ÍoN&*ŒbüÉC‚QFˆˆói6fY’ç4Jý<×I¦“ìé<ÏS$ç¯2”!ò^•k³] $Ìdˆ€K‰ä“‘çÓìé)'ç” õž´Î1ûQND9¥°"=E$Ñã#"Fk’]B€;nߨ6³lÎ æB.µŒ¡Ç8\pÞcîBÙçÀùn5ë{ÇùŒqþÃ÷ã0á¡™!…¹ øZçw½>B 䌇€Â58ʉ²<§4÷>åæíkü8S%hžåùUŽ&†>Τ‘Ùë*'ÌrÊ}É9‚Æ>‡ÞãìŽåˆtI`Š rÊi>÷V„f"Pk­±}vB)ˆÄCÀ…‚ „ñµ4GàûÊD‚G<¥"AŽ¯Äƒx R˜"‚HoU$Ä!ÌAâ!0æA$„JFÏÆ„ |ïAÝ + ! ªèˆ?Ì9D\¼?¸þ¿º¶ÝºnY–Õ°@$‚@¿ü®k¦:˜mYv·Ë…J‡Ãñx2.–ëõr½X–›²\oÖån·Ûíö»]iJƒU> Üï÷»]¹û´ßï¶Ûr¿ÿ´Ûïv»ÍÖÜö»íÞ¨{Úïw»Í§OûOûO»­Aív·-w»ív»ÿ´Ùì>}Úí·»Òûr[n7Ó´\E1Óp0ˆ"ßíÚVãðc‰éø3@@«¬x+ HŒÑ3‰Ä5"@Œç¡–‰”Ðïï›y@µ»šD@x4jb±ŒA¢ÖÚè-GU¥Ä$ã÷"’QWY¨è0‘ì¿«$ÈBÎÝ<ìsÆïñ^¯ö{ŒÝ±6;g¶Ýn·k³»»i3fó^³;ÆÚmÖ¾aßW ºœ÷X….pèó»! Cù§êîCúýÐX`k$’\@©Q£”qüœ`ƒxBqm°ˆÕ^¥”qŒZkã Áïza 2ifÑçRdÖU5ïÀ—<ü€°Bi8(…ƒ±)Bî#’—# Q'’¨³,A@‡ªŠÆÛƒ2CïÔèä°x\wýKDŒQ‚©›kDíBÄûÞJYÙö„œñ 0)@ËjؼÚçó@úÅâ©KRbc ¨QkL4’ iDücS¿×þ‹F@—^›ŠjEß:³,Ûn·ïg¾ÏLM†ÛvûÎÔ\°E %‚” 5j:A­Òj„2Fï¤ÔÙ_4ùÕey‘|!ÓÎìf£e»A0H†ÌÖËÊ3h]nÊÝv»ßl>m7Ûr·Ým˪O·Û˜˜ÝP}ó©Ýf¿Ùí·»ýf·ß™ýîÓv¿Ùìö›}¹¯š‹v»r»ÛîvŸv›Ýf»59¿rWn·»Í¶ÜìÖ›r]®ëu1)ŠÙl<¢(躶ÕlXA%ÀT“#'‚ 3@ÿ Ún¦z4J­Q>zUî7A­©ŒÃC‡uI›‡Õ0:ç cÔ@ïå[K³R‚(¨ÒÔѨµ‰(€ƒ-ë·Hà¢Y¼‡÷Ì^–ôz=Þã½»6cívûܘµÙëñð†ÝõZ`·ÛŒõzmÖn·í?Ü0ÖfŒÝ¡{×»3sÿ<M7S­ r€À‡`ô9$¢ ¤Ô:ÑhSÒ$ûbÓ³¬5Pn.€XJL´Ö(5¢ rn®„ %q¡i˜9aŒ]:yÃ5¾rÿˆ þ*Ïæ(A‚”ÆÔóµ@&¤™UEîå•VHsSkD ¦h ŽªïP 4 D‚ûD¹ŽAʸ€ ÆAæUæ,„1ÎÍÆ@‚ yC‹Ù¶m_ZÍfã†G‡ÅcDˆ8@gZV>_æKè¡4IbS­h ãvÔˆMrN Gg.X³a]ZvåæÒeRË0~c·Ù]ïŽó8Ð)âØ,®µÎ¢ŒëÒà;‰Rçú Ž.Ëá‚ ðýƒQK·e²\(¤áx2+fÅzQ,Ëõz¹\—ûín½Þl÷›ÍvWn7ûr¿/wûÍfcˆþ~·Ûn·»ý~_n¶›r³Ûlö»ýv³ßîËíÖÁ§ýn»ÙîM^o»ß*±Ùî÷»é8ÜìvÛín³Ûì¶eY–›Íf½¬ÀgfHøÝk«ÑhX"BD"â8 $ʽüƒÆ"`LÙTkÊiše£„€”MçO™F"r¸ñàì†ùµ¦_å™òùHˆ'BÊ 1ÇìÃ=2š÷”¦ Žòìé)GÌ €p„4Íò,϶€Ö18U[çwÌbÀ˜ßé‡2ä½°'{ü®ok®v‡rÆ8´€±>ë…=Þë› ‚^¿×»ëUuws ûœñ;Þ {½^Èúœ÷G®Éè,Ÿ>eˆ¤©Cšò,;œ!¢0Ù£å?‘ˆž)#ÄfÓ©¦<£QF(9g¬q(µì1Î]8‚žê,Ë3|^Ž\¤“2àç@F_„Ñø@à\p¡*»ÝãR¡Mãr ’HkµGˆ`Êà¦ãÐøp<€PP…䦈&")ÁÔÃë{€üâjq3™$$D<¡ %cì‡Ö]% vÖ°ï#3…™ùä8)AÆxƒs¯îŒ†Jm)A-0‘UªD)¥Æ R'>×X³Ñ°,Û®jÂ.„a’Wîtœs¸Ö• HýçŠ)H¤±5ÊŒ#œ€òo'Çˤ k6¬–ë j8L'³IQÅr½.—‹r³^ïÖër³Ýî6»ýf[nvÛrmØúf³Ûìö»¡þå¾Ü–›Í~·Ûnw[4l·»Ýf»ßnvåf·Ùmw›ÝnWnÊr³5·ÿ®,·›ívWîvëÍ®,×ûݦ\o6åz½^ëŲ³ñpˆˆ|æZV£aŸÌ6Ï8t|×qÌX‰×qM2ÞñnÅÃCÇõ:ŽëÝ:Žãy¾U︮Ûq:®ã¶Î/,˺8¿8¿8oµZ-ǹv:ŽãùŽãܺ·Çõª Ïñ<ñð`B§ÛŽã8¾ïÝzŽÛq;®ãtϫ̼Žã¹·žç8Žë´..ÎÏÏ/ÎÏ/Ìø•IÔ_´Z-Û¾>?¿0ƒ&ÆùÅÅєֿœ_´oüËŹuq~qq~qñ¯VËmµZNë»o[×Nånpqq~}ݺ¨K­ïÌÌŠãºnÇq:·žçùƳÀu;Ž‘‘÷\Çñ§ã;Žã¸··Ž{4Kã ¸ÏsÝ[ÇiµÜëÖEëââ¢Õº8¿¸¸p\çâÚ¹6ÊõÞmÇëTS(Žs{ w¿Ì@m’#ç Äáù 1ô@>!G#­1AùózÒ(–2–ˆRƒÊ¡Ãs”ƒ *Á,@ÎEt´¸axt°ÐÔ#­5¢‰ùsC‡ñ5’=Æx oŒ ÈY㊠8]\E¼>#Y/žwè@FtfÏ¢ß>3U)5pŽÎüôÍÎÍ3˶³mÆ}×(ßٶݶëõ8]ãsÿVµ8©÷xÜö,àM?ågàÅpàP\^X×¶)1¦H“ñ¬(–KS +Ø®ËeY®·›ív»[ï6åvW–e¹Þo¶ÛÝn·Ùm7e¹Ýîv›ýv¿Ým÷›¡;ìwåf³Ù”»íf³Û•å®,wåf³ÙmKãõ»Û–åf»Û–›r·Ûmw›íz³Y—åº\¯gËÅl6™Ì†©Š„|ßnY –+ç6rGLI‰F:Ñ”æ¯2ÊIiàj¬æôhÒ83áj~gÄ|[¦×Þ4ƒ¢øŸ +ÉË 0A$ʈߣ˜fHHµN"èåy)¢Q¼»å„f”. +5Jä}-Ægœ³›»:ŸÃ¸û=ïÙvûÆØ_\Z—Ђ^Û6Öž6·¬öül´lvÃÚ7Œ÷÷¡ÅûF»Pbö9ï·$y¯Ïûç> šSlöú^Í…Ÿëª…ÜÃ܈Ö爘š½Žð="%#B"ÏÍ^rœqcΡgæÍ__0#$|mÚ#(GÄ™w˜;“^MsT>|œ>8ŠHx8êÔì‹“w‰:ך´ÖSb1D AÊX"DÂ:ìz]-.8r£þö¼xÄ Õ}¾t6Ò¤ K¯ãûB? 9Æî.X͆}0ã÷D\~4ýXÍ[¹G‹S¦G:ÑT-7B@(%EUpXágFÃjU€¾‘(‚ž]uóZد»2/Z£ª&ÝëÅcIP-ÂË`xzL"Û²l7ˆD¥8ŽÇãÙ¬X‹eYnÖeY–ëͦÜl¶ËM¹Ùl¶kóß”Ûív³Ýl7›r»)ËÝnSn6»rW–›í¶ÜmÊͺÜnvånW®7›Íz»-7e¹ß”›Ýn³-7å¶,׻Ͷܖ›²\oËmYnËåz½.Ër],ËÅd1›Œ'Ã4UÂ÷ƒÀï^Û]u¢ xªt‚ |"Baº"À#º“®.²rдàü»×ü ‹ÐÆX¯ÇÃbt(м)iˆ˜$àG£;ÿVÖOŠûØóIFðZ'8p@ä@BÈCÞc¼Å¾ÿÞ5ù?ÖëÝõzÌxš[WWV³Ùhž5Ͼ±¬^ËîÙWöå¥}eÛÖïlӬѴ cà}eßÜ0Öf®ÏX bÉ9g!@ö9ã-Æù]5ÓÄCpPˆá(ˆ€sà¨Ñ{¬Øa (pÍ^9"j-Ðìµ~o Þë»®äìÆîû} Fw"xæš2Få=7} 7m¿æfWRÊJôô«’ˆ!€\g±ü¨µÖöëÁ o«„¡¤ºqðm=”ÁîsQåa…ià=I…yˆ¦•‡t.åßµÖz$ª²DXo‹÷8ãa‹ÝØöõŒ ×óâä±ÿŸ‹¨›pSÊŸµÖzáÑ™ƒéŠ%9/žÎ¬Ù¨bÆîî-×Þ•m·¿g½;Îùµ¡åVôg­I™¦Ÿjñ¸^ÜýræÔ$G×ç–Ýõ…àpÇãqQÌ–Ëõ²\/‹r¹^¯—e¹.7ËM¹Û­×ër»Ýl·›mY®Ër³Þ¬7eY–ëêv^¯—›²4¥Ä²ÜnËM¹.×ë²Üo×e¹^¯×›õf»Y¯·åb³Ù”ÛͦºõËõbmf×År1+fÅl<¦tëú~`·üôd²trb™ "HUšNhRL‹¢X.—ëåz]®×KÓ\–›Ýº\—&M¿Ù¬×e¹-7å¦\o–定à]/˲¨åe¹©ID¹^¯Ëõ²,Ër³^—Õ*ëÍ¢.:,ÖEQ,–‹ÅzQŸ˜Ì&ÃáSn—ù]ÛòÓSúrò¾< ¬,BÌL(ús“t~Î Då!<"à·"`Õˆ{¿nX×@_pŽNy‰™ú­¦@aõP‹UÕŒ‚\"oAÝ"ç>¿‡ÐˆHCÀx† ×e¬ö9»»ã=“tm˲¬FÓ@@£Ù´¬óK»aÙ-ûêæ¢eYÍæY³Ù´š–Õ`Vã¬aY—¶eÛ¶ý½Íìk ++…a!䫦ÖãAb†°bY)ÕÝÖÇ€€óªT8¢æe#DDBLß矑žªGDÔ §Ÿ>=ü=ϧDD£¼*ÆÅ£'> BL$@„?=*#x‚9eH#!æ™6a„ Òû$ÿ¯”ezN龜œ~ú‡Zeù4!B¡”}Ž1u ~`ßÛ¶m56OWê="ffq>Ï5U‹¿G")oEYžL‰Ô#"¾œþãï8ϲ©¦‘Îó 1މiî"‚‘i8Ç;˲,Ûè-Á£ßÍGH„}vÃîŒ|8S"œ‘ ™þícšò©Îˆ²œÌìRþ "¼|i 6#ûÚv}ÖõE4¤ÃáxVÌæÅb1[,³År½.–ËÅr½\-ËÅf¹^,—ëM¹\—ër¹,7ë²\˜;x¹.åf½¬nþ¥A€õz¹4P°^¯7ËõzQ®Ëb]–ëõb³^nÊõÂ$×e±\Åb±X“Ù¤˜Í&Ã!â@EœÙ]æ»¶å§'ÀI ¢¡‚bÔ#ÆÒÀy@õH™Ñ`‡˜#Äè€ø8‚»€÷Â`îa Ðã÷Àx$x$Í€”z¤r+žŠæ¡'É™ +•óx˜Ö”qމ†Žà;Æ8%çÌ ±Û¶/­³F£qYš¯./–e7~÷{Ë>oÙ-Ó«uuÉìv«Õh4Κæ bÛþ5s‡Ðï‡Fq$äÜE3a`œÏ€#Ä(|üÌÄjÈP®â[ä¼"DaÕÅ.u¦æþó^Mu”ô!P8ŠsŸ#b@|’‘×,;BõÆü‚FÇ}yt<Ï$a;×q:NÇó¼ÓV]¥=¯ãyŽë¸žçz^§ãv:ß÷|áˆÊîÒ븮ëy]·Óñ:þ·^Çí¸ž×1*<îmÇ5Buû·ïyž{ëy®×q;^§ÓùÖuÝŽizv:Ïó=ÿáVøžY¨ã:•ÄÏuËþתû¹Ñhœ›¶èN§Óqo]·Óñ¼WF|Õ­ÎÓó<×ûÖØVŸéx¾ï·Â÷<ÏlÉíx^§Óñ:ï[¯SI$u\ÏuÝ 3žs~Þjµ®ß´k;ߟÿÎ8Å~ç^¸•hl§ãÔ‹w„ïy^Çq=Ïít<Ït¿{ÿ×ét:ÆÎôèxÉ&¸¶l»k»Œ‹‡ép’O&ãÉdV,År¶\,—³åb½^.Ö‹e±X¯ëÅz¹^®—ëÅz½6ý¢\®ó_/×år½¬|ü‹åf½.×ër½X®Ö‹õº\õÀQY–ëõb¹\/Ö‹u±,Š¥iþ™ÍŠ"çã4 ‘Ïl×g¶uÁ†§¾'å Àˆê £ô1~kJCx&"ù"wj7š€saä£ T +³@ÎÏþzf€ž<ª5$n©C¡‚s~od'QKÀĸ†qÎ!ÇÇj„¾×ëÝõ€Û¶m]5šFömûòòòêêò²qfY–Õø¾a]^Z—lÛf¿ïÛuãö¥mÛvÏ#†<„0™JΡ ÀÈU`òEî`5/ú} rh$¨g„!ï¬:õ^ß!fCêŇ½†p “qü.•ZÜs IK¨‚j€0©ý…À<¡^ \Í?ÐjED«|>ÍH)ŸÓœà‘ˆVÆò( 0Ïç‚rB€(E¯ˆòÉ$ʽ(½'Dz¸ú©^|”çóiN84Ÿ`BD+T H)³ø8{óB +HsDïƒËçð½ÍÚWÖ%C|LWùjE@«4"ʧó\#Š`<ŸÇ +‰ˆV8 PÕP¾â1Ÿ!(PÒrœæsD$!æ¹ÉÅÚn£asÎì(”¦® à[<Æ^æ€r€i¾€‡A>GPÆ‘€~ʉVˆHJ`µxòu0*˲³Ýn*MÓáp8ÏÆ“ɬX,–Å¢XËe±\,Êõz±\˜ `½\.—ëõzQ”Åb¹\Åb±0-Ä&nX.—E¹(ËõÂ|SQý½rø-ŠYQˆ¨¡e¹\År1™“ñl2™ Çép8P fw]ûÚ:gé©/ÀÉ;+§<…wdÊÃz$5  G™,“V €zE‚ƒqâ…>xrŒ¿ƒ¦¹?G#ž©‰XÓ!€6)ß±¯LVÈä$¡¡"âÀ9—R»èWV~=Îî웫+»šÈ²®.¯,ûêòʺlœ5ÎÎ,Ö¸³,«€««+ÛêÄ,˾â=λaÈÃ0ä}÷q\Óy~vÏ)A „΃B 0 ô‰¬,éaÞùð¼W‰1/눽¾uà5Œ}4~Vœ¡öú©Rz™Nª_úËzR¢ûc=¾‡¦Y.Ó(µøáq«@ ¬T‚zam^Ï‘›×бiõFŸG­Qg‘0?íCŠ”„éðŠêÚ}$Ì«hj5òîk·MªÆ†X¢¯1©ÏÐ凜+Nˆ^f?wš ÇÂ:·ì®mwƒÀdh8'“Él2›M&“bRÌŠeQËår1+ŠY±\/Š¢˜Ì–‹Ùl¶,Š¢X.‹Y¾(fŬ(Åb½\.‹¥qò]ËõbQ,E1[.—¦½¯(Ť(•ÍïlRLŠ¢(Æ“Ùl<šÇ|:À4¼s[-Û¶¬Æ‹*àøéùøù?Ÿ~^)Róù|šÓ|>EÂ}Èu†ëœR€G̉D +ø8ÈÅ|N +hž#ehoŽãüýjN¨4ýçÓO«Õ«Ëç?ÍçDó'Âß#¾zQN€´"|¤¿­<¥ðUî¯rTH9)œ‚ÒïÇyþDP–O§Øñˆˆ( %Þqþ½ýûßU¢L6³m˲­Öh4άFò~g›lÍ~i]Úákš‚€Õ´ì%ÜpftDú5rpEŽ#À̘dç"¥pöj>'¥hžÓ0GŠ”ÓÇ)!Mÿói5u›ÏçÕ^ÓD_ÈìUÑǹ *„\¬ÓœŒÁö¥ÊóÕSFˆ4?­Ç—ìÁ“N5бDm’ƒïPעć^aÁ¹@Aü¾S¶ß›b@%¢ó1©òU‹ zBÁëJ@YK”Rb’huÈ’Çѽ‘0A3ÇoJƒK™k4ÂÛøóY€}Ãt¬º×-˶íë®5(¢¹Ñ&“Él6™Œg³Y1)EQ,³Éb2+&Ŭ¨¢õeQ,ŠE1›³ÉdVÅlQ³Y±¨nêbRÌf‹¢˜/“¢(Š™ù˜³bVÌfŬ˜LfŤ(Æ&)9i2N‡iªEQÀ®[¶mY–ÍÕðÄè”Y*¥¼ÔˆsàV(cÍ#T ¼7 +Á J*5¥ˆçHf|R!ð6„*W +”@Ħðà!¥cjœ"!„ç á+ß¨È @R +ðV)À”fF]>„"cVEˆ@ˆBxJ€Ÿ1øû÷Ï‚ Ãõ¿±.φe*~W–}e8À…õ¬ˆnYf^ôºõCEç÷}ßw»<òÅ­ˆê½(x£”˜Î‘€R „é«TE"±R ¢Ó¢zð‘0WBåoL/­¨W¨€Â[P*ÅtL8eæl£™B +"ÄôHöK­¨1¸µá2@‚ e,5½ìZ3 +fÆ‹<ªšéxEe@Ϻ?·Æ*=U/a>)¥Ö àt6ÆÈ£!pôµ®ªÕ#6äümn3'é±¶ÍìK«ùMã’ƒD_‰#µ" ƬåñÅ©×Ý‚ÀPT‚Ô<4ªG8eÜŸ?WZ£$¢k5­KÛ¶oXﮆa _·nÚÕ< ¿¿?(ÆÀâßV-ìQÝ#D\9š²äËã% *b–e_·lÛçAE*M‡ãa:Ži<™å“ñ8ÎL0›Í&æc1+ÆÅ¤˜Íf“¢˜L&ùd2+&‹ÂàF1›M&“IQÌf“Ùd2Of³Å¤0Ÿ+ŠI1.†“Ù¤XÌÆ³IQÌŠÙlbþ“a:¦I:¦CT¥"°n˺¶­ W¨Áð¤˜zJDSAc@ÌzÞ;=¤ÆòQ?e?eˆÉ#¢„Gcù'!†Ç¼S§Åˆ +ß'DDƒ\#À#bt$¬’ªÇ0F$ʦdR…1`F¤€ULʼÝ `K3E ü®ÇÂÜØ—ÖﬖeY–e]6Íf­Öh]]^Öp~—6kßõàºz'àwÆ’” N·€¨QO³¹ÉBYŸœŠcˆG¯ŽT¼‘FD£"Ó +±ÉÃ^Íà+eÓÜ'i´(Mí#(dRPñ¡'“2m_ÁE àâqŸºyJ#ª~¶_=Îç÷ ßDèёĕ†XGïï kÎEþÉâµôq¤jév8‘Ö¾©èÖÓ!T£Ú’3îcì¦m_YÍfÃæ€ðp´ø}5…¨¢£3Œ]0 3q$/%‡`uÔi 0«qf]Uš€U6GÊ×-Û¶íºƒ´râ•fªB-ãçÅ@JA$>õwx-Ž N¤ƒÁÀ·,«Õ²m‰¤Ãá`0LÓtH“áp6g³Éd<žÌ&ãñ,Óx6çÕ];™ÇãḚ́…Ùx8™L&ãÉx<ÏÆÃ¡ùÚ!®g³ád<™ ÓÉxœ'Ãád’‡˜¦ƒá0§)*f·¬–m]°¤éÉÙSÒšD&%H$g%eíá«Ì”ê,Ë2Ì*%ëÄLïÆ@njÂËÃ]Ašž2šÒA"ß>g„þx-1û,›OñÈL–eÇÊ™¬“…òD‚Dä¼ç3~áߨW–e5¢LÍfó¬jj6 «Ñ8;kžY—Ífóì¬qgM˲Úí6ëµx¯wÇ9\ŒÂ:9â½[Ï«a–eÿ‘=~8L7c’ Ș<£W PÕM…F ’㉵_¼V`r&³×y<2?LÌ^'Z(ˆˆ?g_ãµì¿Î!AL(%J™$Z¨èèÖå÷uO JêV†\RVm÷R¢NN.åÑ€a%È«ÛÁ(Jh¥x$N’eõÃ%yõâ1ç¡1fâZrÆlcÚ°9 +en3Á!¦Êá 5F÷Çgnä`E¥P(‰‡>HãM&%pðèÈC%ô­³3Sæa¼Ú‘F –mÛìÐC΃ :u”ˆj3WSB]4¾ÈTÇ)¤išRnÀí²Àç µ õŠÀ¤[t–ýG–!Q%ìLj@.¼#Ï,Z¿ÓYH)I &¨æ¶€2v’±FMÿœeþ_5à#JI(cÄXÆêî Ÿ@ùdH`÷zpÎÚí+Ë:¶9:k4ÎÎÍÊ÷àììù Ö!xvfYk·kqÆzœJ–þœsèVÞ¨³lše*¯÷*%<|z¹×L£þ(PJ$¡´®‰¶€HA ˆ Í^ÿ2õŸtJŒ%R?ÖŒ¡~9òL- ÈÁ4TDb¸õHk£›!ÔI¤`j´÷F5œº5ß6TJ½lp3|î!æ=P0N¾F $ÓÏ!@=ŽÄ9øk ÿ°¸”pðûó–äw¬ýÛ¶-«asa þaº^<9ºÑ^‹úÌkJ P‚Iwšli EàQ\±±pAßj4¬Ë›ö÷mΤ–RJÒ bËþcì®×ãÏ)ŠçB³¸¬ôe±þ HåA66³ßæ÷ sÐA4PÊÿ¦qaY-×uY7¼òJ™§m:0SCãašŽ‡išÒ0†ã4M‡ƒt˜ŽÓá`8¦j8i8˜Râ8 ‡Ã!¦Ãñ0¤8HÃa:$2Ôb2†‘ŽÓñxHÃ!¦ƒ4M•ù‘ "!¢ ¸ïº¦%¦q 8¹ÿO€2BÔ"ÊÌÉt–UrƼ«Ù,­ 3ªz^H@|„C…@=b‚gaòÑ77ÅÔÚ8˜4@À,ÓZÿû¿gÞ“–ïj© <æJÕùêc­+uýØŒ³žmYͳƒ†ç»þì¥sÓÙYÃ:þdóêêÆ¾i·îX¯$2nô"€ƒ‹fÈ­z «œ1ƸEsÿ(ÜAŒ³Lc2õQJMÑ5ˆû#%©z¯™þàMõ³¬yÏáø±º·ð5¢ÌŽÀ/Ÿ#úø7Aï‘ó9¾Ê>ýcú´å¿ Í2BÄŒÐQšcžSîç„óSŠ!§ù +‰Ö^>çszDúðKŽ@ÿ¢SÂñ (ûÇ?¦O+ÊÿöëÅ s•š¾"Â<'”c>ªç+LA‚€ÜEÔò›1~Å®þ‘þhV™c.²ìÿøéiEÙGTõâ?BnZñ`˜åDå˜Ï?d¹ž¯Ó8ø~8æOs"@𝿸ô¸m]ÚwŒ#—ñçÓì?5­ÀfŒ‡`T5Bú‰('é³y>BÌ“|š%f’]Íç«yžÒ|ôcž~çŸùµ ¬Ù8o4,·kw»<A „ˆÔ@)¥@ ¢Á@Ej ƒÁp0¤*M•ÉÂ¥©aåé0ÅŠQ ùÏ  R•ƒ4(¥Õÿbšé`xHç p«ÿ ”Rƒ7*Š¢È÷…ðcöõuë¢a5×ATñ‚CïÏÑ¡s­µäÜAÔ™~.½7%?D­Œ„‡„‰kUüG<…ˆF†fê!`êÒT€¬~ ¨êg¤¥Ä?gÞ9­ZB‚$:®Œ¢ŒcàìŽÃµÇXûÒ²šÍ³ÆyœUppúo-ûÊn³ vÃðœóP‡Æèàž“ct +ª½’–RbœÄ·4$! àñ°×ÌGÀ¯«½&iÍ•#iäM“ød¯hÊÜf¯1"‚~¾ÿuãáóãößœŽwëURªŽã¼žçyݮ۹íqÕ[ǹí8ޱí3‡ÿêöÁ÷nÇ}ð\ÇíK¿ŽãyÞ­ç8Ž÷êááö•ãx·Žs[}߃ð»žW@;N§ÓqnÛÛÓÅ=ÿöÁõððÐq畱ûs¾sZ­ë çºuѪm4ýà³Ùžÿà{žçu]÷ö¶jktœ[ÇqnÝÎó⯼W¯^=<??¿¸h9ß}gd`Ÿ/ãúÿöêß^½zxðÇypêéoÇqo=×»u]×é¼:½þâs•Æ {ÖhZ ˺¶m×?ΉHEJ½HE)% ” Ô¨Aª¤æ¡=(5 JEj0ˆJ½ +•RÀ@¥¥ÐÀ‰ŠÌ¿V Þ j êMhä""‚ `]×µ¯+¶lù"à"8:NºKrÒÙH¤@N*¥ÖÆÖO€qf­Þý:©5þ¤ãC|„ˆ1Ä1yéGDÂ,ÓÙÏÂÜG)õ”µ¾ +'U}_¢1FÓZÐH“"TÕŽÏ™(ð{Ìf¬Ýn·í£ yyuÕl^]]Ý\6›Í«Ë››f³yuuÙ¼º¼¼ºººº²OMQϬfûÊn3‹Ùð¯¼× %„¼Ç¹rÁ;qUk×øNã_õsuJ"BÇ#AD•w a–Qö÷„\ ”:C f˜8áÀìGkÔ™ŸéŠÔöš˜€¨Ôí“Ñ¿W‡þ‚/@>Ï?æWŸæ8¥9(¢'MY–åsú…pþË*ûH^òËèiõ¤õ”´i¯S+"š“ø_Vsú˜ë9åyžMçóùˆ¦ÑË3³øÏ«Osý!Ÿ½ßý¬)˦Dù|ô %ó_ž²ä«OÙ_?>‘ΫSBXåD3z“Oç3½Êqª‰‰4AÔkýÀìK Ùêã/SÊó©ÎEšã߉²lN4Ó/åŸV$àSþËÇ'Â,Oˆ0Ÿ£ZåDsŠÆóüc®Ÿ¦ÉOYžç4ŸÎŸ2Ê¡Ê)ÿ)û˜Msn·»>…Oˆšæšrº£~(ç3-ø'Zýò”a6Mò÷˜ç¨fs¢œTºÊÿžÑ|ªçyžçTä󧌲_H`~ú¼pkæcÝh4šs˲l»Ëº~Àx×.¸ˆ¢H ‘EQ¤ªÇ°RƒAâÍ`0xA¤Tx©ÈH­ +!„P‘ŠÌw@EBDQ¡àŠ`P}>ˆ”:ÜôApÎ}ŸùŒu™}}ݪì€Î»Á‹ã¤½DgY– þb‰:ÓucÏ= ŠãXš¾(Àç&fCY°¡ê¼7™9Äa–eÙG用§z^‡¦¤PBÇQ¾“IægÉA…%Æ Ô£&á+«Èôü“„kØÝn·Ûí«g›C›×†Dœ÷ú1û½^‡ýjЧÏyû+°®®ÚmfµX Ú¬¾•²Öä¹G•(JÔø1‘‡¢•IH˜$ å€õ^§Í])Q8ìµ?­lù¤‘ÒÏ<Ç =@Å&‘Î…Dá³Yéu‹Ö•zJÀ‘ÑMó„.Cir(–2Ó¨õTš¡½×K|+cx¨œ;¤„DÆU`¢s'Otýç&þõO™I‰ZKt#Ä)‚DIf{&K/”Ã~ýBÞã=yÁì«3;F€™q…â¥4>…Ò>)³‘Tžà¡ÔS”e2>è²Ê]«o~÷ÑOÂ1ÁÞÕåÕM›1öƒó¤„bàv›sÎ¥„Ð÷ßHÇÆÊ1Œ«ÑbP~å2"k³'­Äd@rú°‡ßeÌm6fóܲ®¯ín·kɘïó€D Bð@D"2á9ø›@p!‚¨Šç‘¢ à‘pˆ@ðHD"xˆêÅÕÿ8˜UE "!DàûŒùc¾ïw»®mwm3ŠmLL¬.cæÜêãeÙT89H©)›š[RKW¢é(%‚LWºÖ¤•²ÊeS‡Ô¤ñÑÜÿñ³xåÌAJÔzª!–’4>!â#⣠#PûOºNðȸËDakM ' ßý)ÙÌfí6k·-«ú-þܧš¾ºç–RõÙQ°Ñ8kX—7ívh3ÎÚ¬×å;c/!æž†Ø ›©QÕ'‡+„ÿå!<Õ]€ ÿœeÿñ³ðܨ~Ð26ÍQ8¯øUl’&äW9€c •ø¢IŠb¦A> +J¦ÏðM`så%¼3¤Œ=)H€8‰R¾Ó1äàœ¦2“RÊܼ¥´gP÷DZ¬kpµÖó¦Õˆ¬z„’qm %e,QJ$ è Îi%s)¥¤çŸÀÃ$„aØCÎû¼GüæªÙD™H@ùVJPJš|,ÍÓ$êjñl.Ÿ¤4÷¦iBÌ]-¥4Cf¨õÜËtuæü²i·Ù]«ZÊcàWv¯× uÈCß7—¥ö¯–( Ñø8c'£<¨§¤O_€îéáv]»k,÷¾i|cY×v¥Jnwëv»>ó™0Æ¿RôýÀ?à&VðYÀƒ ðý®oÄ ‚ ðƒ€~ø¾Ï|ƃ€ëúœ>Θ&¬a~ø]Öív͵ÎõµÕ¬úe××¶kŸÀÇ£ãçùtú” %³i†”# "å´zƒ˜ÌiNDš0§ÕjúË_ž~xÊò<§ŒV´šÏ¼ùüÓœVOs"ÄÑÓÏ?gó'z奄ˆùG9)E +óŒ>"a6¢ï‰“<xš>­~ÎóÑôÃtE9­Æÿ{®DN¥Q–k|„ǹΤ–¾¸Fn3Ö ¯î˜U·B¤‘t’7W=§lšåO4¢,ÿ'4ŸÏóÅÏYv»Ýn·ÙŵÍc Ã{#DÉ*@Ĺž#‘N0ÍWó¿¯V¦†æ´¢Å<÷òù§iö´šašÏþù/ÓùûW·?"æsÌ礀³lô1Í1ÏhED &yî?Mç«yNÓóåùêÇŸþ7ˆœV”çó¥H«Õôé¾0lÌ×§ 3 þc¥¸^ËYÇ«Ô<Ξ ~Ô&ƒ)ÀTnÑHkóQû”Äb)¥ÌdLîA¨ÃâaUSC@7â!—:;,.”*a´bó ýCïýoÛVÛ<¶A¾ AA|ræFI!R^Äï9h’PýX™Tõ&Aˆ±Ñ'ªµQdŒ¨M‡H)ù•e÷îîØ9㼡€Ø•Í8‘sÞ圡Œó}Ÿu»¬Ë\÷ ƒeWé\_ÛßÔê8f€üŸJ‰HD" „¹â¾ˆ@ˆJùÁWJ©ÔSBˆÀxð!ü‡Hˆ‘F D`,*„BÇG ÄÃC „B(ƒ@D‘<³\ @!¨„xxxD „ð…ð@ðJÈœÇ}Æ\Û¶íë–õ»otæò@øn×ïv=ß "þ­àœ~àû~àû¾øöQðMãwÖ¹Ý2XÍsY—ùÜç\¤øB€0?Ôó(•úJññÊBˆ¡""àB=( !"¨ÈˆH(O\À˽Š„|áÕ^#ñ nUm‘ñœ_úˆ+Ñm0tÕG£©{³€· Îy¬eÃv26f¦´ć‡ÑûP-.%V¢ÂöelZíª©ð\3¡U5èd0 Œ¥„¾) …œs~wÇy+d7W j>bZpŒˆQ|ȘJƒÏ¨bv´8‚L•ÖX9Æ’ðP‹õò꺼í3Ëf½Þ]ûa¿6Œ˜}ÃxBÀ¹ÜsÎ9fx>7Ô“%‡ÅãôhñÏëضkÛ–uÑh4¿±Î,ËjÙöµmàº]Öe¬ËXÀ|ÆXÀ|Ÿ¾t}ŸAÀ‚ç8¢z«2t}æû XÐeŒù¬Ë˜!¬ë•ð™ï3ÃüàÌgŒùŒu».ëº]Û¶ÍÍÞjµ,Ë2Õñ³ÖµmÛö }9ÙX¢‰’ÑTÀCzµN4 +Ô$ëÆ€×¦VG#‘* ÊGDJI’–ˆ„3õEZ'1¢ŒµÖš•'<Ö^v„ˆ¨ˆäÁ$âb”‚$€” +ëA ömYͳ3ÓùËA‡{Á9•º­én©~`ÌÙ¡xÖlžY—6³ív›õz½Ê^Ç'˜Ômaâ5 ‘H‰ÈŽ}â$bŠ$^DBêc’製blt¸1G”G{EDDa´;ªå ¯ï#JЄø¿6 $LüjÄ·ƒZ®íHW—î#pòjP»Ò1wLŒŠ4J©«'Üc=fÃsǤ:$J]«îCüöX;ž@(wlÌ‚Ÿûd4b 2N“DJ‰¡ùÅýÊ;ö¢Ý¶mBµ8J0þÂp,6&ã„zÈóÀý¼¸– eŽ:‘¨“Ê À(°st#€8–RBh_Ùí^÷|a¿ìf$qáçœ÷¼«¯—y½åèDJ­cnfÞëYOÀ©*s÷äþ7P{n6Ž€u»]×í2Öe]sW3ÿìÝ.ó«x€yJtÍ#+`ÁAÐõÆü Û ˜oùŒU`ðÄg¬ËÜn×vmÛ­à÷-˲*7ðß8fÇÄQ¢1‘:3’öÏh-Ÿ;ƒ ü(2äã#3KBD­ˆž›T@ÆOɤ„0ùggͳFã²ÁB ¸yâ‰jÈí:7ÑÜ#¼~-eŸ]=ÀÙ™uysc ßëU ¥” ˆuÕµ(„„D"¡È°~4V{SÔ5èµÖf¯Ïà AÄDd£çK§µE”`¬êûÿK€RþF÷"à<>ÌÙÕ4餅±ªå rĈkÇ+ƒ”DÄ 6 ÓÄŒ@-æÄïcwvûædô¬ u@Œ=ì ιX÷á¼€{¬Úô9ÀŽ€X¾ÿîÚmÆ8‡;Î púI"äO u1€iÌà<ñöøòEÀ¶]Û¾n}SõŸ3€n—½ÿ˜ø ün—ù¬ë3Æ*`óýŠ0æ3?èvYŒæ/ÏüSøc×7ïv+°àwU¬õ_À”hDIG@:!ÉÀ3TU½Gˆ)Õ5ÐúFZ“¯rU —ˆ¨/p¡teòïWpvf´þ*¨¦kÈ  öÙåͳ¦uÓ6Àïúø“Dàø›Õ @× @Ç(¥¤—Õ…>ü2¼z€¯´Ç_)¿È"þb/@ÝÕ¯sÇÜU§€Ÿ€a?~‰€DJ™$€g¸y >gå`8˜Ôð¨‰Ú ŧ¿p€?ü‘=Ó‹P͆M¼HÁ°v·{ôášÀ2-éÇP1€£àØç!@ð"ðt™L0`,Xuœ„Ÿ1€ +~ÿyðe¨À»/†¿Êã@_fäƒ NÀ»ÿ +Ý8 y¯wL ð‚ðÏ@ Ÿ@³Ù8³¬šð;Þç=ò{ù§/Àã—@Ö@’#Ð õ¿ÂÀW€qï®ú< ø’ø¿¼`”$1H©Ž@ýEaÀ1È_€È„â— 1 €CxH0ÆØç àà(€¨þ«P3uè]¾ìð_ÀãKð8y„²CÐh4¾içëvíÿ2ð!{€oBóØ7!@•-cÇ9€þ×À¯åbraylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_loading.js b/examples/models/models_loading.js new file mode 100644 index 0000000..5f3a9e6 --- /dev/null +++ b/examples/models/models_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="models/models_loading.data";var REMOTE_PACKAGE_BASE="models_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);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","obj",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="models_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"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);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"])}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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).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/models/models_loading.wasm b/examples/models/models_loading.wasm new file mode 100644 index 0000000..4f07ec8 Binary files /dev/null and b/examples/models/models_loading.wasm differ diff --git a/examples/models/models_loading_gltf.data b/examples/models/models_loading_gltf.data new file mode 100644 index 0000000..4820487 Binary files /dev/null and b/examples/models/models_loading_gltf.data differ diff --git a/examples/models/models_loading_gltf.html b/examples/models/models_loading_gltf.html new file mode 100644 index 0000000..0f4185c --- /dev/null +++ b/examples/models/models_loading_gltf.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_loading_gltf.js b/examples/models/models_loading_gltf.js new file mode 100644 index 0000000..ae1d591 --- /dev/null +++ b/examples/models/models_loading_gltf.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="models/models_loading_gltf.data";var REMOTE_PACKAGE_BASE="models_loading_gltf.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","models",true,true);Module["FS_createPath"]("/resources/models","gltf",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="models_loading_gltf.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"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);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"])}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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).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/models/models_loading_gltf.wasm b/examples/models/models_loading_gltf.wasm new file mode 100644 index 0000000..8a685ec Binary files /dev/null and b/examples/models/models_loading_gltf.wasm differ diff --git a/examples/models/models_loading_vox.data b/examples/models/models_loading_vox.data new file mode 100644 index 0000000..95c378e Binary files /dev/null and b/examples/models/models_loading_vox.data differ diff --git a/examples/models/models_loading_vox.html b/examples/models/models_loading_vox.html new file mode 100644 index 0000000..d852e25 --- /dev/null +++ b/examples/models/models_loading_vox.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_loading_vox.js b/examples/models/models_loading_vox.js new file mode 100644 index 0000000..f65b88a --- /dev/null +++ b/examples/models/models_loading_vox.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="models/models_loading_vox.data";var REMOTE_PACKAGE_BASE="models_loading_vox.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","models",true,true);Module["FS_createPath"]("/resources/models","vox",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="models_loading_vox.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"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);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"])}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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).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/models/models_loading_vox.wasm b/examples/models/models_loading_vox.wasm new file mode 100644 index 0000000..5cdfe36 Binary files /dev/null and b/examples/models/models_loading_vox.wasm differ diff --git a/examples/models/models_mesh_generation.html b/examples/models/models_mesh_generation.html new file mode 100644 index 0000000..4f58545 --- /dev/null +++ b/examples/models/models_mesh_generation.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_mesh_generation.js b/examples/models/models_mesh_generation.js new file mode 100644 index 0000000..fe63e45 --- /dev/null +++ b/examples/models/models_mesh_generation.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="models_mesh_generation.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"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"f":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"d":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"e":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"c":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).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/models/models_mesh_generation.wasm b/examples/models/models_mesh_generation.wasm new file mode 100644 index 0000000..13d7d94 Binary files /dev/null and b/examples/models/models_mesh_generation.wasm differ diff --git a/examples/models/models_mesh_picking.data b/examples/models/models_mesh_picking.data new file mode 100644 index 0000000..25e3636 --- /dev/null +++ b/examples/models/models_mesh_picking.data @@ -0,0 +1,3938 @@ +# (c) 2018 Medieval Assets Pack by Alberto Cano +# Licensed as Creative Commons Attribution-NonCommercial 4.0 + +# +# object turret +# + +v 0.0000 13.3010 3.5973 +v 0.0000 12.1596 2.3386 +v 2.5639 12.1596 2.3386 +v 3.4913 13.3010 3.5973 +v 3.5203 14.0462 3.0738 +v 3.9444 14.0450 3.1421 +v 3.9444 14.0369 -0.0000 +v 3.4351 14.0369 -0.0000 +v 3.4352 14.0462 2.9719 +v 3.3643 13.3303 2.9127 +v 0.0000 13.3303 2.9127 +v 0.0000 13.3010 2.9740 +v 3.4352 13.3010 2.9740 +v 0.0000 14.0462 2.9719 +v 3.9444 13.2918 -0.0000 +v 3.9444 13.2998 3.1441 +v 3.4913 14.0462 3.5952 +v 3.3643 13.3303 -0.0000 +v 0.0000 13.3303 -0.0000 +v 0.0000 14.0462 3.5952 +v 2.5639 12.1504 -0.0000 +v 3.4352 13.2918 -0.0000 +v 3.5237 14.9316 3.0740 +v 3.9478 14.9305 3.1422 +v 3.4947 14.9316 3.5953 +v 3.5271 16.4764 1.4274 +v 3.9512 16.4752 1.4274 +v 3.9512 15.9080 2.0774 +v 3.5271 15.9092 2.0092 +v 1.8327 16.4815 3.5953 +v 1.8617 16.4815 3.0742 +v 2.5117 15.9086 3.0742 +v 2.4725 15.9086 3.5953 +v 3.9512 16.4757 3.1424 +v 3.4981 16.4769 3.5955 +v 3.5271 16.4769 3.0742 +v 2.5639 12.1596 -2.3386 +v 0.0000 12.1596 -2.3386 +v 0.0000 13.3010 -3.5973 +v 3.4913 13.3010 -3.5973 +v 3.5203 14.0462 -3.0738 +v 3.4351 14.0462 -2.9720 +v 3.9444 14.0450 -3.1421 +v 0.0000 13.3010 -2.9740 +v 0.0000 13.3303 -2.9127 +v 3.3643 13.3303 -2.9127 +v 3.4352 13.3010 -2.9740 +v 0.0000 14.0462 -2.9719 +v 3.9444 13.2998 -3.1441 +v 3.4913 14.0462 -3.5952 +v 0.0000 14.0462 -3.5952 +v 3.9478 14.9305 -3.1422 +v 3.5237 14.9316 -3.0740 +v 3.4947 14.9316 -3.5953 +v 3.9512 15.9080 -2.0774 +v 3.9512 16.4752 -1.4274 +v 3.5271 16.4764 -1.4274 +v 3.5271 15.9092 -2.0092 +v 2.5117 15.9086 -3.0742 +v 1.8617 16.4815 -3.0742 +v 1.8327 16.4815 -3.5954 +v 2.4725 15.9086 -3.5953 +v 3.4981 16.4769 -3.5955 +v 3.9512 16.4757 -3.1424 +v 3.5271 16.4769 -3.0742 +v -2.5639 12.1596 2.3386 +v -3.4913 13.3010 3.5973 +v -3.5203 14.0462 3.0738 +v -3.4351 14.0462 2.9720 +v -3.4351 14.0369 0.0000 +v -3.9444 14.0369 0.0000 +v -3.9444 14.0450 3.1421 +v -3.3643 13.3303 2.9127 +v -3.4351 13.3010 2.9740 +v -3.9444 13.2918 0.0000 +v -3.9444 13.2998 3.1441 +v -3.4913 14.0462 3.5952 +v -3.3643 13.3303 0.0000 +v -2.5639 12.1504 0.0000 +v -3.4351 13.2918 0.0000 +v -3.9478 14.9305 3.1422 +v -3.5237 14.9316 3.0740 +v -3.4947 14.9316 3.5954 +v -3.9512 15.9080 2.0774 +v -3.9512 16.4752 1.4274 +v -3.5271 16.4764 1.4274 +v -3.5271 15.9092 2.0092 +v -2.5117 15.9086 3.0742 +v -1.8617 16.4815 3.0742 +v -1.8327 16.4815 3.5954 +v -2.4725 15.9086 3.5953 +v -3.4981 16.4769 3.5955 +v -3.9512 16.4757 3.1424 +v -3.5271 16.4769 3.0742 +v -2.5639 12.1596 -2.3386 +v -3.4913 13.3010 -3.5972 +v -3.5203 14.0462 -3.0738 +v -3.9444 14.0450 -3.1421 +v -3.4351 14.0462 -2.9719 +v -3.3643 13.3303 -2.9127 +v -3.4351 13.3010 -2.9740 +v -3.9444 13.2998 -3.1441 +v -3.4913 14.0462 -3.5952 +v -3.5237 14.9316 -3.0740 +v -3.9478 14.9305 -3.1422 +v -3.4947 14.9316 -3.5953 +v -3.5271 16.4764 -1.4274 +v -3.9512 16.4752 -1.4274 +v -3.9512 15.9080 -2.0774 +v -3.5271 15.9092 -2.0092 +v -1.8327 16.4815 -3.5953 +v -1.8617 16.4815 -3.0742 +v -2.5117 15.9086 -3.0742 +v -2.4725 15.9086 -3.5953 +v -3.9512 16.4757 -3.1424 +v -3.4981 16.4769 -3.5955 +v -3.5271 16.4769 -3.0742 +v 0.1550 14.0277 -3.1544 +v 0.1550 14.0277 -3.5335 +v 0.1550 16.9018 -3.5335 +v 0.1550 16.9018 -3.1544 +v -0.5341 14.0277 -3.5335 +v -0.5341 16.9018 -3.5335 +v -0.5341 14.0277 -3.1544 +v -0.5341 16.9018 -3.1544 +v -3.5170 14.0277 -0.3456 +v -3.8961 14.0277 -0.3456 +v -3.8961 16.9018 -0.3456 +v -3.5170 16.9018 -0.3456 +v -3.8961 14.0277 0.3435 +v -3.8961 16.9018 0.3435 +v -3.5170 14.0277 0.3435 +v -3.5170 16.9018 0.3435 +v -0.3446 14.0277 3.1662 +v -0.3446 14.0277 3.5453 +v -0.3446 16.9018 3.5453 +v -0.3446 16.9018 3.1662 +v 0.3445 14.0277 3.5453 +v 0.3445 16.9018 3.5453 +v 0.3445 14.0277 3.1662 +v 0.3445 16.9018 3.1662 +v 3.5160 14.0277 0.3435 +v 3.8951 14.0277 0.3435 +v 3.8951 16.9018 0.3435 +v 3.5160 16.9018 0.3435 +v 3.8951 14.0277 -0.3456 +v 3.8951 16.9018 -0.3456 +v 3.5160 14.0277 -0.3456 +v 3.5160 16.9018 -0.3456 +v 0.0000 8.6187 2.3766 +v 0.4715 8.6467 2.3766 +v 0.4598 9.7167 2.3896 +v -0.0117 10.0591 2.3896 +v 0.8403 8.5183 2.4160 +v 0.8403 8.5183 2.3077 +v 0.8403 8.6724 2.3077 +v 0.8403 8.6724 2.4160 +v 0.7068 9.8138 2.4290 +v 0.7068 9.8138 2.3207 +v -0.0117 10.3117 2.3207 +v -0.0117 10.3117 2.4290 +v -0.8403 8.6724 2.4160 +v -0.8403 8.6724 2.3077 +v -0.8403 8.5183 2.3077 +v -0.8403 8.5183 2.4160 +v -0.7186 8.5183 2.4160 +v -0.7186 8.5183 2.3077 +v -0.0000 8.4646 2.3077 +v -0.0000 8.4646 2.4160 +v 0.7185 8.5183 2.5347 +v 0.7185 8.6724 2.5347 +v 0.4715 8.6467 2.5347 +v 0.4598 9.7167 2.4290 +v -0.0117 10.0591 2.4290 +v -0.7186 8.6724 2.5347 +v -0.7186 8.5183 2.5347 +v -0.4715 8.6567 2.5347 +v -0.0000 8.4646 2.5347 +v -0.0000 8.6187 2.5347 +v -0.4833 9.7167 2.3896 +v -0.4715 8.6567 2.3766 +v -0.7303 9.8138 2.3207 +v -0.7302 9.8138 2.4290 +v 0.7185 8.5183 2.3077 +v 0.7185 8.5183 2.4160 +v -0.4832 9.7167 2.4290 +v 0.4715 8.6467 2.4160 +v -0.4716 8.6567 2.4160 +v -0.0000 8.6187 2.4160 +v -0.7186 8.6724 2.4160 +v -0.7186 8.6724 2.3077 +v 0.7185 8.6724 2.4160 +v 0.7185 8.6724 2.3077 +v 0.8403 8.5183 2.5347 +v 0.8403 8.6724 2.5347 +v -0.8403 8.6724 2.5347 +v -0.8403 8.5183 2.5347 +v 2.6080 8.6187 -0.0010 +v 2.6080 8.6467 -0.4725 +v 2.6210 9.7167 -0.4608 +v 2.6210 10.0591 0.0107 +v 2.6474 8.5183 -0.8413 +v 2.5392 8.5183 -0.8413 +v 2.5392 8.6724 -0.8413 +v 2.6474 8.6724 -0.8413 +v 2.6604 9.8138 -0.7079 +v 2.5522 9.8138 -0.7078 +v 2.5522 10.3117 0.0107 +v 2.6604 10.3117 0.0107 +v 2.6474 8.6724 0.8393 +v 2.5392 8.6724 0.8393 +v 2.5392 8.5183 0.8393 +v 2.6474 8.5183 0.8393 +v 2.6474 8.5183 0.7175 +v 2.5392 8.5183 0.7175 +v 2.5392 8.4646 -0.0010 +v 2.6474 8.4646 -0.0010 +v 2.7661 8.5183 -0.7195 +v 2.7661 8.6724 -0.7195 +v 2.7661 8.6467 -0.4725 +v 2.6604 9.7167 -0.4609 +v 2.6604 10.0591 0.0107 +v 2.7661 8.6724 0.7175 +v 2.7661 8.5183 0.7175 +v 2.7661 8.6567 0.4705 +v 2.7661 8.4646 -0.0010 +v 2.7661 8.6187 -0.0010 +v 2.6210 9.7167 0.4822 +v 2.6080 8.6567 0.4705 +v 2.5522 9.8138 0.7292 +v 2.6604 9.8138 0.7292 +v 2.5392 8.5183 -0.7196 +v 2.6474 8.5183 -0.7195 +v 2.6604 9.7167 0.4822 +v 2.6474 8.6467 -0.4725 +v 2.6474 8.6567 0.4705 +v 2.6474 8.6187 -0.0010 +v 2.6474 8.6724 0.7175 +v 2.5392 8.6724 0.7175 +v 2.6474 8.6724 -0.7195 +v 2.5392 8.6724 -0.7196 +v 2.7661 8.5183 -0.8413 +v 2.7661 8.6724 -0.8413 +v 2.7661 8.6724 0.8393 +v 2.7661 8.5183 0.8393 +v -2.6159 8.6187 -0.0010 +v -2.6159 8.6467 0.4705 +v -2.6289 9.7167 0.4588 +v -2.6289 10.0591 -0.0127 +v -2.6553 8.5183 0.8393 +v -2.5470 8.5183 0.8393 +v -2.5470 8.6724 0.8393 +v -2.6553 8.6724 0.8393 +v -2.6683 9.8138 0.7058 +v -2.5600 9.8138 0.7058 +v -2.5600 10.3117 -0.0127 +v -2.6683 10.3117 -0.0127 +v -2.6553 8.6724 -0.8413 +v -2.5470 8.6724 -0.8413 +v -2.5470 8.5183 -0.8413 +v -2.6553 8.5183 -0.8413 +v -2.6553 8.5183 -0.7195 +v -2.5470 8.5183 -0.7195 +v -2.5470 8.4646 -0.0010 +v -2.6553 8.4646 -0.0010 +v -2.7740 8.5183 0.7175 +v -2.7740 8.6724 0.7175 +v -2.7740 8.6467 0.4705 +v -2.6683 9.7167 0.4589 +v -2.6683 10.0591 -0.0127 +v -2.7740 8.6724 -0.7195 +v -2.7740 8.5183 -0.7195 +v -2.7740 8.6567 -0.4725 +v -2.7740 8.4646 -0.0010 +v -2.7740 8.6187 -0.0010 +v -2.6289 9.7167 -0.4843 +v -2.6159 8.6567 -0.4725 +v -2.5600 9.8138 -0.7312 +v -2.6683 9.8138 -0.7312 +v -2.5470 8.5183 0.7175 +v -2.6553 8.5183 0.7175 +v -2.6683 9.7167 -0.4842 +v -2.6553 8.6467 0.4705 +v -2.6553 8.6567 -0.4725 +v -2.6553 8.6187 -0.0010 +v -2.6553 8.6724 -0.7195 +v -2.5470 8.6724 -0.7195 +v -2.6553 8.6724 0.7175 +v -2.5470 8.6724 0.7175 +v -2.7740 8.5183 0.8393 +v -2.7740 8.6724 0.8393 +v -2.7740 8.6724 -0.8413 +v -2.7740 8.5183 -0.8413 +v -2.5639 0.0000 -2.3386 +v -2.5639 0.0000 2.3365 +v -2.5639 12.1411 2.3365 +v 2.5639 -0.0000 2.3365 +v 2.5639 12.1411 2.3365 +v 2.5639 -0.0000 -2.3386 +v -3.3222 12.8680 -0.0010 +v -3.3222 12.8680 -2.9994 +v -3.3222 11.9932 -2.9994 +v -3.3222 11.8321 -0.0010 +v -0.0000 12.8680 2.9974 +v -3.3222 12.8680 2.9974 +v -3.3222 11.9932 2.9974 +v -0.0000 11.8320 2.9974 +v 3.3221 12.8680 -0.0010 +v 3.3221 12.8680 2.9974 +v 3.3221 11.9932 2.9974 +v 3.3221 11.8320 -0.0010 +v -0.0000 12.8680 -2.9994 +v 3.3221 12.8680 -2.9994 +v 3.3221 11.9932 -2.9994 +v -0.0000 11.8320 -2.9994 +v -2.5639 11.9932 -2.3386 +v -0.0000 11.8320 -2.3386 +v 2.5639 11.9932 -2.3386 +v 2.5639 11.8321 -0.0010 +v 2.5639 11.9932 2.3365 +v -0.0000 11.8321 2.3365 +v -2.5639 11.9932 2.3365 +v -2.5639 11.8321 -0.0010 +v -2.5639 12.8680 -2.3386 +v -2.5639 12.8680 -0.0010 +v -2.5639 12.8680 2.3365 +v -0.0000 12.8680 2.3365 +v 2.5639 12.8680 2.3365 +v 2.5639 12.8680 -0.0010 +v 2.5639 12.8680 -2.3386 +v -0.0000 12.8680 -2.3386 +v -3.3222 6.6605 -0.0010 +v -3.3222 6.6605 -2.9994 +v -3.3222 5.7858 -2.9994 +v -3.3222 5.6246 -0.0010 +v -0.0000 6.6605 2.9974 +v -3.3222 6.6605 2.9974 +v -3.3222 5.7858 2.9974 +v -0.0000 5.6246 2.9974 +v 3.3221 6.6605 -0.0010 +v 3.3221 6.6605 2.9974 +v 3.3221 5.7858 2.9974 +v 3.3221 5.6246 -0.0010 +v -0.0000 6.6605 -2.9994 +v 3.3221 6.6605 -2.9994 +v 3.3221 5.7858 -2.9994 +v -0.0000 5.6246 -2.9994 +v -2.5639 5.7858 -2.3386 +v -0.0000 5.6246 -2.3386 +v 2.5639 5.7858 -2.3386 +v 2.5639 5.6246 -0.0010 +v 2.5639 5.7858 2.3365 +v -0.0000 5.6246 2.3365 +v -2.5639 5.7858 2.3365 +v -2.5639 5.6246 -0.0010 +v -2.5639 6.6605 -2.3386 +v -2.5639 6.6605 -0.0010 +v -2.5639 6.6605 2.3365 +v -0.0000 6.6605 2.3365 +v 2.5639 6.6605 2.3365 +v 2.5639 6.6605 -0.0010 +v 2.5639 6.6605 -2.3386 +v -0.0000 6.6605 -2.3386 +v -2.6103 9.3882 2.4561 +v -2.6767 9.3882 1.9558 +v -2.9138 6.4859 1.8341 +v -2.9138 6.4859 2.7406 +v -2.9138 12.2904 1.8341 +v -2.9138 12.2904 2.7406 +v -1.9967 6.4859 2.7406 +v -2.0923 9.3882 2.4561 +v -1.9967 11.6821 2.7406 +v -1.9967 6.4859 1.8341 +v -2.1587 9.3882 1.9558 +v -1.9967 11.6821 1.8341 +v -2.6103 9.4353 -2.4582 +v -2.9138 6.5331 -2.7426 +v -2.9138 6.5331 -1.8362 +v -2.6767 9.4353 -1.9578 +v -2.9138 12.3375 -1.8362 +v -2.9138 12.3375 -2.7426 +v -2.0923 9.4353 -2.4581 +v -1.9967 6.5331 -2.7426 +v -1.9967 11.7293 -2.7426 +v -2.1587 9.4353 -1.9578 +v -1.9967 6.5331 -1.8362 +v -1.9967 11.7293 -1.8362 +v -2.6103 2.9022 -2.4582 +v -2.9138 0.0000 -2.7426 +v -2.9138 0.0000 -1.8362 +v -2.6767 2.9022 -1.9578 +v -2.9138 5.8044 -1.8362 +v -2.9138 5.8044 -2.7426 +v -2.0923 2.9022 -2.4581 +v -1.9967 0.0000 -2.7426 +v -1.9967 6.4231 -2.7426 +v -2.1587 2.9022 -1.9578 +v -1.9967 0.0000 -1.8362 +v -1.9967 6.4231 -1.8362 +v 2.6103 9.4517 2.4561 +v 2.9138 6.5495 2.7406 +v 2.9138 6.5495 1.8341 +v 2.6767 9.4517 1.9558 +v 2.9138 12.3539 1.8341 +v 2.9138 12.3539 2.7406 +v 2.0923 9.4517 2.4561 +v 1.9967 6.5495 2.7406 +v 1.9967 11.7456 2.7406 +v 2.1587 9.4517 1.9558 +v 1.9967 6.5495 1.8341 +v 1.9967 11.7456 1.8341 +v 2.6103 2.9022 -2.4581 +v 2.6767 2.9022 -1.9578 +v 2.9138 -0.0000 -1.8362 +v 2.9138 -0.0000 -2.7426 +v 2.9138 5.8044 -1.8362 +v 2.9138 5.8044 -2.7426 +v 1.9967 -0.0000 -2.7426 +v 2.0923 2.9022 -2.4581 +v 1.9967 6.4231 -2.7426 +v 1.9967 -0.0000 -1.8362 +v 2.1587 2.9022 -1.9578 +v 1.9967 6.4231 -1.8362 +v 2.6103 9.4353 -2.4582 +v 2.6767 9.4353 -1.9578 +v 2.9138 6.5331 -1.8362 +v 2.9138 6.5331 -2.7427 +v 2.9138 12.3375 -1.8362 +v 2.9138 12.3375 -2.7427 +v 1.9967 6.5331 -2.7427 +v 2.0923 9.4353 -2.4581 +v 1.9967 11.7293 -2.7427 +v 1.9967 6.5331 -1.8362 +v 2.1587 9.4353 -1.9578 +v 1.9967 11.7293 -1.8362 +v 2.6103 2.9022 2.4561 +v 2.9138 -0.0000 2.7406 +v 2.9138 -0.0000 1.8341 +v 2.6767 2.9022 1.9558 +v 2.9138 5.8044 1.8341 +v 2.9138 5.8044 2.7406 +v 2.0923 2.9022 2.4561 +v 1.9967 -0.0000 2.7406 +v 1.9967 6.4231 2.7406 +v 2.1587 2.9022 1.9558 +v 1.9967 -0.0000 1.8341 +v 1.9967 6.4231 1.8341 +v -2.6103 2.9022 2.4561 +v -2.6767 2.9022 1.9558 +v -2.9138 0.0000 1.8341 +v -2.9138 0.0000 2.7406 +v -2.9138 5.8044 1.8341 +v -2.9138 5.8044 2.7406 +v -1.9967 0.0000 2.7406 +v -2.0923 2.9022 2.4561 +v -1.9967 6.4231 2.7406 +v -1.9967 0.0000 1.8341 +v -2.1587 2.9022 1.9558 +v -1.9967 6.4231 1.8341 +v -1.5453 5.6703 -3.5469 +v -1.5453 7.5835 -3.4309 +v -0.7727 7.5835 -3.4309 +v -0.7727 4.7854 -3.5469 +v -1.5453 9.4968 -3.2987 +v -0.7727 9.4968 -3.2987 +v -1.5453 11.4101 -3.3804 +v -0.7727 11.4101 -3.3804 +v -1.5453 13.3234 -3.5469 +v -0.7727 13.3234 -3.5469 +v -0.0000 7.5835 -3.4309 +v -0.0000 4.2830 -3.5469 +v -0.0000 9.4968 -3.2987 +v -0.0000 11.4101 -3.3804 +v -0.0000 13.3234 -3.5469 +v 0.7726 7.5835 -3.4309 +v 0.7726 4.7854 -3.5469 +v 0.7726 9.4968 -3.2987 +v 0.7726 11.4101 -3.3804 +v 0.7726 13.3234 -3.5469 +v 1.5453 7.5835 -3.4309 +v 1.5453 5.6702 -3.5469 +v 1.5453 9.4968 -3.2987 +v 1.5453 11.4101 -3.3804 +v 1.5453 13.3234 -3.5469 +v 0.0000 23.5750 -0.0000 +v -4.1897 16.4768 -3.9339 +v -4.1897 16.4768 3.9339 +v 4.1897 16.4768 3.9339 +v 4.1897 16.4768 -3.9339 +v -1.2971 3.7738 -2.1572 +v -1.2971 3.7738 -2.6666 +v -1.7173 3.6544 -2.6666 +v -1.7173 3.6544 -2.1572 +v -1.2971 -0.0000 -2.6666 +v -1.2971 3.3171 -2.6666 +v -1.2971 3.3171 -2.4156 +v -1.2971 -0.0000 -2.4156 +v -1.7173 -0.0000 -2.6666 +v -1.7173 3.3171 -2.6666 +v -1.7173 -0.0000 -2.1572 +v -1.7173 3.3171 -2.1572 +v 1.2970 3.7738 -2.6666 +v 1.2970 3.7738 -2.1572 +v 1.7173 3.6544 -2.1572 +v 1.7173 3.6544 -2.6666 +v 1.2970 -0.0000 -2.4156 +v 1.2970 3.3171 -2.4156 +v 1.2970 3.3171 -2.6666 +v 1.2970 -0.0000 -2.6666 +v 1.7173 -0.0000 -2.6666 +v 1.7173 3.3171 -2.6666 +v 1.7173 3.3171 -2.1572 +v 1.7173 -0.0000 -2.1572 +v -0.0000 4.3176 -2.6666 +v -0.0000 4.3176 -2.1572 +v -0.0000 3.7437 -2.6666 +v -0.0000 3.7437 -2.4156 +v -0.0000 -0.0000 -2.4156 +# 518 vertices + +vn 0.0000 -0.7408 0.6718 +vn 0.0016 1.0000 -0.0028 +vn -0.0000 0.9024 0.4309 +vn 0.0000 -0.0028 -1.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.4189 -0.8046 0.4210 +vn 0.7071 0.0020 0.7071 +vn -0.0000 1.0000 -0.0000 +vn 0.0000 0.0028 1.0000 +vn 0.6366 -0.7712 0.0024 +vn 0.4322 0.9018 -0.0014 +vn -1.0000 -0.0000 0.0000 +vn 0.1589 -0.0004 -0.9873 +vn -0.9985 0.0039 -0.0555 +vn 0.7071 -0.0029 0.7071 +vn 0.0524 -0.7346 -0.6765 +vn -0.6635 -0.7469 -0.0434 +vn 0.7071 -0.0016 0.7071 +vn -1.0000 0.0014 -0.0007 +vn 1.0000 -0.0014 0.0007 +vn 0.1062 -0.7327 -0.6723 +vn -0.0001 -0.0001 1.0000 +vn -0.0000 0.0001 -1.0000 +vn -0.6920 -0.7204 -0.0452 +vn 0.0000 -0.7408 -0.6718 +vn 0.0016 1.0000 0.0028 +vn -0.0000 0.9024 -0.4309 +vn 0.0000 -0.0028 1.0000 +vn 0.4189 -0.8046 -0.4210 +vn 0.7071 0.0020 -0.7071 +vn -0.0000 1.0000 0.0000 +vn -0.0000 0.0028 -1.0000 +vn 0.6366 -0.7712 -0.0024 +vn 0.4322 0.9018 0.0014 +vn 0.1589 -0.0004 0.9873 +vn -0.9985 0.0039 0.0555 +vn 0.7071 -0.0029 -0.7071 +vn 0.0524 -0.7346 0.6765 +vn -0.6635 -0.7469 0.0434 +vn 0.7071 -0.0016 -0.7071 +vn -1.0000 0.0014 0.0007 +vn 1.0000 -0.0014 -0.0007 +vn 0.1062 -0.7327 0.6723 +vn -0.0001 -0.0001 -1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.6920 -0.7204 0.0452 +vn -0.0000 -0.7408 0.6718 +vn -0.0016 1.0000 -0.0028 +vn 0.0000 0.9024 0.4309 +vn -0.0000 -0.0028 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4189 -0.8046 0.4210 +vn -0.7071 0.0020 0.7071 +vn 0.0000 1.0000 -0.0000 +vn -0.6366 -0.7712 0.0024 +vn -0.4322 0.9018 -0.0014 +vn -0.4321 0.9018 -0.0014 +vn 1.0000 -0.0000 -0.0000 +vn -0.1589 -0.0004 -0.9873 +vn 0.9985 0.0039 -0.0555 +vn -0.7071 -0.0029 0.7071 +vn -0.0524 -0.7346 -0.6765 +vn 0.6635 -0.7469 -0.0434 +vn -0.7071 -0.0016 0.7071 +vn 1.0000 0.0014 -0.0007 +vn -1.0000 -0.0014 0.0007 +vn -0.1062 -0.7327 -0.6723 +vn 0.0001 -0.0001 1.0000 +vn 0.0000 0.0001 -1.0000 +vn 0.6920 -0.7204 -0.0452 +vn -0.0000 -0.7408 -0.6718 +vn -0.0016 1.0000 0.0028 +vn 0.0000 0.9024 -0.4309 +vn -0.0000 -0.0028 1.0000 +vn -0.4189 -0.8046 -0.4210 +vn -0.7071 0.0020 -0.7071 +vn 0.0000 1.0000 0.0000 +vn -0.6366 -0.7712 -0.0024 +vn -0.4321 0.9018 0.0014 +vn -0.4322 0.9018 0.0014 +vn -0.1589 -0.0004 0.9873 +vn 0.9985 0.0039 0.0555 +vn -0.7071 -0.0029 -0.7071 +vn -0.0524 -0.7346 0.6765 +vn 0.6635 -0.7469 0.0434 +vn -0.7071 -0.0016 -0.7071 +vn 1.0000 0.0014 0.0007 +vn -1.0000 -0.0014 -0.0007 +vn -0.1062 -0.7327 0.6723 +vn 0.0001 -0.0001 -1.0000 +vn 0.0000 0.0001 1.0000 +vn 0.6920 -0.7204 0.0452 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0035 -0.0104 0.9999 +vn 1.0000 -0.0000 -0.0002 +vn 0.5696 0.8219 -0.0001 +vn -0.0745 -0.9972 0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0033 -0.0104 0.9999 +vn -0.5696 0.8219 0.0001 +vn 0.0745 -0.9972 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.9999 -0.0109 0.0008 +vn -0.5875 -0.8092 0.0009 +vn 0.5875 -0.8092 -0.0008 +vn 0.9999 0.0111 -0.0004 +vn 0.0803 0.9968 0.0001 +vn -0.0593 0.9982 -0.0000 +vn -0.0027 -0.0118 0.9999 +vn -0.9999 -0.0102 0.0001 +vn 0.9999 0.0103 -0.0002 +vn 0.0029 -0.0117 0.9999 +vn 1.0000 -0.0000 0.0001 +vn -0.1034 0.9946 0.0000 +vn -0.0593 0.9982 0.0000 +vn 0.0803 0.9968 -0.0000 +vn 0.0634 0.9980 -0.0000 +vn -1.0000 0.0000 0.0001 +vn -0.0000 -1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.0001 0.0000 1.0000 +vn 0.9999 -0.0104 0.0035 +vn -0.0001 0.0000 -1.0000 +vn -0.0001 0.8219 -0.5696 +vn -0.0000 -0.9972 0.0745 +vn 1.0000 -0.0000 0.0000 +vn 0.9999 -0.0104 -0.0034 +vn 0.0001 0.8219 0.5696 +vn 0.0000 -0.9972 -0.0745 +vn 0.0008 -0.0109 0.9999 +vn 0.0008 -0.8092 0.5875 +vn -0.0008 -0.8092 -0.5875 +vn -0.0004 0.0111 -0.9999 +vn 0.0000 0.9968 -0.0803 +vn -0.0000 0.9982 0.0593 +vn 0.9999 -0.0118 0.0027 +vn 0.0001 -0.0102 0.9999 +vn -0.0002 0.0103 -0.9999 +vn 0.9999 -0.0117 -0.0029 +vn 0.0001 -0.0000 -1.0000 +vn 0.0000 0.9946 0.1034 +vn 0.0000 0.9982 0.0593 +vn 0.0000 0.9968 -0.0804 +vn 0.0000 0.9980 -0.0634 +vn 0.0001 -0.0000 1.0000 +vn -0.0000 -0.9972 -0.0745 +vn -0.0000 -1.0000 -0.0000 +vn -0.9999 -0.0104 -0.0035 +vn 0.0002 -0.0000 1.0000 +vn -1.0000 0.0000 -0.0000 +vn -0.9999 -0.0104 0.0033 +vn -0.0008 -0.0109 -0.9999 +vn -0.0009 -0.8092 -0.5875 +vn 0.0007 -0.8092 0.5875 +vn 0.0004 0.0111 0.9999 +vn -0.0001 0.9968 0.0803 +vn 0.0000 0.9982 -0.0593 +vn -0.9999 -0.0118 -0.0027 +vn -0.0001 -0.0102 -0.9999 +vn 0.0002 0.0103 0.9999 +vn -0.9999 -0.0117 0.0029 +vn -0.0001 -0.0000 1.0000 +vn 0.0000 0.9946 -0.1034 +vn 0.0000 0.9968 0.0803 +vn 0.0000 0.9980 0.0634 +vn -1.0000 0.0000 -0.0001 +vn 0.0000 -0.0000 -1.0000 +vn -0.0547 -0.9980 0.0314 +vn -0.0263 -0.9978 -0.0603 +vn 0.0547 -0.9980 -0.0314 +vn 0.0263 -0.9978 0.0603 +vn 0.0547 -0.9980 0.0314 +vn -0.0263 -0.9978 0.0603 +vn -0.0547 -0.9980 -0.0314 +vn 0.0263 -0.9978 -0.0603 +vn -0.9945 0.0939 0.0469 +vn -0.9945 -0.0939 0.0469 +vn 0.0000 0.0976 0.9952 +vn -0.0469 -0.1106 0.9928 +vn 0.9980 0.0430 -0.0471 +vn 0.9974 -0.0543 -0.0471 +vn -0.0000 0.0419 -0.9991 +vn -0.0199 -0.0471 -0.9987 +vn -0.9945 0.0939 -0.0469 +vn -0.9945 -0.0939 -0.0469 +vn 0.0000 0.0976 -0.9952 +vn -0.0469 -0.1106 -0.9928 +vn 0.9980 0.0430 0.0471 +vn 0.9974 -0.0543 0.0471 +vn 0.0000 0.0419 0.9991 +vn -0.0199 -0.0471 0.9987 +vn 0.0375 -0.0870 -0.9955 +vn 0.9983 -0.0354 0.0471 +vn 0.0162 -0.0377 0.9992 +vn 0.9945 0.0939 0.0469 +vn 0.9945 -0.0939 0.0469 +vn -0.0000 0.0976 0.9952 +vn 0.0469 -0.1106 0.9928 +vn -0.9980 0.0430 -0.0471 +vn -0.9974 -0.0543 -0.0471 +vn 0.0199 -0.0471 -0.9987 +vn 0.9945 0.0939 -0.0469 +vn 0.9945 -0.0939 -0.0469 +vn -0.0000 0.0976 -0.9952 +vn -0.0375 -0.0870 -0.9955 +vn -0.9980 0.0430 0.0471 +vn -0.9983 -0.0354 0.0471 +vn -0.0162 -0.0377 0.9992 +vn 0.0469 -0.1106 -0.9928 +vn -0.9974 -0.0543 0.0471 +vn 0.0199 -0.0471 0.9987 +vn -0.0375 -0.0870 0.9955 +vn -0.9983 -0.0354 -0.0471 +vn -0.0162 -0.0377 -0.9992 +vn 0.0375 -0.0870 0.9955 +vn 0.9983 -0.0354 -0.0471 +vn 0.0162 -0.0377 -0.9992 +vn 0.0281 0.0492 -0.9984 +vn 0.0141 0.0591 -0.9982 +vn 0.0101 0.0563 -0.9984 +vn 0.0163 0.0408 -0.9990 +vn -0.0000 0.0132 -0.9999 +vn -0.0000 -0.0647 -0.9979 +vn -0.0000 -0.0867 -0.9962 +vn -0.0000 0.0535 -0.9986 +vn -0.0000 0.0380 -0.9993 +vn -0.0101 0.0563 -0.9984 +vn -0.0163 0.0408 -0.9990 +vn -0.0141 0.0591 -0.9982 +vn -0.0281 0.0492 -0.9984 +vn -0.8612 0.5083 0.0000 +vn 0.0000 0.4847 0.8747 +vn 0.8612 0.5083 -0.0000 +vn -0.0000 0.4847 -0.8747 +vn -0.2731 0.9620 0.0000 +vn 0.2731 0.9620 0.0000 +vn 0.3867 0.9222 0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.3124 -0.9499 -0.0000 +vn -0.3867 0.9222 0.0000 +vn -0.3124 -0.9499 0.0000 +# 244 vertex normals + +vt 0.4672 0.7287 0.0000 +vt 0.4672 0.6812 0.0000 +vt 0.5381 0.6812 0.0000 +vt 0.5637 0.7287 0.0000 +vt 0.4511 0.6743 0.0000 +vt 0.4498 0.6669 0.0000 +vt 0.5101 0.6669 0.0000 +vt 0.5101 0.6758 0.0000 +vt 0.4531 0.6758 0.0000 +vt 0.6996 0.8663 0.0000 +vt 0.6083 0.8663 0.0000 +vt 0.6083 0.8881 0.0000 +vt 0.6996 0.8881 0.0000 +vt 0.6083 0.9203 0.0000 +vt 0.6996 0.9203 0.0000 +vt 0.6348 0.6259 0.0000 +vt 0.6348 0.6557 0.0000 +vt 0.5033 0.6557 0.0000 +vt 0.5033 0.6259 0.0000 +vt 0.4860 0.7374 0.0000 +vt 0.4587 0.8045 0.0000 +vt 0.4433 0.8046 0.0000 +vt 0.7663 0.6259 0.0000 +vt 0.7905 0.6258 0.0000 +vt 0.7905 0.6557 0.0000 +vt 0.7664 0.6557 0.0000 +vt 0.5578 0.5104 0.0000 +vt 0.6319 0.5104 0.0000 +vt 0.6319 0.6024 0.0000 +vt 0.5578 0.6024 0.0000 +vt 0.4411 0.6748 0.0000 +vt 0.4531 0.7357 0.0000 +vt 0.4411 0.7357 0.0000 +vt 0.5654 0.8042 0.0000 +vt 0.5654 0.7371 0.0000 +vt 0.5169 0.8663 0.0000 +vt 0.5169 0.8881 0.0000 +vt 0.5169 0.9203 0.0000 +vt 0.7344 0.2540 0.0000 +vt 0.7344 0.2807 0.0000 +vt 0.7215 0.2807 0.0000 +vt 0.7215 0.2540 0.0000 +vt 0.7532 0.2524 0.0000 +vt 0.7532 0.2800 0.0000 +vt 0.7370 0.2800 0.0000 +vt 0.7370 0.2524 0.0000 +vt 0.8440 0.5063 0.0000 +vt 0.8440 0.5248 0.0000 +vt 0.8307 0.5248 0.0000 +vt 0.8307 0.5063 0.0000 +vt 0.7344 0.3486 0.0000 +vt 0.7215 0.3486 0.0000 +vt 0.7215 0.3237 0.0000 +vt 0.7344 0.3237 0.0000 +vt 0.7532 0.3506 0.0000 +vt 0.7370 0.3506 0.0000 +vt 0.7370 0.3238 0.0000 +vt 0.7532 0.3238 0.0000 +vt 0.8440 0.5570 0.0000 +vt 0.8307 0.5570 0.0000 +vt 0.8364 0.5997 0.0000 +vt 0.7950 0.5997 0.0000 +vt 0.8096 0.5854 0.0000 +vt 0.8364 0.5608 0.0000 +vt 0.8663 0.5452 0.0000 +vt 0.8798 0.5570 0.0000 +vt 0.8093 0.5451 0.0000 +vt 0.7959 0.5570 0.0000 +vt 0.8620 0.5854 0.0000 +vt 0.8784 0.5997 0.0000 +vt 0.6756 0.2660 0.0000 +vt 0.6505 0.2660 0.0000 +vt 0.6505 0.4622 0.0000 +vt 0.6756 0.4622 0.0000 +vt 0.6058 0.3002 0.0000 +vt 0.6440 0.3002 0.0000 +vt 0.6440 0.4741 0.0000 +vt 0.6058 0.4741 0.0000 +vt 0.6280 0.0055 0.0000 +vt 0.6545 0.0069 0.0000 +vt 0.6548 0.0671 0.0000 +vt 0.6284 0.0865 0.0000 +vt 0.6000 0.2239 0.0000 +vt 0.6163 0.2239 0.0000 +vt 0.6163 0.2472 0.0000 +vt 0.6000 0.2472 0.0000 +vt 0.6822 0.1033 0.0000 +vt 0.6903 0.1033 0.0000 +vt 0.6903 0.1767 0.0000 +vt 0.6822 0.1767 0.0000 +vt 0.5852 0.2472 0.0000 +vt 0.5852 0.2239 0.0000 +vt 0.6098 0.1405 0.0000 +vt 0.6145 0.1405 0.0000 +vt 0.6140 0.1724 0.0000 +vt 0.6093 0.1724 0.0000 +vt 0.6552 0.1246 0.0000 +vt 0.6681 0.1246 0.0000 +vt 0.6659 0.1454 0.0000 +vt 0.6571 0.0825 0.0000 +vt 0.6723 0.0885 0.0000 +vt 0.6279 0.1193 0.0000 +vt 0.6279 0.1037 0.0000 +vt 0.6681 0.2453 0.0000 +vt 0.6552 0.2453 0.0000 +vt 0.6668 0.2246 0.0000 +vt 0.6507 0.1850 0.0000 +vt 0.6636 0.1850 0.0000 +vt 0.6018 0.0674 0.0000 +vt 0.6015 0.0077 0.0000 +vt 0.6903 0.2501 0.0000 +vt 0.6822 0.2501 0.0000 +vt 0.6135 0.2044 0.0000 +vt 0.6089 0.2043 0.0000 +vt 0.5834 0.0885 0.0000 +vt 0.5987 0.0825 0.0000 +vt 0.6955 0.1208 0.0000 +vt 0.6955 0.0105 0.0000 +vt 0.7028 0.0105 0.0000 +vt 0.7028 0.1208 0.0000 +vt 0.7028 0.1808 0.0000 +vt 0.6955 0.1808 0.0000 +vt 0.7028 0.2409 0.0000 +vt 0.6955 0.2409 0.0000 +vt 0.7028 0.3501 0.0000 +vt 0.6955 0.3501 0.0000 +vt 0.6375 0.2580 0.0000 +vt 0.6331 0.2581 0.0000 +vt 0.6322 0.2120 0.0000 +vt 0.6366 0.2119 0.0000 +vt 0.6312 0.1659 0.0000 +vt 0.6356 0.1658 0.0000 +vt 0.5834 0.0179 0.0000 +vt 0.5987 0.0169 0.0000 +vt 0.6903 0.3459 0.0000 +vt 0.6822 0.3459 0.0000 +vt 0.6822 0.0075 0.0000 +vt 0.6903 0.0075 0.0000 +vt 0.6571 0.0163 0.0000 +vt 0.6723 0.0179 0.0000 +vt 0.6242 0.1418 0.0000 +vt 0.6307 0.1417 0.0000 +vt 0.6247 0.1661 0.0000 +vt 0.6256 0.2121 0.0000 +vt 0.6265 0.2583 0.0000 +vt 0.6335 0.2823 0.0000 +vt 0.6270 0.2824 0.0000 +vt 0.6047 0.1405 0.0000 +vt 0.6042 0.1724 0.0000 +vt 0.6038 0.2043 0.0000 +vt 0.6365 0.1297 0.0000 +vt 0.6367 0.1416 0.0000 +vt 0.6305 0.1298 0.0000 +vt 0.6240 0.1300 0.0000 +vt 0.6681 0.1144 0.0000 +vt 0.6552 0.1144 0.0000 +vt 0.6037 0.2097 0.0000 +vt 0.6088 0.2097 0.0000 +vt 0.6135 0.2098 0.0000 +vt 0.6145 0.1351 0.0000 +vt 0.6099 0.1351 0.0000 +vt 0.6048 0.1351 0.0000 +vt 0.6552 0.2555 0.0000 +vt 0.6681 0.2555 0.0000 +vt 0.6272 0.2943 0.0000 +vt 0.6337 0.2942 0.0000 +vt 0.6395 0.2822 0.0000 +vt 0.6397 0.2940 0.0000 +vt 0.1601 0.2593 0.0000 +vt 0.1601 0.0045 0.0000 +vt 0.2454 0.0045 0.0000 +vt 0.2454 0.2590 0.0000 +vt 0.2838 0.5470 0.0000 +vt 0.2838 0.2690 0.0000 +vt 0.1765 0.2690 0.0000 +vt 0.1765 0.5470 0.0000 +vt 0.1150 0.3564 0.0000 +vt 0.1150 0.0538 0.0000 +vt 0.0116 0.0538 0.0000 +vt 0.0116 0.3569 0.0000 +vt 0.0100 0.6667 0.0000 +vt 0.0100 0.3673 0.0000 +vt 0.1291 0.3673 0.0000 +vt 0.1291 0.6667 0.0000 +vt 0.9942 0.1083 0.0000 +vt 0.9942 0.2099 0.0000 +vt 0.9659 0.2099 0.0000 +vt 0.9607 0.1083 0.0000 +vt 0.9942 0.0068 0.0000 +vt 0.9659 0.0068 0.0000 +vt 0.3004 0.5798 0.0000 +vt 0.2911 0.5701 0.0000 +vt 0.2911 0.6124 0.0000 +vt 0.3004 0.6124 0.0000 +vt 0.3004 0.6450 0.0000 +vt 0.2911 0.6547 0.0000 +vt 0.3334 0.6547 0.0000 +vt 0.3334 0.6450 0.0000 +vt 0.3663 0.6450 0.0000 +vt 0.3757 0.6547 0.0000 +vt 0.3757 0.6124 0.0000 +vt 0.3663 0.6124 0.0000 +vt 0.3663 0.5798 0.0000 +vt 0.3757 0.5701 0.0000 +vt 0.3334 0.5701 0.0000 +vt 0.3334 0.5798 0.0000 +vt 0.2876 0.5671 0.0000 +vt 0.2747 0.5537 0.0000 +vt 0.3334 0.5537 0.0000 +vt 0.3334 0.5671 0.0000 +vt 0.3793 0.5671 0.0000 +vt 0.3922 0.5537 0.0000 +vt 0.3922 0.6125 0.0000 +vt 0.3793 0.6125 0.0000 +vt 0.3793 0.6578 0.0000 +vt 0.3922 0.6712 0.0000 +vt 0.3334 0.6712 0.0000 +vt 0.3334 0.6578 0.0000 +vt 0.2876 0.6578 0.0000 +vt 0.2747 0.6712 0.0000 +vt 0.2747 0.6125 0.0000 +vt 0.2876 0.6125 0.0000 +vt 0.9513 0.1060 0.0000 +vt 0.9513 0.0044 0.0000 +vt 0.9230 0.0044 0.0000 +vt 0.9178 0.1060 0.0000 +vt 0.9097 0.1060 0.0000 +vt 0.9097 0.0044 0.0000 +vt 0.8814 0.0044 0.0000 +vt 0.8762 0.1060 0.0000 +vt 0.8814 0.2076 0.0000 +vt 0.9097 0.2076 0.0000 +vt 0.9230 0.2075 0.0000 +vt 0.9513 0.2075 0.0000 +vt 0.8658 0.1132 0.0000 +vt 0.8487 0.1132 0.0000 +vt 0.8445 0.0044 0.0000 +vt 0.8755 0.0044 0.0000 +vt 0.8445 0.2221 0.0000 +vt 0.8755 0.2221 0.0000 +vt 0.7801 0.1104 0.0000 +vt 0.7912 0.0058 0.0000 +vt 0.7576 0.0058 0.0000 +vt 0.7611 0.1104 0.0000 +vt 0.7912 0.2151 0.0000 +vt 0.7576 0.2374 0.0000 +vt 0.7362 0.1124 0.0000 +vt 0.7464 0.0064 0.0000 +vt 0.7139 0.0064 0.0000 +vt 0.7182 0.1124 0.0000 +vt 0.7139 0.2409 0.0000 +vt 0.7464 0.2409 0.0000 +vt 0.8231 0.1080 0.0000 +vt 0.8044 0.1080 0.0000 +vt 0.7986 0.0056 0.0000 +vt 0.8316 0.0056 0.0000 +vt 0.8316 0.2103 0.0000 +vt 0.7986 0.2321 0.0000 +vt 0.3996 0.1076 0.0000 +vt 0.3999 0.1680 0.0000 +vt 0.3755 0.1681 0.0000 +vt 0.3751 0.0799 0.0000 +vt 0.4002 0.2285 0.0000 +vt 0.3758 0.2286 0.0000 +vt 0.4005 0.2888 0.0000 +vt 0.3761 0.2890 0.0000 +vt 0.4008 0.3494 0.0000 +vt 0.3764 0.3495 0.0000 +vt 0.3512 0.1683 0.0000 +vt 0.3507 0.0641 0.0000 +vt 0.3515 0.2287 0.0000 +vt 0.3518 0.2891 0.0000 +vt 0.3521 0.3496 0.0000 +vt 0.3268 0.1684 0.0000 +vt 0.3264 0.0801 0.0000 +vt 0.3271 0.2288 0.0000 +vt 0.3274 0.2892 0.0000 +vt 0.3277 0.3497 0.0000 +vt 0.3025 0.1685 0.0000 +vt 0.3022 0.1081 0.0000 +vt 0.3028 0.2289 0.0000 +vt 0.3031 0.2893 0.0000 +vt 0.3033 0.3498 0.0000 +vt 0.1505 0.9738 0.0000 +vt 0.0042 0.6813 0.0000 +vt 0.2968 0.6813 0.0000 +vt 0.9446 0.3902 0.0000 +vt 0.9268 0.3902 0.0000 +vt 0.9268 0.3744 0.0000 +vt 0.9446 0.3744 0.0000 +vt 0.8974 0.3747 0.0000 +vt 0.8974 0.4922 0.0000 +vt 0.9065 0.4922 0.0000 +vt 0.9065 0.3747 0.0000 +vt 0.9924 0.3882 0.0000 +vt 0.9924 0.5080 0.0000 +vt 0.9766 0.5080 0.0000 +vt 0.9766 0.3882 0.0000 +vt 0.9160 0.3747 0.0000 +vt 0.9160 0.4922 0.0000 +vt 0.9924 0.5202 0.0000 +vt 0.9766 0.5245 0.0000 +vt 0.9160 0.5041 0.0000 +vt 0.8974 0.5041 0.0000 +vt 0.9268 0.4879 0.0000 +vt 0.9446 0.4879 0.0000 +vt 0.9446 0.5038 0.0000 +vt 0.9268 0.5038 0.0000 +vt 0.8789 0.3882 0.0000 +vt 0.8789 0.5080 0.0000 +vt 0.8630 0.5080 0.0000 +vt 0.8630 0.3882 0.0000 +vt 0.8789 0.5245 0.0000 +vt 0.8630 0.5202 0.0000 +vt 0.9268 0.4391 0.0000 +vt 0.9446 0.4391 0.0000 +vt 0.9277 0.5235 0.0000 +vt 0.9277 0.5442 0.0000 +vt 0.9356 0.4391 0.0000 +vt 0.9356 0.3902 0.0000 +vt 0.9356 0.4879 0.0000 +vt 0.4150 0.4926 0.0000 +vt 0.3619 0.5102 0.0000 +vt 0.3617 0.3568 0.0000 +vt 0.4148 0.3567 0.0000 +vt 0.3087 0.4928 0.0000 +vt 0.3085 0.3569 0.0000 +# 327 texture coords + +o turret +g turret +f 1/1/1 2/2/1 3/3/1 +f 3/3/1 4/4/1 1/1/1 +f 5/5/2 6/6/2 7/7/2 +f 5/5/2 7/7/2 8/8/2 +f 5/5/2 8/8/2 9/9/2 +f 10/10/3 11/11/3 12/12/3 +f 12/12/3 13/13/3 10/10/3 +f 12/12/4 14/14/4 9/15/4 +f 9/15/4 13/13/4 12/12/4 +f 15/16/5 7/17/5 6/18/5 +f 6/18/5 16/19/5 15/16/5 +f 3/20/6 16/21/6 4/22/6 +f 4/23/7 16/24/7 6/25/7 +f 6/25/7 17/26/7 4/23/7 +f 10/27/8 18/28/8 19/29/8 +f 19/29/8 11/30/8 10/27/8 +f 17/31/8 5/5/8 9/9/8 +f 17/31/8 9/9/8 14/32/8 +f 17/31/8 14/32/8 20/33/8 +f 4/23/9 17/26/9 20/17/9 +f 20/17/9 1/16/9 4/23/9 +f 15/34/10 16/21/10 3/20/10 +f 3/20/10 21/35/10 15/34/10 +f 10/36/11 13/37/11 22/12/11 +f 22/12/11 18/11/11 10/36/11 +f 13/37/12 9/38/12 8/14/12 +f 8/14/12 22/12/12 13/37/12 +f 5/39/13 23/40/13 24/41/13 +f 24/41/13 6/42/13 5/39/13 +f 17/43/14 25/44/14 23/45/14 +f 23/45/14 5/46/14 17/43/14 +f 6/47/15 24/48/15 25/49/15 +f 25/49/15 17/50/15 6/47/15 +f 26/51/16 27/52/16 28/53/16 +f 28/53/16 29/54/16 26/51/16 +f 30/55/17 31/56/17 32/57/17 +f 32/57/17 33/58/17 30/55/17 +f 34/59/18 35/60/18 25/49/18 +f 25/49/18 24/48/18 34/59/18 +f 36/61/19 26/62/19 29/63/19 +f 29/63/19 23/64/19 36/61/19 +f 28/65/20 27/66/20 34/59/20 +f 34/59/20 24/48/20 28/65/20 +f 24/41/21 23/40/21 29/54/21 +f 29/54/21 28/53/21 24/41/21 +f 33/67/22 25/49/22 35/60/22 +f 35/60/22 30/68/22 33/67/22 +f 32/69/23 31/70/23 36/61/23 +f 36/61/23 23/64/23 32/69/23 +f 23/45/24 25/44/24 33/58/24 +f 33/58/24 32/57/24 23/45/24 +f 37/3/25 38/2/25 39/1/25 +f 39/1/25 40/4/25 37/3/25 +f 41/5/26 42/9/26 8/8/26 +f 41/5/26 8/8/26 7/7/26 +f 41/5/26 7/7/26 43/6/26 +f 44/12/27 45/11/27 46/10/27 +f 46/10/27 47/13/27 44/12/27 +f 42/15/28 48/14/28 44/12/28 +f 44/12/28 47/13/28 42/15/28 +f 43/18/5 7/17/5 15/16/5 +f 15/16/5 49/19/5 43/18/5 +f 37/20/29 40/22/29 49/21/29 +f 40/23/30 50/26/30 43/25/30 +f 43/25/30 49/24/30 40/23/30 +f 19/29/31 18/28/31 46/27/31 +f 46/27/31 45/30/31 19/29/31 +f 50/31/31 51/33/31 48/32/31 +f 50/31/31 48/32/31 42/9/31 +f 50/31/31 42/9/31 41/5/31 +f 51/17/32 50/26/32 40/23/32 +f 40/23/32 39/16/32 51/17/32 +f 15/34/33 21/35/33 37/20/33 +f 37/20/33 49/21/33 15/34/33 +f 22/12/34 47/37/34 46/36/34 +f 46/36/34 18/11/34 22/12/34 +f 8/14/12 42/38/12 47/37/12 +f 47/37/12 22/12/12 8/14/12 +f 52/41/35 53/40/35 41/39/35 +f 41/39/35 43/42/35 52/41/35 +f 53/45/36 54/44/36 50/43/36 +f 50/43/36 41/46/36 53/45/36 +f 54/49/37 52/48/37 43/47/37 +f 43/47/37 50/50/37 54/49/37 +f 55/53/38 56/52/38 57/51/38 +f 57/51/38 58/54/38 55/53/38 +f 59/57/39 60/56/39 61/55/39 +f 61/55/39 62/58/39 59/57/39 +f 54/49/40 63/60/40 64/59/40 +f 64/59/40 52/48/40 54/49/40 +f 58/63/41 57/62/41 65/61/41 +f 65/61/41 53/64/41 58/63/41 +f 55/65/42 52/48/42 64/59/42 +f 64/59/42 56/66/42 55/65/42 +f 52/41/43 55/53/43 58/54/43 +f 58/54/43 53/40/43 52/41/43 +f 63/60/44 54/49/44 62/67/44 +f 62/67/44 61/68/44 63/60/44 +f 59/69/45 53/64/45 65/61/45 +f 65/61/45 60/70/45 59/69/45 +f 53/45/46 59/57/46 62/58/46 +f 62/58/46 54/44/46 53/45/46 +f 66/3/47 2/2/47 1/1/47 +f 1/1/47 67/4/47 66/3/47 +f 68/5/48 69/9/48 70/8/48 +f 68/5/48 70/8/48 71/7/48 +f 68/5/48 71/7/48 72/6/48 +f 12/12/49 11/11/49 73/10/49 +f 73/10/49 74/13/49 12/12/49 +f 69/15/50 14/14/50 12/12/50 +f 12/12/50 74/13/50 69/15/50 +f 72/18/51 71/17/51 75/16/51 +f 75/16/51 76/19/51 72/18/51 +f 66/20/52 67/22/52 76/21/52 +f 67/23/53 77/26/53 72/25/53 +f 72/25/53 76/24/53 67/23/53 +f 19/29/54 78/28/54 73/27/54 +f 73/27/54 11/30/54 19/29/54 +f 77/31/54 20/33/54 14/32/54 +f 77/31/54 14/32/54 69/9/54 +f 77/31/54 69/9/54 68/5/54 +f 20/17/9 77/26/9 67/23/9 +f 67/23/9 1/16/9 20/17/9 +f 75/34/55 79/35/55 66/20/55 +f 66/20/55 76/21/55 75/34/55 +f 80/12/56 74/37/57 73/36/57 +f 73/36/57 78/11/56 80/12/56 +f 70/14/58 69/38/58 74/37/58 +f 74/37/58 80/12/58 70/14/58 +f 81/41/59 82/40/59 68/39/59 +f 68/39/59 72/42/59 81/41/59 +f 82/45/60 83/44/60 77/43/60 +f 77/43/60 68/46/60 82/45/60 +f 83/49/61 81/48/61 72/47/61 +f 72/47/61 77/50/61 83/49/61 +f 84/53/62 85/52/62 86/51/62 +f 86/51/62 87/54/62 84/53/62 +f 88/57/63 89/56/63 90/55/63 +f 90/55/63 91/58/63 88/57/63 +f 83/49/64 92/60/64 93/59/64 +f 93/59/64 81/48/64 83/49/64 +f 87/63/65 86/62/65 94/61/65 +f 94/61/65 82/64/65 87/63/65 +f 84/65/66 81/48/66 93/59/66 +f 93/59/66 85/66/66 84/65/66 +f 81/41/67 84/53/67 87/54/67 +f 87/54/67 82/40/67 81/41/67 +f 92/60/68 83/49/68 91/67/68 +f 91/67/68 90/68/68 92/60/68 +f 88/69/69 82/64/69 94/61/69 +f 94/61/69 89/70/69 88/69/69 +f 82/45/70 88/57/70 91/58/70 +f 91/58/70 83/44/70 82/45/70 +f 39/1/71 38/2/71 95/3/71 +f 95/3/71 96/4/71 39/1/71 +f 97/5/72 98/6/72 71/7/72 +f 97/5/72 71/7/72 70/8/72 +f 97/5/72 70/8/72 99/9/72 +f 100/10/73 45/11/73 44/12/73 +f 44/12/73 101/13/73 100/10/73 +f 44/12/74 48/14/74 99/15/74 +f 99/15/74 101/13/74 44/12/74 +f 75/16/51 71/17/51 98/18/51 +f 98/18/51 102/19/51 75/16/51 +f 95/20/75 102/21/75 96/22/75 +f 96/23/76 102/24/76 98/25/76 +f 98/25/76 103/26/76 96/23/76 +f 100/27/77 78/28/77 19/29/77 +f 19/29/77 45/30/77 100/27/77 +f 103/31/77 97/5/77 99/9/77 +f 103/31/77 99/9/77 48/32/77 +f 103/31/77 48/32/77 51/33/77 +f 96/23/32 103/26/32 51/17/32 +f 51/17/32 39/16/32 96/23/32 +f 75/34/78 102/21/78 95/20/78 +f 95/20/78 79/35/78 75/34/78 +f 100/36/79 101/37/79 80/12/80 +f 80/12/80 78/11/80 100/36/79 +f 101/37/58 99/38/58 70/14/58 +f 70/14/58 80/12/58 101/37/58 +f 97/39/81 104/40/81 105/41/81 +f 105/41/81 98/42/81 97/39/81 +f 103/43/82 106/44/82 104/45/82 +f 104/45/82 97/46/82 103/43/82 +f 98/47/83 105/48/83 106/49/83 +f 106/49/83 103/50/83 98/47/83 +f 107/51/84 108/52/84 109/53/84 +f 109/53/84 110/54/84 107/51/84 +f 111/55/85 112/56/85 113/57/85 +f 113/57/85 114/58/85 111/55/85 +f 115/59/86 116/60/86 106/49/86 +f 106/49/86 105/48/86 115/59/86 +f 117/61/87 107/62/87 110/63/87 +f 110/63/87 104/64/87 117/61/87 +f 109/65/88 108/66/88 115/59/88 +f 115/59/88 105/48/88 109/65/88 +f 105/41/89 104/40/89 110/54/89 +f 110/54/89 109/53/89 105/41/89 +f 114/67/90 106/49/90 116/60/90 +f 116/60/90 111/68/90 114/67/90 +f 113/69/91 112/70/91 117/61/91 +f 117/61/91 104/64/91 113/69/91 +f 104/45/92 106/44/92 114/58/92 +f 114/58/92 113/57/92 104/45/92 +f 118/71/58 119/72/58 120/73/58 +f 120/73/58 121/74/58 118/71/58 +f 119/75/93 122/76/93 123/77/93 +f 123/77/93 120/78/93 119/75/93 +f 122/72/51 124/71/51 125/74/51 +f 125/74/51 123/73/51 122/72/51 +f 126/71/93 127/72/93 128/73/93 +f 128/73/93 129/74/93 126/71/93 +f 127/75/51 130/76/51 131/77/51 +f 131/77/51 128/78/51 127/75/51 +f 130/72/94 132/71/94 133/74/94 +f 133/74/94 131/73/94 130/72/94 +f 134/71/51 135/72/51 136/73/51 +f 136/73/51 137/74/51 134/71/51 +f 135/75/94 138/76/94 139/77/94 +f 139/77/94 136/78/94 135/75/94 +f 138/72/58 140/71/58 141/74/58 +f 141/74/58 139/73/58 138/72/58 +f 142/71/94 143/72/94 144/73/94 +f 144/73/94 145/74/94 142/71/94 +f 143/75/58 146/76/58 147/77/58 +f 147/77/58 144/78/58 143/75/58 +f 146/72/93 148/71/93 149/74/93 +f 149/74/93 147/73/93 146/72/93 +f 150/79/95 151/80/95 152/81/95 +f 152/81/95 153/82/95 150/79/95 +f 154/83/96 155/84/96 156/85/96 +f 156/85/96 157/86/96 154/83/96 +f 158/87/97 159/88/97 160/89/97 +f 160/89/97 161/90/97 158/87/97 +f 162/86/51 163/91/51 164/92/51 +f 164/92/51 165/83/51 162/86/51 +f 166/93/98 167/94/98 168/95/98 +f 168/95/98 169/96/98 166/93/98 +f 170/97/99 171/98/99 172/99/99 +f 173/100/99 158/101/99 161/102/99 +f 161/102/99 174/103/99 173/100/99 +f 175/104/100 176/105/100 177/106/100 +f 177/106/99 176/105/99 178/107/99 +f 178/107/99 179/108/99 177/106/99 +f 150/79/101 153/82/101 180/109/101 +f 180/109/101 181/110/101 150/79/101 +f 161/90/102 160/89/102 182/111/102 +f 182/111/102 183/112/102 161/90/102 +f 169/96/103 168/95/103 184/113/103 +f 184/113/103 185/114/103 169/96/103 +f 174/103/100 161/102/100 183/115/100 +f 183/115/100 186/116/100 174/103/100 +f 172/99/104 179/108/104 178/107/104 +f 178/107/104 170/97/104 172/99/104 +f 152/117/105 151/118/105 187/119/105 +f 187/119/105 173/120/105 152/117/105 +f 152/117/106 173/120/106 174/121/106 +f 174/121/106 153/122/106 152/117/106 +f 153/122/107 174/121/107 186/123/107 +f 186/123/107 180/124/107 153/122/107 +f 180/124/108 186/123/108 188/125/108 +f 188/125/108 181/126/108 180/124/108 +f 181/127/109 188/128/109 189/129/109 +f 189/129/109 150/130/109 181/127/109 +f 150/130/110 189/129/110 187/131/110 +f 187/131/110 151/132/110 150/130/110 +f 190/133/111 188/134/111 186/116/111 +f 186/116/111 183/115/111 190/133/111 +f 182/111/112 191/135/112 190/136/112 +f 190/136/112 183/112/112 182/111/112 +f 192/137/113 193/138/113 159/88/113 +f 159/88/113 158/87/113 192/137/113 +f 173/100/114 187/139/114 192/140/114 +f 192/140/114 158/101/114 173/100/114 +f 194/92/115 154/83/115 157/86/115 +f 157/86/115 195/91/115 194/92/115 +f 171/141/116 192/142/116 187/131/116 +f 187/131/116 172/143/116 171/141/116 +f 172/143/117 187/131/117 189/129/117 +f 189/129/117 179/144/117 172/143/117 +f 179/144/118 189/129/118 188/128/118 +f 188/128/118 177/145/118 179/144/118 +f 177/145/119 188/128/119 190/146/119 +f 190/146/119 175/147/119 177/145/119 +f 196/85/120 162/86/120 165/83/120 +f 165/83/120 197/84/120 196/85/120 +f 176/148/98 166/93/98 169/96/98 +f 169/96/98 178/149/98 176/148/98 +f 178/149/103 169/96/103 185/114/103 +f 185/114/103 170/150/103 178/149/103 +f 156/151/54 193/152/54 192/142/54 +f 192/142/54 157/153/54 156/151/54 +f 157/153/8 192/142/8 171/141/8 +f 171/141/8 195/154/8 157/153/8 +f 195/155/104 171/98/104 170/97/104 +f 170/97/104 194/156/104 195/155/104 +f 194/157/121 170/150/121 185/114/121 +f 185/114/121 154/158/121 194/157/121 +f 154/158/121 185/114/121 184/113/121 +f 184/113/121 155/159/121 154/158/121 +f 164/160/122 167/94/122 166/93/122 +f 166/93/122 165/161/122 164/160/122 +f 165/161/123 166/93/123 176/148/123 +f 176/148/123 197/162/123 165/161/123 +f 197/163/124 176/105/124 175/104/124 +f 175/104/124 196/164/124 197/163/124 +f 196/165/54 175/147/54 190/146/54 +f 190/146/54 162/166/54 196/165/54 +f 162/166/54 190/146/54 191/167/54 +f 191/167/54 163/168/54 162/166/54 +f 198/79/125 199/80/125 200/81/125 +f 200/81/125 201/82/125 198/79/125 +f 202/83/126 203/84/126 204/85/126 +f 204/85/126 205/86/126 202/83/126 +f 206/87/127 207/88/127 208/89/127 +f 208/89/127 209/90/127 206/87/127 +f 210/86/104 211/91/104 212/92/104 +f 212/92/104 213/83/104 210/86/104 +f 214/93/128 215/94/128 216/95/128 +f 216/95/128 217/96/128 214/93/128 +f 218/97/58 219/98/58 220/99/58 +f 221/100/129 206/101/129 209/102/129 +f 209/102/129 222/103/129 221/100/129 +f 223/104/129 224/105/129 225/106/129 +f 225/106/58 224/105/58 226/107/58 +f 226/107/58 227/108/58 225/106/58 +f 198/79/130 201/82/130 228/109/130 +f 228/109/130 229/110/130 198/79/130 +f 209/90/131 208/89/131 230/111/131 +f 230/111/131 231/112/131 209/90/131 +f 217/96/132 216/95/132 232/113/132 +f 232/113/132 233/114/132 217/96/132 +f 222/103/58 209/102/58 231/115/58 +f 231/115/58 234/116/58 222/103/58 +f 220/99/5 227/108/5 226/107/5 +f 226/107/5 218/97/5 220/99/5 +f 200/117/133 199/118/133 235/119/133 +f 235/119/133 221/120/133 200/117/133 +f 200/117/134 221/120/134 222/121/134 +f 222/121/134 201/122/134 200/117/134 +f 201/122/135 222/121/135 234/123/135 +f 234/123/135 228/124/135 201/122/135 +f 228/124/136 234/123/136 236/125/136 +f 236/125/136 229/126/136 228/124/136 +f 229/127/137 236/128/137 237/129/137 +f 237/129/137 198/130/137 229/127/137 +f 198/130/138 237/129/138 235/131/138 +f 235/131/138 199/132/138 198/130/138 +f 238/133/139 236/134/139 234/116/139 +f 234/116/139 231/115/139 238/133/139 +f 230/111/140 239/135/140 238/136/140 +f 238/136/140 231/112/140 230/111/140 +f 240/137/141 241/138/141 207/88/141 +f 207/88/141 206/87/141 240/137/141 +f 221/100/142 235/139/142 240/140/142 +f 240/140/142 206/101/142 221/100/142 +f 242/92/143 202/83/143 205/86/143 +f 205/86/143 243/91/143 242/92/143 +f 219/141/144 240/142/144 235/131/144 +f 235/131/144 220/143/144 219/141/144 +f 220/143/145 235/131/145 237/129/145 +f 237/129/145 227/144/145 220/143/145 +f 227/144/146 237/129/146 236/128/146 +f 236/128/146 225/145/146 227/144/146 +f 225/145/147 236/128/147 238/146/147 +f 238/146/147 223/147/147 225/145/147 +f 244/85/148 210/86/148 213/83/148 +f 213/83/148 245/84/148 244/85/148 +f 224/148/128 214/93/128 217/96/128 +f 217/96/128 226/149/128 224/148/128 +f 226/149/149 217/96/149 233/114/149 +f 233/114/149 218/150/149 226/149/149 +f 204/151/8 241/152/8 240/142/8 +f 240/142/8 205/153/8 204/151/8 +f 205/153/8 240/142/8 219/141/8 +f 219/141/8 243/154/8 205/153/8 +f 243/155/58 219/98/58 218/97/58 +f 218/97/58 242/156/58 243/155/58 +f 242/157/121 218/150/121 233/114/121 +f 233/114/121 202/158/121 242/157/121 +f 202/158/122 233/114/122 232/113/122 +f 232/113/122 203/159/122 202/158/122 +f 212/160/121 215/94/121 214/93/121 +f 214/93/121 213/161/121 212/160/121 +f 213/161/150 214/93/150 224/148/150 +f 224/148/150 245/162/150 213/161/150 +f 245/163/115 224/105/115 223/104/115 +f 223/104/115 244/164/115 245/163/115 +f 244/165/54 223/147/54 238/146/54 +f 238/146/54 210/166/54 244/165/54 +f 210/166/54 238/146/54 239/167/54 +f 239/167/54 211/168/54 210/166/54 +f 246/79/151 247/80/151 248/81/151 +f 248/81/151 249/82/151 246/79/151 +f 250/83/152 251/84/152 252/85/152 +f 252/85/152 253/86/152 250/83/152 +f 254/87/131 255/88/131 256/89/131 +f 256/89/131 257/90/131 254/87/131 +f 258/86/93 259/91/93 260/92/93 +f 260/92/93 261/83/93 258/86/93 +f 262/93/149 263/94/149 264/95/149 +f 264/95/149 265/96/149 262/93/149 +f 266/97/51 267/98/51 268/99/51 +f 269/100/12 254/101/12 257/102/12 +f 257/102/12 270/103/12 269/100/12 +f 271/104/153 272/105/153 273/106/153 +f 273/106/12 272/105/12 274/107/12 +f 274/107/12 275/108/12 273/106/12 +f 246/79/154 249/82/154 276/109/154 +f 276/109/154 277/110/154 246/79/154 +f 257/90/127 256/89/127 278/111/127 +f 278/111/127 279/112/127 257/90/127 +f 265/96/128 264/95/128 280/113/128 +f 280/113/128 281/114/128 265/96/128 +f 270/103/12 257/102/12 279/115/12 +f 279/115/12 282/116/12 270/103/12 +f 268/99/51 275/108/51 274/107/51 +f 274/107/51 266/97/51 268/99/51 +f 248/117/155 247/118/155 283/119/155 +f 283/119/155 269/120/155 248/117/155 +f 248/117/156 269/120/156 270/121/156 +f 270/121/156 249/122/156 248/117/156 +f 249/122/157 270/121/157 282/123/157 +f 282/123/157 276/124/157 249/122/157 +f 276/124/158 282/123/158 284/125/158 +f 284/125/158 277/126/158 276/124/158 +f 277/127/159 284/128/159 285/129/159 +f 285/129/159 246/130/159 277/127/159 +f 246/130/160 285/129/160 283/131/160 +f 283/131/160 247/132/160 246/130/160 +f 286/133/161 284/134/161 282/116/161 +f 282/116/161 279/115/161 286/133/161 +f 278/111/162 287/135/162 286/136/162 +f 286/136/162 279/112/162 278/111/162 +f 288/137/163 289/138/163 255/88/163 +f 255/88/163 254/87/163 288/137/163 +f 269/100/164 283/139/164 288/140/164 +f 288/140/164 254/101/164 269/100/164 +f 290/92/165 250/83/165 253/86/165 +f 253/86/165 291/91/165 290/92/165 +f 267/141/166 288/142/166 283/131/166 +f 283/131/166 268/143/166 267/141/166 +f 268/143/160 283/131/160 285/129/160 +f 285/129/160 275/144/160 268/143/160 +f 275/144/167 285/129/167 284/128/167 +f 284/128/167 273/145/167 275/144/167 +f 273/145/168 284/128/168 286/146/168 +f 286/146/168 271/147/168 273/145/168 +f 292/85/126 258/86/126 261/83/126 +f 261/83/126 293/84/126 292/85/126 +f 272/148/149 262/93/149 265/96/149 +f 265/96/149 274/149/149 272/148/149 +f 274/149/128 265/96/128 281/114/128 +f 281/114/128 266/150/128 274/149/128 +f 252/151/54 289/152/54 288/142/54 +f 288/142/54 253/153/54 252/151/54 +f 253/153/54 288/142/54 267/141/54 +f 267/141/54 291/154/54 253/153/54 +f 291/155/51 267/98/51 266/97/51 +f 266/97/51 290/156/51 291/155/51 +f 290/157/123 266/150/123 281/114/123 +f 281/114/123 250/158/123 290/157/123 +f 250/158/121 281/114/121 280/113/121 +f 280/113/121 251/159/121 250/158/121 +f 260/160/121 263/94/121 262/93/121 +f 262/93/121 261/161/121 260/160/121 +f 261/161/121 262/93/121 272/148/121 +f 272/148/121 293/162/121 261/161/121 +f 293/163/169 272/105/169 271/104/169 +f 271/104/169 292/164/169 293/163/169 +f 292/165/54 271/147/54 286/146/54 +f 286/146/54 258/166/54 292/165/54 +f 258/166/54 286/146/54 287/167/54 +f 287/167/54 259/168/54 258/166/54 +f 95/169/51 294/170/51 295/171/51 +f 295/171/51 296/172/51 95/169/51 +f 296/173/94 295/174/94 297/175/94 +f 297/175/94 298/176/94 296/173/94 +f 298/177/58 297/178/58 299/179/58 +f 299/179/58 37/180/58 298/177/58 +f 37/181/170 299/182/170 294/183/170 +f 294/183/170 95/184/170 37/181/170 +f 300/185/51 301/186/51 302/187/51 +f 302/187/51 303/188/51 300/185/51 +f 304/185/100 305/189/100 306/190/100 +f 306/190/100 307/188/100 304/185/100 +f 308/185/58 309/189/58 310/190/58 +f 310/190/58 311/188/58 308/185/58 +f 312/185/93 313/186/93 314/187/93 +f 314/187/93 315/188/93 312/185/93 +f 316/191/171 302/192/171 315/193/171 +f 315/193/171 317/194/171 316/191/171 +f 318/195/172 314/196/172 311/197/172 +f 311/197/172 319/198/172 318/195/172 +f 320/199/173 310/200/173 307/201/173 +f 307/201/173 321/202/173 320/199/173 +f 322/203/174 306/204/174 303/205/174 +f 303/205/174 323/206/174 322/203/174 +f 324/207/54 301/208/54 300/209/54 +f 300/209/54 325/210/54 324/207/54 +f 326/211/8 305/212/8 304/213/8 +f 304/213/8 327/214/8 326/211/8 +f 328/215/77 309/216/77 308/217/77 +f 308/217/77 329/218/77 328/215/77 +f 330/219/77 313/220/77 312/221/77 +f 312/221/77 331/222/77 330/219/77 +f 308/185/58 311/188/58 314/187/58 +f 314/187/58 313/186/58 308/185/58 +f 312/185/93 315/188/93 302/190/93 +f 302/190/93 301/189/93 312/185/93 +f 318/195/175 317/194/175 315/193/175 +f 315/193/175 314/196/175 318/195/175 +f 320/199/176 319/198/176 311/197/176 +f 311/197/176 310/200/176 320/199/176 +f 322/203/177 321/202/177 307/201/177 +f 307/201/177 306/204/177 322/203/177 +f 330/219/54 329/218/54 308/217/54 +f 308/217/54 313/220/54 330/219/54 +f 324/207/31 331/222/31 312/221/31 +f 312/221/31 301/208/31 324/207/31 +f 300/185/51 303/188/51 306/190/51 +f 306/190/51 305/189/51 300/185/51 +f 304/185/94 307/188/94 310/187/94 +f 310/187/94 309/186/94 304/185/94 +f 316/191/178 323/206/178 303/205/178 +f 303/205/178 302/192/178 316/191/178 +f 326/211/77 325/210/77 300/209/77 +f 300/209/77 305/212/77 326/211/77 +f 328/215/77 327/214/77 304/213/77 +f 304/213/77 309/216/77 328/215/77 +f 332/185/51 333/186/51 334/187/51 +f 334/187/51 335/188/51 332/185/51 +f 336/223/94 337/224/94 338/225/94 +f 338/225/94 339/226/94 336/223/94 +f 340/227/58 341/228/58 342/229/58 +f 342/229/58 343/230/58 340/227/58 +f 344/185/93 345/186/93 346/187/93 +f 346/187/93 347/188/93 344/185/93 +f 348/191/171 334/192/171 347/193/171 +f 347/193/171 349/194/171 348/191/171 +f 350/195/172 346/196/172 343/197/172 +f 343/197/172 351/198/172 350/195/172 +f 352/199/173 342/200/173 339/201/173 +f 339/201/173 353/202/173 352/199/173 +f 354/203/174 338/204/174 335/205/174 +f 335/205/174 355/206/174 354/203/174 +f 356/207/54 333/208/54 332/209/54 +f 332/209/54 357/210/54 356/207/54 +f 358/211/8 337/212/8 336/213/8 +f 336/213/8 359/214/8 358/211/8 +f 360/215/54 341/216/54 340/217/54 +f 340/217/54 361/218/54 360/215/54 +f 362/219/77 345/220/77 344/221/77 +f 344/221/77 363/222/77 362/219/77 +f 340/227/58 343/230/58 346/231/58 +f 346/231/58 345/232/58 340/227/58 +f 344/185/93 347/188/93 334/190/93 +f 334/190/93 333/189/93 344/185/93 +f 350/195/175 349/194/175 347/193/175 +f 347/193/175 346/196/175 350/195/175 +f 352/199/176 351/198/176 343/197/176 +f 343/197/176 342/200/176 352/199/176 +f 354/203/177 353/202/177 339/201/177 +f 339/201/177 338/204/177 354/203/177 +f 362/219/54 361/218/54 340/217/54 +f 340/217/54 345/220/54 362/219/54 +f 356/207/31 363/222/31 344/221/31 +f 344/221/31 333/208/31 356/207/31 +f 332/185/51 335/188/51 338/190/51 +f 338/190/51 337/189/51 332/185/51 +f 336/223/94 339/226/94 342/233/94 +f 342/233/94 341/234/94 336/223/94 +f 348/191/178 355/206/178 335/205/178 +f 335/205/178 334/192/178 348/191/178 +f 358/211/77 357/210/77 332/209/77 +f 332/209/77 337/212/77 358/211/77 +f 360/215/54 359/214/54 336/213/54 +f 336/213/54 341/216/54 360/215/54 +f 364/235/179 365/236/179 366/237/179 +f 366/237/179 367/238/179 364/235/179 +f 368/239/180 365/236/180 364/235/180 +f 364/235/180 369/240/180 368/239/180 +f 364/241/181 367/242/181 370/243/181 +f 370/243/181 371/244/181 364/241/181 +f 369/245/182 364/241/182 371/244/182 +f 371/244/182 372/246/182 369/245/182 +f 371/247/183 370/248/183 373/249/183 +f 373/249/183 374/250/183 371/247/183 +f 375/251/184 372/252/184 371/247/184 +f 371/247/184 374/250/184 375/251/184 +f 365/253/185 374/254/185 373/255/185 +f 373/255/185 366/256/185 365/253/185 +f 368/257/186 375/258/186 374/254/186 +f 374/254/186 365/253/186 368/257/186 +f 376/235/187 377/238/187 378/237/187 +f 378/237/187 379/236/187 376/235/187 +f 380/239/188 381/240/188 376/235/188 +f 376/235/188 379/236/188 380/239/188 +f 376/241/189 382/244/189 383/243/189 +f 383/243/189 377/242/189 376/241/189 +f 381/245/190 384/246/190 382/244/190 +f 382/244/190 376/241/190 381/245/190 +f 382/247/191 385/250/191 386/249/191 +f 386/249/191 383/248/191 382/247/191 +f 387/251/192 385/250/192 382/247/192 +f 382/247/192 384/252/192 387/251/192 +f 379/253/193 378/256/193 386/255/193 +f 386/255/193 385/254/193 379/253/193 +f 380/257/194 379/253/194 385/254/194 +f 385/254/194 387/258/194 380/257/194 +f 388/235/187 389/238/187 390/237/187 +f 390/237/187 391/236/187 388/235/187 +f 392/239/188 393/240/188 388/235/188 +f 388/235/188 391/236/188 392/239/188 +f 388/241/189 394/244/189 395/243/189 +f 395/243/189 389/242/189 388/241/189 +f 393/245/195 396/246/195 394/244/195 +f 394/244/195 388/241/195 393/245/195 +f 394/247/191 397/250/191 398/249/191 +f 398/249/191 395/248/191 394/247/191 +f 399/251/196 397/250/196 394/247/196 +f 394/247/196 396/252/196 399/251/196 +f 391/253/193 390/256/193 398/255/193 +f 398/255/193 397/254/193 391/253/193 +f 392/257/197 391/253/197 397/254/197 +f 397/254/197 399/258/197 392/257/197 +f 400/235/198 401/238/198 402/237/198 +f 402/237/198 403/236/198 400/235/198 +f 404/239/199 405/240/199 400/235/199 +f 400/235/199 403/236/199 404/239/199 +f 400/241/200 406/244/200 407/243/200 +f 407/243/200 401/242/200 400/241/200 +f 405/245/201 408/246/201 406/244/201 +f 406/244/201 400/241/201 405/245/201 +f 406/247/202 409/250/202 410/249/202 +f 410/249/202 407/248/202 406/247/202 +f 411/251/203 409/250/203 406/247/203 +f 406/247/203 408/252/203 411/251/203 +f 403/253/185 402/256/185 410/255/185 +f 410/255/185 409/254/185 403/253/185 +f 404/257/204 403/253/204 409/254/204 +f 409/254/204 411/258/204 404/257/204 +f 412/235/205 413/236/205 414/237/205 +f 414/237/205 415/238/205 412/235/205 +f 416/239/206 413/236/206 412/235/206 +f 412/235/206 417/240/206 416/239/206 +f 412/241/207 415/242/207 418/243/207 +f 418/243/207 419/244/207 412/241/207 +f 417/245/208 412/241/208 419/244/208 +f 419/244/208 420/246/208 417/245/208 +f 419/247/209 418/248/209 421/249/209 +f 421/249/209 422/250/209 419/247/209 +f 423/251/210 420/252/210 419/247/210 +f 419/247/210 422/250/210 423/251/210 +f 413/253/193 422/254/193 421/255/193 +f 421/255/193 414/256/193 413/253/193 +f 416/257/211 423/258/211 422/254/211 +f 422/254/211 413/253/211 416/257/211 +f 424/235/205 425/236/205 426/237/205 +f 426/237/205 427/238/205 424/235/205 +f 428/239/206 425/236/206 424/235/206 +f 424/235/206 429/240/206 428/239/206 +f 424/241/207 427/242/207 430/243/207 +f 430/243/207 431/244/207 424/241/207 +f 429/245/212 424/241/212 431/244/212 +f 431/244/212 432/246/212 429/245/212 +f 431/247/209 430/248/209 433/249/209 +f 433/249/209 434/250/209 431/247/209 +f 435/251/213 432/252/213 431/247/213 +f 431/247/213 434/250/213 435/251/213 +f 425/253/193 434/254/193 433/255/193 +f 433/255/193 426/256/193 425/253/193 +f 428/257/214 435/258/214 434/254/214 +f 434/254/214 425/253/214 428/257/214 +f 436/235/198 437/238/198 438/237/198 +f 438/237/198 439/236/198 436/235/198 +f 440/239/199 441/240/199 436/235/199 +f 436/235/199 439/236/199 440/239/199 +f 436/241/200 442/244/200 443/243/200 +f 443/243/200 437/242/200 436/241/200 +f 441/245/215 444/246/215 442/244/215 +f 442/244/215 436/241/215 441/245/215 +f 442/247/202 445/250/202 446/249/202 +f 446/249/202 443/248/202 442/247/202 +f 447/251/216 445/250/216 442/247/216 +f 442/247/216 444/252/216 447/251/216 +f 439/253/185 438/256/185 446/255/185 +f 446/255/185 445/254/185 439/253/185 +f 440/257/217 439/253/217 445/254/217 +f 445/254/217 447/258/217 440/257/217 +f 448/235/179 449/236/179 450/237/179 +f 450/237/179 451/238/179 448/235/179 +f 452/239/180 449/236/180 448/235/180 +f 448/235/180 453/240/180 452/239/180 +f 448/241/181 451/242/181 454/243/181 +f 454/243/181 455/244/181 448/241/181 +f 453/245/218 448/241/218 455/244/218 +f 455/244/218 456/246/218 453/245/218 +f 455/247/183 454/248/183 457/249/183 +f 457/249/183 458/250/183 455/247/183 +f 459/251/219 456/252/219 455/247/219 +f 455/247/219 458/250/219 459/251/219 +f 449/253/185 458/254/185 457/255/185 +f 457/255/185 450/256/185 449/253/185 +f 452/257/220 459/258/220 458/254/220 +f 458/254/220 449/253/220 452/257/220 +f 460/259/221 461/260/222 462/261/223 +f 462/261/223 463/262/224 460/259/221 +f 461/260/222 464/263/225 465/264/225 +f 465/264/225 462/261/223 461/260/222 +f 464/263/225 466/265/226 467/266/226 +f 467/266/226 465/264/225 464/263/225 +f 466/265/226 468/267/227 469/268/227 +f 469/268/227 467/266/226 466/265/226 +f 463/262/224 462/261/223 470/269/228 +f 470/269/228 471/270/229 463/262/224 +f 462/261/223 465/264/225 472/271/225 +f 472/271/225 470/269/228 462/261/223 +f 465/264/225 467/266/226 473/272/226 +f 473/272/226 472/271/225 465/264/225 +f 467/266/226 469/268/227 474/273/227 +f 474/273/227 473/272/226 467/266/226 +f 471/270/229 470/269/228 475/274/230 +f 475/274/230 476/275/231 471/270/229 +f 470/269/228 472/271/225 477/276/225 +f 477/276/225 475/274/230 470/269/228 +f 472/271/225 473/272/226 478/277/226 +f 478/277/226 477/276/225 472/271/225 +f 473/272/226 474/273/227 479/278/227 +f 479/278/227 478/277/226 473/272/226 +f 476/275/231 475/274/230 480/279/232 +f 480/279/232 481/280/233 476/275/231 +f 475/274/230 477/276/225 482/281/225 +f 482/281/225 480/279/232 475/274/230 +f 477/276/225 478/277/226 483/282/226 +f 483/282/226 482/281/225 477/276/225 +f 478/277/226 479/278/227 484/283/227 +f 484/283/227 483/282/226 478/277/226 +f 485/284/234 486/285/234 487/286/234 +f 485/284/235 487/285/235 488/286/235 +f 485/284/236 488/285/236 489/286/236 +f 485/284/237 489/285/237 486/286/237 +f 490/287/238 491/288/238 492/289/238 +f 492/289/238 493/290/238 490/287/238 +f 494/291/58 495/292/58 496/293/58 +f 496/293/58 497/294/58 494/291/58 +f 498/295/93 499/296/93 495/297/93 +f 495/297/93 494/298/93 498/295/93 +f 500/299/153 501/300/153 499/292/153 +f 499/292/153 498/291/153 500/299/153 +f 492/301/93 491/302/93 495/297/93 +f 495/297/93 499/296/93 492/301/93 +f 493/303/153 492/304/153 499/292/153 +f 499/292/153 501/300/153 493/303/153 +f 502/305/239 503/306/239 504/307/239 +f 504/307/239 505/308/239 502/305/239 +f 506/294/153 507/293/153 508/292/153 +f 508/292/153 509/291/153 506/294/153 +f 510/291/129 511/292/129 512/300/129 +f 512/300/129 513/299/129 510/291/129 +f 509/309/93 508/310/93 511/311/93 +f 511/311/93 510/312/93 509/309/93 +f 505/304/129 504/303/129 512/300/129 +f 512/300/129 511/292/129 505/304/129 +f 502/313/93 505/314/93 511/311/93 +f 511/311/93 508/310/93 502/313/93 +f 502/305/240 514/315/77 515/316/77 +f 515/316/77 503/306/240 502/305/240 +f 508/310/93 516/317/241 514/318/241 +f 514/318/241 502/313/93 508/310/93 +f 516/315/242 517/319/242 496/320/242 +f 496/320/242 495/288/242 516/315/242 +f 491/288/243 490/287/243 515/316/77 +f 515/316/77 514/315/77 491/288/243 +f 495/297/170 491/302/170 514/318/241 +f 514/318/241 516/317/241 495/297/170 +f 508/305/244 507/321/244 517/319/244 +f 517/319/244 516/315/244 508/305/244 +f 496/322/170 517/323/170 518/324/170 +f 518/324/170 497/325/170 496/322/170 +f 517/323/93 507/326/93 506/327/93 +f 506/327/93 518/324/93 517/323/93 +# 782 faces + +‰PNG + + IHDRHÃÛ±PLTE   +  " & ( ""((133;:  '# &$ %+,'(!(/;"8)=7###%&('('&(()%#(&(+(&+++-/0.0..010'%0)&1-,0/030.333568686689955868;86:;;=[<"`"b$ e( h& k)l,d< `>`?h?s+ r-y0`?!@?@G@^@MF!C@>UK$^D2\S(n@bAeEfHiCkHiIsA sLxRfF'kL2e[-nS>yV%uU9i`/lb1uj5}q9CCCDGHEIIHFEHGHLIEJKKFOPMNPGPQMQQNWXNYYQNKPNPUQMRSSUVXVXYYVRXWX]YTZ[[]_`^``a]X{[A`_`gb]bcceghfhike`nicjkkmopmpprlgxrlzvr„HM‡U”Z‚[ •c|ˆd$„x=¡_¨i¥q´gµqª{*³{!€_C‡fJkQ‰}@‘nR˜uY‚|už{` |_¡}aÄw¼€¬ˆ)£7¾‡"´‘$²’6A–‰FžJ‡{£•MªœP®ˆj¯ S½£M·¨WÉ#ɨ2ʬ@ò]˹aпdÙÆhàÍlãÐnë×qòÞvóàv‡„‰…/hþÉ“IDATx^ìýÿoWž& +Ë'”eQ#F¥QºÅM<ŠB¥!­R8¦U +i—8#&’ØÉ¦óem^9Ž‘à¾=h`ï"hä—™ö/(ËéÚ¬ð¦/Û³«éÁ»Þ¾7¸û½Ïó|N‹)É’“î;é§HÖ÷SŪó|>ÏùœS§Æ¶‰-¢Chj¸FhJЊ6±™A›Zû¿{ÄBSZñ¢ñˆBC=ð‹¯àùÓQös7Áɤ*)jµÚê*SjaÏÇ5ŒZ\a)¯Áj-¬áÖâ 6jÚ+*$‡#M‹…BÑÃd)J´Ëñùw„ïÞýä8îž÷\Ÿ0í_~þËt¤>ô-ºàÒDªnqïž[8Øâã»÷R¸…§á [ÚÁO„û³€»Ÿ ÝO>Æ&îåÿDn—×:¸•9à–¼á#á|†` ¤/5w:;[;;;¤7l¬€ã? MÚ¯ö™mòÊ+¯œ`dWÎ¥x +¶Á맀㠀Ÿßs|·Ÿå*ÇU 0ËZ€ßÕÌ`"ŒæŒj_’áXâ 6¨Åõ€Z@P¡˜›£(Ç®VÃà ÖÃ5ÎùánøùñÙ§ü¹ÿùgð‹Y÷>ùì3—[søü® ŸÜuÙëC ý°e¹¥÷°GÞ Çö8aÀÒÌ*ôãó_7Ÿ¹„eì|qÆ÷xf¢wzš6|vÿ3àÓO?ýä¾Önÿ|†­ïÝÿ,ÝÑ6åÔPØ?äeãÀ38Æ?ü¥ñ§ðoG\aœÎÉmëþ‡Àýþ17ü +;ÿêW¿úå/ñC¸Å†ƒàYdC +NÝ… 0Ll.ÀÅš€ííÀõ´'˜€ww¶ÎóQz§A¼>#à§eàå‹E*Ï,€ƒ˜O@öc €E % °[f jPa^Ô†)ðX€9ß›Ë+€ý?fpþ ¹h`>„¾gu¡†{=þÃü +ÙÛe]w0“"MßRNø¹_¹qOä'Hų‚—×`§i_,6ùø.¬„K¸ñÇX Ú»ðK1¸)ÂRvûf°Ã÷áW:kúcüOw z +ÉåÿD +ãÜÿwsƒp‡K/@ŸÝ2¦KcðùÀ6e€E`*€`C†­6¶xcÀ¼²ðÊÂÉ&`gçݧþ(±ÓÐÞhœu oœ¨Éÿ²³äŇ»·)€rP½!0DìÏP„_pí‰ +`5§Æ —ŠÕðö7(ðdþH€¹1(€û扨z¬Í€\¦|œÒ`˜p ûHèp +`0#c)²¯›éä&zÈ+s›ŸÒàÌ•uš:U,„€«…þ8uê£Nônl»â¤‰~&ÃGºpçT¦3ܶÀ‰ +às*üS˜°½2ŒVwiÀ€3YA€³ïl¡À‚àøh‹c*€2àD‹ò”"§à©Šy €Àœ”÷ýø, p¢ê߀X„AðQpT`}M +`ËjëC@¥VéW•?úÀ +€9kƒFĈ¸œ«Crn"M~éçÈáä¿›ëÁ%ÛÇ*œñ?=M~?¹{ßmÙSÜ è 8M¬Èí* `Kú€Ù8;üz +€3Ü5è)€ÏïæŠ)û ä| +Lc®Rvåà—Ú“bÃ!ðe€ÑÊ©€­ˆ²þTP¼xºÏÐ>o `ªHËTV2; "ÀH @t’ XNcãÏ¡°ðǦà¸@œ Ž+€cÛö€ôñ±ò5³¯›KÝ7ì)€^  ? Ó•gÝÀÓä<øg÷ îÂ;÷€Û½ØéÂ\À/ÌÝ3@cH ÝmˆÀ?L™øKžýhp‡Ä´Û˜P¸¿‚°Ë€áWÿ¨ÀçT œIàÄϪH÷Ô`Ô§ ÃQ  8](XpZ,àÝ­ÎY?§c[€òþ,ßc +À…@µX¬U|Èñ1€S°<çϺZ€«U(€ê‘ès=ĽcyþŸ9 Ô‡Ä€A xºpçN€³’xw§I/Jc79¦sêZ‚c²Ë^hê$èèƒÈ³ ^ +w.££<%·¥ YýA,p³°=rx* åM@^Pl™ x&* OãŸü9[ A€álü +Ž7')YãeS7üàÜ1€ +–öbÅÂ%§þ(cŸ)"ƒQà‚Ì1F8nNV"9¿9лç€Á¶É÷tèWFêJã¿B÷4*ÂÎøþ`t4!¶[É\iiÛ| ³„ýÅ1øj8c€pWÉBÜûŒÆ©O¸ãqð«ÏGÇz‡#žRìŠG}& SXÂP€3ÏD DúF~`”Æi8k€6`x À÷]C)€ + +ý˜XA0€2€)`P€õ¦T 0T¼¦@(Œÿ¿ 0\˜o„BÎXÐÏtÃñ%ý +ଵ¶C¯ à’M€XG@Æ»SŽÞ(fƒÿ4sC€+ÿsÏœÐKœ8© 0D° ÿBî* ]*€û8Ò È4@>h‘»rýÚ@³Ú%‡§R{»CL€SœÛ…?~¦* ³³uê‡e…³€­c®~Ø7…ãSV 0,€iS,˜HÝûÐÀh°ZáSÔ1€ûÊ„Cý"M@¿‚³0D 8{rþËÍ9çÆíÌØDƒ +'LRÁk§üOO•qõ1œ¤ÜHl¿ÿÙgJ?Ú6¯¸É±>TàtS—|.€ýu4¤ +`t-@îpÄÓ*X€T—ô©€>À-¾ €²ÇëÏÔÀÙ€Q +À!«ý­ Ê¦ öÓÆ*Ö Uã.ðǤ2·“â ’@Ê‚Aµ/[ÐS–úÙb¶‡A¸dSÀIE§ÀN§Ë:2€ðœ4“ð)vá®™ÈÐÇ~ýÏîë” BøI ˜`W!U2M˜Ö.@ÎÿÃÝ÷K§€²K—ƒ¬eÊ}Cçè`L¥:Û{´"SŸ ÈTM@O ˜€sÖФŒþÐ`â,X8îî¿Ù„ã͉1J™)€(UÁj° +ÿ><pB-@ûõjþècÈ…t§Cb'1ú™ÐÑb”À¡ã·iæœpyZSN¨H*R>Ü©Ò ÒÍ~ÞW àö4‰m ˜S;€OÈLLjcŒ\ `øŸ¾wL° µZ´£ “À0 @à†_ÑÉK˜p‹¤òH€Ó)05¼~² +Ь¨I0¤uàùj:£?âÿYêqB›àußùKŒ¨HŸp1MÐHD~p#‹ *°þŒµHZµô1úÓ¡ +ù _PDbæ†ÅŽ/üNÏIRñ¬új¸áçÐôøéSÚÀ´içÿ{ +€¼Ä¤¶å’mßGC«tÎ0iäúg» H7¯RÅ´[®b€Ì·Ç ít8®7àîcú( ¿á*" 4ÎQ\\X°ÿø?ø¾{þëH»§€ãÍI +@ÏTÓZ(Zp¿vS§= @ ÐXþcŽÈ¡#b¢ †X€ô+eáþ€òíi +À$°WŽ2$•"÷ÆwªÓ*Üc È1ºŸßš» B¦2ƒ£-2¤ü˜À?Ä_I¹ø«¾?k—É~ŒÓ9»À®l€Ã@v8á)@{«Mg?\Ph™f¥P Àg  À½Î£\‘?ÿÁa0¼{ºÐQ:3€§Œ8P nœ] PÁÚ!1€?ÞvŸ~Œ:\ÿó +à8ŽÇúÀykzpÉ‚;6Ÿ*±6UvªœT TTöœ6ÿßøÌ*´-–äÊéÎ=ˆü}pµøCÍËÁ.Ò¥2°)P\Â+ןœSp wz‚1}¤€ÿ~¶0çŒì¼›ÿÐóo¡Àz€Sø¯#ð w©ð%óG5"oNªг2i ÀÀ‰1€Û¬þ¿(€Y€ã +à\–£UO -  §ìˆÌ®Ì³äÜOU=Œˆ(roƒ;Õaµî±ðþP êÌ”Üæ,0RÇ,À=]:žHŸÀÈ™´Ó€»0€À¥ÀùÊéÀ€Ú Éá +@{§à)ÈÔ>Y`JË4«(Ý3Œä´??,œÖP©ë|vž¢1ð0"`µFŠué£p#ߣrT[ k – ÕuX®$`aPÆ*©@Ò³žþŠÕ0ê.u»b0L‡óÂÝògŠá +@ôÐÔPÖŽã6!S.ýóÅÒ"À¯2BÊu‚2À'Ç÷àhïÉ®9`;8“ùÿ>@ ¢¹$C~gýÍîð8w|ù²ÿ”®)9ŸWîÂ8óa ÍS(à®@ÞœdRî;èvõ`L©H´§Sža,†%ýШ€CœÐP)ëÔh%ÎlÈju \(Y `–ä¿+êW–>ˆÉ¿"ë“êR³ª¦Á++¢6d@®*è•c>„ð£Ú:½>,dBÀòA†ó,Me¹‚ +>¼Þþ¶šüqbðepœÈ“Ç]!> D¦F¸ÿc%€œP-@_.–EÀ÷œ +°v:7vžø°à˜ âO¿‘# +&ÓvÆŸ´Íi }¤rÀePªp'̳ïû³ºLv˜HË*ë3 +˜Š°<®°¦gz +@ Å(°) pv@À]ži, ¸ê;­!Pª:-ÒgoÏ‘Nxè8źL€PXÜLÃ$¬\¶‘=âz¡€WWƒõõF£•Ħ#â29ŒÂ¾ßˆA~'ðÿ‘R<Ÿ¬B;ðQÀeƒ=ÿE(€ ŒŽnÆqtìŸîŽ_}®çîp gÈ¥ IÀq£*wòÝÍg¿¹¥¶‡A¸dS€³¨ÈNUy)l9´3æÿbJIÛö)€þ¿|ÄJ†cÀ9ã2xNT} ßÝNÊ]£>ÎE¿I¾Š“8~˜ø…¨ÉÀðôQ”<º(>À7:ÀVX´Tþ&¹Ý “èá“ÿÙíbÙá·‡GGQÜ…†ï!¬DÜ=üúq7~xðøèq܈¾†kZG3݇a­o 9ÅÈovºE7“(Iºq÷BøÉ…ðöÛï!‹€P¬*SÝw?#RˆýXEN‘T#6…~0¬€9/yºi`?ä¦òÚL¸, (—a5ê-íñßÍ÷Ê.Ù‘ +@SñƒÆ= wëv6˜æ9p»:p>ºÝxR}À9»ÿ¡.AzÀš¡ +@À±_—{³ {É]Z:\I·¡]Ò!òAG`²óÒðLû®@ÆŒßb×Sª€ï Àb€ìʱ–€JA§ÐïýÛ0S’ÿùF£lÜífñÒ#wºí¸æ½9ð2`í}Æ­8^Ú?Úh„­–JåöƒÂAÔ¤^ãâ¸[e1A0ÚSU«_‘ó]%5Z!Rk5q7ŽL© ËQ-­…7@ÿiöFºqxØMœSr!H¸^`>DùcfY ÀǼóÐZ€¼=Û-W=É@d;8ã§^=úþ!þ +?:ßÀKÊd–ò"¥"oïûãý‘=€ך>àn} º+ Z¶¿Å°3©€´u –pg èl¹§ú€öÖá½ÿî{ݰ6šä‡t6¢u®È†(.7Q>'{g‹ãÅbÑóæh€ +<~9 +bÆð‚`uÕB5d3á½ZÐ-w1C|µFµ`5d£,` °V«5KN­–oLà8 ,L­ÊTàT×/87ÜÝ=?>dŽ@^þðî½,ïõ]Q».ܶGéÍæ€Œx@L¼½tãˆ`|á0—¸ãÜ— 7U pŠÈNÄæ61ÿŸWJ‹[kIƒÿµÇ£8gÜ958þoÎ žΉ]–Èà B7%½švv=×eÔ#PŸ x*`&àYÆ0=–´ =uèãÞŸ0‚ó£oo*å¾V‡æ›äˆÉÚxÖ¨zMãRì7(îA^€Ì%°r%$ÿ‰U€Ç6 Ð$„Áz¸µ¤K¹ïkJFÆ &ÿ¡¦Ù^€m†W׃å‹ÀÝÃsù1øìãuQl‰’Eš‰ü‡âH?)`¸­JŸ}™[Éïï¾ýö;o¿ýöO^}õ'qòíwÞ—/—Yެwø_)è툓)€Qµ2[*dµøSð­RZŸ!g ±ÝÅÈ4š ìpŒL}Póˆ>`N?ã½.×?þÓ&þñ?§Ä®Úq+:Ä®ž3ȺújMáRè·['aÌ|uŸ àü2Ða9 «Ð^:ì0ï/8‡z +¾‚`8¾x¢? +Ëþ2›ÿÀKG¥ÐƒÊºè›ý€ €r‚ +@¤VSlµ¸‡ª9¸1×:þc`Ù'ß+ϪA0Ž=-@xÓÜ=†™A¢¤èÓäÙUtc@Äì+$á ú»nÇtYI +C¬\Ck׺K3X‹}rEýkþȦQBô€!&€äûCÆX0 =tÈáÞ¸víï Û©ÝñíMqq:¬®†%”Ûù¸Ï2ø'ý?WaË__­JM5æƒ<$¶£³ˆ.ØT2s3œGÙžÍþApCbµ$`"œtÒ`’µ€Åâ•B¡0^à/Ççýºû{^ |¯¨Ÿø³z#–ùÔ²9)íÀBÇ¥Ú!@_ïúËßÞyûÝ÷ßã=|ø¡J¥’ïÃHüämVN¾ýöûo¿k€<«ó"~ a·šV†e0Sá€ø/3™ƒÁ—;˜îï-д‹8þŸª>õyÿgbÝñ–Í€œ1ÀºÕx¦©¶¨¯ÁÃÅ/Ì\ˆø´ØŽVÄÅjXt'6üYoÖã‡ÅÕ+ü9÷÷>ß.uΟ{ø|n$C~¹w÷ƒŸ½÷ïÿý»½\œ‚l€µ$`þýI~íÛð礷S¤&³Ÿ«çePfôO Þ_ÇK#˜ÚL-g úL€¡Gùljˆàò¼™#ø{, Úgv¯gí´3~´‹M÷>È®¯…>üÒúµù_8Çe ò½­Š5ÚÿU^9Ø%ûC,P°3›3|òñ0+_fšM¤ÇÅä^ÎŽhr° ½ 2¢ö™Ú€?`,`ωu‚÷G›p†p‰©gÌûÈÞP(øc` Ò°ä–6`@ÿÕ$˜„¯…Q#¬E­¨D·ŒùÃ$€ÉX?£†Còïa£uÐ “ =ŒÃpµÆn…Áz´E|ú°ÖX_k ’DJÉ öJ%¾sjx˜A?7ää >f«dwË–9F÷2ìû '||œ¹²w[gÃ¸Ê ªiD•C’†ÇlF]­· ýj9Ƥd ܹ¼ a¶¿ŠXûVN˜e€ß†“ƒ9c}€´>Ÿ³A3™bI~$þ÷½øO¯iìÁþC´«d= ÿÛ;ïó‘[²XšËÌ„³yÇ´ßÇg[d…mr ü%ûSÀG¸tJ`¬‚^wé¾",*Üû„E5êv³ŸŠÎ:u +V/8}ÝY¬²_g FÀZQ ñ[ËΤ0¥ef¸ ÒÂg  À½žVt¶Ú gðþ08›› óéð^˜(Z»_FBHrPr9Œãˆíùæã/ ã$z ËâV÷Åñ×a°„M6$ó3ó‹ÕruÒ_œ)Ï” óK?®–Ë3XåxåòäËå™j©^ÅÆKØc~¾üc¬]\ÄÖfæKÜËWVü*’*ÏÌÌðÞ¤¥Cz¥âøÄΤ0qõÜCqb‚EÜóµWžY€T³¾ý.Ü-а\ÜÇ4 +™Gw@U²ƒÀÒlÅP¯DÊ;ú\eJ0TÑmHœ d3t ÈJÁ`ÑbA €„ôˆ°IäËû”ñ ýûüLÜסYÃO麧çÄÀW™í3ùsìMóäuìÀm>ý˜Óà+-"ñÉ'&ß!<ôs"rÐΜ\' +ϯ¿@ŸBpÛ4 ƒƒ­Çù§ (³S_ép¢ àü&°Õ!ÿO÷þ8˶üúiðø"p¯Ìö¼aì-C„Á µ ¿Pþ$nΗã¯êažœÊ?(ûMnÁãw#h‚úR9Œ÷ëåfT÷›õø(J‡\¬C<ÜÆR›‹á“$ù-ÓˆÂ×™:§êX{~,þ,ãV‘±/Šœbeƒ@çñè#3Nrûq“ðqêO¹Û‹8­œhKäM2¨ß+‘YÀðÿð+l‚Åho%iCÛÙ*êðÿ'Ð*÷¸»£&¨’Àç0ï@ÄÃÐÑ~vJ3v„¿ýé“O!¼eÜ cà1€»ŸÑ(ŒNqô¡´FI—ªC+Ö܃»çßÁiàÇŽ3°aJ† º¹t†#^^NÁ¶pwÞa ô>Ù<• +0ð,b{[…ÝÝ3xÿöÖæÖŸ{g(º‹ÅY +½zÒ&ðµ ì  zÇE˜,Çé«`ü šgïzP¿îJ€CðUu>náb‡湊a?FÕEX–ƒVZ'þrTøŽAX 2—‚È÷¼)N_bÁEðnªñI…ýÍU +½7<ï!Ÿ!w)¿©Uñ𭎃{¹I@ðgíU¡Mkð+Z•ÝÙzÈ›¦õhÀUÒ»‹/Ðû©gT»ÿÏ@·ü'€ÿ´ÿ®œ©Åñ?KÑþñ'ø~Š CÃÃÁÂ|JNž·ã”vèAá @ÿ ø°ß ? (ì8v¾qŽ™yúÁ>O3œÿ¾c?ßÛÜÛÄqN÷þ[›on¾éq"Ф\ɦ£’·: àp+˜/E±›!Pú¯—ÂHÓ¶ ">ÄÐ~T¢jµ^®E Zø0c ŒùG‹õl 'UÓh(ûsì} *–Ê! ¸(Ü=0º8¸ìs*q"Aƒ0„ª=™òÁ„ž_;Þyçgï¼ó†wp!¸»~ÜkžÛCš$Žrÿ»ø> ˜@i*¼Î}`Z¡vü½-F˜&éŽè ƒph(™Ü­ï}: BeD=¿ +x±`vwO÷þ›o¾ùæ¦cÄép•€Q î?%¦¿¥Å8˜[daÒ¸éhž3l,ý^Š£U½D?Æò ¼Â’Cƒ¢Àg"{¤5‚¸ªJ°V±¶ˬoôT +™&CR"Àóʳåëç|ïÝ·/2¼/mL ;)[9p›Êçò;]KæV>OƒYF åÔ‘ &8©"ìø”\ŠO>þŒ¥ÞÏq •éq¤c¶+%ü1迲ÄÀƒÃ;ªè3zw07—XúH RàzKÐÿ´H.ý4]õ1-]vÞ>¤ñ!®¾=Ó’_cl§G¯3&.I\LLÚ +ࣾzÕ4Æ“ËïÂô,ÀUÀ³Œìýï{[»[àÿîÞ©ÞÿMLŠÕg…ïÏ…¥àa8éC8„ád9âƒ9MG>Sàým¦ÖòC6âLTÆŠæÕ"=~ôùÀÆ|¸Oþ˰´(êLý†Ô>5gÏÜ}<Ï þg ÙÑç‘ÝâsA€ÑlÀ~•© 7¸9FÒXì~ +dñ6¶ã¡ã§ïCI]ô8>åÏýUjpÿÚp÷ü¼ûÎÏ4#õ*J1PÓïð>ë0Y{Ú¦—çv?ÒrŽq_²žS†j¸ÿü3Ö'äê,;Y¦O‘f»ÔƒZžCÖ(eµxF}º|Âòô‰{k`o¿'ö³i+£«,pVP/|vÿ3׿æ> +òŸÃ$ÀàŒ?¾ûkòàš>ü¤-&]»¦†Íù—×T}ý“6k*¸†W1p¾ ž9¤´ãLÔNmªsÊÖ°ØÝ?d<€¥2G2ÝÈ®KŽutïÉùɵ]Ùh ^½öê‚ÎŽÐèqŽz#§Ÿ +À”–™ à.H Ÿ‚÷:Itv±×&ýw·¶¡Nðþ¢?à(qæŒÿz8š ~X/ùÍ ŽÙj¢Xî—¯ó‘ý ¦$Þ93¨¡Z™€Ào#XæÌ*À†b‡ìÖÁü¿ã;äǪV'ýº/Î dRñœ_dôd!ûþg÷>ƒ À÷ÞçŸÞwŠ€ÜNéOjÑÁ>†cºJ•`Ý¢¹Ç.A²‚ú™ãC# }&+™ ¨5‘]BRÛôö(Àÿäm˜lüKXâG +Vciûíw>pgÛ;{Š}\d]kÞ•îµÐÕfä)Q#Ðý“샀;Æ/ë.AMÜlþ¾ö×å412sÀ¥¡·Ú)^Žt×ÕFC¡ à³Ut:{?ïlÂõëæþOðþ@[´;$ßuuP²ò°eŽÃÀ¢_¦H…ù) +À¯—ùVм@À)€r^ð $ † +®’G€ƒ—Ù€àܰÌvnü &ÀrådW«¹P7å_£öìÊÇË!'B’~ˆ½PjÅîF}‡kؾï²Ç ÙW\Œ·i"|÷'lÊoŒG’¹œ.oë\úas­~ã ADê[n–©ïû1d•NF•|÷bëCjÅî~øNÊ5N=þ€0Âßc«ÿ,D™UXöŸ.«4¿Ê¸áBðº3”)jS¨‹©+ ‡€\ Là>÷> ¢lÏô¨¥åâ·–}籈€…ÝŸÿœˆ-HXš”þ#½ÿ’0r ×ýÑ,‰a3 CLxÇcâ¿@k ̇ý +`E€j¥Àù”ý•¨t#ÄÄ ¿–/20?\È÷éD*ÍÞ¡’Ì$dýÑ€Þqr÷=¶Äý ßQqqN°mœèaÕvö A ‘zcp¢‚›fÆÆÐ_Â,#ƒÍ%Å1ü8k`&¡Ÿx) 04 Å/õË{æ·U¨‡¬JaÇA 5f|Éò“’(¹?)» K*j§s†Ÿý샟¹ ¤À™¬mv5L„¹ë“îéÿ.NÅÅ/€wÕÆSÏ dŸ,ølU¦´ÌLwAZø ¸×  +xeaaouPÿ[»mèGçwÌûÛŽ`gDs-÷“ƒŽæˆ*pÏzÝô@×óù¯î¾í*×põDýwÈwRžHKY£0äu ' ‚Å}29Ð_ex5i6Á€Ý ûòÖh9€c;¥ñjä¯ÊÂÛŒPR™h" šêـŴ\üÖ²ï8°°ùFc¯½³Ù&»·¶2úðþ:sñï¤!sÂDRfžSðÿ@3‹”³€‹ôÀ}1(€r}£O°`ˆË!_*ÆÃb•„5Y’[2Ù0øâØ`޹\vA5Ë2¯¾º€/ºav™˜‹<ï£ẕ›gU¼ÊÅÌÇÒiú +{©cL¹eOir$c³ŸÓ3û¬Lç*[L…ë6Æœ¦R€íÆ®û#„™QÈ&îÝÿÙDQ&¼àt'Þ³ž–‘÷ÚMs:‡-&yÞ¸B9:yvÌžÁjÿQúbl° –BwD¦ÿ‰ü·EÂ۸Č+âj/¼ªžX^íÕâäÞÍ„Š&ú‚€6•Y€ ª€óÆàô‘4&h-ˆÓ¼¿ŽâŠÅ£qàZãø•åJ%ñPÓÙF¿Ùh4¥®£à©i0qZ à˜¨åkœXÆžä¿:YÖÚÖ©T}ö/z~ìË?žp¹&Ž-ß¼cy—xGùY9[N‡yl¬7áîËå!U±>«!³ +)X—¿üË—^šxéG?êçÿ« æ«Ô}k¬ÞV9‰`•‚™ÕGŸ‡ƒ6ÜìPÐR°©ïç³W–¾ó qp%•">ì/ +ñ + ïãŠå ží—²ýM²Õ`¯ØÀhp¿ïAc3Ë2ÀÊð‹îŒ?ÒÌáÎõ‚‘<+;5ªî8x óAÀŒL=Уš–‹ßZöÝÅÚðû(à+åÿJæþG{–1¬çß“°G|‘G$ Ì'tØI¨]jkT×Ë0 +#cP1€A¯P €åá@Dà1_2_ÙM¹u ~Xhê¼CåƒÅã}”¹Fp+{Ðz"ç0¥ü?âØE5Ð ™ûI•§ÐsJ9h!}V›Q2$Å4èƒ<ŸV:Ê«w‚^¯C;Û{lëÃjûûüèUGFOš–3îÎFŸóñ{^Š?xWŠH”êÙõÎû,Ó¸(çÿÄZ +áßpÒZ aÑOÒ²•ÎÌøN @ðp= ä_[©_» +j([¨5C!ë0ôvL‹'ƒµÌߦ2 pA€)-3À]>'ÄÜ! ·š“Øb´÷gËOÀ|y~¦TšŸ™)—Ë¥òR©=P>>-HQ–¢ä§ëwíÏH äýá©ä4Û?±¸8¶ÑúcxgÅ'áÌd@žv,èá}POÜçO›Æÿ2̲AôýŸY/A쀟ϹÃ}X.¾O€K†wVºliãÍs?µ bÅê;i`ÔÁˆ¯"õÍBj +a>Ði $ €'¨©Œ´Î1œ@xà7n0˜‘ªgz”Órñ[˾“X玩I +ß‘Þ_–hË +ó'¡y{¿ÀóÇÉ­P½}ÀM³Ó~Öp5˜Í@ŸP;€A0P À€®³±õ°mDõpc#NVyð_Çz±ÐíæE`®ëœƒ2Í}”×Í)àË'aÕÅÐn²Rñ _ æ‘ÏYoZ˜ü4ûðD)\¦Ø2XO.^ˆqÀ;ÜÉ| ÁrÀG}Џ/.>æìÙÚçŒRðÓ€èì`ƒ•”c"ÒÔXÈŸÛÂŽèQB'> ð%ð‡ÀþÀD°V€úƒÕ„0<8oùï2HÑw½Yü!Žù~:ñþýR¤Ê‰»åU”ÒéÁ €q½7™N˜8ÉhClw‚ +xÚX€Ž×&ÿÛ(öãkÄþ‘ô×§q 3uÃZÔˆºpÓ}oè壋žÏmˆS€_Ÿ­æ©\²Â*«ˆ( ÃV´Ñ-«Ë Aœº vÕþçS–B™ ehàD‡ç«áà£÷ŽF_¸1yj¦fß¡0:‚¬ýŒ5éGßã7=¦Ð&::‹ÇÆ™!&Ü¡‰ ãgÿˆ¸°}\Žì·Kp[0¨M›–yð Ø  +v pÊÿ˜DÚ¬ãøü3Z”Ohe²xÜ@ô&ÃÍ"Kºða*ÕõçêLÒàg +“‡Õ›/„«zÄÏÈÕ³=êi¹ø­eO©Ìœ À¡ØX¯ãbô&è¢÷·Ï‰w"àÅÁ]úò¨Á—ü6’rX½|¥÷+ËP×}×VÈÀ‰1€cµ=À8_?ª8:LCâàñ|ä¬ÅùánÿEÁ07å1rò~Ïœ*–º|†­Å£p5j±ósCüÜp9€¢ó!™ ­'€áä9¯5ç9A#L[Œ•97ªÿRª>µö¸ <ûöö "p±ÙH’ÿ}gzC‡H*€”öyâg$ëÙ€µ\üÖ²§T'Åp(pßÈÏsÑÙ¥AÛ‚PJ}ôǤ£ÚI ;AÁÆúFm½ÑŠç[­´â>ÅÙcCkr17•‡ÆúÕ¦Gê#^ì>d/¤îì³€2K "²*9A9Ž„ï“»¬{ÛÚ©džz=Ò¥­(x”Á?ÿÀ»s€Í(ôÁ—… ¦¯Æ°æÙ€ “€MtRfÌ<Ýñ +´@ +ƒÇ¢._֩fŸοÛ§B^'•I‰å$¸Bö´36ç_ÔEïÃûø¿©Îÿ­üï¾,åÈß×è0’ݸޛL'¸ÝEC­¿µìL*à,±w ôt¶èÿ1›··rþ;;®`<Ôùéµ}ümÍD5¾·'ÀbgQ(œP ÀQ–ùþ0ŸFã R@¼˜4ÖµçùÁÜp€ ,úòñc ÉHfÂäQÞ±®2úˆ?€^ã¾ã}Z©«^Mé¥î«âïëi?çlµ‰34Š*0–·訶åb¹? 6QîN5À‡jE‹ÁR‰ì¯é Ø™;’´ 9?b¸c>gáÏéáÕQ &ù±U o óF ¯ÃõLjvý0ì&4Eþs­×ÑÀÂ4:óÈ"J#šfìôV)ØÆ'¶@!>—I©çzÄÏÈÖ³¢»¨¨åâ·–=¥ +0p, Î?mÅ_‹0 h«ÓuýÍ€þ;§*X¨ÿ”~Ýú×ÑL|Œ•à)b'(³990ò¿^ƒöZ­r·Á×^ïýû‹ p•(gÍÔ²FéX•+i³’ëmŠÞQ" ãê00‹*`þ™;¥ÀŠì¸< &*sò\ܨþº Äg?™@î±Í ÈgýRg„ðábîô^¾âá˜Øùøî§ìÉüøIŠÚö“N`8êüž÷ÇÝxW•¸,‰è¢#Q»‡È¥»¶™ê_ F®ÛWçz“é—¢;Ùx.€)-3À]>® @±/` ®ì°õÙæÝ +à¸÷çǽѠGì_­ÔPò§`—]yÀ¨Ã-²þ´@}t €?î7Ã*ƒ0<@c½—ÖmÏóƒ½z{`žÈJ¬l"s<ï’M. 1¯‰ÿC-ÔAÏìRì.›ã€&F.U5Z¤½ÃŽÈÓhº2¶²7cìl2“Â=<ï¶SÕ‚hž7ï!Õ¬.…öf Aï%äÀvˆ 1²™aÉòïØ¶8ØOØã8ã{@ê[5‰jFá‰,BÑkºÇ¯× +0jw*Ň­ÏL É'w?ƒÁ Ø_âuÇ•ÃÿWÉLw·.ò¥‡žÈø®dݣܒªË¾z7àF ‰ðZ»ÅÞ€h8Û;M óþZêh1 +ŠÈ‘~¯‘õpÄQ¹U|=¯ú 0œO¨àcqÈ ëS ×k¯aÇn•¡.h>xû¼ÃÏÞý÷o¿f23|w¼¡âЄ–Éùf>´~’ú§Wêñ_Rœ%u‡´‚ðíŸ ´ÿ5X¯9n «5wkr`€êAN˜}S`ÕK`:ýèÚ~Ä7’ê­¤öjRÖ’7ôÏ5ÂÓ‘îªd¬¿#˜!À iwœ—í4?iÿä–a>‡•ì‡"ÛÌhÁFŒýsé}6 ä=slg,•[úaq2TçSC¬Hߣ?ûØr\&½2ú‰ë½ÉtB,¼¨ +  “çqzà4»µ£U@FCþ›gé€ü'ë*˜z=ò’ýy°Ë¾ºÜ×M§³½Åéf|8+·¶ßw“íôúŽí¬BqH-¸–§ÀY“Ün"½1€xŸÏ€eŽË}&@\ïM¦\ +ˆîn7@üÖ2ã&¶êX€ö8®1jߌþ†ýu:ÛŽ'Dí0±Í$«îaýtàÆ|Rð´ÀèZ€Q ñ¡¨…q¼xtÑJ€@µCç”×?¿Ïæ.ÿÀnµóV@B4ƒkx÷Þ":‚‰ùBÊ}‚ÞÑùGXŽž1ØÐ¨¯NÛqðþûïø}0ž¯³þ(hHu:~™‚”ô¬‰œº±sHkúq9Øíþ9ùÜã4®/‡ÞÌi–À¤³i_¤æf*ò¤s ›sË9ÅEòöL¡½%ê +~¾§õïóhÛi:ìU誻i¿JŸ 8ø~)×+ 8’bŒ„"»—9™Òž¬K‰OhªgDw· ~k™ˆ*ÆžI¤±€…k mAîßÒÑþ¶´GzÿM&üØ ’øªã-ŒJ5Lå†ô§B pžv#ý:|ÿkØh5×£¸ú¤á*Î wsÏ –Ô]6 þ7¿¡5iÖ1ý/êïäúºÉ…ü¨¦³;b§à‹i2X&ìË\üáÛzzÀp ô&ÃÁlµÌÂÜ>7c|Кã9 b­‚)Ÿsd3|~®$ýì3°‚ÏðÉ­ù˜OŠ-öüƒšC}‚u">í×Ü»…{µÊuÐ[éæ¹·ÐvÉ俱_$'Ø"ÀM=ú›÷WºØ'Ž™ì» l ã™8¬p€ 8UÀ QRùv¼tlîV‡áz­õõb·uQ `ùâ@ö÷û\Ej¬Ï•yE¥Aþ¿Ï>¬ÙJ—Å(€œ·)Uý3Ë)[’¨€åj2ÇIu±?f l­"l°}…Ñ!7jF0Ü,|  öuz’Yo!øü³#ùL„õŽhÅqÖ=ÒýwÖ5Öÿ1ŽÂç‰ ]#;B óZGAƒ‘¦È^Š_öÜý'wÍØòêœd”q˜@€ÉòöC—ê?ü#þà÷ø0Ü.Ùí¸ÌÉ”öâ»#>¡©ž ÝÝn€x¨eÆ_n~&3±Û^Øl¿K’§äÏ^R¿nEFÿÌû3͇¿z8úÛãäë >o”$­.»ä|˜âþh!¦¥žöY€Ã$I¾±§õ³±Ç]|1n!ínrx´Òív~{tÜ¿X½m®°:|Ò\ Ç)7C˜H¸û¾ ~d5È;m—† åMG|{gM`ÝÜ»þ?y›íkßfã&üAÚãVÂuÓo§©õƒ”ÃÀø³Ù€ìÍŸÌ7mãL Xÿ”ÀÔ<À·–ÀÀ±ßg]žÌ ÕÀ½{ŸÒks÷’숯Rìö 8z&† ±¿áÞ}}”5>á þàƒ·Ó"Î@¡Hëí·Ý#Q¸ÂðñŽ×ÿøŸÿáŸÈûtøÏÀ?ýçú'7Û IGn2âzo2àÒ“M€6Äv çé±€Ž @‡´ÆüÎŽêÌìè˜ié€ Súç¼?áì½Â{~~f†ïñöœ¬zÞLn°Ÿ²çÍsjæ´Àv‹À’¾Ò1žúÀ§ZêánU«~5·ÅSK.Ç\ Ÿ²m¶ZsLí Ÿ¹óbòH@Ÿú'dØ7²«Œ+hr‘lÅbDæï²ûü|¾SiÌWg•y/OöÊÏ:{[ŠæîD f–t›÷#ûPí|îîS+ÕË&||Æ„³XÂ?M!{³£õŽ(áÀÓHGš„T ¨0BS<Ø÷ïá€H¢à>«W(«RMϳ -ɲ^'ƒë`Á€ëújïÕ^)T:ñ£—„ý—*‰]GR‹º¿¿2ÃÀ%P óÄnÇeN¦´ßñ Mõl€èîvÄG-3úró3¨€Ý=$´µµ'÷/~“è¥pS=ú÷yâ×ÉIC÷(I¢ z# ƒ[ÐÏÍ0ˆâ/à“GãÄÀ°þ¬ë¡áÐÁƒý0ï„Íýˆ}u'?/¿.Ü}ø²Ô÷±ˆ¬ÜßË…ä—ü¨FF®wßç{ò0oKåO @ÒqŒíÙ8×ñväÞ'ï¿ú£´†Þ>˜‘̧¿‡HÕ=i 2ô±aŽð„¤‡L>æüu|Úªòž\Ý€`šõœ6îßýüãOèí©ÉÙI/©M3Áx€‰û4C÷ôä.FØ]éRüt|‚ýí¸„’Ö âÇÍôg¢Ýî~ð>¯Ò1 €â{^2Cj—2…ÚJ¼Jc­ÈAzÓ´[ÖÀ»`<ì2°ÛÙÂÞŒhx.Žð²<šÐ£ÿ€÷,Ê>Öåp>˜Ë×W£¡Oã€ìøà§rJ  îSHuÄ ƒc¢T‘V3¬?LâFC}ûÊç5ð}Ê}$¯ñ,ýÅØ¹Ö6+æ;   €¾Y]@*¨ú]ö@úwáì¹q-*;ž˜nÈÙ ·¥z¸GKfYûaq”Æ€<ŽHË€I5P€À¶âNtÙ°\rsSÆþO§p¬?ØipQÓº…aàsÿ u àøìH0ÁÖ#@îæüŠ÷u'Âæ”¬Cp!ñùIÍЦq`¤€ëJÿÒC¹J×l0Àr€Ùd·ã2'SÚ“)ñ Mõl€èîvÄK-3úrsòt´ +hw:(lµ÷:mî Î“èŽø˜”FíýS[7A¿• t°WŸ„§j`Ú¶E`g œa°7{ :ïàBÚç gøÓTœf %§À㜫%ss€ÍéŒÏ´­Lé .!e&팤3>—“q=Ðp<¾Òpf'ýјuŽHEÉqí˜Á<':øJŠÓƒ³²Ç€+ _N’ó„ðC⃔ðô⿱>“LÀ <0é 0ZH+bvÄ­8iaÌýK·Îøç¼D9¼“U™äR :à XØÝZ¸&±^ûåÆíý‡ynB®Ž¨?] ª¤túÌïi8±@ @›7"ªÕå•*t€ÍY8ÿœøà½ ð –;ˆ´Nþmä"ÅѰ# à2á–¤„­¶lIK{CÆYöDÆ}‹*Á]çHkµjƒæDçÇ­z[ÒïÛˇé³Á\ÖÓ‹üø05܃,ÀØ 9Aé µ½©ã€A dÂ!%£'#Œ“þŸêt†J®<½Wá=_~þn¡*ñT•§Ù ¬áËÞº$¤+Ò†ÜC§§¹2àˆöŠtv;Øw«½k +@t&tRœåa87Òû'¿ä8æ˜Zf7À'þIíòµŸ{ißñð+Tý0²ŽÉçÃÂ2@ ºá}’-G|ƒ£>á–«öÀæ˜! Eó`4`8@µ™Ac2xÜ¡`qC´g2°(w +y9ssëη³™m؇ =¤Qn«ÜUIr€ôg"˜h*+|¬6 ø¥-V|ÂpcP2 'Äpþºù<`Ò࿃êýXåêæSôj3ôºÀ/W7ʈë½Ét‚KO6ÚÛPb>vÛ„ ‡Waî”ÌOðþL«#‚@¦ú‹Rø™ó¯üë×ýrùŒí`$N–iC2þÓÿgŠàÈh{®Á‘pñùP  ?Æ_frÂqkÔ"ø]Í8ÐWÛ ·w•ÈÛ6!8zƒÔÇȤ5ƒjÀr'(Ü‘‡ãýR+„¶xBàÙ™eèÍO™ñ‰t ­ˆÊÎÜ‘ô\Úƒ,ñùýÏÔ[1¥ûÇìGì A¯¯ªsîÂ6DšØ¶ˆáØAi™„!/E>/Ôàà˜é½DQÅ'.v\ædo«ñ Mõl€èîvÄS-;YlÃlo¡°¹»Ûæ–8g0aü¶><ŠþÛÛ»ŽCÁȸ %aÑóáå¯ ®{³sz}ðYb'Ô©ì7çïfNžçÛ{¶÷<ƒò:s¼és£FŽ3\ŸÊ\?{èkþKJcGNêQÕA™”•æsàÁœ«ç„’ÏÀõ|ýû÷W¶ÑXÍ ˜#¹ŽÛÄ%¡×ÞZ`_üÚzNj[‘]ÿ›}–/Ä M¬Æÿ Â§ËLJ/"&uS߯{¦ˆ«r¶ÏMi¤]V<ðCp_XL@Kä ›p¿#0Lœê‚dzäÀ³ï?€ÃQl‚ù{[]Š”Ø„ p‚¤¯$ú„¶Ð2$Vœz]Ѐ¤Öçÿ¾C‡9ßóü²7k/?®òïPÏ¢ðô#¿ªW0Ú#ÁÊŠRªV9f¡àiÇÊôç,?ö#‘q½ø”ãé$ZiŽÔïÁ–ÐpÇt§˜Y(þ¥À2²ý}¤µŠî¤4œLV©éw¹Wuò6¡nØ’þ]>"èŽlçòáû´²ÇNÿKŸÐãýùàÊ)ÜM|’k 9 G +˜Ûö +³3lä¦z` @¼ "ê÷  ½ö_Øñ‚ŽúµEqÔÖfÇøoÔ'´X‡ýww]ßp˜BEâ1YiÿØiPö8ò†ÆòíÌÅc4ê›ChFÀ* AÌ&<ݸG™s ¹L®˜WõV²_“ C‘.â†iEջРnp ù¨UoÿäU=ÀÖ?ص8¶ dzŸíy€>d@ÝõA!ª. É #¶|ÜYXŦÎÅ6ík*5fHú´´nÈÞäú,\Á Ù‚l&]äÖ2Æ1왚åÇlEj$ÞŠJ,ú~cß Àî^›Œï´;;;=ë |6; HÊqÐz%/úcÆØ1 ¬¥3îUnà—Oü@å«À!Ãl™#®·ÎŽ·Èú@1_ÏŒøê¨:xÈönT'ÿod_7ñ4ã Y3rÒƒyR´í}sð—ÈÎ}Ô1‹ ôø‘ÜYƒÑÑög#o«[‹E°ëoÒΚ¡ÿø, H8K<>à:/Äx—7›øàîp¤´×…cW† vø3¸,«`¹¶ÊH@ÞŽ“$Jâ8ˆÅQˆ)¦ÞÔ·é&žf|[™ôœùï(¦ü—÷Ø×›ÊÎ0·¹`3é"nn:ÂÑI‹o€ö7ð6ûÿÐ[‚©H»üA5}üØï7=ëü}€Ñ +€Ûkäÿž”,öÛÁÜYÜ}Ÿ×Lësôà²ûû`ÿq €Ým¥~{O6ΧSRÀN»Åòs¬OÅ`=jø˜Oñ9E,qü×*%‡ImÔT (NœqÀ²ï+ÐÙÚÝÚÙÝí\ƒØ“€СñÅÖê$|W +w63þ3•úoííÖG#×üjµ\åsà0 +Òþ"_¨fú§aX ÀÕ°„Ï€×ç7{ëQÇáÊÕEÝýªÎg%¨¯`ê¦ÒÑSŒëÌ çŒ]t×ÀmÓCß܇ÿ™=¥»À„ì8¦ø#:Úþ¦Øæàûçk³©*i—žšÐü J¦¦ž3NQ&˜žøÎ`þ_bP¼O€åÚê$˜€ýbRpŽéõ˜i@‹@óO¸@Ž^»Ää:m¡Ár©5À¸·Ðk v·â­f "êw “iöØ3&wA}”pxn´Ë©Íí­6¦0™¦xœþ»»tÙ#°5¡ºQü_d{À* +ã ¢¿¶¶Ž¸&]k €ØNŸ~+wp<÷M?Ôþ8xõF½¾Æ—c´¶ñù óC™ôœ3ª£˜2a\L`ÂC1õY(>Ïòl@†³+€¾ÿ S6£-3'³Ké$pŠ pl62kŠîÓlÍħ5´¡­ÒFÙ¤æ´äØÝ¿÷Ú0æÈ#º‹·6+`Ùw ئØÙ}°×Yéw÷:mØ*Z%Hƒ­Ý ²‘ ¦FÒŸüo·]ÀoØ-w ýß` Úˆ¢'â׸Õ_%Év¬ÛÉxøºƒŽÉ¿ŽÈF|ðÙàîѾcò9Á JouޝåIÙcyÒh7@¾ü,)‚ìÜǦd¿À°À1‹whLc+Ð~s …ƒ½ÝÍNG{óþ »­Ë8da"êv¯Â£óþÔµ&Ç¿øÕAñaí"¬ÐZ_$? «Âpý–B€áú:2ÉúzìJç„d{ªïG‡/¬@ʵ\`ìù±K—Ç +À•‰Ù‰|N'ŠBÉFBµ0ë‹ÓàÄœ}§§ñ™Ã¿`J©XñŠ3^,j–˜›óùѤï{Õ"§èF%¤]Â0£_ÈŸ,úv¨¦ÝØŸ°UŽYœâÒ+YIbò30íùO%²½áÀkØX#ÿIôTÔ©¾¬ƒõ2 Aˆ‰U)€ +£×!6Öó1RMö\;c6á–¤k5NÚÀ@¯Bþ `€ÛÛ`-+D}–g›j ¶B)Z€“ýô电··§Ë8 #!~Ù3pH Upvo°ªN†Ïœ‡  1Z×ËH‰såç(œ#ó™¿øQÃ\[ (8pé¹ÂøÏ ´Wg'ž÷ÇÇÇ W¯^q Òdö¦gIòa +\.ÎÍ‘ÿÞ,V,SÓà7(š¿(öc¡e²§¦dŽ)gh`¯L®²³˜g +€/e°"@ª` ‚µæ +ÙŠƒ°TMÌ9 p‹6€2\ +À´Z + ÚH‹ƒ +E(Z€ |• @Zp +~>¸¥N*p$§@|§pB>L.2MøzÞæøÏn 5©9Ç@:Íñ1@œAð终ð¸;»¸~õð`÷œ|›KîHj[¡Ðé`å6 çý{ÞŸ׆÷ƒ¤ç«ä¸58qÈMb¦?PŸa_épduëøYoDÐ!ȯ‡4¤ðß‘ÈøB œõk;`OÑŸA`ìò¥±>Ï©P¸Zð¨ +ÐWE7R0…çO Ïí¬À0€MR€åTÙÚe+x/b@JTø²(@;’—ÝÁˆiH°ÝЧÄÿœ ~!ÿáú7¨ZàÞFø øšW$?£NuRpP€’¦ pL2=)Ç wÇAã~½Ë7½ÒÃ?æ’\ãu¦³Þháf¿†…0âÿ@‚H€ŒPþPÁH–bÿ€õAƳ"ý?¿à&mNKœÈ–¤öãÞfÆ^zÉhô‡Št ì;»»Æ`tö ÑY;ˆX€Î&Ï [ìB @p‡”þœÒ!DÀè6òØpÀø‰ùr´ŸÐ³¢?R÷†ÓᎠGÑúºÖ¨¡ä&‹ì8ìÜ ‘Ia•ìÖgùâÇíÐS—/=7îÁ˜(zW/û…ñ+Pgz€˜e € +@FàD0ËM¬€Â €SSTø´$>|ÿ‹( 8@0y•,çz~…Ô¢T -3´`wY8ŒAY€x2þ_üÆ}¥³5þ­Ý +ƒ¥zlüËh‰­ îã«—©¢õ¸ËprBéO½¿´ /¢èp ’ m ¬!Ž÷VX[KàÇÕ-ÌšÙzDhFÕýV!ÄB +€ + ˜;vÝãÿ +Àäþåø¼?‡±—^yéQé …!òw÷:Ïú~€UøwXí·£Ö?h¯ €ª †{¥Ÿ÷ÊýCoæסX Ñ+ð(°×ÿ,`­ ÓßSA‘Ð`Fd†Dîã;ŠÇäs‚<æ‡d¦øþýô¯EÿÜ +¼óeD#)€ë…‰ñ¡ + PR!@`¤Og*¶}Ÿàoªf†*€Ò6À×áTP(€æZðÿ¼á  Š­xdŠtpÚXG¢þ˜a©t+OTcñ/µ +À: ŠÉRWóë’þöƒ€‘ÿ¿å±¢¤™Àýeãqþ–_gbÈ從ïèÑR“‡àz-Z4¡‘Þ,@:ÙsíÇLÛ6] càÿKO£Ì8<+€u{pþ{vÿ÷Î.–ï> ògl—ógøV`—MÚ»»lòÿ¸÷gÒôýÐÒ_x½•„µ |å§Z쬑s¢(IXÉo>=ý=!ø6þöYÒZ" +#§åÏ ò×>øªXÏŸ“¾¥%î‚+>¸ Ö?á2¾…1š`|nâ…Çâ„S©‚B™|·gáÛéâ=ðqº¶sz +²•FÃbÔsµÊÜìœ_ó½)ìr}2ó‹ ½eœâ]þ ðœË€–N1Ö§ÿ7EÕ @\1þ?àŠS°»‡äÿÃ#po#úb­  J9V‘ì6µF§ìÏM ¤:á;Šã2U– 6à×cZzzøh 6’¥ÔPwTd÷»'¿Ã×lJ]‡ Â×pDdªzjˆh¾YŠöa´¥scüéôd0߯¡(‚l à üË §#žFLÌöYºa=VpLìÙ)€WžBðçÙÅ¶Ú {ÎÞÞÚûÅv‡!ÿ´«"ÀÒž~²Ÿ¬_€60 ÀÀ0ïÏT¨C@KMÊ2¸>ŠVO€¸ËkWÆ¥Å`¿§ Îÿ4ë5Ÿç_L,¥ôÿ;µ¢¡å×OþrD!À9>åû»ÿ)H¹Q(€)ŽÇ¯\gÁúÁ ÌCHð$(‰ ÂÏN{¯z‚ø˜åhnަ_¸þi/ðŠ«â½—*|VbÉ´È]Z.–üÙZºzÚÃÜÏÆÁø«•)€çPôOÑBɼQ«è¥ìa…k d8ùáJÞàºÆj·Ép_!àzB$ë*ˆµd‰YôN!`êÇ‚ˆQÐà2=gRˆÔ9ÀĨÎÖê]MÞ’4X§ZT·fj0lÔBSij„`û3ÈrÐ<Ùõ†€òu¤ÂírxZÀ.v\ædo«ñ{ûf6`ÀÐ’ìn£\¿Ëà?¦·þ~wwĆàÀð °L;4lÔé´a¸Ñqï/Ø5Fàj««¸0¤źðàä™AcJ#š$|JÀGY ËšŠ¢`? ·Î€q]çÊωÔã+B“Üœ9ñK§¯Í0£Eà=+@~gðAS{ã_-@¬‹s^ çáÿAhò{γ•žÏ*AÏ f T˜†> !€¡ð¦ö÷f‹øŸO³â?¾þd1°E8@j‚‚3 nÉ4 ˜ÏóÆÀqIÎØ °J¥ö:os{µN¿f~:J€(Zç<è†"¨HKDh>;ÔÀOX€õôþÆ­…Ðù"ÞãjBSƒc½5jË•|t©T—4ÐêF!>:tp¦Ä/G1Nƒ«,` +ÀM +¬TŒ`Bd2ê'ã‘<Mƒ @s-‚¹a +`aÁ™|ÄŸï7ÐÖûÕüw‹‘ÿÿ´çÏWƒïnímc îs “$l„À6KJNôϼ¿ù‡ †ÖW+(œ©ëîçŒàÅÄuEAï\ºý2TÞÙQ[_¯Á áGj@74ª»&}ç„ñXîœÔfû>É‘_mo£¿£à$OýFœ 5À:L\°¦)¦ƒ+ùQԷ¿ÆAÇ€^ðU§`#þZÑÀaklŽ¢AÉ9Òó‡ú€“Á¤[gÐPàÂ?wE.!€€téAp!hx½qéy+º7WŽ8KŠÀKÄ+˜‡zPž¥S¾Ð†Ëk[5`kƒÑ?ãµÌ +–›ˆ—º:k3ÇL;dü_ªbeSAýŽ ¤dÒâÑ˘RX€àµPú 0óE𘘑x>žv §6\`}PT}/0ã‘ @f¾÷XpíÚ+/±:MïíÁ<ÀÑ÷€úÐø8í½ + o` Ÿ‚q€DØcR¢¿Ò±c`×PX ¬½Æ6~ËŒé±ß™¡Â_Tà xø5 +˜Ï € +€¿oŽÉçD™åz)µMøjkEµ!Æ¢>¿© ÅÜ¥KÏ?ÏÙ»2>~õ*JÅ¢‰µ»ã…``ÿd?ü6[ü°®Z` +ï\kvAv‚d†D(Nðý´Ü»Ê@@”^,Îa‰­0Ðÿc{ÉœöFêGÁEš1ËÜ‚b•¹@€|Š¢'õ•„E·f“ükp¹€ªñ¸5sþ„qp‰€œXUñWÃ~ùQȺD¤‹Å,¼ŽÍêà\|pÀ°@µñF…µ9–¨ê,A5‚X T«ûÂÆBœê.¥Åx-Ù,x+5¶3aÒø WsEû`mc^¼¦t¨`‚2 Ø1°-þÐÿÿ!b`ýK¯à_,€—ÿùÏÿþïN泦OÑ><#VÿqF‹;ä¿èßïýwµƒ%ð‹„53¦«¼ š:âð6îBXs + ZlÆÑù|–ù«Öjý-ï¾uXèõ¤>s18F‹Þ¤5m4úµÕn›¦b–è¬](éæ{eoO•ñ„µÄpyΟ¥ì7,ógnÙŸ[EŽe|`š"VÛ,£ `¥. +Š…Y­2ÈvÐ<àW^Ùç"|í˜n ó0å¿Û Cdƒb%ž9Í—þÇÞïf˜Ùªù”â¸ô-òåh¥št“(þ‚„“v]19Ä,Võ¿H¾B +|r$Eœ|ÁF á¿,v£~6Žõ@G ìuð¸ÿî yRí>ÆÂhIBlÒ6ÄñÕ›7W8ÄG`=ÕxxÙª S½Ž#l$ñÆ~tTýç‡8¯ù¬8nÅ ¨Åð@gîЋd¥þÁó7G¦êUvˆhoƒM|¯±¢ p $ÆT{¡³ÛÑy`ñ¿³¯è¿Õa¤‰ìòé!Œ±åæ0ï¯#Y‡ ~·ZPTkµàV3ŒÀgòñŒ¨ÓO¬K|õõú¾)€ƒÌ\Ÿ†èõða+_ è1¬WÜcW˜?/Èb‹îóû!¾œ=öUŒPüç,~>Õ`µ0WQ +`õ:…y±8‡BXXô®ÏN°ϯ€ "êœoc2’U+e¯ÆžPQ$P‘?À†Fr¾wÝ«å'0]òJ&V™5€¯cg¬Ü +J‚b±,‘À€-Füx^Gæ¶àJ¡ÈVT.H¶ä°ñ¸ãìèÄc½£ñèÑZs?úõæ#‚ñ£î?ïÿîèèÛ'Oº`ü£°¥æ#ço'ýK—ô üf’ß~ý¯G|ÍTtØ=ÄÒÃÆ„:|-Œ~÷äèÉÚ7GIòu—o…~pK£û(ªP¯ïGÍ_¯~½Dûq·=º8¹$ÚÔ­'û|s + FÑáãîO½‰,#“7†£…·ÌÀ õø»ÌÉ.Àʉa1€á + =`ð•Π. hom^{é¥쮾¾;pó8(!ÐÒ§·ç*•­NV†`%„!ÞŸ?mGŽã˜‡Ïäw¦„QyßRiòŒ.9ìGŸ¨B~$‡‹å³ 88‡ +÷ùryr‰¯ +äÜ…@[€llTõåÇ 8¾ Caì2‡çÇ. +—_¸|ùù˘ ^xM…'8y3š~¡0Q¼Œg'®rÝÄDVi)ÖcWÚ"Ì©½±¦ôSza²Xœ¸ZxA xnƒß+8>¶‹ì˜—9àœt’cúæ±ør¹7,-•''J3å——^ž‡Ç…çâÅÅ¥¥——«/—Ë‹õùzóæJu©ÌÞ™Q–RH³W«}“¿¥I¯\~yeiqa,Âw¥úr)!µ*Ò°%--â°eŒ–ÒSqX²N+Êåj}e}¼ªN"yÔE&ˆá‘y0“ž sl@ ÈŠ0°Îðâ±wÏc¬óÞ1ð½Å°hsGÃ4wüÌB +$ÈÍ”2탊 ×h2¸@‡´4t.[[î¯ "†¿³Ï+ ­WY„§J: °W=†bŒ$]¨µÓ‡äkžBH{C|Ö—‚_Ø»O QÙ¹~rÛ•îG~ïêAÀlöÒ%kúc_5Â 7¼¬õêÔìuîº|s‰NªŸNë¼´"¥ˆ’ªWö|*¿®Vj«J~€¥òרcvåŠe_EvÊŽ !à÷«³ܼïMù(„CøËÁ:O€XfïŒ88¾èÍÍê̦ÔScWX~±R °}}¹o…Štž+/?êÂ#ïw»O ÖýïÝîÑ~5n&¿9ŠÃ£ÿÕ7ân™þpoa:ê~ñ¯“ä7p—»Ý'¿ÿöwGøt) Öç‚/â/—R0p2XANø¦Ûíþ÷æÍýiñàqh¦¾ÏMžÜlòõ‘ÔØ'vçÂÂ,î|_ @”‡8%p +`0˱ƒ ˜Çàï3@°Õ¾†ÃQÔcÒ±_ 6ÅigŒþfThÀ´ÒspF +SŒ³ )LÕ¿b²–õŽÀì-'¼T¸Ø4ü¦µT_Ç-k xò÷µUÖüØÁÃ8XªßÐä!ãGZ‚L |-ìIZ U YŽƒMi,`ðPÀˆ”sHMƒ +¬·ãäÔÔt0ŸiozŠq kM¸\Ñ Ó/º !(ÌbW|HpF §\Ó?Ÿá†ì4 +W1bÉßpé +,—…hžcˆ/Ã-èm¶áitë/ó9›µ:iÅù€£›ßDá> +ˆ ˜c*¹ekšnïÀj#È?,uy(èGIókð䎿¥+nà—-øPøÓµm{@‘þ;`¨€æo2½äk÷€ž<æãî¬,#ÇhSž O.x$5êÕpÏ@yˆØêlóå|Rüáb%`“½­zÄïík6»T׸I©ë/n¶¹µ`æSüåõ‚F×pŠðÿœ±Ä <“4y]¬!X üZ^üÕxF­zÏ\¨ýèoB X”8ŒcõOùâ^TØ%9oÊêz\­_¬»Rú›Kw–¿4¹/—ñWÀ€íDö!Pi:o¼ËÅi³ÇõX` @–—Ù@—U´Á§àº+“…ôBß/xãÈ}Xƒ’By,—AÑž²~¡ä 8Ïúbœ¡‰Â¸3,¯ôÇì~PÖ¦ú¯|ÁpnY•Ÿ#&hxTMÂða#“‡%ìÏTn4b( 0Ò(Ø8àæø`Í/zUcyF¢ºTõ€œÍà®Sž7Q¼ŠYgE\û!Àêö8ÅîÈ·Ê/˜Qp{pâ +NKÁƒš0ç |ŸF—ÅVãT×p´üÀ-tJ῱}¯y[\Ó˜, +Žÿë0øª»¯±AÀ ¥gº£èàN CÁ@|ë×IñƒƒŠ—TÚ¼ëÈDtB<³0zTê(Ëðè ®LL#Œ³Fc)Î '§ùI2íõ£:+.ØðQÖªäà€œ +Š’z=\qg£í2ØãÀÛWüåb%`“½­zÄïíËQ§CðÊö¶ÈŒÔõúOCîØš%ØLÒ.À¼‚"·Ï;…sÇ@Êàºó•Ue…ùât@XQ¨ جpH¯®Ö‚“¾:¶à/C—%`?›‚ñÁVÕ@„Vù|ç²uPúµõn`€V +/?7ögÏt¡97zé¹LL].Çǯ’ptÃ"ã×2 å¥Wdå\Æg·bZòÚûB@ºglμÀÁ“/h­Ü>f½\IÃyÿ+˜0î;þ³Ò‚ŠÅ· Æ—nojÌîÆ¬{ê(ó6Ú: :ªÆ,Ø]ª€äÝÔQRéñ[o°û×”Ï|”ÓýkXïÒ'K` —…Øš x¦§‡²Zb0„‰º+Rl±Ñh 5&%0Öˆáf0¼Gˆü'?ˆºõÐêþl1M²#üv~@#šç¦·k¡g®¯ÚÁÕòÏá¹Â¥K—Æ®ðtó { €B•qs)¡ Ãj9ÜOðœ7µ‹"Ëê0͵Ê2l²îy +¬¡Ø•÷ñPâëÝfø„Ò[ʼeæz#ÜrëÈcb&ø«óÀQã›:8 „Aî¢8¢\Ö]úŠ)†Ár%DÉÂ\<…ø6j^gzPõ\Šâä??vN-@çCtë7#ÍýaØÏþ»¤Í÷ ý)€k¬ä7ï/ÿ/;Ïm P™€ l/l2¹wEcÙ àëzöË‘ï{öÞ¯“˜Ø>åÕ߀ +@Eä%—ô™&ÕGz³Çê­<›Ÿ~XAlÇo§î©8Ö¬­,À¯ÖŽÿhàXÇÉ*°Ì»\œ"ëøÛ¯H ÀÀ@Ë”Ü3z®1 ÈW¹{aÚó +³X®@¬™ð°;\?ÒšÖ¯çÉnŒ¼Ãü˜er|øß9ÖY<_€X¹<`Rîs¯PkEðô™'Ç5‚Š^Òó7,:üm¥Ñ=d‹@¼õÜfÅŽú Ö'Íð·$ [®[#@†›˜!LtT‘ÜÁ¡Ö*ãÁ~¼Ä܃ŭ ÀúÆá!F À‘å_ìó76’@’Á”·†Gõ;‰ü¿ÌÀ#D,fDÔœÃfͰ¹€ô5ßÃØ.xÏwóßo,@“4¯¼²Ëirß¾0˜7åÏ”h°DF[ › îqlQï„bÛF³ã€6\ ‚¤ÜŠ D¿½Õv̧°„¸!Kúj#ȶÓÎΫ›×^ºÖÞã†ZèV +¢?Ƭt=†0l&aœl<ŒÃ¸›T¡µ‚Óh«=yYàã¢}í, "@Ø´{3¬£‰poãVÜ=êVcÌâóîÞE¾¤³q»æø¨°Ÿ:~™ƒ´øšÿG¹”Wè_(\¥ gµ<«þÙ‚Ÿ¿Z ÆØÖ›*ø¬Ó×"H«ŠÇfÂ\m›Ó¤!kõ¦°ýrSm”.3â×Â6Îùþ4“ñg! ¸‚[r¶âÁoà 2€Ï¥|ÀªÌ Irø¸GGOºõ£øËÿƒUñqrøä°ûÏÝ/¢¨ß~9N ¤“£ƒäqÒ=üýÿ}üË¿áÚ~Uöûû£‡€m8º1’<ê%ñãnÌùø÷É =yÒý]ò0év“ÿ†¬Õ€ïîvw +<°CöLi˜„eVýóàñãoŸ|ûøÉïŸüÏ££î£5œ [DŽyD +à0ôróþ£oˆƒÿËìõøÉ!›ÅÑGݘ§ù[ø¨'ß&_Ek8äf³l)hd¾ßX€´}{§£jÀuý½œ0n»] þÕLˆi´‘\§Ýf `¯ÃžÃ;éVBJÿ­-÷¼ü ªþÒb•µÿUúöùzµº¢‚£á'9àZ’Ë®@V @ÀFä£Q­.–ËÕ•ÿ*Ž;߬×ë|A‰DÀù¿uZ¬¦«ÏÅüd4Í%¬öO—ŸØþ¯‡?c8ÀyZ?¯ÚïÔ&pbœ­÷¦.¿8¡~ŠZZÔJ¶4L¸’ûäe¶×Jn{EéÀÂp9·ã—©°dßÉq¬Ða&xØtl5,<Y _áŒÇ—@ù³Q R›c„Çãê¬46YA•/Œ9Þ +IÔ|¿‘tÿz>úöI79ìv“äÕÂíÆë¼(Bl>~|‹øm½)½ åmxüÿÄ¿>ŠX^ ¿ Y‘ºT–Hâ£î·G‡Ê'PßOšûݯP†gë 8©zÝ-$+¸Äqð¨V cN’xÃ~pØ=úÝñ¤Þüç#¬pGB‡|Ê0Ø?:xB¡DA Ðù^ %Ùîï‘“¹ ûä÷Í_w¿I¾A¢¿>ì>É`ú?éþõR÷ÿüÿ„Á*ŽÒuçà0¶Ã@¦¾ŸX§U²ßV-À‚=égÜ'l#nmÆlag§MÐé7yﯓ ä>ÕìÊ?ˆƒÚk«« Ô=¦¾'dÔã°â£<7"Àv¹"€À­JÈ<|—h-¨uQøš1Z6غ(6>`ÿpì ¹£ºEÿðÕ¼Æâ¿~CN[£t]¸Ä·ˆe”øÊû…1ˆt #tðñ.>§‚9ÛÌT°g±+³—¡Æä›f蟷؞A3jNP˜¶h?+¸3Ò à)±r’å•´0€œôªqc•³èÇ/à ´`ÿA*»xŒÙ³àÐÚÞ°ËÐÖÆzã_þWûµªoG¿aÔxzR|Áz˜}¶l4ÂÆmü¨aNH½'x…"«S´ZÃÕæ¼ +2Ÿkp ¬cíÁÁý¯‡ß~[‡¦àë¤ÄÏjä÷apëÖ­´‹¢0jÅ¢Ôb¶hÐ"­G_J‚¤¬ód5då!„//%8¹Ê¬ßz¨öŠ9Œ¯»9ð½Ä$ëéôw·Ùp²žs2=YnŠí±© [ÃÑí½´¹õ€`ÇÎuÀûs‘®A°²ÚbÜZ-™©ÏÇÁrP©ä{öî`Þû/n.àŠY-n–ªsGÁÇJöÆåúR·Æ6®n÷"hXÀ‡©·‡öÇ´³Zæ¦åÿÿÎä4( ]-j]b‹ µ * ÂY"¸Äyð0òT€WS/m3òÕpàPï˜euí…v`t?ÝÕV]a7(,¸¨¶`ð6¿¬Ú Ð'Åî¿Ü)š€×rx7‚颟Ôo•y ÙT´!!q+UÏûÊi˜€ÖF­õøñ’uÓÁÇÅí¡â£fx–^ôTN×íT¯.øAfÊRÃîZ‰ÿÕß½qu—B/›Œh}j ˆ²¶‰¨Ò[µþæà¿ü×ßÿßÝrħΰš›¡·–ØA]#æÂJ±8ƒÓ]ÁP¬w«0·d êa‚OhEßÞÜ_Â5üâ\ƒ—æ4n´1¶ÁÞ¯¾óX7¤ à167_z‰,_h“þþlýÔÈÎd5l±£p£?ÖnãTL@epé ÷'åûÎÞüªQu1^ôÎ?õ÷}P^} + ¯@Oäkn±9¸ß ¾0|¼ø¨ZMx'kì¯ò¢éòÜÊû9êóç#=¨£ÇÀnm,3 ú“ô(<§7ˆ`î2]1;ãÑš‰ ”ÓÁs¤à¤Â8¸ gï_À +PB€´§‹ÇÛ“ÛM_¹25Ý3 ¶ ¬ÈócS…?C¢|†‘X4@plìvØ`$k0Jûóô¨¯‡aK$1õà-‰õÆÆß6^ƒÈ Ö ‡õz—•ð"5Vå’¹4á¼Ýlõ‹ÇñÊþ­øÁ ?(O³â {£´æÀîÁÙ“xàMûìƒý‚`Uû6Zû_[ÿ߃¸ìZñšék(4ÕxLô”d°ÚêŸF\wï©3ºEîóÁ€î£µˆM jþ´0àsØ<Ê«€ï%à{›%zÜ€¾ówÆÔNG›ÃØ.£€ø;roÿ I0$괯 €³|Á¯Þ4+ÝÈ:ŒAµ /|ƒ­<}ßó +Ó`lô„|.-øúH +€ Ry\þ°»úÖß>F®ë¾ìžÐDá +áLù‹4®`«€JÀ Üöv¼ÏŒ­Ès"ÖúýⓃ'Õß…Á²Wœ6Ö[zß}:<kÓÍWße, Efv·¡^Y@úTd4ÿË 6À&›gMÞlãd®Q3ÐXó"w`&Œ°¤Ï> ÉhD!»µ(¨Æ0 ©à'ÿ] ¾8®ÜÓ€øZ;€¾gœÀêÕUyüA@U„«A­†Ý:»g`£Rkx18¡Ï¾,êÛλ1'5Î +=$ f±À9{êF%¸y>/¨¢8¤Àóc—Á}€K,•s3àòxáÒepZ`ü¿¿ÞOz‚;"->Ò'Kö«Â‘…}mA`=ñÃÞÿT.‘a22pK*A×:)' i}¨fvÐŒu¸ä>]+!®Vâ£Å·qkÅXl7ýh• ׬Ô6mÕvæL÷æ~¹7«7ë`®x•ZãhÉ)`²PsÌ9¬ÖZ­ÇKÝ ÙL˜'ÎÞ+k•eÏoE²Ƚ0 +*!Ðx!üþ†Ã“›^ÞOTW¡7į‡ÑÑâÿ·˜¾à¯æŠ»¤¶Üœb ”‘ øþb¹õ6‹¬t +€F`ç§læÇ=;( 4Ú§¸…S€ý‘îÎËÿÙAûǺ~è.mD~¼^;ª_I¬/Íñ@_Ÿ€¦j`ÎÑÑ€ +Q7ÂnP?ˆÁ}e¾‹bU4w‚ê* ¸ªã?;b<À2¥6iÇÂ÷¸µ‚E€ ?vü·F0± +”°'ØkA½âØxª2½ ޳h¯IαpÀZ—2ll„æïHAמ„éànWãrÜ¢ß ÀšuxbŽáBe†ÙLû5j€J¥öM5¹¥ +§¸e¾ <6'â¶Uym3L€V€pÕƒîJòM½EÁ>{> +OÊG_ÄRìŃz°%|Ñ\«lÜh­'åß0%l„”ô+žžb\ òUe5…•®èV»]Ab9)‚ø(±mñRÕ*T|V¹c¤ÎðÝÄl±m²ÛnÓŸÃËÃ8 "À©¥A~.a@ +`WE€Rä&\ÍDÿQxq´Ë#€'¨Åqé”ÅB”é|¾ëa‚¨~–€Ï^óµë 4—+µ$*w£p= ùgÁ~ÁˆO0þOökƦ´êüïKnVžZ€¼ÄZú~5¾+éº1ɸ—s©uè€KÏcâ¹Â” ŠÏsÁ2·ƒ ¶`YBb‚¶‚0—2ìÎ%J *\Ƕ—Ø‹ †Àq_AAÏ›«ÔbVÑU¸|@»Ñx  ²¼U4¤s%aLrg½y´Âz#ô¯À(ƒ+ŸîI·ÂúaT¿Žêå:ßÛQö=¨‰ô‰æ @;ÌùP™Dr¬ D.šO8]Aã‚õ|ÆÀ$€N¾¾ +€?ÅB2%O4z´uU—š´ìa jý®Üýºµ‘,uaAf‹ÅÀÔCTàË(ðìcöH +óÐïðâl€ÅðãýßÙ¥!0À8lD °óÖNggÏbl +ŒÕ°+ê(€GÈØ9ü¨cpëƒ >(ŬCÿk^Z¶V‚·ïx @µÇÛäk,€{¬zÄþ‹$.% x¤$¬ Çd÷þb ÑAwèÅÜKÿÜ +ÇŠ§CÊûôW´[Së@ºÓâ`/Ë0µŒÿc¿àösÐ">H}…\žŸ)q!-h å \¹Bú3AgR0Eb¥3€TN±þ8,(/×6ê1Ì·Jü¸p…ë|X–’-&÷×!^«ÑÔäÐ3‡Eõ.½¶ã¿^î C©S¨cI‚Õ ªîGÍæ­U¹ØŸ*ÖBuãG¸´d¼i6a5œ@RÜäÞÄ €€óT& “†3R[$©(hü§Aà¢x‰MÞÂ…ê}0\V¾<ŠZ^©Ä  +`ˆÀÕ”R ¾ÀÅÜÓ€ýµÜF`%ˆÛÙñ¹®;ÕC¶Cz-h1`ÙŽåÀ‹ìX¯´ÀGw—c!þXpFŸ•ç#!æ;DÉQ­X˜ž 6‚ˆêe/`$n)e½¶Œ«¼ž•©å¸\weeÚ r, ƒ¸Æ¦ÀËØ‚ô§àË;Y@`–HÊõ° +ð¨úã€ìã'8JƒT 3À‚½75ËÓ¥Hþ0 +p€$Jp$˜ãI2“øsþŒ`GáÙSð©`=$Nqí5h‡2Àí$ùM}i?‰Ã¤þ?þE†ço»KITæ¨Øï@l + ô›€ï0àèÁ/Æ;Ûm¶àa! ðÝ{Ób#Æ™ ƒ€| ô§ôW›H¤Î_ÞŸo Üíïp$åÀÇ=ˆª-Xäce€W— +àÆ°v}1€Täk²Çeîg`›ó$ž‡_­ ËDA…(kf¾ÐP1ÞóÇ}¤08:üðàÔ¿7“…ñ¹JÄÌ"/µ€ýú’¸üÐñÓË%ý¤ŒÛh|#ðÛ­¯$Átqv»²7òß@Nö~ÄÕJ #zE˜i{Â6p0ª‰ôÝ”™ù@Þòƒ¯fÀîô,:òœ‘;•ü"þ“n·Üýçî¯ëKõæ7|Òï¢îAÔ`÷`Ýů£`Ù£@îíÃØƒdæ©*KÉÆ‹Å« kwÚ;»*\Û†!Àv þíìaü–ínhƒãê˜ tÞÚcÅA†`Çb@&@ôÇáØt°‡ð6¬ÀJŒÒw#>8JØl²ÁV[yˆÀRzt°À \ Àžì¯àj³0],²Ø“r’Àóàq÷ Ü`ºÜüâ×­»}d  ~ˆÐmsˆ¡§Š~Ðê®%q³›-hvž{$¼Ï ýƒîFÎúa·ú¨k;³`«µqø°ZØå{ÕH¾Àæ1 ûA‚[?Äî|2p£[«ó|(4FA…wÏ?ÂF<ÆWl¥gÀ¶ ß«(cDQ »±÷.æ+f‰¤'q# +VQ+^¯­{×cˆy¦’½c$‰½«>OÜíê5&GÝäIýQ½}óÍoޏ‹ó~¬Û}òmõèÒuÊÛ€ê ÀƒŸÝŒCøŽPð0 RîÆÚNÇ:ùFj|`o c +€ÛàGc +€…77Iÿ·öö¶Þ€èðõÁª0”Pz9ᅦ=\' =0tVC¶ dØ¥¬Öš¾[i YÏõ,¦RðøuØFxVVðÁ¡Ã•*Ÿ&ÃÁ$_Cõ,àZt—ï¡1À¼£Â +á»!*åÂØT¹̯(Ÿ¯TÙ,.þ¢_®ú¸|+Õ±\Æ:üzE?œ¯»[ã:“¨c¾êOŠE슩E±Z¯.zóÞ¢W^T·2¸Ÿ‹‹åê| ‰Ü¨VyˆR¡0SV|õⱆJGÀÁ L ÓNˆç£DÕh5˜ ´2"3(¶™š˜Á +ë¾Îuqм鯸¾3õ/ÃþBVVnÖ_^ªß¼‰ÂæJu-ª×£GÐõµfíÏGk~¹T(–q4K ÅXàŒ*àÄÞSúïò—`w« Ë!€•"þ‰nc„ X@aðÖ^go6c³³GþoÁNq7îóþ/zÀPUî®QˆD&‚‹ºª4ÉØP +@æö”vù"@.ÞJ@£ÖlÞIk!q4Ÿw¦ºÀ–ÔÏÔà€rÝÝì}@fG„*Ü•1Ô¿pÕ›ðË׫Ìa,«ó~d—h§ưf¯Ô'æ<ÆÀ²„£ ¸¸@t{,4·/òÁ2y¿ºƒ«˜ VãjõòvÐ}¯P`YyeŸFmÂIAÆ„o¤Ùñil|ìÒ¼SŠ¿ä•«\ºH/¡× ‹ ƒzbþB^ŽãúDO²_9Ì!wÁ,ÄÖEpï'_~Ù ï4Ãf’¼Ü¬Ö‘ý|¯„"@3R¯DÆ@OZ€3ª€ ÆÈlµê×pV/}e»½mOâÛÖg1€[S ðd6e Þê0À°ÁÂÞž6ä`¹0使إ衆kˆÿOÝ~ã–ÕÀvÝ(¬‘0pz;€^p0ÐSZÍò}ù$Ö—A¯¯¢$ wè ‘ÐzÊ|9ÿnÙ?/m†( +ŠÅÙ‚î¬Þæ¿z#ðo`œã3ZÕ:;…VYka¯Ðd¥à.rð´Õ›-}Á+Î(ÊÕh#]؇7xX­ëU=áú:÷ŠW Œ»‡ñ—_Fû_~¹oI1€âŒØ×‰¿\e ÂÖ£¨„| 7¬|óWÈöêûÓ¹X…üõhªà¡ ÜŽ££$9LžEpFÝCv)'-š$NÅÝoªGQ|Ê÷`9ØQ4f¾X‰Vûí´;¬`KÀk ? ¾‡ù·Þb ÐLÇ^{ï§2”ïì¼%p3H‹{ñÖn÷yЮk +ðTx WÌó÷‡i΢ðÍ·8ö,@.ÀºVà!‚•ZÃî#ÿUô¢BWö87DvFOú‹ý¢?À‹°Òþ¢?á®O +¯piª°ìy³`:_^Ì÷ ;Ú²BÉóiÈo«bq¨U¸_R€Ûˆ2‚6Ö;ޝƒªÞ,²Œ"aÙ—nnvk‹ÅÂØ%ï:#Wúö"HÆKì8)53úõ+“·5Ás„!™C™-¸d•%”ax£8KEB4ÖŽPÔhÈÁ +еõýò7¬SÈ €¶Ï3ßm,€Ì‡ØÁRzôÎRr +`F` Œ¦£;(þïíüÔÄ€ë„ßÛÚSC ½=BIËÀ ÒwWÿ?³ËDì—ÃÞœλOŒ~0‹XàØ³a¸Ï @ªí2ºG‹>凼ÊÅÀÛŒáõÔP8üÐ!åp9Oy‡Ü¢âŸƒ†¥âÔÜe¯@‹@KÁÁaŽÛð¥ZeyHBÀÜÜbÓ9mLPI‘–ËZl˜bËFð¿ÄÁó'jZËÔ˜Ž’b:H…ݺ>~a¬ø"òsTÀz/&×Ù¶¡Æ Öø0#vˆ6æÙôÿéÈXÛ7ŒY-»Xó*à±Æñ¶7Û»›{à·1–Àc(âï<ØÛzKÁT+Àó±ÄÞÜé@ùï±±…c0X ÕÆyB,ôÑpž?C,Ý‹Ò cîÙœ Æ%%ƒ³Àvïìµ|`@ÁÇÖ¨ëÖƒZ7ô#x‰ ÷ÜÚ8Ûà®ÙÏF‡ æŠÅÙ G-áEçzù†~βëa­\*8ùY±àWÀI|Šz¹¹ös›’£¥`Ž+ÕÑ)V>–ûÞ\ZY_*Ú€=ìaIK$ƒ_™ ‘`‚fC 1سjá + Ýv‘š`;,³X€ @Øh¬ãhø$16 _>îª÷Kd‚×rCÀ@¿ øcö{ '-ÛñÂŽP,¼±¹½–w:o²*ð-è~¤®³átäC,#`¡µÜíÀè¬v¶Øl`ûŒDýwß»áˆï°DZI^9 <Ù«X!öÁû~0¤€~ó-? ©Ð§*|¸;l…á­A7XÌU=À k@‚Ž÷Q4Â×]îÿò +ž“ìñÆÙ qÑ^H±›ÐŒGV¼±>&bø ØxÐçÆ¦ Á¬{ã1í¤®ÎùÞ“"™jë§ØòXýƒ}œËÚÒí¤ÇÁm7«žÔ§æ + :ôô4eb…+ž?=ej„ 6€Ñ°öHñjPk˜`Hž½Ñê6¾kì(^bmdKñ k¥s€ úMÀw €þGÑ¡½×ÞÞ5ã± ¾û~ $~kùðßÞÆê½ÿÏÖ.œ< Û4[{Ûmõ „”õŒì ƒ ³ë¼‡ïž#~ +¾®:‚ÉÕ28ˆò qv€m4Ä` #c}Ž~ õ+¶èªE­ q«Ãy§¶¼Çé§HúÿÓ)—ûÿ„1wË…9ov޵G5ÖMبXgEÿØÕ‚ú2g¿åÓðÁÌ\PTÜëŽ ãWì톩å _.[`¯—Æ®§gófË`G¹ÂÇ[0>quœÓ*Ÿ¼[ys~P¾ŽÅùU…ƒ~©„<, @Î'‹Ý¹“ÔöÖÃdŒÖA³?1d4%òÄ0víšxÓo¾‹X6éìî½±Çmp €z²j>Ð~Ë Y½YÏ¢ÀÖ¦5 +f`gowáGlÀ¢&àb—Ý=žªóþïuòÞ®»ì)*|f v`µU½H‹ýEÜ×¹ø¡Àm§(Nipì½Y `P¯½öšn ÎàÀç[IqCùÀpk3Þ»—ûÿ„\¥h°çsˆÀ;$÷ékJµ’>y¬pI¬„ ÀÀ»€±"í•1š»íÇÒ%Š>˜ª®Î.å|¡‚KÅ-®Œó7“¡X´¬b‚‰ð] =7öœNZ7ßñ¨úSE–bo h vËq‹ìÇ$¿Öï)S9b£•:¼`Å™Åc¯¼2Ô<ëX 4ÿÞÂ._ +®ùX ¸»»ðÒKo¼aO wvÞÚÜ{°õ€½ý€Ö½$ø[[›,à$X ¸û`waá¥öÞYˆœç[;í- Rþ#ÕÝ=ôïuÅz¨ÔØ¿V©Ä~‰…ðEØö9Ø€D­4ûcCÚœþ^€,ÀšÀœ`¶†é Q[ ¢²XSŸ²ÈÓ|SwÉo#ûhÊeÿ?N?… +ãðÕ—ø>!GMõLLÍyO=¥€S|Þ”ÇçôŽÔš´À”^_ô"¤ÂÔ4ßZB`Éê$ ;d»Þ}CñÜs|©aJÔ»“\—HÖÚž{ÎÄÂØ»EÉ>EØÉ§*, f°ÃrÕ^cŽS~kEµÆF9²,àM! kú0Â<ãX¹µÛî,tTÿ¿ [ý‘,Š[Ûí7`¸bó­½YiîмÅiøÿÍ7iXÐY¸öÒöÞð¼ÝOm îÁàüyJðþ<Úîî/~ñ‘KÁ‡½‰ZP.M>eEx_'qBÞÓˆÀ£€{ß|KÀ!Ïìc“~P[^§u®Á-–`cx/qS|‹öžý›£{÷.ð§2@\« z <î¼éóσfˆßsÜy°pîú*cïåW@&=9Xk„ëÁt1ðP’c7"zz¦]¢Ó,Z‡áQ' á@@ü§ Ó|(mñié‚ÒÙ‹L c|à Çàø$†€çÆØé¢›$ÔMŠÌŒŠøçáÔü+¿ºŒ¹Zw~LçÃð_­Õ€ƒÀlT ¢Í¥«àtƒÀÅTÀ™béä+¼ùÂ&(ÊÙÏèÏd9°çÖæÞÞ[0l¼µû€a@ø0@gýˆ¶÷~ŽD:[»oñ 3èl-PÐûÓÿÿâïÿã/þžÁøØ3»…/ÏTÙ3ªƒøñ7É#\¹ÌŒŒ ¾°ÿqàþ@“Í3ý(Ž[ÉA´%aÒjm`MÜZÆÑ«`>k#nñ4ËãÏñ?›Rfùúc>L~…Ä*^-–àÉaôi¥ú<òüUº† À¦Yï°$ µ¢††øðèñÑCܰr|pøøñïºÝ‡O1ºÝ˜ïõJ¾z”$_ðÝbû_v»GGO’nt”´âFà/'Ÿtùz@‚‡å‘àÑ}0Øó¯{j,Àz©IIü9º| ”jhP"˜£ˆ™E!¶BbÌt8cƤ¢N/ŠW»È¼­VÆ­l0_eQÿ¯È7 É¥õàÀ…TÀÙbÛØr«Í$>€©k(°G m( +ö¶@úÿ#zÛPõ8<ˆÎ–@oª™ÀMik÷82k +àûwö~JÃÄSÖ íþpÿ¿µåj]Üðz–½ÒÌ̤73Q*M–&'KPÕ‹‹l”íM–&Š““(NbfJóþÌŒ7S.ÏÏÌc‹E¯<3?Sâ0 |ìƒéÍèÆ`sb¾Tú1FØ|¾úc{ ds3löÍ›Xž)sÓ‰ÒäPôl¯³!ÇøüD/ðúŸ,€/uŠª^°[žðJåÉ2îÐüÌ’5Íxó°€÷W÷®T*O'¼ª¿¤,[¾¸¸Ä/ßÈYÁ[ñ¹ßâRù奲ëí{éå—_^zyi©ú×7—ª7±v…» C•¼jÞiÞ¼éÞÊ=ÊEdä?‘§€/3Iu2DÉ”$éØÌ?X3Yò|qžà9 +“3“…^`.VÖ›)-"_—fñ‹\ËüV]ñË^uYn¢4Q¸<1ÿçŸrÈÀÅTÀ)±’ž´Ç‡YØ”ØÞ^Ø~cw{©>x °bÁîñ p„€ìÀæÞÏUªxÀZÃÎöÔÙÜÔÙ ¨ñ º>0äõ uj %£²Ùb>·7ÊAxÃ¿Ž™$h„( ðéù`5Ôó•é£ùA½À€ÊaÜ ù¼Å8ºƒÌSÇêO2V{l“€0ÒØÓ8nÉ[]]žc©þÌðøç`dÇp<ð'à:[¶é?êòQYÜ‹d±™$ûÍýýC3ŒÃf7ù¾àî“îKAµuãnÙ¯%Ýoÿ»Õæ&yŸ“oÂÞb”tþN>aç%qüÍÑ7}H)þ’l|ÿõÑï°>¬#…ÿƒÏévõ^ßGôD¤# pc#¬×1óÏGÝ#ä‘(ù×îQs +âÛÿ©ýË¿>9úöˆ0’h_*´§)4oQ³ ï.z~9ïÿFÖº?´gÜW‚ê#©Qfv¿tŠÂª rÈ)€&àÄ8ðýI}õóµ@óðÅA»³¹°ÕyëÁÜÃã‡@à‹ú›Hèü·vv!¶¯Aì±@gÏí0”-8Açÿ œIg`¤wX +*zS^ù•hÆ«û×yÜ* cÔ¢ˆ%wlòÙŽU¤pk0¸z¢ ûñ£r7Dy.&Á§ +- +€‘¬Ä݇ê4XÆ’ø%AmwÝŸóƒÉoxÅÙôô¬ÈóÜF¹ù4ð§z¾A7 +d¸)µÕ°Û|9J0MJ5ÁC”ÓÂæ>ltÿ¶·ø¢¬,EAÄWfñÝ»AZ(ÆQ5H`†Õ„°ŽeøÁ}F11~²ß}rÔ=ä9iú¹7õv2uÇßÚ-¾bCHõÃ#öFoDq·ÊøQnäS<8lÔh=d$nEÉ“XFDÕ’Àu”X]àùËʺQYdTv©!ã‹)æu®,(Jhº×øE{)Gÿ&àÄpJ‘>³€cªO@ài¶ö~ñà­_ì0Å{ÞRЯc½ŠÃ(Ú¹p­MG;·:Üxws»ýóŸÿœež§ +¢N +”UÉ‚Ip0,y‘®Îuè äyiª0ê'^}1U?ëÅ…‘U– ÛKû•JÐpWW?m¬íIõF#<¨U"¶>ˆZaGÅ¡Y +](ºJቫWNù\™À}FfËø>:€ G€:\ºêŠÉ¸ +GK±^»¹V_Ó3¾uŒ9ßhü xÝ€±÷K0ß|ƒ®{uV†õ„›[«¿ÞâM殂ÖCj¬Å‡Øã·×£Ç1îF²ê™ëÕîNý—(À“4¢‡ :_¶%K°öò>ÑŸàûAùãdí ¶¼¬ŠÅ …ÂÕ´Š1*!×Íáüf+a07WiÔ|³DàMÅtÛ‹ùE€3˜€‹Åd6øPóûH™õz6¯á˜° ×®-°óï…7wX gÁQúßwG¢JòŸÙ‹ßB“ðà¬3„UèlíÂln¡ðúËû¤ežoU¿¸³sáL5ÐÓ`eü'ƒ!¨p k5Öâ+B§\€M`høN§/fèÞI5ÏNòû½w=ÄU†dk­d#l°úZ IÂò¨}§_À=,ŠãWÆOý`Hðr,·Q:Ñ‹ Ï9üÐ!9àêàúá®Fû|7˜a ·Â=¨¯Ó[·Z1Ý?¨¿ÍÇà䯱×6#¶¦cu.vg¶‰ÝÓù\†·»uvé³Ñ::èn´V­2Ç—ƒfà‰ ÿZ+À3€Y¢ÂÐKC€u-EcüçŽQWa„¦r°ƒU ¨^Ò àß‘¹æ`tææfù!ë.yð‹³Ú¶”k¼h€ N5‰ QPžo²T]Ê̶ÙÜùé[{ðøí]¾û³ÓÞú9>Û ±mƒ·vùf+K(©7QrÀ ±‹ñÎÞ6¶N½?õ†seÃôþðoÅð€´$ «ØáÃÉsUÝ‘ÒaÕ €XŽ/ÉÏþ…x + Ù_ Ù§ƒíŒvûŒÍi°52´¿NÈ*ÏN°µy¸aÔGCJï^™p^cqäð‡ãÜ"‡âæâ?sšPŸ!„¸˜¾BÙãÆóáYŠ@k3«~±ÕZ4'ÈV$çã·|kŽÒè®EÉFc£õ_‘Z«µ^áËAAr¤lC +õBs­ÓË+y.-1ʤŠŸga¿ø¢ðB g —¬n~muRÏð±o&`nι;ÞfZ훎73d -¢Ÿl. ¸vM€ý÷¥pé@H"м²¹Ã~¿°ög*8úÊúHiívÐß³ÀP8±Í7ß|“û_£~@*ËÆü ¯BQ´‹SSøÓ6|í¤,äèHIN @! €øVwDDå¦èÙ+lHÄWJðF .ñ“\‹AùÛ~°ìߨÒB°¸Uãul»±¾Nш)*x@Öëx/¤MÏzá‡þø¸FõÜ(7ŸÆŽâý?zÕp ¤éê­(,[§ì@\ êì®×M¬czÅ0TãÚΜ»Ã:Ÿ)ªºâëä¿Å{´”#:Z‹Àß¾}G àŠ S9 Ènèà´Dƒ¯ ×<(£|ƒSµgz¹†ÉÐЄt­d æ æeöœnSDåò¸˜Fn×Ci«G¯p¹ÈV‰Å«–«RÀ\ƒG¥ 8Õœ3°À^®ñ`ˆzÑŸ)P€Ë8EÈ Jon2Z(Ó°I¢—€2ì·Í>ÿÉðMÓÉŽÂëhhd ¸ˆï XÀ%p>ãWôfJ\î_ß2ëXËT)ÿ¤wî lr½Lò³Õ5ù¿ZkÂPÝ‹ÿ [Á"וV²HRÛ¨±$,€oωâîø|’CÀMKíÓñ_ü@2‹*ÛÙht ¡ø“Ò"üKÔæ}In÷âmGB8bN@ò³?~uðÍÑ`t¸®`AÀün¬¯V&ŠlhƒÅŽ»–œÌ¬H·¹·6Zðÿ4;µ`Y + ³%yPÀ0×-Ú§Š_Ä,£X¯€QŸ‡&ºŒÔëb­H €ªy6*@¾ßÕ`†ïQZ¡·mÆÚ¬’'çÏbÎ Pk?µ€ PRu;IŒC@ðx `?-f1¼¶ðŠ˜ÌvÂØØB8ÀL +´¾oR%¨m;  Ùpxô‡DXh‰lÈ®‡zb K® ˜9ù~”>§G¦0•d±ºÎw +ƒáÝ—i¨òka w­ÁòÙÏ@H! Áøn™mÆØ8Š@¢¢bÇÃy{~fäà ¾½xð÷†r÷Þ?J'z1€(lÖïˆ?hˆ“¸:ïOwÉEï ¬×ÈÏt=ßò„q\vZÛ 9îªùãÅó@#bk?¬]ß`Ü«°Éz£FOâÖÁTÇ:Tß ÈŽ‚†€1 –ãÇqeW’Ø^Kn'·ÿ: +‘ä €Ú*ŠÓÏñeŠDñraŠ­ûÀ·.aϵ±LÀåçóŸL-€h˜ÿŠ©ý&à©cÛÛê÷ïø&l¯]&ʶA::6ñæ›°.V(6ëôHî6(TŸ"Øé¨ŸnD%chóÍ6½?èÏR‚(‡ò?QœJÔz3õâu+¨4€ç/–S߯?8(WCPŸÊ •ìYþWu Lw)B¿R Q>Ð{\` °ò»bˆ‚ùÆÊÿØÔ§°N%t|/*ÇÈrÄ­0¸„áÖ±_ø ñÚÑû´@ø¥)€ú?…6]gúûhß)xaX9è(¼Eÿ„‡M½†[üwžxÕ/£e•OÙ¦†±¸ ‚6¢¤þþàðoZ”ôl‘ëÏM+€#1ú›ÚCÀ^HƒzÄÕë°<8z>—ŽòÖ)s„ŸuÆ-êue =Ý€ò;¸O·OPlð©Åi>˜Œ[êÓ´…q1Ö~\ÅT_wº xÚXÀ{êöK½ƒÁ8˜%Eþƒ½HƒÎ^Þ{óM÷aP–§ H­@ϵL¯–áÙaŠ= Álp7.rX^†zç×=8MW½\…&_ ¬Ûãüâ"ŠðÖAˆçýtÁ¢¿—Ëìš÷Êö… ïG5¬Eêh…u€~E€_@6¢pòµ×^ãR§)p°©â‹,’ùñ»lîÞ¤7îýó"~ÿ(7oÄ™øÁ[±7ìvTNÈX»¯ËûZÏ›F€Ñó}FÂ$ÀïõFÍ/–¬f/¨­vqÁ×%ïid»¿¨®%-Ù X˜~v!bà8Y‹¤Ï^+RGñ£¾Ô³>ü?~Ø9T§Àk³ÕjÅ+ZgdØ»”•9)QQN±4™Ù¹Aè{ÑÜ4r:õìòr%þjyŒâ.2tÄyú0O è°&à•—®muX‰ÏýÔ"}.&à,ñæ›[¤‹ùÅ4‹ $¾3 œÆ‡6„ l½×¾†c°ÔŸ.Ñnój8èj¸ê0«‹Ö,HeÐS¿›ç¡x€ëš@ø0Té)øP1„ÛjÍ(@Èn[qáÅ~·ŠÑzµŒ»@ß/ýÔ“Ln¡0Uï.}#­Ç\H`?ôø*Ê[¿sD×0*PßO À£? >ïò¯^ +¹x0bµ¿Üµb-½Þ€Ý7”ÊÃæRȸÝ^)6 ŠAq²†{¬íIs>¬ƒŸÑÆÃx¥Ù…¡ÀÌ: ˜Æ–:à @=ð¦Ì­ -iŸÊ0ɳƒãβŒ±Œ?Á^¿ kŸD#ìhÙ Û±‘Rˆ¥<“+ÜÕåÑ +ê rß°sA€x¦*Àböþ¿WXWMé¾e²WI›g—ÿßêlJÐÇ£lõ[PF{ržF¢+0ÏÃsƒí½6O{a›ƒŒÿ˜|ÕýM‡Uweƒâ¸?9kE€YkÅSÎô¿ "ûtýÃûUgáj²»µ°“õ|º‡–Wh ‚ö¿ªRXVë,Œš ª-xRM¬WðS` w¥.ÕYP þê‡^d°K ëÌWgÙŒâÕm%ôzJÂ0*Á—ÖYbÌwÔâCPŽéjP!ë~bzj\})…°»ÖcN2 +˜n²½·)ÀFj0ñjû ÷7 ³YÇO³tþ‹×ÁcÊu|Èw]Ùh%°ŽCÜkYÂÚz௮®†q9a00 +|…úîD€;Ï „þƒý| ùœ¯òù?V\=ªî·,ØÛ›–ƒDb—›l¬Û©ÁNŒ€øY +`íÝ ÀQ߀«ƒÜÑY§® 0g#âœ["éÕ <¾hǤø$€Ïµ R,–Aà’aKD3‚Õ4 +„¿Y‹¾Æ°j[d¶Õ-ÌZžXËTõ+Up¶Z,x ¾+î9DGK]}œ›cÒ[ëU'U¬aÂFƒµ0´G<ÉðheŸ/?çÁýSƒHGð|Â[qÇô|uM7€±-”Ÿ7Ú¯¾¡vyÏZ`Ž/…ÀæÛÒÿ®@úŸ†€-‘0R{kgg«£Œ(ÎcÑVl¾É1I‘¯0ŸÎÆŒÛí¾Êclnó¿P!pñ«,ݼÁ+bÀmæ%a³J¾YuâEÑ + E|Pƒfϰ%KAÄþ|y‘A¾Û›—v]aþx1Ó‡ ÀE‡ÅëÙÜÌvÅúx†½±ÃœX\à:ø?m +à‹•/™5ùž¹QÀ­Ë†³Ä¢;½"@ó‡ltåSàžãrV`êóÑ:.:®)O¾7¾Áðy1q'[! wqPñ¬Ÿ¯Âs…Iÿ["} /Ö=<ìvw";ÝG_ð1½£‡ÿëÉã£ßÿ.yˆEO’(Œôj@{ºpŠxÅ+…•±BÉZ÷'­¯Üóß"ºâ£$>ˆZñoq×yï[qÂÇð#ÜpöýëÚžòÎ +…Ò zï(è´ºÈ0Èp‡q+æk½»1NY­7’Ç|rÉŸ…Ü/\™¼2Y´7?yòí·ÿó(†»Šº­Vü0é~ýóû®`اû/G¿×³ÿ˜=B @o¦ã,¾z¨( Â<{ Ð~é%¬¥HC÷¤{Z°œÜù©žë]x‰E­¥Øz“µšÇ¡$ýYyàv£`ð FÄçU˜Ð«íÙª|!ÔUs­îO\*\¾Z˜(N°y4±XæsÒ‹~u±ÊgÀý•År¹>_æsÿø]¬V«(°5£X„?fsnÏõbG=Žm¸ˆöSàbͨ>oløáAýüñßIvñPbÉërar"p—X’¤®W#Hî`¥ªRøâ¶Öä çÂeõÜ3ÆD lM7_=¨5Q(.Ö£ª‡{< uÃ8.^¸Ì=ÜþÄeU½ÆðÅa^x¡ð2 K誷X­¯ý»:N¬<‰%Wy艩I—w~~,ÐãÀjÅXÅ!ùjÒæJ½ÙÜ_ª¯Ý¬ß¼¹‚¡º´T¯bº^¿!·¯TWþº¼Xš,ÚŸ_êR¾Š¡U|‘ë­ðV}_E.g‚EMëê᤻Èn›îÀ’š&ñ£Å*ŠtÕf¬×ÃÑzG-˜]Æ›÷)ôa2VüàÆ$_(éSNù¼t'MeÂAHœæ7:!Ow‡àŽêbÍz9øCŠ€?`-€q7…U”cñ¥ç(ƒ+ÕêâJ´árÁO«'Çf½¹.Ÿçþ`j¡ð¢ƒ¹nóÝ á8ìÂ[Ö’‘Èyö'èÕ“GðèÞì•ñq)ü«l­;>Qà5`¯]4¦zMóÈêçØ¢ï¹Â¸k¼Sdäù!ôËévã®ûѱK8¬;ë[h­u»›aôMòë#‚d‹ câ&…OrÅ‘¸{ô? wbv€@=ÚçúÐ3’ÏÏXlïmóñÝ…W^btŸ„'çE|þjİwØ(ö•ÐÚ > àxÜ“jÀø¥˜ +œùÞ8ÆæŽ¥óÂ0úcÚÑXŠ»n£œÔJ"6œdõŸŠtD³~ÍçþUFB!Ž/"½Õ7 µÔˆºKì LÅ+ìI„Ýê +i—<„ÃÜ1Ã-vå@n*ÐS-2(„ŒtÅ q¶ƒ?ÃN§Å~ §Çøtû1ðïnþ0CÖî+HD’‰pd##2øõªÅ"o kg3€m—Œ™Žpi@6€6d||üŠW|ÅùqlâŠôþÜœœ³Í–LÉ`xc(4\*ò%!s¾Kx+ÇøêP6PåžããŽáe¯L¹Âý ïyš±Žcƒaâð⋈åF+êëÑJ­ƒßþöàðn%iÅânµ‰ fоØxÈaµ2,Ãå cÏN°Òo{mëuž[zzíCp{îDÓ±kS2¬8`-€Ûlg`„ÛQ5 ºv Åm´½µýs­—6¯™y¡Hxƒ§¢=p þÑÛ‚€¼ÈÞì,îË,›ÿ†3‘ר¡*Ûñõàós‹-?VƒÕÚ*+’ëW%c€QW÷™,—pT«Õô·Õ +ðÙ‚ ˜@¦³{ʨ!NG­KÌÌCŽäÆðühH º3¨˜çûf)~H0ªdÉU,>—öõ™¡%žk/Ösû_º21nÌv¬¯5Ã=¹9WL»s ¾(¤Ûº×x8ŒÏA'Œ±/ßô¹|,¥yà€)ÑjØ/s¥íÁ +Œ®B\\ñ +°Iì”)jWeeC æÆ¯À¿0³14È,E O-ÕãÛÌêŒ +2F,Ïú!ëµEy?\ÁàMOñ=\äƒÉ`®7 1Ëấc€-Áž².Çuƒ79ÓÀ— `[6fŸVa-Aƒ]KÏùjùÇÕjüͳ+&Ö¡Ô¨ ˜MjÈ„ž_kÀ1ôw80hž +€ PzøÝ„ û-DO»¹ž]~Bì`%üjøªP®¦X¶ÇÁ0µ pí•Ö²€”;»lðÆÂ{ܺÍGtœ­íõÊÖ±7¨I@Ñ5;KiðWÑ$ @(òRÁoÈyƒ’˜QŸ`ÝE3äµü}ЈªÎXc °¶Ê¾ÙÙtÃÄ„)õÏ{:½Ê3`k-ŽŒÃRZ+šts6¸Ñ¨@¸ç˜` àßQ4ÃX»`§¸ð(H)ßæèr1vŽÙ÷²ž1@ýÛÛþ¬#Íg§¡å\çr »0…¦EuͪÈ0;ðõ +­3T.?Ï£iKYd 2ù Ó™š›Ý¹¤9Íq“ÙâpÇ`5 Úа²°ÆUy;¹;ÖOÁòܲÛ:kÁó4À³Q`r§ÍW \þ*c|®_°£lêÑ î£z>NS@1˜à¸xlÉ¥8L€H_¶÷Iµ€Ø ìt:°/-,ls?@Û¹m…·54©Ví’PèP³^…÷'ðM4LÈu ~õF5S·¤äù+€ u$¸š*ª²œ¨T)k5Λ”G°Bðt1ÜÆ¡ + ,Ðü=`<é}7¸>5mÝçð6ð™lã>¨EÎGh0K›óûÆ\õµ35NÊÎy_b‡œn“ ³|—·^ßÀ_ovr\ +À½‚.¬ô±¦P„ýàˬˆà„§´Ì‡“b°wF·o›§·òŠ×}uP!—bÍØ •MU]ž«´TÀ¶9 1ÏF€üÛ[›¶Pùœ³\šút‚B/ÿ†è´Ù¾Û^x…ï l[j6þÑÎ*0ÀÆB|RÅ‹íM= HÏ@n¸€mZLš¾Góá.Èëø×TTU™R@çMÓu¯‚ç\áLÔêNð¹_š S20 ÒdR´@%SWdkìì! +_w:µG'±·mè Æ@ÿ;Ía1€T0ÔóýãT àxÒ–ÞÇE~Êqð “³Þ$ x¦ÅøŠ†ÒùÌ®ÜnŒ5 ™+ðçz³,>½¨ ÀŽä¿re3ø`9Ćª··gÀV\˜Á=ö¨ÜŒoá’ Q*€eZöús²к!1X€œ@Z(yñY`SùÛ WA5X©òÆhÜ(ÿOV¬®tôø7öÞ60°Ã'†Ñ@"Üõ¹àÑ®³H²ËÃ[lcjŽOðùA=Äz}ÞW€9À^ŵÁ}¼R‡ßǃ{†D°5…8Ÿû ÃZ" Å~qJÔ•aÈ£FAa‚çÔZHÃò·e®bå”<Óm©À/²K*ù—3™™h× +ãmØ’äëÖF«•<ìþËãß$¿mF Ý›à3:‰ü¹Ókù*Œ0Wd.&øPúëö&æàñS àøI§w+àó‚Ü©ýŠuÄ> *úþm½DÈ +] õØl»«a +`ç]œ! õMï¿~;¢` €´30•*€åã +_öò…©T„Y7Žtƒ×ØpÀ)zùLðy€^ @ +€¥5Žd›8¼®ØŸÀ +`h Œ8¦ò1€Hg¼Þƒˆ¢º?Y˜âKºA9>ç–"ëóñÌa .Õ“Ø4g›/6¶Y ìAþ[U¾&"œC¡Vvº 3HA¾˜,Ýn*nï³Drƒ%V+SÕ#šÜ¦ÁóË%íf}3»a޽SùULs‘?Y*ù/Jt0âkVû€´ñŸ{gТ܎¿‚îcÿä88©Þ¬7ù¶.I‚i»< 0šÃ(\Läò.<¿"ô›» ¿-$ýI\NðàXÞiï <˳µuMéîÐàGE€±i¸¨£Ç‡PÎØ]Øæ1°5ÒbÂÜVì'^g+i  §p7ó +@1€ã +÷÷æ5§G+€ €¼X­Ôh) @Äž û<×SgްüÏZÀÀW2?  ¶;ƒ({¥’ +ö>_Àƒ{ÓŒ§èx YÑšṵ̈Ñàe÷)¬öf–| Õ¥2›é• pÛ“U{õN¹¼Xöø&žùry¦ÌwHUKa=Xñùš!ì¼èÍ'žG ¼¸¢x€µ -{óóåÒ2`É+ãìpF8”Ë¥*ßýƒ±ŒgRš¸:Q­/Δ_.ãSx^ê/_f£ÄÉ©ÒÄœWb#E6o-¨!§&ðŠ8‘˜kÉÈ‘}Øqu(.¤PàÏèùÆ,ðm?H”uì¨ tÚ»4Û»íö+Úˆ¥¶ô‘€î©™fggaK@áC61äS‡ /]k/ðé#‰Ìºi-E©9 è°³¯ŠSœ[å+˜cyÀúbÚ¨?ЫÈÇàCpJljüt1€×Cèÿa + 0ߤ,ðo°òCvR¼ê-‡}X½ÅW7†4üš¿¾–'!¢«~ˆ‹HÝ£ôB>¼cNû‹} ¸¹I½¼zT1×F·)¬qQã¸nàr‡fµ%Ý(V±×ù„æÞÊ# +“pº8U¿Ì”‚/£ ŠƒãÆáøþÌ-žcÈâ| §T'ùêÂb™~]û*8Á1ûÈNã¬9˜ÅwªP€v™+N³&AY§@ÞŒ „²ÕnP£-ÀÅT;öÞÜ#¡XÝY9ÇC~LœGàK=Y_€El DÀsâ¦Pù;z@1€7èÜ·7÷À{vøÇR龫ÂJ0[8­;ìv:áí0|p+ _üXE€Ñ1,1ðßµn˜à-ïS뫯UV8±€ â.—Ÿ>€£ÞQ-àé + Þ¬¯8¦üÛòpxˆß°„;¤ÙE{º›/‚ 'p?´Œ*·!(¾`ki¹M›A”ëÍäv‰Uj!ïÿ2ŠþjôÅwÎV—Ãj9i„Ôî… +“Þ +¶TR•ô¥\LÝ)g«å°Î™ëÞ"óýf¹ì”>‡pK¡w‹Yßi6UØ\õ#üú‹STóW\Õáĸ?=Ug›½ùœužj×põJa Ìbc\"FûÁ"€¢ï#p^ ˆÞ.«vAéW^jon³¶žÔDª”òä>)¿µÀ +i€Îî66ºÆº}©¾dLd°ÕÖ&’E2|ˆ›lmímíñ8€] ì(*è•ÁÍðv ÿ¬X® *\j¨~ÅT ÀÀcN3sùH½Ñj¬Çu6Ñht«­Özƒ}ÍëëцœÆñ¿”´ä¼P””»LG +³OˆöÙàL1€(€¾¿‚À÷^ ÀÈÙ°‰¯Ç—ÂG|]V†*lù¬§ýña8¯XàØgXŽù¡Æ§¼£èÇá‹W½ò \1Ü1ùÏ—HÕØÊNÒ/ª–[Œ +È3X'PpÑôÈGz'X½AgàMàà=ÐÚ”«_¹9%ÃÉ0¬Ì‚¿á|ܸqîÈ œ ;«6éè§ü© ßÞ{%¿ŸÂ\Î\±4uÀ7Ýc ½€4yö*€a½=á÷ÚÛTj¯ÍNF#Q’eò~.îÔÆ\g{/-(¸ÙÙÚÖg7Q{AL/@õÓ`ØÙCAâûêt:T8Û­­÷hØ)£›ëa\ÝÀµìSq|@Í>ÖjGÁ>ûTbd¦uÐ…î‹?‰¾i†¿SÍ Qÿz ÎAet«_> 1/À°ƒ‰õ`#\Ö‹dIà˜8c ºsðM¦pvŽ.ÿæÀ«8¸¿sˆß`&ž)‡±‰¢U'×AY>Éé–‚¤¥‰`NN:ø+ Ê ;TW¼‰)¿ÑåCŽó¡O6Á©Aø1¿ð­·0æk!0ûÞtar6U9¬U¿ôbi¢ø‹e˜ îP "¿š¸3a Ÿh±¹øåb±„©Ú‡´µÎ@qM!û¬ƒílJ0ÍFEXdÍ’ÿ¿P ¶ôXÐÖy¤AÀg¬öøBÎÏQŒg¯ o0@G]NnÓ¿ƒ¥\²Õ“‡X >`ûaȆöÖK à¹ÊÿdºŒðƒÑ;{Øp‡e °„Vbk¯«Á‚ïÒ¸`1Û0MÒaw÷x;€\ k H{Oæ?$ý]ï½G7£„=°ù4‡ñß6ý€Š?S`ûã¥/Q ‡X¯óˆ2ë +©@³Oà–┞2 gF(€!1gP>u”ù7W­=ô¾W +Eß/%Q—Zåef7/a0ÙŒ|¯Ì.áé±çèóW§'«6öã¦qT­Fñ$ŠôårÖ«Ë? Æ>`ØzŒ°¹xÄElwm¨{ê_!ÿ±„C`çC+Üð +ì ÀƒøÇ&ÖZ´’w¹ÖfÔ,³S™¹_¢ù(PGÑ +(Jòȹޕ+EW¤_öJ‘M ÁrÉ‹–' ÅÂØsÞõëÞuHžÞà À3Wò»Ðó›íÎv¦µwÄL‚Þ™ÏþnínnR£skÌïîÒD¼´ÉBýÖÂ6õÛ"ÉÍ-¸|쳇ó¤—ûQ*û;?ÝÂn:F{“‰(u¬ÀÙ#° `1¸c§`GÔ€øòþ|Û3ö€XP0¿‘»ù5Æ·Höè4€Tƒµzð0J^®N²ndM€Î°"À> ÀÁ¿=Àk8s0(<‚›ž¼©~‰ÿì ?UVÕâÔü"ã6|9´æÙe'(‹’| €ÏvN`¼ÏÖN³©Nð^÷<üeƒÔ,©cä‹Ã³S{{»»àíöööÖÈɧÈg$Æ6A|ú‡’ ÝÝã+D¸˜£½öÖ+ z¯ + ØdfñŸs»;°$[ÁºÐš<ÀIcc(ì2ö˜=_lüýÙ;ÁYÛÄñW ¿^ö>T´ò +€"@ +€qý>à €½žªO¼vLÌ=] @ÏŒPCb=ÀçDqþ€¬ 0 b9ðÙIÛõÉð6¯xØlNÞºm$–¡ +Ôh+ôKµÞNX¡Õ•¨Z*•aXëÎûŠò?‹°Ãœ ØÁ h€¥€YŠp,6Ý£•0€ÛQõ…"ßH­p£ïú›]­%AøÅ“•¦jHt?ª®àŒm©ÿÄ<€€ÍSvÓ¥Ùì‡uˆËåö`âr¡xÊDžØ{hx–*  "Ò§³Çh}zgÉv*w¤ÄÔ¶`øphuÖáS} în¿Ä*l +ŠëÈHvœ¥wàÎ÷4ý ÀÎÎìÖ^gëUõ"°µ·ó€ïÅê6ŠH<£?­K‡*LÇÎlÊîuÁÖæÎÎO)@ðÍ……k»›ðÿX ãAË yñÿ§îo›Û¸Ît_œ©xB‰´ jBDb!®b«v5ÃBÔbÓ€ÔDLHa¾¿BUðPCÇy3³K/ü1š ÜG›ç¯¤-g#NíÙ]Þ9•/v~×½$H‘%;Sÿ}ƒÄC?w¯u]ëºïõ4¬?Õà¤`JÔTm›šPùŸ^¤²³ +@f +à +ÀÅ4õœ“S +`3ªý€Þ%  W3&N㵿ç$bÿ‰µW`™ßËÈëZmGÿ´™—ý8¾OákPˆ6‚È»¥tª×­íP¤@7Q>ŠƒRk¸HœÊ.¥_¡(¢2:OÑñ…ÈD•ØúÅ©ó—F¥ÂGVb[ãõh,QÈñ¥1â2‚BÁÏ+ƒ”=–¹8÷áÍÎ7(f8Qä£-‘˜ÉñÄ +'„øåÄSGåÙÙ¹8Ko±¼ô) +ø±T€Zå[¨¯RÙŒ•;O»ÝÏ»(€§ü±Šsæú~‘®pÿDPº¾}¯bm‚\-—ƒ`µÚ©rÑ?Õþ½]1Ö.¼þï@*þõgGìu„ÿ)øcý‹ÚLÅ\ùT>§ŽÎÄdNx€¦zrI @9ç4 âèÄtâë)€ÓZÈÀpí W‘ƒèÿ`˃k—™ž®@P– ’¤Ü\ †RÓ0®âð_ä½oÄ^!¨i`߆€%›YÔ£¹8YÖ„ªLÂxo5¢ƒ­~D‰[;¾Àœx猢ï:®…σ¢ú&hVy{ºÊ +ÀØ‚ÔõWñ-ÜqJ¥ÑVæÛp F%ŠSy³³ó¥%®Xñ‚FXŽðóU‹¡#æ< · o#ñ½@+ÅÇ?ßÔ˜w'¯éõYhž!4úÎnù;ÚæŸî´;B7å¶‚ùÎ*•ÊÓÊ +hG§Ã;;]÷ر}™O9^1è‹–)$ÚÙ„#)0 öÏövwQèˆäÞªñnE{´{}Hã ü{oÄxþy;…ÿ{ÁßÙ[€`¸DL\ñÃ1€oÖ¼S @MÞ7 ð+á9Wù@¼~’AIêq ± û‚Ôê ‚´ª©Ì{lKÿÅKZ G@NF¥º~ã§xøÖRU¡C@µÖ®"p ïpZàK +3…hXàÞ¾8yÍH¥ÿÈ*À–š‰à ÆèRpà  ¾Ò­TÚO5¬/$¡Y½¡ã‹m{\.hGÍúVš Ï*ñ;Ý^Emˆtžáeàö«ÐJåÎ=Uª±óÏ‚? +yþ}®ë|-ÀIK@zQÀAî¼5 ;‰D®À[k,pU-À[c”ü*Æùx»˜vNÀP.6‡â \u˜ˆš9¬þ1žV݂엽`MФܚlÿÔ™…ùä ¯ÐV–cº4·Òmw£„£¯’KðëÃù­À€(€dKß¶8 +û[ƒÕ¸É,s%I6L4οyœ™?í!K‚0êÀxR%çéâðŠFë¯6=°ª±Ìêëjâ‡óïk³ÿÃDÄ„·ìÝ‘C°j~›’F2ôHýa2ý?,Þ ì¨7dgnZ~O–ëÏö@ÝÚõi1ÉiC€–Cín·‚g¯þÄrxYã^]-Ò^\@Ñ¿³û¬ÓÙßQ7¹ðIޠȢÝíü²ÝWSg9üEPçÀ¤%`žBÓöÒÚð7ÇRQ¤f«•¥G­FëèèÛjsó? €íÖ¶ ÆÖ«†.6áŽÇß? AYš½l‘êq+Ébd€ÒMÓHû‡Yjê²Vè:òæç,bLâYn71½{M¾L}lƒdëp‰¸²À› +úe~Â?™˜îvX]]ÅYæ±*hÙ ãMŽðG?ÖäÅÉCYp:·”ÿ‰¦‡jÜué?$(Ü,E‘[aü)N×⤦ܬ3ó}´Sj±_°.cQf–´Z­ß´¾;AçÂÕrŠ®Ë/£¸¡¡·”؉5ØqL÷ÞåáaðÊwûöa’¨qŽlý>Åÿ}RÑÔžiè§s׳ò+S’ªµjíÑè{«D„t>1 +‚Ô––ÔQ `»´¹¦[i£¦E™ä „`ô÷R­ ¼2EL!ÑbgLpü`=õw¬P̵RÞ¦øÀmc³9÷®œ6¤´ .€õðë¨A€Â 0èSÌ÷]-!¾Fìô v½ÃM°±ÈÁ௖F•î„&ð×rš‹Zæ˜?cÇ)Ù`ÜÌŽ_Mt^:úówý÷×ãïŽÓêða–Ž¿ÿ.Ëþü2ÍÆ/³eEò—äy–ùq¢1š¿É …qzü=GrÙ‹lüïÍü&ͲC`9FÙ¿gGä¬8J¿gš$Oš«bßÜÿw«8hæ +€½ -`8nñ¡Àæf¨¡ã›Ã髨Ã̈́히^ùC šž&m¢$#!²ô%Z|’ÞGÁHj|;þÓø[7ßè¯ÇýîhÜhøþ2Jü’üu–ŒÆYö}š¼ÈIÜ Iê4ãñFIš«µ`¡Ä£ÏŽ¿wfúþáUºvx|$dR§š¦òˆ£!gÍ¢M›Ý#ÍÂñ1ï1—š´ŽÈ8GÇdÂM’Äh);JFI©À!%Í4iÆ/BïI’QÐ$)©Â5:=¼€†å>q$d½BÉO×tüS›Q¡Š½AØû©@[m~õaÒ¾" +ÊõfŸNLL¿gÀóÎÎàó><43PÝ ð—3¯óöúHÐÌ·žÚôÕ™@ + ­1Áð34( 6þŸÃjbtþb"1À™¬% M¿|Þüµµ»«k¿ +…¹âry-7Éä<ÎjÔü¯kþðaèW}6R¯Q Ç—UMBò‹Ps‘Tn®­Q’FZ^^.—Ëšaä×ZùëeíîÝ»Õp­jÝDoËÚ‘³ù>˵îÄÎüp&ýo…ÿ% +à’¾S +`ø Up€SМR=®H +@0QÃøy¶&!\@2 ùŸR À3½»\þý³Š?Þfgo-”—.ß-/¯Ýåio®…¾¿Z.¯éÑß]½Ëfk¶iyùþ-·ØcÍXш1j¥à×!»’â¤)æûeŸÍù^öïþšc“æáÏ­¬./oÍÎËl9™†ÃY³úer“¦œ1ãäö鯅ká]Ë(!ÔË’»å‡j7¼4qíÉ®iÚšUÞ>øÉ\¡¸¼09ˆ¦°)ÃÒËÐ|èNNÖ°|yùÖ­¹™ŠåÍe.íáé¿u¾˜ÞSÜ£ì7ìÛtÿ|¨ï˜¾ÇîÜ«°Í½JŽ}Ç šÒC{ÙÆl¤Z‚.Â_õ\O›ÃY­¢ ‹`Y¯WéõÔÜ`ÐQ`Å@•Št5¾î³õ)ü1S\ÑsµÕoÚ¡'Ùÿ'¾ºvR ¦P5‡É‹Ç͇ÐôëãcJn¤À߆M! Ú‡ñaœ6aãM +z^š’êðŒ³±›“*ûõá+MÚð§ìø/”1zôyúB£½f'>®0‹^[L÷8«&1)Ñšå±3 +`mU +àÕË7Àæ#\€Wáíó¦åý»šŠ0é›KŒUZ¿H¯ ÏÒqÜL²¯bRà}÷—ãìÊÌø IÆÏ>°åp&HgÏÐŽþñÕõgiޝẩ¤Çÿ#³oÿv|7yuˆ+­É7tˆdFˆ#6æ G5œôWlëŽ5‘væÇcK†ä¹:gùòôØ·‰Átò?޳$ªÒíp‹|—d_»”·ª€qöuœ,•‚92¤6çÏ­™4ýHÓ„£qžs Ö¥‹‰Ég£l5潨ù]û”ÍñK){€§/üO)÷¦²Ü7}ÇÖÑÏUˆ;*+(kqGS‹HÐ÷]b«(ìä XûÎ`°»ó9h¯¨Ã‚ŸÍ?g#Ü„¸ï:ÜΙҟ“ÃAvÞ;Óíšóœ{Ö¢ø1¥¨¢ÜP=À_ž rϵ\‹ñöhÜJŽŽFãµ/Ù– 74jÕkI†»iPª^i9î¯Pï˜VO¤(€š‰‡ŠL+€a¶¦9f6/t&öäïÎ<ÑkYÌ—¢F£•޲at$­ÿ\•µÑÒº…ü' 侓†Lmfx±ãÂèqÜ`i˜Ž“xc#JŽ7£1©d‡mdÿ^޳»êg„¥Çýáî·JYÒõãBI“ÍÈËéácš_:(-E£ž½.D'y|[>TÆfÄ©-ga^&­mGn‰îÉ+}4,Ĩ^.ÖgÉšNÓàû# elµø¤­ñª_/îD OÿQãSÀ{¨€p«¿œN9@Ðöõ®pÅ=0¼§*¾œ¾Wã! Šu± —ãø÷p Ú;¼Š«Ð8al­æ†ªlìÔ¹ßþ¼Ý·Fêx¶ôÏåvªô°®4µÜv Ðh( h öqxÜÊkøHÖeòˆž<¦IžÕuhNÏIßhÄx”Gü§k“äUçÈâ‹T‡z» þl¬ +€ë(G§}L ÞÏÆ6§ÝI `íIüâÕ›1IÈK]€‰åHýûXþ0Þf$YPšßh´’V+‹‚¯ ©,U´±ÝPPaTÓäV! Md—?ˆ;k5<¯Þƒp°(:Hüðÿ±Ôgwt÷¦’‰³ærš &µ5Á£ìQ¨(qžI”~3}:úô›QõûV’TP 5€×8Ò°B9ƒ\iÍ©ÂßÞÞ¯@|a àŒxèἩ,ÐŒP¯®&€¿'Dn¸¾·¼ OõÒÒƒÆv«uð}óÉ÷äHÜë’(Hͦ¡¯¶ ]Ö$z‚¡3 2+Îã׭ƆWÆa¬yøeY¶Ö[Ê*P×£GრJW)NÐÿ"€’}à-ý»2œ•¹â$niøxA+~µ<ä'Åù$+pA–á„ÿHãfqÕYk&ËßL¨ƒŸÆ>#íüÚ‹¢‚§j*[uòŸ+‡ñ‹)àÝTÀ<W”;IŸ×È\ÍK¡ ç¡mGÏ_"@±~­ÔÜ_‚ª±†¶².ÖU`°¯ØÀH|$å?0ètr +*÷pÚÝþçª7ø\ãŒ"*¿Ô‘.,ýÿ/`OåË€$SšÙ"ÒÃ9«~ ü®%x[yš©«/[¶YS­»‰íãÑÁè8JýñKµV+rŠWZ$³¹hnë+L>À¤ð¿¾80p€jÓ?¼ÈÀe1€Ëñúc[þ,Þn<ÕúÒ" + Ñú×û¯£³$ëÍÄ€ÀsašE¯)€­4&ÀŠtgËO‚n;6DÔ£ÍPm;Ä&$ki±.ÎO~´FnK³`±´Nq{OR(¿ »i!ùÍjk 1xd +B¶º¦×fÒ +æ ŸpHÀ› +'q´lŠSô¥"‡ÛäGc{{„ÇQ¸mKÏØL^ xнÞWtÚ•;+¶ÑîÎÔ–àlç­¶[ÈÇnwGõÈC Œ´\$ŒO @¦½ùµc–¨T Ê;¼ï´w;ynµDtGÑÁt˜IñÿFéow +È/{)Ÿ“aä— +ÆÚQ”DÜJjdk<í8[NÕ5Dy$öyúm Ñ%¦Ú$Ë Š¤þ÷"% IèÙ Ê•.'^eBý[ÀoǬ +¹$pMÀ,Gï7—u¯k]Žª­DR˜ÌÒÊì” +â¼@:ÎLÏK  ×Ô^˜ c<»ÄýÈZ(¹ó4×âãü›WZªSRœžéÄ4:±y|Ÿ$y A[éω)Ó9¯[±aŒ’'f©º´ß\ÚÒP:1„QG›ò‘®»Òûðåe5^¿80Áé¡À?åyÏæùžÚÌÅöøÔád-êã3h´ µÝý¥# +­4ìêOøbeÏØûÙήš©µann¹ÀŸí|sE¼;Ûäø¿ ôïqùøÐÿ˜ÞMDA8ж EÒ_ Óh\þÚ0ÎÓ&“Xb«Ç‰>H¸9©5#K©wHã`ìÿ•mÿ2묩= µºÒT` ‡ÞI¼g ÀÕ¼g;€s–øš2ö;Yü‰Ow<fNda®4¶t™,CA‡ª ýœ¹ÅQ4Š·G¸õ]¦Q@—‘æ¶…!WñŸ`¼–q8 %¸Q*±‹¥ºÌ¶“wD5oÑ"xüÌñ/wC݉Tœ[~çÊ@?ñ6?µN £ñ_ôÒöó7ñ/(08†6!gò¹9^ÕÉM†’ÍtjE ãjº!ÈÃØ'6£9ywwìû“×û¨€nç +ÀFûg· P ˜F3ýÓoì—Rj³ÛÞ­ˆ ÁnN r9¿Ã¹Šu¬'Ípg…µ"­SxOÆFì9 A(âàh§ƒ+aÀ•þoÂÿjÀ$²¢Ì:pêI÷QÒâ…ŽÇÕf†J#}ãÖ§££ÑkRxS „q7]q`&RÖ'€YX7pÍ!1q´úJ3¸ÛßéÛµboÔœÆD @Ã.pI-À{ÄœåþA–?‡ë[£Q_*­×›=yœ»2=ÁsÒk+Y"ß9qfn±* ·Z"€ãp-N²e5õ¦·ÓÊFyc!‘Wò§ð•; +PšçŽÄ©¹€;<ËËGñð®^‘¡*%mÀ17¶(n(¥ ¶ê…›^½qÔ³‚†k†}š ìcÇ0Ó¹ó wä'Á¼‹3± £XÃôVªqëä +@C€*°/0òEÿ‚dŽ|L'QѼ‚f°n¼ +¸í\ìШC(W8ÀbݾSŽ!Œ0P:¸A{ èÚ]5N¨ô?/þäGþ4.2n3j½Î"#J‡`)*Û}šýåpŽo£Vö×IK‹@J1³äɱ•4JýÉ?9±•@–Eë€ü3K/kÁy¹IX¡ýÀ…}®ˆàeœ¯¸,py_€K,GñûyÇW#®/æ +`ůå¨Ð‡l]b¨ ´oXº òk”ÿZ}ü;=W¹r¡ý¿ã,Iÿ6ÊÆÀ³NÆ/_¿þìèuz”Æw‡¿NÇ*PŸ'¯Ç<ù£4Ó¯H0²lœým¬îÏÙ(ÍÔõû%™êE’fþ>e¯¿{ýzÌb)ˆÒ×þ†ÝÙnü*½ôÅÑ­ø œÈ~]¥N]€kÄâæ“i×ü81³Éïg60æ»™zF^ƒtH³ï¿}9~=>þ÷ñ¿?gãññ±~’ÊzêY:ÌR?Jÿò·qúÒuáÿÏ¿ðÿïìûïŽG-õô “µæ±†ëH¶¾ûî8n}Ÿd‚E’w”~÷·æPüA¹ÁCÕã_ñ»ƒƒ$¿ Κ½Œ[œöhüç%_y–I³ã¿eé÷Yvœ¥#%[’½N/hér1ΤÔ#^£‹*4 'ÿówiú uò4#'Žõ™&Yò‡,ûþI¶½dÇãϯ"·™/ÎÛ×Tž?0Ðî¶ŸÞYq.ëv;ûùÖæ*e^?  º¾SÚL€×çé1.´—Â{®"QS +àÏf+8»|€©°Ÿ‘ÀS "`ßaNãð!ü{½‡—™…d«at×/Ï~ Nå²UߪaÙ÷7ï>Üt]¹ËkÕjXõ«kwÕ{Í_f£ Ü,þšïûU`TV?o{ÝeA.û`U¿K Å9ë9~·ÌKýÕ/7÷·Ö¼;€\LbÖ¼C_€‹,ó{˜õ§GÓ›+.¯úÕ‡¡Ïǹ|ÿ®&í½ÝÅËá.Ùê.I±¶Üô=%Oè.•ýÙFi¨Ù½Výp-ôCu½g[éaõ¡ëzï“Ö É°Ü\¶V×–Kss®Wþ/–—¡t7[]+ûå…"‹Y©Ô¾Ë6|]¾»ü„ƒ«›~´æ“s8à¯m°ˆâìÜj¸öÝØ«««ÞÜìBÙ#£¹“ßåÒ¨º¦“?|È­rØ_°’³pãÕp™£¸|ÝΔʹ!§~„X@»}gåPÞÝÝãÅ~ùz €^Å“ݪ®Âsš  -ºjË79­^û¨,·àžF 0!8Á ­6ý8[˜è]õ‹0 ƒ\ÿ^O­«.¶Wß¾H†É›‡ÉýÛúìHdLJYZ¥È?úB‡á +_P–~KÑ _Ç4íНÏÇI3l¦Ã!»¦‡MHüýñxñƒ`q=bûfôtþ?@ì%¦‚?W×°ß œU—µx£àô¸Àr8¿³}û§÷x¥ÜU°®;'EâïQjûóñ8<>Fh«·üaÊÓ:䩌ÓÍf3LGuU0;tS4÷­†~hJx€oLç·?™v4ðËÛ× ®=4¥xO—ª¢²Ò}ÊÊJ~õîíò?Ðx!¾ˆVÚ6 é…ðÇ!ù.~)ñ·¢ãµ$¸]P÷KC?9'Iý¢U6P>¢0·meö[Ù&ST–* \z¨ë†ØÛ7å0ö–4ß{ÞH£Fañ¿À¤þ ö“Âÿðn1À9ðc÷xÃrT_ßôpÞÓPXž1ÃÒ ŠR5»çSÉ´En s +¨yV%›ÄÃí¡X\FN +7#’œ$v|!Øi(µuoÖW/V“–f –y%Rõ'u/í†eõ4ZW½$(åM—iTˆš¸É®1»õÉõi&bSM’h©(Ë€ÿÿ\fÚ £:uèr¦ZÂQŠAtü¤zÆ Q&ø¡±€®é ýÞõ&QaØ5φ½ +GÓg°ñ €¶5èõÛr´•¦ùw¦’Ÿ¢Þýè Ú(€ ósBAì¹s‡üƒ¾¼îcw°®!u†&4i€®þBøs=./49óÒ p Ÿp@£‘dÕ±ZZ繤³|À§RQƒ…³.óc6²§Ÿ¥2b5ð-?FAZŽ’uÍ#;¯#+½jŽ.6ÿм“pð.}Þ¨øúœ·××5=æ÷6„…¨…6³Ú{(Œbk€éŠL¤²šÌŽ¿7V¢b±)·GÚò[y@ ®Æöìaå¿ëv7Š«£‘æ4Ó¸?¬×iyidýý×xZcý‡Ý¶Æ:ßÇCý² ?ÕïõqU†„ß¼Èvõùùš2ŒÈG•†0À(FsØÁìm¢?ªÕ2Ê&N úi30 +øa± ½«.Îø õ?`E€†€¬0Ì/Mø!Ó\o@ AÍG¡oî—•ÿ2Í8ʨ¬×&Öüï©:!wvûHÝ `»ûƒþ„îìT`·‹á/³çzÁ˵Ó—Ç…Â|i‰|d½±h~Ÿ<½ öùWÞµTeC<^y.•OÓÙaÿ¾s¼a¹¹%P¦«oª +ÙÐV]d¡Šü[Àû·P‰.àÇï pÞrd_Ïì)¿—éyjößµðå…‡¡Ô<Ž»s¨Á+'µÖ óÊÅL‰5Ÿ˜ð ÷[®tÝ2GßQ¿¥7IÏ£ÍqÝÌBÞ* +€O׿Ø‘+®fõü+¿h½‘ÜAµp 5L¬+ÅëÑÆü|=óõ]p×~\Bižâ¨æNý´`Ÿ4n¾vƒŒÙü…î€:­þ}S¤öË Wï pÛ¶{y  ·»Ç»t¸ÛKZÝh…¿IPîyW½ô*;jº ÷œOGuÛš`_L» ;À=>®‘†ÔE¥}Ocƒ³#§¶Q‚4TX °ïÁ%ÛQì&Ìt|ûËŸì/‘@=IË(€ÙÛFšÄ…Hüt›´W’X:YSOiÔÚ`È-ËMp‰<1§æ{ɪʧÒíÙÂFT-ÅÎlqÖTø“eüÝúœi øcö8g9¶¯cÑæ{¿À §Ç³Ý|ÄÃ妳0Ý&‘€ìÖË·p͵¡i€u<î(¶Û1Àñ~‘þu_³÷Y¾@­)é1å—æ|ò= Ç&Ûa/X´Øãɸ}¹¥åƒ-° IhM­VSŸ9†:;à;6'mÔTÔ+¹Ì‘[c+˜×D2uÓ!#½QAÐ:¹Y~3YÎhàãB 9Ì+¸s;!€ hWg`‹öþ $÷ö€yî航þë=s¨Öx½ÖHWƒùŠvÙS‡ìvú +èH¶mÐמš‹”³âÈ¢Ý^ù¥†³oX_òÿw¨)€J[^ƒhFf7`vÿξ{Xîòr€Ñ’çi*gá=ÉüI£k·À™Â(AËl´6†ªeävÚ6WKÞÛDsÒ¥$üú’fm±Þav­¾Ø,pðn}¦€¶øûô8g9ºßn¢Ö÷}éXÑo€¢WÜ ¦D’黌&ÛUǬÔ)€|=\! »ÐGtInAŽ@Lù ù•†ìTËÀΫmÌ”ò²¤œÔk”#|…ì´¶œ³»SrF# +[ãbÁñCç8kDÁümEurœÅœ¹ÖÃ8SPÃ69É”È8boG(~žGÿr›QMÜĬ¤}ïX¦¾Ô²Ÿ’xOÐþî€"€ø©íUžKt4$˜Ä9[qH>Úv<6ÜßùL-lw«?4.@¨`§£K´QP@¥ÂÀ1»ƒ 7€h:ƒÝ/ÍØÇM`—6œ¡Óž˜Žç®nÿËèAž_ν,ù2@­p£PrÝäz¹ É«w—QÁ–*lYJË ¯ýã†Ã¿’`ó©JQožïWÓò#üA€†Íñ¹M+€ëÇÞ©/À¹–€?v_€³–ãûmf凘ž½5¡'Q‚°^ò0ÛÆk§d·¥Â?b!ˆÕH×ÀøÛ?ýi¬p›Ò3j7fAt$X*És4¶”³8³4g;‹=rÚ j'‰h“”Yᯟq €(U«p-KÓÀ¨&Çp+ª«ºJËhœ6Þ +ò  *œYÞP±'‡ªš2s¢ +xsƒZz·Q‰ÒmÊfvž£€wŒØ¼9h†®¼3ðÙ@€Þs`@Ä š¹!—¿. +@Õ€å·*À*v!õ СvwUà.…kºcÕ€RÚN +Ú¨¬pŽž  àúã‚ ~û¥ù(v2` +ÿ§ðÿÝþ—ûû»zF¥v”ŽË%€@Þ‰³•ùàh[>‚ÒIÜü=zt!¾@ÜHÆ~6bµL m;>Ò×ÉÄÏ÷ý¤ìmoxK°‹´…;£û¸È®­þÿ·/ÀYË~µå7ÿ 5•[¼ÄÿðašPh’JZb¾Ö8֢޾ÿy<Op´7gÉ Gm; +éKrKsLÁø-tUDÁàRÜ€ö¦˜×+·fXN¶êÁ†á_…ûrdÝû5ºH:‡¿Œ…%Ï@ÜPמz-?·l;N²f2’/"³=ñ0X€«QDªýãÉK +àÙy +x×X@Ϧê3“ @ fÕ +ôZÓ"öl@› ­`§‚ŒØáˆ);Ž¢}¸& ©æìá Ô=/•/ÞQH‘ÏÊJ·Ãau°š?!|ðÙïû9tpÇjOð? ÿýßí÷û}XxIÿûéQPZòàXÒ@süJüä gjoVÇÉëqvŒFü%/“P³–¦ãq–¨Ìå@ ,¦ñaô"ÁàÈ ª¼Àíô +¥d;e£×G]½>.´i`ïï¸f_à‚Z€¿K @–cü*Ó3KQ1ïùÏCçîõ¬‡jù§Y“´¦Ç£cÒ«5¶éƒŽÓìèõßþvDÆq©”Ä{mö8‚l”dIiL¥¯Ið£,Kÿ#ŠGão^’â£#kxÏßA†$ù8‘|^ Ì’½:ÒKƃršFÉÈÚ#ð›c'Éèø;rN¿ØŽ_EÇiÿ¤N™%]ämŒR’Ž´Äë»ì¯ÁÇžÎ8âðãïŽØõ0ƒ7âì?ŽÓd ÀEš““ãÍkyêäæÎn3 ¸s^¼c,ô”êìX÷z;Hr8@¥½ÿ84SfÛ<üîN‚€h\ôžˆ@õ€»B¯€—¹¦´‡¦…2VÔª‡‹ÓEh©€mDÈ@®?~À÷ý^EC•µ9Ë®‚‡çàÿå~¯¿×ëå>Ñy[ó«k~3þyÓŸ›+-”Ë«n‚?¿¹¬ +˪dÑ\n2Êy7U Øµúðç~ñ»Zh¿ZÖŸ™6R£ðµÕŸû …[…¹˜óªlV5»DŽ7íTð•¼s©ø‘Úü}úœ±å—›•š?Àò°‹ÅUÿa5|¸ùðaõaX]{¸ù‹!éº «©ÕÕf3ÔÜZ¦ Øx¶à¯ò¤7ã¸Z}ð"ÁVg?(—ÕI@‰nézJF’œ%.UÕ‰àn¯ú¡ïqÞªÏ#t¦fýØZ¸–‹ >Y¡ê¯úÕÀoJ* +è­)s-‡Ñ²òKt‚ÕòÂì\9^sÏ+Ò‹ - +e“ÃÒl©+©†ÑÚé¯Ò6,U§~мýµ2W³ökeÎ)Ó  ”Ψ€wˆX ß]u»£(Hìî¡ÅA¤AÍšøË/7 C±wÐÏ] +sä•þ.DÀj¶¨Ïè¦Ô·³Úªã×`÷Ú€]Ñmâ@ÅÚœ*€=. 7øRAÀ;íN×f= äÿ®– –DoZ³y7 +Ëke?üèöb”ðÛ£§H +ÆÐú°™=r?:Ì’¦¼:Š{R!\&…žÈÇ|‘PzF¾²@ÓjŠÛ(i#ßóVK¨Î$‚¯F1|…M)€é¡¯¥®00ÕðïÑàŒå8¿Ì¤Â¾²¿÷úO¾¢m–K8e/%î0I¹‹'!¬9Ôœ?iÂmzšÃ8¬– sn:W°¢»Ä¢Ãa0;[ +£ø°Üþ9Œ’œ4D°Ãkˆ¿â).¯mŠM":ò<uÔõm¯‡aTEÈÓS•0ô¡½!2xå2eó«¯ÓÃMU_6ƒB!"“ÉÔCã:ËÊ1ñrI6›œœä#±¢$~ò\âçë˜\±7•ædùA1ùù¬A;‹TÀõchùàßÇïVþi§³×ã…è=ÓjíÅj¡xÀÿ.ÞûŽUÆÉÃÐ0Â÷LìhTOÃ2šC +€-DŸ ®ª"ÔHƒž@ÑG6f…S6° GÀ]ÚRíØïh A\S â;Ü.èßßïïRü«UÁàåö‡—Yä'ß’ØiTšý°Pò¥Ú’h¨~ÿñQôõqLöðO“Âk5|„žù—8$°X1aùÆÚá¶¶‹Õ"|”ÅËÃ8ð5 ؇%§­Ÿ8^h¹`KÁþT([[ÇÓƒt;9ÀÑ¿ÿJS•n¨!„_Á uuœøeš¾L‡k¢‚hS'æPù¥rñ°•¼Ê³ê+ó$}®1j¢XÝ™%&ÉŠI¶†c£ïz ?Ôr¤_lÖòõ‡˜$¸¥–:ø½ä)}ßô_q³ 4N†_Áb<(›ašV–f!þ­÷µUHE'jLä±vMbZpâ9¶ZhužZt„KU9ža=ª×7¼ •’Öù‚e^U_lì•5ý€{~FFý"çåˆÝÔñTgü„·‚B)" Êl6F%RõOþ†‹Cðã×gÃô€%©Ú$ls,Ö$dˆô`$o!‚Ì·¶éS& »X\/€b€íU· ` h<;ˆ¬´v;à*hgŽ+¸ÓÞ :} +vµ-§€eS.€ÐéP¶ç-¡ P‹ÒPÔèîh„´?ÄÅGðÙ¾®¿óK€fýŽ40¡ÿK ;&´@Ìù?×àëaàÍÎΊž§¡\\/J4ïº}Ím38 +‚– EQ}êéW㫳­F̪Z]ÁcU Gâælÿ¼l‡¨úèºK-WŽ üöƒBDÞ#2*©…øV¦Q ôÕ™µòJëm-¶•”-6tjyûåF,ý”(Å«¥äÒGìí¤IÊCÌZ¯lúƒ^68žŸ! ‚dÙéagªáVû}ÿÂA¬ `´Õhm·ÔI#Âÿ©;Ô½q~îHŸj«ƒm^a6˜˵$7Ò‹—“Çù•™ Á$Nü`«ÑHá–ºêøU¿^Zª©±šŽ``_/›5°TZu÷{jºi?—qC\+±‰ùÞÍ‚èâ±Dš3DD©àÉ) ŽÔآέ´ù'q²bšØÖVœØ¥ú7¶¸¬:TÃ)›1è^¢® X  ØYY‘ 0PG5Ë88à¾õUˆC ”SFw@æô<ЇT<·ÙÂèC‡¶'љԶ€uxt¥MyÎ…©ì·Xa§ý´ÒíêÌZú%;âì[K@ðÿ…S¬W A—šûþx{=6±ùD/!€Ø_N ^af¡n)•3@êk2iȲ«²B=¨G®ó 7ÉuµñWÛQŒÏšrp$?nÕëéò ’¥T*Íþt®ÄQp0<Ü÷/~ù¹ Üä +@ +Düª‘R8Z•ß<‰òV+wµzq| Æo–%2Ÿ (ÚÙÝ2çwLðžùþ ûiÆšŽäá¤åd¨6î?Šyޏy=Û¨ž,oÚÅä䤋ÿA·¶¼%M“§–ý-ÀÐÕçñ—nèÀðàªÿÌŸ´—ãíe7Îå‰qÈ$¶£ ¡¸¿’<Ò“‘:Pš×¹†›ä'dQ(HNàûéÍ™î}]ŸñBØ$°Ý}Êûâ•f ^^ó˜_V*¦¿¥Y ¬ò)Ú´†g$µ5KPÃd%¼ûK^êCÜgL½$Þ;CJýùú••-ÊØý Ça"·>i“øžfûç¸ë¨2ÞV*b5@Ý:-ýâaPW ðÖTø –3øx.UDàWmM=Y@ÿ³³7Tp¤*'3©xÁë¾SæôKˆ”6Á>"±Ò\0oŒ’PÃÓÛél¹€¬¡‘ËÈÖuäá—c·¢ Õ^Ö1ù,^k©ýâ»ÖóŪÒU žÝŠŒäT¼¿ ÿ2ñÞºñ_®îÛb™eå`ܸçñ¶‘Þ-î J6CûæŠ|Ë7Ôì/ZþWvfÝ»½\ËZÕ'ËàÓÂq·FJsR6Vƒ¯¨¾5ö‡;ðkóQø´Ü^y–B5j*¸^P.•õybÉ²æŠæðÄ †ÅÙº®M‘[´½8bš<åñ¸‰ú×Vj޲}‚èÛR×T5fË%¯uÒzmb3”Š9¼o,Àêôl!E¬¢ñJ¸UgaW;t…~!™vÐæ ¯ÓYQ«árÐh±œþL•Šþõí3ù\g ͬv¾»]© Îω¹}7]¨ ¿ë:@ÊÓ;w!Lá`Î÷ç–8†³üûýüÉž³8\ÎH?(Ïþdv®(âV&5ËVCt®@äÁÄuuçÑuä[};òSáSú×ÔnS›P8Ô·êŸð5)ÆP.ÀOç (_‡¿Oî¿èåþ®èç _ReÑf áë”Æ¤|jä¿ÝEÕ×*ˆLõoÅÊ* ¬4p-×Òj³®îÓé•éœÒÐÚòÿ¡‘«8dV~î¼à(qÔó/+vì_6½æÜËÆ¼v3܉0ž”€J¾If¯oc­÷ýçF[%¹|…ྡk›Ãn†Â?4¦BUËà4/¸5óÂ?·Pn\PZô‚çŽ4†ÇhhÌw’¸©õ?Òòc¹y²­¥Riƒ§¯ãÊr°B£dJ¼Õ½³ ÄåÈ䀙³.¡ V>µ Nj¥’Óè¾#KóF#k"?ÌÔ/ Ó-›ò!-êµ%/®N6˜ØŒÀóVpU,À€Eÿ lûÝö +n‹Áï Í*õßek>mÏvG Ã¡4ЍÕÐKtÀ{”þ;Š ˆF:\‘…ï¼Âî*¿uL±nE¥²3h¾Ti®@vØWPr@ƒ‚®p^ñgþÜŒj rñ¿ÿ9øïwô´ß°(,SP˜_„¶ÕbÇ’FÈé3Hi§óù…¨Ül®âE+#ÛOsC±z½/h£ ÑTt¥ÒBaö'7½_©$çOÊá Ì8 þ›¼%I+'yP®o ì“'²š&±JãWhìÒTD+ŽÒ̘O²WPØä=¥Xd2T›l’ßø”(§p‡Vñ“7^ÑÉ¿lz͹—O9ïèTêÇØo“‡yHìf€M 2j´_A—Üʤ‰œDT¸©ï¡ì•åÚ°¤=`ÓbÝæô_¶ùø6m©Gˆ*(ÖŠ{ÒU\ÀÅoÕkÂx}C +`ƒ$ÏáÙ8CV–8à¾Ùý{Þ£åШPYÁ…ƒäpJg&›’4i¥¥ i ÍV29C}o1Á®¤y$k4lbâúÒRŒü8k.øpe, §^~æàŸw+”çªkÀrèÍo0"`ÇÝön{°£N< + ôåÜkï~.ø£D'Â(»ö;Ïöñ,Ð×ÖžƒÏöEVqØÉÇÔ…s¸ÊJY`pÖ…B»û=À6£ð{šDŸÁ‘ø7øÁ§ÄMçbh¤8)xs3j +¸èm`*®‚àùjÓb.Ê'ü?ÐO+ „ðVTά4ØPˆHK(‡·(ÔÏh#.F `~nV}Ü|ý{âöŸ}OòÚ?ÿys3x@†h}š7³ò½E ßH#ßõe«K(*{lÇ­ß(û£UFiõUŽU†O*Qη÷ô!Ôç°/Ó¡0+—!€a\“W*Yñ†‘ýòY¾ð"ã†0k\yß÷ñôT- {ÐfT}Ïÿ8Þnllî|+jµFˆMQŸóTª'`_uJÜ9?œhŸ‰ûŽÉ7ð`' Œpïˆ~î΂Á6%É +´ÊrñªQÒZw”PŒÕÿkâL úJ®ÜÿxuñŒ -WÍè@:OÅ%ʉ?ÔÒ\€LÚO“6âƒMWÀ?ˆâÆ'¶ø§¯¡IM8kì£μfv  ¸  ö¼VsÇB³sOê}w¹ >í_k8‹@Þ=ïnà?ÖÈiîYîªy•Ö}¾‹Ü©"ƒ‰ëÀ·Ãá5X €«ìM‰mN·¯ž}ÂJ_êDc•îé^ÿÿN''è³5bÄ7ÔìOo¸™ðà”(¨5ä¿¥ +%»ò¦”?ˆêꟀñ8ZÅ}9Bh°T>8ßFñ¯¼zðh!‘7X(ܘ™€>®0)²*üƒM•þæHFßè‹ +„QÓwS’  +„c†—8Û­ Úâz“Õq~Ô x†÷]± \nËB•U*£ÝRgö+€ô­®yNuÂ÷31;žÎcø÷½ÈbÓ +@Š×ó¾ÆãilÔ (@ƒ°hÓÍ×vBj››ÜŸ€N‡î7S‰^nWQZ(yI¹©S?*öuyuUý8Ò_ÎGÙˆjÞÒ|IœÿéËÿžþ÷4=2\{^sÅd«|qÑOñ¥U/.ê@¿#Šiê"„Ì6C°I}q~C'w¤o]PâQ¨–`2ë`üw4þÙ—d5N°Ø¨Z$xÊ4/€åþ·©€Kb|ÊИž]JãvÛj$Ý)pww¾| í©€ÞÙtÀ)ø]µåUÛa€¯¯(„€Yž|gçK|ü}«ÿ{{P€@m¡.Åp«‹ÞíuŸ®ì÷Áô¾øDÛr½Ÿí#CTs . ªGDÀ/Vú;ß?‡ÿÊÊtQ{òŠšËM˦V @Z­o8Ñ*X%Ÿê‡ WQœ­“Hç¯Ç¡#ROò@Ž?V3™ÀnžWb#€@ìùø§¥î›¦Z€þø® þŸ¢”+$G£h„ê*“èá¤/Û£ZÌO\(ªá7¬jjk3ù÷æv»Š/+pÒpÍʲܴ£õ=[F4HøNý>Æ:`Å%âGÆÓr1€û§ +ÀÊØ÷5°$ÿ‹ÐõãÙœíÜ­Õž*²®ûTEaŠÐkRPŠ[7J·=oXv×Åõ“¤*ôõ+Óó#Šó ¡*{pæ@vhÖù®ý}Un + TZ-•å”—ìÞËåÅòã¢Â±YAî OE]Ç} ]®\\/Ý6 ¨?°YçÕ%0ÙL•Â?çü74L€¨@ŒE^¡”Z7c¥åä_SÀûÄþ™ò\Õ÷6¦Ÿ €lçû˜Þí|©ª=p§RÝ@þ}¯½³«:yˆìôEr$ØY2ØÁP§bÕP¤ç.€ªþ$áY/  *m5%R™¬‘ƒ^Çøjw'eçΊðoxW¤pùŸ‚ÿ½{+îqŸµ(,ºHuyø€—7‚`Ý‹Q‹Aí¤žŸ|BZaÝ`ýA#òØWÙ·æŠlKu„5͆øEáß‚€7´gð+”°;ñÅf1E¯À¿Klã²¢ WÙhŒ£ µÎj*óܘýV%%Y$XS Ï—ŠÉXÎÝÔ‚G¨‹Ø÷\„ÃÁÔö$»©?s4.ÛOÍ;Ýøä%ïöÒåØy¤w_nï› +À]"÷ô¾¯Vc}‰ä1ã­•VCÕ~àeÆÓz´)`­9ÌëÛòkÝiŠ –¡…Ú$=µœ´$5á[¼zZ:J6êKó*¥Ußk¶à¬¬\bæ!RiÉÀ|·|ç`­oàypuVQwÀ-=¸]ðœË‰‡Dš+‘Óð•XN—l¸—0ÐôÜOx©à%kU©?v™üϨF}BoSoÆT¾ƒqMítž¶°8àÝëìàɃYiü½»[5Ðë<Ó'å<'ܹ‚Õƒ·×îI·«8W3 `G¤1ølÏΤaFñ-ú¹P£`\€Œl³´+TÜþ/ÅÒùûV °¯ÇÚ@¯«ÁB»“Ú³ð¿£ÙsÕƢȢ>ÕÀ‚€òœÏ*‹ý(Vý’õùÀ?ËÈ ÿˆÈßj|R¯ÅVE2UÎ;àÔœxa}£îÍ)Ä+˜™-¡ÿ]^w1ËL£Oàþ)þóðfyužg‘`¥Á–…X £˜g‡Öˆ]|á¿(¬G®pn¯îÎ×çf‹!öçmŒ P‹­Ú÷Ôäüœÿv‘é ÷`Ïó¾#Onþ| À=B Ú÷µ††àt§Ѹúм£ú¦9|§êaGCµxoµÔA»ÄYÕtXRš“I+ßÑFò€)€õ³µÓ1{oD#7¬þ»¾Ò£V· •Ì#S;ý±¿–diBªê^{ª^jˆ¯fûA”5_½ÒÄ]˜8S»ªQ²¾´¤ )ŒjÉ˃â¡hHa‹²Â±/ãVZN9 + ¢PËúü?FV»J¢³…(©ãä J6Pç‹<„u»Ñí; úY¨¡¬ þ“‘f§Üæ%¤Ãðü*•êJKkÞГף£qõu–¾äFå$Û­ÑÑ(5‘È6-ï¶—¬ú±»±‰iH0JúwT20¸Elî$€#‘ˆì(|qÂYE‘®à\P© Š-@§%H†N[j@Cûä¼X€ ŸítTþ[«`yûûpÁDìR„«ŽŸk»ÁÉw*]É("†ýÁ_°n)Ò5 Û“ €Ðïèí\éof9í¬ÅÃ5ÊÁ8ô)¥çæ Eµûañ£È¿O + É0$jœô&÷â6•­½Uï“~˜kw¡n Âõ'QôÀóBkHÄO–‡ÅGø~ÅÂììÌÜýG‘º€¤BÜ¥6ÿ*ýHþçÁLøWfO4¦'¥gúú K‡c×·å1'Š¢çqë“Ðf'£Xý“¦?$§q-UÅÀâø« ´Œ' bµsLÀ¢j–5%&<æ‚0ùÊ×LH-ygÓ“•8­˜VǸŠÇñ»¿šqzð¼\ðH$=ßfü*MšM5n†ÍH½ªÓÃl”¿Ià„8òƒÃ‡øY< Øë¥N8q\.zÍf9S*Åñ'вêR¤à!p†“ãÔãzœêï‡oWkÄ +옹ÞÀeŸÜP*Þ25©Ù¦£ Îcô¬hÙ Ð~P.¯ª‘6Ž6ñIìÉ9BŠ£¯¶4’˜µÙ$ÍÙ/± 72ÈìììÜœ}/Í‘0ù—öY¼…J(Ëò’r™F3àjËå»ä3¿ZõgV$¿qY\+i^µnÿ–æáCwk¤<©ÈµÿÚ¦ œ[°ñ¦m&ŸZçÝU€ ­b✠_P°rp²œBvØ"¹¿d3þ¿Ô§@çYWNå´¤»z +˜”)ËùߣÇàSµ”ã”ý{ûV ( V=_ˆqÄ?í:X»Âþ|ገó 444¨.¸c%½æîèn1•þÓåÿÊŠè¬Áþâû&4|Ê­Ë‘‡êªqäS¼a³IÇ©ŸPê¨|¥ô¨«ƒ®Äf•$*ñ7Y…Ìzeÿ … I)š—GX(©À9,ÇÒÿÉá%¯$q +ìSà;øË¥Pá¿—ÇÔ±ê\ ûz&-îyµ(Û¼«n¾\9 O^ë¬`ü2{ÎZ-¹Uêk¹Ý¤BMJÜû¨ ¤Z=mÝ¢—nT¿Ø÷²™Ìz)šªv€·go¨Ú(Oz¯´h/}+ÝP•’Y Øÿ⼯/-m,--zëúÅŸ†Ü`kO®›ª`¬Í‚Ý‚F.$ë=Æ¿ci~¹G\¸B'iîRXcØã`¨O¡Kº)›Q¿{ +C¡úU€M÷ÙÖÐÛшê ⺪¤ôØÀÂW—ŹŽh]žÕÂ-{˘«ÀDpé$ðf-æÀ{ûJbmÔ¢ÑPÝ›l¡øÍýÉÆj"ÏŸ"䤷¦øæõªÁÞQ-zÄw…ꕨ¤Y°®v jpÁAÄgÝÚ+¹‹å'ÉÏYgg]’;c½––”æ³…y$¡X +d« K¥%õ” @³˜·+Q®Ì‰v½J7¯0»èm ù-ÆjÎ + ©¶~ºDµçX…h¶Ý§mˆ æï¡N-Ÿ S躷¢øtÛ;ÝöSŽa-zÖhÀŽÆÁ*LÐíºÓA'¨N¯=й%ëUˆ+ ¦}ò»ûa 1PýÁ—”ÿ\œÓyÚ¦Œï·Q*ýÙØÜŒûbðeOµ}_ Úƒp·‹¬ðqO\o9ØŸ˜–Z uúÕÊá/ŸýYiþ¶UÙ^¨œ€Y +YÑ…ÞzãV¼Îbò‚[E6¨ã6HLð/¦@>Ä_&;x¥yµø YeÝ{UN|X:ßîB3ñ?‰þ‘´hPýMðoðÇÈ$/’¹eí.Ü[/œÄ²†2o¾X8¸Yßf‰¾†ÌDI’CÂÌÑ¢¾èë»XzJ“€}wð?QÇêI7Aº¾mrKó…%Eo›>Ç´ö½*2õ¨Ü&Fj¥Sn¨•Ÿ¿OÞ¡#æIPŠ]‰86S +“Ø‘_nðçQ3ÊW©°Á㹈rãÛÍÙ›À¾  'çHÿłټÀ¿èÕã"—«Ìeà’UñàOÂ@( I±åšýë"± ÚjYš»Tµ‡Xoá[¹¹'ØùŒ‰("Á¨ñŽ*@&;0@©]ßç½nO¢žÂYòh ïngÿÏž=Ûy¦Söÿ[ÿ‹ý~·³Oñoîƒ. Îéµ:°ú»$•ù]Í&Véîùåþï9Iêè?â}Ȇ}Uø+ŽÐëýÞ\„Åþ »¯Y‹u­'W»¡þÄt÷í¶=³³¶QWI¨>™36JÍm(ý-Q§L¬"eŠuAC©g-.òÍ0 +¹ÕÕ’Ú*SÌk@ õðQá ¹ª‘ov±M×ýóìƒù¢®ä7««UŸU@žÐ4NŠÖÖ”_'3ˤl™­«×ZÎùA„#kPºÆ@†IAµ ïdþTÕÃY'ãª|JÔû¹¸"D«9hßÅpJëAm”Xg-Ùà)Oãè1nÀ±u’s36lõFfx‹'ŽG¨£\8еÙ%‰¬Á‡1x«±¼ÒXKIyÛ=J¶Û PÀ³ÆA(nD ¨‚R°(·Ù_ ¶,Ÿ±¨åÉ*ü“šïÇŽb_-{l•q–Úx8™oM„r÷)HÃU®Þ)€gl¦ß·"˜ Œ‚ÆõT€ìp¬9º ZZ*!asöëÃ÷–Ó}ÇÊWÖÛ6ȇD(;•Ηj0 Íð…®å … +¿ø}O\Téñc +àZð|ïóŽ ÝíªÊ¡]éVº¿ä…—ÏÑq1à6–»!7@ã}BmV®ø:}[œÃM!]ªœWHMÒÎ5‡Á…Â(-*-7H˜Ðüf ªÎ>‚Ú­HÀ:Øg2ƒS­ÛFTŽ>VV moóAvø©—Loú¦Öýƒ~¤ÿ‰÷oðWÆä!õœïp,OÖ>†¸)žõ:ÒbðèVÃJ)hŒª°ù¦A)£u¬Hó.$5Ž”FêõnÛƒK}ËÔµ,LN+爈nœÀ& +à²@°ªZ­w´ZA + Hâ5uÏÞöª¼³R_7g> +Gí74ôø£|§Ñ +rÅ-ØEQ+@ÿ)¡I×u¹{|‘ž—ˆòÅù,]—o€mx‹ŽN‰_)n&Å?a€RIž¥Ê[€T¯C¶ÅÔà˜—é—DÔ €Û:¹¸yÊê5©6Ê,8Zã·¸‡—V½°Tœ<ÕÜ a3Œ ¤×TyáŸõ'Žþ ‰žÜsÔ³ +á-V[¸£Á&ÏÔÍ_U®yß»xë~r9"Eþõß¾ü7AaAñ—³#@ð»ÿJå)_øª í¨5&ì ÜàøÝn‡K¹·£Óëjõ®óòÍ&ðg%)yÖÔDDÁRB†ö>&)Mæ©%·ª´´È79oÞRTxÄNd—ì|·Ïó—« øª d/üdföc ãþº‚år›Ôý[á¶øßƵµ¾h€×i=¾»wà—Õ“…¯Mkç«ê‘~ðJƒŸ­ãÏjP39Ž-à U™¯‚5§ãÃöx‹Ï(€©¶À.pU_€€ðx'³6| +ßiî~€E6!¸<#¶8Y³Ou¢«ã…7ŽÒ¼f åÅM‹ëÔÐÌq•Ùº¡ ôFø˜¸Á¸](_¤$° 1¿³ü;à—ä%?É`hBv‡8.9 2ÝŠùSøz³³·—äh0ÒûÄ”ÒlV—ÏÆ‡Ú)´Ì)|%9ý›yê@`,® Ð|ýB½æí¬hgyØú<á6h"ml@UÍ!ø—Ø9õ)ì$ª% °§ßÕE©E´Ð|ñÅà ÕÞkx/'+ÁÀ7fF8'fT£ Ü +öé*,h©{Q÷¡ö œÂŸUE­õO_-!mD©£T’@3ÀŠxKT üåÐÛ+¾+ä+-gŸÚD¬¯'åÈòå ’ú7±˜,k¥ïå¶q +ÿçSÞ?Ù¹ÕØŽ­ %CXãSË.ù›e £ÔF"Í+rÓ‚ÉhW`_ujJ*àk,Yå22é¹¶{‹/Uçj.€6~\ß4Ÿw ¥ Ó¥>NŽšøXìŸ'fÊ&ŒUI&„áMs9£ß¤£Ô5”Óv À¥RŸët i¼‡_U*pq|WZÊ·›Õ&“ÜCð çJq}Üœ+ø;14†bA4@²àO®+‚i¤eŠDaDA@nÊæËûbú¢•öf +Îð_‹Cß\ö$S|'ê +8U׫ÐjPÏ·\Û™AJÒÀVÁ 0ð±}eúHf¨ìžjêlOµ,ê´ïítwmÊ`í©–üÝþ®ùV£gçY©˜Ö`Ï;.ÆgWaDÄùDQyIÏ’ü¬ªyèhxÐ\¦LÁŸK9:o££oŽÈ ã,R €Tm‚:2LbÓ8ar¥¥?ö‚û%ò›¥å1Øä¹,QÝ^‚W¦ÊcA6)K€j_e&E©gK*‰âÏÚ^e þþ©âŸòÆzŒF,áãø™˜ƼiV¢,;zùZ­U‡‡±ÆICÙœãÃ4.û|ªj«•Çék­³ªMY¬še-â½¥aïôHl]×È|/üt2ֆŬ6íTðwa-À™€8Ú¦í¹žÅ/FGÇE³Íñø0K’öÔÆÇÇÇãñ«ôOãáÝá˜[O_ë“TUéã?›}㬕dÙë$@Š“†Q\kŒz¬6"\¦\ +VJl©ŸT¬~ÞÞmÊ\K3°mõ"ý&Ö ?+á,Pôß.,ñ TyÌ‘Iè`µ¦Àd¼áE£×ß¼L²o¿Q£3Înªæq3'ã$KŽHÝ×ÜÅvœ¾ÊŽØ=åªÍ DއQ«U‚e™i›!ß·M8 + ®¡lV~“ÔZàÞø™#Pô‘›}ëOváw­7`/wZŠîcPV娖ÐPla‡ÂÞ~Š\xc£{È~HcØ".ÃoæH!'*gÝ~N¿C?kŸq¢¼½Ý©ùW¦œòýÒìÌ7æ +·H¸r‘ÿ²šo +®í–û/-”ü9µ,­Z»@M$´\²å¶¹Z…i?o­²»,pˆÂ­ÙÙ™™Ù";ùEÍZæ]eþæýoOÿü?¨?¨Œ^¨Z±¤6Œe×6ÝV˼{|ñ®Iit¤UUCjÉê;„·ª¶Ï"vñª^ÙÓ¤3žÿsÞW×<5”N÷ÔˆØÎµ…»ž ˇիb晼5 2m2¾Þµ,ô ³E.x­ù‹Mk ††áfÕ×üfáÃps¹¹é6T´¼¬£ÛV¡8[cÍÜlAô¬GO‰„$a¹-žYÀÇ*ÇnS­>‹Å²Zy’eH×2”ìp«0{‹ tëCÊ|VIöÍñ÷s³üƒýÂn9E üTºÅÙ­X¸¥ôp×âNÁéÈ.µ\ÔÜ2TªOR{j1¨ «JIí°¦¶¬~yµXüÙ¬­9c3jÛž¦˜2Ãê)L«@/mê0-î>)ÛPoBx¯rÇFÜ9Ä)¨c°!TXvïúÍ'òÛŽçðïd‚•õ¶À.¼ó]ã„ÞCZˆšro„¨¬×•Û&Fgµ>`i—›Öæâ‡~Ý[Ý«˜jœ¶(Ù,‡ +•yà7p ½¨‰2~åñªe«Ï.äÙÚF%ÒÈüeeL›]]–öc€¸O‚_™ðå]Ìà}56óšrή2 ý»èŸƒ¿ððP¨ÿàà@ø÷9Æjs(¬EÙNõ~*±¢&åkj¶æŽõ5…Œ:ÄÄña|š_yµÄ½x粿JµòÂ0k)Ѝl0e3‡*Aó´ +À9!ñ h;a)ç­Õ½k‘ýÈËÐíÖa•;)3U+ °»ÏD‚òÉBµ)Tï"N¥c=“Ô0  ˜Ÿ ô»¢^è…¤ÜPãº>Öˆt~c)Ì®Ð:ít;ÝÅ mk~sPé +Ž˜$ub-_‚c­‰k©%ñ—ê·â€ôR;³ÒG8p¤ßb)° ­Z{©À/¸PŸ™â:5ÏÛøÕz‚=6$‘×Ùnþ6 +`fV5Këj/`1ž«L¹z:ø) ýü¿Ðà[õÈÿ“²¨knŒm8¥›^¼œÜ43+Åù‘ô;÷'¯a¬}«¾^k%kÉc·Le¨þK|?Q=š%z©ô&óìOí÷¥÷Ì–è@_ŠEòŽÝ¬Ž©œ–9ü“enB 3?…¦àXÉ‘~¦B…c,š¦àØ…‚O~qcEæT#ø °¯ëcTe¼3õ1+ëI¬]…AHã-foj¼Ú3VS-€l¢®S#£ SY¬oÖî8úÁ‹O¡ Â40€ÏËb|™F ³‘½ÍôSEšsüÄÄA+Øí˜ŸOû•{wVàýÒÐÄä@¯½«mu-º}å_ãƒpA;½~Gû¬X„“Ò{úËüÉLl…åX2˜òù6*ZZœCÍ-HóÆÕFjÐÏå)D¡@Á‚Ë4K^IÍ:6’r5#S[±´T×x?™™]Ìño¼ÚÎÿ)þ)ø_˜ÐppX>‚Æ‘)«ºc +ÆõzVгªÆ†°B£UÏÇf‚Úm(iÐøt+Jk¸áëè®¶Žgqäi¼*å?ƒ¬*¿×7p]ÞöòÔÆ)€ëÖ\à +ÀK¹NÀ{ÕkKíxZh¾ßÊÆþñ–ƒy’ÁÀ?R#¼µŸ:ÍaÛõÑx-‘FõO4–;º¡ZJ(soº´äÈͳïFúê+{E/â—ÊÕõ«‡JÏ+RÁnßÄ~2cÀÙ?Ìþ‡@ +… °³"„Ö1È[ZœŸ+ÂÙŽ+u&[3O™A~“jÄ,h¦*I>]¢ùHõzœ,Œ“Ò+AKx8gÍÆN.V¬º°FÀYŽ0þrìÔÐ>nѽŠ&ó³mr¦È€L…±-SÿŽF€žíª0%¸­0ŸøZb;äö†¹sGà ÚÙÄ2â%H„tCÎÅ`ÝÕÆJ¯›+k¤x¹ùƒ™X+ˆÐ_jÐj­M-zsÖ~„à}Ò¢KÆ8aÂ륹“S  ^6b¯ªÁb4©Èò¥%s\#ƒÜ(– ½ÌÖü…œ”ÀìËÿwòŸÒ_ø¯jæ=g€¾1’t¤#ŠPÝ›¦Ëáp« –¹(•¢RX\üRñ#rÃììO)£—¶n‘L2åŒÂ~vF 03;óófl`‘,µñgù‰ƒª´Y,ÝžŸ+™¶çI°M(k]ˆ—òþ(%/Yˆ A¹ìý£µð¨£Îâ… °ÐòJóä2Ñ‚»±‰iv`!Ä¡éB€9„t¢€.Ø6Àºí_>C¶;õÏF_YÉ @?z;umõÝ(!Wìn~ ðaÀÚJÏ)áÙ.Ó®@KN| ­yÚkOÇíÛ:z ë•oÞßým®lŽÑ +pþíöFíÁFͽø{:Ê‘ïz€¥(à|)˜ƒ•UqCH2ܼyC_mL¥„2JPŒÖo‘¸ À’·ÞòTvµ<‹Ö|l +Àh„Oð-sø' òâŸ?Šr´+þÿ'O’åá0VYê|$£íí£ Ö¨B9ÛpmßòÒ\c°Psgá0Ò´˜l +â88T°š¨.ßÒ}Ôà‘«^< +Ô±ƒùåíÞ©/€–¡ ›\ÞÕ/î0ûÙ?®oÔVÓŸ@¾A¤ðßT0·z£¾µ´­ýAi0ëyƒÚ‰ÃrTBªç©ëLÉ'f?Å)Zˆ¢‹$9 +`–B žsºuàî^€«åûñ÷Sc€7•\ @_LJ ó…ëëâGàëVé‘ÚGžkTïà•¢b•Õ~XW-Éë‹‹I|-4(¾nÌÜð „I$ɽŒ $–£€«kD Nl Ú—ì2‰ÚcöuÇÀŽºSÑ|AÎ'èA6‰ˆ ºÇ€~Hô;{H¡²£á„Û€ZíO®Ð]#Gw rk[•^¥ÝDZw¶[i·5k°®Cû¸»ý¶!ržF_# Iä6ÿÓ§¿´’si¿«Ò_<: +Å9›Ÿ +Á’K ñö‰˜uµ‚ªÂ±¿%\…`}Žì°P˜—Ç﵂’Æ üH5ç¸Ä¾ySúàŒž»Ò&Þ¿ðŸÃÊûm¸Çô0.W›ˆj›¬Ü8ŽšcJÃ,ŠÕ@ÙEˆA’*‘a9•ô(m+Èl·ÆõÔ·ù¿þÍ?iY…T=ð«lNOÖ]bdj]òÛÀ;õ¨ç1L×w¥5¶Ë‹¥ÅznÃ’¹shp±å¦€5tsšOŒ~j[š;i^ÃÿÁÎy€®8vÉèÈ t¿Èe—çX¥œpã'³¥øÃ(íx9þBù/øŸüäŒbd¾0{ûO=†®¥2•n’GCAtsî/\§ÐzÙÈ +>'/–}.Ld±ÑHnÅ Tì¶pSt¤êˆé׌$½Ì@%»LLjÚ*›Ï(p&ÎÉŽO¹»³roG#þQÄãˆkwÞõþÏDj毑¿ö:ê¤v»ƒ>Âyj:U}ç.Ò½»OÎ-°ƒ4QOiH>¸-¦n âÚWeÎI7o=hè?¿™üêíX¼’T±Å°½Ò‡J"’&š«é“ú³³ònë0$=yÞRdÎ[üØ+Ω/‡bgq4ƒÿÄuù'Ï(áØåbnÝ*㔚×à7‹ÿ­Sï_ÅSõ¥qâ/7>)äÇñòXAo¼ÛÌ Œ7ÑŸöS]åÜ¢í£4Ð(†,xÄ¿EY“øß)R{ªlŽiÇ+LíOP§1€¥/€@&áRjÖKær‹_GÕ`¶„ˆäŽð¾¥Æ2-Ì=7dÅ'õ- p˜Ÿ{bÑ#?ÁT íÒÖ$¦JÁSPò {Ô·XÑ=;s#PT07ô>Š¢ôK°ÿ©œÙ7Õ*èöLéÆM×0HafpN#qüÍÞ¼ÁË]ƒÞu\;3æInrò’¦;!…¢¸¨„ÞP6èŒj³Î˜M fù0MQ€}aÀÎÎu/`ºy×Üß@Ú3 f8Ú‚··S¹'%ìj2}Ñ‹"¾kcÃ4œMÐVeÀ.G¦ÐvU~ ßªú˜Ï%½¹ùP•)GZ<0ÀÜ%²5_t}ƒßŠ_ô¥ßWPãƒ:ôŸÀ¿ýÔÛXZ_ÒÿúÒ¯(öƒh!šëA´H"íÛóµ9Åbä¼»”Sm޵å2ƒ¸Ñ$ÞââÜz©¸,Í•>ŽãZœÄ·4D»g\•€V‚H6àB,©‡1¹Z:Ï)Æ+òþSÞ¿ÿ¸/ä% 7—›ññ8§Ë©MäsÜL\„Ëü[¹ÈÖ™Ì@ÀUŸÕÆõè ]³1믂¶ÒÕ±´1íÔ;äp•½¡~„¾úEy8QAp|µ%ËIéfi£vÔÌ ð9ÜEÆ£üÛˆo w¿V‚¢­Ü%ÊM ¦½›ªy/øæ-®cØ_šÂ?^ŸR5n)2@ð-´^n*ø'°—ø- àòÐY„ ð3—Èòf*x-%•¬pC6!óNο>ç{ ¥ v«ìEÉVœ$å¢yQ}!Áe0pÞfÌë©VµaáÛÊq3‡2`·#èå1-èkœÀ\tPà* ìåƒRxRæO@‚†ÖØ€Nh(«^ä*Ô¶ƒ&˜Î À>µ‰S:´.A~~W~E~KFÿÜm·5Hp°ÀÞÉYøs‡îÁÈ·B¤« +§hYl~zó¶dY0¬»J¹Õ—{b&Ûn“0ÅRéãÒ¬§>a YFÖŽŠÞ–U¸£µ›P7û•Ö…þ°ó]mqœÃßð®øÏ‡é)a”úa3Ž“ÃrBÁ}%GV +:Í#C’ þÍã‡MŽþ\Òªïq¢òãd5³Ñ¦@ÇÿW›ë‹À;ô4U 9àçá•v7npYó(Qó»Aáþ`œX]@^¨SÔ·TËVæ Ø©±Fà¿Ü¸ùS5ÝsôcyñëÞWˤtñ#Ý®ºô({hZ~µ ƒ þyÀìOâ¾N ~™Ÿ/Üôr˜WãR¨†ÜTðF¦v0·é)äÍ’l¦±€§PZàÎY~ ŠºUD %õMœWÀä”ÊœÆNkjp#˜ik3¤z»‡ËßÎE€ ¿) +hZ ÛïÜS;ò  ;î=gíì>ì‚¿^o•€Bl…5(—ÐØ‚Rvpß¾è +4,È=ÀÜ׋rú(Õõk•Ÿ­ùÁZ D‹15Æ;9ƒ~×I <µ@~»™JãÜõ¹ S:‰»O€E·Qêø-›ón#ÿ¤™…žÔ¶@@'u—oäøiž~Îí¹4ºÈrçßà®øw¥šVƒ°dióÃìŒù+ïy^q+iYs`lË5j|Âñ6@¹©{äeGÇ’À!€›–þ~{õî•°Rxq©É{%¯àøq3dŽ ¡q›-QæÏüƒEÿäð20Ÿ +  ‘{fn?Êð¶Zðãö­¹wšºñá‡äWér£@[n¯Ï©üV,O¸Ër[‘4Š‘Ç³75œ4Á©¹–€‰÷š±€Jßâh’øZ€ª²s{ÌÚJ»ò¿‹X1@@> tk\ùß·jú¤ ¿à„& 9£sx·òÞHEߤ>œÎ·×Å=h'ÍVØ>‰ð¯ŸnƘfj$àÀ¹ü;+úMHDÑ2YVyô´'¾äÍ.n(Ý•LªÃ;qÿY¦Ü¡(`äíZ°0'!‡,."ü½%5ÐðâHž¾€´}n( ôPdVo³5þ(à\ñòm4~•¡àÿÛp8L’í,Ký×VÐ7ëðOþ¶‘1ll} +Òöé2~”Qš»Z£2FÒ\Ée¨ƒ—-äˆ\`VÁþF `Jü ¾S +àJ/ fq´±äI˜Ž$ú¹%>±’¿å A'©)°=[§O}?Y—Pò/rKΔ|Ê 2Ñ‹ðº#XV»Tâ¬*|m Ì‚~®ÆO.ÀOUý¯`ý›ààå*áŸcKaægË"?n¿Ù¦*o8|žãÄ|/’߸fÅJÁ}À6y¨{ð+eLÀù¼5#° '`€²e¢€S`5BŒ5¹ˆ}œw~v{ý ê•cŽoTkÉ?ƒe`/H`wß‚Œ³ ßßiÿÁü#€¹Ïö]+Ð*ÝvÅ`ÏÕÁ09טiå½;;;ûªaÂw9¢@ŠÂTË Kiï ¾ØMq\Ði˜°»Ærø·ÛêGpVck¤Ûq­TðÔdf«da=íf6|‹9ô¿Ñ lúg6hD—náµ1‡*ªn”h榤Q³éZØsIëUiâ}¾Å4kÁÿlñ?¿‚Øa5Ìø>Ö(€òq·Òñø¯‡Ùë4IµÊ'£4Í\Ûâñ8;bi’¾Lãƒxâ2Õ6É´ßÅæêÛÞ³à꾪‹œVWi€WÍï4=^z¿É¸èoxGã,;ÊÆ,ƒ‡“}£¡A4ßIš4Jþö8´çƒå{û^—>tZ"pu¤¼Ž§ïnÏ‚-½°XôE\ :”®ÐD‰(, ¾7ùse2>1ÆÛº´ƒŒâG1”ÒÒÜl)&]H•—©6‚x8¥Žò›e=A{«„ãá.F—ÃJ»’|I)&“y[ñ6R'¿˜Ülj0ÃÑõT0’eÚD7~v;-ž†¥Ê]àÛ…ØiE ´ùg”k¸¿Ï4Î7b ÒÅAð»šHP1µÒÁB¬û)øä¨máú¤£±Î(`ûª9 ct¥X­«·€¾jxa¾v;»]S@œÀ¿ÓÖè6ƒ—þJ^¹èÏðÊF½8õÅ9kè5§×lþþáìœ>oÙOÖfwš+?¤0à¥"Þ‚g‚4=i¦oH„×Üì,G-.pºòÂÛ,¿å%üËÎÿdØ ü«ÁC4¼Œ•-¢ywÓ_]«Výpõa>ÌÅZyÍ_ݬj&2 ðQ¶ù¸O ²Êê°¬m|Osz±9ÅsüÓ}Í4ÆB¶\³íÜŒUü!2¦€ƒù¹Z€Ò଀ï.³ønäWýri5Xn†¾FÐØÝ4hUôñÐç_¸µr™„]Û\}wnTDy¹¼ð³e€[üñO +Š·ìoz']Š ·”$±‚…³?›™›û˜Õf¥âÌ”û3®ÖϾ}ð?›áÿƒà›•ìØÜí>´OÑv‹ïÿPÐH.žÆù€ƒ|0ó3­×`"ʇ·ÜwÞ?PÞ³S-,ðØW”©Èy«sžò(ÙpAÐMÛŒk#|ÉËU€£€ßÿ ô§šý ¢hr5Æþsjp&@ë:À` +²qÁåÐ.°CÐí^ß`â ò ÇP`¯ò´k]wt)öš\K(Î¥ søçO.€ù*Ú_ ô‘ M!/Bc‹r»OþNáßn5<Å0_Å‘|ÁAxø*çõôòæ—>4 Zí6T¼¨°ííR ]¿tŸÔ +¢bÉùz£€•Iùb£ºᦢë aúmU?‚PÞ¯¯á7®zåð_‚§Åÿ üñþ«œÌàþ¿Òä]IÜä®Ó0fNdwø„‹Ð9𵩙ÎÂÍ8ù*IýTãƒø×ùAS½Îݤ—ѰٌËqúä+ˆ…ÍsLœØ¤ÅÍ{Ö\à@gc²¯.±¡®0oA*QòõašeÉðP5$±êK†1É}kÎÌ¡ÄOr‹D šJ‹“²›„óJâÂH´þ>” ê÷wx¨|~x~-þ¸L‡5íɲÒíÙ›K|Óc“Í޼ŠA ÌÀ7Ä#³…›8‘øðù3Ï»}ÃPÍS+ê X %*}šq|sö&®ÂœF -ÜžÕdµš¬BѨÅ ‹KëòZírt<^¿ÑÄ% ôY¼]zLÜw*”ò;\ýO Îr`Ûê²­®P + »Óå”î9`'M¤uüÖЂ]+¿{ª œÀ¿Ýî“cÈ5Ê8q¢ñtÈdf’}žÇ­1A4ÀN—¤àíq«Oþn›-eUŠ©`ƒ +¨Ÿˆ=piCM3À7’ JAóig¹¿¤—6ª¹ƒ^a9ü¹âßA_ÿ:KXàŸÿD¹Çòqšú_'òlðmÁ=åñ¦ð=Ù”¢€âd9}a.Ð0ÑT¸3韅¤éÚqz«ãËÛ5ÔçÚ1€wè 8[ `vÙ¼‰ø.Ûº…»Ää` f@“&7N ±¦îIü²Å­šÂ5‡1ÄñÕð+;®w‹]ì1ÐÌŸ»¸°†¹\‡k1g˜ÇŽk`§´‹c]ë€SQì£þw9ÙŽª5/™¶5@ü Àíä¥ìb9U4æðï÷É Ïý‘/P› 9™¢ý¶W×ä0Áºyqi‹´þX!žÅN@õ½êÑ$Q9RC«T§!•e‡!«o—GICC‡‡Bæ…†üÿ„gö1ÿvA×h@¢ðìÎ)=ÛË,Žj·äóUt¦g Åö, ÝܤŒ·_Ñ-¯t_ã(™¯¬ø ÌSºY˜¿U[ZH•nrÝ—TgÑbžÒˆ‚Á۰豂w ú&ë–x¼fVïo1ÀrŒ Ô–+̪õ_égjÞçz’(8`Ç]â065PS×n[Ϫ%Ðm…Ÿçu ·-¦ š(·;¦Ñ`‚ ë;lÃћ撞¼\W DÒ׊á>úêõì Ù»ÂoÚIpÝ>%/HoïhÎà^ô›ÐW›~ïéL|«ô*]Ž3è@R†u5V”šÑEPÈWðì‚\5Cn¶N.@›Õ +'ä]­€Ò]»ì¨÷‚® vÙÓ>Š*øLnúCÕ ¶¥!Y%• NlIz5ê7[„+Të¹¢Ð‰Ê´Š +»PŽ#§êe›×…ÒàM@‘wª<#¯j +`SÙ[½ÂrÜŸÚªUü9øOÿfÊ¿Æõ`³–®ìÌÜ÷mTc/ð7\ÛQÞªñB^õ)˜4¬ú`k«Ñ$¡„ÔW‡ú¼è5Øœ78ÇuŽv;€÷è p^ˆ«/°¼Uÿ­é EPDöÉå ÿú¢ññn­«æ6ÐüªÜrn1 ¾A‰ëê®­éæÞÁ¿&†XT¤¿q„€o¢>¼ä ª„eC;Å”(|¨út˜ýP_nÜ,•fƒ‚ÕaHIe&¬ ^|uWeÉ^†w ¨™=Ô’‹¥œT{8e^0·¥ë”—¡+ÖÀR“ÿ \G ãûçÄ€ô¥¯þΠ׶–»ˆGà T²®]¹Ã¾rêUˆ¯ Éƒ)ì÷$Œä(,@’¨Tvw÷{r¤tªê¯è+—ÊвüÊÜ@тގ +}]…@"Ä\Sùô"GÁ®1W + +®˜ÈÐýü¹‡ý‹@PZò`e縬|cS…Ô X›^Àå +@£q¨?­÷1”l£‹ñÝ€åD¥úå–£þŒá³ö¯Õ›ðG‹[0b+R/tø3ø•]9ÖîG¦Ák¤ÃU}ʬ.Œ7ÕýG[®Ç¾Î§½Ø4‹À»*€÷î 01}ÓÕž·M®%ÚŠ‹mµ¸ s°ß +psuüâKn…%ßq†L«yi¶€8¯¦5õ`‰+Õ°ÂÿÖ«“¤ß¶Ê¤šzÉ\õ 6š\–°/ìÕ@±poAc \ð~äð7S/?Œ2^ã…ÇCÙÎÞ¸¡]ÀôàöMc€Âülx[SlgÇKœ¼'¥t1FS6cƒí9{› +p п•ù£@ ¾ô¦~½«} ЫA „{_Sùò‡jÞ‡p.€s¬±Áð……Ô<ÀšV*+€;'×ÀA_íö/ïܽjý“¯ãR1ù"ˆ<Øéíÿ–KÔ…ZBS¦¢;ä(9üùoS˜@NÊ ¼¡ÈSzˆ“ó%¹mF€äŸ*`©r²S²ó +ÌáX÷C~ÚV}ÞRµ_?‹ƒ?EÙ8ÃCXì8lJºçæUïontrbJœBx«§¤TtÔÐ ”à(ÔÒÕä›VCºš „ëó–K†ið÷è à`¢p'hç,‘”GÖªq²ÁdK>áû"àûQRŒ¤rÙ€|RÓ@A)r3ð¾uK?²„° +D«dMd˜O>9kŽ!ß  àË ˜»yó¶7Ga` `î…âIŽ”w4`áóm·ƒ¹ ©PW¢šoM1v‚iU•*^Éi L +§À5Kš¼Ô0Ç?v¥ +@àãï52–PôˉßS=›È’| W>­Î``"vP´P Ï_¥_uRúÛïï>ƒÀ¿¦öfµªóÁ+.@®ý¡}èÚŒ¸{w*ò?P,Òõt´¸€ncèÂzûŸiG®Õލ¸nÆ'ðÇ®P%ùÿʵ“  È:§„û¤¾ê€|Ö²é©ÐA¼òR©x^è W˜ÃüYóÅ‚ÿ$ø/sðoh²Ø,Ôvg\Õ5Ÿ˜Í-p'6?|Õóš¦ndýŸ  ÔEP3†Ç øGŸjò`ÛÀ»Oi}ö_¡~¬yx^ç$ÔŠ"ë³v”BßYâsGB¡i9ùÜ‘¾æb@G¨z÷ø{êá8 n:€xº?Q5§O€•¯$ýFÐ@¬o(€-ɉ×ké<€Å›6Páæ-@Ì ·½Ùà# )ƒ:¦À:@ù~3éú°îB®á¢`Þµ\òbµ8õ¼¤V >øEáß[,³fúåº;øË®T"€ +HCÀ n• +vi ÍßW Ü Y| yÛ ½MIß³@€f×}¼~Üvíj^ßÞ>À¾b”û(›\ +ÏÂN½²’Çôd"×9P'À?°8µωvÛ½®Z,ÚPeܶÿãð…ëË€4VŒä¦à?œSPÀI À<|eÔ\ä@¡dUý–bÚâÁE +»†`ë+Ì!þ¬™ð×Êaµšƒÿþ õyk¥G+ke~3Þ´³Ŏ‰ÌA(§P \õ"ࢾÁʺ˜@¶ŒÆþX]éO±wÖbõ²=¯r²¹4ð}ì×› +@D 5ÌyÊ €FãèÀP8¢ªF e_í¡ ‚¨EŠbæfCC6œ(y"€\Àü–zN€%^ß:.À©°,19«ƒ?¦°ÝP70е$SŸŬùY@¾ã±"’‰ηød3ÞoXL`¢ÿ”í^LÖãäQ‘l¶Xd…Â\’#ÿ"G×Q,p +÷qâY Œû +úõ€.â+àVAVÖ«ÜÐvGC|iîUBèÕT¤úý½Žÿþ`oO#ƒ}ÉÞ‚)€{•É@Á8ð|áŠÜOYûÞŽŽÜWc®‘“ÂHݶºYùnT´ÿ/Š?Z3îŽ5æsG¡ì'ð‡|.WJhs›] øç1€Ó  bµó1ϳœŠ§b¤È1ôrs?ob€Õ»åµýgáßJÿ»FÀÅ#?Ì£{ûTé„ö#?…WW%E]¬ÖÈ‚ŠÄHá辌½×Û[ð†ÿ÷‰ˆy´ÙuÚ(Ç`!åÌë(Ý>Q”öVîoê†Î*(§ê¹x4­?ºS昘èÿ3 +`•Í6òºx#!îM@©o +@e?  €ÞŠÞ¬?Ñ’ s¢(ØÏ+k7¨/òô9„|€ÒÏ–DÚ)€_‘ÃÖ½$€P· %iUŠ)ø)ÿçš&p ŒÀžÊuC‰ ޥؤí÷~ßå ŒQä=H5P®K'ôÝö>ÔX¨¬Á­ŽË~R»ûP»™èï ðý?{†?ñ%T ß=ð}ºâÀý9èRÎëëç§wîuð~?è|¡º‰U?p`1—Ž#Â9~û™‹pYV À€~€´Æ)ü÷÷Ï*ì$0] ÀSýø$Õœ‹¸Z€I8¼Ÿ³‰¸»æ$@ŽþüZ£Ö6?ønRO…lÍá›ãr^ o;Kl†à)3*p½^Ë”‹ŠŒ¿'&ü_˜R?^_L_£b‘/v '/SÙµÏHSŸ ¶òEv)€ç"€©.ü©Ô>.”̸P¸€8JO¶ÑñÌü1UZS`%EñoínÜ,X Àì’@rÒà6•‰ ¯¹P%€)sNœá€©7W7qJoS’Àj§ò%à63Äìÿ›&ñÕûÙÅh‚•ªÜ‚vû^§?xŠ@´UÁ}P¾³–7ÀþçP‰6æH_vŸI€ÿ}À¸û†.î´+ûÚï¥ÑëªGŸªáA·»r§óÅ ÷Åï;ÿmÝ´!4ž˜–’w &\‚ý°¾b(«+èuóòßàÏç5Ài à¼îObÊš—Æ>Æ9{'àÞ, ð°Z­æàŸÀ¿•|Ú‰4Ë_¥Qvç_é°É&v?ö&j6y©œ_Ûg o«Š¢jù~4½5³l”dj—Bpqú8Žƒf„i’&£Õ85c®™ ’×£Æh¤Ö²ñoG£o’Q#o8mÝ› +ÀÁü\-Àûõ¸¤@›¢¢Æ…„&¯i0 î›zÇàB ê'1€‚&¦i4<ˆÅ6Î*ä18:ðVP¸eIy»aµ³A!ß–{Emjò(Ý$¿qݲ†ºqj|7ïð/0U  ¬h +@.ÀÒzâÀG'1—C'×4Ó~zœQ"€Ë/¹ÓÎä ¢ûª¾Û³â¼Ãf,Pu~oŸcÀ”½;+•¦ÿ@“Xkýý~¥ý”ókÿß~¯ À³£5ÖùÚw*++*¤ÂØ(Þ”û¼}ލhš/®€.À¼Âûü ¾ì!AbN +Æ@„@P¡ø‡<¬‚á_Ÿq·s‰P-Àù€Õœ­Ài àZ€é@™lò +Àáý›(@®ü[ÉèÓÖ§­D]ZÖÊåµåòÚZqmmyyùçü;[(oÉ\Ÿ³ò­eOóÿ†þ¯ýàa +šïvaYs/—««êߤ pËì6õç†Rûj®npQ @Û…ñ”f'øŸÄ& +àê€#à?Å`oÇÕœä…ü90àÞPªò߀†þBX;58é5 ñUßXœ_"q"aµš5~§ ÇŽ.¦„‰?Ncgj¤jN|TP›%)©<$³™ +𻎠+°bÿ ÊWÐŒÕÆ¶©fñÓÜwøÜyÖáO@ÓokJ_`_ÚÀ¼ WôvÁ>Ãmù÷Ýþ®pÏêÝN +`±¦MVø«HöwžòþÅR \POE5ë¹sçŽæúÌ/H˜GŽ¿:$Ù¦ÝÞþ@µ€¸x!6/€F)‘@§)Màÿ9{rñÇÎ+€< Qœ•Ú`>8UØSíoØ”@˜ÈáŸh®ËOAÿÝrš³aò*KîF¯Ò¤S¢Bl\dý(ØÊâÃ(ƒÇÉ0®ª×r6N(yÒô•‰\ÅB?ÿ4ÎÒ,y‚zN¿4õ¯7ÀB_€i¾sü;p4:£NbŸØí‹É±I àl-€4@^ àªÏÇP;xdŽ @5‹s +êþ1×Àþzj²‰0àwRu +6ÊΣœ!­–6ó…~HóíÆÈo80=ÃGià'ÚxÝû¸@>ôu;‰ÀU H_ãESŽvlæàoïØ³gŽî=ë<Ûé<ã] òù|ïT(¬Û¨Ü¬ªv%0U.|NnÁþKìŽilÿ•ʽÊS5ET¥žü£àwa€®Õ>h¢¿{Úž¶Í9J# YиÚÃßéÀb_|h°ÖƒjƒäJÿß#>$(ýÙ® ´ß- Ë€pÿf Àrê¹9èbîØI Ààåø§ø%廼òô&#Ååfªk€LÙBƒÈ.–¹&å:²Ü†×\P“ae,Ó/äzaJ³¨y9k€ +îKŶš¿_÷¿Uüýúè[ÍÅ&¹ÛÀb§ +à²vªNk4 ’^Ö˜ öDµU¨YÅéÃà-n%ÕæXU¥±U˜²½;¾³$~øúdsˆ( 5Ú*†zÔxPÊÖÿrP?U÷IÄdÔ®Qô­ßÒJõÆolâ³;}-zFi¸–XcGß+–üê9 {« +°Ž¶òúN[îÌÓ£âž"[ZÿÞŽ<‚Ýg»,s»Û4üàÏÐ'-a¦Ót@óÈÂÝQyç?ÿ¡“S½NÌ}µ8âaǼsÇMð•$7¶Ò–Hý·U!€[2è¢wîè»bƒÁ¿•þö °‰€Nbçk\ ŸÏŀΤÚß´é€ üÁ?îÿêjyÍÒÚ¥yœ”]s`a——HÈÆ¸ó6juÊ/Õ¬KËâÆh3U€ªIIK9'(ò¸ÜsÞ to*óËÛüð¾&µ¹Ð%HÑuc& œâ2?¸‚iì·¸I#ŠÛ p—‚Þsെ4þ9øÓ[±À‰…ÀHrí^©x£ Çý€<¥€k(€I>Òp­Ñ7S +àÀ ߤD8«¼u§l7g9¼E¨ ¹†¡L@b¯°àøóFá¼R|¦Eàh²¿ðêPn¿xü\1X뮃0¨×ŽÎ(ÏW4“?4 3üŸ0Š^œ²R1 ïÃXgBÚßF1„•üz¸;˜èé½;m´¿Ô„"F _¥¿6Ó±8Ò;´0\Ò@£‰\ÔàM\åæÐ~¡M€Êÿ\þ­¤Œïï’šü"ˆ“å¯ ƒ”Èb/ÌÛ1ªƒ5dÅ¢…0²>Nòi-ÿ¾±¾Å š˜M߸ÎÅÿT pe;ÄÉ›1m~TÈcä}©˜hªà²vA-ÀÿBWœ5« WXÓÆ(@6A+_ãíëÀá ÜîœÀüDX¬Õ(àbp”Ç‚§ðÏNßúà l»©O@hœWrNÀ•oSB•>ù×2…û(PU–«ìW¡¿ rÚ\€Þîgb€g¢ L;;ÓvµØ…VÍÒ-”Ý¿œƒ @9×Ì„~/6°ï¼ñݯkRw¥ü"¥ìÈ•;,Öqyw}àUÿvWŸ¿„z“ҟŸ—®°rÍÀüü¹–€? /À¥ +Àaý;W €ñ>j}šŒpþó”v)εÄË.ëúe”4˜¹.š$\lT ðfA<ËXÊ…s†y–Å ±owUû›°—ŠÿKÀØ€ʲKZžQ$÷vV\0àÚäµÉ þ¥(À%Ñ5fó o%ç/®TO±T(|HÒ‡5#€ ¥\¥þÅa«7U¹ŸÊ¸"@^;§Ó \FùêÜ€E¨:Ðö…~ý)šŽ¤_ÙÙÝCÀ¬y¦žø†AaO;Š4Œ:+p‡3¸wXýn³‹ñ‚L±„sçÆ ô†aÊþ‰˜09Át9:‘ÓqE\S¯½ËðîEëØ‡ƒ(ˆðôiNˆ­r'6êÁt„s +à´à\_€ËÚ¼Q „+·òþN}Ø/´©€ÀïH`”¬–O}™°=V_Èq««^¹èª1óàµê´¢¢uI´2csv5 !&ŠQ˜¯¦&ÛÈ&ªüµïÞ@TpPÎwE©•¦õèbÎHp£&/üˆ8‹«-oQ|~F@"|}7…á#hóJ(€a¾w¨ç]* 6É=ÜFPÄj~mÌ gÉfÚÝðÏ­~ë?¿PÔÏ*€ßP*@¯CVz +U‚-H3¬iœn!ßDÿgÆ÷v:ƒ½ÏöŒžY7[Ûßá@{í>CèRî¸úe‡³Í4HŸ}×JSíZÌV••øH ~[-øŸ\‡Ô_n6q“;}΢c8ß^Ç3à@¼}üSÎ)$/ýuÅl¯‡Ð¾F;€Ü¸0pª,ÁÞW8¨_hgkNlõ üëQM“üér¢ð“à¦w±¦°ê,¬ 4¦íJ~éî¼î•C7jÎ[˜2«¸D8˜_øá}ŒË€[p½@^ ìOð `1S")`ø[ ‰¾0nÓãŸÐ7Qà8KižåºG.§žøA"ØÒÙejˆÉËêõø›j ì·S”AQºk„â?viN +ÛnÚјqR¢¾…øÈ¿ÙW@&7ÚŠrÍÝcà߃(mïíìÿÝ6{hfA'Ìr´î€fÀÆaYit’ŸG€”å]¨ç³rWvžæ—ËFÆf:†Æú‘ qÀD7Z?舤/¤´ f€wŽ…|ˆ;|½³bk§JgkÅNÀ¹vÊšgj¦c‚Ü5€Ãú%vªŒœ°Ìafàü”Qª¿·~_á{•¹Ž(§ñA£ˆ‡ÀÝ8[×-Kÿ„~1æÛz­®¯i³âÿ}cv)§ +àÊEü›1µ<8ÀëÆ-ŸÛß5cy-€€?Á«õR +@1€i¦‡áë[@õ| ÀU㑦@î¹iç¥,ˆÌ+ñý‘znE Ù6zòûŒR?ÎZÛÿ—þ˜ÍÎÎAäîÄ͇® ˆW.”´DÕÎf”ÿßJ®(Õ'æ@-8 ®|ùŸ}öì3õ³3`°ç@nøpYç_'Æ`ô½ÌÀÖÐo4–q°ïØX`ŽHì„m…5§—ŠhwP} ä—ÄYlã(X bÍþ¸/ýd»˜üfer%Iä5)ýÙß.Jf'Vß·ëöÌlóc×8 _lgkràáÈì¤P@òóf-úÏ­¬ÎD®1£,n±þãrr³.$àÝxí³^ Љæ0²Ë„O_W)€±/€øàâ–€çj¾äoús?Ôç1€ÿg€by-À™€áÿí1€³ +€§ÊðïÂÇ$Œb0À#L÷W ¼Û+L¸rn.Æànë-v³JÔ: Ó½ò÷x-x½ÍƒÏ­®N[¬å‡AV97„K.zæ è°²øÊ[T€¤Æú*i‰€j%:xÆç׈¿= 6|Ô^ÚnW;îXS½ýuu»;¼l\q™hÁþµ":¼x€?®^l¹c +@Ä Ì›åßì—ï¡“á¸]v:=GªÈ0\;ö¨ì¬Øž˜¾t*ÒÏÔMèüíôoo0ÕP¸ÿ±û8¨_bgú˜ñµè€ è°JøZ˜!¡)+—!‰€Üìb(´ù\T; ¨¬TG¨Ð`QBx£ÎÝžL|köƒÀõûhÑ1Ùt;€É­ëîHê*í …WƬÀþüç + F¼à0|½Xز7c¢!윰§ÕBH€€7q.h"¦àWøb»uÕ(‘[ÍrxÀíZêŸ(. Åî¾Ð +~&(µ'†6Hµlfgç^åždõå@‰jþ´Ir•¯BDŽPµÅ7äÊ4‡\€½Ïœ€m|>\¶0¿ûð[õÊéžÜ}ê§îrÌ•èŸäcmàKñÖ“»€"À\°^¯5Ä-älJ¯Uófy„ªŒ´tV¯“2¥[Ï08LÞòO»¸·Å4õ∗½Ù @ÇÉ0”´„tw½«³ä8jŽ8ÒùS8…|’V³Âpü"¬/¹v(Æ5èŸî\Ò¨êp ¾Ä…kˆfÝ8OêôÎý8búÍQ=xð@[ê>Y‹˜àÕjA”lj’7¶$£=  mêõ—ÿWä_B;A@ÈO‚ópEjûsïYg°7JÚDë¤õ…%l÷_ÿu÷³=±‹l±€~²@0Œ½à ŠØ„/Z¥¡|t)\¢ô€Œír>`ÓJg¥  Õ!xiàJ¥k­|ì²á Ök/»{»3m½ Eœà_—ÌöÎ?Ÿ|»Hä1€©¾¶ÅÜÀÁü2»¨ࡵaWY8ÉÚØq:•îy·R“þŽÆ …¨èÛWD@àÚ6`2Ý·Šþ‚] oÎX7À¿ +;ûË…¯iì 0Ë!¶Ýsâ +÷]Æ3qUŠ'0 é*Å ï&7$*ÈÓQ=Fè–‚ 1~Ã…'u8\€ ­즿 íê@M‘ôs¦¦ ñ0’vBÕ4ŽÜœLÀ^J‡òžR:Ý|’:`åÿ'<0¾ÇŠ$M?v“­;ÃPS=îÛðkhįþðêðÞ}X‘ó||¨sî lS«êF>Up^È»o™‹TSuÿò‘š3™¾I"»JëÏÀª§§RVŒ†•KU€å}@ +\M–hâÁþïBõÚûÙõ4 ¶Ÿv  §r`Çgç\ñ ÇÑÖö ðÏbVT4È×X©ü’ D ×´€î`âXt@‡ÔQÙ «ž?•5ûuŠÄN!ç@Ÿì©kÓ]ƒÅ+ôÓöÖ"í`ßÔꊀ,WÂýÚÀáür;ÓÀ½õc5tDÍéA¾£ÇE]À‰tçÜŽ¬™ÝD©ô¤ å²5·TNІ‚}AQ³!²liK Ì8ÜúI_62¾FÔÖg­f5‰AVš¿V… + Su66éJÞ­«‰»ØJ=V’ÄQ QÝ*À° º€``÷W‡Üq0®©°®»Ô\L™²;O^¦q+I²ãˆã)f1Ê’­0Œ³TÓr ×ßpذÉãåAÝQÌ3ÐÉÍfT^^¥‚¨ìÃáD`BÝ í¿³‡ÐÐ ëŽÅöÔñ^À¨Û»¿å¥-?~·¯ &c íî¶»Û×¶¶agÅ!ÐÊòg¦Øµj°n¼ ù)Ì` +€¥F.jhÛuuñs[m È1ð¬—1¬ s Ø"Š 7is.Ë!ßùléß·‘º' +à]Û„ ð=ú8˜_e0 >¬ªÎ‘l + ˜HR+£c‹”´†Y3Îí@©p[ýWÅ¥æ”à-'€‰0`â$šô}w榛4[]+¯–mÊÑâ쳨ˆòªf-ßÿ'_#ðW^^.®jtò‚çÙºÜV}«¼\üùr‘uìÄ»·êùŽ=Êž_ôíHËeíä„ l¼ªxEaîƒ[Emg£\fWÇSØÚêÚZøpÍ_ИårÕ¯B» +RøkwË~èûÕjø_Ë“ƒ÷‡¬®†!ký‡—–Y¦ÿµ»Ë!gY][ l”…²NPõ9>/¢ç·Ê“ûÉ­‚»Y—ÏÓÐCП>jm˳ñ<ÙçYñËÝ·=|[µÊã¢|à‰`š†v®¸\儚ØU6#•• +pŠß•‚G€0°1¿±°ü¬÷l@sútîÉ؇|ÝÈ $bívû»ý¼Ð@ÓôsPÛZ +@¼b +€œYﮋŸx‡îݹWérAî’í‹Bjùc×§ß+|ãBu¶°vyÐæÀÏ׉íž`…§’ Î4E¹N¢ScçKû¦grF¸Àôˆ@àå’€Ðø> +À²è¦i¼Ó£ä…FñÉÒ^ÃÙž*!~Jœ´pø7à&8cÑÒ©(´0¥¬§€€>r`Tb ùzòJ_qA”òÃaêÏÝ.áŸj~RM5hkܧ¿9ŒŸd¨&¬$ Ùü£VG%ÌD_k ³¤Ùtú6ú*êØ‡i¼ì‡8 +Ÿ(¦hŒøLÿ˜&Áâ"_“ä9%i>¼Ø®Š°óW¼†¼(£3.=7×Â'”Ö¤”÷\Í_²ìûÿý·¿}“R>g¯¸%Êø4ÛäæÒoÿ×qöõ¡æ$¥ä×râôÉ3îƒ[æÜÜŽÙÃø”½aÀ‡¦^tf#UofƒB×¹µÓ;çI¬±Q“Z+„ …írÚFluÜ[z×=²­×αˆA=Xn{Qò‡5Ü‘Ø š®îÀޤ¶Ψ…É>¤Îõ§M‚©häv§·ÿÿl°g‚~¥s§³»7ØûŒ_’Û»Ÿ‰ÔG?ÁøÞ¿ªPð7ÐS#]aEj;`¨30Æ0¯˜B×UT:+6”× À:‘–mÂ=¨O{rI¿äë7çÖX;€î +ØÀ#ª°è›Ó )á(Só%5Wp¿ìhØ9ø«ò½Š#€©Àßq^¥îÕ¦ÚgY^ý$ƒt(ÿ·N€Ž$eâ j°‹‚òBêiJRi¿XHf5ÛJ"dyÓŽ9®|8VÞÒË(Àå(³†A¼Áé“òÏTÁ ú«é¬:5çÖ#ˆêqÕO>‚ØŸ\Wêßø;YP‹U¥%ãveï8,'r£½LO™gG2_â¸Î‚ ÕŒú¼|Ïnî‚€¾_j‚ÖR)FaøA+÷!"¡ hwÔÒÓP¥@«ª{Ów‘‡bˆ®™O/ŽÇ~3°Š`z +r›·Ôò†¸ŒçP˜-É.jÁÍñÒšT#»C}’“2Kashqž$„Á—Iµ«ËMà x>ØJW‡1 `æÆài¿¡´ +ÔÛ\û†~þX d)(ó¸ &õtövUó÷TÐéíiHo½Z™ñ½¿»÷o¿Ëñ/—¡3pA@Ç»j䤂 ‚”U  3ñ^é®À\—‹ìç`!¾È€@µa˜æL°ŸS°3èjR8¡gÐç¥M»â˜. j@Ý¥Îgïo”þ÷Vläü€wÀRì\ @íÛ€+Ò¯²<#Ú ½Î¬ü?«Èi!xÔíW¬.‹È7šX¹ÔLWzj¤éR‘‹ÜïQ¥C€áßeïübdV¸ÚÅ$þì,ÒBªHÀ›X ¦ ªqe~q5Ô®+ÏÓÜ3\ˆÙb±†0ÑÓBˆha=8½?èPæÚh¶u €‹-Jêܨ&ª%øßY²«ð/›Vöõ{Äm"€$ÚLãüis÷6(÷}L,«Z †_Oh«aMuI¥ÆVâ +°ü³îÕ•8‚%%Œ¹á›³¥Š e ò¶;÷âê£í hèIò{ÝmÊ“Uõ£ž¡ñ_”®zÄJ/VÙÓ€½ÀªÇ«IdÉ„ÍϘ…ûßT•ÊS!aç´ZO“$oSˆ +@Á>Nÿ3#€^geç^çÙÞþ~oÏU +ê@ ~÷;Ó + +æ (‚L +@D £jÒ.H`R¼›Q)óïb]!Û®Û8B4!›ÀÒ_ê +:PdÀ\€ÊŽ DÜëip¹œÍ€«hÐÐÁª¾ìiÝTvþ<=ÎÇaÎÄ€ð¥íxø?DXxûjs9QE™*žìEšË 8£€ü‰øD9H¶ZJÔüNW©zííœM-‡ìlë ò_XÕ©RFŽôwÆ„.m_ß +Ô̸´(ïÃ@'W>•ÅA9ñ¹Ä¼a‹ejÜ+]ª«u ¿ƒ é©û‘ÀG‰¼8*§Ö¯Ý« +즽–Jó·ç zÓ“¼Ø``ÿf @ßÞb‹¥€“ûèk÷œ&¦Ö†(žH#‘$Só;­øÍ4^Ú6%fÛqèZ´Lh y-áBàAQ¡@ÁoŒ»í z±ïçm)ÍeS{D6…»îÞãÎó™]ÈVûjËùVº}H‘“¬b--s?}SH"xûN|8 áþ ¾&õz¶‡®îôP +î‰vwz9˜ñSïö;pï¨=ŠØ-q ÓiX¥òϦ„ã|E“þ( äº X¯­,^Ñmw+•îS.S´Áæ°€)@ +@#j,pwC¢ îUñ®®Qk»”sðw¥?ÏGðïvû}¥Ö;´P2‘ïØ`‹üò˳"Ç6P¯\œÖØQï“UXæ@¸î +岎w®xÊu¥§¶…HâpJLÀöÐÇ$›çÆ>¦%bÿgj +È“qçV]<ÔÀ‰‘ýq°ª!vøá$€üÍT®áÉø\±åm°™âQX­GqY½b+ùåƒðäKó7çí$œ™ÃEV!z‰½°/W[Ý[ÚðâØÊvpœ›¤'`ø×‡Þ“°©­lµÀo+Ò‘©ý­Ä"äU4ë°îv.¼Ü…8ónÌ.έRN¸;ç”óâGò‡0Ç”öUP·«[oXq—ói µRM &µÒG³·TY|2WúL×Á]vNT`Éj¸jìMÌ€ŠÈ®)ŠÍýÎþà™F4z  Þ€Hƒ þpÜg¼¯Àrèu1¦ô58Ë›ähqÇ' +ˆ¹T;Q_!k3èÚüè+.€Æ×uö;_â@€ì¾]˜BÜ;÷z{€$;8üëjÞ(ýybþZN^…Îö8×À§T´9xk_Az«©š‡â6ËÆy4~tpÔŠÓ´œX´ ‘Z­äõ7ÙH Óã´•« @ÞNñh<ÊFIr¤Ú¡8ITÃeßq’6Ë +zok݈-³qš†ÓÏ2cý©ü›X’޶_§£,ieñ·w»T&†íÖA–½æäZ¾¥~•B²ÇY¸Ñ´- 9³nµLÚÑnÕZ©Bÿ«Ëq¶-®±Pu#ŠÃPq½•´â£V’ÅÛ™×_j6j橺øå%ƳLÒ¤u¤ G…gÇz6éq’>·Ó4ÎÆGG–ù˲ãQú¿›Yºmo$­ÑÑÑñ_¿ÿžGº¤¯ÇÙéq<²Ž£ô%«ULJÙÓ#1ãx½pci®LJëz4’hu5=RÝGœ¢òÃ(n¤HÜÒ3l¥ñz·ŽÃGiËq@-Þj¼~©PÁKŽ?sµ…˜`šΨS†È¶ÊNÅ۴̘5 b [iß‘ì åë(LkCëýÛÛýÝ¿œÀÞNïç@ÿù¶²Þ3äÆ +#ŽT#Yàœ{.Ä\€‹€[w".‚í>1ž°ZS( £Ñ;{h¾²R÷)Òkïö_r’œù üÏ–þŸOà¿RYY¹H]_€Ì ÿ"€½£P­0Šømÿ%ëÅç«—©3Ë2ÎâáWå0P5³ê‡“¤Iq·É‚X%Ci¿¹ê+G°PÆNÍø‰f3fyš4Ãpy-â]GQ;öp“-ÖšIóqóDؾ΢Oômr¼pöfU¢ëšÈËV¿§|ሣ+"?ðËWÜwU÷ÚcýUµ±QÇøø‰ïùÅ凡çæ [”Ù<Ô謁wÏ/\^ô>Bl°O3VÍæ0RÛºó¯‰mFÓ1€Íhó*SCƒ!WW,–¸•p3inãÍͦ³°ÙŒ“fÃ\pÂc>²Ípsøê'~˜>O_ÄÍfô$~Âj/Û<Œ£¦_ö­mÞŽMÙÓW5%·°Ä›…>œ…àNåb¹Ê3ðÕ‚+v*‰ç©/ÜœÅö\£¦*@› §#Í#¸“ÇÁ–ÕûšÞìqæÕÄ73›Ñ8øg(`¢Ä”›@„ò©¯9ú0Sã]͸Ϻ~ç·ƒùl0x¶¿;€r؇v»û{{Ÿul|p ÍqÀø^ïK€€ÿ^§¿»sO ÕoÁ_\ £ Ì8ú*޹¤œÀ¼à©úÉ>ž>€é+Ïq»/) «æMûÁU(€AÚhL“ö5+n†NÀVíönðÅn¿§“õÚõgº²ô笢tee8q.@²Ž$z—¾"™ª¯ø¿=§ù&n•¬I™™Ð+ ªAXN,ðZ ÜTªVèêûk,6Ãæf³…~UûE›U¿ùd¹©¶8Õ¬ÝÜ Ãµ_‡¿«›Íµ¸Yýµ.õD«uH è ðSF1eç¨ÍÙ™Ù¹BaµZåÞo= ;[C½+MØwdÉ]êV.5Øþ ý9O'+ó `™@Mrª<àða8úi6ŒŸèòÀ´1*Œ|úðpøðP¼©zì sS§ŒÊþÇ·¸b;÷ÃðÉ“'Í5ËVwÉOîÃ[ENVCntmu!Rs?ÝjUí#ÕJ’/QXæ¡o²ÖîÙž# Æ€ê5ˆ£Ç3*ÌΑIÄÿœ\/à +p*@?4X0X»ïú"˜IŠ×^¿·¿¿·{¢ŒµP4MrÛIz¼lwwÐû—ßîi6>Bþ•;6ëï¤ìçDmÖ™+(u…õ¸"iS(5ÚÑÌ>º¡²]ù¥Þ¥äö·{”Óª&ЕçÍú¸¬J{tu)íÁ¾|9úV7-' ÂÍ f`6G¿=«JxAŸ'€#€ó1¼°÷U¶á5¬¾~_üÑ’†4;ÊíG_£5ÓC52³Ç~|œ“­8CÁ¦M5 o¾8NûÕ1ÊÓZ› ‡¯Òèn¨I„ðØÇæZ QÕjóuš<´Öû*Ý(÷0yD™Î©Vo¬Ê7ÔX6Jñ#Òt‹b]jàÑ¢)f±÷s/mZùgB6Š>ïQü•´H,Á_ô£w‹MЪˆVoÏñ8´Š¿z”–« ÓVo5ŽÀuEÑøÛ?ñwÅ«ù_ÓÃä0k–ä±pä$Kqf²ñøkµþSƒÀføêßÇß§Ù!O˦MJY÷5OȾmŽÇ ·HØe˜4ÇãdÜzž•¦^Ê^¼x‘"š‡vålVœ[‚Øÿ¹h* =R+Š« U¼-LÏ ŽŸsê¡N©©š¸qmeÒa¶Ó8äq·Èr…B„yÞüËŸ¬qãpæŸl6¬s  O«–*QwÔªW-ýÛÝÝÁ¿óýýgû½ÝgšBðÎ3¤ôPB¨É¯€.tsœþ Q:hW8ïtîݱI¾Uþ›gà>EÀºc~¾`Ç¢­Z*Ö¦ðk°UûþN¥_Q0_”Ú‘(åèö%>úí>ô¤¼Òµ@¢ØÌ[?q ;r»zo)ý…ýœVþh}Ä)×1iÂ1‹L™zÚP¦—Ó · TdAø8&w}²—D †bDDßµ‘·ð^ ­o—AfOü4z6—-0  +º7éŒCp’þúM7T„éOt]õ +lò˜ hê•fK7Å6 +]ϸÂ7žÕ…öÍÃæ+>ÂbI÷€A—<Ÿ‘@Š’MÿÏ®ñ#‹Ä'²¥ Œ­?=]<€ßÖB'Œ›ÿÉ¥y| +ж¬VÓÌÓ(-äÏ{\ÖsÁâ!×õ„Xè¶ÑØú¡§qôpÌ,é,é3BVªHÌòŒá”hóçf3ÀIsò_ xŸÄOsŧ +Y°¦`9^v¯³ÿ¯.¸Û=@·³··‡?°‡S`ªßêüuDjAA@ŽƒíêSÓsX˜QuŽWøPìȉ(£W€§)¡pOŠ}… m³F@0,i"ùÀ†Ðeuñ)Ò0Â~¯¯»šS°‚ÜgmÎíÎþ¾f¶šÄNOjæ¥?¿ìg.NÀÑ€…ü•=MC»xÕ?[Éì°Î,¯aŠºaËç¶âÈÒ,µås¼"òÿ?âþv9ŽëJÓ†AbEE\”Q¦(š~ðDÂH!!E$TE&J")‚´ž§5Ž™y1<€Š¦ÛýÇ3Á:ŒDANShÃN‚ž2OÃêÝ­³è#˜ÃxîkíUi¿?ÞU_Y™;sçǾ׺×Ú_ï&ûn«œÆpw¸†Qç»T4ãôZÚm6Óù,#V¥ -Ç©ŸØ‹²¶ 4"¹V À5¦¢¨™ŽÈ‰ŠïTœP•Úð²’„7«º7Ü—„1̸%+ñT4n†ÕÛ ¡m¶1›Éò²MÈ[×Õ2Î÷Aà-Õ€wÞ$I6ŸÝnÆMñõx³Ób'ª„óΖ5c¦ž¤Ÿh½ìkhFaT%ÞI»‹éaÏå%Í+Äëóéó%a²FðV”íJ¸b.Mß•ÊXm)˜kM®\ +`6Õu£ jEÖÖ˜ª%Za#éi½»$FIœB/ŒïÌ'yK›•ÙX™DÝö"3Lxïç¸$rQÚܸ÷ ¦ò€vÀ"Êþî#éÀ¯—R?ö +@Ë:£'°ÿo´þö_ZâþÝ{ø§Æ† @ò×ÅÞV––Jõ)^¶RgÇ š­BÖz6/W±ÐŽ7ºwã©ä™õ ½ÍPÂV¼˜ÁH÷æs9ç¦Òù/»Q³‘3ñ¦Ä(­SnW/´Fa¶>1X7®®°Æp¢æ”ÑY¢tAÐ Ë«ÿÜÿnS0[°ý[S;,ÖjAyUw¬šr…'Áï²öž ô.¥’ Â:ð»$çÊ)÷ì4‰»¿žßmÇQ%ªëâL`’Ž~„÷´²–ÚKZûÂt6HÜzÞ^ù.ïλÐ’¦aCœ!X€ð`à4¦ðiÀ4í$+² h69 S·‚°QÍP¾í“.’”*l”¨†4ã¶Ù…Ó^‚„®ÈuÃ0O£Y+„•ÒdÐL¶áî-k µ2FAVI÷„ +P§Ù+ü|?ÏY§/áW«~õ?žˆX-3ˆ?¸SðPïÏ…iöc:Švt,B(”=÷ŠÖnÐü‰x¸Á˜ƒP&ƒbk nq nüˆf4ûU²»h¦»÷ ûuLÓ3|£tú´¤°ã+: ÜDªäÞÏž>½ç×ö˜úÆó­¿}™õ÷$‚B þψµoÙ€Ç÷voŸ +ƒ³ò' +°&W×o£ mœ¥×6ɨ g]ÙÂÒB¤šUKÞ s™šMU­æaW%O" µ»±Þ^QQ†ýÒ ¦{` ²*¥Ç…Ë9/¡f¸Ä°šI\ 1Þ”â$*GM +xÕÝ:/õɰÃPÚ\£$ bŒvhÔæâ†eî«Wö³ÊІÜÊKµ1‹°–$oîå%Ùõ7¾¤.³Å;RwÕ ¾¼&¼[ó!‹¤Büds7 ûFô]sªMÝa¤ß“ W¬~b,eÿÜ -Ë/&@ÇÚ'ODžüÿùËé¿Uáè¯` Ì?]…¤€öãùf®¥°çÊ `ÝtHK !ö½§c^ þݽÿ@8WJæõ¿qÿ1Mú¥Ä¿Á°g 42ª }‰ðk£•ÿœá¸–í§´Úÿ@ÿëe€cðøuwuˆÇž¢Ëεþ,yìKÈή÷¼À[×”;¿ùm þ%­½ACËÁDp¶Œ%$NçeÕW™…æZ#Ý·µUù†ÅE‰”*iìÉÌ­®mödÛ©¤A¦ÙLú‹Y?üŠñpÅp·Œ X}רÚBiꘓv©6)¤¡ . XmDQC…[¯YÙ9Æ!/+Í*Õ,}pK2g¿ç¥³IZ- »© “Õ­\§kèšÀ6¾ÈÀ#žÿ‘ÝÎÛG;^›‹ÇÑï$­NöêUŠ2\L·n±E4Н,¡ÿনw¾÷çÛ)ãžÒ‚±V™ªD6BÙÇ­ +@×fǪ üsåqþ.Ö*î_YúåU½[zÖA¸Vm¼RÞ”T¤Õ’ÊEY´éGGµ±¦â®=,2£ë¯•n} bañß»W±ÄQ(€Ç¿x"F,ÑHð_~úô郧?3ðË'OO±ç_>ùGœu¡òᣟYû‡R­R@ˆÇœÃÄø+ü£zž<|úøáëY0³®!ù=sG´Š®tø´ áݸÿ#\ÿ (»–®ßÖ]­%Šá‘ÔÙõ»Û¿Ð9?yr€T˜@.¾¢#ˆ°ÿ]ªY̓ö{üàÛ÷޳ƃgX^ûÔ“‡ï¾ûîûïþä'?y×^?yÿ]¾ôm¢-~Éäj¹ì—Þ÷}É´ßßÿýßñ±7{½Í[_‘ÜÒ(¶þq'…I!=¬YHæ­=.%TF¿ù¥•4‰ +q÷äY#P²Õ4™Rb‡o}§­~3; ­‘p« +×ÇS(sb“•”œÀªËæV[ gðë9‘û9"a³´ ¨ÏÕׂê¦Çv´T¦D7æhÌÅQR“(ÎÖdy¹^Çþ›ŒWƆ + 0–o;}wgq?ì?/רkáºeâ[IÚjõ2œ8͇1¾ãòqœ¶©§—’èfÙµ;?ìfñ†«… jÓ¥J@]b´¡¸ußÂq @`®V—“j*ö†¹wÀ´×ˆØ%8€çgB*ei…@”âض(¸T¿•ƾ£ݸ¬I F®Þ»/É: +^n<”ù‡VË püŸ\xÅu'*°-»j.€tÑw7áþ#ÀÇŸi”‹! +@¶VJ‡Ázå» ÷L)öT„Bä1y¨°ôTÒÁoûñ½ûÛæP3!¥@àîýû÷­€sD›ŽUhoÀ ŸyOŽ?Þ‡t›Ü©¸ž20Q„í¡H±Â+‘”'ÒeÌ%òVÖßî"íœò>Ø·ÏÝ?/?þ‰ þ®Ô¬“¡àÿ'_|¡÷Æ£ß^dªEôé\ÆøÚ««¾ è‘{ºQHœÍš±þ Œã_ÇM‹í…0C€Úh-k¤¦/¢¤=eC»Š¬å­Vš7óPþ,Bñ6à’Ê?.<ƒ¸bá†}êWÂDˆ¹5äÖ|¸.ìJDñlâ|ú8(ËyÂ7X‚,%¢ëIà #NI0 ~jŒi,ø_ô + æš xÓËûé|ŸýéäN?O¿*×mP­“^°!>…+κ^t¨`ñâùÀf–®@ˆ•t³õ,'‰Ý#y€åŠk&)aP?;í ­5dÑkÒº´HÎ$½(Gîõëêí^$¡×ŠÎ×´‡Éá¥ô£×R®–Ž5V+ +„Õn6ýÄ L ä”±!…ػߔy +>ËÆ©UÜ mN„Ox¸ÐˆÜxïáCx WRAËþ[á'÷Z`Q„á±)‘ jÄ=žŠFHI@0hŽ#Û°‚5}÷p2îmÓtH›É{ûîû÷Œ˜!ðð.÷¤ˆW  ÷áŸþéŸÿâ¿Ðñ0öR^Â; àtbûU¥äx´ýäÑ=kéðþëïnÁNÿ0/¤ËîÿØ1ýñr&¸Žø @èG¬@¼­ˆ0il›df0„ôŒ±‡Z{QÚ¤Æj 0’–ëP +½#fîbŒ6XoWzÙ|òQi6 ê/¤Îx„ÚXA½_‘@ ø)}`UìÓ¸êÄ4€È0"bµ1©€º¾‹ äÜõ_|“ìu’ôÛ½æf™1غÒ{d37wšÒašºQ®¿Õå/[q–nôãÛ(€$yF{^‡t 3“•iDâA;]6l¿vY.Àr"X/G½¸6p`ÿØx™ÿ¥ &x¤+ kò‹ˆêTÂI*ßÑ—QSÏE2W©U­õ°|¸!ÁTŒØ[*@ðež¯ªä‹ð¶b_è÷åð@{Y³¦?®Èÿ%*@߸Úôx +©ÿÌúðÍòÿµíW¯e“i~òË_ +þzAÐÅΘ™·Ž¿àÐPúó'?ßÞ¾~•$:DZ`[À]½ Ã8R:)© › +¢€¹ñJƒÈåkô‹'Oþé‰|è€ÃÁ kÈ…ð¥mÿâñ¶.ÇÐþöÖÿáÃG Cît€ch,?‹ïjÅY à}vô +à ÌÛŠ‹Fã( _mµ¶–îÐ5ØäY*3ÿŒv%0|𯷸®Š­¬}CæL#etÝ͸Å›Iç ˶Z2„I¸bUÖ@à¸0°?ñ4Ԉȉ]¥„2¨žE]EÓÀ/±Á@‚úZTqíâ긲MbªQ*…÷ÕZȲsuÑæNŒK×,ËGËŒ„%kêŒåùŸ‘ÑÿÏ~='Ø÷]Ò>Õ O¤ Æÿ|žÄí,MÒÅg;º-ý½íñw^Ù]±ÆIÒOšß¦xÝn¿›‡»º;­gЦ`îK1Í÷;Rù‹\'$P5?ÉÁêÜ+¸~†5S؆ê5wƒ±\Ý•hVëãVÚâqŠq؈JÚN’,ü GŠoD"U¦~”¡«àD`ãU”­d[™Ç‚Úzù¬r…¹{ﺳ}¶Õäöe›h6§ è=Çê·ï ÍýÓSÚü<|ô?PÔš3Am‚°΂¬@‹ÙÆÕWúGÄí ÿœ§p÷#]}ðsC²˜Â“Ÿßؾ·´É}í¦#cîuˆ'ÊC‡6°}ïú]L>ÌÖ‚Nõmýûp ¹¿øu‰¦Œrn‹jˆ ]};ëïáoøÓéör1Ó&Bùÿ'ÀFÀ_øpÞÛÈÞ^FG“4½µŸ¹E‰³^¾«7¹4Ëód¾ÉLUØ¢vÖŒó¾ ÚTyHÓgéî—¸‡Úöo7Ò¯è=”ý€#§Ò:üáÁáÓ^$‹ë"ÇT€·“…Ðw6Z‘UÌ’HF¹ºUþ£©àVØ4ÔËHEk§M:ýªèë”Ó¬µ¿ÖNµ­=¢M¨«ëÄI+ gå[ƒ»D%_y§LÝ+Õ¢V²Êa]Ž¡6Ïÿ´Ü o¿¼ê&”EJsºûd‡ýGZÌ¿Ló´›~ùQ7ýÃóüE¶Ç;ùá‘‹ûwÝLËßt×»YWwë«gIš¯dGº‘m=£Ü}mhßN¾ÒA%n4„0K¥Šƒš<ú\Ê$ ¨5±áƒñ5Ò¤£ëkÇaÔÖ­ +aD¢5©Nªš¨qÝ&I£°™DwDû‚+Aº˜ö_0c‹œ4¤€ºÙ .yO²²îLŸü¯Täµ7€ÂOý™-ÙL3¤„tðLå¾<ëG0ü‚Fðio+@æÝµ­¸–×uaýúõwA‰aQ@4å:Ⱦ/üÞ¿÷˜Ñ@h'lµu|dÖu¶Úøè7o­m b΃¿”9Z%#£HmHO0^ÈÏ(7‚.Xßœýžgý ücÊGÀ€÷ÿx 0‘(´AÁþ/ S9¼­4š?h6˜¿¼,0U„¤ú÷K?ÚùÆÊTÈFëØ*q?úž­þ Z­ÎWççµ}VË$’xÖ§‘„˜ÿ8¢HqL”å|cV™UÇÇÆÆÆKåreªRªN]i”ÕêÔÔå4”ÙêT¥ì¤R®•Ë—•Üí¡/^ÕªÞúÒš2ñÂYý±-åJµ\Ó¾¥ÒøxIY••Ël™Äo)®IÜÄõ±ýhþR©FÜâž­„óM& YX¸¶8^k,.^[\ù!ƒzñÚ5[`ê¶pq}ñ?­3+Ⱥ­bÝ"·¼Tž½vM·¸±¸¢ûöCÝ".€ C¦Ê¥±Kº!v–úÖ•ÓtpvÖÝ‹©oýò¶/É<ß³ó³J¤?LbÂ,ù…©ÙY¯L¯âEº +/è¤õòc†YRmÐ^ýŠ kƒá[O³-¢î=øL_T~\µMÀÒ¢öÇ!`(¡ТE®õ"Ðoá; )¸êÇ·ð¾Üõ«¶h+¤Ot0o„]*X‰´Mîô[Ò"J`› ƒ€ý£_*“m?±HŽçZü ŠcÊݹ'ü>¾ûž®ÑZ?CBlÙo½¸KNð7ôÿG¼¥ä…æA `$ðã!œxý’í†IöûÝ®aR¢"f’ÒV‡N©éí”i)â/µ˜'aÚIEAEXéÈš¥;²EY’uïȤ0\E[$U̶$;¾iÖ…È´ƒø]8Ä1pû¸Èp'Qø[¢9›æ~P׳P\æI›ŒZÈJ­RQšÐ­…ÛV#^]þ.Ф] <–†Ìb15šr8ÍF<¢Íxg«¼,G·6CS÷I9aÔX`³®†v7ç}ôeñ&q}|³´Vn(k&3ËÝÏ¿;üaöM_$€ÙÐöwéMtw›I¾¿o»hu¿x˜wû/óþwí.#)¥ßöÿwÿðè ÏØ I¬u¹iúòßšbVs㺨¨Q›«sÉzoØ•Gœ/7M÷oO^”‹;ro,®4£F¨;·¹µ_š£–j=ó…f²)ÿjO4#ïæ/Ò|—öÜ` [IW¿ËÈ{fsYc0±2/ A³°Í·ßWû±ÕaÊxö›£±(¤Ì`›vÍ.ç úïãS¾äo1þè`~J$ÈgåNÀÿžoý%ÍXrŒýO´øñô®Bðõ€áÿx @bÏömd5Ç“bô‹ÎÖãgMNbÜʶ’T…„5·V£àƒh-m1Yôpg9ÚÆÁ£ñ†$þ*‚°jרõ¸ +°C >ˆwº–y ³\š¬L×êrýWiZT]ÃóFˆKË™]Ÿ§G3qª¹¸bQ:8KêsÁƒ®!ÌN.‘µDK¶µ¶œ”çÖH+-S*]R^ZŽâŠ‹ütÙZ,G?=ëW®1jê"Kêo+)Õâh …$ïaïpÞ¢]³¼˜8¹Cskyºi> +k$ƒÞÞ«çGwÜmà÷Vœô p-ªWjœ’v^4®5¬¾ÓËRͪµ/Sõ¿š6‚ŽNÛ¨Áí¤ìC$ô(r fÁÒ}-X°ïÐi»•5ÂãV()€Ž½Æd,)Ï^hÉ~ð¨”õ•ð…Åu ÀÚéSò0¿¢Ñl³C±ƒš±m÷LJp-«ƒP pÏàz¾¡J+\}楿dïDÿ 'žè -PIÁ¨oCÐé1¶É}±ùmtš;Õ‡¶Q¹¾¡1àÌ=ï1yï]VÚ*Ó¨w¤¸øQëÿù#ÁØáùÇB:Ö¿`#fÿ¼Z€ã1‰Ué½…Ñóù°Á/Bo½ˆ3é]F9–á'åEº)v%a S+ûÑZÛdv^·R¾ãBt›¡Æ ýES“çÖÆ½ˆùT€/~QLæ©I\ %Ó*«L®³‘õûÀ`~9¨ëìü_I4¥?Wj¼‡2G[À=±´$Ÿ*2“ šªÄ,þKäe-ª·‚Q(+€òÒ9èt’Ng3®(s]–îUœfvßµøÕ½°ùFõ›ì.æI|[f؉ßÛÛÛëõŽânz[ÿm4a:\mÅ«kn¾^—0ŸoüÐ< bV háSªÿQ}¯)O©EšHl²XT¤Z“ª Y-:R!:Ñcµ¶âô¦…€ë‘¢sF•KP^x;+‘'L°MöÐðo¼UìQVòhm´/) JrÚúÙ²?{ï†ÐÌñ¥A¤Wtˆû´&nWÛì`Ô>”º_¬œwÁ>îÍ1ÝQ ™qýZƒÏá¶h›X)Ke>¼m²¶M:ð—zàÔšKä<}é^|q/þ¨vNðµþŸ€Å~,[/àÚèËD +ÅQpN @3|Y`œ×Q1hJPÒãz5ÞtºÎÞÖÊqº$¶ÑgU˜Å9­8¸ª¿8c:ykª¦Ï-Û²*˯ŸC°n 4@¡¢ðø+VhÊNP_ +àb©4a +ŠŸþ´Ö3‚áË­t­þæ¼Å¯ÕV¥*x¹îoý¦J8=ýjµÄ‚ÿuähÎ1„µ¨\;†ÿ‹c´:®ÅST¾¥xˆ¿Al¸Î8*Õ¸,šîäé|·èà9 ÏFœëaÄ[‰Ý/Áz«Óëý†Zÿ§ßÙäa¶ž[ »,+?#GF"lñZãš.l®Ñ`¾9)1.gÎs&)©Ö:”(ŽÊQ+˜£ÚÔ4@ã¦Ð¯{Om ÷hTDäM +`msss/ˆS©s(ÖôY\Yp +À©Ì+Öü†Ç+Paµ +ÑF+ó÷PÄñ1°`¦UøÒžè³²N90ðu¶|æòð°ÒñD\À: +˜0¸þ +W?s +À¾ì×gš@ ° V¿ú¾Ê¡Q|qt;¬ò!€è¢ ¸NƼ}ïr¾ÎÅŠF\ï]Žcз³+„•$9þ†þ!ü xKïb40ûû+bº‡½Åk¾©н]* hCtHTbU¶V›QëãØæ®Ùëtz{ÉJ_ôÓPí…ºDûµï¼©]ÿŸ&ÌÖ +(ß±ì`‡´C`*@¦yøRaV‚t^\T€‡P8S¯/}¸DuviuØ>^¢"Í—ˆ¶/WÜ4…&ÔïIêu@]Nq­A jõ8ºDÁ_î¿4ÀE¢€Æ¦¤<Þ(ào’þŽt_'¬³-£_dóÉqw& 2À‘€ ÷÷•;=1iWqòGh¿%" ±FSžZezu­Í$“ pí&PÖýàÌæP\ϪÕW‰}&µ´ZdêµiÁ1€ïÛ>àV•¦DÐUBzJnßæZG@.@”,ëF-¯ÚSw $…p* `¦„*+þ®ü[Áf <tvæË0ïè +4(–äoÓàÁgw?sA=¸6ÁE,h*Ößp÷g…0´;ø<Ó'Zæ¬$œŽÆõ÷èÜïÄVJ5f`Êí Ònœ&m’=0ÕcŒ":…ªCxa‹ý¹¯Å»ÖåÀÿ„õÿüÑçCücé‰ÿC @‹|¿2€ã +à Ë{ƒ¬Ä8Þ2²ïÅ`)ÈÐË ÜÚ²aë{¼Ò•Cæ¥ÕÊÛ,ÑÕ4£bN±P¥M{ؤï°þ×û+ÕVÍ\£Á‚À¿ÖÚ\í4–‰Ì®“µE† +À«óÛ<ZÞ+b|õº÷ž´Ã£ôØõ0@1ÐàÎ1;ŠaäÑCóh ÃýÀúµõ³‡úá#ÝÞÅ4ÝÁˆêRô'öØG+¡œL©àÜKØn&¶u¦ÒUbv¶ˆ±ö³ 9ñ¬@9q²dòàÆ]j8îóôZvtÁÿñ*@?Ü“ü ý£ð—0´í‚²õ(bƒ¾rÎa¯Å$ʽs^i–ÐO%“¡ xñ‘Ì–"„­N ÛMÿ•4 súïŒLn‘Ч` y3%NÕp¥S†vÈ,r…(öˆ¥¼[ôãG`•™™ÑU‘€`-¨uˆø¹žÓfú}öUUükµé+µÊ˜s Aް5^³n€Ú4ŽmáHŒÀq¥±x“8„¿AìÊ·’µèREW¸µò°ÍD;Ì`ëk!Iƒ†>RzÿB6Ò\·q³¥[©;g3©ºÀàQ$ùÂââbýfý&ç~³&â3)ßÉ…uéAÐÒ•ëÎÕ£¤´ÖD¯t3­Bëç›AÈpjÖÀ ú/„¯~¸ººöáZ§¦Ç¡û¤Ód°¦™…U^§ Ú*ùJ&iD×:ú1õŸ öVp¶_ úÂÌ +ó`Yk¬Åî#AaâðìŽiÇ5`ºmŒôä~fCŠƒsm'¡v¶4–•q;Ž…óAéÕ»Û:c[7rÖº„7÷«Ô 1ï(Ã{?"u!RJ.¹û§ÿ,Ý}—ÜüOXSÿ|¿/›±Gè{ùû±P®Ÿ×cÃZ€ã1€/¾ðåï|‘ýne®;Ž÷|%€w(oÌûk3Ä$[Ÿ¤avŒ¨TlÀj…qKž5wiJ·¶kGDăm Y°A~ˆ~½T°£dÖVKµ cK“ÓÒ33*»2㳉áÜ«PkÈšha¦ÉzW1é"ƒ-H]ô—=ãZU{ÍÉW(s ¥d¢-á¿÷òÇ*˜i =±º–ÌFq½6YYÂø£}œïÖ³¦ô¯Óg?ÑSðlŒü¶c€¶¼&˜¾Ñ¦ £Ö¦ïÆ6h}øh›*·û†a±oŒ4éùïõXØTÆ>}ô¹¼ Klá†|û¶-Zï4 Þ“€¼ØéÚ)#±³çüáPÚ¢‹|°½ýh[›®^¿w~_h€BØv×ÇÀ}ãÿøúOÀÿѰ?°îï»V@SÅÖÈXoÀ×c_Ï=ÔÖ‹5bÈ¿ÜÓ• t”ñòmÒðVk+MWú*pÖ +a0Š‚ln¦a’2L¦Í‚¬Õk‹*,{± I1¡L‹i€á‰¥ø­ ”a²3Ób³uzõ$ÆýÑEè>oŽÿÒš€™NÌ (¤BÄËD?–fˆ§*b:äò `bB.À÷.¸²T6Íòvâìó$Ùá[úôÒ,C‚dfWTHfÝ ýÃÒ—nF3N»¦ôWwKÂäÁ[4o§@»é¹ÈQ™™¬YP1ƒ¸s²ëjrk&Ñ‚k†ÿ`³*¶S«o–oã\^ŽÜ}tQù8 km9ZµÞCzìµ(ž›®L‹½pf«´-@ƶ·O¨cRàK6Sk +lÚ¾÷ ˜o3U Ùk}i‹áh +…wï‰úÓJÿÁvWÖV +àºyyX@ž>¸ÀЏm‘0(€ÐýÙ1s«Up¼ßRX°@ë]!£®”xB|Â¥öðÑTdðÑ•èJuŒŸ?¢©3½ +-Èù˜˜gb»ê-HwÂÿ4ëÿèÁ½!ø ñµCÔ¿ÎüÒ»ï_w à5ðVu„z˜íO_޲>iú¥½R£¦4@|È$q4<”2 & a? k tÂó•˜J©9ͨku*º6«ôíÛ ‡i,@Åmÿ|R:õkÉÕLBh Pký@»ûUQ—’ʵ9Lºì?â‚Ü&8 B4[j3«l±¨ÍX _ О«åÖ±,ÎÓ¡o’Ö^*üÚ"P ²k‚£[¹'›žoòw3ŽòÅÃVL{k‘} QøWçE;Íé8H÷Býè¶ë>骧ýŽiº¸ðÿ¹fµy&R•¥ òt{"q€¥Ÿ.'Õ(ÔùN-EuiÃ@€¯¤!€óâJêâÒÒ² +´ ˆ˜Ì>¨Ï”*Ð3ùöÈ‘±Ç·Ý-T€áÍ33¨¦~$ Xé¿·}ãŤl̾3Í÷뇞÷:íþÉî?UÖ&Fàk„ F:(*ܲ=²ìÇôᆥè>ä€cú‡[áÒúê!TZÄÚ,\½ûØFæ2…à`k¿bî×f×£“¦‘c~ú:(v2ÀNÚäöÕ^ÅIžt›€=ÂdûåíÚ>€R IÞ"ðÅîA/LÜa*PÈ7W¤¬¶WÿéCqÕ­²,<Ð2;âº$®PjQÿÓ0ìý– íõVq/NRLô,àc㮼¬áê¬k2Êò`¿Ö0\E”¿2}¥bf¦§…ãi)Oÿí *~í2  ÷ò\™2^Ž•Â‹ +þMLÖþ®–¸ÆDo'¾*õ|ÛOÓ^O +@äbs#È×tëtzr ìÞ¸ ô{ë_C¹ú¶¬íƘäùK%YÏ€ 5°òìk3Ì׋l&Éüµkü€$¦‹ŽTºìe¹KqµSí™h3€’º—\jC|J H¦h$%±úf +— 5èY0i +@bÕ¿ÈØë%'À;÷îÝ· 8þwûCÙ¿ïj¬ôßûϲ®B£‚0" «lÔ¡Ó5Ò¿»´ìDœ ñDZá*Cõo{¯A 1ÿ8 {.Écæ •yÿì—OEÐhûP¸46Ä8ú W^ Þ» + o¿!4ëÃɾKS]R¡t”­è‰´žÅîm£Üdö‹øG¿?„Î7çèÏðtøk3à6áCû­% (‹¯Ç´¢ýNÆ$þQ#bö«„¥=ß¾'ŠÚí;öJ°éL`~S×Oº% e‘fp{I€ŠË¦a3kj™±0ã4S¡µÆÃ_ôzRVª¬}¼ö±¸²™7œfp ˜ã¼R£5+_^EÖ©°‹¯‰ ¨¨ëOPš6pEoA^ë#ÈÞ×–¬])_ ¢KtA»ÿ®ŽHÙ|OGYŠe>ƒ·å°ô7Šl}¯·ÓkÅïˆÄSbVº_®bµw4@5ãýgýfNcŸM¦h1IS.@6œ+,ÉEÐ.G’téDáÎ)’åz­"& K¤©Äòr«:%zU¦åø´[kÏt¨Zm%JF úËT ,EQ«/€)z'c*Õ?ß–á%š†YbB“Á_È¿{×ͼ%À. ¢Î‹8`¸ÆÐöl×`ûàñõêõ(Ç”:!ìY0j/¿‚AE´ßÓ'Ÿs2×uÃXZ€±”Óö}¥xïê'ú·mü…è¿üÝëZÒ2kMè[G°~÷˜aèGÛ÷µQ€ü‡ +@»RõgÇ¡]"bè þè¯ü Ó/«?l 8ôüáä85ð6 +àC\ûVçùà±›·bÕMÜÏj,Êž$áŸDü­ZC0 ¡=ùäŒ#Ë›Jz: '‰öZ­ßP¥µ%?@\ñc&œ:)kI”‰Àr07qñ"#È—áµ !Ài“i©Ó¼Ùü%c{Â~ÅW´f¹V#V6kµrP) †j®n @áK²’Thƒüâ7½êÞÆŸ/­-)€^¯—.—›•ô¶iÌVòigo/÷·'NöÒXFþ°Ù7«/‘¯O=\€­­,ÎriNhTC¡ˆØÞQœ5~ؘ˜%%`:ëè`"p—áþ±ÿ^]àÆÏÕC²-¶`•‚°qÄ`I£ |€íGiDç|ôà¥/Sr+H¬”‡V  Ô0€÷î=vl3£‘Nš?fÈu÷i¬äÇ(cÙ $âÑÇì¿ÐÏœCÆLœ +Î^i0îÊ’÷ü˜¶Æ†µ€Z¯¯Ç†µ§(€7÷ Ìeœsà‹v×3Îö]·à|3ö•NpuwBí‹ß­Ȭ‹x¿€"Å[0€(ºÕ¼•/6ûrbÓÀõ§ PñUᦳ0;Ìà€ü¥Rå陪 ª×””â}S¦Kì?«mµ*µreiÉ„D@ n[!H¼„´˜QÁ—úx‹Wÿo!½Nïà7{¯>¯”§Ãoéò³N¯¯%¬óþ1ϳÎwñQ¾µµcþ99åöí¤™\€W=VIˆ Ðõ‹p4¢‡aøQ¨'@;ÃÀ\¹Ò˜.L·°¯®uâJPZxœL¤ã$xýt^]Îgðe-ˆV—h¤CâY‹wjI«^™°¼xæ^ûÓÈ ñèçÛ6Q–)€í'ÿHlÏNÕ=fÙAQ<@0·®°û˜V@PiÃ3ohóá6Ãë¢2è]¸.`›=PJ.´ÛÐ;NPF}ôð=ì)½ú”ù})è»Üõ +€o h¥Ô“` ßÞ¶tÚëï`t>Ä{?²~ÿV{Ãy˜dÅ Þã…¦@DgHåI» Úà m~†õ—8ã?¬Àšhê âü0í{V àm*²½žÚ +&Òí2øD·KÁô9SY&ÏzV …ä~?>Ìò½ƒüà —g›õó,Íò”Bšý.ï&én³gùQÆ,–é^?Ë2F³Îû½íßÙr*@ºÀÅ=èI'í«ˬm& +Dë³é"Zû¬’HÈÖÖ)Âúmèwªª5sX[T¼9wUG‹‰*Âu«DÈð”iÚ*ï Òæ±^–¢Äµ¤o:3¼Qú‡¯òƒl/ Jµ©ÐÆö~–ì¼ê¦Éaš§ºÝ»iòÕÞááA~ø];M²Ýôº…‡t +üJ·8Íöt?_þ1ï÷™&”„Ö­¯60½hÞíîî3ú8F;’+'ç-Zª@h¸gr֤آjXÕ¶ A.‹(HQvÕŠ­ÖE$)Ú'ŽÑ\vÄf‡‘þžNFO>ûJ¯lLvß«¹fS ò?Tµh¾,X/¬o?xòÞ݇SûPè—Í·Ïcâ€ïàPU°ý`û‰ þUQ T†|af;Ñ;¤q'À„|•âÁϘoô‰Ñy@ë€1w²€ÿágÄtX›Ã `C„ºa îÞ½NLãG÷¥ îÿè>C 8U©pݪïÞ  M%ÚYr—ÆïÑ´À6ø¹ÙCÿü9ÛËCx ò÷=,@µ¾À@Fc¾à”À?;;î‹$ô§¸ëS‚„ᢾç?PºyëØoÝÃé¢6æÃ?&€.@›hŒÖ˜§Fz¡A§õù›É[;è[«;‰€ßû Ž€g5e}BÁTX¥SºN«Z¦z~l¼téÒ%a´¬7©J™Jôä×J÷m?—.—ØTÑw©2U¾Ì–ËŒPšbC¥Ê»¢Ã^W– SeDŸÅ[|B×3þü÷k=\g¢³òt¥Êbå¢nRãš-:i6¯Å‹ë­¯¯Óß_Û‹×´`bó­7›Œ!ÀˆzPS¥ñ²žßµk¡>ƒp‰Uý–ÆÆÇÆÇíòmãzW$Aç-gÉFL˜šb#k«ÕÚìÔM‚ZÍ  .@)u'˵Å„ÊYokC6?&;W¨˜È•f`.J·þh­áÿ ä•ãÈcÀd Iú°€ý¾Gàî=¹úeå“Ú,[nµBº´Œ`®Í6ßÉ4ÈCR‹¿°Á„nÈÛúôî= ³×fßZ–6@! «Ìe±  ¼B'm<ž +BxÿýÉÌãö‹îëhú¶k—‘ @§ÄûTò_õÕ€Ä` "1RQ´ˆÐ_åÅpå'á_X1 pñ6¡ÿ˜¿­5úòÝdçÿ†À›ûe[b™iö¬=ðý‰ÚÝâ‹a€úYò»-Ù"uÓ%\v(SÆûÉv~M÷ñ¸™Üîfâ +Í„yj_¾Ìd×’æþË\¾D¶GwxAaai‡, Ù¹8ñJâÓnƒçÄKŒÖ}¹Vó½Üj¢Ÿw’dsµm¨†ä/ÍM«Ø¨2 +ÎR¼Ð®* +ûA(¶»ºÊ â¼7kÍ¥Íxu“Oeåµ×÷ôcÞC¥tq¬¤\Ôjô„‹7ß(ñóìm^º1‡Ýì0‹–åÖmÛÛÛÉòßgùógÏ0ö‡Ï]A\i7ÓÝ<88:Òßm'é~þ{Yø,ÛMþýðÛï¾;:Ü_?ìë1ˆsÅͨ6YIº¿ÎûûÉígq»}Û¼UÄV&P±»×–eAF^¼ÞÍPŒßÖ –ô/µ™Ûn1v"JÈdÍÂGûÜfåŒ*K›ý¼Cæi÷Yw+%`*@ÀÚ–ý×É“ÿþK*=È@„ïÇÛžÊ`~-Ð/ϨΕexŒ¡®bù²ú °+ãü„Ê·p 1B1q¥r =Öf“]øàŸ +ÚÌ|§8¢Á¿Î/pŸæ¼€ùú}( k~] +pƒªˆûŒ¬/;žã]½~ï‘©7ë  }ˆ¼'ÞÆ¡}‘´…Öh1gþO±þW ülî÷­ÐB.0pÜÒë1mA”þTð¦8à*^|´,´Xñ‘8Þªâ˜nƒIÎþ¤fµ¢áé|œmjWÒÕ¶ƒAËU˜xK$‹ÉíT6ñZ¥HF,ÀT€±€N7óÄ«ÕlürI92¢€¥Ò¤Ì²L˜Š4B‹?¢ÿZ¤¹«XÂo­2==" [Õ~—ÚܲÐÀ/Õòð©VPRö³Æ.Œ]œ‰n–ëâaGÙó¥õ6"¥ÚÉÛý„‘ú©§gá=",Z¤š¯#͘þ?ñºüy[­­X ´1G\kª®n¦vhI·.ÐHšk¢ö”3ºÚØ)mVˆ_R 09i-jµå©M›¥^¯/12}üÑeÎÍ.Ö—^©5i•@E / + R¼ö¬*¥™¨ÐUIO܉ Þµv†Iœ€{ÿûÓ‡Û€O«\ ð0 ¨ŒY)Ço‚€ÛKÁç‘’»ˆ½°÷h›™E®êú0ÓBР(Þÿ_%&Ê€ƒðࡼŒÏEA€žŽh1mw3 ›wýϤp6He @jGçn{3ã÷oH=áÆnxhmÈ“œl´»Ì/`g,p= Lid€3#ÇÌm6“'ONµþW™KA"d þ…x (€[Ï@~Éä8+ðLÿƒ(Ä?^+e µ©ÒK—‘?U4\uáZÚpãyS]< CIØ{5î®d:vl…]+h­ + ð*à“—X +@»•f×P2á*Á[_K¥hŽÖ¾ð˜XÓÁ~6b›<²ä@=§ÓÚÏ* ÿ“ô¼86va:˜› +¤(/¾•Ŀŋ°·ñ/I0=CØM4ÀnJ'±ùA,Ü/ß(餺a{¾sµo#h-*P¬•_ž& ‡4ÖÓ +æfäæMæW´v«Ö¹¹UíމѸÚ-/MÅTýթݤnDü£ èXÁبÁr£Ñ²8 ‹ª¸é‡å¼-X‡‰R%‰úŠ5“˜Î@`B¶Rh$6o*€ —!”/"êÖ¶_ +àÞ±!Z Ö~”P°å˜[TÉ] ß@ +sëjžÜ§¶Á2SN [ÌÎvè…'™]HôûÑÓ'/Ý>ì¤Íú€wpHÉéítHœ§ÝáRë”!”DnŒHS=|bÀÕ1DY?~ à. ݽ{].€®- ì’•­¿Nœjýßóø?&‚± ¯/ÏFÚenyX pZ @âqu–P‘GÛo"H&îùê ›!…ÿ¢%Ø´WFâ¼'è J‚?’Ä4E•šªÃ&l+G‡bQÃÿ( °}NJº­--»:<Ù± À¿t¹l¥ÙI•Ìê“bf0['Ã/4\±?&L‘ëG” €KT´ï¤i˜‹h€Ê\P¦šÑŽô6’l¾ÅKןôã<ݤ÷kÒ­ƒc·ZJ  +°—6{=¹`kƒB$…´öž¹©—=(UL×.ìâ0Ù\#ítϨ&‰*TƒH,í$tô˜/«ÌÀì@¸µKŽÀ’*i3°j—™ï º„&™Jƒ?øzòPÆQ]å_Ž1 0„‚®L£±Åÿp °üÄÕÌAçHÆ™ñÇøÊƒ–“}] @Ú€Áîn?Àв̶ŸÉãGÛO|f1€ÇoˆÒ ä‚°¥±—”ƒ¾h)¤-âÅû¢üÒÛ²üâD¤©X&p!ë­³‡#˶‘”ÁÕ«TLX5ƒëôƒ +p2:0dÃ¥ÀdÇŸ?9Õú_½ +¸1óú*p®D‡  ¨P’3ZZ-À™1€7)ÚzFËVí¸—÷o7×Dö%cÿNX©Ð¯pþ;1ÛWP—û1 +ƒ„9üã¤ý•yB¾ +HK¦, Çä'_QÒXk ºªXhNÀåÉér¥4e¨Á¿)…üÏå!`§§eí±ëò©ì×@€i‚¸V]v=úõFuLNLJÁ¸–•ZP©Û¡ßR oœ€~Ü}6"îšÔ»ÁvÄÿ%²þN²%;Ïh9±jM~æåtIØ^U—™B­‰¿Ë§ú·V]ÒX×_™v]ýçfĬU×¾Z®-×€¼4€#œ˜Ö£ÓKàB.A÷,®šˆšÌû¬'Îy+»1@n¤d‹Žxxãáó¿…ý¾g0º·‚ à‹WÛ/ /É·aŸüã?>}Lá½§÷ïIÜ}삨Z +@L¬2²F+ nâ#ÔÝ ž²åðŒŽ ¢ï~¦½Þ»øì›¯» ‘¸/ƒ²’RØ–ígÆa¢ RäÏ`„î]}ï3¹\.C~  ¤öê™1@GÂE‘øÙ£Ï +ÿúÌúëUxä×Oì_¿0€!ïPŠScgö0¡´œ-Bœc ?LÜA47eÈ=‘ÂCü¡¾Ý´9A:û ÀMªò£/üGW½FMÒ…o~(h©SÔt<æ¿ä\Ð)Áì•ì˜Ê1£•¨¯/$(Ë¿z [m¿¥Êe[¶þ=A0…ïDÓ@M°\u#€á8€|C¥2! àb¥¶\^Õz6¿àÌ¿ÅKîyÞlö“¸†À§)°ùEà÷@/»Ó‡ˆ p4€ ŒX#,hEº¸‡o¶//ÍqÉfû#½˜N%®.n€ùºô¥JmM +€‹w·B€Ecž§ž!­/õGÅ h¸¤¬^.½SZj‡=køÅ‰Kˆx @x^Han<7Bo1Щ$Dî8Áœ)€G÷ +yÄøÑ²½"â0„'¿úÚó jOéBd €\PB6cƒr¤ð—¿„i¹Þúù°*‘N2ÏÉØyñG§©%\€‡8ër„CSæ\HPd÷EE”‡¾Äß͇×õ¹|Ä3˜Äì='®#:€¶ùÌâîé¬õýX®Ì£ÏŸ>üügÄ4K}$ô3Cÿ°/@¡à~Ñä­c_|á}º|?î„M–E U.–ƒÏXFP»³I,´ +÷8ŽP† „ûÊÆE½xAt•—9&¦¼H¼Ï“¯¥( R†ïAÀ ¸¬Âî„–þQIESE›)½$5˜¼^(˜®E3S‘ʺl½¥¨åÙWc"Ú5¬”ýg§É‰Šì¿TÀäÌRI<ݶVfßø¢Kƒlá›^@<7ú­5åÌM¤u «\—ŸÎž)ͤ³¿qÔ¡¥ŸdÃ:Y²`¦ß¤öÓ–60¯ßM³ÊJ®-ÒZËͩŢ1ºÚisžœ•¯8÷` F„Dæh)¨ëáÑ~”A­î½Ðo³/MO•Jå ·ûÊ¿“‘X[uA@W~(Hɘ‹Ð|‡›Ph +PÐL_|ð豀Ǡ_ˆ2Í`ª@ÌÜ ìÀ£_þêWOi.ôèÁ/nÀîÙàÿÿÙ” *Bö– Ÿv  ?ÇøÏ4Fxüðá÷Ä·Å´V/ý(ÎÃ`oÜÞ–D”¯ {ÿÆ{ï]ߦjQÙš ‘Žÿ v?ÿüÑ]›Nç¡<í'ÊÓ)¥3ûoµŸ€?Ó—>å8LgüàáÏž>|òðóGŸ[vþfý•ïôH¡ `rýß÷1€!8#ÀÇΈœ¯#Ë4ðô/g£¾\YvãX{“t–‚ÀTóöüëGÉš¡HZY»‘IP`T€‡*À»ú¶=OÊR>W®„§¬E»1€ +uóC Êtæ5þTUBÝz¨N@-X­VVUnµl…Y7j-ý¸u$vUÂ? €¦À+ÓKå5œ6¾QáL×3ŠõÓ_Â÷Û»y²¦Œ…°ˆ0‹»ÆýåÑ?*––ðã„yë½'Ñ@O©H°žk.UÖn“ªi•I¥6=DU7ÔÙEëI)P«­U‚5­*„6Œ|ÕѲØüú’Ï,€õ +–jðÏ"˜k0¬¢\€‰Ò…RÔ^°Á_Š˜Ï±t+êúC4ôH.€ ¢à' <¥?¦r Ø:êÿê|`e\y[IÁóÝÇ´Úò«_ýãC™½ŸÜ°á·PN]HÐȵúÑDlú.Àç OÐÖ‘µUÐ'1È¿!§Ÿ^Aw?»A; ‡ä’lã¼GdS„+uNÚñÆcö€~Nä;ãN££ë7®Ê³yDÕCé £óÿ¹ÀNª‚ñhÏ'&ðäÉçŸ?tæø›ñ×7Èuaú±¾C0¬4` 'À91€/Š÷NÉê"‚{AÂè—7°Æ¾Ç±ó¼3$Õ˜ >m° ¹9¨’8M‚ôK™È^85 X\X:M‚T ÀL‘Jæ  Tšžœ¼<é& ÀaÐ Œn}dê@/Fú‰ñþesÁÿÌ41€sŠR€g¿ŸÀÅ ´²\Y&8`‚7ˆÀ+3.Ê>ŠõÓ^$êÇ> +€ëþåæk­«Ü²(!U¥ýîÍý!î^Å­Ìõ¥B$í…œÐça GÉžîk‹kYŽ* S%zR¢D‡¦ +uš®^˜IY_Üb4€@ˆs˜€8 `+„—ÕX) +Ã眈ŒƒÉ¡4Ê;°À²âk?|, kW¨Ã7Û­ÇšÓ(P¾¿5è3ý Ïc%v À€ütµr|럇Å1nÈ©ìh\A¼Âj×i§­ÄãQ0ý‘aç//N\¤*ÿ½Ä'¬æÁtiÁ³ÎÆêð•“|xÎ= “ݾq÷êÏ|;ì?{j×'òø9ÆZ6ÊoøÅžJ<ÿëþ[ÚöK†ØGŒüØš[;—†Z€¿©/€‰œÎ3_¢ðÂ0ýÅœ¬.{óGþ +€®µZæo4«a*_V”$KNQDQfÇä_œ¥aw×ùR¼œxàÿ—$Ó„cRF˜°…•—Ü,Ï dÝÌ×—)‚‚çŠÇÁ¬sø§x#´Ž© c Ò°£mrÂÀÅJEå¾RnùÒÚr à-¼ºŸÜéwZ4NÐ]Z[K#7†J+aÈŸÖVÒê$YÖmïe ý¤P¹·õëûTK´7Y²¹Éc³È\…ÙJ&­ }Âi-3ç'wĺQÙ}›Y­Ô–¬U·a®¾&€Jó²L,«tÐS³uÎp†çO{IH4RÛZÑkD à3%¡Ž^&ððŽßíÚ¢=õÜŠ<ƒ9­µ½ÅÒ±érÕð†ôôþêüšü‰8ˆcߣ °½Ã#(—¶*ÀËG`t8$ Ç+Ù?$ú§}¥Gœ ðÙgÿ‡ŸÝ¸w]~ï=Y{À“‰Pæ9p¢>gbr€éXÊ6#ÝrÀ¨KÜG01uþ"?JŬBÔfH!|þbž¢¾? +¸Uü£1€÷l}ÌкQ ”ñ?¬à¼À¾eÏ©’DŒ*¥·È¨Dæ¨ç$ë¤-k"žˆÜ¦,6UÖh+·E7Ãj3ÓJf—¤pÞΘJ†Inz=¹³J–çqæéNÖËóÜTÀˆˆq ¯¿’°‘ôÄŠU®¥H*´Ï5Ž/¬[Q¤D^aDoPz#~0ÜÓ¿›Qǵª ˜é2☶%”XK¤\–¨÷”~ð“ +t*U‚ZT¹ì½ëxŽ$Xoc­–»“gKŸÝ<ÛëDÑj’î¥Ùaœdy–¿ØË_½:|ÅèÌI–æí8?RÚüEª­mzTe³~–¦4(Ìš‹ÙAœ3˜X+¸)¥–燇‡Gý=~9¯˜ˆ_¬ÑÉÙnœ<Ž›³ºYkɦ.¬¥ûšÚÿT6ÈíhaÐuO¥7’1­ç!1“Ä‹*:N¥‡a–ÅÙ}Bc… lR1|×b…Àt›þÁÑC°¿Mahƒ>ïØ‡ø‡Ïˆ»=ßؤdõ ’úªÑ)GåÁGE ]¿ûPFñ{3ù´ôw €Ý?ƒþc§e“eÌaòöÝyшAI Ú¬¸L¿Ö Êð1 ཻ¶ïÑyˆÎƒ¢ÚOì_ÊÕ!Þ¢“‚ïð3bæ 2®—8:Ãí<3öÂñû‚Ñ/'#ád4pN_k×}ŽXcðAgšïK\£ð×&_2Û`29—Jß³S4GwËöݨ<6™×ºÜ SüY¿'ð!$ÀAÜD  ¡CŸòª–õq­”qè àû[ûÿËãZª¸ÿ—§XE»|9¼§hú¯54v·õ•òTÉ–i½?;k©ôG» +ò®O3"ÄÊï”§µ?êà\‘ê2€Ø·×?K•p}Qžúò¹¿ Aca‘î6s dÎ|ÍkóëMýY Ãf¸Òd‹R4×µ£,†×®…óac¾¡§R­ê4k ‹tXa·0äb¸4.ð2WT¿Ä]ª”«5=d»v„›Qá™Qµ‡¯{]žR"ëP›µI%Æ,ktÿt“Ƨ¬§Ïü† SxùàY"~¬bO«;pìÌ.7´ +`÷lêmƒ’°=Ø"­qïѽ|º}ß8„líÓ_ýêégðÌúë×ï ‘gô B‰“ É< sÛO~öÞ au[n‚,žpõ@€N …SíLü*@ÀÝë¢R™ÖÛB~ZËé JøÇ´ßB/}yRÛè€v|O +€ ê:" g_PòÕó讼c?c®sB>ŽÐpÆß©Ñ}¬¸T‚ûK¼$àõÜ’“¿"ð¦š@YAÌ­ÙRįJ-´¤_3¢ÔBñ¯ÇwšU•gÒ„úLb"ƒ¡¿A³~@ …˜þÙWùþ), á÷9)ª;‘çd¹b1@•k™ÿ%õÑ®•!³Œcã®ècÌžáp§§§YU­L–+sÔ_êO­FÈlZjW®h¿¢¡òªM[´|«”u0׎úϳ^¸ê ¾ã,ý’&ôøÛÍ^6nVªÜê4í&Ý4¹“ì÷ÝÜhI_v>é.~„qí2‹ržïgÉn¼!óŸý¡ßÝv³Û½ÓM’¶–. Ðí¥ÓE;i[oM0[™(_®Öõ0™Y™ž”ŒŽLíŒøÍl5£ m“טú‰»Ä!Ïž[¡²`]O' £F…¤+àM8R w¤­¼ôHí5æÚÓ¨¨ƒ6Y`§ô_v[/SB* +Á€gBÄÜ`OÙÌG÷ž2Œ +@pö +GZ +€ù†- Ã¡:8)‹Â£h®§t© càa)€Gn(=cz`"u^<(¼ |nÃÏ´ç?üÃ?|N €ÖƒþúùÒþQ` ÆÖ +À`ã™1T†cg+ÔöBQW—o!9ýL^ðì“„–çQª‰FµMD›‘iš°Õ*ÿù‡ØÂ…&S2¹lœt¿‰ÝÍ~‡°PÀPf_—ÌjµPKœXI€k \µ¢ÄWÊKB*rE>x?õÂN™H+ã†Û~4t«ÏiWmŒ¦âe8¿mcDÇÆ&¦ùÂku‹Zé/ùì£  µéIñb½ûÅê±N_—Ò<"÷Dëmsœ¥Ïû‡Y*Ç«è÷ŸÊe`c*M#,}ž6åvéÞH±…zfWDGÂ#,Ûb÷««ºN©»j­26~‘»báÚ\UMeðÇϰÆ}ƒåºn—<£›îúL« [X‹£U­á /©þšs?°Ç#ñ À)_cZÄPŸd÷† @ gÿ@9ðà©;ß*€»†Êã À¹bÛ# +à à!8Gœ`bò Ó;•8ó- ] ¹@á8ðîqàÀ#:/øü<x`á?½õ*ÙQ pl‘nÀàÞ3¾ £È pn à +g‰hàLmyƇyüîÕ¯ +Ü‚Ì:+ä9J4åaÓ>Í3m·] @ÿ­'°c¼^gnפҡߊh½î†•ƒ®s$¦Oqæ¦"üšëi¾\ Y¢Á"œ³›¼$PlAjõJ ü_¤Pm™.D†|« <ãEän„HØ]:Slc+Ý”æ&NÜH²ÎZÆþº:Zö.”@8j‹á@6é-`]´2ßÖŽp]PEȵF‚ü| jÆ.¼V™._¤€¿HøSùDT£ ùÜbâ‚DüÅ¥&‰ûÒ2p™@£ÄâÀõÚÌD­ÄPÊ\ÖÉ1`è,Ü6ÏaY +L +°]0€_üê—ÿ€ (y` +@À5p£`àÿ¸qãáç# Àµþõ.€aß¾^cÄÎg^Ép.À1 p&ð.€¿t€ëð?¨0Œ; 3 æ¼`CÇßu enyX pf à !à¬VbŽ8˜k¶èÝ +fõ¤)¹²C*’.Žf¥˜úÅ 4Ü¢ëîé à1€…8ÉœÂyMÒ0d*_êËF§¬E›ÎvÆÌ}PŠ„èi‹ƒ­¨VâJ%b‰ö|ÕYÒ}§–ÊKsúëRG±\dYù(A4åŒ$wæLa,!´3d-!”Ûs–Xãžä«y—)€h%Jâ´ÓÛjÅ ùCØ_·:3ˆCªEhç˜Êü[U¡Þ™jáª.ÞÒçtc76Ì®\_“¨?å2§+W*r€¦VýéËÁ·s€Hp½ú›m¿$7 ¸, - ‰T$ŒK•ì‘Çi´$ÿŽ×ù1€×ÀH À€^¶E +@»ždæ €sþ6pV à¯dp À¹ÇbÞxüäl êþßt05€€q¿(!î?(|©‰! €¶¼)@98C‚åJEŒ×x¡p³æÇ‡•Y¡Ý*•Y”ETÁ¿GÉ‚¬4þCt˼81€`:à  t"*ÝkÊ™Á«å¨—Æ.\”fdà€Ú<Ú°UAWeü5üÛ”@Õ¨ZµÙAl³®©:mdß„¶ÑÒL C?A5£4 +`M9ÀUž.[[-½Ìc Àð{ªpßâÛI>ˆk™ÓeÉf+³;ÚJ{[ô N’£›A e #£øÑw¯Õêl¥­^3w¼IGhp}_ìî¯5›«ÍUÝpwÕ¢ ¥BÀ8K­vÓ5ÖݨÎbøÅü©î«S‰+U[Rñ>{æÖüciiyUµÌØàz3R’[.óAÀç쀀p$hœÎH¡URö4à8ð.Àq Ã½‘ü1€»>?A@€þê< /À€ÜxXp4ðôñ¼.Ð ¹Ç!/Úy~~ذHæG:5p~_„r}úkƒaV¥c®`Õô• ÔÕUjò×þG@C +ÇZ˜¿E‡“×b£ À4À( ð€?)©k”ΠËÁ Zi¬/ ÀHþ¢s5,·À‹eCœ(¾¥ÊW‚Ú•jU[«Õª “m<‡Ïj¹>ǯ4š`Ùµž,ÕDw Y¶þÚhƒþ½þb~#ìóIžÞ·Qüu×63¹:>7)7;áиßÑÝÝJ¶ö®ï Ü"7Xz|øÙJÒæ®¶êˆâcõZ¥<•ÀôsÿõcZœ«Ö}wr7Eëƒ`JÜöƒå¨^Ö¨ñ—2­ÛøëKÁRܰmÀåúHyÕë„I,gøžŸúý¬€1ì? + €ùh àž1`/@½øÿS àÉÓÏŸžÊ†µ -îÀH `ûu à:q~Yq1~°Ü ·@¡Dð} €ü(€·ˆœC&UþÍÄ +RzÜK ¾iMqP0æ‰Ý”ÝcgãL"µzAœàäá^®¨Ü³Z'U©†‚¿TÀlEÖTæVËÑMê"ÀB…õ œ,é=Y2@ûÒè‘3¤×Ùê´lbƒ à“Þž¡÷T!æÑÎä(‹åV*êßJÁ¸V›*A¡´²Eì¿Eì? +€é{Ä &iJA¬r§uo8wé_Ýys5Þˆ6¢š®Mw͸` j0€ù´æØY.ÿ’¾Äudüiî?8(àÁëñÇ1)ƒ™ÉÒ%{Â>BŒœŽLœÃ§Þxr<žÏ68c ºXK¸óyÃOÃîô°T-÷×–åÝÚˆXv»Mœ«¦ÿÝí¤Ó m˦©|¸Ö~lOmÓrÉ™o¤…8ð_/þË_€]!S⊼/³кÁjQÀ÷A<Ø×/ `¸7»ŽÈ  -ˆÒŸø‚z®3ÅÕ´1ˆÆ PMU*î­9Т{Kß4¹)]Æ„y@Ó|é6Ÿ(^Æb"оíï ‘pÓ…Ô¤¨¸(€z’è{©^ ÒÁ>”V8Ç˯šÏ¯õ2³‘–Tò‡è·Ø$*û(þDÀ Úš˜ªt¢ép%9öÚ³ °XæÐé}}¦p…/k輤Ö⤵ÉÞ¬\ëˆïkyKÅ)`fu„"©µTBЏ³•‰ˆ"ÜôtÛEr*³¡@ܼµáÔo“»†õ—¨U. b€ Œ®›ö±]8.žuñÀ®3mP Ÿ¹¾5œ€F0?`uÕF†PR1=z–"ú ‘‘—ób€AÜ+€“µZ,À©µ ØøWÜÌhšÝÚ4 À˜Jù5¯>”³ª;+-äÒ S*8N;™=F§¬qfSw›Ñju׳ðP[ô°pÉDÒ”Õíºw1ûŠcòä1àÿoÀßiÁ·Pâ# `8¦"\_k ¨Õ¨ƒBD Fä8?ðÅE•ï3^‚ÿE¾&*zÒVÏH)#K¢«âê6K´ØV«—h¥´Àl +…ŸUÑóW9-Àé1€âõnƒ†3ù'd3hlº’¨¢:7a}mŸÚœL#ìVhOÏ€zBü²ØÆïÛ·ÀÌìt­2Ë`2óŠ-’M?ñ×Y—ÌÞÓbý’Zø …“4|‰ÿ£dNÆøó›¯÷üxM¤$1F:¬lîZ¬#€qÓË÷p_’-vij+I¥ÌÞt”a’¦}ln¥Q;õàã’*WBS¹’(’ñkÆMø~µ:}…îÀxvÊ’o +âÂkuº‚qënEÐþ-Ç ï kÖCtUî§CGލeõ"(Ÿ¹ǺÝDçŠÝÔy˜iMLCi!`”È4m1h$%#Ëh ž$[vV8^ d†•À&)¢ËÚÒ}Å´‘lí¥Â£ .M…Ïh¶¢ä<š‘³þ’¦è>Ý ¡ll5wŸL_û#m¦É†€n²=O©TÅ¡ƒd‹b&ÆLØcÃüóгÆþþÿ ðÅùoç3‹Z~ôÇ%c/p1€õ´•Öœ£ÌÆŸ%ލ¸Ô‰ -×—Vƒw–hs‚JtGùYÅÄTT»’J–þÊyÑM2€æ `7ãNY⦕ÅÂáÍ+…^È@9IP HDk²²D·^ý¹â†üÑ—¡Áä£5^¦°ÿžÄSTóõÅR¿…°þ@%­—wQè +m~M¶LœÅö~ûÛßZ18MTþöÐZÃJ®hþ§Ÿbcz‹¾ 1ìtQ4þ?…–✯l¤„.+æsqØuÎsÒ{v;*hCm‘“¦›9½&µ®;»$å*…Ô¢UA/ â®K–¥ßí9¬BØd»U*Ó% nP㋸—| X¨*¢%“J’hEnU¿RÂêÇ^ÄYš°– )ç® £aÔ@hc&iW´¼óL>ÏZ–ï%­\ˆÿ’áb%àXù¥QU + µ¢' `æ_¯ÿ…pS*nÐ=g£ÙúôŽc¾V×Ýg±[À«{Cà5þ ðÕµÌJó@þëÿí¿ûÒ!ôgúG-€õìs[\ +—HbÍGF¢a ò¾¨Vœ4–ñ†ÀˆÅ?ù2 €÷§gž†Dè§ÈšëÍ À|(ÀÊ£3ŠÜýÓj¢³€œaúµèAÊå²¢v\Ò0sQS­—TŽu‚LrEY–H‰g d@õ403«%L7e])ê­)OÀÍØLbŒ50y±$üD´ DfNSäÀÖ–ø¹•‡°€ÀoÿâKÂi’ÏÃF¢È´†•,ÖF‘x~JÅB?ÜG1°Aå@bLÁŠ\œõWRg†Wt´èAýë‘TJtUÝÄÕè&a[³ýÂùÚO·lYN·=Y·Ã÷‡ý³bùCz{K´—Ýå’¬‚Ë\ˆã5FsÆ4Ñ#–©vx3Ì™`4ÀÖD^Ö1ùܞܰ[4‚J?09;+¶ë°-)@ì:ÄD8—ÝÅè×¥D¤äˆ{A´Q€91€ ¬sµÐ-nà¼c"è;@-ài1€þíoÿrä/pD6™íO?Ì%ÒÍtFJD’\ʃ¢•…¹ ^9ÓobÆIYH‹-uÓÂóän!¦H$ZÕ0Z$íWÅ©ó7Èi¬Ìí–¢ˆõJƒèk-†M_[fþ/mÑ}·L-Ì?~ © 4@iK=òÄÆtΩŒ#ß±5E¼el»`B|ž=*¡Ù¹`L6\Iuæ2þ×®{„t:Ï„ó‚i2À3€[T€FMG,8d£1€5Ǥ +°Y0«Ôu.€V¯º à×ob'c±ÜÿÿjA@Ä)€¡7”»€cì-…_–nÀe~ƒU VÿoˆLœòñ ÀŒ×íùÇa`ãý1E4¢ÌâŒFÃÐ(JÂj²d +@¤‹A« +¸Z€æ) söJ²`q +:úr™K––T RMgÓ\J„V¡»J¿~‰™vု9\t[Õ¬C¼BØs„ø3—T"ðO±6LkÝŒX]@} @Saé<„ãbA¹3€Öô¤ÄŽšVN‡¢‹d``©Ðl6®ÍI|ŒÖ@ÌàD½Œ³“ôs+¸ ÿmè—p Zq¶ØÌ¸qºÑ ÚMg +|ˆà WrÌHª²/0Û¯|+©B i8˜žòªMˆù§ ·Ÿ•üZBº\åH@TMÏ#b`ÿt¼O0€¦gm]Žc:qÏVl2Â:úJÅž[ @ˆa8Ñ4šâd°@Ï^Ú%a¶ +éŒ<ÏÒiÚ?\ø†y–ôJ­ë§ý´—÷󽼓æé—{ºÓRy¯÷ǃ½ü@Ë{{´Àìõ¾Íÿ¸òmŸmiÖÓŠþÞ][ó½ƒ,ÝÓùõ“Å8ï§:k€>0‡ìaícÇd€p*þõÁ¤ÿøªÔs$~¡8Ô@…(ùc'.œø  +‘÷+AM;½8ÚßjõTðôœZ[ñÖ^§×êu2šµÇ=™³¬Q Ú*oWjéWtg•3@x˜'¦…‘‚$*;£¯Ìh\"=”¬ÅK •S •¸e¶QQ®¬X‹XN:e¨-‘„ÕI©tAŽå°&R5¦²d´9‚4Êã¥>“ñµsYš ¯u«¦âK”C`9!™€sNcÒž4‰ä¾ˆIK Hx€’`L¸b=S£  Ð'ÀŠgÁqð1j愘æÔ/@€¤äç;<‹ð €Ô‰õÕ6KœÞ·_·ƒ”—Ÿq¿,0×ô À¾u‚ÇbF·ô‹è b·F€´FS'-Õ8Œ€øØê<Óq@ˆÙÀ—ÒÍ+ŽD·ì\äWêÕnßéª@Úé·ot³Å¬½‘´7šÝ®ŠD;IvÙ77ÚénÞí&ñ—Ëñ·)Û’øÎ³¶Šf³%™4Äz®Ò¹¶åÐ47x2í8Ùh6ïèbãv7Û½Öm§í¦^^œû_„¼— !¯RTŸ&Ú‹í?þÉ»å©ã?í{uJß|Ê’«W½>€ü߯½ŠuÞÆŸ3þÅz˜0Ü‘'Ü ›Ä„ O©‡+Ül}Ñ@dº\iê'ÅÀH `k«·“fÝ•ÃüuÔ£ÑW”èæ“­a[ €ÓªÌÖ®èÔ¾nF +ÿxù’Æ}“µFS›U^iëCƒ9««¤ÆR+>ˆ* |€9ÜDe*ÓeÜ™ n„‘Œ¿%8. +àlt>-€c®r(Ä–G.•¶F[rœ(€Å œ €4ÁÇÇ€®T¿¸ÚrÒø>ƒþ£ @ÖŸËר)€5; Àð¾ì,Á”N2W›Y*G6ƒ1€õúk€®tÈЗžȳ‰Œ2€ôKDzÜÕcÏ:¸£€á•` I·¹ñe¶»‚yÜl‡+a¸²ØŒ»‹ÍæG+ªRmÄáâÊJ;Qš&©6ÄcWV´q±ËATˆWšÍ•äŽRÜa;ÿl•6)Yó‡múkë­œ\_lC¾ðÿ÷"#ä½l`Êë!y—” ÍN†K¢þ~Ey}Ë}`g©))iê%ž¸¼þïb ˆ{Î?òâ=n“ÈUi8OCÑ… !7©\Ã…`Ax }/,„áTSeoAƽ* +Z™ºÌÔsÇ…PØŸ¾KÛ¹±q½N"zÜéuÎ`zqÏ ¹ÕŽ"½u—…Ú›ÕÒ¥))÷‚ÿ›µªŠ½²§²4€¾ u›€\§¨5‘mÕB-µÇˆb¦’ +i3/í t¸ˆYµrYx¹¬-Ì ®´µ@ûÊ×M8`í€Nc{bnºÂ=˜ı]ªÅÌ ¦b°.€)€VoÀÀ1  `Çc\?v-… À€œ7è"4üœ`øF’3Àê\ÊòG>Û‚më$õ}Z à¶1€ÓbV À¹;PÄ”Ö3ý @tZ€ã1€/]5 ôGMëŸ,ÙyÙîÆiòkñÒ££?½ì÷{6‹ä°ßξÉ÷éŸý2ëwwe“Òg±È»Êh&ç@~A–nôÿà–óý~úêè(ßûKŸ#d9ݱEö³—/^öï,nìʤ‰°þ¥;*b +@"2nÀ ÆZè¿jÖÛþê[ËBñ@°<åx (ëCÂÁzðêeú9êÕò”ý‘¼.˜0;?þ£@ÿ;|Õ¤¤¤¤")Š™ÞÂÕ¢~ôoª¹Âœ  µÙ…F­z¹R¾Ì¤]#bvðÕw»(€$ÞLRLÂÜg3€Vbãˆ/€kn®’W+] ¡mÓbu‘1^Lyü!:C •Uoˆ„¡`/%7ÈæßÔ +1€fåŽôlëµ³V¨”'Êð}r•Ô+Ç„ÊS@ç7_ÿÖ1€V¢%€^0\1/$ ¾ P0†eÆü bþd¼ÎZ>° °(¨‹0F©‹ KžH‹0^²w1ÿk"NRADåD‰ÚY­µ¨LäžI2ÿ¥=Vëq®_›wÊÜ-6RÑÝ—–Ìo ädôg‰¡ë¤·íQ¢'e;9±¬ôÎnjE,—ß.WŠfji¿ÛÌMO¢-ÞÊ“ýØJ1ŒVœ7sÝK q³å¦ÄÖƒé`ʬ–K˜f¡|þ¶?ÖÎî &ÿ×Oþ^/½‰KáÞ‰ð*›m/K@ôÇÀlËmVÙ^NU`­í8…Õ—ÉŸ’¦Ðâ¸;2"à(À™äÅÿ&.Àý'Æ„þï]¿à€2€ž‡,¸ð `avV:@ð/_¾ì‡šqog_ýÅÀ¦T½€1€ß<ƒP|MF@+ë¨Èxм}œŒÁ*žÌ0ªï€Vêtuªz£©¤•` @0¡³" @û¿Æ:Д§K¥IÌ à¦i‹‘Wf +€ÖøgÆZ´·0@W¦d/D/bŒÄ>u +àµá ÀÅÜåx9—€Ô^ø +Þ3€ÂPþ4<>®KHMÉ1œÒèCY­K¥É,ç®Mz-¡sUÞöp‡`ZåŽàW'AÈÆNÆNÙNè@kÊÛ[qÊsÙÚÓmõ·ùU²²ï¡ŽpK)€ºÿŽBéÇI1— +¦ó%jX_JÆc`£.ûµª=²Å •QFÈѳgãÅ£ÍÉÐ0±Œ9È—”M°+n À¾‘Ó(vÀÐÛvsâÊQÐ 'à„Xe$‚µ/]òùx™¸xqü€ìÿØø•J¥`5€œ+À¢pŠû3Šç@4D'Ë—}ƒSˆð×,Àm€n§gßžÉÒNSeÁ½’õc à" +@zéÊ€DÁ¼cf½õ¦ÄÝQr¯F€³ôlc±öÁª€™í§/©À™—q@?À¿jIï @^Á'=ÏŒså\+%Mø0€¹e1:ù›°ÀŽ)€A-À àx-€c–…×3à~ §Ä–Fbæ ûh @æöTP[*gÇ€ŽKq™iZÛÕ| Ë/j%Ì'§Tú|Ðy±}¼êЯÍD™¢Ïé0/Áþ/kQ˺Ûñì¨ÑjKOÙþ;±€˜o`î…œ…ÿ­~âŠø—¼,Ü0¶¨ ºÙù|Q‡ÁYˆ¿­gÇ[‰ˆ„Ž‚æåK§¤‹f?ÔïèoÂ#5ñh£2ßD¸ÈN`Ý@Æè#ïo[Òâ1 ` +À¸÷i¾Gj$ƒ\O?s`š¸€þŒ½#è_ÿÞXI +ÀÅ0©¯1yÀ2.€ +™À$Óñ@˜ð `Ç)n´cÙÙ1€ÖsÝa·ø‹È¨¨W®W„H p‚|¨³ „Üsbxg2€Ë•ÒÄ @‚8¶}T +à 1jþ,°%Ç•w¶À¿à ¶8+0dø¼NŽ3€ók¸˜¼‘,KŒ0€5 `–Õ3·ƒ”—·1€µ±É ^ŠE·¾n·FúÂX/u@½J´¼iç80{¥EØ¢d)NkŒU¶¯ZÊŸo1‚b7":ìZm¥ˆKì> ™)^Á6ùPO&ne.z˜vW1X@™{‡i[e’f‹.FÉãѧXåà âZpu®Z‘‡Í¶3Rº +\ÿÍM:ñQ“Oó=ÃÌ2±@à+Ë?îXûwwâ캸¡_`—Ð +í¥·­/¸ý]¹n퀌X–§ËûÐþú…àþëï ŽÆ¤çaÄBA_ðw @\`ÈÊbƒ€ÁàÓ¯ÿ`.€îÚ€ô΋ b7U4ŒŒÆª¥‹:¼@çĀʾ4’J14@cX @dß1jFc(…Q`ëýNÆ´…m¨†Ð¸%†ò1€A-€.ù¶~Hõ¥¾Ž1Y¢µ!}ÿ®òwµ™ú÷Ui¡ xÕékSÓŠ¸n†@°ä‘}¿Õ*Stàl1‚ì¢õ_Ȧ!“ÞÖ˜iF(ðÍ%$gÕø¸.~ àìZ€Ë£ tRA3Ù’›eQKxT6ŽS ~×ÖR¬|Åݰh`wSË8.F¼¥R"t·¦4¡oûÔtƒXá…re’·»ÊÃ0Ïo«ÕéÛ’ÀÝ$,…wŸdÆñ-½“ÚR™¶¨à: À’dËë['ÉÃ]¿PJTŽ{žëI„D¨8¼÷ vø·TÛ<ÐF?Ø€7~¾¹ý&nAHE´õG± ʃ,ËÂèÂ’÷âñ/Þoâcý1ûrAÀã1W p‚ÜÒec•Ë—a2þº5á‚ô\ `Ⱦþò¼€)-ÇIóv´2ÊTÊftj*éB$1YøÆMÔRÁê :UF­eÚx,p*pJÄÅ&T-à@"oO¥AeÅ1€sc÷Änûðç'éÁív[€öœWéjŒE¥Ý¾3Ã6 éÜ\\ êêwJ~(ÀœÀTÚ^—+¼üSyÝtÀf™ãÐ’i¦2=93S×*ÚÌ:%ÊËËI#J6½5Ö‡Ž34¬F¬”Ì¡f¤†­§"ÎýT߬U§ÌôÒ\Êc e+‘ àWŒÊØýÓ¬!L´P—3¨`T‹V™öQ—!€&‰éY};If£Mø‰k²¤sgh;¬ÊîØÅ ¥ +åvìŸíPô×­ J‚?nõz™Æ.MÚ‡*a¼éŒ¥hÉ$«kXÉfœ/ˆ%ö¼œˆû»ù2”+&+¥›ÊŽE1Ž¡ü?¶š|ÇÈ¿ÔaWèÃÔŽ*€SÜóeð¸/ÄÁlÌÿ¥!€²¢Ù£8Ç>¦Øþ¾À¯§^ºxAž¿‹\÷ ÿñ ã—ÄNÄx-ð(3U‰Ô­dAj· ÂE `„dÉÙ1 ÕHQé}Ù>Œ76n©plĉ4sOæ2a0ƒç`\J|æÆ5\æßµÛ4N"IƒiŸüvüo¹=!ßX¿†­LG³Ì[›Ê ›Å·âUe/o5ŽŸ[6o­ˆ-úa `Ç€ø¸gÓ'Þ +¤€1V °fÌ# @ +À3€Ú\47U2€:ª@jA¨@uWÆD +ÀQd éÓÚRähJ@ +O*€žOt~Dæ˜(ÐBR§&6'¡êA, F4*F")9?,`lb(¦R´©4NïÍñÒ•²‹"2:±ºÈåטÖÝÍÆ$™ÁÕúÎÙ„ñŠÜ–©¹9K3HWajXn ýBÈ©”Ê–ŸÏXÏÔ¤™5iŠ©«Ç£Â±÷›ç)ÔðÜÚ¬éÑXéñ!‡iŠƒ­½0GçëòŸÔ5Á¢ú¶ø§¡kwÚ¶B| êÌæK°»Èÿet¢ƒ°DÿÇ!ó,º¼]ÂB,•ýºkƒØÛ޶βò €ÆÂÎæTÑû,iÇ7RxQúó’·¾¸2hÀ£© õ1€c QÉw °&c_1€Q¥gÇÄÜ!ô²/ÛôÞ 5–€ªÒуȯ­·óM,ý LQæ>s=¯}d„¿ý +`3ÞüXÚGp ß»ÿ倃ºgu+ºcZ[ˆ@…Çý;‰œl*$n¹”ƶÞ*ð‰«pí¤<è|rÐnß.>#˜ Çh‘l À@½2¥'ôθ#‰”¦>uÓi #0Ái¦¾¶VñÍ›€¿¼yc-c^þ„@W¿SºWZúþ¦2 +ê-)€%ô ÀS8c.µ“iˆHó6Zw±Ê“wibœ•¶ž_FFÒ­J"bÅIôA­Ä&Ú‡«wÅÁ­«1ƒt£NÛ5YåˆÊõŠŽÍáû^^ö7Öi˜¾è§iÿO‡‡¯óWyÿÆíÝ ‡@ +@¸¿ÎÛ–Ž[ûPé–ì:ÎKvŸ“¹ Û_0€1W àb£µ0~‰a·>ùôë~UÄN0€3c_sŒã @ö?úP `-f– >»& ºþ8¦F2×—a*ˆoÿ|çös0¨ÌMû|šæ·ÛG§3€ÖêD™ëí€tЦÊåZÌq’·‹Hûxráè9 ieúŠhÖ àþÀ;LêLŒÔ`·3‹Îx àû¬­˜ž‘ @ ºÌq ô À´LW˜  vó|àÔÌÜä€x0vi ïÒø¥Kã%•Q±•Q>¢ã´q\›µÞ>`Oý°SI[™†…ÉXdÆÆq€dšdœHÍ›?”yZ«è ¬bÇñ’²µùZ\¼f²Ð\ ›6犬ó®4›¡Šòz¸²¾¸Ø\qó«èK²Øh\S„¶Á‚ÖÅóM¿Õö×>‹×He;-^Ó7V0 ¯­kíNòýš,i!úôF=N_bP6D;xÛ~þùºäöpÿl«}sß8ë-­k h `Ê~äc +ºbþéy¹`•ÿN#Ùwh,rN0€ÑZ€Å`È!ò…h!pz à7ÆÎˆ¤0‚Csƒ!.N2Œ0.@‡ î0íc™ËÿøöÏ0”×>;¸ÿ>šA^gRl2ê„ß*ºZÀ–«ÿð  ß¾}[7¼ˆÈ‚™åÄÌ/b2ƒôäu + n1)À‡ËK2ýìQ0\‡c @°®Àÿl``Ðÿ|ßÇÎbȱZ€ Št.ú%°Y’k®32Í$SLÛ?}¤ál±VfœViœJ™ Œp\*]Æ‘Ñjvä„gjÓÚóû¶ RS¦•‰IÎ0¨r¢eß'ï÷Ûm™ù¼õöŽúéán˜¤éÁï»Ý¬ß•/ÐËóý•LÛÿK3Ëü§û tSe…ôëakžf»ÝÅdŸ)\ž¥ÝnºÛn&Æv»y{´G}kü×賈‰ac!T¸%1ˆ¾`Ùø²_°o¿,H ýV°³K`G0-bÀ¶!>ýš©ùàc¦Ÿ´V%°+éÓãèaŽ&ÛOàÂñÀh-€‹ŒÔˆæ¬ÿä #,PÈ¢þª@0žu{§0€N€ñ²Nf^tÉÿöèN[–Û27í³ƒ ðç!0?`> û °¡³s 6°õv1€ÑZê÷Ž1£±’éÊßUFÕr‚¾3ÏŽLˆ›2†A¢ ¾l]µÝ8`Î9 +P7À( ò0 mW¤eÀò8`Àê«úz-à€>ŽGJ޹:F$UVgœe(þäã¸rÞâ.%ŽþQ2h¿¥ +k&Ê“\ð„>ŒåÆ+Ü—Zíïø3­ôL}­É&îJib&XŽj¥ò*Ëô'"mlB£¡ThÞÙ{uðêÕ·¯òA:í$Bušîd½ÞÞáFžõxºI׊‚Ô¼v L¨‚‡æx!,¿­B©Ÿ,NÛ‡)½ÿÔýáú¿¤z¶=™'ù^ h&TãÛoY/7\‡Už"Wy»ö¼N¤lÉ­_ÐPŠT®¿ÿ¾é ›iÜëò³—õ+ä‡=8=7× ð‚ ý½ãôý +08µ Ãÿ) €Àws @ +à›MP¼ítê¦þÅ”ß ýø³ÅŽ3€dã¨?d´à0kæ¡…ÍøÎ¦c°f1€¡ ð†v.@-À(8h·Û¥Ë¥ËE-€Þ8pÊûÀ°±¨ð.@Ý«€1«°€­#z~@Fbµàæ™1€©Š€eâýHù‘°qbñH›˜˜$(® G%ð ¢µÊæwK®­“”&ËT%Ù5Cˆú`P +¨`¼,¢ Í:håC7ÆÕÊ”usŒÚ`…Ê„8jÙ4²Hù”µa‹ç #Ò—RÓõŒTMÊÖHðH½´O”Ú>â}* QÜã±'‡áF³o¥OÅZøge!BCÿ”ëÈg&ºü#Ø€U œ¦¨"¤m¿ûg´ýÇ(  ì„Ò(ôÄûïÿ%à(‚ÀO}¢Û2·ãH–¦µÝ×xÑð[Ò±Àh-Àë1.סÿ#L;€Wb'cŸž­ pþ£3À–Õ0fÞë™»Æx¯1€OÒ¼ÝþËH `”t +@¤«eoY €ÿQÔ$;Ém*›OcÔ¨ˆ)€Åædò@O8Îê¾€Ô«–Þû<7R 09]0mzS à @vznÈÊâöd3ˆP‡¤btñ˜u NxN +ÆF$ŸœdX¥¥¥(ª••ñôŒw~ AeÖyC{!6ïR]—c¢ÿÁ%¢}ãR0ÆÀMI9(¯šÆ¡‰!ÃÇQLܦLH#÷¾>8H”1¨$áÓÇè¨`Hp[^®¹1OhBÈfc!Ñì¿‹ˆø àd [Ì*I}•!ž + ä]+Ÿ žN}@ €„ÓbNØKïc +Àq~kÔØ‹aT¦gæÄCêkõ¨$­`G¶„:Á`Ê&2—_÷„1_EôГPøçGä€D‡¬(ëJ­S]»Y‰uÔ¡Õ‹ +À +"5ýÍÁ§¿y•d‹©ŠÄëO¢d±Kᦹ!¿«4„¢å1k’‚PR¤lY"eÑRIì$£Å¼Ý<Œ‰B‰ßQFÄáÍÄ4€oè#¤‚Í×D €ŽýDñœÚFp<@sÜjÄÐŽÀ)¤< AÃ/Ú¥ØÝ‰×öØ¥ ü´Äö;û/M0þZ àô¾þJb¥Ýßwýûé?Û ß¼}[ÛŠV­;í0öÔ¶Zbƒ;?1í2XDZ¦6n‰x‰§Ë °š:i~-—¶~Z=SÆ>síËAôOüçOûêE3M72ßñ™çñ:Á=%Ú,2w:KÑçÞŠS9ðRºx=ð ®/c/û( 9¤ô”2—a?–¹íªsìý³¼ŸÎ˜ß .ÃYûÌãØî¼+ÆV® ±‰½•öRé?¥P ¸¬5A5bi€UÇÈ#Íã_Œ™€4€´BI(×! ÿh€¥ÈãÞA[[•ú$(3˜éHQÕbDb)H´™“0S)]8.c¦b¼@c€"“§H…qÓnâÕúqQvñ ]Í¿pü^Ø¿B#!¢(sSè%wã$%Z0”êFžÔRŸ¡Ùl^&"p8* ¿ù4oe‹îÑoÊ(ðÔô^Ø0`k¥ ¼} ô¶JjbðãÕh5‰w»* –”ÄhþηÝïòö‘ž;Ì/Ǥ,’R`ue'(€.ÏV÷b™H>LEÀÖÁAC» .­’¢Ìþ|m8Ñ—¸‘ƒH »-è§£z!»äûœÞpUµÒ/±}ë÷fxÚ´ àÁ×½¿¤q7½´BF·:i<¿+…«Tzº¹`G;Ù­ËtÀ'kßé‹!HýÈ Ðf”n'=Z<ú®}¸cÀjmíÑ Ýg”]æ`ðëƒÞo^J`ÿeƒÍÐþ‹fÙ•hs3’ýæÀ#™Ûþ:³l£«Ì¹rÏȼw¸øÝwÍ#‹hˆ?>—Sc€‡;g +ƒüœ¯ÛûMÿ0Ì´!iKøÌŸ0€ežiÍLÕ¢+ÂæØ˜ÕÊ€ +¶ËQ9M¦R’Õçæˆ: Ð/°©SfæêÄÌ$Lò‰°$6_µ< +ÿžt.xéF¾â q” /è„SI“rb£‚C¿=î…oû£7Ÿ{E«rNÐì+pÜ:Ÿe¹!kõx +/D‚S3‡ß¾6«tE“šc¢ƒø%$ˆ¦œVõïfuªU¹2`'®¤kq#C%’©‰=…BPÊd­?íýó'-id[¹ Í4Ií£ýUŒ¿„ÆÍìÏЗbñ­¤½ø}­]:G€‹JlåÝäϱbœPaÁ‹@æpíÅ·ãRåx `›=ܵ¬_ëëã4€Ûèð.áÿ”5¶ãr,¿Åk¯ àÞÝ?·Ê¾/2˜Õ§– þ˜Ïô…83@-€$䚉C~!†ƒß~ÝûcÖN3»GÃZ [Y²ðRw“DRŒÇÅ¢}1„––6ùw'ÛXL3¿nÊ]`$/ÝßÎQx”ýyý1ß±»`ÝåÎþ…(óOzüº·—7sa&ã³ÌeÃ3ù žœ±Ï0óÄß%µÆ¿~sqw÷Y³¹ÑüP +P¹¡óŽz‡áÑ–i}Ÿ9éwVÞ^õö²ÃP*ä¶.ò€0¥ÒRµP-î5Œ½°sŽ\Û»R[ªL5,@7æfCRÚZ-®´‚?bþÚÅ[~óàg¼qœœœ ]%¸Ùú9¦ó1iÕ +n/½¡ãè•“!s>L%ŒD•YkÚN+°W’`•aTÉbÂvB9éÅ÷Å1ï^P—¡ÄÚó0›c­þÓåÎêòr\ÞÄ+!|Ysçµ`š$ËjH‚$£ÿ‚›[Õ[UT@•)uÓòÆJqÔŠ©µÆÿgx“Q@G¢'òm§—$0Š¢S‰K`Ö²ˆåç›’É*•cÒ2RaúÌÖ²1þБÈå‰b&t, +… +ñà7Øò 8.ƒ+µã˜}¯ bfœõî@Ã.À àŽ˜.!¤à À6H€w È`ñ?Y{‹úÜÑ•ÎSz¾V z:*Üj'¦%åí½ú4ÏîÐ%CfPG\®R¾˜oš.‘rÞ ,þf¿Îî0Ú:<œ¡üôÔ’W‹‡Yçp%gFM|}eƒ/pJæŸþö·½~Ÿ(‚þAú6Ó-ežÊ ´¤”4ƒy"…tœ"p’uóö¢2‡PŠôȓÅíuþæ +AšÌuÄ×2Wáè½úºwp¾d•2vWž$YÒíŽ_d¢§dUôù¥c\%ÕZ%ª•R­2.e‡žgf–Kq}.*¯_âjÿ +èó»Pú‰Éi‚æ–ˆ:BC¤lnÈX +HÝíSš`n†ÖÈ¿VKl:…`vZ +„C`]£J¬ïòªË ·râšøð9Ö€îC^ Àt©Ò6b­åU)‘Õ›ÖÇZÚ‹> +N¸“²+£%1 ­C›X\´F§¬x*‰³Dµ+¢ u)€ÉéÒØt rQ“‘ ;×m`‰{^ˆÁŸòɼtQ0ûï]É1 ‡Þë_0f®;ÆìŸj×ηý~?iŠ ( ;®Vê)›´Wÿâ hb\Ç^‰ú‰>Øb°õK#âì¼Ôƒëh]‚Üm¢ªÀ,?¹®!Ù%ª€èŸ¸z{[(XÀ¹íˆ,,èfžqðôÚ]—›œö™ÅŽ;¤{. ÿ`Ðë#â@$jK¦¬ÏÆî|7}†–N¹½Éøïô×3†hD#ˆô›açàƒÌ© ìôzÏ;?63†§´¤ú๠+>™¹}“Và2ÏÛûߤ×vÓ„«—Q.‡Ãž®'Ìré2»;&:`à}øÌ?Ýëõ’<ì3>¥´…ÈèŠ\®…<$™¶Ú8•q©§Ã`J÷8æYb¯™àR,S¼TŠ¢ÈTz‘œhŒÿÌ´ÓT¥”/I}\ZÒcäÀÆ%) E¡ll2UúÒ]ÙÃÈGå(º9ÂË«Vý0­–•ùòRiÉêë”ÿÿðc˜ö²­µ"i€¥å€y–JVÐÓpuÙú`B,!Ÿ¤¡Çk«¸*¾m›§-‰¢JG):fÖ¾?§ë­UÆ*“ÁZ' m.Vs<m,‰ÃåÞŽP)SDõ.:}4ྋ@k“Qð\ €H!xp@àõCeù¨ Á0½8ìþ…H¬¬ ±z@ƒîTùÒµ¯Ë”kâ£#ô=þu4ûv‡¢é¯E9¾e¼†}¿Âÿ€~Pÿ=¼~Þ¬"PÔÌžÖÐjvN‘„A®"î<ƒª00ÆÑ^k¯i£¬‚CÜvd%ÛÉÍXºÈ ·{ +R¡sÉf–¬gYzm=IšÑü¼ó§0;ßßHs)K…ºèô)V»¹‡¾‰z–xuçëVåÇIÁÂ%én3ßqsØ·oéí&ð±aÄ·Óv3˺óÊKÇ.~ÏjÏ$Ð #˜úO›vzÊýïèÊ`˜æñ(¦–Á¾3ÍÓò˜ßÐLµ‰ƬޭR§r L!T,×B£ö3x܈:f”’å9²¬WþC\¢R¼Dì±Ì„lnu‰pozÀÞo™a7¬]ü¢ºÎˆcX^ëËq•™$,ÿÔÆA Ì­™{BÙ*D{ø%“H:)X Ê0¹EmDP“jDÄa®(³ÀÆ1ú©ž• %JÏV.Ý©ƒ¸ƒõ±'âiB§”NHÇø›hÅšž›ÅŒÄák1€äI7¾ÅØc¦Êm!Ž¡ßYbpÌCô·ìv¶O•Y 5p ÁÑ„¡N8©ÜVë€ÀòC®–¯^µÃK´µÈˆ +°E} W¸€É÷<ÀÎpÊx'ûx›BtS)åÜ î-8øc¾™mX¯= `¢ÇÒJòæ‘dî=·Óx¸v³½øMÒöF·ÝÝ]ÿa7ÏûÜò~²qHFñ³–V» U\æ¦^ØOyð z‡Â`SšÛi +‚ÓÊ9FO™Ë²+gG•¿Ðëri¬t£*óŰÛÏú(üþF×2Ï»™ÅK‰•'ñ}wå¶/Yt¤ú^ÁLXͳ¶kKÚMS»Rib8€"ˆ&@Õ É´¶)E›Mñó¹R- N_ŸZª“P©a æhg‰ÛÑz÷^”O_š¾dµë–ÊÉR-XI®Õv°*@å Bcžº[]›+ß„+”« Yf¡Rö_´£>·\Ÿ +dx™@Z¬Á[þâd ñ»l=÷Œ¤.Ͱ܊~ÅÕ gÙ~aV4! >KŽpø‡>DR$ËËòé35«·‚àfW5F‰×¤YÆ&¥U’¨o»¢ûlâêdkk¯õ1O˜Z˜ ”§!ý8ਘ[¥‹€Àë àŽú½øˆ²àŠÇÄák+y×ï3G^ž;°6ÇÆUáÓbFðÝj°÷ºxà´À@9p”Àý·Åò”Öš*ÁW0„›ÈÍöÎó°5ö0ÃïØÉWX `ü‘¾§Ö€ƒSD÷׃j ,{¯¸ö†?a3[ hòð°£Í"ÅÜP (dO ŽU’ÌõèÜo_k'‡ýüÕ·éüˇý¶NSNVhí Ø•˜ó¬›tÇ.Ð<ÖL»k,±Ú€ÚÇš”j¥Ëe鈉²¬sÉ:Ôš‰Ÿa4>gñ! ¦–Œ(% ü¡ôeX[‹]‡(.'Õ<û2l„ ƒ‹ÅÕ¨6YšŒÖ’,êu,_ßÁÝp=L ÅŠ0@ë¹õãqr~-2W 0¬¼¦½tg§§ï,fب¨Jâ¦ÍäêˆyšÕýB®áUëøAPÜcÖ…ðKÚ òhvpø—\µ%c@XËR +NN’€“kt(k`jÀÅ´$ pí§ˆîƒÇA¡Ó“~³m;¤ó‰àÒÙë†{=k7-¡B_ÚSKá!DÜ0ùª~ntÓ}=±ƒ~Þîw Q/šù^F~hÝ$Ù¡#†É±Ì·\æ{ÃÌ;éÖÖA»ùbG™[Z:~wd®2qÛ†’Üm¦‡ßt7Ò./ó®Ë¼sÐÍ÷v”Ÿ’ +ñ›½BùŒˆ2?ˆ·úá³ÌÖëo‡–ˆ‰56È åÂ’CÖÓ[™Ñ:1€ZmÚYªÑ„W´€ð,#ÌÜeÅà™võ~ S':P—&Ä”~mA£;™þ¸Z[3A¸¡&K.m!(ȳÆ@ÿW¢² P+ÏÒf¸6·×"Ç2jôÇóõ õø¹¸^’4•qL·b¹2µ%AF÷À\²“„v³}ú½­$Íd/”ÒSÃÉK¢G`—&Í(MM­r¸|%RÊ.E#I[£½éFeýC‹T”+?è»—Yf‰NDNºVsJúŸšÓnâ `ñµZý·Uп×j¾û‹½ô:v®³Ð³†­ °7˜I0Ó`KV ÞŽœÉÀ»!ä£ +<þÑcR †û¸äþ¯Ïð‹Eý~Ï*þ9žü ›„Šýsí¬/ÀkµþòN“þž.ÿ ñJûá«ü›ù‹4ϳÝü«,;ÐÖþ·ù–'Ò^Lûìö÷žïi·C=EÝ».})o'ù>Eàyÿ›þ¿îï‡ë»ûûû/¹¹zޝ^¤½ƒï¾ý.}©~ #äìšíq”¬§TùŽz@þy~@æÝý|W;x¾§Ì”BlN{õª¿··×/2ßM’ß)sí±›f_‘ÛŸ~½¿ÞÌös퟾ÐÕÝ9ÌÓþwßíöÿ¸GæßøÌ¹r¼®Ìÿ £õµH©Øx©ñ¼ÿ"Ûëýù0~˜5›MCÙ¤7 bÌé•Ôì !^©Ø€92´XêJ¥¼$„c+ ‘øºI_W62´±ŽðJÖÞš™·¥XeÌTÙZvÓ§"%#uÁç¢$ðóUÂé¢ïêèTÚõ¬êÐ:H4…ö‘¶±ŽÉUÃ^e%ùÆü|•Òz©TžÂžÌW«óóp*Ô†y†j–u1ùýs£8²ß¬võil…–tÐÆ»×U`~Ö¨*SÒt—jfs~eAóG‘k‹‹‹ný· 6P‡§êõ^¯€–ŒÄÖQc×ÎxcÑÍÆAm!äT8C™SeãûOǬ‚ßA¼,ܾ®ÀºK` À  ±=Øu(4ÒAt- Àq(¡B`—wÌðëãbcld^€ÑZbþ*OÝ‚†€eQ·Þ­Ò{cñ£¦û»­¬ðÛ ®¬‡ÍÆ7[§íŒáâ–Ü+\ù(\œo^»6ýîÍöü†¶7æôö:kØWßJÉÒµÑÌí½¸¸qm}]?$j®Xîd®¯¬_ÛXWNBÆsñâ2þS¸xm]gÔ\·½•ù5Æbsq£ûŸ6È,ùæD´áše˰µ¶¼1ÏÞüo®ü£Ç' +=Î@L6~Ž RŒ¤ã…áoùƉx‰AÛ0ÇØ9¤+WÊ,ig6^’·ŠC¢Œ¶‹RM1h;‰/—§.—mŒ.íâJÒPÜð:œ¯rÅvÑÞdRš(_’RRæ'÷òÒJœtÅßšQ[~ú;R+Zë$i·)¶…ͮՔ7/ë.ºÞl· ¬Ý õÑ9\l¡ßNšq;×–ô«TNž…tËb/¶¤…AíJ¥(U·»²Ln"–å$É“ èÂïÓ4ßí¢äGä4`µ0V àC‹,bQÂÁï´ïèÍɧ¿Nó~*jÒM¾üu7Ñ:Û>tÄM€O€^¥ù_hÝ<¿é¤xÀ“ (¹>~Û¨(ðïZ¼•|Ïh‘«pàRÑð”¾þŸ*wâ6ƒ¦¤YÒNît³ßgù¿¬ó‡]Ý®”IšÚÝ]ÙÓL›õ¸ÒÝÝ4 wóô÷™ž )›»òŽtÙOÖ4wµ°“É,‹ü¯Ü&|“õ^W.Œ»²ß™vÓßk÷/»*r–ù.ó½ÞI÷÷³—ß„‡ØU)س趻²ÈXwËž¦¹ÎQ|¾¡Â±¯B‘3OÛ_‰»|%örY’%¥Ù_­V­4´¬Ø §=®¨í´\ÁÍÕϹ„‚à˜>.õ2-b­áü -z¬)½@nÃp‹¢éG¹¸-s P¹I½¹€žºÙó+pyzÔš\„”iMp¥¶|¥ÜŒæe`nÙâò¢À{D*ýn£âÀáD@QQpŒt™H› Y´ÆaQø59hJ%†O3Q=ûWiŠæÐVí­oT„ø4é¤{G{ͬÓÂcÓí‡þˆ%Õ¹OÍu|Hiê¤p`æ– ’5ã>1ßÁËOÊš,ŒÆNm õÇj¢ß«hÿ>Û×Kßè9,qrÛꎹ:/ÀPÐ7-à,>0wÆ{ˆÝ>¿<måM¢K®àd ` þpðGœ7Οµñwo™ãpWu™gHWꛞ/±Šy7Þ"³…<ÓÂL–¤Óóœûõ•>;ù7áwùÞ4'ýuX ²rºíeâÕþîe·Ÿîe;Ô ·nÀÍsgQòžÜÃg4/¢®leKTìhz ;YãñB qSÞÏ)î5·€þ{ú/I q²%J)¦žü|ÖÁêV^ìIÇ“À•%LLƒ¶Ò¬÷ççRü±5>8/%±È@Âñ]fdf5OÙò¶ñ…é3ÞÏLYq b„;ªhí‰ÅæÁÞŽÏÜMÅ¡­ú€Ìÿ’µS_§1Ì|w«Å(Ã)AÒ¸‰ãE¦žŸ (;Ç"8GÐ}‰¶}l¥Â@øš­õ¿8CP«0dŸå>T¾ñÀŒ|} ‘B9ûÓƒ† •ÚeN&9|]|©Gø€2­KÄtÚA¸éÜVoƒ\|+aït¬m†…òzäÇ ÒçÙBFužSÖ0Àbµh'JÉt_R`\‹ âc’4W”Ž#Y³3kzf¹c®@_Zq¼`Ø ÝÙùŠ—ì¿ȉ0o¨‰‡˜‰5@ÊãïZÅ»iyMXj¨?1~˜>Fý.ö’z‰Ä–\ÄÏïåøÿaÀ¢bŒ æž1& ]ŸÝìÓ¥Àƒ©4b,è/´NHºÔÞéÐtÖÖô›¯þ¹É31,R?c²µ•%ñAÒ]hßI’ýÅŒv=±ë´'ÑV£ìí±ê1 „ÊÝLå†[Bþû Åÿ6´ ýc”€Ìã¾Ç`Œ ¶Ìùf²õâNÿ_÷ì ˜j„cnñ«Ì÷ˆ Ye镈̤7þfè [%q +OçàtÇ2o¿l|ãÖpå42ýc™„&i ÈpQ£2¤©ÐØ ˜­Niºv ·Á%®ü^Ô(èH— và…Øv«ô3Õú™^3@Û]*D™è¨s¥`fZÆò`Ž‚“ Fë$c:ºi¦c‚ô/ºÕˆn*­ö½Âäl$†0ÍŠÝL«¥—tèƒ!c'þs¯c +Ù4€´¨Aßýl&ò&­íµ1€åd‡Î„¢1AJ¥ñVa¥l?²^) +@‡“yw_ö’z—Y³Ä@ŸUN´âÔZ€èe>|å/ôaw2%–Ø´}ìp0‰¹ä¨™ÖÁ ÕÎ^ãcâƒj`¯€ÿ€Ø[/ÞztÊPÚO¼Oüs½‘ýalB˜;pZ_»·ç +7BwïM‰ÆŒÀâúÃÑÀ([ü\ß=A£¿þÛW_ïlÉ1·Ý½€-³»Yz§¯}<;‡¢p©Òv¾ÛØumLÈ. ;b}|™·3Ó>:ømYò"ó=Î@ªß~uðµõÝbŸBn£g”ÛÖó$= s‰þ§‡Z¿“%­çÿvgt7ªV‹Ì)âÐÎä9Úçv[ª‚ÙŒF2ïtÀòؤuÛÄ@—Vùô ¾*“3%7ckq¯íÀ¨49Œ×Ê•‰2xWÚ kÏkËZY:‚[;\()túâ ú®W­i€Š€Ö›†9&:±Êô\yIÄ_¦ŸÏtYÐaº—‰×ä$øм“Õ5›ì 4#ßZ#h& hd7F‰î]‡aô`¯hÑ­=!R^ –H' sö·Âe÷âÕ`¦2Åa¢#š"Öcw//Zã$Ô¹ãÇ9.§Õð4Y¥B5¬ð @lnkðJ»úØù"2;ü8À¼œÐ4Ï€>"Æ uþå|\”d$`æßÔÂkÚÂ0/0Xö¹¾\äKØ}ˆE”gÑp´/À킟/Þ$¢2¤8²ì 0Þ…´‡ÐŸ&oþéŸm P#ên?%µ~Ú!ï&}ÛuÐJz‡½¼·µ•äý¦ ,ø{Ím—áàô¼ ÀcY‘öYV•9_oË»GÏÐ~r´÷õrËl»Ë=o§>sýQæG;–yÿ í3WB ±Zz»+Ö|æ‹€hœ’yÏ D«}ˆE×{Ø/HšÁzÐåÆ%û/Œ+õäÜÌ#lOLé—5.ZïÛ±8šö·VzŽ0)0L? ^§5J ¨Äu)¥T:a—J¥pm’ÄfjQ]@«ÌDœ”Ž(!Î`‚(>øíÒ†ë) wà8•YÊQÄ]†b21[îÔ€s²:½¼|K+:aPb(4ìÚ¡•…t#ÿ˜éNk3¨×ê• Syß·t×1Õî5" Y`%íZÇ,¦ÿ‘´Ó€pê# @ë}-@3{Nì¿xñ/ÃÙåÑë0zøn< '_NFÀUÇì_!¯Ãß'&]”Þ;¯‹mõ:Å4€TÌ[%c®-«àKÿ_ï À³z£èª=ž"CaÜÝ`j@€àGXè¥;2†½½ü¨y´×Û±ÞANˆC“0·u(›`C„RB„Ÿ½,ÄA§±W/-Æhõˈ9ô¯»!p;iß¶ ‡Pî=†…H•ùaòÝ×ZÔ~JQ( ¸Jü±2ïüÉÀ ó^ï@{Ë‚€Ë|D9ºèG;±XA«­Í€ó'sÇÆ„%âYà²\Ä„™Lë Ô ^hˆÒ$€Ÿ&lHàб­â‹ÿÖ®OÂß³¶ý†Sræ¥D¨cXj×µ›¥Vâ!'Fߦæ@‡&H+b-Ð’X.€eñ½Âí?&=Âìú±§ñ¡ +ÎrÅbû“& N=xXb­ÖÖmBå2¾«ß"…º +Dñøm,ffÿÁ§@)s¼Ôg&ëR¢èÊ—ò¦¯[>åİ$ + ¯µƒ}ûîÀüõßü²J§2¬°¾DýOŠ¡ˆÕùÌ¥Š) +:ƒ8mîA ì2w¡@ýµÿÒû”̇#™‘È”ùQœ{m’ùo´—N ßìv-—5ŠðÇ n˜Ðl¶Ó†c™æó™;½.²/<ɘOÈšSÃ$¾¿0X™Ñ²tã‚t…¬½¶Ó¿G¼Þ‘ÒÅg7~ö1m +@ø7%!©ÍÐÈIPY£ù°v;Í7¯™;Ø…£A_ t*.O;¥1l¡4*îv D7Dˆ9SÓA‰n[ŒO PÖ}áÖØWš|»%š¨' òàƒˆæ­hm³•7ÒÔ­wZkËËÁÌdÔ ÛWŽ‹®sÇ—ÔUÞçw¤tÐÕxNá~ôZ•º°Dœ2;;ÑŠãµ0×Àç„ØÎÚÝ¢À[B±èåñ…€Hg¡…ÓSÀëâ+yñ˼^Û†ÿ”Õ_ÃÞÅìû‘- %02& Å¸ío%Í®Avê3ź~0BÏٺ퀃­­£õo÷„j‹ ’ê¶uÉqdZ°=è¶÷´o3éýFi³¹íënˆ¡ eé)\þÇ)™~{ý*åÍ¡ sz Xæ°eÞþsï—¹u—ûOÂAæm9 vb:£V²§ÌS±•ô«f*O£o(síGéeï8N92'™¼lˆ~¸êen]R•­}¢±IÀÆËà ¬%æhÉØ¶ðéíI#ûðýq% ÿÄÌÐg 4ïô{èҲߵí‡b¸4ðÔ¢ÐVƒîˆhÕd0n[}àLÝÿNOÏY.’ñ‹¯í†èþa=n ÃoÄyÕ˜“=¾õÓ(ïñ¨¶œVŒ©¢%@z’ƒ¤ûâ·9K:ܵ‚9™AÐè/|ó‚¨û)Z˜õä,,ãÉ„!»âv[·[µë9‘U±VFiëUÒ&s‹è ~Üó5 L°ãN gúgµÞ䟔„‹:Œ´G’X2òðrb£þ®±ÿ‚è›4€K[Ä úõAÀcⵃŽjÿL\ž?vñ~÷,¼þ`¸7ìÛŸ}¸Mo!º|±${Hºtï8lfý½t‹Ö0´©ÑFšÕèÝKÓ^神¿zµ÷¼·—QáÖÀ, ¥ƒNvßeéQOiULò½tïÕÁ^o¯—îeÉz;³!råKå¡ÏœGJæY'ï7sí§¿ÃÌ÷v:‡L{Ù7ÝüÕ÷tHeH# —„šްó]wŸÌw¶ÒÎÞ^š÷lê§½^Ò¾“'©å­Â%êaƒK¹ +1«õo7KúýÅ<§»’™qì8Wže(›0gßË´ò¡Ð—N·¦.2"ÙÑJiœv=.ßy¸'qSr/\;±}n<Ü•`Ù:½¦˜Ã›±—Ðx A¤J¬C”­O’×§F=¹·Ä:ƒ¢«ä³›Þ¬4j¡nAž%Í4Ë_¼ÊRZgÆIúÌæ•H™­Kw©™ôèKqçýt—Óg´îå>KÒ¯ÂÝ4ÛÉh–y@ãÀuùò•öGífÞá6c¢ù¼Èÿ@€þ…Òvu‰N¨Ÿ3¾“;¹×´ û°’ÓbŽ„öÈ_—0“´›¥±òp}Bèl„8ÅT.€Áÿ +À'Vª¢@‹¼líÈ«À¼Äï!üÿ5@ÀaßÕ8]p¼€»MoÝnÞßÍ÷­i4÷à›&ýnŽÅÅ3á·˜6Ù¡žN¶¿ +ÔG‡G‡‡Ù!E&Ïò] +Žž~Æm»m¡†Ò”æ=šçfù! tÖ7¿$ÛÝOÓÃ~ÿE_·}_™'–ùnÞï’ë 7oówýýDÅàNÚO¥-tØü‡Ì»íï[TœŸu)Ä ™2 „P4€wÎ’ `x}?z;¼ûS´ĸóq?~IâÌþèVkþ70ÿzµð×ó³·çÏi\[ ›×Ö›MÁ C-39³=ææJ¸þC­¯@/ºÎxY?ZüHOµ¹Ø ×Wš+ì©Õ”•p£MâÖ›óv³9Ôºïã>|Q‚Âæ•e®B§‚×l®¸Dì^ÓöAæ|È\Ç]\Ô.:¨ÏÜUÿ7bý~¤óJ~¤"«Õ:];„Kf¡ø6¹¸¶eμԺLËü£ð#ú`ê¿ÃÄÖz]ÂÞ¹Ä"³|'ôìÑÚwè(DÇ!×ÈÞú¯•ïXc.ŸÚD+С‡¯ ë;D7­Ôs>MìðnÛ×~´'¹(WF9]d§Òîî'éïÝMÒZ%ZÅÃÚ@cæíìý\êþ:òðÕ¿Ñ4ÝÛÛ×w·™Ð¹öèðÛÃd7‰¶ßÍö_f]Yn1à ÖHÛîe/ÍŒÈåJV£¥¹HƦ¿ÑÜGûÜÓýßñúÝ~Ú;Ú“eI’iæÝ;RÎgÉq eZ¿*Jw†äÍ ú˜|%ð,íÒe×ɯ¸ +™r `|üÝ«nîב<*4ûZ_è×™Œºø õý~R`¦roþЀÕZa)ý«ñÃ÷h;×ÑçmDw¹›îgùw‡G¹È=rÛÙ¡žôw¯2ý}÷Ý¿Ño:ÿ—ì_~Ÿ%íþw­îÙÿ&Ïž¿ÄÊÊ–¶“ýÝìÛovÓ~~ptøê ¨£‰áíüëÁ>¯óþ¿î/&ýÝßCve¬ÛûiWOA'õ¿ûWåîê@ý.™~'í2ÿ7zçÚòÍï²öÃ"ó´ÿ/¬¶Ì÷åTìïþîèå¾|)Ý…Ó­Ý/“ì+_¥üCÿ_w»/³ß‹*yÒÞï~Iæ*ƒ‡>:Üíì¾ÌˆÌ1û\à2û^ÛË$¾5òЉ„TA¥4áZ\²vØ'fRøÞòÄq›‰Í´“<ÞÞiuäîw"™]ó¢©T¤«$_ÌäÂõZI¼*?O„,¡—Re¢Å­Íêø¥l°¶<Þì0îq€µ4¶4gÉy1i€[œï钇͌+nF4‡çÊo9Y5d9q6„‚×)ßð ¢#µ|;ðŸSÅݧ†6ÿ4nýñûï~ψÿ˜ÝÇJE-@c¡hÿûVÒ¼·¹ëÌ“ÌÓ™K\žú77tÞ#óKzr^®~ò)³5¯XËN6“¯¾ê>—˯}ãd¯³ÓÿöPé6c ¸<ï.¦»>½¤MPÎ<™²µ“Éîzža}[Kò&ƒ|ãè“O:ŸŒô"³š@Ÿ¹ŒÉá^/͵GœäÞÁŸ^¹n›·µo²ØýŠ?&mös™'*¡º¼Í4Ùìd×þ@Œ«³¥œmÈ ?f‘îŒÐrì]¤‰Ï@¬YUÛÕÊÓŒ»£mÎÁ†•ã X¹âR •J¹R™š¸¬-²LØ?¿cïXPKEŒÁZÙˆ‚µéé Z“Ú‘¦˜¬8ä“ÒtI›…zÂ(™¥Èu² CPºÄT_>íq!üé_z QQ”HLL×xi9Zë´À Õ¹ùÃ!’6ÓL`Õ¿}À§;ª•.úLéè/ì¥ÉÇò#[2õq«×ë­âÿL—¦£ÖÇY³i :å«—˜G@Ò Rð}–8àjŽÇ¨8GöQ‚¿ŠyÂõœlÆ f´¤ÐÌ«€sÎÕ4Û¯‹ô(c/'tb+øİðvœ‡ Àü_Æö£ü{$à¯óm„iSQá½cä †I*`AwC!ø³ž1[ô ú]¾r˜îtz­]WháßÛòða°#nJô¤v¬¾9Æž?[L‡Ý0|%>MÌÈÜ"ý22éznjg«Ã9?ÆjÕ&¯vMi·³3™ÇIïK´OoO§‹ö1àNR›Q#}@¸nË[™£¶1¶›5úÂzqåd¬/Ãbx¡™ÿ×x·ºÂ·¶TšCß‹¥ÊÅ J*MàûêLÐ…¸V™,ORí/-R¢aàä$í„´ƒÖ]¼è«\= Ó3Tûù†ýâ´˜dw;“Q¹8&OŸdõeˆÀÌŒ,?øŸ`˜â‰‰šèÇéöŸ–€£€Æº#‘ÔF +@_À,Ç]Bl¶¨2+JúM=ªC‘‘*Ù¼&õvZ[n~ +ñ„e@E –øÇê¬ý ˈ؃Š\Kø¢´f¿?M`ÿžœŒœ‹ÿ8¥RZI\Ëe>èäå!6ʄտ‚¸Ò/[3ø80`ˆe‹xt#P}SîXc.€yßÿ¨Mß¾þ2ßNèè``SöÃö>*{ ›a°øô“3@¼µ#°'Ñ@žš€Xô¿`úÉ€8h%¿^Ï»Ô2a„QpðÏix°ÓJv¬üIŽ3€/¥Ò=wÜ|  ÆQ—å-œm7Z¢nØØ¢^û´ÒD÷ `îÊ®“0¼P—&P¿Cë]D6Ö,¶´ÀL©$Ó6I/à¯7£v"BüŒ0X¹,¬—EÊ“—K—¥ +ÐÚ`¤ÁØ…¥×6æå¢%J@¯ZZo½zìDŽ çÁÖ™ ."@åŸBÈZN—ƤèTàÌž 5ï6‡v+Òáj¦ôÊÚnjÎâ†ã º­›q=ÞKöhT¹1Æñ{WÍ*j±÷)ÝôÙl1x \*újÅ1Ä +ó.´7h¤!PÄ”g + àÔ€;ðY’†R.x·ÈgeE`ò!°ò"HJÐqzêàÔ·[@[X-À  û¸„þ—C!ޏe€ù÷çX}þxÌ~Øf@ð·6þþ*ßNh ©Û¿õ)Ýܼ-°ãŒ°ƒ!ƒqSÑŸ‹ìHëoÆä! @§`©cRìÆ<új`¨€ykË™ºÌuÌQ}²C+€S@öå—ʼ—0iK¦}»‹É1úaí$­ŽNø$Pθž †`0Óf¥%0³ù`x¢‹\„(–¾aÄ€u!’`kð€>(µšCwhwpט¶À4ëe$qÆ›ž¸ÞÆÇäâm´Ë u4Bsp|¤4]›¾('ñ4):áÓ*w…¸:í÷–uªuZ:`}¼Ð +h«@j¿ ã^ËõÍâU=~³Ö´òŽQÅÅEïÖÚf + “Ršl}Ã=SÅŸ²êR*1 ;Jݸç‰POäóoû(cǼSºôBòÞО»r'r†â&ö¡Ö{í}Žï!°_–FÞî‡cÙ]’`"pƒ}Iw÷߯/Ú¼{Ñ56O`0;07ô¯k‹Uä[ÉÖfÁ +;(ty z 7\=Ý2íe”ôvp ƒR=×â_›=(T€‹€B2w1€–‹˜vº ÌÑ>[ù~Ó1kzæ"ñ  7ÊPžljÛ‰@̘T^õ½‘ ñ=ý1àÒ2ì“r­45‡:¡tÆê(bbá%úäXbÚ”D3êcҙ悰Rû`¹üéÓ#0em ´¥>.+ã“3L.Lã·g¨óÿ¯œ¢6LÜÍpâ€+-`óöÒ70m¯ä£ZwÓÐo ¥Òf›@Zö(Fè–ZŠ8틈÷ÿ†8jC·=Z’R®EÍ8 c'ëE ÷"ãÆ6J›Í7)ÎØ”'>dÖölÉCF(þ2¬(TÀŠÃ2u•J(㈜ã¸õö œ=°5g¼µYr’“Á©x9ù‘åÇ °Š@ð7òm…þPzž[Ïl%››»0™@›p tY `À„\Áí‚à À\aP(-b=ÛqFxƒBÚp0$[,ñ|rf À3ðA@w’Úl1€Âð™ŸÍôÑ·rö ÀãÅÄu¡Jh” iÐ2ÑuD¾†dc•9”ÙøXÁq¹Pùç!/Á‡æ;@t(ùÎé@×ÏMÐG  ú¤Xµ 㽺/öR÷ ž·5ÊîE£e +"@¸Õ­Ìž§‰|²Åä Ó{NgÉÚÚǛΨT–ˆăP.âZ•UNðì%ñ^ó @¢OÆ´ýÓ$Û¾*ÊM»­ø—‹8¤MÙ  ¡¿o8Äðð=þ €¯A’coÿ³ÀÛ A@ê¤\ €«ú«ÄÇ„AÏR€·ƒ|ƒApÀˆœÅÌ(bÐC¡¥ç‰Z&ùÝÐ0èÀK”O‘ù(‰¸è¾d”¸ÀŽÕŒ2€˜žM§Öp§2ïø¼­` ¥Î‡w1@ªdgÅÓ§KmÀn½õ5³¤—µµŠƒ ï p¹d€˜„{ÒÇçÄ*†Çö½ ü´¾ƒ²À´t”Ë)d¾4FMàœR:! `G@“(›w˜«èT±›áðKâx‰õ‡+A´–®àÈJ“ÂÒµh6‹  MCîV'Z[5]«uJdÍÇiͽè1ú¨A #½L-@¥Š¬{p (3T#c›è? +嘧áB}žÿÒ©™ï0š‘\}ŸùÊC®-áôžh¿V’)Fè0È<¯ÒäìR¬³_àì€ýgÿ×ÞúèX’ðö#‚slz‹Ø=ýkdH„­@@úµc`ÐL¡pÞ.€ pµ¯Š€’1€cF˜&ø‡ @øsµž°É\€¿0R¿ÎÄì΀ôŒ¤£µgÅTPß‚(W-jg/âé7ëª%çŒËÈkͨ¥-¸æ¿Fw Ë—õÅô‚ÖúWп 0¾ àM@jBÀl¸l9ßuoAXâ¢32aº2Í”ìhryª¡#d8MìfÒl6ÆF *´a¬-A$iØÈWOoã‚ xé¢}1iýþ㘸,,_‹z$h€üvØN[­üU €¨«è¯[°8b,Óo/7®Ø +ñ‡8 ýxdçÉ:Äñ€NÇ¿©^<퓇æ[Pÿ@1к“hïlÀ4ĺ +ûwºHþf0€¿Ж‰9Jéüõ‚ðŽT€cî:þ*Ùˆ›z^[n¸1€Sj ƒo(jä1m}½€1=À À}+_*—+Õjuª*6¯2c‹ÕÙ)FÒeæ­J¥:ÅG+‘ÙjC¥u¾Ú˜Å ššªèÙM”ÆË¥²ÛZ­6S–ZßÄvjÜúÒ¥r…´ädr4.Ýluª\á~<\ +‘QÅy—Ÿ°Ñ@`•K¥iAzÎ5qúÖêwrò²›âÓ¶[+=ÐÒ˜Õ/€'¡:(•çl<`ñ‹×±,'Ð\/ûײS,OŸ¢4Lü£0iÊ2 +¤²7ü2ŒIûZ* €¬É³ä­=êÿ³u£b[Ú²*¨Ó|Ç‹Ó$]lï±’`Ó}é(4¨T•MÖlË·°ÄÇÄ̱̺èGœ­,¤ŒRz®(æx ÉÃ$—¦YS  4WîÅ£Jb1GúÁçU¯øûÚñ?úU"1ìïiïQà—ÿ&ô#t´·€¿Š¿FÜC7#ìÀm‹˜6.Œ%t®°goеrŒ˜Í/Úxû_0€a掼#ð_Ôm+ML9¸J4fç…G½júgXÝòTUøµ RÌX1+ ½*•©É©Ryübùrî)‡Sj!C{ +ã¥IšæèŸÏ+¾(KCè߬Ž"&®„ ÒãÅÉÅ1Hÿ¤µ0¸šL”¥N¤ô1=qxÚP¹VÈ”aÀI¬/OÏî(4€MB ¤Ý¸ AeR€ó“õÚ]ÚÃs'C +@.Ú©rm@¸ý÷Îä€l0#|62ýb-ÍbÆIkóy–åâõ›òøSð–Š´£$øQ˜/ú` Nœs@-º%pÇv~M ó(‰ M±Ïæ¾r½ûÙÅ5 xƒÈ`phk,àš°dâA…Îë×Çáß©ƒ³Å£{P pæ»À¼>–”?蛿M|[ wj˜òkmõz;žœV p¿U 0R à€¬Úáµvb.sSbܸ±K"4GÀl üF«bÕ)çÂeýžÆæ¥dá+€Ò;å‰ËÌÒCÀ|5=Ë —`Ò°85ïRU«óP.]:Ñ™žà~¿èû„¹Âj@Ëßš ¯:‘JU  kd;[Kç*‰ø¾Â² 9(c6?ÀÀ¥ê‡ë ®y¢ÛɉÏX:à `¢ÙÁÕ,IZLc„AM“E:Þ úí¦L³4D’èiÑ@p=ƒîw¤2ì?*€z¤þbfã-hëMÅpEº0†~j&ƒa[sãq Öä ùjœ6ÃgpΑ¥pIÞöµ~+Ù›‰ÆiÚ€Ô&SZJ8À²ä=!×nÔnŸsÞ¶YrÕbZ Àh¹þM2.£)Pý›@ !ÐÙµ¦<xS `P pz ÀËë  E÷&ë=3þN¹äpÈôTó 5GìGÀe +À½˜˜×NVòËåwÞ)‰Øaè›SW ÜÂ?f^)à%€™|¶ @‹æk@è‘sÜ®_”±u|Û¦õÄROVæÊ%fìMéjõ•…`I—`· _ekÓ‡Æ b®õ~Ç´ËDÖ0-Ò¸Æ,ä\ &+åZ˜ð£Þ½.—KÓ—Ñ)n—“b͉ ²ÚNŽÒVT›¬É3nƒÖ‡‹ûr’QÔIÓ5Ô=-žwš63Ƚ6õDQ…¢CAÐÓ=HZ‡+}ë| øÉ¢ó¬ØP-Λ#CHÌO@U6†è8…lXG® ¹ý6’†]qË‹Ë8LJ# +0˜'ü{œ¾‰ -ÄÏyøçKÿ%¼ýyýmZÂþÚ^| @OõœZcž¼)0¨8=P¨‹Œ¶À÷÷`¼äú£ê# `W `¬rYH.¬µÒ bÒB°ÜƒÒåÒ8]騬tr~@röñ Šþ‡ àÚ”TŒ;¦Àå©ò´t°>ŽýxÜí®MV¦Q>‰£ó²ÁU©‰cöz¡Á``õNJïøeç3è`´èþë|Khoí¦ÃÓÒP鎩€‹KïÿþŒ¨´-\áÇÏk φҥï\–u¿;ˆdþ¥Ò³œ~M›,¹ÝÍ_ei¶—ý)ï½èg[éW‡yª=èKÿª—g{{ìôûiº¥³üE~t´‘õéî§ÿ==ç$%q–Å Tm4»tô¤Ò?Ì’,ÝÉú/², ¨“s…t [b Àµç{ y†þJÓÝ$é&í~ž?wò;ÓéH¿ð))ûOJ±Êÿ¸íûì·¾œ k +@›?ÚÚÛw <ëíºò±1ýù+epµ·ßX ® Q3¾óe÷׿Þßù¿¾ùæ›ù—ùßÿö/ÿöÝ¿ÿû¿÷ïßýÇwÿñ¾ûî»û·ÿ#ùû÷ÿþ¼µôþãÿeîï–Û¸²la”,Q Ü„•lŠ&J-šr0‚Á/’M˜I£#iÀJ¢+tK[Þb«ã(‚–*ª[ß9:tSï"K¹½y-”ÔBYâW’vKz ?ßÁuqÆs%àŸ$›U½gù»òÈ5æs®?ì|µŸ°{$Í5UhÐ@ç`lþ +Œpàz†`…þýþÀ´1€Q1€S)@º4€Éc§a¡*,Ž É0€sHd1Žâ—ÅÏ)Véc¥»IÖ¸÷<ŸÃ….ï£} ‰[|GF þ{áRxÌ6«–Žˆ'¹—fÎã‚F ÃEøáK8ǧçLñ'BèU†@¥àñ +¼ÛjEc„jèÑÂYü¨&§3ú¥Ä±M¦/T§çK¥ såR>—-œã0ŸÓÓóóïsXPúÉÛÓ¥¹ò…py~Ž«Óåéùòryn~n*_˜›››ŸŸ›»À6å>[rÿºª¦Ö6T(Rkå\1?80t®:Ïöø=±Á9!n[7/½O­ýv€;ó‚GÑÂÏâW¿Ü„ì‰cCùQÚÿî@!D‰li3‚ü˜ÓlbÌÄZ76ùM?îú©3CýþÜ;ˆsÃ/ ø%µTªbc~¾p`0›ae w´'äf HI—¿Žwe¨Ó?(ƒìa€ÉXa˜7?ƒóÙÜŸ}Aã/: ¸c@lü¯[äOŸÁCóL»ïQµºt ­µ[eŸ(íf¸8æûÈÖ[Oƒ£@VÃF’´’$þSÒ~KÞæØŠQ ŠÐé<étö.—»°Õn›‘oï=î¼ø¯×/@ ò$ÞŽ·ï·[¢ø›vã7Ø”ûþ6¨‚rDJÞ½_ ࣱ²`£ñÙ±?’•*Nçhoþð™ŒDQ5j%µ=þ |²=e\pîûì&#Äþ`fr°À8½C7tA +óc>˜Øk|wÉTˆ=¦ðpÐ7É(2*€§ÏÉ^ç°í¯~p ÀøÀ>€Õÿöú‡Ÿ ü–YS`Eaý£\#_&‘Fò‘G?ã3¬æa'½Kª1F_"ÙŽ’vç²–Õ;^YYòƒÅ\¶4„*ƒ7[e[c–E¬FUº¡ÁâbrbYÝ/>›³ñŸ!Žbk·ù$\ƒ  Ÿ(‘i§ÄÛ,5œs6Õõ½k3¸=^q)LH`’ßcL=ü^bH›Ší{©Q¦ïn5ˆ‰u‘ØòÅJÑóË—<ï=,ùÌóçO¥|ÁÌ=/jKÊĤw¶è{¥òŠÆåࡼþ¡ZxàÔ§Ùžvî5ãµpblr ÿ,Û@‚°ÁjŸE÷ðÿÖ£h¯JØàßtä¼^^T«VS³Š`˜ÀñGƹÇ;0LÌ´­RÓWÇ?•+È)mÉ7 ë ð—0ˆ<³ºšÌ³É³Äà$ A& ÎØd½ªƒƒ’A¶­;kð£có)´ÊÈpYsΠÒö€ÙOfmŸ¸ðÎ’ÆŽ/Àë,;à§ÒeÈ2Ù|0€Ôx ØgiþöSŸ ðƒYœÔÚVÖö™šF6Ó÷'a7ÙÎ-7ÀNù&8j;¿€— Á +ò ÁÌaò€4V2 °h_\‚vü \'»89ú†kûæû—ˆ~zÏN×øŒßQ€U@ÈJë€A6® Ä †øúB”A¡i Æj™jÒÕ*HCŒbEˆÆyÕ±±ÉQ,ƒI»*ÀwAI=Hî”±%ÈðÅÒ°p»‘;K +àð‚@–Û9‰ê)Ç!;s &¼É%uª£R9ÀP%•d¹-e ƒZür²eumWxÍf3AžÒÅìøBUÌ Ç «³3à=žVoþøwáTx™ fÇ„é$1 +¹‹œ½…4ïA€ô ü{ŒàY5®5Øj3,%l$ÀIð§×¯AðåÂTxíûjnŸtˤ»ûÀS*òÒµîðÀ?KÜ/{w±À±¥òýR«ìRÀ•ü<úámÆqâŸÄÀvÅOú@ãC‘ˆIsGõêj€Ú[ÖÕÜj“Î0h²K Í~@Õj0eÒC¹á³ì2D2îù£—äÿøÚÃÕaü|ÂÙ54äŒK£ +L U~œF–Ö_1€´—’LÓ‰ƒ>¥Þ ËäökQÅ÷E‘ž tF°î”mŒ'ÚiL@pØ.s¨ /`¯> !ÿðÚœÕW“Γwò´"öÿ¯qóSƒ}ª; ¶‰¶êÂ!üx‰¡¶È’äõ5 •ŽÂtHj "ËOaU@3ùŽPÃÝo:—ì?FmqèÇ’@Îóp«ÔvÛŸ+î¼³¼¹-Àáøw1€»Ç•PD–?` S +É¥}mÉ*Êxû¡Wd0›†h²y‹3©ÚåáO 3@ž|¸ËLÒöë¸Ã6‘ ¸ãÓX„w©D@'BâóQ¨“ð\Ä2P +é1i¬™½¥®º2ˆ³ÈLH’b§† ÿ0ä8&€;œ…6ÑO”ýBImmK„.`m@,b¬7Øc‡¶#þ¾'ípî“v§µ×'ãµzûÏßï}oÕtØ·wÜn·“æ½{°²ÕËñ‹Ð¶¶°¿ý°ý§NT®íý¿Ø“ü'´Û1G“Ø{ñpçÛ8Ùi?ÜÚk?Üét’½åFœˆàk&þë_;¿ïظ2ÝŠ@ß#9€üð/8¡IÍá/[)ØBÖÕ`®ÇKŒçi·¿ÈS¿Oþ«ug›849%à‚€dÒ€ï[ˆ ÐûP H€ùón‹Œã—1€_  Ç•8Àï—^ eÏY /–°VÀþÀë à—c%„#{¦…ð¡£üÇÉïsCcùÄä"쉊Š˜ Õ +ÇpÉ_Y˜­¬Œ'‚ÊJN£ƒÄK+Á’_(Ò•ð`÷‘!+!¬Q¨ú;X0«Á®àþx€ÜYy* ”ýüe€ãÙà€å„”áHè3M†@Ë€Ø Éòø©c…ÿŸ`{¸’2÷œq922F5’2VJ‚ÐþS¹d€-܆+A§„ö|ëJ-,Ï—Kp…ÊAxåJÔ€k\mTËËÕ2–aØŠÂjõÂ…rX.×X“·ŠôÕå°5À&« 7ªaí2“#ýÝèJ#jÄW°ÚhlÏãø•FP&=¹ÂѪ5|jà ˜ÔÇ2GhÕ0m œÃAHªeW?èiÃ{¥ à¨RÖßýq‚LS¦Ç¶TÛ`wºÖ$}¥Ô@,…Û ¸Í£Ä ž +¡}ØÇaž À(†6°Ê»ü|!ކ¼±-€ÃûIK¼‰hKÅ‚ý à@ à¡F2”>G[^,æGýbf¾Tò +Eµp×X{ÈÚ£„÷9¯„ÃçXÆ>·èÿ“WRÁ7;Ýa+Ù÷xÌ¿Tö‘އô-ƒ9V:8ÍŠÀ¼‘ï³ÅW*ÏyìX™ö÷ІNÿÆçùpc] ã=‘_Ï–?Òý1°6šÁìbŒL°ÈCðßÏx#,³ €À„1{6iÇt»}r9#ÕÁ +>Ó~ñ½R™x9˜Vj—/Qt7j·µ ØÕ¸·€qàülH¹Üh´¢¸…üSÔâ¸q¥ýsêd3\®V.‡ èŽÀõ—ïÆ0=p9Lý4V1oz*nšVA W¯¾yˆ›NÛKàD߬¹GK«à&RRU<ŸÆ&3q`J½€ ð@Q’<+€qõ°Oªùwëdÿ= +ÀÅŽ,pp?(Šì/84ÀRí¡fH€‹ôiBí´¾ÈÓ¤î°EªæwÉ/© ˜\a4—ƒ•Ã&ÐÊ7Ür¹DåÅà=dù"`$:N0²EV©ñþRé=( š;Ä!ÂkÏù^wƒ(ü0ÿ¬E‹§u(]XXÇ4»¾þù矯¯sÝÉçצΟŸá*»¡èÝNÍ`ß Þðµk×þ}affæÚ70müûÍ ®]Û¸k½‡3à†›uÏ—û\ëUˆ:À1œa:'#F{M’Ý$Žžuâéì#\ã8ºƒÊo×Ê1벆½½íË夽ݩ^ÞŽ`rãèû$‰¶‘äÇ j'ß&l °Ý~”T9Ž['iÇp’„ÃÄ=¸…A# üÜD-zñ¢ÓnEHPâ YîàjÐ% þa+‰ÊeX¤cå3\Ý1€­{»bßá´ö$Ú{ÒN"<¿ ~AëîÝoîÞ#{ƒ&%áìÀ›5@ßQnÐàïûØdb íÿ7)€7´pÿØ!Ò­ðV¥¯2€ýõ~øa„âÃ#°ï#,„Y^©‡eº ¿¨_—D‹9ä^Á÷Ùqõ¿°Æ rìJ‰µÁ£Åp§õfQ=+Ó*DÙÆŒ!¥EP‰‰ $І† +—È Ø÷…_«><`Å9Ä9žxÚW"Ì_¥ ÿRX‡ÈO™P‘Œò‰Öf°çüÔç×ôu(€Ï7ÿýاÀç‹ ]m]äáÔ)($ÂÖ•˜x ü¤ À<€”8ÿ„: ýï•(3ÄkÕ aòÁêwð„à ÅóÕV­×aFÔ®¶ö8Èk2ß‚ ‡“Ðfž;h¢Ñ„Ùñ?ÐͽÝߪ¨7}8¯ÚØí¨:A*ÉL ðìÈG±?l—–9²Ûq’@¸‹“-0€(ScýPi$mVpÀ{†ð·qàÊ7†%Êh>-÷ÃÅmøÚÌ Ü­f÷ÞœÐVÿG B¶é1Þñ¿©ÀbG”¸?ìqb1àÝÝÝ'POŸ>}f-^¿zý&Z€ÆžgÐl?}~(Î ÀúO]ažD6¥±JÃw~P*“žÇXà9Øjö¾OóŽ<­ãLc¹W–4B®\¤pr^§aZ•€ àqö3Ô ½GW, „·ˆ£|¨c‚¿Öͯe€Sáî}J%ä©þíÀÅ”èÃïP &bƒ¿b)€~8„ €C‚ñé1‡<Ãø3F òbsR€tõT¶[pðôjܘ¯µczK®úä*¼þ2»îr•êõöŽ…Õ8¾W«pûiíjÛ|Æà0 þ³\}ø-–uUÔa|qQß/äürr!îP=¤-ñƒp¨¯ÔY3ž ÞÐ'¸…c½ÚbßDÉ3§Žx:éDU ˜?Ö¨þ©]Á'º¢èoQˆ‡h›1mwáœ.RÉ®ÛáÝÿéîí:¯DÌ1T0ºÍÏ÷O¾£ÛÀý0 – Mw·w°&àc(€ç/_¾zúê%°ÿ’ZJ@ÈÎÍÒC €õƒ8ðÿDå@uÐøÙFTés3ïz~=*hû cCÀ,çTWÈÙCŒu«F +ÙIMþÐí½Ä€5ëyažŽ[w8«5\,†L#ôãêþL3'c³˜Sˆü 0À +dFæ°Eà<]€T@€y—¬¯óAä¤@ àR·€BEð61€±^ @ e†§L, ˜|´£_7: AEò 0`‡@I9ìH4åq»Ö_kÕÆv¹×¢ZµÃÚ<ñ= Zá²ÐÞ®5öˆn(ë;Áu98Ø„ßzQ®&¸›Û²V?Äg'Ÿvó`µÒ.¿AйÈ2‹DÉ^G#¾%q§Tw¨cXÓ9¨~ßÿ}~0ëÊhZÖ\Û)þA_à·ÿ#%À5Ö-îªÖáO1À1m¤-!ýÕ1mk¹Ú¨Ý½ÛÚÞ~ àñã§OX ðÕK:¢\R P}2zÒ?aòÓ ø©;!K"2‹Ò¸Ñ +.°Üèœ+ g‚<"?ç8ø6ŽK°½,”€ïV¸ A¦g–g€Lá`!šË•KEk3 +° °‘_.ÇuÀ çù6 Eèo’‹— ðœA0sð§ˆ8 /àÀE0€k¦døeëëüMCÇ•@, 2p\ €%OcFèyn¯Ë&Éöt# ƒeèJëˆ]fEI;S©·«w¡ÈÎø5Ã;¨q À^¯³ÒØ?Z¸Ç}:¤:´4ª¬=žóç{íÆi :jܘè‡|Fóa¼Â¦VGL±)€1(€nPá0‰:Iu> +­’c læ}©.ˆ^`*0ÊÀ'„.ä(@¸ëHßanèk Ï@ß&ú£t°Ê,ã²ÍÏýï,Ç´P± >‡ÉrP«]iì>xðèɣǟ½|NØ¿¤ + ò¥ÌçÛ§:`$PAÁÿö“ + ³ÂlzjpÐÆÔ#.ýÅ|$ø‹Þ¢(Àš¡s²úxøYoGµ›Šô ZYbB¶Ç‡¼W8=0 dñNDÊø8ç{ŽŒÑ÷ö½œÃIZ’þ¯v €SX~qmÎÛ Ð>ƒßߦÈ@¯ àŸÏ\œ¹¶ù»#b -â>¿ÊÆX +@&j"ì¿©¿YçA2 €çuKÒ‚·€X4’dº¶ÍrçpK@fáÊGªú»ÊZ´xÞU™©QüëmX‹šêˆ=rÔH¶äÈ6¨˜S ¬Ø†@œ}Ï5’¨]¸Òì i«>ä-ÖduÝ —c(–î:½ØÊ2–¤1€½ÎVÛý0‰âè»ê|£m¤ ü+¸oó½¥"« ØkÓÅŽAß”íÄŒp'ê¹æJþ[€‹R +@”“ê*ØÝØÞÝ}°ûèéÓ'Ÿ<{öì%œrÙи"ø@úOÚkó59*èʯ7YaG¦.€÷³iHa¼~^õÀ†s¬ÄËã-` @äW¶Y!ÑK Œûçò/XõÊP"¸šç±ÀÕÕ%L¬V!Ø©)€"®1é±Ä@ã$¸‹ê=°x/œ'Ñg@/¯Sk ‚ä/ÿd ¿ßÌxXèj€õuÇìyðDž_©Íœ`õJLätc}®‡,J’üšf²;Þb}³íú‹ZÂ_ý sô¨´ëŒvµZ«ÕF\«}/Ãú“4ר=4G­ñ'iˆX ׇšÏy¥+ ›zO_ò ._-Û8]+`+•ð/ÕO© +•°ý_ý ­ð¢e0_>jŠ šâ Ôb× á7ñT¿T3m$Âod=\÷¤·—æ>ýئö2È0Å4–c,×üÑÿü®rd[@¼º\ .[”dÿ´\®Öj­ÖýûÛ÷?`Àõ¢^³–ŒänÞuøüá'Æÿ~À¢+?üŠÔ§›§ÝðPð&òÆèÏ2ï3ƒ³š/&Ï›Gåã[Þ'4Á ¦òÇó¼–Ÿgˆðoƒì0Ø€$4®¸€ÜRB/z$æL'à"ä=üÃvÏ0|;³€EªøF±>€Óݸ63³~ãwR×®‰lnl^¿5`è§Pec“£.À?~p.€€~~1q¯J§'ÛÓ­„°Bq™bæ‹ú^• tà×#ŸtQZg* ÑšÞ~Ñ®&¬öôJ²Ïúý´%V»Zm7?÷gƒ G‚ P€ p…Ãÿܾüëi›{ +l ÅøB»¯:¸”jûµS½š€½ÀV{ëh  ÊÌVyú +~Q4·5>…oЄ!:‹ ( z@Ú>DhïMºd¶Ç™E€z z2 àgGm àôñ1ü_¹û€?~òôñËçÏŸ1@ +ÀÒ@~­ú—tñû ÔŽ?4Àk(„W :•9%µÂpÏ?zݕócÏö \fzdT8ê“~@à{ùE,Ìb2¿ÛŽ!ä—àJ,^ž&?ÀáŸ5ot‰Ê¥b€kH‰ø¹%kßKpJöŸ”ßQmsöù:x>€z©€€WŠðï`Ÿßؼ±¹yƒ…‚"P×ád4~S_  PR @J€{¸z|)@†Й01Àf +önI¶»ÓôݸQS§ze(Û}B0Ü©†íoaÃ#ØhÚ…û«È5QÜnE¯·/³#aŽý*-ÀÊ»[í=–ðÅ—«*¤í·¹•»Ð¨uØ`0O“Ä×eª€&"Ú¢2ztUàNõÏ/² `+Nz1€¿’ÄmWUð€Tcj·h»:}?iü:Šºøï*’nœƒ°1jÛÞ'ùt– +6LhiŸîÄÀÿy0æf~™è~W9¢-=²n_+‡ \€‹î?xüàñ#Öxú.œ€WÏáäþ,Èü—@÷«Ÿ€yb_ˆ7Fôs–а&ÈÊØüm1‰,é/Vò€.i¹bÈðê“gr)ª',ÒÅ·:°Ãl«ë(–À°ú”`"?êCDï2pŠ]m1@£^!\šä*¸@®Ä‘>Œ;ã ûo’¢Ÿ_|®1ÔOº¨Z|¥Š0Ù¸¶pq†ž‘/ 8Àæ/¸ê® Ùȃ,ü ×X¾c)ÔG/`¸ï¢Ÿ+£¸K‡î û Z +Ør6ì1ްqo_çOÑÆI³}ùE\î ßt…Ç·›lÑ% )Ž`ñ?ûYb=€ÁɹpÛQÔb£]|Üt€Å+áÇ•J{9вA¿Ì”tÀîígÙÀ½ä»xnþЉþoŸÜ¯Õ’A@" ¥â*:@”bcßdr88£=‡I~@ @QFe—¼®o·ýù¢?ù]¥È–áùgÄjW îïÞúŸ±àÉóg/_Á `! y¼ÚyÒ}èÁ÷_kâot¨ ~úÛ?ñû·Ÿ ÿ´ÝÄ7 >Aï^æ¹t†…¥@#lж[V§é7hƒß/ú®¼@AxcÍñqЃ%vŽåMøÜ\N#òàB¿bR¦á5–¼"ݬüÑ«r„0»÷‘1ѽÛ,úî òé,•®©ÏŠíÀ|@ Ÿ2€QÖ +b²‘¿ß}âçg)€CÛûϱàþîîã§ÐÏž>úòù3Zþ—€7E•€2`P6߬?\U`¹äo, üñ'zÿƒÈªÒù\‰µzá ¬õçë— @ €y[`µ8ÁÒbKÀ+ä #ª&SÍz±0Á@¯x Фô‘TP0È.öœP1@±‚+Â箜=ë:à5møéˆdTGd @¨g×ÑöN{ +àÚÌÔÂ5˜ûÍ߸¶± Ðÿ›ÓT +½²€}õ¬5 àï–ïZ +@Ð_bKη{’œX —qVƒ´b€vÐ0¿? [.Ù( þ+;àÛzÑŽ¢ê‹˜eÿ?M8q-Œ£Õp¯QM!ò”ÅÄ6W¥€^á”ïßo‡« P\¶bÎ+û F¾ì”ÃÃël÷û@¯-@ø6^nô8NfŠcÖ7¬m¸ ÿI-•R”Lc 1¨ÿÕÞ”Êá àxanRÑ)ľf²ÏŸ=¹ñnrH[€Ë²ñœ_>rªÖjÖÖ|ðäñó§OŸ?cÏàÏžQÀ ãOן4ŸÅ‚$¦dù¡Ø »R1³Í1õ`»'rþG’e_ ¡f>úÐÞØ°Ž3ÌNŒ¨Ô~÷'IÆ #ê­ —6”Le„8{ Yj„CtQ?XeAŽØGüã˜%"U‘Î’EHäÿóÛÏÖàû³Ð€üD¾QÿŠþí†SŒýù®,PkY pD=nêó¥ûcV _ í•|“˜1†½ÆŸì€.úfýE5|ÑäÎücQÜLvv~ÿ0Äž]n•_àX)Pð&Œ.[]Æ;Iò + ÙJvXC·oíAq¬€bä&ËÑ ØêVÏÅwÈ–àI G¢µp¯¶Y²¸O¢dk +`?ÈÔø÷/7¾qF¿OZ¢-aÜúϤÑjEðnRá[sbF_XຩvûãLt bOg©(¸õ‚“I» ù… @åÈ¿@¦ßEz1×à³7U¤6a=€Fm—UŸ<{ÿß`À«×àåë—û+¨ ]jÀÜ üÓøñ$ôM\v† x9Ü›´ÙŽ¿Ë1éO†…BÞã|°~Œ5Ì Iûbà‡Kùc¡øPеÿH¿û¥'ü2ƒl*TP“È“``!â5&Cð* +&˜ˆú6ëê†`ègðþ¨¨ì•ò… Ÿ` €.À5z¦´Æ™à鋨5 BØÿ9­©=²õ˜i1Kµ@_kÀöÞ^§Õüj„ ù°Oj­Î6v¶[Ûüí$fÌÿõbïa»óp¯ÑøM 6þ¬ÓyÑn·¿ï|¿—´[1{þÔh´âïÚI›½Š'N‡í{Ø¯Ž·áÍ7ZHÔŠî« Äd;ÙM¢8ü$làæq߃BŲóˆ àa6@M“l}6º`#jµÂ¼êîƒF{¯óÈ"¾´®ˆp=#=3ÿF€´ý‚44Ì,Ž/bþ «þ<Àb™R§†ß Õjí + Àýƒý?{€µ_;ëØÓè+ð’D@Øõ£"Ò*û׉µ¤äÇ ÜÂWØÜ +›þx0ÖbµŠ ªìõ½üJ0€EëÎËUǺjí—“5 ‚Rž‡JlÀò¾‚zÕ#\¨Ø"VÏ?We§al€€0 Q×  ôÓYW ¹É˜A,—(àbÓµZPðÚÆ¿ê®À©è•ª„.°žéHJàm€ñ…n À¹i  ûX=5à”¹Díbkàå±ü¹bQ£x”æ«¿¾|™£{\˜Ÿ¯^._ÆZù7U¤k„ø2ñ…ùòÐå*<÷y8×­__®^Æ +ΙV­ÛrùruºŠ5"coœcï +%xç_×´³O‚åjy^ãŽàæÀ×û†‘P|{€ôµèÆß|–ØÈ'YÁÓ…Sz¢ùjyÙÊ´M(b®•ÀãùtÖ•~ +z šxò>0 + "Úhîü»Š#D¿›h Bø6b +àÁîãÇOxöôåK(âÿ‡×/æ§ãoöŸî€Œ¼€Î=p ´¥½Nh‘OcÆAXÍŸÍç9ˆ‡þ‚0Cs8Ÿ<ÿ¾Ógΰýⵇ¿îl>‡ä9L…¡a¦ÁTPc8¯À4* ’âƒx#ƒxT8¸O-æ=&Âe8›ÆËt“ µHuÀż*1àH#^º^©^‰£X^Û`€kŸo¨"À¿+ e@%z‡Ä¸ð¿P+šôJLdê8qd``ÀuÃCyÑiw^ÿ¢ý´K«QÔÉ‹;Ϫ–šìgÉ^»ý'ØòÇGIÒþsgxk·~f°·÷´ é¼x‡½½ö£Gï’äQ;þ¦½ÝÚá $ íöw¸Ì»_8—töž¿¸¼Í±8œü§MLu/nñ–NNúþ=¬iòNû@)ƒ€}1cIü—ýò°³×¹xÔN"q—Î ÷/ìÙ;ƒàíõÅX Àþ´®ð˜“Þzôiz7i]6B‰˜[pË,°¨Þ;}43P¿“ìk `öýÍ¢þîÿTžT2(Ÿ +à; äÓ8€é‚4RµT €–Ÿ{¸|·C7`”(E¿-- tÐ"CÏË£äB‚<áqÀå3¡5ŠêÄ?Œ¿(ïáœ:a'Ñ4ûÙ0üÛ)(*?rm¡Ãá³ã‚qníU“o, Ä]²Z‡ÊQI¢h^ºž¤'é¤1€,ØßÀÅ>Cú‡†ûžü6~¨.PMÙ@Ñáù0­Ö홤 +`Å ¤Ü%ü÷Ü*åm@Vˆz0ìt™¥›e~è÷¼›tëà…®:p¿•„»÷Ù%Ø£ÇOŸB<öüé˧,¤Ø0¡„5ÛþÐø3øÏ•¿É°FA<ÊM›†Ô +€ßAÜÍŒüo¢*z0×Ìß6ðvÎóΜ <Ÿ èÃSB +°|^~‚!>^ +‰F`K'—Ù½(q¤ ‰Æ)‡Hê$ç_òЏZŠ¦Òˆüšr2ý)ùï:,ä$“¿Ÿ,˜°°03 ?à〦¨¤ˆ}naaÀ ›–t¡¯Ï;Æl³ØWˆ™ƒE¹ßè/o LŠŒ [Iiû²D ÕS!@×\‹šñ^¹Í¢>Ö|Øøõî+I4ð3fµx{ž-yqx @5íìï¸Û ´Q Vð +F¼J“ n÷Q'i)ÂV\ÕÍSI¾KþôscP '©DÍ{;óxT *åº%fzgTü¤1@cSªÃ7{ÁÚ›ÂÞàžÎLìXßìrùB æÑ)\ÄöËåÐ}~™è¯{é¶ ­YÖÈ `?Qs`u úR-Øàå39rþÕ.ò“è? -ûoTÀÄþTŠÕÑgvø÷&—`¼áî/ÂzPCŒ©Ëo YÝc›aöâeÖÝS‹A1X€7°ÎðdP‚`Ua V1ò |b…ãqsË€z°g€½‘X]ÙÌ>§mg+`ÓTß2xíé f®¡ÀðÏ,8 à8ÀçÔŽˆÿ* ÐÍ{1|S5ð3jê·"kf o$Àá" €x¾¿ÈáAÃ8¾,úFïlº  +G` +€…õó•;þëu(€tÄï´ ˆ¢y¶ü#„¡‚¥I¼µ`gï” ”b‰!«¦†@Œ¸è_µÚ!8&ÀR€ÃcÆ’s2 ·¸ €wâ(úáúñ)ø! +ûÛ¿5` {ý<ëk§C6¥·nvß©ƒþ3 €Wç«îJ¦~1 ðg¼‹¸z°éon”•*»kÝ}ð`÷Ñ£GOž?…xõRŠîß/éP €þ+,ø#TþlÈ=¯úÚÐÙf¶4nžg††e–øÞ$ûòŸ¤í8U @°G@¢è/P 0g\Œ—!þ-¡7ÀËWëvˆ‘1&ð–ò‹¸B‘b‹†“I5wÃÐöÓøüóÏØày:»Þ+Þ·–ÜNƒ7 *ÈèøÔ\Š( -p< Ç\ À6õ9>ÀÓ€ØÂmdƒ€0¼.€Œ«Z)@•9PðIµÆ1|XÒ‡„QcÿþíVÜ)Gqu¦ï'oó_wÏúyÂíêž›³Kñ‰•Uöòçå¿6»Ýþ[b˜"v,d²ÕâÍ-·ÁÞ_Àî8ª-@ˆ¿Ýuä7‰âò‹”¬X‹e¾DugéÔãë ß¡{ÅØgȦð•ëKÄ»™­`¯¶)Ð8s” +@!c3¼º8€l‡výBq¿ämÅŬý{|»érPcM »Ût÷)ø?+?{òò©ëäÐ~ü¯€øØAúÏà?fì¬üÙ’Àøö0[Æ¥…üP6ªK¼Sƒ£À?Á=¦.AiøZ1€QÿŒ¯b@6%Ä·Õ1µ1óihN&Ô£”‰ó¬Á㤠+Y@ÿŸø°4 Ÿ/V/Þiú©£TÈ>×þ=è¨~ñm˜èPGaí­b™Rèƒ^ ÀŒ~×ÿ§X0!…ˆ†)€ \ ç¢+/aL«9 (þ·âmvÊ­Î*hˆÜnn9' èÀwâör×®®¬$‹c!®Gß—÷T‚(±‚xL=‡ó ¬„)ò{ à°zG´p¥`í¨á´ ž³C€;‘çtCXÐýM4ý¦ÊÙÉÄ៫îJWöíQb†”MThDq7@úR£©ïõ¶"¦Ößïï[N58(c, |Âz€ªüÜš½€ €ÀúkŽ#PRüZ`ÀÄJ(4ͧAΑ‰jÈ"{þ"Ÿ= Ã<0HëLpÓ5 ºÚ÷„•Ba%?Á£f$D$ Á< ) áFJ`â&üüÄ%x,€€ ã0SACS)±îð)UÐØ@Äÿµ)…ðÞÌpæÁ½|æ¡”@®Í@,|Î +ÁDú> °±ñùú—ëë_\ÛøŸ_~‰Û÷bÆkôCÞX + _×}è2€ ò!Ü™O'Â߀°2>Ë`D bRcËý½.Rb°è-ànë¿.ÿ&zTm<ÂÎO9äîÖ¿>LÔ0ÑÅñ1àÊ` Uôp¤¾Þ+dRVâOØï0OüDñƒoÄŽ‰Õ@1*€vÒJ¡Ìï­Qà£b@QÕ À»$hMðú°gAµîÌÍmïÊpÈîbWãº4ÄT.OU¢øÿ² ¢ŸøÖ¢€Cõ»Èòò•Ö•ÖÝÝ»»€?{Æ6ÁÏŸ?}'ô†_…düØbQ W€y}XøÃ«Ÿè+8üÿø#À†| +à ¨ ™4Ǭ•Ã`i’a@?wzè,Œ±r=Í6 JG(³#÷ûK¶Ê©cçHGÀü«Ç?ÂbxDUüÜÀ8—2F L˜xâmAJøDâ&†vD/¬›ýÇœžE¯Öå nººÀL¼°0ËáÂúâN`uãÚ—_þÏ/¿\ÿ²ñe=ëïX +`* [ +ÐÕ]à°'_U1 1€ ŒJ,ü N?|ló• "8üÍ{Í­­ïËåêö²¨]€ß6w&©G%[aÝk×v¤`ؘ + €0¶Ê™ÎD@š( EBbj‹$´«ßô1€wh  €‚€í¨Yëbö\ú±Æ_­›óÎ`a=ePÞ£xD:…o;Ù"€Ò‡~HfÓ€¬£ünu[üyÚƒ™Ríîy¿HðìúÇÞ^jpØ~†”ƒÚ•+w·‰v +Èz€øhx02€×lHà ð¾,?é€âÿðþI~øéoŒJØ>(;5ø+dé»ðï%ta2&'A&½ÅÑÜÀYáŸIÆ=PÞh5Æää8Ûû3ËËHÊÅ' ¡*<Ÿc ±ÃÇ€ +ó$ï9z°~Hå«sáa¹ ˜~eU 2€}â_àszs°ÿ €À<è5¦¯”ùÇ:PÌÌÌöŸøòËÿ ê}| ¸\ßè‹à7bõM¥pH ¿˜Èwà畊I’$Žbj`¼ š€2ŽôÓáèàɷɽ{q¼Í1Àavþw¾ø¯{ÿÏÝùÆ‹{1|úhkë! £x Ènâzßw¾mþùE«ÍV@êœ-7£µøÛ¸³·Üé´áIHXøÇI}ZÎLªn¢p»íÀÏt:°«ñ·pórçá·ìÇ$jn%P¶êªSù2aí¯ñå‘ÑõïkÒúD;9GüÅ!îršD_Ùþ®*`AÆþ¡¸‰t¨›þç!ú÷ÞVª +ÏZåžw‘jµÖ¨µ¬?xÏŸ~¢ðãKE¹’8ÈÀÖ[ès«LŒžÊà¾_ÂÇ/•D[ý ,óð DÁº + ÀG×QiŸX:È[•9„XÄ.A Þgæ¬PF´øŸÆƒåþ¥(z‹È3Z`Ó” +rQ6pûNŸèc¦ +ãS÷]YïS”.€O˜ÈHëÿ¦0׊µ—L7ªåòe¶ã/åOç Åb©TfSüyD6ü¯5Jä}]Y¾\­F8©±\½¼Œ-îC*¤YfwØ@œ•«ù¹9îñKåÒ¹b!ŸËŸ›Ç1¤Ä7C™ÿõ,0_º0?;³ûAxoŒ˜ pT  ÇZ ~g€vo\㣠+å21ŠWÉw'Ð:@¾f@"Ø›XÈ"@îw'v“HR áAË +34º—Ë2'"Úo%µŸaýMÂ+WØ-(+qxP|ž¿$x +ãOÓ +€‚]¶_%À?]ºÐæ€ü“¼~ w+70t†E¦ æù\at˜Íû1j«£9ŽÙÉ å†óÈÞjÀÏæþ\-Ïy¬<8”;ƒ4pÝÕ!®ÂcJÄd§ó9‡èx.‡K°£h›"û@.åΤ1 ¬8ü#?üB>Ë­¨˜&}™˜ôÿÎpiæŒlnîSÀ—§.î×ý rc“ýotcý  p ïúÿ\ÜïIc6²³÷Ÿío#_U£$ãch·Aøãä»jkoFˆ{öÝðö·Ojí×ɸ ÀéÃlvr¶¾ýB‰ÛIµAhÆ‘Œ}AKOx¸d{iöž¿xý_˜ðÁ)ñ6&:"­ÎŒ’V+NþÔÑÍ÷3€wm a-vLvódoïÅëÿób¯¿jÇ;ŽtøÆ©c€¯Ô^_ µ¼MÕ}*xénGæÇ‚¹#5 Ê+Ü'n¡£¿\¶ßJœ|w©Ukwml°]õ ®z@˜^½fØ `-bŸ.>æ8“Ϙ`† ç +#Ö“aÃiÅ÷+k•%VLóÁÏW½Kã°iJAþü´èOúþbKlÎ.Wd«`š@ø$+MK܃?y?ÙÏ/.8<̥畂%v=8.+A ×,sŒq\dì@=8wÂV>OñÔ_¯ÌÔ€rß"Þi—×ŸÉø<íÚ Ü€k €ìæí73àÿ¢~*ëSø©lÞ¸äÿrl ÀÄ逨ÕÊ_V޽T.i>HÔ®²ò?רüÿ3Füvæ_°'Ð(ª³^»“¬²áKóØZ0ŠÚËU€YEƒ"_%o,O£Š+?À‰]©×X½¢þ>áÇÍܸ"ŸEíò6[`'®Ta° ™ÌýÛŠ7F¬Ñ³ZwUˆ9¤Hå‹l¨PMb<–ö‘FA‚ªª4Ýãc­©F•˜ÑÇzÆ{ã«“À ¦:_ÃÛh¹/‹s“C«]3i } +6>üÃE)—àZ +2£ˆlhE O@ôƒßJøYzwÅzP! ú¦`ƒ–²A°hÿ¯_±s@¨Ø~2|Y)Á€þþ8¸§:|*ÿ£øjóC¯œ jBÞ¼Êøy”É&|/§¾ÁTúîÀ,iç^b`iÎøcH@@ æñžÀEÀ­wÜÌb6q…%€4×\ @„åúwÔêÊ$ô)²" Ð0Ø›·ÞÌ.¸bî Éaõø¯¥¸ï +ë¤Ü!|X@3R,.QX@l—Û*¬ê!Ð5“ò_Ö¨¤Q_‹ÖV‰#‚Yñõè/UPøúK!¾?Á–ôÕ`Czà e„ãMíÆ¸îgØÓ™çX#i)À|;’Ö¨ì«`é046êõå0²+Pëø)ø@µÿlÛX³}»Üp—–à +ß²é3 ’à*áî‰Á[©µ–íúPVÁµÔa‡¿22_Ìèz Ì-îd࿟Xüq¿æÂ:=?[ªPÄ¿úÀlˆÏsÁ]øñ§S@…àb€føÅz2;åD¸ô™‡Y‹ŸU€€uŽ–‰=#Àá €Â€<ª '½<²˜ðO“‡åHA: Xþqˆ/f]§vó9Q(áæ‚xøÔàà`_ VØØ–Íþã• ÿx‰Æñ»¬  %²àßpâàsóÖÀÀ> °_þ`î äü‘çˆ ¦€SZ±þ8%ËemSìH©¬ö܇c+Ö°JXýÀ=ꔓ¦+FcªÕúÚ[óð8ì2¶¾¯†q³žFVƨ¬‚›;Ië±.€DpåÅÙöàÅr›u‡$ÜÇhÏ'k¼Q¸R©Tê„<µŽáKÅ@…´WmlEuS>¸—.icÛI `+úk¹ÑÆ%„¬®ÊÓ"êëYr1€™TØÛq€¯Ù´F”,…KG:ðá̇T¸ b³º6ï¹0C ‘ê~0{[ @üÛÿñîS™ @½J@à àÙ+(Á¦žL@•þ^³Q0cy Á_<€ÍƒSEµr€Á\Ž óº ¤åV>ÈÏÃ9d^![=ÿ\LNL(ø>ˆ ð~!|Øô©z¾ã^ˆ6‘…Xê0ÅsÀ@Få¦:-¦0pVÖ)ÕsS¸þ ý3øï)xÔ|«*ìã ›¿#þ¡nTûÀõ 0€ +` ðßϾøâú›7ob'UÀR€^eÀ+îTÝ#²ÜÐÀûOvøWá×A­Øø¿õO‰±(êÔà±j<Ì–2Ð,P‡2­¾× ÅÂ2;p… €G2`9ɉ Á¥"9€'N‡ðНËd døÿM(€&oºÊÑ @û z¤‘ðÙÊàûjÔ‰#á¿Æ‘pˆ~nŠ9´nõh¹õ°{ž*éÍi÷EpKˆOÆ„†TqW {ñ±w=¤J¾g8Ο6m¿„çâ2n‹Â›-Ì|ȉ¾¿ìÙûAÇ‹þÄìgM>CìàÁÓ'O?aS òÀŸ£ˆð3€ï+Â^Q¿—ª@ÜSdÐa¹<¬¿ sλ”Ë(Õ`‡õpê ¹æ8ôãK€`q©yås,cd¹n_6Ìù´‰vxGå%¨1e¼Pø„d¶“%îÐ%HiÓÆ5 À#ó7'Àþv +^cÿÔx«yÅý ÿ~ëÎWÀ½À! +àØÜèì‹àbxwLøC6nÞ$Ë ì«`¢¶çvRÝ ViÝS ËhSÃð/Ë !Èú:„;!ÞnDÖÄÃçS*¥×Nj†z}«íà]€o§€ Ó'þ?¶2ÎY!ÆÁ¨TÀU°Ô1·¼î`@€dÀ„˜%*ñÿ žB>™ þ ᄸçå—z €íx5j®óÔT‰@ˆ\æxÞ§&À©€ÂbÞ€\ 2 '°ýv)8ÅIì ÐYm Áõëb×7ŒÃon’ÿà üSˆ÷È—›n!q‰¼´ysãÖíÍM| PoŽll +ÿý`Ÿ pC À“þ×o’pÂGÏœ2?•L°j¶ùb ÿ„ãu)¯¬†°¸l´Ïªó€,ê4;XâÃ=˜¹H“ñ=lÖ“j”DÿêÃ/vŒÐGBB‘mJ(¸…&îgPM Ô2׌Û%¶Bê ®Ýžc ûÁÀœ¡A9ÿP:‡â ÞR$X¡SÁŸó $YhW÷ðË›QS]œé¥‡üRió}¦bÈ5ᦛvZtmð€Žq-e )ú9ã^†[Þo†š†7:±ÀÛ(çÉÿ|asàmö üàÉãÇž¨6ð+6œ\€vŸø§2À*ÑÏM +{åX¡´D‚Ì Øràyg‰dáßP9ÎÐ\0T²Ûùrí°Å Ááý\ ê.o ÀD6]N€ßm,À>ˆµRõO^À˜‡K0í¡S÷PZ0`à¶ù]€Œ£à¶€†ø=0/ àb_˨faý +×I‹LŒÜ$üSü¯[jÁ>Õ}1€Ë¬He2€ÿ‰ëªc%Iæ£-ŽñÏ-BU + ÎÆñèèÀZ“8´Í+ Tœ€ð¿.‡5ÆùÚ̱$l¸‰ÄUÅa;E}_ˆ×XÂ{àºËl‡LYù°Æ1î^8¾Uzó¸ +ën‰à8¥²Y#…~@˜,7Ø©©œ ,Ý[ƒàR°¦ ÉrA¼X¹N_Šƒ}*n5Ýe ]@xj×°Hr +•U™ì¤Ä~ãÑâPüó¥Ú¨ÙÐ`P(ðü9Ë_¿ÖÏ­&À€9 +¢øgV€ÒóTU…ÀÀÁÓ94PÏ €¼Â’Œ;ŒëðÏ +l+ÌÉ+ŒÔ´îÂ-«ñ(™¾àlç%ŠÈhZ½ÂH@aÑY‚ðk ÿ׺ pA¾º1k濲7ë6 Ì?0Ò ?# Mè£ý1 w‡$FÄÿÍT\]¸:û;ÞûÚµkŽ ˆ„Û´Ü!n1v»X` ÀÿÈw@“d.rmzœ¬FpvxN“›J)´~j`°ö`‹Í€!+TdÖßD¹D6YB’„Áž††|²óížÄAYRo~;o‘æG\J£ýŠÔ£5Þ죹&µŽ1ðjˆ+”€Ô:åFwTâ^š ‹md˜ù>ó££êébï¸'™=Ý5®¨l¿ˆhÍ«²€´4%ÜÑ7{çmHøW""þ?›ú§ÂZ^ÀÿýmVÚ}Ì €ÊŸ°9 u +ÌQ‚`úŸ‘ôŠï°ü9;~d4€jABà3Hƒ tÓ”ƒH¨MoP,EË­/£Ö’ЧÀª³>Óô¸;Ó™éçuÜŠº èàç"Ðn6ƒ"(âæ¢ ¼¯tjpã‹ë=Ðe ÉßÒ]ÕCñîÝ&åü\È! àØt„c} ?@ÕÒÇ„(ÅzÓ^]@bÈ×6~ÿû¯~ÿûßgÇ\ÞiF2@f +ê0ˆ€H¸ƒØ[ÞÐ!†õz ¶ò¦©':ĽŒpÜü6®ÆkM @.À8.OÈâ"Ä¡5ö•Á7aå"¯\mï•;rO ÐIgn+ZõÅPê« õNXÁ w§7Ó¼·“°Íâ~ Í>/‰Ø¾ÁI»ZÝûw[!ߤM@ nYdçÜ8ëÃ;ö.¾±/‹uGK­hf [Å%†˜OtQXj¸„¿îLž&¼àÓI8.@ßÖ+äÇ‘ÇGp+‚œ¡)â|‘‚âŠ_Ècbn€ä;ËO*€Ù™Ù(¬ã?ÇK¶²?¾xÊŒ±ø® €iðÁk¼ØGúùP  @ÀM=±<àŸrý‹/®}%Ðè}&ÓåÒôtiznn¾ÈúØçJ¾jó—JØ¥FcºVŸ/Í—ºƒõ͇ïW9Ä_£Vá½7؇ƒså¹9Ç|~þÂû—£°Z.Íá¥iÍ–ÊãÑù¹ Ó¥ p +§y7lŸ¥QST¢jƒNÏWѯ¯àæ8O ûÏ—ÓluÀ{óÖê´ö»›_Àå9®àt5j„—çË¥ù9ü²¹ °›—ÐâÂ|©|á¯ËeÜ?ŒÛóræÔLÏðe À”{WÔ¡/ÿámsHvõÁ=J*Ý TD?¾Ò61‹ðlž#Ñ­Äÿ/½iÏ…cm¾Í +SóZ§Éà6Weòûĵ¸øå±Á¤îB°2àãçOž>þLý¼~FðúÕk`¸g ,w@ž€á?ªjz¥©h?ÌrÈ1óŸ³ùÜ(Gü<#ËÍuWÑŸM˜– qZá,Gþ3²=SòþOG9¢à R:­zB¤lÀ!‹ÞÙQ(¾d€€1³êp>þ¥nܲOþÔæÆìq àøÀu­Á›e}11w@"ü³ 0e†˜Pì€øâ‹/@¤zv¡E»È!ù’VP„Ö¼T >âP@ÀWVç«ê2âÊ7q¼›S0®u¯%»8/jÀo'w£»1.[_‰ÂVcÓËÊxªÀrïMŒåŠŸ´°dàâÉwš(ån«!áö7f¼1ßhÐ3­í$yØ®¶áö7Û8ñ~Ôjoó†vs÷+ÚO“äJ þ³¾EóUü&p +6WØJÚa+ +£oâ`,lœ´·ç£x{›-L¶…z})øç…dHÚ’×Þðyk/@Ðs&k/°C@ùÛyæÑwÏã\“@.ÑÊ Ë’!y[-¹¦Ù[¬@gpÍ혲ÿgú†õt—mú¥b}‚Y!à#UxöôÙ3U  ùùòésUþeG +ª‹ 9þT?²+€øa`àWl¤3$€çrÅIÙíKãÇü»“ìŸ2qÖˆ+x%%XdwaHx^>7V,ª€ 7<Ê<zr‰ÉÉ Æ}ŒÝ~æm'ðٰǃ½±1µÂA°‰÷l(r<\qël ÀD €.€ÛÞÄ{%þóSXߘ=qýæ1 à˜R&‚mß¼ =~1[˜þºXO„€_E¼­˜!€«dÀ?4Ù†ÿ¯vÁ¾í“|Âx‹ý«€¿ [`FP át¼MèX¹†ïGn‚{…V“ÖÊípâv G±ÕŒ›íö2ü +&¨+¼©`r¬0„«u+ÔŒã{n"ö%1îDBÁþ‡¡6î7Jô&Z1T+ïE’ZÁ%q°=1g7oðæ¸w”4£5xûñÖÖ^»Ú‰ÖX#@åõhÇõ@§‡·àºÌï2²éâ Õj@£ü«¡žªvåó"þ‚ºæD.+ès1¥ÊB\çîÖa·K;{Æž"@UÁ…M¤ vÖ¢»}Ì +çTÙÚ²ß›Šƒî‰Ç’fM€û÷wwŸ{þ _:nÆ€Ÿ(€¼dO!´ÿªÄ@€YŠ,­D°´Š¬âù{âÇ ãCð XhØÅ>xЛÎ{“~PÐtñ)(`%€k‚Ïú8¬(¸4IaŒÀj ãVðÀjÌ8Ÿª³@^Ó`tLT +JA­tÕ1°õäU(¼7ßÀ5Ž@[…Ÿß³ÓPøø: p*—£"± +>êWØg1 `Ïc’á^Û¹RžàÏã"àê U€ Y}1‰\€  ô(2¶pŽgGÇxÂWòÌ2 +*Àí—X%1\·Õ󒘀›f¬¸û4AãÂû#?78œ/Œ¥À÷«÷ÃЊÊåÊZc‘|°R­DåïUÒš1.U‰Xi%\ðr=XYZ2°äŠ +»‚×» +@H¶´Ó`,dÝ=ìV4ßF+Jj!ñ+òRC¡ý_ ë1‹&©b⤬rL– ˜h6Á="ÖSX[‹›QsÏGae~Êì f®`ÂZXåÌ63ÒeÑ.W;œb-‚TO_vŸûºW¤ji¸‰ZPx¾t Ø6Þb_¬èt­ºcÙ’Ñÿ“ÎÊÀìLM°r@8"„ÐÐY( +ÀgÿÖ_ˆ) û†ßYKw$?¢VüÅ”L »®„†z’U÷'½‰qöŸ9>>¾8:îÈl³NQãO +&ÆÇ'ßÀyq»ÑiÖÉw 9 ÑÈÈ0[á"Ð6Pæ[Øì1à È3 ` `ö8p@dÀ:ì¿Ô„U€ß”L €ýB$à9Ð-È€;›–í%„e9(ÌÅòJs¬³”Ãð\ЇÛuPþ(X&1Àá'• + <ðé/мËöc¹FÈQRÌ(-¤R!þ''¨V‰Ò>ù¸f“ÀLQm¶øuœQ +Ôz^JR«~£²D<н$¬sdÂîõho9‘.À¾5ìSEÈÚV¤q ›ÍÎ|Ú©*CT1<¾cSV o­¾pÛ­¦âÝ“­P/S=Dl×ûÐzsWpÀ‚€3Æz¢Oy›•®ôö`­WpnVüeà¿ÕjíÞ}ü`÷ñÖ`1à3ŽüêåS¸ÿìä‡×ð^¿úsÕÿ‘+Àz@¤ÖO@O„Hv + ÉÛ¸=®?0Pp ``Ðg]ÜgA\€q1ö€3¨úÂ8 '`Ò”À¸W|Ï­økøœaTɺÀÈ›ùÏåNŸQ™S¬` +€’ÏÞ8’ÀZ› +`J*ôèÅ6ØÀ ëÿ P¼^Öؼ“U©Œ{Éb,EïŸ|R(p:†å÷Ù4c)&àõ´»Õrü Ìs\¯¬n5ÉôüúV t  ¦c¥\dIõì<\*¬®'º +8« ›p]5Õã¬Õ(µÍôWùxÔ;:DI\£Þ(@<¢ä_q=lÖ›ÿ›`à\n›·ð)7!À<ø< X_ë°‚{ç5«àÿ T³RæªË~;ɲZK-<@¼»Tܤ`"¨‚®’Sì' àaÿù™™YÕ+UóÌ%¶qüÊE¶K£`a+\ukçýgàï$eY=À°±Á=fÏÀÀý“§Ï`÷Ù;(‹üYä^þ?ëúæ, þ¹¡s^½2ìÿŠ3£øÃìýËS2<21p²ºóŸ¶±ô¼€kãc ÷æ› ¦—`Mj +ñŸz÷6$õº·™ÈÇF xØ1ùiÖ2 +Ðe” ÉîÅhu» +€ÛV +§\û2 Z+G2€…Ô¸pS*Ýé¹ðö•ò¿€¦þù z\zÓJ} €ÈtâZë@þiÿ[žµªþƒÆ¹FÙ_,/À°T’0ˆƒj•Õf¼u~ˆ9Z\8Ž/ù8K‹ßmx¼R¯om!|ªö=t'€óiß1Uk)ü«aÔ˜ÞÕ½tÄU⥀$ÕFG+;aˆU’pÓ +¡Þ„ÁoÖã¸Ì Ä +LôÑ(Ù¡¸×Œ:b†P¯`²?Œ£>¤@ø¦7É[NpÁºçeëmç›þÓÆó,cEQõ˜S ìS 5`?ÒÍÂeìNøœŸúg·qþØ=ç{{°Ûnƒê༢xoÔß':±[Ð+WÔ'àî2¨€—* +d‡yÆú€Ô€=ðM»ÿò5ëý÷ ÿÔ R&p†€~âŸð2{®9E8u €€µ3`þ €qºð²ð.R8¢£4ÿcÞ8ì‡aÕ;ÎÒ(dg{jÆËŸõFGÄÿ)@¿(€ ¯Üñ…ðÏ

5UCÀ^„RÁ%øY /^ÃícXwmíéüVTnÓ»·&Bðýûkþ¶‰ä[«à[QgîœÃg Áç&=€p…|åÀCÀˆib×0O’@kÏ]b>e:{¨ðuQKHÁ!Sçg`02"Å/!–¹yøÛ«=nÍv9…0óO]~ÒÓr­ÆúwÜgA ‚ìŒ5ž?ÆZõ×X<ƒÁ—.óÿ‘%€R +ª”;•á3„»piF›5vH¸ì¡Ÿ`D†‡À—}ãÐaLGBŠÏî2]ÇALGÉÙž€…ü ð)ÚÀhbnDa€‰\a¼ ˆá_ øï*€} `¦Ë ÿ&7¬À1œtû6QÈD¸tÄ×} eÈ|ªµËrª‹ân €€®ÚS†ÝFO ЫÔÃÿ!1€e•ú”å ó  Mãx9ø(€#Ü®LN e–T 8±§r‰pmë•J=žN°c ²ŽVad2Z«¯‚ ãÒ¡Ô(ªÖ`ƒùÒ퉨ÈJÛ¼›éS ¤¡h}Ç=lËÇ6€˜Î)8õ­Ø€R±è‘Cƒÿ+@5¥èCÔ>fã#࿌Ÿg€\« ¤Nðå + …š6iî•À61£ëÏ=b¶CÈÿ@‡æ8’05ßµ,ø?÷6ÜK|öíÁ×íùgFIOM‘·¼,—AÚjìȪ<~$ô?yþŒÅpž¿|þ”*@Í‚X@6·¦žÄßêRü~Š‹XKýTœ…Jð`°y\Þ=ëXâ0nƒbHT2úd´¼†çZ‚_þH¤ÿ Hš¾ +1Ê2&‚ èâ?ؼó…И2ÂŽPs À•Æ©`’›ØÇ+ܾuçëŒHÀ,s n~¥€EqHÀ}=]4üwC€ÝZ€È­lÀ! @ž OÞdU0¡¢b•q62– ÐÍÀŒU(ËÏ­4뫟V>—/Ⴢ3ìV £sŠ€ý¯T–'©rcK,!ÐÙÁÊÊŠ¾´ý57F…i@èf%„­¿\0¡ÿ‘2€æš\Þ·Ü!ÿg! )p @øßϵ„ÃÖUûuG1ˆž2l)W?CН42ø)°¹è† +p  ß˜Yø `vö"p¬¯ ¼û˜Éõùá³ì`q +á_ðw€ÍäÍ» +àÎ&€³¾€¹ß Ð߃?`ñ#˜üòbX ¡ ÀÊå¨#ذÏIØ(%Áj¥ÂÂ?8õ«Œ%2{Àÿ§p¢ä\~°Ä‰ +`Âÿ*,QOØ5€Hp÷fü1üþÚÇøþå쳸bT} ›)côoôçÓ?=ð©1€¦1€{À~ÊZ8  Zý¤47‡ßXmDÐhi ÀšîgCfï!÷>ÀbEíçŽ1‡1|…f‡èô 6Àæ¸&cD·}îãA¥0Ñšvk'U€ðÚ£î'4á«* {µÑé<Ö ¡ÒôØCˆü•pKP©mY(ÐXiÓ,ôÑ6 +få…loÐÄñaÙö®ä'&&HôÇ|¤§ï€DÖ#‰BA#K<>0²§v¾£8K.¸A·™ŒWìÚÇ ‘žus +Àäöm ›+b@f¿°Ui$Ìpc0Ðë®øg‰a†8°!Àí“8#ƒ“íiU Ðj²!SÀÿXûÕ Áüüýà_¨`{`Òör4Ëþ"&v ¡•§äåvÀ¸Ì,ͺìÿÒ²s¨|¨¨ÁÒÒ£€t¨)qŠ1J x7Ð06ß +åÈþ3€”ìü¹ì—JsPYØöç°=ýUòæÈa°¡V¼ÆtÃ.ŽÄþÜ‹1çTå›~‰æ~4 æü’®„“±»XýY9|åܹâûÀkp2€³ UÚÃ>_ÛÀŒ¼ eJÈ^ì1»D€ +€ ÛB7±ëðK‘AçÁ[Û¸„ë<žþô[@æþR^f)@‹QÀGO°& †xúŒƒ„©à«WlÈ( )|þ—û—`Ñ€UkNÔ b~yOh»ï©Ž#49 ÀcGbÃâ¬dZ"E?× |u €Ò+(äü3à gY52èú  þÓŠ¾ÂD9ƒ]r‡ +€Pg= 8ra 'Õ<éz@ @è†Õ&P:à¦(€.ÔàÀ¡€UÈ0¥6 þ7ûm{èË%`©&i8(Q1þˆMø‹E. s!‹¨‡MÆû!W>fxp —ªã4@e.’1Xq¥€…S#r5$+uèÃ/¼X| >eŸ02Ÿe¬ñSû8¨•Ír©ä//8ðë—<<Ý?•.-CA•Ë%¿4]òqr£ÈZ‚ËÁ2_¾©JÛ ásR*wN#SSˆ”}\ ú ,§ß/¾ž>…w†ÈÀÒd=‘2Àš ÌM ü¹Béʇ=ÀÞ4Ãú²ßîË—ï zw­o#³Sº*@Z€qfrùìÎpŸØ„?¿Zkxü$€íŸ>{ò àÉ3VzÊдü¯_=g?  æþ7ìc—„ @X#¾ ™g Àé#° s<0HÛÝG|õ 0 WäU§r,OddÍÜ×Ï[”ð´î…ûŒeØ2¾Ã°¦Cx¤ÃtêÔFÿ°¾R@ûæÂÅ,Öjsö¯Ïœ¿xÕÐ鬾VõÁº4@ÊÈ„VäP¦ýŠÉx#P§,pþ]2Þ¥Khÿguçl`ó·þuצ«-€}FpáÐø8IX?Ž‚8®«®?[òlÅõ(®µ+ FØ“z=æjÌA÷›÷š›;ÉtÂT•J³€øÁÄxn wK¶âøüï]k ô]RþñÍÆ¸Â‰Àü1˜@ÊJA™%T—JËÁG—°> ÔÁœçye\¢A€³Ø÷CÀrÊÊ]€«ƒ|Â,N-S›ž.ß¿‹m¶œBÀ-n*4›Øõg) °¡>$ú±ãÔ°r€D Àb ³dìéÇ} ÐÚÀ[ݵt£w’º +:JôC¤Å»È=¡‰øo]iÝ¿»ËR€4BàSL à)Lÿ³'nˆ WàXƒ ýÇ6Ø?<~ÑÀŸ:Á$÷«3@$fƒ†Go‚9qb‰CÞ¤çÃÒŸC%¹çaØÉ"KúðñîýBÉç€z€ï)¥Œû‹A°ˆH?9™ÂN!¾‘JI,W< mÇpœé$þ†(€u)€Û,˜é1`l$€ëxÆLï4ê¬â¯R] å8íWÝ ÿ*à)© p¤ À»µ€XÀ|¢žøÃ6ogë”—K0ª0«s´"˜FÐLt °YžCptà6,<(GpÕa[ËXÿ¨Tº„+Á€r¨6a(ƒ"á”?:wnqùs8“æ–݃‹ó‹ã×>®5ÝÓ, `.ÑU¡Àæ{  *PÂ-€aÖVL@ àœcÖNØ€~È~ –Ð] ›`ïOß?7Mœ_œ©€‰ö)L U M…ú²1îž¡éW ÀŠJHqøï2»4ñÌ/¶¸pv¾gú9O70“½g€¥Ã.,ú)®òÞÉJ°¼Üh]¹{›ÍÒŸ?}Æ!BŸ±o`6 +zÎXà«çÖ?(+°Vh¿€ÿÚÜ'îi)póÕ`_óF­ýë³±®À‰C^Qó#ÔØ1*Šo×é"˜WaÛ‚"Öz-}udŒuXý4—Ï{9¹¡ÓHbÝBÖèþo,,l£ß¹±>H²õž„]yBÓÆz +˜à©Pu`iã¼ú¦jí^$ÀÕ@ +Àà®}ø€ùçG`Vk€àÇͲµà©74Y.ÓQ&*=ïÜ9âvqÙF^,ÁàNS+,×X5¸ÒûDYDÈÏru™Z#(?¬4ÀKÂs°ˆ#0½ïá5æÎ œö`BÊï—}:Ô$ªb@P`r¢¿è–h/7ƒòÀ£B¿„/Ç©RýT†nÂÕJ%8sLÌÍH¢€Ÿ€_†•" Î= lò—ãa¹BiAíø—XA%uù§݇t¾v™¹·Ã–¦Ë,%Nf €ÕŽÍ„=~B7¤óÚiÇ è.E:Àöj•9¶+²'-Õ+- twûÁîãÇæh˜ð'løò +óϸø_¿d7¬ +úÏh€tY€÷´À{(—÷Î çÏæ +EZìÂØ0ôò¹3¿,94àÙ³Ãì¹ë©Á¾@¹:õb T»â³€|~x$—ÈçßcQœšJ@g°á.Á.|šz×Àçô©¡Á!Š`#˜n\ý‚(äg¡º )€6B +àƒ©‹ ‚'Ì2ϳÂÁ.à•Lˆðò·€V ^µ(ÕoÈw«Sþû<€çüð«b¸q¶à-1cýÈÅo`m¥H†}öøÃÉùgà=Žç1 UQŽcVËÁN?`Nåæ3ñép<ðÕ(Zá2Lê•OIÖÅŽä +.K°óWhúÅ€|R ø$ø¤Pe]'¸w‚¸Ë +†ûVÙ(Üñ·£èS¬ÂY[¿MÖ"öýÃGáS]‰ðˆq7§‡Àë²ïÈÆz¥`úûä’ê(øòUÔZÜg`2.mñÖ8}e%ˆê,m¨¬ºÂ ¦ôk|´0*|P\4S×Á5¯ZÖùôÜ?‘Ê䤃†Ðxc{†]Ã3H Ãn–2Ó ØI¿8O@WÄÒznŸ¤ó§'® ï”´ Ýë +4w ïpµ“ž@ؽ¿Íª?yü”ãø´øÏŸc ˜WzrzÅäô€{X²nù`…=v – +2%´Â°sV‡è†ÍžÌO` åÀDìÊO}‚Šã«$°ã(b~!ç ça} xœ‡™"7Îá„quÜ( 6’äFÆàm¸«HpX @­‹ÿÙëwnSlÌ^ È67¯*4pç\¿~ñâÔ~ @ìsGFüǘ0 +Y¸ª@"R3 + kÑÀ¾}À”)øÿ¼=u€)€lW@pûÎænß>Ü2@OâçC%Àñ9`Ÿ‚¨„¢Ð&gñ¹û‰ %ì€ñ'•Nõ4ÀaþbX$äxBWÀª. ½H@Õ½¾Gz·ó夳D²ÂRF쪄¬Ÿ  {`N0M‚žŠ3Ù²$s¯Î:!V½,"ŒðÎ0EøÄ@÷31Z~A«,@ꌠÑ̦vÝY÷®qç\{øµN¨ÒCX0¿"YäžÔäktÀ+Û»wï³&Àã@ž<}òœ-‚ |þ Àñ¡TÀ’è€ßšà  ‹·j +Ïó} !ž¥Ç Q»`¼l:ä©//i¤ð^nrLøwøåHXÃH@=¢«àu²|bßU`é[€ä†aê‘—8¾þ8Ë °“†ÎÒ2@>Ô©Vvø_€g}½s +`f¦[ˆ¡Í[„n¸0Õ-Ø…ÿTh¿„ˆÝ”¸8³~uaá6ÃLEPƒ(ž°~qF×ëâÿ¾=`ÀÍ›] &çÙè*2—~ tÈ +•„‰ ;NŒ‚@ñìy¶¾‹Z‚_øö úþ䮉|Ó!]ÒŸ `%@ál`1Æ•b‰yçcK Ý®5y@ €W™¡8À ‹À9O7xˆŠ' ù¿[( sê¡Âÿᤥ”Ù!øÿýíû»`Ož<}ôŒQ€§Ï¡Ø7àK'HfŸ-lŽ=„>°¯ê.á;Ðo5egiÒ)#Ãc8_9c{@+ý1úïçYG8ƒ—IƒOŠŸchïÔêøp´L$À!zfLîÕ%À3˜Èân{i€žý§Ü¾½õƒ¤Å€7ׯ­·ïü‘HÏ2ÎÈx‚ÓÆ6€ÿÍÿ ¤> ;sqa«Dîïx"5€»Öô°}„pó&n%àÀ‚c'ë]ð‡?àÉû`ÁB•‰K—0Ó¢¿TÃ.LxÁ„€¼X#¸ Î0€óƒ/6° +`Á¤Ü2¼`F!GÃOFžóüsïáf™Éê»5~ƒZZ +î _Ù _³³¹Üiä>ïzy.7PØûëȈ·´DžGon¡BÁ2õ<‹¯Y/\5P Ö@⊇S10gcØ÷Ïgc´ø Èï§. ²€3€ꋌ +ÐeØrÌeÖ‰÷îzzÄa«ªHÕ€MfÐ#EuwNXÊ5*€í»­]ö +ÄæOå˜ýþò)½€gp  +4l8Uƒÿ/Ÿ±jðˤ +°‡!ANzRÙ[÷VÏúdNðRÇ‹:μ@nÏ>üù½§X+¾AVj‘§à½Ç*Àììϼ /4HÀ áå9H°á àúüN dí?ñOp +@õðÈnÿñÙ~†˜  0ô§ŠVûÎôSÆgoIð\ÞvVÕŠY¶È{tño`ªŸlκ2jíÀŤ¾Úü<€ÛÂe*Ý~Ñá æ\IÒ ÙòƒâÌ<4Mÿ$;å€weÒ +Ð v„}5RørìEµƒÜák°ç±¬°Ø®X£¿jÈzA`Ûš\ oIãÐÍxÝ|†tÓ,È8rj?{ôaë¯S¹±‘ÓŒñšèå3yn\‹Ü’™Á±'q×°â|š^Ú¯] +Ø¥p @@  [ɨTùż} ˜vërø±‹Ø7—€z ã@˜•¶œ¨”}èiÀä<Ø%xüôÑÓGì Zà% ¯ÂÀgPR bÏåõüŠ ¨F  `´rõ"Àz +@+¦õ‰EÆ«¢sŸ÷]“ ÷·ƒƒ§‰ZÅÀYÆ ë¼•<áa !Æ + x£Žu§î ïúÊ#žBºX3‚À.Ñ­{â±c)ˆ;Þ=êÁ^ÁÂÅl?Þ/[6@ R rfÝöâÃò¿Å 8”eiEÀ.0€SR°k¡ð¿qþÔä§ô`ê¢ü8)Ÿ¸øËA­Ñ¨±WÀííí](€Ç¬ +ôø Ç +|úôé³g€ýógP ¨L€}ê*tÈÇâµM¿r@#Ô, ‚Ð¥.€ ö1>jV†½ +Ĝذ@J$oŽn?“ÉÒçàÖóãú\e0ÇÖLGÓ­s… ˜ªuLu”~1Šœýwø¿ÿýú ¼s2¬Þºýõר¼½.¿=Ë6UG¨Ën;³ ü; +0'`ö* ÀW· a¤@—š=þâ—ÝžŽ%*pèßüC_€ZJkê +þBϺeæÐ;N¦Ïr@ŸÖÝ¥ëVÃ’nc¯L$ôž_ À¤ØF›ûôb ø“‡éÁQ³T`ü±‹ ²Â@Êl…,¼9L ôõ¢Mì¬ +®ÇÚ°9 +ÔðëôòiØ­E˜Ž;Q.ðx9<Ÿ?g‰$§OþxËÄy–ð;ü30˜2|¥³p}€ýõ˜z† +€¥Ò,„¹*¸õÞXwt ¥H¥œüFq°=9ñ—ËÕj㊆¼ËàÁ“GžÐ€'ÀVA¯€~¡ +X5ø%”ÂK @hÿY€å6 û6±ÀÞÏEMÄÊð‚ôƒÀû é±Ùh‘– +éº4@,΄Ð×;ýœÇwÌËJB2<„=liL%Â>,»ç&† ; Hp%vA @SÏþ+oõ}6fa›ؼJpç_ß¾u»Û"[¿!ü[@ø¿É:ÃD-,¼œ‚ÖQ–Þ0Ц˜YèÙÀ€ÝŒHƒþ76n0‘*>€ó`ÿÝx`¸s_øïc0étê}/Àþ8yÊø+èï³? ý¢Ç‰­Ç +Ng$çBŠ>+ëêj‹~°Ä£üðuÙ?Ÿ²XÚE¡{÷I6%¹æ<±H†Hà N´üš¨ ˆý)°R¾ëç‹`&e Bîfìß2ä[‹ ÝŸ˜”ÙÉ0»¹k ë?zòäÑ“gì!Tý„?UÃÀ—O?×€!l(ÌуÔ\Xð§.pBƒ­{ñ¸ôϨ‘¿HXY$Nš~ÐÐ)Tq/¾xÁ\NóÃ8K­”È("X}q_ix=vNnT$ìýâ½î5Øš€9s9ûDð§™wø€o¬Ï̲þ¯¸:û`ðöÆìÅ©«ÎYOy€q€ÛœÁèRW€$¸k©/±[ÔTSëºÊòïÏþU3a}ê<¶Y¿X€Ï0«zÅ|Pú¼î–*€¯ðÜÆøç8»3/ +ÎÃåt±\cJþ[CøWåMáoá¾qŽÃ(:¦™–ò­°ãâG8.Ó˜?¤¡ŒWWì,çÂÌš‡H†8æÝ'+Q) ?Å«{cNa%¾8W,+ôW&ðÐ~ÂÑ‹…ð‰Cxñ¾zù"ü ’u&ÁYcªAÁJþFÖp¨TêõHc‰”ó@:ob5‰dmÙÌ1…MYú +ˆ¤ +ÀJ°m@Pw¦Þ–CÿÛ:þY‘î:QaŸ@ÕÆºNAèìªNðã§O€°—P +²‚ð«gÏÙY0û …Õg¡5²Z@e$É€"óx¬ãǘ C¤#NXhØžÑvç¸-!ÿ1£9„(È^† +¾ÏX!Ë kUf¤kÊšeT4“‹ÞbŽã #ÁˆâDH¡h¿œTYü…ëT@™úæÕ¬˜aaÖ€t91ÙU * ÀàÌÎ,€à¿Äÿ曌4÷ƒñ3耽 ‚°Â&lþáf]€e€R58Ð à¹o90ÒþÖTøS%Xgœu²0Àã ÌèøÈpn|ê‚Ç%§O»÷!±DØ]*cq­©RFuêƒmz Œâ4v÷±TVœ°Ò?AäÁxSí“$ê8ë‹ON@4Ü@… 'ƒü*WŠ / Ç&&£¢WŒ&¨ –VÒÂÌIlOŒSùA;ùK$ìÔpÇ=É>q0¶ÉÌè1ùû0ô›ð¡pÎCobD¸¡¿« °Ëq¬ÙßøŽâ*[œ0 +^¹'àŠú$ðÁšÄL€ þaÿÙ+ ¸!•«pRpqÁ¨zF`gäì§] °¹y1€õë_ð²ºî œ²>uîöÞØØ¸z +i¿æ# ÀÅtC ¿þoÈÞšŒX›’kþRà˜ªÂü/úã¬(mÂ걌ªŒzì|éP™p]µRØA ´4;va0v„õm ÑƒC2,Ï#þˆG”U+5v=ºú+šX­—Ÿ•ú9èÒ5²8¾Uá›29Éz +ô@&`×—FWX±Y‚]´ò ,–Š«‹Ô¬1ˆ} 8H¦@Å?ìáÌ¥••ÕJ½Yç ‡Ðêœxà[6h7üS2 v_ûqÜEöŨ\ @õ âýÎþ;}`%~?ý÷è'%ðèÔ¨x@ÿÿÑ®† +~D ìÃô3`Ý?ƒà àgCA•˜¸¥œ–n‡‰ W>Ê©~ªê‚ñ&–I\%Ø ÑF2ß§0 ¯²£V†'@˃,®Ã¤”aÖü@Þ†`©@ψÑì3­ÒóîT=üà ¯Óγ5 ÀÆzVÌìJ`ݸ™QŠH|±qgcvöƒ™uvB—ø§Ñg1ÀúEï·q“ +àÆÍ/0á­;`]`­$¸]êÿ·§6±Ž~8Ã_ÿž<|éµÕÕf¥Yd{"‘Ýn®Â_ qþî[„Ó,aû1àX€n#•¨ˆ9;¥$ô¿] `äíÞD†Ö­ðœŠèâߟ˜,ùù}¬ù‹"ÕEô¼9ULÂYKþR<ù¾9÷¸;« C€ ~5.(PÁÏ®ÿ–="A@¿^¶^s2nÒaê{1&dÖÙx‚0q—,Ìó‚»Eþý7§€ò®~Ÿ˜ë~bâ—ýå*ëpxÀ»»¨ ä=òÉú³‡0@ØJÞ€VEèÐ%° K'Yn¾ À’°à«ÉÚvg»‡e×Yk‹t¡À‚~w\ƒ32Å®®Â(ãã¬ç«{Õ§Xç@ב;ÊQDp¨îêê ¥Ö9§¨2öã yÚ´Ú†Ôٮߴ  ÀÌ,è:ä›ÌÎ| Ð¥<³€F¹ñÀz†0ÔÇÓYã€èº77¿¤jpÉnßþ¯:€'Åc˜ Ð ÿ¸=­u§f…>¯¾ +Tâ¿¢Á *«k¿ýms+jÏ}®bŠî!!G׈֖«19z¨fÄ!õD£ðÔ×p CpEóqUÙßP øõ¿†ñë'Õ×QÝ}@tªƒû Â’ +}oØF0`IŒcΚÊ®—Ùt‰ D?éW—‚Jâ…í¨œ0ÍÒâbÈáJÀ&ÈàJRùÀfXe¿¢zšCEX‡p©z*èí5`¹çxÁYÔŽà,…üœØ6çïPäw¸ðŸ ”|6¨ÕVÈžÀX%˜U‚?~ŠƒýÓÇOŸø@>û +xÂOAžÁ+`É@*t9 mªíÏ É9 É6{û-N´'7ÆúÝ$ïOÄkxCAp&02A5“R`C1ÛUÄwÙ¯¸Fì’½}ì³ÿ¹á_ \Ÿ]¿yûkUXgëÿŒÜ¹ÃÄR C¾¸ËB6¯±Õa +@žåö¦ ¬v!.ÏÊÁŒPܺssa–cÛ)ÖȆØáÿöÀVOb Öe8®XlEÂþõÿ×Ü©·ç::°šDu ­uØ{.›ÝBe„Uƒ¬`»/p–ÌW¡Ø+i«,%wïþåÛ$ü?8óSרþ9ÒþW‚¨Ä>>YEŒÐÙ÷ýJŠhrýrú^©DŸÉaþƒ-Ÿˆ Ïg‹%¥"¥!Š‚‚\Ä_ °Ö\mîa`’>Ì÷1šræsó‚Ó,`1?Ø~Àž¾€ü—è—ˆsÝOJæJ¬ ÈÁìäþýû»îï&»°“Ð'Ôt0{ü˜p +\‘  °÷àçB>5ƒ‰{PŠUôƒÕî¶Çšà`]î°D)`X¾¤60Û^n(ßGNÁOðNû?Ç T ‚ÏÐ6ƒ¬ hLb|^ðĶ …@8¢`Ü_Þfûì?^›áßLðúÌ—dÝR€Y ´Çf€p2€º  KhìŮÇ€¸8óåìÃ2€ +€56áØ¸~Ý)‰býЛ 3ÏÏpÕ)€¦f®3ˆp‹á0€Ùuˆ{ð6tR@}™ Àh§‡ÎÞ$sZMi€Å€ƒøÕ›õ>» ’‚DPì`G ++]àx@2ßNóqKýo„@›ùNïÄÕηP8ÇŒp7úŸŠð¿’ÌáÎD¬Æ0 €!êÀj +B¢b•Kaä_Âq*€  û_©$U¿Í ,% Àe¥@h rê«ÿ ÞŒýŠÃÆ^¡Zª>nÿ³©Àz—óÛD×=N€ìUå +°§˜<¸^ÿíVE¥v˜ÌÇQÔÿÔÞÒi¦öÞe!ÑÏJ—¢ø›Úûðè‰?\3ö‹¸Ù|˜Ôþß&/ä"]Ø÷ðUL•$ˆ›| +_™³~²¬9X€°Ëx¬ÏŠ(,—Ù±!Wv`úáZl…~ü‚»È +Øgˆqj¼÷œÏ^ßj†|øHÅpù¢_ÞLåÇÿ „Zý…]ÄV—W®pt¶Âìþö6HÀc€_ÁHØ_ì?…EƒÀ¿ú CŠ{N +m½(@nĺÿWo$ ¦€¬I¾Ïí¬šÀ†ÂãykT`ðWt¿+´#P ¸Ï˜7ž(꺮FÒaÒóÿgØhÏPƪ82€[wþx¦÷öÆdsW`¦¡@ß1€´À(Ön’Ä“@¯PÌ€l¸KSn²fÍþÆ›¬ °Ž3MܲL àÀÂúì³ØÒ=Xíˆ +àðß­pèÇDT79¸…“dg:õf§ÆPN`šáÔÛöV3ÞJèOS¸n|¤ R Ј~5ÂVã×åpX_ZŠÃœn´7^B± ígfï³~ÆÉaþ TÚåølÆKtTÈOôÑ&P œ ^4ª£—Ãd­^_ vâ"ñ_IÂòŸCr 'صb¤.sÌ"CkÍ j+So‡ïcSýãT„`{‚Rò«Lý‚ü­ûw·1<  Ûÿ„¥ƒŒ °™ÀÓŽØÀSG A5À#€£Š{N'À)PX* +èåülôC*‚‚Ü“Àuwt\À¡@’³ÒcyÆÈÈÔ‰k)ŠË«ó±C$cÿgúí¿ÀÆ­¯ï°½Ï-p~:tP Ð â@ü6ˆ@WÁ·Xÿ:Ô[âÂ7Ø`ÃN6.^\'“X‡§ˆÛB`žeöbÊTe˜¤ @µ…(7à̦ +€Q‚.`g˜6³£‹þ}²Àgȼò)\€•Õ¤ÔB +z +R°ì{a¼C Þ Ãå Jê/Áž:X„¸{öŽZìЫÚJÊår”°ƒÐ|©B´w®¼¨;Ðgä3Ðè‡ÎƒBð‰+cÄ?t !§Á>ŠZ%ܼ½µÓNFãX + +:\RyQp1œªâ@VYT- 6`ÔÂ3â{ðYsùáp1 +p¼üãÐO1Üžp¨…r5 üÙ&°ÖjqŒ€»­m†¤( À%£ð +ž÷¬(`C Ð%à¸â&î1%ŒÍAº1@s:ïî¨ ¹»ˆ^@~øì0Œ÷HöO‚yÚÈlš4„4€;.±R4c¹áqx Lqø%©ÿÀþ¸}‡ÃþØg>H5ƒ3JhYv$@‰ˆ½[æ@]l^·‹òH‡=ðÄù¿¤àé\@¬ŸŸýâ&¯a €nÉÂU,67¯ €@\»àú2égÍ5Ã4ÎZÿ“ „•úÀÜ.Ì´þHEI-ns<~zü+ïnuF$@N`E~ªŽj$Û­÷çKçÎÍýE + j·ÿGI ó‡‰ÎaS¸5'õÊÇ•%¼(6RðÉðÉWhËY‘Á$ŒŠ `“Äé¹¹Ò\µ'«,ŸlGÕï±à“³ÊV¢h%XZ\¤(äN,…á§«k;• +ŽŒïÁÄå†>éƒ46þ±?^¼s':ÍÍ˵ªu + Új|—£¨u  0 ààa, °rBÖ~ðXñPTÜc:!áⳂ+óÂHëïu… „$~8ç>]°È^*$Hä|¼[œµÏ´‹j¨:0Ü×ÈQô_<nÿiM2yàÒårx +) ªžÀ ôÛa0,¿u * ˜]ßür=½êæÍ/ᬳ#Ð û«9T‰ÆìÔ_@˜¸îÏŽ@TYH·€Í_'ø#@&@ÛDJMûY‹èJªzW¡¦b2òw¬&µ¤EÁÇ‚„i¸Ç|ûjØH¦“0zÔ®–§«Ñ7ÛaX '½ +'ípo‹é¨zö †ÒSOû¦¤7ë4àrÿ@E¯ ¬Ð¬WVhÏ!!èGµwËó¥j·¿IæÛÍʧHÒŒËj(RŽMe£3ü,  û +®p¸t WâvŒGš(Œ—ðœÐA¸õ'0ùP2póÚ“´“Vù7Q+n%­ž’6|ÿý_ÛWnáùðK¡÷¾KX ò›è3è xK^΋;;1´awâmÜ߃Ÿøpðf÷õÖ€ù?ý˜í NÔ®[xWj¬¤p À¯Å}pmvÌæÛD{`úïb ª€µRq)¡OÌzO›˜ÈŸÒÑ.©|ˆlÝKú“yuìl `ˆýÙ14<=>’ü³ê/4Vx/Ǧ¯wôP9,þo¾º•ô)¨€.à"wîl(@' s¹ÆhžStë/Î|qký~àÀ—ðê××YðÏSSpðÝ}oz¸Rß$¸È6ô!¡X·2FL0¿OJJ¥ééésìƒ!_@~™ž.MÏOO—ß/_€”Jóì j~n~¾v¡<Ïù*–óót:R\À±¹ùòoÊ—/_®V[óÕéjµ\®þ¦\.sÌç†r£¥ùjõ×8¹\¾¬•’«qrPªÓó%£Ý•!õB£Ñü4è_]^àÌö6s¦¯cš}réxT³7È~ûO÷[Kc¬Q·Ù~¨¤–·7..lÈ6 *Àƒ¨‡aÈm(€;·ÖÙÑ𗼃ߺýåUv¾n `êü?s/±þðæì?ÓßgÉÄÆæn΂p\¥à^§È*T˜L6ØËí(jø…q¯7ÀÃvÜj`V4n|“$ß¶Ãí?ÝM’mØàí+X2l(yB;¹Ÿ$W¢d4¢ æ +P ÅZßÀjÞe­š>âàa:3 +²†5…xïáÝØãu\þ, n àòÁñ|;ˆÿƒ‘~„ŒNn‚©Jž_®V9XøúZ­Å5ÆZZë +„ 2à\Ad@Ÿž¸§tb9q\a®€ß“Úë0ƒýŒðØ_•Z„±«'ÆïúJÔyè€'XÇ`\q Û]H*j €{!]*îÈQÒÿï—ë Õ)ØÇ}Pw®³V/„ @,Š€=¦ +ˆù`À €€L¿È½T@7¼~¨ê“›7om^‚ý¿:{õêP؋˲vh ü‹¯p÷LPjÛê.° ü ÐŒ®‡µR»Jè„«uxÊ,H’o w`)‰Z·îYÈ 8g7:”z½¹õ¿^Tï)œÏ˜Z¥²dQv¸dµªª¯­Ð,&ÖZ "P3Œö%µp©0>=å[qÝêîVµæÿîÌ'öH¬”Áa¤ ãjUBút¥lÍèæó>~rTcèÃ#ÄeƒCp}`×±ØÿÇ*FËOh2@¯š-ƒY°Ü¨^Vû@F­hPÊ@"$òñmხkGäà¿O¸ðî::6Â> Ën]$85¨Ú‚cŒÝ1Ù82.²Rô(%WPõ~¤R×ϧ÷ìa‰ZØ”Án¿á§_©•×øßÜX ¸™U³0hÀ‰\ü;b!-ð LØ$J7ÜM0€ 1“[·o/¬_¥øÿL]̸ +È)€Û¨ö_ €MØD à6c¸NV2$BIðIµÖ¬x­¨ú5Qun›aõ*Í>l¹>Íf  å ùßomíȾÓú³è?ú†èWàCaê€ 88Ÿ–ó@+°0‡p… ¡>¤Ž”æ*ñ_ÿ¾Á Qñ?r0Æ]yI)£öÖ\;jJ¤¿.? ‚¸º,°ÂaG°¿gþ ®Bñà Ž,bw«lLáPQæ8R2¨þÇüM"OùD¾2îÆžA¨¨-~«H.€‰>W¯ø-j…+ R'pAŠ`âžÒ‰ + +#*èçp]0ß…á´{)Bø´> ;ÓÐȰŽuIVO°‘³`ÿ!áîÃ/|kpŠÐûŠŸ}ÓÆ:Ü{c0Û©Àú@ + 0ÅR$¹-`à&±IðÅMšìÙY0€Tð=p>%æh ð¦nÜÆ©g¡+®®K@à’ë×Å.ö+€Zw¢ð¥e[ ÜY2€’_ŽîÎY£¿kM˜x–~CwàîÚÿùß[qHc-¥—>@Ú8™o³8€t–0F`ƒør§Î\*šCgáóifO™JÀjdRÇÍ÷Xp 쯆Ÿâ§ñ×á¼½h9>bbÀœõ€Í°ñÅPò¼b;„‚q; .¼…ywñ¤CÓýõƒËÛ'$ EìTb÷@>´Àry¹Z-3$PwªUYašn`ÎçôHWpÌq0qO™ +­;pkàæˆ}؆¡vÆ&$A†{–]©¼‘¸xðßµñ@6‰Á0É·§8ûžr‹œ×sºDã(öoÃÆoîŸn¬ƒzÓõ¶ò=•é—®®l@œwA@bm^"Œá¦®³o_æ­»ª€(€u¬ß¼0•€¯pþÍÙõ/ש"X7ø6»›ü®Â•¸ÃGÂ%f®3p@°¯]›L˜ã‘ùYZ +d]šó£p>ÁN­ËÀ§¹oéq½þß[,ηÓMˆ9¤‡”;Qݬ0›ñÇ‹“þ’TÛþ¾óö‰¡ý‰ñÁ-Ú°>Ž ªæ*<‘JË·å=<ƒ£áN;¬Ä .õ1n²òb%¨éü|50 +€<2Âþ…ãêÑM\x7ù¿@¸Ì}RÈ©Y  4ˈ ËUÐ˘©’ +C8ËÕËPÕà‡û¬MhâžÒ ›ì°~.5‹ç^vNiÐæ,wjHλôƒ>9ñ Êà‡`/Lô™„úÁ)›k|ÔupU;ýÈiàÐ{›¡÷ýÓu|kßç0J1è›lܹ5{þª€¾¬Î+*ÐU×I fg/^‡wxÏ.¬“°ééy칑ÚcHUrw†`c õõ/¾ºÃš@Œ\a= ã\ÖX@–Æ@ï¨ÙK~Øò;„¿íÜûøÛmílEI+þëν81ÈSXýW\"ŠVëñNù!«þ¤õ¤LŽrKÑeÃV÷´ÃÄÁýpÙ‰£¸UÆ'&A+cI—àô¤üBþ´z}m‹EÿõzÜi\¦«RaZ;‰ +l0LCq ™8iX âq™æHÉ¢ëÿpC´Xö>1a @Mƒ!¦ü¹²O"5àƒ`s8A™‡I °Ìc õ°¬Õ´Û5÷©àªŸOïž=Q‚;rx/ÁØ$iLJž°MôƒðÁH d¨×Ë×ð(ô£ì®Vwè\«0äÓèGOû­îÓ)UªÔ‡} ìû¬cFXˆÅ~/ÀjÁdý>Àúl~HS><åtú×ÂUxýìž»-°Á Àï2 +À ë¬Ú$ðË? ï3Œæ­!àªêIpšqüÛfÀïÄñÿùí¿6׈yóž=²©/:åŽ]U*¾7îå&ÃË]l¹Û”c˜úÃ'ÉV'„ð&­0úl°ìHûjXßj—¿oâ!¸ÎÄ\•z}§Ù ƒv­Çô_±Ã +ž›$€z„ €ÕøHà2Œ“cá̓.ÁaéŽ=÷ï!.wŸ”ä5€*x5…*ПƒOÀnC¡Q©°FMP@ æ¨ð  c©p XþØ&÷&êTZ>ñ¯Û SžwÜœ&[覼ux ž++û÷´ß¸R°Ÿ ´– +ε«ÊD3Ôɲ…ž @ +aíÿbrð;( Ʋøgîê'@õË[3ç×{üÀÙÄÿHpÇ€*óZ9î 2ôcÂy‹©©)ކה`Óbâ_ñB¸·Ï€Jn¦ +à6•‚I¶›¸%aAÌøò¥BT˦ÀòS¢@èPî%ñA¬é˜‚«a´šÚõúZ§Ün:vÀ>Gë lp”"6× @µi'|¨›#&vbØl&Qˆ¨@ +}©ÌëÍv¹ÍæI\çsomA4›õF™QàE ²Â'ds`ý|Âaµ +̆äaŸ¼»ðÇù‘âr÷‰ÈÖÏvçŠ2 kP¤ð/ÏaC›€;‹ +–˜À:À¿¼|¹vDàr5p)·ÛH°7/Š—¦ÂAºìþñÊ”. É—·K@!ÖHs–Í}t‡ d0ŸÆ Éàب²†ýAvªµþi`àWð¾—W×CÀÀî +Ãò åªïêúõëÏØV 0eàPüý¤ +`sfvÆž Pçg Å¿1àtjôü({¤p@ € +€wY_ߨüJUÁ®› p› +à¶¡r fþ ªRêV¶³÷—ƒ(š£¿JLˆ”X%ñë&4@DTòø*cX#±Ú™OXûžB¦½V©üˤí»Œšù8JˆõµC'àwÙº‡ã“KlÌËë.ÖeÀÝ›íùÄ™¨Ÿ°¹…Çþ-t@;,7Ø@g@ðã?®´„ÇËŸ*ø8¥Ó¨µ Q¸—rœô!þÿøÿ_”ÚX÷ë~À|‚.¤Üà‚ë`{pðu)v3@â€aW¶_Àâà a²ŸD&¦ÖêXTN„37TîPÏÁâ h6>ÆŸÃñ€M¸SÅ}ß$ì"_m("Ï:9Y¿* ל-u§q+ `¯^æ @¥ÿpÝ /á’€îm²êŒCC¿>˜θ ñ-À>A®~qç+1*€‹Ý@V@ݙ؟ö+þ ø'ðïÐða¶ãF–¶bðZUyÍøÞV²¥&/¢µï_tîì°â>Žüé–pµ¡€­(ù®”ìD›àB“T¢zeirr|D? +ÿtï*¼ÉáS :›7"æGQZæÇkx¶5>žtëI§¼÷¥‰‡ÝÙù_ \l%Q0·ã¨‰¡À ,x¤~#8ëEíøÞ^ÔÚk'½n“Ó‰OŸ‘ãá­£G%9þÔ¿‹¸¿öDä ±i €lñœw®Ç ýœ“8Øcµ0ÐÇT €þ>¬¥Ïj>Z„Ç4¸ál=‚wÅ›ÆÆŽ­n‚…_j¯0œ?Ëó•ˆ3>¾é)ˈ…œç ÆX☪aœO@˜ 6àæ—€ºr²éÔÀìúúììb+h)ðû;w8p @î4g\ãÇáß`9:¥A©¨¦¨þÅÖlÌÞè)w7¸úKRQ% ð$‹H]è³ }±øÂyè…ü˜´Ú [þ4¶«­ÎÎÞ÷ÛI;î´¾Qâ(i…ì}­ÈlzçPðŸ·ú\¸øµ î•þÓ‡ +úm·wØ®h·Ü&Ù·0‡ùFMt±}ÖŠZ1Â| ›|Τ ˜×¡’v6—#d¾p;еí6ô›%ó¼FT 8®q¡ÀzÂF£Ýnïý;o½»®h«×¸¿ö¤$¯è{±@@_gôÁ¨lC À' Áïc—1£ý8C¿ß&f Ví÷ØÑ?ó¾Ð6gÙ1œ´ùõ©x…"ògá\ó +0cTã¸&V^Àî"Žð0h€´ ”åI¦)ÀЭ4¶ €©@ê3Nu:D¬RŽºëéÊú,°¿ËÌxÝúìÅ)¶ÞM›øJ  ýäø†—øîc8žeøllvcl +ðÌ?¹À¦‹@˜ù‡dóÙܙÓC6@nV êNsðÝÜé¡Á¡AFfðÛ‹%†yçJÁô<µ:Þ¥¿Œ×]š›g£›¹rñ ëhà‰sXã¶_8Ô+¯im=Ÿ\hø©U«lëST‘å“JjX¤ïek¤TnL7ÊðªËÕOZ*yø–Ël™„ô —Ùˆ kåeíàÑ˸ֹB~ _šŸ¯Õªå°Ê‚ªþÉý€žôÿ_ûŽ<·"âÆ-n¸å?Tì]ŸŒpħ.P'A= ¿ŸX ÀÁÞ@Ê„ÿÚåËYà:åB3Õ†óÚ}æWäî|€ž ç9Àµn‘“FÆÙì{HñºÄ± +<œBmP ŸÎP–÷Göý±!8¥Ü„]À/4@•‚üJ8„q\õÍ +`ðH  Jyfü)7à’ÓöÏ.¨M_Èh‚ÿŒSÌ2öÎl‡¦àþü¨i€”LM™Ó ¸íð¡þÁ °i)€þöñ6ô³„Õ ¨àZŒÜSãÿGÕÀATzø ñ>”*Ž[Ëq/“ l訋‡öÃÐ]mSŒ{K~ÐôU¦|²be«TÉ<ûÖ›IØ®ë[Í„#G“ ¬àà²Êøk* H…ªb•5 +ãX¯ÇjÌ2Ï~á yÑk< :` ¥úŠ{E'$i)@7@S›2€¾1X ÖÝE%,øq¹! €ÝÀ[rê zÜ”ÇñfÇúl…äŸ<Û÷‹8C°æ#3Ζφ‚Ü7ޤÃȬÞ1ö É”(€SÒIû§cÀÕƒ @á 21Ǭ6pÿ”þ%Xß_ +1ü‹H ŒN¥ €w"àe%¬¬:€} €ÿÅ>ÁßÀbþ#0î¿ëê^ÝÚbÉqh ^![ÒèÄâ«Áÿ ^†¥Ø ¯_(²ñ&Þ ™Ùi|l<y>ë” +§ +㟥÷ÁT«,†¬„I™%,ø+÷¾ßjî°³sd¤ãr#fýÆOHx&çé̋콌ýrŠStó59qoVÚÛéWò˜\'$Ç•ˆîo`Y0¨üCh/á…uÀD—ØqŽÉÎ+^`c|ë ~Äðoð2} àp¨ͬàf Àà/a À)€®`( uˆsGó)È+ÌJÊ,Nð0Žä |º˜"üÁ@3àèq(¸Ù­®O )ÛO4<9üjþîñŠ ØãÄÔMoB868¾6$» ;> >VðúËôÇ©À9Û’s¸oü©V› ÝÀà©^J±àfÔãºé¾/ÄaîP¯ïMãý%1|xá.€B2Ÿ4稲uÀžˆÊAÌ´¬4ÀfyEê#äÈCTKØJªµÄú'ÈLz#o'|Cz‹‚>_ÛNÐðz£NìýþãÄrïIIZ +0­wÔ» ·Ÿ`)€c}1=æ3çlAIÀbÊt?ètÿbÑÏ@ `²v’3(g1"ëX-"ÞÉé±ÒAŽúå Àb0ºÛ7o^ÿ²' ћৠèû©0‹èuóÈ!¥ôYp!@÷<”;·¨ÈþÁRüßêë(Å{là˜@ àå`¨ù÷â8ÇNµ˜æøWòcþ8-hCÜŸËî„(‹ynrirrbœ/…Õ¹ùJ1E¾Ñã„0?t’ +¿;WÈ,.ZGpâaøéððjFp"ö¼´´þßdcèi?¶ø¸F@ÿX¨‚øÕ Éån‚ë¢<½’·¼!¾%¾ª!€ÞÔ¶÷öœ(©;ëï/z±'#ûK²5‰y®½C È€Ë1€IÆ2   0—ò‡1æÄ.ðÆp¿|èÅ R@cå.HaºÃä1€~Ð“ë³ dŠôÀÆæ†ËÌ)ý À23ŠŽØ—ÇÎ8Ð÷ À‚b€Y¹e +ÀŠRüƒ”ºSW| €C2Á¨óÏ¡†îþ#üÏÂáÜ/Ú¶Þ_ ÿP'þJ~ / +@ƒïSÌÀí…¼EJg¿qË éÏN{&À'À«úa¿+a`°AœÌÅka°äOVÖXoc0ð¾ŸÌ[ ùg!† ˜(À¤—+ðX»Ú:ÐP/ä9`ý ïψ´WlòS.ûž¨ @Î9£x)Àñ1€š»¦É²2ñßϰµŸ`ý @ + >‚°Êir¬c×8ãV<|2 Àb}U{²I†ž2€TIpMYCD +@À‡d2ˆàG›j +ðáÔ‡Sö>3S FÜärÛ@Öþƒ°lÅ}»* `1]"þT/O¦žŽÃ ™œð&ÏyKظÝÿÅJ4¶†£~÷#¸Ü?ÄN£î…ëÐ^É.ì®×/T´ôGJ=Šñn +““f·YW±®Ž Vu =ާà `r’U‡Õ% k4ƒ#ðYãR5bó!j€  +4U@ïFU—ÉØÏAo†ÞBôÒ(z_i\gÔͱ_¯bɰÅ]ÿºNF–ÐèšÝ#êÂú@· ?àÍ2gE5²\wx `ì`¥qÊX’uR1€cîˆÉ:(ú”@OEаü 9¥O(‡¸cÊTÊ/pf ¬£“©…™…xOvb)@ªz7³|±|}O.€ûýÂèªýNÌ”s>éçpŒÿlœêל€½M&B–âàⓆs`k$748MSó[(¿téÀÄŽðïŸ8c“$Žx>œö ˆiÛ]“¬®®†Qp.¨/Áÿ%ˆêH¶R ?†½gõ¡ +@øóƒ•j°L'@øÇ/bc ¶&>ØPzƒðµé•e^¦ø¥¸wk¯±ŸüÄåß“‘L[€ihº?·ÀewI'ä”*ìgùÅ}1áý Žc¹áÌ?þ ÞÉp à  ðËcî€ ìóÌÔE1ùþ¦"6¨ÒCŒ+“P,gpÝðƒ=˜Äff>䇓–d¸O¿Úé)Ú~'} +ÀŸ(yp€ùO)Ÿð‚Â}od¢·À?’l3,&¢:m_â‘¥I€ž[L¤‚×Ð/rß_djÓ¸$Ge@’¨4ù·[Ý/ØÙµ¤oZk²Ï¡(j— +ƒ…qp wqõz¸âºäãj1¨,-XýôS‚2¼yô# + ¬È!l?Ô)¹Ã ¸s±€ç¢ÝùêÛº¹\ðÍèÝÙkâÛæ‰-G§ òx›—Ðöéü¿¯¾NBc½zï‚,¸ÒRå#0€± §² €~¨†û8Ȱ™aï1Cd +té6}1€_̉°>^W2 €.€M—!(̽akøØ͹càÌÔG¨ÿpaŸ…lq9³p•½…Ht?ÐŒªp&Àæ€x9ù{ޢπD^¡9÷²Ê”h °{%9çëÁ Ðk«,£HFúOÐÓp½p™Ð/ÇvÊQâ@wP¢¶\z~ý#@·^ï¶ACìÙ¬ãæð *aø©8±M㘷Y +@ì‡á'ì¨ZUq›!›åÇ8ÌPçòrËU=îŠaè0Á«âÇÞ•è½½* +€OèOaÍOɰ·i"5aût»àßK,ûžôµ`1`¯V² €˜?ª-€@_@.7æ±®ˆ2_ ‘Í73”aÈPÌ’Dö;ÅÔ„ >„üb ¾÷D +àü>€Ä–L%ºYÁrï¼I´¼¢:@d½Ùc7ü³øïS©ìS Þ"wšS5$ø/¥bCž9,vóɲuBPÒ’¼á_ƒìKØÿ_X¤EÕ[¤ˆ¯ñ¿„¢’Ç{´¸Š¿eG£’¶çUqW îYOl×Ë*¬ÇÄEö7.…@Û¯¿H¬=a§ 5àš8÷ÚŸvˆ€g\Äv»ZrˆèuàMéeaÑUÔ†~€žöŸk‡1{¥øèîeÿ½Dð:Ù_ +€ïÏ®P ÇÞ$O8gc¬ —aĨs ¯oªÙXÐÙƒ^8|¥ë¨~W®_ý€ À”¡o)•L˜)ò|aÊ-NÒCœGF§`ôÁ@°B€&÷ý"°I@ à2|W ¨AÌ54ÔK “Apd½ä—ü°\š(Ño_ª³º x¦À€2î@®$ç"*€ÅE·“š\þðÄb•Ùþ^}q +™?®òíAá¦`tÖ=šõf¼jwÐ-—ëâl¥¬¬T0GÊEÓQ§\e1t…X;Üb¤*ÀŸ,xØYï„ìA¼úIv„J +|¼¾D'Àý”(+mÑ`ªLšî;µëØíÊ'/.ÿžŒ¨ m pÎ+ê»1§ ޝÀu1fºŒX €–™‡9Q €AÀ¥<  ¿C €õ iM@eÊ“cûbwî|•ÙÙ™71 ¼2³„;€…ò +HÿŒí?W +pÏÑ'Œ0à\“>@Ý«þëêãÄŸœ›þ†–:ðƒf°+{ù\!BWª~ÿ,®6v­°¬(5A°””Ø?-ì¸8vëU 2Ê— Åúíø>++ñ½Ce‹]‚Eq3.ûTP%ØÁHÿÚ½f ÝÀ`0Ý.í±qÏ*TZ­­F»á?nÅmV^‹BJ‰â½5uT ÚÜ ý›ê£0d¯¶=„qÛ}O„wÜ£çEûIþÙp‹ê úÓHh©8i|þ.Â|2rh)€žÖŸß·‰”—Æ¥qÁ ¼Rs²¥ûc*@F5¼¾} ¨Îqaþž¿W øw¶ßd>Àù©›Ç1Šr^3K*.§°2mÄ(øÿ̇ @=-¿[̸é—p; ÙNAA’ÄQ#ŒÖñóñ¯+1e墆 +ãøÞ6ÌåZÔNâz´VÂÏ⨠+ìqpàf…ýøßÖâfÜ•l%í¹†Á ¨…àðK +±(³.NE@~vàÓhtŽ’?'ɳö²_X ›qÂ.?804mtöðÛãö‹$i7ù¬áN{;iÕ~“$êc '†¡â^…h&Œ˜é`m*l0 éhOøjq!›SþN*Àåß“‘¾¶VXF?[ +€|Æ,‡ïí[ë³_Þ¾³1Ë.ª7g¦f¯ÃHüÌ“w¤zâb°AYÀŠ@J¤Þ1 ž(È9°Î]#'Z +Ðøúë} àêìÅ·`ÌL|a–$¶ßÒìäaÿ§fäúC,@ù{>aoÀŽàÖÎÐhš&Ås¥Ñ¹ésçÎ•Š¼k.ŸË -³8ŠÉd´Èã%ÏmGÏ•pF±äŽc3[£ê/úl‰_šæ¤Í ¸*ï™âôtyºˆýìR‚ûîû@`MŽ’iŽSZÌÎã +å÷y6ê/ÍÏ•«Ð/ªÕËËó¥â4Ç;-•9Æ)Î,qG¹za~„CJ¦KóÓUž7?‡”犅\~z¾4}A Žw§_—øBHúvLUóít€l>5=øL7€ƒdYá;í*½ã“ÁëDäøzB?³Ú\fÝ„¸sçæì,ÀÍYŽŽð©zÚæÆF]R,­€•`)À! àM1–€ż UJ/ð‹À¾z°ùý ÿÂÌùóêIRUÊEÊÙŒG¦2øwB5pëwöMx,¹. %€ûgÀ•8.ow8[I„ª"WÃM/niºWËá6@ØkOÒîìu’µˆ]w®}£½Ÿƒˆx€ÿ¤üOɽ8¾ K{¤C¨1à­¬¨„ñt¸ +×Ù°EFñèÒ¹Á÷‚ ’”Ùª&À›ÀÌ÷—áí·K—èí3àÆC*Q§Ï½ª*xŒ +¨$®è¬wcUm-fŸépt¿Pk!8ºÊÎËYЩ²ÂÎê›î±!p¬š+•5`{u•ñ¤þ¬5mã™RTÊ8T_‹-Æ€Ÿ¦#²²Êö5øEi—õ&BP¿à=ð}ðÍØû!„9—ù7¯ŸÀ'ÿçÖ˜iÎË1PR'|§æð¥3ÑßA^'"‡•˜ç_ž+û)ðÝÓ0CŒp| Çd "n™ 4gbûvÊ8„`óØ€cÝ€ºª;©R€¾€½zûvª€S‡1ä²B—%\:£¥&ee3e pË…©.õwK,Ôè§Oùn €:W@¥;…áÎtl5ëáR!7¢?—ÿ¾øìy‡‘Q)@=†ýü¹ô)Ùä´Ìž7ûy ȹnà´Vb@?¯@ +àhÐí÷ëÜõ÷j àð×'·®3È_Œ_™Ò¬* ôoßb\KñOøSô&U + ­ù½S5=Î0€´C[=ü íR°€ +¿Ÿÿý¤1*Fò@9*mëx-Œõsß’M_©­cí#KðÈ¡&„[%»hÚJüÿsÿcîVѽ™ôÃD[=0AÀ30'XòƒXƒŒ4¹ŸB³_Ÿ¥µfsmmUu ÛÓa̶B<ÆûR5@-ð`}µ=Cõ5›8P¯‹>v“T«!;N§è€0øS#SØœ¯N¦“¡ÞqF ””12€ž ÊHðMÿð² à`)òE9cöc¦ÿn 0Háofq_[€ý1€£JÞªY Àï9©@¦€!~¿Ü\Ÿ¹xQýrð7ö@¿(gá}i™ +÷êˆ^%€Š2àçâNÖý×DK^p€d%V9à—pbýíS¬QÄ,Ü[ú©°¸JAèè¥Æ°5h "ÄÉ ‹A-€C¸Q¥Î©ó«¬âP üE\=½¢F*ׄA(Á“â^Y*Øáì¿cbþRÚP¸ÀþyBŸ:À\?œ9ê€rÄÝëäDÈ= 9¼€øï™ý?¼‘dbÂ} +3‹œU +@7õˆRl 8M§ àïÒ ¿ @W¾¾°Næ%a?T?ï¿'°Ì[x_– L)˜3˜5ø*ÿÿÜý_sWž%ŠÒ-YhBCZ`S,¡|È¢ÝìàðD² 3Y° & °“¨ +½B¤Š¼t˜4©ÙÁy¿9&êÅsïSOÄí—äÊV³GÕ(¹vÍvuøô‰ú Õq*ÎíOÐ_⮵~;  AI•@f"‘È?Ø{­½öÎýgtZm³ö)“ôÛıF!æ”üD—„A1üÊz°|#wÚº„Œ&È3%âþêjß© Ÿ¬OøÀaZJX2½¹xh+ + ''y[í†õ^æ·êçoð,QŪÿ¬Óg¹„2&æETqÕJ@ü÷×CŽX +ÊëÛõõ(¸Ó +*pØûÂÝàk»òž +ÿõ.(T:`kLÂÁýÛ`xBütâL¥=f(fèÉÏúîT¯ .¿œi 0˜F¶gþ%+Y-`‚tŽà‹7з-€æ—+°)ðWP'¿‡2ÌÒ Ö!s³:€½sÞñ KMŒœÙ7øl zðÞYðÿae¶Ô°ã¬bÐ:Jq«G/Bï&|WÀG|qÌQxã(z…ü&9 KóAÌ*½+ùUJ•Ö)®¤ÝÆu¶£'âÂÚØŸ´NO¼‹öiûnC„AøëÓï¾;ý¦^Ú-çÅwǥߨ?DÕ¸}óÝéé©¶~•NxƒR$ÀxŸâêÕiñ»§ÿ–þ§ü—P! waÂòs‰Ÿà@ÓÄ× Q÷5 ßSEùl²¡`â¾Àûð1¾Üæç¤s=²çc ¸¨  ·5 º]OX€CõãÖExÝ}¬6fð?Ȥíñr±'… ýkz +@0e°¸¡Ottÿg‘IûmÒPæ¤~¯`=Í᎑1_¼•»ÊÑÁ‹V‰Û›Wí¶èfù.¾ÿÁb‰å½%Uó¹U,zk¬é鯨ÚGÁ;—VÖô\YÃï•;ø™wk Y/¯RÃרÅ/ô…{ôv8ðZP©sWG E²Ô‚læmT8¼‡Wœ¯„Ø'XÁ8õGwjwq9¥RÑó×BŽ¢qB`*w+álXÀ娂jÁãÐ#+•»kÉ€÷¾7u@` tC9ùÛ˜@k1ÞÞ ÀOäùå(:Tâ\ àôZábð뀞dÚ ž)ég”O¦‹Êð¿9ÈÀ8okbÇ»À·Û[;ÛÛŽÿÄÏç<¸  §þ\! 6ej¾®z$»#¿Ý2}Îö€ÛÖÔ +ò‚é+U·F¤Q qCÞ ©Ð5tÿ0€@fÀ€J¥ö4Œž†ÇÇoã™("w_ æ½µ»•{ >!ÉG +Ž]'J~¥T *óžïͯ|ó^%klú +ùµ (­~¬%à·÷øD Ó|ѯ¼ÿÔ‹ÚÁñqů×p¾ApõïÏâ¸öÁÓc.Ÿ+²[ÒÊñ1N„³~T«}tÖ*•°6_iµžÇµ +öÖjáG0.>Ž©JÊíÊÓˆåkµãèxåîZ壧Qô‹_‡Åè’ŸF+µãÒq-[ ëÆ ‰HBÅaÄ9#¼‘¾3q‹€õèq á$à“S½¶—q÷Õq¦ ‰á™(në(ñ¿À~J°ÍW㡦 m€ç–ÈdZ¾Ö§,×Ü»E:6fŸ|.ÉÛßç@ Â'y +XQ¥/‹Â56àĈ| +ÐŽÞà\¢>È¥Û'6ÀÔÿ" Ú­ÚX‘%+S  +€§óü +ƒ2özKǰý¥bÍáéK ׸7ü8K‹’ϺùAëtÞƒiÞ‹×j´írã ÄÏãþ¯¸½Vi?ÞÍT8W­Ã:‡Š`룙– è·Ob˜yžWE¿l~„T]×Úªÿ_í׋ì ëàÛðéi«òŽÿ5$n5`û¢0n=ý Â‡²02v `é0ߟÉh2ÜOÒ'üçìC›@âkAÉGnA?3è>£€;Ûk‚‹Á¯]m²1ýeŒ“x“¢¼£¿­a¹g@H,@G~Þ×H@êAõTS°éõ>`@‡øn‘NÈÌ=Üaª¼·¿Ç[r TrÀ¸c$Ç4šf/Ø€u1K1‡Ô 0yøœ8¯rÿÈ€ðÏN0B žLHK×ÂÚÂBâžiê&½ ô¼‹%¶ù%Ç…h¾Öb!`xNjފ7òY ÿa· ø¾WŠJ¥h]ƒöXAaõ +î†->®KúãëƒòÐ÷DÏ߉~x…kpT¾Ypbó>>«ôNê¡Å‘‚Ïž¿àRZwƒH÷`'¯¨ÆÏñJ¨Æ‹L?üz\ ¢wjÇkÜMØÛQ(“gñÕæüÈ€î*p´'ñ¥˜i'ÊgLúåÄs;Ñëœ3ê¿ô8€ÿ/UpñS€O³€`äÏ:^pQc8’üìŸ)x-õÜZ?° `î!9%oÏÈO(1@øVNlO#€´ß&)€øÏ¯ø0 po>\œÍfÿmëû6<¨Cosà¨v'hÕæs#ùü¸(Í„½Èšøõ0`5 +ç#–÷{~m ôŠðj¹¼Ì¿?aåКÕ7¢b© þãóªÿc;>Ž«HЪÄŰÕäÆ Åº'GÛ>X‹"/5Ïbû&)/€°Üpò–zþǵR}VUÕ‰§Ã¥µJqñ8f ¾ç +¢Êô“V@}ðK¼Ž-Ôz;2`%d퉻šýÝÝBÀàåN|)À9—à!¸ Ø©^ßÜEá×€L[€ƒlJ—Y¢ à|ph:’¾Cýdí’eª<Ħ×\ îª/Ø'PcO°×åXl¤€i>!vAÏ™r¤} +·uzNŒgºooƒKö3Ði—»|?§kÏýÒ$òF¸ +Àr™=÷Äð|(b…Ñ³Ïø½ è!á/L„Öjÿza +üW]¼–¢•R + H˜<#Ä^üóý¨~·2«rÞe±V [ Q„ Í~¹T7Bº +ùOˆŠ•–eb8g (€%øž k—JAÄòr™ZW~pŒä’à/O±OP䈞/„Ïpˆä- +u`À…IPfX€„ó¢|fÐNc·)T |Ä€cM[ÀŽªpîåï+Î_«HŸ0¶ÏÅõdåâz•ìzÆRà—¯@SºË^ù)À^oÜÝ@ +ܘu€û3òoš¾#µ¨È š!ùÏòŸ_Ó0ÍÏ”8 Ȧý6û* ù³€8¢ò4úA-öW8¶o*~9œ¯¨–©á—£b-b]ü3¾?V*'Þö ““|C¨îÐÒ~·ޝÄ+0 ÐfX`Ã2€RÐz^ûìú À˜ßëûÆWqx÷¸óñ“¤ + é‡ëÆÕ¨à!õéi[Ê?f]DçpWq)lÅÁ„ô€?\‹Âé/Àÿ’”‹£-SNž,|QOŽíà”ÂÉ…æß–HÂYåGìN9oK7GøÉh q|à +–ÀœÔ}ót×W‡ž° 1 ñ9Íø_®:Èìï?>ã’TŸpk\\ºÓq¬sÓk­p ?B&wœ:€OðV ²ª¡© ´T€OÝ +@U Ìå¹ÀÛ}ê×€@¥ãJÑ%øO”pÏø[&ñ§‘¾ÑJ ¬±ï-ÃÖÅÿ%þቂ÷þ(K óÞMަ?rRB ¸^X*ÕôÃT­Ó9$±ñGwjì¡cÜu’ìã§?Œ¼›#oùKàµUÙ ÀÿõªQv5.²Îx/Õ±6ŠÊ¹ <ùÊD%®é‡ñÆ4³ÿ+äÿŠ•à¨a\j‡l4`Çèë”X3Ä-‘¸'•€Iø„úÎp†ß ô¸7kòGc|lÀC9ÀU¾ÜÉ^Ëœ3cï«"SÀt¾“Ö_¦ à‚§ØÚߤÀ¼õùRõ¾·2€îNÀÏâð`{¦Á§äÁüÀ'L(*PC`Öœ0^8HT@=.&eªÜ¿--É?@¢èNí•¡³€Dsi~{%¢O^­‚¼~8ª6et¢Dí}ËËÝÈ8°þ3ö °ì-þJˆì·3ÿÌ?,ƒüéõür\Zkyµ;{ä×îÂú€¦ýƒµJ~d"ðü² ôÍš{ëȰ r3óŒgÍd•WBúÓá{!l Ä¡4vûDÑñÂh•¡¼{\"r“u8€Ó»§a•u‚m⌠ê@üGÀJ¾ s²ôQ#|¢‰`7îÄDß*Z•!þ*àŽèÒ“òö5ͯ¾¾B÷ÀÒùNúŸIöé.( #ð˜ì§À9¶ö:€„ü™,€ EêÌ\PÀîÀ¢íkíˆO÷…Oܲ þ\C7Ž}ÍHsÌU¤¸…Ðrk„¾ÜgÇú^¸d?œÊ²Z8úC\Õ:"¼s+¡|¿øÖü/TRð¿|²Â +õ´ÒÈ<ë¹€þ–üMüEW åeüc(T/pDåÕ%8‹Euø­½Ä2üvÜGàäû*ª¨ß¾ ­`ͯ¿ú¬¾¬f½¢'G ¨FÍ0XõÉBHÒ#àq~ êJhO¦<Õ\ö½õ°4„¾UùAô+~½¢L®‚VÃzËo±k,À¡,À'„Ã…D6€ÅæÈoã»ÐÑ~00¦B•ÿkwþÞ= ,ìݹDà×0çÌâþ«Â9€‰<ÉÐݦt¥« € a%s;G_îÿhzfÙå#Ó`÷¬ ÑÓL@÷¸T=€¾e¯æp™”®óþ5Û{‡p +¸G—þCâJ øBTÅZöÔ_°h0Òá;€YÌ\K€e¸2s„ýOý!.­%î É% |A›ŸÀ?¡Ö±çGóïAúc¡ ÛÇ¿(Ÿ üù: ù²*ãÀÿÍ[µ^ +Å áø¥|¸Z +ò·ÈÄ¥JKùïØUîé~Ýì[0n}¹1fñy¤ÿLþ«ÕæI›²S+ÜR–ŸAÏtŸXþ3}(L…w¼*¿ò#ÿa\)…ÇüºbüWôaË °µò<~á˜ï@eÑ So³ôìëtÕõcïiÎ &Ü‘Àü??&el ”´…2@Ö’·¯c®™‹Ã¯=½³é?¦ÎG·À„”~æßàhgvfv{§±wz@ºô‰(ß DÙ³À¦ÿZáºÉCðÂ2빋²¯­ €D¥íÕYëzáØ~#€ÀMÚ<[˜Ñ! úQë„pßöY€~­: O€KÓ ¶V²OžGìý†4˜ý£ë£0ó€e¦Õáòò¬tpoLü˜À¿cÿÛêh"£ #]­úSã4^…üMÓˆB0_ôÕk¸JÖhàÇ—©7n¾ßâÀ{Çç8úÅœ–'Î7›­y?— pÔ²òçaP­×ñ¾›ƒ[c?.„ Lð­++”ì’`ÿß)ÕZá½\ + Hà•UÛ+`¼ äO Á‚EöÝ-áŒï€s­%+Ú ¡œ°Ÿo|%æ0ã 0Ú¾ž¹;˜ØûªpOŒÜžsê»zpx¸CêïÍÍ=<8Ú™™™{¸Ï²ÜÑ@7°õ¬èMÿ N¨–€Õ]­_W[&åâp{ï`[Ãö¹üHHè™(ìd¶FpÁb¢c¼3–!˜í[ÿ>ÿcþ×,¤øTÓÈó"å5¼½ë| hÃ2-yrþ¤KÁ Ç<ˆÿƉ9†në^–N!Ì€¯úe  þüWÃw‹8“_þÿ0Ö» ï·+OÚ©š^_4!Zõúwþ»¹Ñ*€ÌTúÖ«N¼0?x,ÇãU,IðC¡M¼‹+¡2@Z5¿¢' :€y|Ï,Tå´Ej¬i}}=è¼£®NŸÜf–€DáÚãÍæØSeÎûÛKꬰ½¦¹­ºHüÊEú/Š;Ž'Sfµ£Hx(ìο13;ÛØnìØsi%L=ü§—&ÿû:€Tl%‘}FÐ×€+d”|-À~v>!wö·qwÝm9Xèo T8…6( ` hÁ÷Ù.Ápqš1· #Žj„«ó‚ÔÓÅÿ2a ç’ýºVƒ‚òï`¤Ç§êß¶‚šÿߦû«6æ¯ß•E6„…LÿëtáX-ÜÌÞo•ÂOø®’m¸ ;‹ß6£0|qAÄÿ ÿõáûáªï•GÙö§câª+1D…ŠGJq­µh58@(.g…ׇxÀc†§+Q䨉'9ã”P€ˆÌʸôßt)€í¤”]n»Š@BÀDŒ¶¯gî&ö¾*T²w±Ü¦¾«t‹{rsG›³33 ²ÿ¥ŸØí÷@lOm€­ÙËáè{n€âµ–¿/ÄÞÞá[ BÎ:ÎnwÊVÌd©OXÌH€‘ß±` tWg€ý¯ÓWFVî¦Óq¸³mÍ»‘»‰,|䯲¢mkÞc€àê“VûSÆ‘p×£ÖÉiéxá\}ÒŒãf5ëaTÎçÁò¼© ?_…!”%$‘¤0Ø‚¿{œƒï#¯^ U~;ß~ûâääÅ‹ÁórX€¨ ÇÀ.C6à¯ç®á‡Í¨I£O2=cGó…àÉÂq+@ÃÛ´âÚq‡á³Ö ¶tÂýV V^Ø +›Q»µëñ7}…»ìm  0rab€|·û1w”·,A ¼ +>”¸#$‡ä‚'à‰ÄÛ×1w«‰_£."Å:ÀÀC:€6›‘œuÌô©r½#€$À}ùp¨zLÆ)Ø”)xé§F·sðù¡ ¤@p'À¥‚“Öô)j€}¦ˆõNì½}éÎÔqŒ|P*•Ü;>mÅáZ…#axÅ"Óm¶‹ ¼Jø>׋ÇÖØCpÒj>‰£¿?®,Daô¼‘|àaÜ +ý|ÿ"þÁ‰<ÇŠd€ÅQÄÆ·8N¡˜÷£§øp|Ôj‘+ƒì÷xâ,Úßâ|'qœ¿šƒ1‘Q0Žq ñqT‰XùÑ Ô¯0Q`©AÁJ"¼HÒñB ~bN¿ŵV[ƒl„G?ÎOT°S;^hµÃ΄ù“…áúönޏÜ=)OÖg˜ï–à;Ëøs?þ’s«Ðy +À<;×ë™ÛªèûŠ€pñHôÍ ç£ÃÁ!+hm; ÐÇü\sü¬o=GtÍÅüîSÖ è ÓðuÔ0vdÿ??2ø¤×¨! =ýg`1 ’©%@9€Y±ÞTÀ@ÿ‘ð/SX€+pÓHP[Ãd3‚oä„Gs£okt¢?V,±žÏqXÜ5¤^ůÕXnV©üï ?Œ?‘×ÖîVJ~¥ÿ€5 Š£oâÊ¯åÆøœ¨8ЬuQnMLŒ½u‹MñïúÇwxøhpº ²V)¾qu4(­€Ì+mªòQüƒZ¥Ä±?Fßʳ[‚•……RI½p´ªR©8?ïùkX©Ü­ÔÆüG *ø*ºqœûÆFóó¥ÖjØ©²r7ÖDžThrTaB«T¿¯ÀÜYÌXà›5Yå› + €§€Á–¯<]@K“[$Svµ³ÎAR°=3GðÀîj)ýÀ™2—ìs–ðÞ‘>ù(œïrê,¦`Ó«—¹‡vþüìëãd€d€ë€}I˜¤``K,>£¦vg2@qVm=ýƽÛpò§ß}×ú»ö³)$2ýH·¿BF^u§³È@êEWÈà6g…`²>a¿æ\Ac'ËëÉùÃ@¸ªB@®0˜)äm†Á¯2·UøÕp щ?™=>c©¿ೣ͙ٙÆöœ:΄˜H±åÀn_Ðaz& ÐÌÞ0 @¦&à+·À…õ>íø#¶{ËöôœÐq ÿ;Ñ,ã”þ;ök9pՅİ ÀÑ *·æÐÕ:>,sXï]þm~0¶Txé?³M¹¼õˆð٬oÔëQó»»Q«ÎÞ5á³ÃvxçT]ëÑøõG±²ÎÄz.¼ËB¶©fý¤uÒ<­„K×@—Õq3Ú¨7¯{KìwØgÕ€°U)þçV{¾|~ôdì^%Ž*Oq=®‡?Vl¶Ÿü¬«,Ä/ƒVX;[QÜù^€ v$U kõû„ÂæÕÀèÄ—â•­ØÔõ1óŸï`ÿ¨1û£ÙÆCØÀî*‘2e³[ËR=¡~ÂxÖ܆së@hú”¼Œµ³$?ïõÈÅOö·UÀn—‹Ä‹)f¢8ãCGý I€²³s˜8·7¡¿½áqèj ð; ªÈdÉýèû¤? ò“4Á‡Ü‰g +Pÿmé´)êÀ.ÄkwÚQð®³BÿjþÇ…QÂS¸ÏO•ëõf½þMIu‚#{?ÄOpæ Ÿóò!Ûú~'/Ýiãp¬óËßq^>{Œ*ó-©À vÚ +7n®âr|²Ÿ7®Ï‚jPü%o<Ï‘‹¢ãŠÕ1ÎÂÈó¿ù_ ¢¹A|ï ëcfíàh÷>`÷¾{ h€p„Š)“£è?° “æcÍÖô\wßÙâüz¸WˆXùje¸¬Kààs +ÀbäÆu›^ô„\3ó‡âLë?7îëÍ9@*ºnÂs”Œpñ:‹ðÄÇ¡‡gTLÿAžE‚:òƒj#Ýߨ‡íR¼"­Íve¡Õt‡¡¼Âç9ÔxnÉý¡R€ÂÍñ‚_­ÿìg/Vâoé¿À¸Þëpõ°œÏ&T|m¶J-ɉ˜.·3æuNnÀÛUo⨳ù`#Þ°ç{‚_Ù׸ÏÐ÷ƒõ¸FèiŠhäù_ŠÄ¯E| Ãï‹qx´ßØ¥XLê줠ˆ™ö’OT ~wÈž +ÉͰ@¬àXàÍLMÀLÀ¥ŸØÉÚù‡xIð¿±)`Ú+00ª"$03(ЧÜŒýBÆdà,€»°n$àðêþÍ,Àx3^˜œÈèýóoÞÇwëœ9{Þ©žÀ„áF«Ô‚¯ëQ«R ŸY^‚yøìðÏ +l/vµÀ?ú&þNÄda|ü ”âV"#{_À?D€|YÉzµÖ؈jà€!Ï + £P0‡›ãã“SSKËSSËËå ö`c u ŸBÖƒVã ôÀÈó¿‘_ˆIJV,­qëir“ý˜ù‚Í÷•˜ÛÙçè8EÖŒO@Ǥ`·OXähnk@º¢ÕÌ'ðx`=’Ø9€W©0·xž ¾/žÏí~.€shd²ŸŒ©€&€ Q€Œõ‰ÔÌu €ƒ®«;V§×Ò‡<ÚÍç ¹«ùÜHþÝ÷‘þWð=è þ1GýYŽÓ/ÓõWÃ“Š¿ˆ±ÐÁ¨€MXxHkGø/æ9’ÃÒòÒò2þîñ2²' ç%óç xÑlšõü¥åÕr5®”êQ F8­5ꣵ+xÅ|€Å{,ÀFök”—ËÕ[Ð-X“ÁBŽe_ÉPË: t…‹ƒ^€äaß5§­ëX×:ªÿ}–X4~I0BÏ…ì:Ðõ1³Ø6¸¿ûYcf†Oö3ŽŽ0CÄÜßkl3^"ùßÙilî‚ûû9¨Ý§ûø°IÝÍðÔ d¶æævFfý™zo¾–q f—L;躀O@|>M’`l`@18p«A +À,€£|7ta=€h‰…¸/ôðWiÔûʾU›ïU¬®uާÅÊø?ã@ZAØ*Þ^ÄwZñF=jª'.¥Ã,b *«>Á?šÇƒŸ¿q冿Q [ ñ LÄ ð4ýÑjJ¼›82@Ð +ï´ž„ +Dç]fæ +•gNr#ã¿¿º„Å&.WNÕƒ¸ñË|o2]Y€hÝ vCÔÉ ;TŒ¨ZÏ9ÐNÉâ”~ vÌ¡0ð 8Ï÷ðr\~thÍ¥[Oúî™5Åzçwæ¦gˆ‹&Ì0ij4vwvw<Øyì°9+Ó–€ØðÛ®qÅ6ñ5ÛLèëÁõÆK$—h °ÙÐÄ׿KÐn®ñ K=ùQtS‚^½CÊ0øô*†— Xa°Ï½Y»’Ø3À™mCÀ–ôìD/Ÿ£[çŸà ©¿ízé ?166„ƒ¥ÕøŽçƒÕ­ð,H¯Ÿ¸A¶Ù'ÿ±·BŸ=…å¯CW¦¦¦næF˜¨?[@–aðcÕ¿ï‡ b"Â÷®QÊ­àÎq}½Z?Á¹×p©4"³ç…¥â‡ ê[ûeò¿\®>)FHX-‰xçN³ü%ùMdâ=è–9³·Ñ>i3“o˜è‹ dà?>Û%V1“=ëñ+vý¦\·19€²;|Ÿü…öŠP—â<¹ì²û€m6Tï8dˆa Xq`ÿ§€]¶ MÀi÷íµâ>saKÎmùða_ zo¸B@l:·€¤W‚Kõ30J_,”Àím³ù $ìé0¬!B)e‚Å +‚ÑŽ@5Î@wXˆPe9e³UðË +Àuý)ùñÉÕˆëhèƒ5Î@ÿ'ÌTŸÕ7ÀÞj4á#%ü±0\¯V7©ÇAX,2ñx† 2Ó|*€?ÿîõ‘Ür5¬Ç¥Øúðë‹Áß@w8–o½^õ¯ä~\™ëøAÛ¹qâ•uðé—VKóªÉ¬vɲ\›ËÕj4ߪ®—ùü@šÂ–PjÖì!È󏿝k56¨œÙ;K … +ÃKUM»GŒýéSS€ ¨ôü¡öãïôK;e-eQ¸+¼v86_ŠG/äŽ>sp°‡<€u‹“q;s ¤ú;~N°‰Õ]8€Ç»ûr€O¶7·¼À>,1ii l³\sKäÕÐÞ­-‡Û¸‚YS¥î:I+ÐïÚŽY Kyà¶{8¥¥þR~Ä KMˆ$è1W4¸zUþ ó%€ø>Óûâ±{‘)ØÞý„òcÝ…€R`9Ÿ³–½H[£°Ä*ò°Ÿ傘cLƒ××[^oy9ôò”[­2ÆŒJQYa?\‹WNñ+’‹ +P(Ð,A,Z¥S>@ŽKÒ,iˆêõŸEÏgy«áDÂËã¼põëáo³žˆ½J°ÂlØÏG€Ø‹œÇ²Úœ?Å9°ÕT·¾ªj€`ýYMÒwïÞ½ +l‘{‹9)(¢©À¹I­Å€õû¸`Ý%ýX#Ñá®Â,Ðöë¿ÿy˜^ÈÍkž;>_Ÿ^HÍÁö¹Ù¹½ÃÃÙi䆳$Ÿ]óù¸2€Owööw`ì^œécò¹óæÜ-ñB”ëq›`½D"ƒí‡Lägf·¬Ã~*QìœhÇíÙ…û,Ú»Ô4÷pÿsËˤPØ+#¨¤@AÏÀ✔Ö8è£E×ËÒún¤àS>~ØÙÝÞ…øôy +pp#þçóïÃé á‡(É“q>?ç@ÚËžW-ø?ÇB·©%«ÞÜØÐ.`>†·Ùªð=+Ù¨ta<c$ïá÷/ÔéÞ þ&Búý³úO£ŸVý«þR<ögƒ«¯V›1À®•¾¿‡¥–¸M¨opx5(Wã…Sù$û0žTVbèØ½JåR÷f€d@r2T¤Ê$¿…_§CñšKÓ,Ü +vºÆì2|)Ììø™ ÉÏÚ"‚òõÌ9s„¾$‹^ úgGÛHwÌÎÍl3[8Òæ@·0t‡ŸnïšMH\{qÆ)ýÜysî–|e€Ûv Mr¯ ôqøÙeÁZ‰ØÎ:¿{+B¥Ï¥&}aß1b@@÷>à±{¡ªVæp;Jÿwº²’d pÙ$Vk 4ÂÔ…Zÿ:!¥,{Ëåeoji*¿êãu³ÀîÀ–ñûfóÛÉòq'ýë³x + ,Àzu#.µêƒÀ9°^e)àÏ¢j{Ë'j춘¹‚öÉ Ý<À‘?pòp%FºvÓà#í°o54ÐAÙJ—(7!}­à\uê $Î0P0²ó ¼l³%7Èð÷œ¶ÐTÚ… œaÁlÑÀ`«¯>^®À•½ $Èl³ª +8ߘ…çÆfç@ 8€9:€;v~n°ßØy|dÀÊ/Fâ6ÛŽ·gÑq¬¨O SiÁ@àh} t`ç!îÈÊ0!À“xĘ ég8¥üOã…}‰¸`@Wò}‰ÀiÓë*te~àÝÌÁ\G:èáño–ÉWŸ°Ü{ø~Ñ÷§¦–9‚¸_˜˜ð +@––ËÈ3€JJY£'As=j->bÔˆþ×óããùÜHÎ[G2^:e9â ¨uNøqÖŸýôI³û¹ÑB©/±X¯\ݨW_¶„û¨nÌ¿`ÿ¡º.nbÖJÁÁèuçQmå9€»†‡Å–¦î#-'‹GðÍÍt¥ýܬòùøˆŸrN!pý¤@i±pæ¿8N_ݶø’@ìƒÈ<äøÛ÷¹)Í0‚ݨ:×þîþ§ûM+xyØö¼÷'ú¦ûœï”ŽÖÃc¦±ÿ·w2 ¥¿¢“ºT0i!àv}I˜#å³E€ì–ÚðvX¸3²ÑA3ŠOT”ÆÂºÂ$ÒÁ·Áà8\x‡AtÚjµŸÅ'˜¢`õÞ’ÿ†…Õzìùc¥ˆîêCÔ_FB sZQó´ÝŠZß·Ûѳ'Q4ªûMP¬Úª·¿-µOO¬Ö__´Ü²'ñwHæ_œ~Ûþí·8Þèû´ìW yRONX«Ÿ-â(n·Oê/ZµVÆun›ë'ñzó¶ÀñÎÙPTg#,Þ\åÝÓ¦àο®TZ°Ï€8}+@Rˆr¤.‚ /úyŒñ´¸Á¶bIå`Fá‚ßÚ¡ºÀ÷ÆÿË ò +/çZ`){Ö€v{;3‹L˜6·1m)ŽÊl?~ŒØ +޼´ NøSœu¶Ê.<Ýž=p¼³÷Õ%Ðþ'û05j`o¸âE$Qܨ/öŠã…²s‹€Þ‰„?«z ÙÑ´3Ò5äfqÖBf•òù¼W«…áÓhò-öÛÁ¡ƒjHý'òd;ëಫ X+…Wä6‰/»ÜðØ@À…£8Üh·kµ + !±Ç+¬ZäásûîoZODê¾°x}A!ŠÁXïšç…‡6°<Ž>•+•Ðç¡° +íž!Ô8ð7tÌT½R‹Z§ mH5 +Ç[ðvŒëÓ‡µ¯£ø»èivR0dÀ`pAB:“ýŽÀ¢4Sz%ýœ‘ýü^Ò:î‡ßq3ÖùÃ.àBú{‚ãõ° u|…(D8€`G`4À=8Qv{¶÷„bÛ² Ûþ2p\=g.º +X¸¿xøwcfnÛeö·»*9æÛLA¯PÒB2Àí ø-ÀâôL–ûštìðïètc:ñˆu¿+,€¥þJ¥T,GßÌæs¬ýÿA©tw â8ù•‰’Wdž‡é/LܺU("õg/šž7?_,à‡y6š¸UðŠ· +óÅRínp|×H¸æå¯^»–Ë]à MK++wk i͵ò?=w8ßrkkÇwŽý‰Q +.—·Â­Ïÿ.ö¨±s‚•J¸ÖJX[Ãþvo¥Ì°#®©~­õX[ñWJ ¸Øù[·&pç£<`‰ã¯élé[’BäT€A&ú’ÊWGn+×,ë”òsU{ÉH0øQÙ»iƒá{æÿ%€$èÐù%^€ý£Ï%‘Òš¨I0ù7‡˜¹¯*ü ?ÞÜ>z¼¿ ú‰Ë/ÇÕóðÒ`s®ÑX\ú½8=÷ÐÀö':r¸$@3c¸ÁV0S¤,^ ÚÀ Ѓ¤êUgìÁ×tW;#O;¨œ¶ê¿lÕŽ£òTžU!& +ÇwIcëéW-ø÷‰¢Ï>ÂüRúêk¿Ï#Os]ÂBõý„¥o2عŠlBqå¸õË8nŸÆ­ pÇ-¾}ýjÞ§Ùhž~×þƵò?ó})spºvú Ì›òÂà?i#o²S‚0ú"l½8‘ù8‰>¸}ý"n½ˆŸ#Sì +ájÂöéé?¶Úq;¨ýC3dg¬–° ãÍBøáñ/ÃçÑS¯ +,PØ àc@‘Ï$»1žëØÄÝ´ž8åðsüH»è‡½Àù¿ïŽÙCLEŒÁì¥_ˆ}ŸA² #v`ggn‘… FÙÝý]Àce>ÝÝÕãÿ¡¨ürxÙ2HÇÜÜÜý¡ß÷§gê›wÕžÝá ‹æ#þ z1«]@ߎNÏÎÍMËt½íÏí†Yj0ÙÏ?óvså^¥SW)G™`Õ–öîñYüºÉ¿[ð'&‘ük¼Üó–Êá-ë.pÃð±ñ)φ +ôXÒŸ(>‹ëOê!Äz•×s9ÜLUõ’§Šý¡Zý€ïªÕz¼pêç9Šñry•zí› (¯ÚHÁëÕ0.U@u»1è‘®Tuá# Wel++²†@6ÊåÍœ…H‚r +0:yšÃôžÌWÚN€÷¢ú(+üá Î ØÂ…6JFRt +wºï;Fî!à +ò_þÅ”>´ã@}›\@Þtö>˦Hôíí]&U³¬_ª%`ùèKÂ1õ\œÿW;ÐÐÌ-6æ†{/Þžn¨H~2 +#‰ôƒoF„lÀk3‹€E «„È•µÿœ]ºß™§tîÆàŽÃÜë¸Ô^W1yy•{«½3ñÄz°ÿ+ëô= ØaìÁH +ŽÊàM6“ð 0mÀ%ø6s;(·›D†¶*8>Ä‘Ìþß,ì !ˆþ/ý"Ž>;Hc!4¡ãLéûÅô-¬ ÷ßh€“+Põ¿ËMަçãå€,ÀD`¨÷ýéÛsûÿ`GU;`´°‰Ñ áŸ|´Ù› ‹³*@²ŸÎg¦ØÉjv"œÈhñÏç"[Pj#¥çc²²9̼ +y€´4XBºèç9ú* ÿ—‘Úûå“"«Óø°ì¯êa\yÙã("€©©ÉÂxÞŸ˜GLŠv$µe䲿ÖÄ âßë; H„ ÕjØòþ¶œ¿qS= -'ü§‚qfü¯žV*Hþur˜¯:®û~Ø.1v‚8ðæèõBÔÝ Aá‘aà€Òn—šqé.â› !0‘àfj€ö‚Ù»-gç@‹@`nï¿ç2E»Žê}¿ª€ÛµBÀÔ€dúâ@ð¹`Ž`ÏhåÀãýÅÆ§]­5àKÀŽw^¾ hÌÝ_Äë>›üž¿lÌMß¾oõq;ûÛ<¸{#èÝĘÀÞÀ]8û±P¼-àæHú4åO¦,÷5™´¼«äÈO¬AÈßÀ_b Iˆ¼=4¡¿°s¦·TPjû||†dÒÕ³a’Zö— Gd`Y( WÌG„^þMË]ÀX]} CÏnˆé@(F囹<²lã‹ã`#$Œ +@ænàÓzÛ¯Æõ¤“º’¼í1 Á$PØNˆö…Ï(Þ¼áá3kT{,€D $ ±ÞlÌcU| ZËÄð{š!hOÅPýo§ ܽS(áÿ÷¤äÔ8ÆwqÕÅžW(”G+ˆ€ ²8Ïìâîž­¡Ç€»ûöçûŸîîl™ˆoß^ú)° g¿ôþÏ]ÞŸkÌLÏ1 °·ÀiøGèÏ`à&…~*Zr¦XA˜7”`=MnÁ)Ë}M„Þ•Õº§jD…9a’Ý•¤`¹<‹ü‘ÿ±5à.‡üsd²AkþÀw­n©^aüæT~…u ñ•xˆMæþˆeä “áJßé\@þ>*FÇ!š¢Ø0󓘫çm`ÂZ\zÊ ÔåvÀÎÁyö–Ôü ‰+/SÄtÉÌ`‡¾„!ÑèÉ”Z’˜y–ïËГôØàØbãûÛHëIö1fhØÔlÄQp,|N€bA'!x½@ d´ë #¾ƒóð¯<íX=€Ž`‹ŒÈï²Û3 ÆOrjk{wwgç‘9€Gìी8z!^Él‚ÞHÜÉðEñ}Ð;Ͱ €Ü_ÜÚ?âÎÿÆ  ç;€ÍÍE$ñd8Ÿõ·”¸¯2€ý†ºä™t6Uµ·Â>Q€Npñ‚`ÌsàhïœðOfØ)ƒôæ(>–4_‰~ÓKbШ,ÜC*ØzÆGcÈxKcKêËZÖ!€ ŒIù{JcWI{r­¬ñÄ!PäÀ"£&ÛP[FY¨R9ð|Î+ T[óqÉÎËÈ&„yÿueß?ª´X.€kÓé +QòJÑ@#ã‚'À§–FK—¿Iá `²-às÷tä<¹í`.aú62ý*ýS! ~g( Ê p= h;Á÷澌ý`Õð ä¿KÂ_q’8tp`'ç5È@ö?Ýßž…Ø·2€m>dÀncûèqšp©ú% £]ŒWy +4‹˜ÏgIßà%všÍ¡`÷G:¸½éè!ù2Áž®Ù7€E { +ÀB€Ð?yˆ‰I~–ÿý€îj„6x¥¢ùJ”!Õ%ŽÚ€/4>î*`ÉÏÃÃ/-Ãâ+E][kø«ÌÑöÁzp ©0½xy dد WlŒ]ž cäŠLý+÷@ôH²}@oé™ ¹ÂÔ$2&äª|ò°¥˨G$.¾#Ã)Ô³à¿Ïë >ÿï" p3Ï«óÛ´-]j¸€H p@x÷ÐóK§X5%˜F²ÏÝ ·ÇRÀŸr_«¤‘R Ì…Âù{P&ç:¶ÇsÍq^—Àqz@ÑP¾t€{’è¬dõ€Ø¨“p|{ýèrgÄñ"€›º©±xßòúƒ–÷çæ(¼Yõ–ÐoF#zHYÁŒè@ñÂbÌsÀRýNQà fØ)ƒnPéàn+b¯zˆò^^sù j5Ã}þƒÈ°¼„Ü=YdˆÚkaTߨÐ.¤$¿ Ù,Ùd^À÷—&‚y&ÈÖæb$Gz¦8p/y”wú¾Ù*FÁø W,éSkùœ{…õfüd%«T$\®?“àï¡0ŠB\b£dU༩qÜy9j³¯2î×ä¦ ©M²“ÇöÀ9Î Ìì[%òžý0 ™ú³àÖ€°Ãô*ýëSóÊvœº¯gÊÀ‘œ±0up7Ç`“eûŽŽv;0ØY›/GÑ‹Ðå²ÿ»Ò S÷E–ôã­*?–¹™ÙƲ€‡–ÛûL€ «Lä¿Fþ+Z`[W 3‘åYþŸq¬ìf E>ë×ã­žö–=¿Õþ*>i…AÞ +Ð…"[ÙÄÕp¿'axqÔ8Šš­Vü¬„ÏžDaüëV3zkª4áa—Ö¶oÇ…\n¬PxûfnŒeãf T4Ñ®"¼òž·à*žÄ~À'¿n=ÁÇ*] »6c6õáéÃÄÅW8‹jÎŽÅ»F~¸K.±}ÃMïYÆñ“@£—faáBထk£`m¬Ë8àœÔ†>€ð’â… zÀ\C—H-ÀëWËåV€lp1çUAÙ»€ñ0\TV¶ñ¥Õ\„à5ÙæËÂôBœqâH‚‹€à0úÒÅû˜ú.çæfgÔrÿ¾ú5úãm1H³L[@"Y£-àŠøþªu +ª@fÜ{ö€ÿ³Sü óq>rç‡ îÜ)Þ¹311qçέ±kW¯]»vuäÚD¸ƒ÷;c£¹ÑQŽóÇ]°§v/–øå}ÔF_·°#…‰Ñ1îÄÝ‹ìñöÍÛäoé·ïpß¾˜OØünþÅ \äU^/kâÏÉ£ÞÂEÜQ«€…±‰">ð‹[ÀÄÄ&~p «<À-¨4VĦ‰1Lxã9úáUþ ÚéÎX,R0hæHc,È_&ød~¦@i¼sø€_ÒÀ(åç*éÎ=¾o@®!œç€$ @ÐIÄ_m:úL0Ãîxl]AêpUséS€Íä)À>€²/§:ØxE°ÉÄ‘¥ýÔ(ÝËþ{–‹®1Ð'Ÿl76‘ Ä“ñÍ7ú=f8S`£9€Vf -ñfÝ¿,ÿÏ–à_W=€è)ŸO9Àîq|ÌÆ´÷T᯿<¿ +Ö¢{Eï]v¦†„2Š~ɺÑÆÓ/bì~·Â§_!)eÛÚ¨~¤µÕn…Ñ7¨q7ê…Ñ/5zp{ìyµp 9 ‚!@¦£§²}æºû€GŽ?Dú\¸žŸ,,•‘6[÷aµ0nÅÕ°K?eË¿bß±M"MÃ1’y6ä ŸÀÈTøV¬°ïß0¢«á°@S,Ìû0r×{ïdQ´Àè€áL2 ¼¼9€Ûú—Éý{Xd½øÎ'r˜Ó0×@/À­g@Ô¯–؞瀄ü¶tqçÕ:€Ù~àó£ƒ ²þ›Jk?ùØ9€Í-åv¿_xµ2g€`­¦øHîµ ÷¹€™Yk¼7@îScö¶÷-ÔƒLRã/öÛ²pÀþäÝ¿& ƒÿ¦«ÇÏâ_azƾþX1Xá@l§ñ5ºåÊD£ú•˜ÝöJ¥`=Ôø`@Ø ÝZ,Íã‚ô¬F+±,= +ðÙ|p¿¬ûùÜBaœÅlË,§W¿Â¡Ã½c¹IŠU‘9Ža‚×ÊÌó//—ƒjy°õ¬†* °‚‚u¾£‰c>Ú(¼yÏ+‹ìÝ•¼Ï¿wÏ„¸€pP(0¬È`%ä$3€ +ÀÄlÌ5 ÄP>ñw Èo–ûKŒÿ x8€Ñ±nàNöÚp® +0ò¹è}Æ{z€×ƒk 0ÃÊývl\Aê ö +ìjòëÝÇÀæ&»$§/;Ö8ë:—ÈùE€ÀJi”ç7 èú qPˆŸìm«ôç|oÛ…¹!ò¶‚95!ñÜ”º¼ú §Srâÿö~¶"9E (yEÕÁ ó)¨VA":V*°%¿ø¯§€| _Dµ’㘕çS?Ï\] å1ªÁ:’Ûju•²2Žb|,Àmƒ¡ã „ä%7¶Çô+¼¶¢ïWÃe—ƒsƒçAPŒýå%¶TX^U1  ª3ÀÑD¨ê?Þ»E5uÆáro°¥ïÓóÖ=æ-:PHt p!F.“ÅJÀÅeÿ­ 0`Î[ èÁ>šàhß· Õ” (@& ¸ØóŠÉå’,@ÆÑ0QŒP;»[8íã£ÇÐòwÇ \v¬!𪠫‹p2^p+ÙÏêgؾÏzá“Ä8ô wS€‹XM»bg@îòžÓ§lØs†WÁ…Ypæ-ùÀŠæµã ÿ]ä¢%€ŒËûƒ`u#€€SýkðÍp}•!ö–—§¦VÇÖõØž•sMnB®/‹ãáy +àÎÖ8ùYÎqÈñ¿PàóI%ý>gØi¹\­‚eìHæS‘ì+|ÂçUóx"Òñ<â–FA‘,QjžJ’×¹efÜ胿·“2Ç|¢MàªÒ¨~‰Ä^¢A{€‰2è8€ïƒÿlvÀX`ÉϹHD;ºøójP¿ÀÛðùý€eH5#¾ÝýY€Ç¬$ `¶—˜ìXCàU˺à<¨€USô<èîÆE +}ë@ç  ›¨´Ÿ¦ +€À¦X9 ð×Û«»SPÒÂ_ñKì>1÷V.÷&kÞÃv8€ ¿ðöM¶†S.½¯¬Çþ³£ tÌz€a©ä?‰×Ö'dÅàú:û Fžº: +ÿÏã¯Wë~þ + w°Q ª|€8H„ûOb'¦e8ÖZ,xù‰‚_ö–g;X­5’ËÑ­×p40\¸OYò«XY¥D€Â¼èÏaä¤}#×&p›:P É~ª=aÀp!&2ƒÊÌ£ü® qËà‡d¿³|áWT…ÄàÀ|¹°~M8  ã²yÖÊç=¯sÀù·{€é“脳Â0 ðéî.€=„]ÞèXÃàŸŽßõ€Ø`ç!gF`°èDS'¬Ðw` ið=iÌ©Ëà3Ôœ%€¸§.0@ÒZ€C'äèÂÚ¸ÝRç;V‘ DpÈúWÙìž#}Ðf—ƒ:ÎM-É(C_-[§ 7(Aȧõƒ_!Ïu>|Ž\øV!_ð§˜^WÉ{`É–—ì/þ­@ü§`ÓÒòªÚ)¬®¼8(H8Á"€Iøäh®çÞ4 øžßáŒ@P(´@_½Álò6éÈ€„¦ â;&˸O|ÝfM@nŒC‹ ¯Ÿÿ‡ßÊ.pàWqæux:€£í¹]€°8H€O»€*=ÖÈ€’!Õº ìPÃàßÎTÈÀþþæÌ"·“¹;›[l ( €­š]V7‡À+—l6~47Ìd]2éßÿ$« õýÃ=«ø^ÐǸ;Qße­¼Þ‘k dm­¯T}#—CRH Õ+µ`bÅ›``ž¹on#ÖX †w[² õ\&y ¿N ëö¼Ñu¸«ÇÝ囹ë7næoä®ä¼¾^guݦ‘½Œƒ}Pð&§þ˜œõr#ôȰ÷ +û (X@–òyjŠ[(º, +ŸV½plɲÿŸ}@àF’r¯ÀÊ£ù±·liÁ…„Áeo†>¬²5¦ +‰E²'~ê@¦6VpHøµãÈ ÀðeˆÀàÕà`ÿ³CÀ¶ì¾F—8L@cvº¤Š@[ ªZî3@%Â58®}xå§C[€ðÿð?Kÿ3à- E6N.ŽppÐaÇLÀgtvsû] fËK¹7®k¼tðºþûA4Q"MÄ>ìÁB=¦éÜ;ÐS€rP®×ë-°ºN€Ág1àòÔ’?–<Ï«‡þÍ;ºÉÑÙ —¿× }¡ÓõE¡`I6àM\g>vO-sfl_ÆÚ%ùüÂäTþ”Ƕ2Ý{5ÂŽSË>¼ p‹ö¿`5 ¯"D»Ã‚ÏÏ‚ü˜8‡9ÿŸ{‰ ãȾN€É?ׇ^H~L¨@ìæ_«›ZÝ([g}a½ÞƒxÄ_îêBvw.áé/‰W/Ø„™™»ø½…ù„…ÝÀqßàÒøn8þKøµ9€³ +À?ì,œ @ýÈ +€Ï&}>øí©Û¾Íé•àx¢Ä"@ vb=× ¨—¾ÂõjT—ÿ‡”Wý²¿² %€ÝžZ^Û(W׫죾:®À£CàAêîügáHxþh$ǰ6Y‡ LiLÃü8ý”biiT <Ç,"´ÀžÜ2Žù82(ЋŽà¾ßás…ÔBp_s>!üŸˆÂ—qYØS[STzi°*`ÖðAø!¶¥@­-ý—õ€L³p¸†ïO^ý)ÀææÂ_øn á˜)t—™OîÛÜü‡¨tMî€à4¸+1·ÉêV˜F\³‚yI€_ è…å? ˜fÎCÿST+mV®­³àžpyƒf”×Uò>úd•5~Ö«õPàFþú•‘뙈s` ì‹qLyPx„Âü<‹–Að©©Üª¾à¨ä“ÈH¸ÛMª5 Ǽ?%`‹Ñ üˆJn/€û×À|JÞ.ºá‚ÃåíY…sk´Ù |MsÇ}¨ðÚ Æ]nâFî♠οlïí õ¾ @&Ü­| +`,½˜ê;tûŸ"÷O·H~¾áæ$ä?’[š~ +À§à·°ðh <À…ï†qÿ¾é„Gl°ƒþ,0ôô§tƒÇ= çp.ê0¯Ö¶ÍÇ«45JšÞT•ÿÕ„’c:j¶€»²õAWâðrìIµ>måˆ~y¹¼<µT Y ¨À!°SÐùu¹A°ýûB´î‡|žD'èׯçn°`!–æ“߸âÜ’Acçob 6»ß7óÞµk>Xù CùóÞµÜ5e‚^. 0l*ü·Ú@£Óc£#ªÜóÅÿ¬ +Äâ~+øçc@þ@s®«O@Ƅסl^ÿ Ž__9<øC)9€«&À Ù¾µ¹Å^å>µ/AEûÃÃs¼†28€Y¤òç½Õ@Æ|Âû5XT")6¶LÀ0Yi€¿š•xþ½½‘ð8ž?iEáÓ',œº®Žq +8«ÍF<¿)†5å¢0ÀÆèE;jµãf‹-yž‡ß}}EÍv;Š[Ï^´âg[A~l4aýóÍÖÉÉ‹mìyl +P¸‘»r3|=kDÑ·A­é‹Â²Êú˜»±-òÌð +7Ùuiž ¼ªä||Ä’òU˜ä£šÏ6å Þ{åÁ,½wÖ_ëXÒþjÆÉ„C‚ ·c±žüaŽpáÀߎø)ðÍmìa½j7Ê€ÛîªóhIE àµñ€ܯ `˜LÈ—”P\Lº<ØOο³HÀÇ<»Ú ‡‡ûçÔøÁÖ΃-sä?`š°åˆ=,1‡Ákx +°¹9†Ïžûž¥ð&“Ê•‰`ÀE€ÔO-Üâ4K$]°÷‚|p¶D¶?¿²P*z ¥ù‰œŠÖGóì@¿R¹[ªÔÆJù±[lñ»À¡µJ+• Â/9~V¥t\YSÝ@v·ÏwKübÞcåš84jÝ~­­”J^{a[áR¥„Ó³Ý}_, ®Zžü ÎrWß¼–y3ò32£WhÝÈËãgW¯æ886w~ë*†4Ÿ¯&é;óûœ¸sþÿ þ”‹A@i?Ù<­a°´†€ïinrÀoÙfÀêðü «ù£^BðMÆ( _ ¢p_ЛÔ9é–ú»´×±Ÿ‹^í)ÎLrS`@°óà‡bMÀ#ˆóJ‚Œ×ÃÂÑr(¼°9Žÿè¼7æH)0ïµÇ}Cßp'éùg:€~ +à˜O%¦JØZ!²Ý‚‡…lBÏq¿Øðí|~Ò‡ÁÁZ­äqDÐ"6ÌW*+•ãøym-¨ý2ðkQëo5—ÿ.áøøî/`*+,0,?äPžlmVò”ÓÈ@¹B¥R¼[IšñöÅ„åíÏ"ÿÖèu¤ÇW$®Ú¢ž[ ›~ãš“€éùM3üü‚{òWoéO#8×fnÂà#uð­·FmñVO=…„,€ ýFÉg„‹èO¤­eÿù&ýµë­>8¨Y õ$u:4Cú•A. Øû–8b÷G"‰À§—öRžgQ 4IîtÆlBãßÚÚzð€°/ šÀN‡Äë¡áh9^GÀ&øŒþyïÙ¹mÃñþõ·|’Nê.دõu·” H²ÓnÇV¸)‚_"+ŒXÃ{ è?|Êú¨Áòð›àçi«Ý†á¯Û3?ŠKìŒ'Ö£èëvøáqˆœ çÀ¾êlò…­Šzó‰êêN4Ãfó”ƒùEѺ¾ šåƒ8(–˜õpúÓpáày«*"Ì_Á¿r<‡é&' «y^¿`5&ÙbHYÚyîùÔ»ø8‘Ë¿Oøá»ÉWXgÄù”ÂrÀŽÕzÀ_e bÁÂ!ƒB¦¾|˜¸3ûŸˆ3Z®ã[×øOû©*0C9Zº®ãdÜÉ^âÂ%@§¦;;v&ÃNˆôtˆ‡»÷9Ò`g{úv¯€€Ž[›TðèÑãÝG*à%è^††±r8¼Ž§›sP€‹&UT@caQ_ÀÞ…^Œ üÂ͑Ҩ0Ë}Mî€8€×ÑçYP±i.ŸËYU`(@.¿ìGa½ÕëayoB 檂?«q ®,4l®ÄÁ=–ð±å ›íjøSøy=·G2{Å ZÈZ­^ +’$^%G|6ù‹‹_a;N¾ºº„Õryµ°“bÖ:àNÆ•Õ *ò£š6ƒçöeÀ›|+ïaöbuSƒ†\@8($Z4Ìö,Ã#õ5ÿg8 ½¸ˆ/h x¼Ä0pze£” R€l;ŠÆ¼HÓËMû87ÀÁÑÞÜ&;Åå÷û €u ÎB@pŽUw¶öw· `[—.)‡ÄkqHäáÎCx“üïeçLHð³ ïù[ ¹À,û1õwÊô8טp ^õW஦ãKÚRýëzh©ªçm„E·ŸÀC8€õ øÀgý MÐ.E®|Ÿcíy&PFªëËyùõ7F®ä½ š¯,d ÿúBGï œ˜'¯H¶UŸ€ak{¡UÅ7ìª4 7Âz5\¯>iJ€p=•5]wu#^¨¨3ÞÕª …›x7_(‡ëk4†Ïž°Bc.  \b1{ý@jþ¦À’~ +‚/hè¬É¿—à…;vI²ÆÿWð`ïA`‰¤ÀøY–ÛMj‘ž8̉$€ƒ1áe=yìN*m5°_p>€<Òc@`S§v)‡Äk)èËøž÷žî>xyЀC·…üÀF"]ÊôñävLj(Â=Àø$€Q|°‡”µC:|2‡Þf‹¿p£ê³â, ‹ë +áÆ†žýkÜ_ðë'Üø$¨Æ°öAÙZ"U‚_ß ¨NØÚÎ6*6>ª ‡ `ÿ WËGÈÞŠ©K¬›ÀD?âˆå1¼FXÇÅé®@ûzê³AáÂýhÔ£RŒçóιë{…b¾à³¼›ð»á œ. 0b ³1•¨9¿Òq?¬`/¬pg ;Ò7pØTz°eðèñÑÖí FAÁ—Æky +0Ls1îþÖÆÁÿq˜Bü—äàG3¬ €ŒïEšð'!ù•À}:t·4X@`4Èä¿ + ðóÑ<­¼!ª‚cZcÿ`é0za´²qö +ÀœCÁ#ë°Ã:À«»[À‘£R%\ᓃA ûi=3'á:†oõŠpò©7LQ…'XÿÉzð}°«àl=ˆKk°Ü ÀêKž|\\ÈþM° úf͸€p S­Án°•Ïáø¬Ïñ>m È7h®åø™¡_'GK³.:¸³½@ý]½…/瘂Ú2ãRد‡Ÿø2p¸ßh(.òxvÎl1ö`C,9œÇƒFà À.ÞÖxs“=7]¯Å #ûœ3H +¦%ŠOƒ´ç7ÉÒÚô€Å9> Sœ•ý1|>PÖY©Ÿ©6KÉóoŽä98ûó¡"¦ä,(Á'HBVØp´÷ý¸6™þãPËÞä³Dµ,[‘ýª— 6 á Ñƒ“ŽPpv™ ê…)@¼À@¤jˆ€Œ€´Š…¼ävÉÆý1¨cpòß‹nÁS@ð»:öëVM2 ˆ ‘•É8xl}„‹øoä´À..Ëo)\S¾ÁÀ%—ô¤h¸“½,õ'ì™§C”‰`GKƒ;/Æ"kk2ÔÄ=(k5ìI8N 0 @`|ÜcwPÖ~°Å2+Üùt;›°õCO—k:ôZÊ6Ù%àÂÿÄ'¢%…/™úƆúÙ€·øÀÕ ÿ»0Ûßè/V5€ú€`E‘$Í]…4äÇúF³Z^ž*Lú¥ Z‰7Döj€ä3Þ[k‡Vé8Æ‘XÚæMIL%üòRž­÷roÐ[”_”ŽÉÛŒrô€ì…ÄôÜóÚ 0´*««í…XmÙ*Áù;ŽG媲wÒjXKÇ*Ã"ðzKžwüv±0¨Ö›Ð¶jýägÍ,\@$@(0ć5æ¨?ÂRþ”ûI! &&ó´ØWYS̹]¥'Ù.Á¨îd/Qÿ +_¾ Àpæ)€½Ò˜;ÌÄ—ÞH… ÑÇÛÛ™›Ù9„H(‰Øl<Øy̧| È*@8ãîÖ¥Š^± @˜`XÀK¿Ÿë/ÿ㡞ª> Èï^ýƒ´ç7ú;¤U;ɿĀGëþWš¬Ã£/÷îžvv²OHš*‹J̰’L~¹FQ«YÇ«ª÷üõ¨µÀ)Q 9kf¯I1ÑLž ZgåàÖŸûðÊ!û #UjOá!½nU˜ðjŽûNa}y¼{çQ´qôpCô7ò³5"ˆÛZyÖŠb\®€….Ê´D•p—ëüô]%+\¿Q&ŽáyÅ ¹1ŠNZñ“'­Ö‰ÃßàíÂA^LTU5`ëüeò¯Ü@"ËþñQTw€¤Ï8È€ôäv§ ÀôKƒüg €|É2’H àL?¹¨5,˜!’ßXîsp0\BƒceK–t­;¢ 㸆_Ô~Ý~R߈ë¤ô$\ !9®T<æ ¹Û†áq«DØú•ÕP8ƒ¨õ<~ŽCÆa!_X +–‚®΃û?];mÇQÜnµžá’ZíftüôiÜÂ×µèÃÚ1·µpà¨}ÍZÎDaoEð?ø"jEpÿ§íöw-H@. R˜°ô›”7@‚+Éw   &ÈPz—Ø€7‚Ë׿Rö¿L€Á×Ï\ª>ñ[V@eÌè€û öaö@ƒƒÊ°CGæhv¶v·œ ?½šè°`{ûáE“*>?´âOÚFÿÁNÚó}ï@?¸£wá3þÉÌ|¹Í`­$ÌFT÷ϰ°°P¼SäÚ-žû7ld ù•5ns=ãÝ*b/l,-ÔÖ*~Ã!Š?¼S|‡#íÜÁ1*wJ•»üQ±81Q-XânÀ‘u<2GZ`mâøàîÝL6랇 Õ*k•… *‡„§ÑÉqzÿ/ ¸ûAéní\ ®háƒJ”ðõÂÝJ‰²pw¡ôÎ +ö¹[Yá­Û/oM°Þ?ï+k+++îh  + Rß²öòùÌܧô·ŠÀfR áCL´YlçT~Èz§ @QÁíò°¸ee€ç•œ#â?f®€ã¾{M»¸5$íA{9ž"´CÀ2˨ÎÍÌñ$ÅÍÅÆÖƒ]à-0ü[œ¯ç)ÀËdß,ÄðóCå +d ÖöêØn1B1QîHî# Àç­‡®0iµ¾N^§§§­0j²*ßmz>_8n·_¼hÿö»ø4¸åù2Æñ)‡Ø‰ãÖß×âÓï~×úï¿ £§íö׬ \ÃWO‘LÂ;·~„Û`ò'Šaô<<æÀ”ØÅÀ¼¶v£qGœ ÷¾ ^O€#óy8ø\9 þ] ×kP˜ó+}iÑB`Ø2€C +€Õ¸bÇE@dfd£Ó 7 åõêºw}„Oë¯ä9²ÆO›'ó_ÿ©5ÁÎsY©|V‘´¿¨ Ÿœ£«ŽK} +Ù?xy•=Ï –øµ!?ÂBÀ+ù¥Ö|¥áH½ڇï+­<9 Ϻ€V¨ê‘ºÆÁüj¼ÀaËø¤µB.Ÿ8]ø¨ôßÁú*x.þÛƒˆry™üÏ—!õŸBþë·ÿä˜ïà"C,M8 BÈÛ[5§&jŒ´Ÿ}ƒc¢ëO³úµmC°v€Æ…‹‘ÀóK:TÇì—ÎП÷ +â;‘áŠöÙ-¸ë™j»±-ÐSñŒØÚÚ䘠И GÊ!!˜›i<¶3ÉK0lÀ… ß1 r‚_ñKgÌ€ÿ½/wø.P <=€)þ†{±Î»é)üÁ–vù%&©ý³æ·Í`ÌSŸàK¬Ää2ŒKa‹Ìq2Ïñ 8D¤J€â¿·4Æ5«ípÈJË ?.ÖŠ_0u~)ˆW¢6Ï ¸‘Ÿ`›;>5 ’ õãù¸¦~NÖüµ0ø+ö…ÏZ•ZéW|ŠY­³+#ü€·kfÁù÷W¯7ÿæ¯ÿæÛŸI1R¸€ppü',9IAfõa:˜DHh˜Qÿs\ë8óË)€E¶½T@·Am +@bù;Àq_/^?»ã7ü)ˆˆŒP GEÎdzd@ ` \ÀÎÇT•°“ ÝÝÍò,îíH9$¶q…ûsÓŸkøSxÑ ç†ÿ`eCœaøÞRF UÒ£¿î—;zäTp”>V«ê¥çc ìÝÀ¹®¼1r}© zžüìg/êфϊ@HËáñaàóKµ0¨¨ò¥üJ±@J\7 ÿ½©QŸôÔ€•bþ v7|%ßúÛZ©M@ÐààDQ)üˆ'•Pc ôÇõÕ;z†p*À.ïÇAë ßÿãÚ)N¬×›MÜý:»2‡àŠ'éüŸ0kòWß4ÿê·,ÈÀÂ!… ¶qZÔÈlòš¦_ +–0ÿ?ÊšÿÆx9|OêóE0€3e +ç—ç¿ØYç•(q? 1ß*ˆ YþËàâvq€¡ÞÊXld © fZ€…€³¤‚ÀÀ£=Ìêí’¬ 4ìÛ7,œ ÒØä3ŠnþãË×äøÀà°KÜæû¾²ŸìÐíÀùèà=@¸³àà Á1‹5b)Ûèñ:Ÿ¹W«åu²ÀŸBNýÊÕ+#7<ŽÜñWýÓfõ Y€’¶³f RÒ’±õãš3Ñ”2„I ˜´ÎÅÝçª xÅ»uÜ>)rï4¹> c{˜ú€Úæ–™ÍPïä®j¢ÖJOõ(€BµÞÄíÖÿ©Ôþ®UûŽÕ`þ›Ê2à‚ñâPfœUéš/XÝ  £j’ŠC“)Ì.ý'XC:/,ÅW›!s¬L¨“ñu8Ù:…€Hò8[p^&@l“ÕôÅë穌¼C¼ëõ!GG‰ØÞÁ9p˜aÂ$°õ`k÷2 uÃOŽ”CÂàöL£±úïwiþ2ÇÔóàþíóÀ§8ppt9`êÀ(!\ªº/8‚ÜÇNsx³€ÚûâæÐøþòdny€7rì¹àEóEO„Lg—ýy{éUýõÝà#V e"îòþYº ÀÆø£>+üØg6¾r}4W†_9å/x¬pt?‹°u7â@¦Çg^¸2;g¤‘H§ ¥( +×ÀL }ã·•vÜ +ÃS@ÿ‚àɆ²¼<€ý0ŸS­7ÿúÛ¿~ºÌ¿ƒ ˆ0uÌ*{ÇF¯Z @‡þ\íA|~¸Íº€n_¹ä_àñ^ƒP@§ à“ ž ³Ôdèo…€¼¸«ˆ^=Tïûf¢¯˜ë°Gÿ€=¥MÚã`qfš8€Áü!¤#.³­M>öí˜=$$÷§§ç9|'K(ö·3 +0\ÀåçÏnÞþ‡pÁMè= S‡Ä0 Ÿ5‹¸úî 'Lì×pås#LƒÀ +crÈ@òS¾¿^­ÿögˆ±ÀŠÚVW}ñ¿úb¥D%9H + üX :’NA>(ÍGŸ}µÈ +™t´>`=§+ÑzLH +ƒ—aÀò·¥¯×*QT©À,@ÖõÓÿã¤þ"¬² oî ]ÐK (¼›jý§ÍovÂúN¸€pP0©clé‹€aø0igQŸã?2ê„ÖÀ4“rrØ-€†}Çè/£Ž÷Nd— ȈéBŸš€V\öi b=⣃ €ÆÅ7€Ô< €s‰Ø¥íîn5¬pØ÷¥à²·gff;ŸòŠvyÒíC:ÇòsЩ8p¿,ð5‘Ý +ÈnèËT%;€G)󓉥‰8¤0ÐÝ(¬FÌ û@.7rÝ#ÙëÍ'AyŒýë§…íªr ÞƒøüheN4ÇQ¶®}·°:Z kï„¿XS)À7rW +##…e +@Ì6ƒçÀÈÞí»Q•€…Šy ZŒK%Éõ;èØ†IR¼ÐŠk¥ãyVûÓ[j=‹¢o£µßF ¿vêasã™,« €U ªáÆO›/êÑ×;‘ƒ ˆqL¶0úêUþ¬ D|¥÷ª @X2À™~((„ÀO çKƒ„뻞œçÎQ¢[\¹e®N÷õœg ˆH ûiüS€»÷§%4 ßÙôHÔßd¯ HÖY¿ðRèY›Y„àÿÉòŸ9ÇàW¤O £ðG|ž m+ +Ç^¸h1j…€ØO£ƒÈ{;GG‰é™”€ØS€EäÿUÐ%È÷ò˜à +ûÚ»á­"}®7›ÈG••Ò"«ÍÁ<@VŸ€À (f î­7 ÀôÔóF½{aíÎݵ°T +üë#¹Â#ùür‡•¶¥¿1Ø|´â&Sm +€*³ë‚4íOžKDÑ‘ǩݩÔŠ¯¡ ¿[;>E⛨òÚ0ªÌÑ´°mQ®à³Œ£5ÿëI5jÙÉ„ƒÂ@`ZîØ+€¨€°B@‚QŸù$öiù¯j@g@#Ü醇ã<4À^Ì É\€ýʹ™IDÂ}½xW–˜^$u.Ϊ2¥ÿ‰l³B<¾40›:x}ÖüàÀ6ÀÖNñõ{s#ûŸ.NÏ@æxCøcvñ·¥Ê46/œ@CþTÂ.Àؤi`˜+Z\s±» rŸÚ?œ € €ž ht À:£=yÀ§0oä¼òOi®ŸÂ;­v?nZ•VŽ´" +’{ÎÈ}N`&ØT¢¼Ñw½ÊÓpáî‡í¨îç¯ÜÌä98xVNC×ÍÆ‘}œVZõú““VÀz²&¸²ãTŽ‘ÊJøE1 +kO?z§¶b$ù߯ ß°á›hí;6eÄ +teö ¦ÂXëq£^ožüÚn¬ ‡ +…Šë>0Γ$NHwóœ9• fʲ EQ@_JûÁyå^Öˆþƒ@’RÒê/‚TAÐV ÀÌ, ø ÀâæÖš~V|ıå6·ØÈwh8j>ØÿôþÌôÌíÛNÜM;ìA~.œ¶/œ6U’8µ{08ê; PHö@ß¹XAÈàýHŸ¼éìÎÂ@ËÏqÊÅûd¶Û Ò«#,:ÒŸO˜C?¡¢1p™°¤NuðjWÂ= Ô%¸Ynv` + ö‚—pËK^%|^YðÃ8(äù` UNõ ;÷ÎØåöÝ–êût*d×~Ò09fxüÃ8ð+¿øºr·µ[íÓöV‹M +ÛqðÒI$`CÀ€‚Ê|\Ð<õ ãÅ.¸€p`aŒ1Õ€`zäSf4HçIwñK ßDêøJ@ÐîtCC„7¸\4àü2€A þcÖ§ €w•À.Òê‹a‘>ãLè :eü·à442È£ÔlR@1d†~9jX \ÆâÌÌÜôí¹M–;²h´K²Mz^~:õ_X7q}òË£ *ÀŸòÆ»0t½a©·;@/|Ä_·*?¼{ü›Ól¿(6Åûf¼ökSª|š~ýöFžµ”Xþ1’×HƒàÏ c +†©`úN(Lä2ä·€Šû! LçÇÔ1°ËˆþÌœ)Ðñwº!áb"`ÞŸ0ÀÐe8‰èпÛl±¸ŽÅfçNJéóS`7ßÜh8Ü¿?=3;=3³ úóySþÝGù4PüßÁºœ!á¨=T¸ß˜™C.€WÅ»Îâu5¢°¿âèË/wXæ!Üw¡-ô—}F‰ ÿÍñ0S°øXtÏ‚¡Ž`7!÷ïCuX² MU¸ò8bw;>ɸråü2³ûUdž£x"@BN@þC)ÂÖJpa­ŠoÙ„P„ƒDl(À~6ã7paX{§=Cz‹ÜUläÆr9jUZÏpZ³ }áHw7n¾‘+°Á"¹ +³2"ÒRð!ïûÌ×Ë‚<-µ¢ÊD壈ý”×ãR\Çq«åòqøB¬fí$º§q†Üœ)Qû2…‚ATí¤âÓH•Ê« Éÿã3E‚åð2 [p¿L¸©ÔîlC‚„wf 9µÂ9 .ó ‹ÿ¸~^Û5– ïø2àu;씪€,À!é‡LÀ ¸O€ø˜`Ÿ:€S" ð =ÿ0/wëÃM, Àš@úÿï=dÜž¯ˆŽøüË£mG€qI¯anQ‚qÃöé8€àfÄÝ8„ê“ÿ– Ó!ðœÿÊÞ0é!{Ía¿=#Hùr¹Bð·1¾ ±SXd†ÞØ”¶ý⯛Ívx·rÀŸ¸Õd· q+Æëô¢„ÇP +K‡}¸óŽyˆ0j…ùÜ•ë°ù¨lxKíŠ=0ö¿†”Þù†Fô¹ŽuëÆ´-ðÉ r,^aT†°0’$&T, i€0aÍ+¼­Ÿæn°£"õ…*€sà… ÏúAH`á ãÈW{AÈö¬€ °©0ëúñ3 Xš¨þ“þŠ!‹C   7ÃùR`£÷ßMŸZE€‹Ê-®÷ÀˆÄ´PRËÊ3eöw©(çÀ˜Î˜ï2D ’âð¨ÿ?;3KÈ{öÂ2œŸ7ÛÙk¸èe÷?$ìJÌÌö8*€Ú\w°ó€P0ptôåçû mKåX”Hv3ðÞ,YϙدÇú ðwù¹–Ð,Î5FŠ Å…wì ÌïÜùÁ‰1w:vÛ1?¿p‡{ŒæGÕ'ˆíU|§ˆï‹¥Òlz§8¿P*­à ïàPXç4?_òJc£…âüìàƒ‡q7võÖØü;8ö‚§ïëÚ €ê×8À_îìpôK ‰Vß¼Ê~)ø#IùÖN¤¬íé°§Û’,;À4ðU-3¹o0ÄÕ Ì¨¼¯“þËøØÊ‚Ø=˜ XŸ8~2ÐÇNP»³ ‡”÷Y`ÛK:Cê:ä²»âµé)À@‰½Š%,iç7ÜH°ÈÁ3§g襰CZfX«>üëR0 ྠ{wß»µóàv +â?îÿð°Á±„ôšµÀ6XXö‚‘Ñ‚ñ„PŸ€°ªÈÉ­ˆó]8ÿXå +X¼Ïb€l—`aôœ}v¥ü“Ã7óaü˨…”úo£ TZ]~?¨øL³ÿ6ÀÞÈZ·ž¶âÚG§° 4Çìˆã)œ~øüT=†ý +`²øÑ“¿z·žd×BX©…Áqÿªuúüy÷1î‹“n,ht¼ëù·'§Æ …[ùü6¼w ÿ‰øÕ…›…›6 z&é˜nŽs¯›Œû*¡/L° {ŽÂù°‡óåÞÎg¦›.  Žÿä.¯3@£ƒðÅԟŃ,/H€û­L”@¬w@Ÿwº¡ (–Zd\EÀ ˧]> ðÝÊ:ô·,T `xª¶û–Ö÷‡ ÷˪)9)Àá³Ó3³Nx¼ûØzÂ)é.W@7>, 0H”³s,  `ªGìA!÷w±á‚i›½û£?þ†ý½ƒÃm0ß^søš·ú€Ñß'P—`.ñÏB<ïÅ—;€ŽXlŒ¸vºÍñ9º¯÷.sÕ@®Pòýhm¡ÅŽBe©—YhãY&Ÿ½ða+Š~[¿ÂÚ‡®äyGëÜ£Z OšÅò’õ%Äî>[p4ß¼_Šü{öƒÁÀ9Ô¿Y@îâ†ê,º"Àë,׸þ…Âø¤ïå¸KY”—»îJô°Cá-­ Ì=`®€t¥<âÔXÁË#7ñvgêÉ ˜ +€• +pÚUH<¶Óâcã e`:뀰eðÛªM€;ÙPp±9›0\àvï÷€-’1›¯ ý- Ð[@ 8ÔçR øìï% ³*„ß\t@5>¦ÿ—mß{I )Úž›™›ža›`–JðžÌí|j?w:_å‚t»Ût6ôRÀ¢²Ì¨@ò ÀÀ îÅ—Gû&¬z€}ÌøÖZ_Õå‘°.{¥hze䘾–ÏC¼Â»…Io¹°!@9þ0X…`TãZøëú“ä±AY಼ê—׫1óÚ~¹º®gó¬að†²ØžÇÖiͽþàõôŤ©€ @ފ¸tq6!çA¸™.@ߨcÒ­f1šÏ¿u]xøÁ»ùÂû…‰B~¢3ø] +r•žŸà9€4ùO @õEwWІ®§‰àçËó_)¾&V`ïܱIÂíþ€ì'ÒÄ0•Ý’*ü ª``WÇíKA€ØŸ}6fJé‰H|HvIYè0! e¸ô +ÀÑûÊ4€ÿ§8€Æ0¿‡û=ÆÃT˜ByŒþVHè%^b|/¾Üß–ð)ØÏ½#ÁÚÚš{H‘E¯÷Ù€€x^­2CÞ-Àx/ûVÕ†Ï@èjXm‡¿m6[aX!XrÀæµ~½:ÀKãWªóÇfF8ìÈÈ» +Ö\ý¡ Ûï)ò*,LÝLJàôÇ1©äoÙe>.Ä&SɺÇã‰&L¸¥€ãA¢¸Ñ›p +g`L ·†”]}çH$Ìôqiƒ @Ž€«—UKöÍôÛÜŠ1¿Ð ,È<Hù¿%sÓS@ÑßÝê OO°â€@8:܆LÏv@>û8q—nà{)Pó±<×¥{v€¸µó ß]þ4<,‰OÁ NaÁÙF±,ÿ$ 5¢y7>‡؆êb…m@~œ øññ Æý,'MsæR—":f–ýÕ2ûÐg XÁzð×õºk€ @¥|O¤–” ‰ÏSSËÌå2ŽüÙMPì¤ÍáFä=‹% þ=b–»Nã/E ¤û˜<lcrjJbá¿…Ÿ„^^Â`¸•§\¤êÀgÌ éŠÅ%·S + ‡Dêì)™B5 ë©, Ä>Zn ᩤ|¦ Àø PDÎXh€¬Àùepç<ä.¶ž(olzúOJ@¦šèAp¸¸Ÿ:¾ù€`{çÀ¹€T=²*†+¸,©/‡dïÑþ" ÌX]@ÃþÎì¹Å¤ ö?I†û<9À8êÖ +Í3p €«ˆ'ê\ÏÿU Nâ^˜Àâèè1&¼G@TY¼éÇíÁ8hJŸ(r00/*ï{…qÕ T;¸Î¾ô"ˆ@…¿ûëfÝjôÜ«pf•‚V` +É9X­n¨9ðÈH!,EªfO0%8óbãâÁ(C›`¦¯WB®¢¼.Lz~>œšò Ò¿Š·‘‹ G…€ý ] $Þ+Ì«0 C +@ÔuZ0BúÓ¤b?æ :}t€Êþlnã0 AÁñøº´¸²¿¤2€s/éDÿ>@7ÖÏð=I®Â€Ä¹‘l`߀GÛ¬dõ$û8îljÿøÌª=º™ï €ÆŒNMm2ø9oV½•]ÞÑp8`Ë|„tž=` S°Ê@V"8+ÂwãË/¿<”øò?ÉXs ÑŸ]ë»Á†)€Œº•…Ï{ÁñB|dŠ»´ÌŠÀÖ@ˆ8ѳƒoášüµÀr‰ýX`R–ÓB¹på +|¥àÏã¼t0Ö™Ùèöß?Qö|é?SoqØ0 º#á‡_)S°Â×”·¼Š»Xö¼ÕõâDoÊNC!ü;*îœê” +gr! d*Xo¹y† ²ó™ W™#ÁÍèëŒh!‹÷K— ’:ÿ,¨–Ì ²¸àû™2»³´ iu‡þ–âŸËèH{>T# f`¾÷à°¿<Ü‘èÔxôøÑã}V°ºýìà2Xt·?¶ø_¨©<ˆž ª²Ã.Ç0¼ÿ!×Ãd8Ã:‚ó Ä~M¶“s.õ7À,ý§#¾ Ø€,uáËÏ:Æc4iËþZÙÿ1GøÆg°Š0 P +"¯Å­–ø±µ`ÍAuÙ÷â8ú®ùÓNÝ[³«~9bea,òW ,¹‘¼7ÏB@U݇ +ô{QHHô>H¶G%*' ò4X(±T&B®€ÿÀò²Æ*^–‘s +…bqòçï½e[—Ƚ],ƒRц6ËÀþ˜ª&I¶•p"å»T€ØÌ²>Þ@Ì7 _Yðº£R .§.*4ý°»©xI ¾§ ¡¿«Ðç)Àî9 ëY£øðY +ÀÑ qà;€ýkËÎÖ¥ +Á wóÃÀ²G›3s3àÖùJ31€Õ.‚nt@ø2N!Rú?D¼H'Û ) +S|ñ¾ƒé/?ÿҌԀí}æ>ßwç››)EL¾Yx‡dÛû3¿ã<=(µÌ€SËËÊ*TÙ +h£J xýÓOëêWÓòù“{2›ˆ&ü©‚Wæwìu¯|cä õ5äknìK:ûRa–ýåòjyÝ÷§®ó!?ý>€+Þ-âãÒòj8QÅ’ÄrP^– +„¥âšWœš,¼ëM ’ÿå%•+NT8h@9Œ*,ÃRv²pH0UUÏÀG Ù|HúU€/© ©ÐJ^ +\´”PP»³] gû{]€:E|Î8Fo9€lÀþ‘‹Åþv±É NRÖp€¸œ™è¯YÈï3€ussˆž`Ùt6 €Ã~ õظÃÔ¸Œ°Wp`Ó®/ßð=9€l)€8í à<Eˆ$Y LŒŽÎ..¾7;­¬¿fÏðÿs8ËÐÐeá573"Æ:€ÂÌ0YŹL|?<^@é*Í4<€=i¹Þ:â蟞<©k<ÞôIËû…e?ó—§–˜þÓ”Ëyø+#HUôþ‡ º² ½¯ ²\î;­R…àEðÃU/Ç‚Š“ã? +,ù«° ¼ZùñÊ•s(—ýÐS½æw‹Þûïë+z¥Â‘ä®ðXÑŠâØÂMK% ‡D\ÐȰP˨S€D§€H!œÀ¯¨z±$Al‡ÂÜ‚ÚNuñ¤xì¸&#ŸçöæfæöúÑy +ÐQÞî¨×Ø4æö?%ñu-ÜÊ2€Ä‰üŸýå +‘À‹m¶v†w##ªër `uÿOYhvÚªî?H-ÀpeÌâ\4{,€pä'Ô)Áz¡ä!€90žÆŸ“¬Àô´c}ÌnïIpÀ“ñá#€Uêõˆmì7Bß#Mù|ÍŸDí§A»‡lm¿ñ¼~=Ž_œ<‹â¨urò,þ݇ǧ§ßžž´N7ZÑF܌ڭ|s´Î°G·( ÍzóY•†…ãÂ]uÁþ˜ "*³ïÀØ4øu$À­1í·Ôžy×€?ÂY,LßÝ1 hžê·xº+ߟ•‚OøLà°sଈþg€ÝQÏS€Ä ²I€4À€-&Ü9–Áÿo·o›`€EÊHv¶¶8l(D ûm¯®­¸,8ÝÂ0ØÝ?BªL`Àþ#äK¨Ë´rxsŸœÿƼS`ÜÔ)xgÀèÂÂIHÀ{ÊX.€sÇú²à3œëGœà*°¹QšŸŸH`‚Nýù䕊Evì¡:À•ZÔø›Ú(_ 1«•ÖÖ*kµÊÝJe ³•ReůM¨:¯ÇR=pº¤:†:ò­R¥Vú FÊÞ*ý^w) &]ìJ ‰5Ž?? –B0ÿ®Wòæqàr0QóJ+˜T¿ðJ·JEìã‹¥J±ÌC‚Àz áÖ-äLæ½ühîj®0;¯,àLk]°ËO`a@»$/?¹j<,ÀDh®mY€80²c‡$À¢u +ãø¹oP½Ëøwç.(pÀb{@x+è("™*áÌi=€.tþt:8ÂöÃÃT ? þ!‡ —@öȸ,€àã}Õ’°ôÞj<è™ìÅíî;^U" L¸à‹'^.ˆís°‡T¿“®@_Îw½ô–±mR˜žûÖ±_@Žÿ ¾’we)•°Öcü2 ¢cådªëåñyŸwú-#ë ˆ³HÃË­ˆ¿Äæ‰*'Kš-~¯èòÿbúŸ.p| +(à, 8€Ž`˜ó`šï€óꎋ¥F F΄De>}¼¯§ö`kks‘\ï™ìÕ™ôoX€Uz[Üùù…±¿{ô™UÔS€£½Ù™Xòà…iŸ `âvÞÛàʲÀqŸÓÀÄ"³ÛÓ‹ï-Z`dÑï!@êö­ú1€¿ê¦{H¢i“ +Óé+4ê¬ú¥V5à°™tÚ¬¤jýȉ#»Uâ“z=‡“ÌS}kåƒßnÜ9–¼rÄ_Ä,¨º5pä ^Yû΄3a1ÆoÐa¬kÜBfhþÙÃfq±­Λ(õ“¦òùïs4‹¥˜+%8X¼ìçž—Œ ¤D÷–]þÿ  Ó-çoR • Êì)@$e‰¸ˆ¦,€Ê¬0—ìg¦Ä¸o¥ÇayyÊ+·Á>°ç¤^M²“ —_áÀ}Ø»Œ w¿÷@àË2d>*ò㸮2*€Â,©ß_]¥”£b3¬–«õ!Kòª­ú eAüˆ›ùþÊûËÞ¹Ï_Šÿ¾75~#wƒÝ †•8‚nØåÿ =S ¸C:€~ +i €u½\DK²tYÐ×°'W +hÂÆñ HxYFp°Ï4QlßÙüÀ"€M8€þSfUáè¯×På,§<ÚÃùÁ¨Õ§ûs3 êÀš€î/8ºÑ ÞDRÐqÊAÚ4Ȥ >»è†c}=@H!þ¯«ž§:û| ¸äÇAéYP¦€|§ª€Õªj÷µ×Âfý¤®s˜€]ƒjÀ`t‹& SÞzÔë³QýÉ —GöWÁÁ–ùµ5¿ÿÆ¡ÿÀ«] +ƒññ<‡-×@°Wé»*!âøÅ8 Ö«ÍfŒ«mžlT›Ú΄ÝÂRÅ®"@ þPƒ% €ÞDzÝP0¼2(Ý¦ß +f%ÁîEh?ý`(8¢§é>Íú€ÜQ€i´‹É)˜úq·n/D²÷2OT –ìg&sb΋³Sp8.Î*€%ûÈÛYðéãÇv?fæßðdîP=3uVõ_ŽþúÉP +°·»ÿˆÅss3êühwnúaú‡Ì U€ß|Ò—öÉ;…ž%í üg! }°=¨ÓÓ‹Öµ+jæúí³ +u™z•ˆñ°ÏL{}yê:Îö†*EÁ| ΰ¢Œ€9õþMÐ.HY«õ*Gê#ññ^åŒaÕ¯ßZgåûòF“Ïß»^æFY€JX*ÅÁêª+žï÷¦Îô…jÜkƒja||jjŠ5vKïß#k—èQTWaƒÍ•ê8q.ÅÆ Ë^òaXƒ¤€eý§t…ÿ•ƒÑ_ +€¿Ãßgâ?²ÿÙÑ®²s;Ÿ1 pYÞ8=Ðæpà8Î&?}ß=õRàBÜ! öJ DxD ×3·ÇnOßVåNìsò¶£}ЬHê°& ™äPñW4z°”:o9V|>NXBúj$TÍ¿ÖJ­6]7ÜLÎÁp— +”WƒY€)Ï«VºA‘(——\À•ò+k!5£ ¥ Zœy—×ú²ZŽ‹tã…I+ž€`èâÁSVB®Æpël·ñÙ(#3P­KXTÿ8*ÕøÁÀ'‡ª04åMݼq…¥«Í•J7“…]~ U3eü 6+ûuaŒüÇ\ô»Íöð“tâáh¨„²Â>åù —¨Þh@ºå“0¨ €‘ÓÅä@yWàøŸt׸°³³Í"sN@ÐÏ)$ÿcû.Çÿäßù˜ã‚T‡”ì‰þ4ñzññƒMõ€!€«øf¢ÿYÖp¤À†®âÐÖfÀõ³Ëº€ »­jbäÐË èÇ``â¢ÈÅgɘn9ÞwpÔq®À™š€H‹U„Ûî©gLsUZl1PS–Œ©t,ˆîÖâ Øûj•D1Åiså0¾Ël \ÝØ¨’˜K̰ŽaÑóãJ$ìÐð,t¤¾PDX «ãù›SòŸ + c1wÀSEOŠQDþWqUœMòÓrø­’ +)|'y*\òª”€¥›£#Ì­J-bE") .Õí£439a@ˆã®±æFUa™8þĪaJž +:YѪ€§J^¶~vnDï-pþ@‚.&' 7RÀOxéÆ9€~Ov-ŽwáÀõ"Ø–Àªø…åÌìϾG [˜Àq?ff`ìÇÛñ½g‚Њþ‹â¼Ó€-}XÔÅÛœ]ê2öKf瘒ºÛ€$ß=R”ĸ~g—n¥· @!ÞÆ-ÝW ŒœqÍmQRã¢ê˜rB„r¼OuVÀÊŒO¢ò¾žºîºbUãJ‘=©-ÚUl +‘ƒ 1Òömu|E,dùxxË«/ûåeú…õulñ˜µè°g¨<Ãå¡r@ÜÌç Þ$øO¢e@ +À+¹ƒì ó:÷Oà~Âr  Éè®K¥5„­½üõŸRømfz®Ï.¿GUyx‚2Âçþ¢G +ŒvQ%@Và6sü å›a§ŠÁ ypJ‡SX›úw¨nëgæ$¹À‡ä|¢.3€$?€sÊ9]TÎÂÊR¶ðίЪùkW×å°œ34þ쌽¥yˆC’ØwMšñb:0òP†dU÷2øO>=dc€Ž˜i˜€6†ª Èß%É|’Þw-õ Y ”Îѽø {ü½Œ\ç +©ï> Üù CÁª‘Ñ\2~éCïƒÀ£Ž°zx÷8ÑAɨǾöÌa©ø` +ÀAt,9Å;®„Q!hדáA d‚;^yI‚€ƒÌ$u ¯BZž—ÖTÆv¯2hÒa™|®Â‰ \õ*³ø'½CÿNHú¯ãÔl©¤<¼î6§UªDN láq3;aà£ï–ü0Z¨ØÀ‡Øå§@(gñÛ`[€¬pEá«¢@g¦o±Ÿì(0¦<•ÞZí?ÑAyÇvóþÉ­€eC:€3pö)€ØOýâÉÈ&ÿœÎ€ØÏTž}çò +°M˜¡` @Àd +€·øO €Soß»jý¹-Ýé¿ywê.T +€sŸêBØ.ؾÛ^2$ˆž2£|/,ì“8`åŒp°_ŒýúàxŸ ë¬Þ=Àz +¯žË›°K°"à]:äÍÁ$äúá¯Ãv‰ul‚ˆ¶€úªIš^† hú·J>ú2;„lüXÍŒ˜¹¸2éûÏJ¾žÑk÷¾8:p¢³Ä Ç¿ðÇKËÕUvV„«Ãœú÷Q¹£! +~‚tŸmq=l@äÐZøp.ÿ@µnAø˜Ç/…æ:PÌÊÀÖ9…”Ê8eÁÏØÁØ঎0ú;ÝçQºÙ­x`gtëgæb:A¶'o³Zɇ,ègú—X€€Ív.‚€€`À¹ŽË;7»:Rš9€Ý)*”`]`¤æät÷ólö_áùEZ@ènÂ@#u‹3‹îÏØuàÿuÑÌÆ™ÀR ¤ûÙ%_BÆ ¨7’) }’ÜâSF/7cÒðãmm…œ ½Å€ÖøÑlVÁ-¾KFFÞ,x%ð³ú%ð +P„*eC‚R‡'ö ¬Î„WEð. VE¡[ïW'‘@s6²«ÐÿÊÈ·^ Út 8À½F_pXÒ K_øã×ó„‰%ÿßÏVË?.³+‘×éJu5Ì”øëüI~%h•–nÕAífuò¹Üu(]ðõ + ŠY(&ì&²,ˆ…¸Æ€$ +à —Ùïu° T„§E͵Ê38šó͹­÷ÎIrPž¾_Ì'Œû˜sLÖœ€ {"äÒÖ€ÔŸÓ¨F÷‰À':€í´“@ * ŠÀ© ÀarÞ™ÕÞô?“ÀJꀟã¨Ü¿{‰[„8Úß)ápv;`woqÆ.ä|@X Ÿ¸Ì>]&q£À( ÖÛ»“8`TÀ[+œ% èÂXÔD€3G|‡ÀЬe&ÆpfËýeÕ´2é9%dy^iÕG´šlÿFwŸrl/þ(&ý™8;`ÅŠÊpû/çz ãLLÕxý<}§?€4õïïTèqÛ Ö +×”=àD®³)Àî£]ZA}€Èà'yíÞ\úº¡í–_X”sHc‹òš¥“Àþcx þ‰ƒ´ €ß.ÎüÜ®î‚ Ùu«¶r.;È–(R˜æ3ubânÄ"…±]óTÄÆ"Qƈ/`Õ1ßuÙz.S-0%£_7‘„zì#w“Ì Kó-6ä‚(|‡õ“g 4ŒêÑF×D®(~Sš'±† æ6P¨CM–Ë,)äø¡ëìÇÿ +Ó×jD%Ž)xšqÿ gÚ`‹ JËÏß„2ÕMêÍh·ð!O½|SüMÄî ê¸:]ä‡÷ ¸¸ \{婺4 C|¡k £vwAð +7 Â0.•Za­V 2“E­ +†NÒØO!…asà,X.¨e@ƒ„§Cƒ1 1é ;€‹ÊFsGu·Þ;7÷ŸØQß=P@€áËÎ*ËD~eÄí¦€N=W +x’¶Jôurð€å›æ6SÀFÿrb~RÀ²þàeô"–dÀÜ⃟ë9ÃÏ»—8áþ!ëØ9x¼ÿ)€Ëúì ²Õ›Ëé?%èf¼Câ€Ä œí)“†$ä öŠTö’`– +>f~ ¤2à¸oÈ8€´ÀfG¿×¾n·¢Zµã(òòcƒÍëŽk€$•¬~µN¿}Á¡@£èéiëøëoÛí¿kµ£_·Û'ñ‹(ŽžÆñ‹Ö‹v»]ªEìr›Øì¾Öyï*¡ÔÎo E8F߉'ÿe|ú·•vÀ«GR®:7·¢¯"“#˜žž.D­è©ÄòM\8Ð>Åã°R«= íä•J-¬µ¾Ž¾ŽsÊrÉå‚Ͻ¢ÚñÓð¸krqËAá`6BÁ­)  )I&öÆ< áÛxS$ü‘…=@rŒäPÎàhžPÝÖ»ç™2@‘>mpYpFð€¯]ÝÐÝÈÒ€ÈN‡™"ÆŒ€àS€Æt›0!wOˆ­ÝE¼Y,€—ôdJWôô\O$`³«`‘ +@ùå6øÍNKÍ+­-@æ).p˜2€ÝÝ»[[qÒR꜕4ô/ÂIf_q "yñ“"# +ãMò@óDõ…¬HêÐÌ/¤Ó;ókw*%o¡ä±G€«¹«#¹‰[wî‹w8»åF-–Š•;ÁZ©4ÏQB8$h©TZ+~Pº[â [Šó¥…ù’_YñŠÅ~6_*οƒŸþ ˜¹–ËåoÍë·<-4jÍßgZ)©ý>~\ÍåÇŠc%œ€ƒ‘â'8*Ç$…qÇuáÅ3”ŠïÌW~pw;qÛÂ|‘‰ šÇîX.à–p×óó¼Í±²¬À~â¼ÂÌm¤£'8è-žžcf,O4€p@ +€8| Ð%HaûáöÇÛÛº9Ý`t‘ eq]Æìî|Ö3YK`öÿñóŽ °ømÌ0€D˜ Þ›`}«A ç~Fìô…k8 }ç?Ú'àêL÷ ÇÕ=:ÚåƒF(Äá! Ýc@¸ž½Å™ä‚.ú$ÛŸ¢³jkI@alÁ¯8Ä·Ë º¤~÷䢞bcaìÏh@V²ÀÕ@6<™¾ŠÛ€o٣߆¿Ä‘6 ì3£…/}Ï—DÏÚ¿¡´i¤£_ÅñW‰|ñw_ 5Üü ›š€o%UýYëÙ³_CØnoj9d~¡õͯM¾01[ßáG*Ûü›¹ëù‚Ï—¾ò‘ ­|/`ãõXÌV|þÇ1Œ‚¨XCþ†÷Øqªß@•ŽY¯eË^áæõ‚{\€s ÷”br‘+BèrW;ôHÀR?«­5v›ƒƒK :€OT‘“Ÿt®1°-™×éΙ‹úxñb¾„ £ÃöÆSFûî³_ pêM»A×ÏÑô4 ¶¢>ò é´{Ð +ŽïŽ  ï‘€ô8¦Ø[i!@ê-.²l¶ºn9€ÿi€˜÷:‰]EÀÝϱÒåÐÿˆmà¶øŒY€¬À ž($I>wœ(›¤ùBÀ8Ï¿o¤´IdbôBèžå¿"ÑŒó;«ŽüÂQǸzj àR"nÁüӷΦú:€æ¯èB&Â_E_tÀJÖ#Ãq”\iÁ 9f"ybýE|YçÿñÅ%@—l“/, ßiì4¶¶¸ ‚w‡»ÿ§gÁW+'HÞ;Žö˜È +À'!®:€ù¿º>ØL¬¿¥ÿX¨ÉDÀ5ýK–øúAd§Npž-¤*ÎL^º»]\ÀTNàÓ#HÀpðj1§Èò|àdãg¦ß¬¿‰€æZIÊ)àöÖLgàšè³¶e±‰ñÆ!a¾–˜9ò=@P¯ÀìGË^qüwpßP: è8€ç­èW`¦9€¯ÂüâÀʱ9öF èrqÛ9€‚Æõ¨õ-Ào;±³?|õKâçÞ¸^(xw\öWÃÌs~à'UŽ\B²“ëØÝ ¢5ºP ?[4ã[ÖcÂ×q1ò›au +²Šk¼1ŽA4*•Þ!Ì]ärP0hºÿža^ XH}G„¸‚À• ×¥^@ ì‘)x&;ßàùt‡ýFz}r3-ä_¦  # Fc,ßÞÙb§{àÇ–»8M‰‹‡¼ÇÊ€ºË ãÍ7ä¦vpôçÚ~&ï3õ5uÉÊû@{{hyléiÝß¾ :Ó9€N`.YUy†{=Øù9%€MàÀçf¸Ü4vjÌlgX~Î p#Jó³iúÓˆí–êguÀàÂ^q±Ÿ3'TƒÌþŒƒ‰ŽýDÖ¸z=à+:€ß9°ÄÞq:•ôwÈ…« @Y€¬xp§dƒí…ñt/Îuß²O¿)…—¹E K¡1Ÿšàûd.^ 9$söŽq'ZgÆap ¾Ø¨³Ëx„ðN„âG8ƪÇ[çñúÀâV +†¡ +×ø|ûM°YEœóÎ8¤¤Üê>1 G=Q$¸ØŒÌNÏ’ä@‡ø=¸´°t´Øz¸8==ÛØAÈÿ­­†R)\îôÖn\bç´,·Ëâ3ž( "?‰Ÿ@—Àóƒöç(XHm¤Ëb?@)À­4tÆs$í,ÀÝ÷E’út·Ý:à`fçÁƒäµó`«?awÿh +gpd Áâ4,Â0Á[M™n‚Ú¦d£•ðOìz3S¥¿ÖqéÄ—E?ÆD—ó3:àØß§Àœõ ØqHºYà€ÖïWpÂ2€Ð9Wp’qI@ꪀ']€Y€/èøÍ7}ߎsý "d®Ü,LMm”žê#é·ÖŒàtÁº|@øÅU ØÈ€_7ëuí 1~[Öù0_à ,ƒ1ùu›lr‘ËÁ ˜|®‘ØäsJóÓ Ý>„¡ãT ¡Ÿ™,€4×ùÍÁOX&ýi®ë&˜kI~"ÔdÀæâôØÜ@ÙnÀ od0;ˆOgà賘H€'°“CÈûÆ6iÁ÷ QU 2?ë2Ÿs}ÐÐÆ~¨ €:%€þ¦³Óîv˜wô()Dúo€ ;h ûÀ$€H8Ÿ‘Â}„@øRëñw¦ïî G'üϨ@"TƒìS€.Pý£ŽÈŽ `‰?F_y“Ű4æ‡^¡ÈÊprÏ+úÁD!ôÞ-Ü[ï!µÄŠŒÝ#Ÿ‹Áò2ëÓa»[ö–UkhªÜ*„‡û&‡ÚPÒòs†,€9€À7 {¿÷¹erõ~~Wå%Õ t€ˆð„JTÝ2ÆÂô5ˆLW€íÍ ä%xÜiá¨HxÖ(Òq:p‘+Ã`©¾þsâê5—°Ä_Иô³«®: g b0<‰±N@ÁMš3ÐûαdWð³]À`õú9LÊ@—¤qU@܇8LƒF0ÊÆ”†Ý`u‚sE©. Ïß1ÁVÀHx!û!ÎÀd8Þ3@îS”çÇÙ%bvŸ)ÜU| +ÐqI`v¦¡z@|â¯NAq†û¬ +|t´‹]p™¤¿ ›Îžúwnµ\]Üçá!د¿÷mI‚~{“Õ¤‡m§¾·w°nàî´•r^’ ©È:€ì¸Jþ‹`<ŸØ{ó€{¡WœbƒðŸ +ð¾ÜÖÐ`žWõKuU™w0OXfG‚ÔÚ`\S…êD¡êÿ»ÂøøÍüu€ìP›Ñ¯¿9? ÐÖ㻾ˆâoOOOŒã°à©ýš?xÑB>b0%È€Ä/~ûâÛè;œå×íÓÖµ6Ì qÒ:9ýíI«Ý~vrúâ®à»¨Ônų.í¸êÞ2 ÎpzÊOY¸Èå`0u7\eþ]äÿÐÐ$€ÿ[öÞtÜGGn'½Š f’Tç9{çWGļÀrc¿ ä`Å€Ÿd+}éÊàÿÓ2äÁ)øÂ%YŠôŸ½±¤ŸÑQ'h©ØŠÛħ­î gë†Äbcp@99l"- œÝÝý¹*«°.€Y0°ÀÀ®×ÀíÛŽøî)²¸hRJ/ܨ»›>ÜÚ?z|´?;›q³ª)4>áÄ¥%øxÛ‚sWpxÀ´C|GÐÓÊØ£b@G<ä£W\Ä`ó!’ØÛaÄ`tÑFä?Çÿ>õÌ‘Ü{ïb*Náí…þX PȲùñÂ8؉"6±¯,)@às`_ìë¯U(:¶ J,ûËKæ<:€ªÏ‘;ý—Ù·IIZðmŸ7fÌ£?æÁùÊJ©˜ÉŽJc¬ìSZa% b±øŽj#•5ÿîÊ ++w×îp1ÏêCبmk Ý]¹[›f-!Ö.Â…ÑÜÎ|€÷B\ärÐÿàBv,É.ަÒi XáÍÒ2mçž ¯Ì<ùÞgNòw !|g™D  8‡’_2&Ü€yã?² ˜ìÏ.6v@;PƒS‚­Ý}Xk^ãôô{à<5 ó>ãLÜQÇ|:£¾[€òÌQ¸B*?Êùƒ÷¸‚M\ \@ôƒÑß.j2;=Š—˜Á©ï .«3‚E:€Ç‰0°ð’pÔ×»,@\Hg\âm[ÀupÛtHøXÊ€üN_ô ‡úúˆY§c ¬°zæ¦@ÿ'™|fî…%¨‚²ãt^â°Jâf@€ß) à†à\f€ë…©àíbèÀ^9Á §]Ô·7æá1Ç뇨¶¯­UFßÈûËë¥ 8f«¶d?:ŽŽƒZÕŽOÛ_·Â¾;ŽžÆáñq¥ö4:ŽZH׿«<ý%¾x?£5Ø|Xƒ'OããÚü/Bµ{òêqT©/|ô‘«'íðï™à¦¯$ýcÝ~[%]Þ-ÙjŽü§°s‰¿r,WÓ_†UÊùÛÓY ,^( +¦ ­¿§(°>€Œ`±1‡É*ê»P—Èû!¥º4à3=ûË‚LpGe,¦î€ñ|hÌ7=ÀZdì;úïÒkP(Ò¡« Àÿ…ĸéS +”-µfU`ðÿ>ÀãÄl±²ÅÙ!ËúCwo†ÀéÁ!þ9c»’.ñQÂ.ÌàÈû%¡ãô2ý`$I Ö»Á @Ÿz‰`Ê/#Їï;p='Öʈþì{¯» €F ¨2€ŒÀ'îçj…àŒÌ`žf¾ùM÷’xEOû":nW>ˆÃÈ/¼™gG@>îýЀ&ÛôÈçWjß6›\iÂ÷‡a¼Á– ®ËòöJô»VÖB>„\PT¾j?/×ÔE ²>8^?GÞ¢ÿþß'`3)“ô±ŽPÀQ?vb'ÚG»ókÕäô[n’`Pmâ¦ýaÌOTÀâK€ç€ýƒ£Ï@ `ýpsfNÖÀñLµGäÛ r ¦@–¤2ÜaÊBÀ³…ŽõY Ö[ôuã9ç¥èrL”… í§ì2õ'”þ'¼ÖS€sH4€eà@`ÖØH`û¹nàñîÌ,Ÿm²& ë°¢Â0¥1@Ø –|é n”¥AtT-ñWòßì¡¿²ü$ãløï’„#¥~7ÿ{€= @²Ov“ßÅ´ @àz_I\8€/ú8€rêp ÐÇ800å™pöÍ7Jûm‰µß•ö@öç ÇqàMŒä|Ñ:{õù1T Z ªlý´JAK×Ú3Áõ@=`Çí•J¤̈5Öö©„Aíµ§ì–(—/…qP‰Þ©±ÑÒ=–Ú  5K,€Øn«ä0ØßE|V± ¾Ôã>)„² uîE¢\ÍŠÿ€DçÌ4ÚaÿE +pÖ(åÝÿóÿðñþß?~03mÀn¢Å›‘@lÛÞvf ãvvèÚûÐqñÈHß"?é$˜îèÈDeº€EŽðþ«P`K&ý 4©/f~8òK±œ˜ÕÒß`fº*€z;²Š@¹M>ØSG [[wà¦qi»¿¹è‰~BzCú‰Ñ1€exX$åc.¼2H zçnê§€+N²Àê¨& RðwAn,àà’29€BaÜ9"¡„Û9•È .èë:e67Ïoè¬A?û +ð4ðòoæü%?ˆÂªšõW>Ú'žžÖAÙjú„Ûí«Õ ]j-„­¸¬QÌøS?8®ü ~îsˆ\yþæRÖÃh¡ÖytHü©@&@UiûÜâö££GÈPXü¹³Ëá“q5ÖäáÜ7»¸ÛnÞf lû x/?ˆ‰ì— p¡ÕçdÁ²€K*'ÃÀÅ¿®fZÿ³ ÛÀا&?…È=ºªgùÑë¹,@ºíOxÔ±Õ÷‚pâXj1_ +Š~±=Œö,€Þ!¾Â‘|î:;î¡ð=Õ^Ô‡ý×Ò²ŽtýP©„ñaäåGF—a¾½gq(¦ûpŽ@L9HÀÑŸÿÅ_þþ÷ÿüÏÿ÷þð/ÿò¯ÿú/ÿò‡?üþ¿üÖHËî7Ûšhvâ+[é +ŽA[‹ºdÜ$?áúqß¼u[î?2%IÁ¨ßÅKòPŒN€mÖ(ý1S>€gq@8ª÷‡öp.€››î8€$ ``Î*‹ÿxßdnnZðxgvn{—p1;s·)C‚6@•ÿu?ZéÑþq¢)c-–}Râ\J@ÊúÌ +a +qÙqŒ ~0ºþ“¹€©÷”ÜòVA KÀýèÖG¡·–½`m"_æ7`Ê"=¾‡€hg@¨ãŽó1àb™â mÈñËDÿ.ñAäe¶Ã²dâf?ˆKÇ^þJÎóÊôøê[PÏÿ)ÕàÃÖÝšø­nŠCÖþ£>ÐÆq)úºu|G-ý˜%¢Z¾ yVá"êIŽþXh1xØÉ³Ã8öw@RÛÒ[»È8¡vÀiÖLÀ™¤9ÉË– >€ˆ +j~Ž °cnD‚ÿüŸÿËïÿùÿ˜ŸÁÿóÏÿí/  ©tøÏúˆh[ˆT€4eE$ÒCáfß³›ËÂEôn¤ÑVP’ïÒ}‹É>i­ÐIÆ~–rÏ"!¿–Ý ñ‰°½ô”ïÑ#äõ±û"À§Gt‹AàænÏ‚ÖNÉŠ9ÿ õ­(Àà²ýÆüÁ©?‘”ôwZö^µÅ=È:€ì¸¬î“¢0º€Ù…B©ÓSðÒ[/V8ô–!b@,)KÁXPªT¼P=…Óx`?Ì@Yß ä`Ú@ ½ØÛPJð» ìlöaŽ•òW¯³ @ŸvŸPg]ÿ0hß=FÚMj#ˆmP Bucdñïï„m–ÔÂøx:„YñØ10®XT[¥6?H'Çý,\¦ ÁŸþ©Û,³H¿4ð7ôÙøS…¢€Ä^|w´O_ÓHÂÌ÷¹8çI¹pxÀÄÿp´Ï +qîg®™`¬u9$Xº>œzñ=\J/z“?I2 ;.€£ a¤à …‰[ÆQHò…°@â.—©A41Õ§àSi¾„ls Ê×ÕŽé;Þe ¿åMâ`>ùãàhã²þ“äÿ=È!ùG¢Ï€Ê(@¢ÄM{e%?’/# ðDÉ4d`Ýê÷RÚu +îhT›Zרoß:þa…íýã§áã§­dã„ò¿¾^ Û•ïh*R8n¾>ôç~Æ0Çÿì‹oÑ=u‰Èä>ɼÖö¡øsÐÿÿç(߃ßÿ‘B8þ² >BÑŸ’ò@ñŸàòàefg­6@7,¶g¡€‹¶oIxÇzÅb®›xð@üwÀ„@ÔqUçÕÈðŽè)€€Ät€•Îm=RM`ªÜbcà1Ç+Û•líì#  »8»n™A¶ü3“«@ `éßÙ’ÿ,ºS}ûÝš[å.ö'å z€ë@ãdqut2wÌøùŠÖ®¨Ì€Ýu/ ý÷=ÉD)Ñé/½ž¾³áªÕ²ŸÏ®æà$t,ö0Š£ÜÈåsoårWz0B€DŸÌçBZ ÂF¥ p}/s,üßë|øS_Z‰í!ºò?–¨?áZ¼q¼öÃZÔjUÞùE¤ÑQ‘ ÿ)|œÐZù[Õ"Nàhùo‰ƒÂOLK¹¯kÿíDú.ßmÊŸEèŽþò÷èÿ¯ÿú‡¿üÏG_:þ÷À€™aƒ.Iö_9’ ±ÙгÒIñ¼i„us#<€C…Q ´û´,€eüM²à"þ÷ + ƒþ,€€8€GûüŸ›Û|ttø©²‰˜S!àEP   ;aÒï~}Hø¿Ï¿ËW\0 @·°¿O¤ô?ò¥Ø’@*`zÐë²ãŒ^ïL×so^¹ +¾Šý ®ŒäGFnŒó)àràGñE¼Â<Ÿÿ~©ÏrX d åÀ/Øqr¤¾ô†ädÈz« ¾ƇAÌ®Jsc¤-#c†'­‰ß­°fÖø^Ø{y + ‚†­~x°†ÌÃL€òl h­´NZŽü„ˆùo„?µƒÂò ÿ™ü“îr ½£¾-,V?\,ÁÊþÇæÿ‹ß;¶÷Á¿üþ/>ÿÜñ¿[ø Àê +º,‚ô·@™•.XDÏÂ9»$—䧤ç:jHÎì,€)€9)À…üö)À"d” +€in÷Ñþã£üŠgkÿèhk&qX8+b‹> p õ3öÀzWò‡ôßñ| ..°ÿ’& ;ñ·Og€•ô–82Zú\¹‚ĉvî‹oä ù«7µë ²Œ0ï]ó&ržýÚaœmìXHÚ! Óà3º_7®“ô* t&ÀQµ?>‡ãfkÞÏ®¯²gÒ5d ÕjK%È!¾¿ ÈÜ« +ªÞ]xÚÆŽk~å$`¥äÍ+ ÀÝÚwá%2Âá¸ùo—=@ð)¹íRÑn‰WêHãÿlGº8úË~¹ÿ¿ÿ‹/¿t‘õÀE>gü Þ¥ÕRHÒå®uMWûžqÆ~{wÀm>À]+9°Ôo‹ çWå$ ó‡˜cì·Í³¸tgôd`çÑ# +Ëà80ycfqg'‘ÀÙiU +»lTа>÷•°bQ“%½Ó¸2¾ H’þ½ÀõÀ>s×Sä®çÉFÀý… /1~•C +ž‡×&ðo,‘=È]uÛpˆd'[ŒŸÙÀ§éG¾1{qÂðòú¿ó½ë¹:]=HÊZ@të' 5$¢]©µX Š J’2¬Wƒõ\©I Q«D±Á>tÌÀßÈÕÓ{ êLH“ÿíqÖtB·p +pްàÏÏ1ÿú¯ÿ7ÀñßE¾m>@¸½ÕQ€E;¿ÑŸéªÒ UŠè]p‰=Àò@ŠRBzZ¦þæ@r0©¿ËX é/¸(:)ùµì8ðœi¾¾¢˜ÿsrw¹7àÓ£G»rý2A6/ëXwŸŒ "Û®à¯S(H ï‘û,Ý7?¦Ç9 L½´–¾ H`*ÀùàzŽ|\ ¼Õ_ˆÄ_˜Ï% …kùqm¸Q€+ÈÝ, “u’«4äÆ ü{ßÑñÊ€‘+°Sîƒ@æ3ñç»y.N›rèßÄp"!‡+VúOp‚•J‡Áz À|¼*2Û™Rs0¹ú+,ä࣭(®ý}ò°Ÿ€,@±0Îþªái  Ãÿª£dâ–n­ó1ÁŸ¸)ùÔ ~vÛþË?lÛŸüñ¿÷ÇüHô8QOÈ:€ ÿ§΂ ;88/à€ƒ‹|ªþ£ªÀ2€N¯Àd/ƒYY]gî8€º’dÎö}ÀÓlPÿc—ò»EŠ¡ç;™ÐT9|J‹qÝâ¾$ÓýÝÇï,ÎY¹Áþ£ý­YŽnh{gö2õþóg›8Ncv;qÿº;ª«‘³·Îÿ ˜@6Ø´  è°àCk8rÇÆ\ÎÕøÑì‹îÓIùx¿PÈ[‚ '?5™/x×Gý)Œy¹€äñ&‚ý@ÿÂäÕ·®±ºÀøM>4œÄ›¥þع0é-æXͨàM’Þ{Ûš,0…í’O 0#ðjŒ;ÿô»ñ‹o¿yr-7V딄¹õ8fþ?l†­Vëôôn­Eñ»Óøô´}úÝiÄìI˜¯öÝø»1GÀúGpOžá7í(dhµåÐ÷ÂÓv·KÑ?µ¢f:WSü 8úÇZ{/åëŸþ)·Ø*6â&û˜ìŽ5kÜî~&`æßK>Øä˜ò;ú[kb¿ãÞ#÷M\L8 ļ¿øgÇõ¾ PLÔ³'~Ô`ÖŸ±ŽsSp½l0%;ûÀ§Ä|%YJ»vö·1ó¤>çJüÝ +»þã‰ØØÀ€)h}~@!Iÿ5Û\ll5:’,Òw­,.Þ§˜Û9üôñþæÀâÜæ£Gût»Á¤Ü`€¶ö#å €°É“Ý)û2 F•ýïÍ!õ'Ü @&@¼O%à*seè¯v4À0⯭ùïÞóÅÂD~dÅ/roâëQ¬#‘W¦>Ÿå3¼ü[pñùüMoªÎç=f ønb"ÿvám®N¼Ÿ°_p °ž7V(ÜÂW8ä $E€®õý ´ZÏØ4çéÄÕÜû>›ò³ïñ(Œž†ÑñÓZÖŽŸVjµð˜½{+8ÿ|­rlŒŸ±ðÑqí£5ìÕâçµÖßá·5vŠÜÃr¿V«=ºðü—Ö +Ð ²_—¢¿"þø=)‰{‰ý]‰¿4 oOz!pxnàYÀÈD£Î¨Ìþ­1:q`kñKÆŸÕAMç厓Á°í¸oq±I nÁqä­Y8;0ÿGÈbJç\ÙÚ¶ø€e³î0æ´FOÌ^À>}üÜÇ î³ÔeG¥®`sîö ¯{8X-j9€E:§rN°>”÷w`Ú¿³“€iè9SW>€Fnä >Óƒí;q‰¯C! GàÚ5Xù±ë£ùÉQÈÀ˜^N üp o,Gs× + =¨Ÿ¿‰= þU|ñÖh~ôúhn”2š»>:r ¢AM˜¸51Q¸Õ¬€ `E`ǸA僠VY}ct‚«H¸Ð9Œ¾¾ÖÖ*@é.Ç©¬­Ü­|´P«­­ñgø ;*•µÀï;OkkµJĶÄ5UªÕŽƒŠï'&TÕhmm-¨`–À±óߢü€ìÝeÉÊ€º@Lw>;:Wþòÿq,ÇÆ«ñÑx›VÀ:ó€XCˆ—Ð!¶~r1.…;NŸ‘늡Ôñ€sò‚߸’+`î®#ã2 ŽŸ Kû5WÙAcqft`Žß0 uksÈõÏBøY€9–²ÊlNH°¹9{[ãƒÓ ΜH¸¯5.]° >ØÛž›Ó‡a\È^âøþŠÞ̆¿a + rw¾è²ð|Žâ„~î +i®á€Wƒüê$Ì;Äõ^ØSø¹9 A60‰ä‹Ü Èì¦À)M +Çòs@ŸÀƒXúÏË9(×,-€iÀ¬²Ü8€ýG÷`ŠÐà8€™™M8•}n^ÊP4ùwm'e)÷À'.Cà!ŸnϘPqݶfß'+ɾÉö3½È-•·wà +ƒS ös…ólÀô…h¹wppð—Žì}ð‡¿Dà?Y î@í „´€Ø0U&ñqÎNcê4Kr÷€mþèQII–óI +[b!~Ú è’‹Ù½PFÉMnGÁ„`†˜ ÿø³(Lð…«$;@5Ø›žÙÐmo7``J†zéOâo€Äça`À À0Aíþ>€»¢I©’HÀdäæz*…¨{³0åç˜þßb_7Xµ—| Ç1û&6ùùœ}àÞ`~’g¸Ê2DV &Le΃‘ü<Ä͈p#ôND —Ч¡ ^®øÔ³ø£»§|èP Ãfó䯚Ý|Qâóÿä @}=hUC| À…®²w¡JÚ\Ð`Üì k¬5ê’¸Z'yí;Íù‘®èí§]ÝGûÚ­»íà{ÿ²ÀÑŸ+˜+¢ô”c^ûœzÿü_޾üòÈÅ 8~Ãó,…î8€d 0ðŸ¬wUE¯ÙÅ>€|âFð‹d…Ì`®]ÜçÛ9€ ¼O«¹Ý 0‹ÿ*søÍ€°³ÿøÑÖùq‘ýÿ-ÎÌZ!öÚÞ¢ Ë4‘þËð);lÓùÈ8>|^0¹¿!å?Ÿé]¹’ÔÆùåã2(xe +€—œ£¤`9”‚µú!D5ƈõ«ÁØD°œ$ô x”Üä[ù¤v‡,]€eÇòs7¡p÷Š µ[­wjíLã=ßõýb%aø ö ëQó¯þªÙl¾8-}óÝ·1ŽÅî¾…°Yåˆ!«~Á«¬¯? +Ç­ìÄÞb§ÁQÕ!óÉV¾¶AóÞ_Ü`{§Ëìø‡Iý¯ +é}_mzÀ˜yp°ÿ_ +ÀþÛQ?@ÌçÏá8ˆÞÏ4Ì9¨ +0/gôêmVnãSv^.§Ÿ`äÜ °Ì¨xŸ >|AÙþgp ËØ3Ñnð³KÿñÂN¤­½ðޔد¶Ø+(G!”ëYx‡J°87;×@`n`g{“ +¢§øX0qÑK}Œç•àÃЀ@€@QØ\ûKÀþDÞ`Á~öI sâdü‚jýn²¸Þ/æ}y›TÏ@†2ûÿ[^& “,&ØëGªü91Q(\+â€ü dC ÏÅÿåñë~Q6}½·jȦ'rÀn~*ªÞ…w‘ʯ#q'ûël+Ð|ÑüÙIó¤Ônjàæ|m2Á¦Í«áz»VyžÎà¨i ÅÏ"Ù(î +öY$ÏþBú¢´ûpfú“ç¶Ì¶pô'óH>qº@î!úýÅ ø—ßÿÅ#Àç. +¥°I°¥ˆ‡è¬¸­AtùS(-hüùhpüê+ðüHÁ˜Ð@£<è †¸æ,Ñïd¶>v ѽŸ˜à%^'ôÇ%/nBæt¨¤°±€¬…•i‚õ;(ühnkn€€Uq„ÍÆâí™ÍÍÍn¯ß÷…Ó1ÛtQÖ@ìa À¾ 4Žâ“ûC€4 àÊÈ}3#ÞRÏ,ËŒËóOúøÍ5 8)¢¦ª ?èîyÖž‚â\Ár잀ՅxH¶*ôÊåòº•ùcäyxÑyË7o”&˜¬#‹²RùâI5éãÃW›a¬TÖ¢Ú]$äø ˆþ„UêõŸÕŸ4·Jí'€uøþðÃpÝõF ˜…ÑñÚ9YR7¥o"cSvcWâ~ €áâWŸLÀ9 ¯ a>;(øË?ß§P…3`›CŠíêÙß&xÏŸÃûã…â¹°8vÍ@%¤¿€óéÅÙ$ª'@ãÏâ?ðÿn‘ØÛSo¶‡Š v +—è.`•G÷´!Y¸“‚9üW‰†¸B8€-Z€‹÷øÿS÷GÍm\i–(Jw©D‰EhH j’M”Ù´ClÖMˆI˜4`%Ñ¿‚„L˜ŠQDòHôe?ú¼‡Âw"4çÄ}pʼnzIv¶›Ýª‚唺fØÕ¡®þ ãŽöé_Ð?a^îZëÛ™H€ ¥š9GöY $‰ÌD"±×Úk{çÞÛÎ ÌÎnÒ Ðl7è66·àÜ¥9.çžxáB€@ãOͼ@ À®G Ñ ?÷ç|héÍôÄ;þ t4î@Þ»és¹Üë¯çò¯¿K&xÛ`1_Å;lQõF˾·þæ¯j_(¶ÖÂy ÷bïaÆò3 ŽŸ¿M"¯3o\V¿||0ßn!wG¹¼çx¾qo•JIåü€ÀjÈ1ƒ×9kÍ·C +€Òb‚·˜ÍûÁZû ‚²+ãÉ‘2Æ)ŒÌôçÑÿ}˜tÀÀ.  \è¨ g8€ægÿì߇ï~ûQ³Wb oŠÿÌÛà $%¡&@<;5¦ý'ý`°4»'B÷Bµ‘±ØèX݉|*~ò @6îã¿€‰@¢ä½½•ô6Ѩiñä¤Å’ Nšuþà7ãþ œö,ø?3·ÙÜ«ÏÅ1]€»"gƒü¡æn—ç Ç¸&ÔgLvA .ûǤ@J¤½Õ€‹pßäö +€ˆ›Ÿ€ÃW'!ù‰+˜Å@^Îûþ4ï¡xæG©ÅÇ0—ËM°ÄϸÁHö‚*ÄÊó€Üøì)ä¨^U?›Y¥”;~®–׫GUãñZ·7‘öj)R]ÀzõJl"¶Ú Âü‹Q,dQެO¡.)ÿoÂP  9lƒ)+ïÀà^A2ͽÓàÛ¿÷þ'@ÉÙúÛªóu«NF ŒLY €'àÖ +x#>÷`Wåÿž +@|ë­-öV [êCüF«‰„û áþnªú¹%ΰ^½U@fX1˜|Î{é3û‡Ô÷š[xÀÏ•ÌNθKr&D{ƒ^Ïr/H€ Às`Ì'°RÝšüÎÀ¤Á.½ó^ÁË]”€¿žŸ»â"ó£™ýÓ$x‹drà­¬‹Þúøvÿ3x_¶¾€‰ìëù×q +À"¾ûr —ÍŸµtÀ&vóÝ +Ãòí”ØyW¹ ‘Qöw€û¥ƒÊõcW @àx¾ú A º®Ð =€^þÊd¡ØCÒ=-ÿïÁ@`ìObñ‹>;voýÿYxŒ¼îþéßm mö9Ž.äê´6°¤ö@HÖ[®Á aý62¥°-B÷$`ü_bdØÝ½Sk¤€Ÿq︮ñ¶K|1ˆì‰ +Xñm¥9k„¼çf>¨-Ôq­ð²‰€E€Æ»É@ÎO;À®óœà!f'gjŸþ_0ð‚Q€®¿¥žgLº ˜÷kþ÷Ä4¿pB +ÌܳÙ!  _ôr¬¿ +ö*çóp +y¼4ókÅð2ÇÒªŒâ“¥¥o…ýƒXbaCE/ãAS²Z†"òì³§Jz0à““ëGÕG^ÎfüÑJ°R ¦Ûÿ»†BÑ•7‚´^ÄEù5v̪agù›pÝ”Aª‹` hí‚veõó€-ýU÷t¬|yè:ËdÕwxÖ€„w2`¯˜hÒM¬RÏNóþÀ»þå»ÿóCvz¿ÿðßµd\«ÙØbuöX»µÁ–@|³©è CœÏ .Àh•†øÜƒµ¸5€FMý•ÇÀ1Ƶ»ñ_ä 俉€I—9Ó ÅRåðl¼ŒkS¯#·C³Î(ò·0רN9€Æ=6d'`P@Y€Ù‘£÷ÙËÄsc/X Ü¹3gð`¼Oôw +ªìˆ2ð‹Ãºµ‡$ö +ãŠñårBÌÓ˜ ËpÈç™W—Ë~˜ÅÚht}…Ýy+^që¹+͂ʞ—ámìHˆmÕ…à™OÊæA«¶(ã× Mþ³O2òõj•ùvlÞ*uWÍàWØC @¿xRxƆ?Vè*yµ¸ás`€Çn¥ƒ£åKÊwÛœâ4i{ãCå¤;9üîÛ_6‘Rå’¾c°À +è[(lÔõTß3¢?¿Ü‘* ñ¹rŒ8ØÙßÝr°cÀóÕîâü‡šSâ›#?`t´œöfà@EÀu‘† ¨ºS“ŒðC*`Oµ€¼Q®F#M`p¤žé"r$/x14f^ÄðZ¤AêÛt¢g½1,fÓ]]?ƒ€¾wMtkÀÿEÆ ½‚¿ä«k€r'7í…—ý€=‚’Ûåb†‹ÖIçÁ:ø+Þx~øÞø‚p„;€£ ÈM¿Ûž>$çÉÿj«uܱ¶=¼³Gú²®~0ïgœ_ÿò^ª­# àv–0¾@@ÉÇoW®'ƒ‡+_Ø '€7’§&˜kâWq"‰Néið£_ö—¾û§_~¶ßdÅ·À’1Òn kÿGÀsƒ£äÔûU¼ò5XT¯o`"ó6ð¬³LÑswÇrkØöŽ BÁS+÷ |{»Ëÿ~Ì»¨£±ÀáDëìÊT$­76f‘ÅËðcEmjò€j\ ×ï`¡±×\˜áX@Ö#`fdJ^àÌGÐëÙ ™T·ž–îlÍÌ>ß8Ú;X ÀzÛýxYŽÙ7²ðXŒÂ¥ñ‰ g\ ØÙ§!ÂòZ•œû²•ËyêO£¥ŽúØ +ªëQT>аÀ˜ŽFÈ­×C(Ép¯ø‚ ´±ûÎÂñïŽÿáøÙ©ó¿ÿæÙ“ß|ƒ¯^ÉgÇKR9ÛëaõË££§OãD#öÙŠ¢Îñ³ö“gÇ!oûoGí/[Ñ£¨uttô¤=ë<}¶|üûö¶>ŠŽ¾: +«e~s«óõóyüÆãJ‰· ¹.GË—Ð{dRçÈb,n[È-†È}Ñ^ô×[’èÀ>v +øÑg¿ýö»ÿJ ø—ïþéÛß"÷GJÜi.ÔMíÂ8Âw€{‹”ê¨+;J’ A”éÓ\8áðVQjµu»M +N6")q>r!“罸ïº{tÎÎã€ç£Ù 9˜= +Cœg~ü ˆ*j÷\æèÀþM6¼Yò±]†h•7‡øq•àà[ó†âÿ›?þljC¼`á~? à/¼B®Pò+7o~}ó3GËÓð¹`·à“#£Ÿup&Æ;8qœÿ­ã +K)–i(ã·wö?ûå/¿%~ù‹Ïþâ£=eEpL¥»ÿ}w×9ò.¦â[¬ìÞ j«ÿ[`#ÐɨŸ†º'ÀNmÞüO ;u@×Àž¯‚c¹CÌ}Š@ ö+ !1¥²þ³vC P-C„˜3€cИ›a—€É-/P þ°€DÕ]ñ³pçNmf†59rƒáØÞËüõLµH,@¯¸Y*•VÁ]úõñ Ÿ¿Zð¡dwe .y¥R¡Àô–=oõÓiŠ@ œbô+ð1¥ PÀB…ì¼¼š¹8D?¤)çQ´|Ž ·Sh3‹,Âv+ÀŠ* 8‹aðÞš9l˜Í—¼×ó—òðØ^p½Ë#œösFOÚ_õ¬à±ÅŽDíN>iÃÊÃécßyôÕÓ§_uŽÛ×+x=ùOØË¿ÀžÑ!V„aõÿá›gO;öq%øæF!jÿ +§ËRŸ÷Âð }Øù¼íº 28Z¾<¨C'gµÁ -L@-€€êq® É€‰¥ÎíIÞÑ€ÿìÖØ0a6›s·ÈÁ‡áïAtM(1³SPÌVŤ}·ë¬¾àì ï㉀si6¶ï€lÂîn­a‚ìš@5·px;¢`ÍÁÚÛ\tùE% ^ˆ\Ýò”¨®À¦Š +à Àm„Ú~Xs{$—ÔÙ# €ZããÚ&.9Û žþ˜ÓX À.ésQffn1fhëIÙû!ð#äý}1熌P Ÿ± +n)s!£`!¯Þòßo‚ ø–ç­”±áŠzãs{­°>`ÍzèØ@ˆ«ðI1Ìå/Ÿ½ÈZ€€CñÒ%œ ý3ÀÖ{ëa;ç góŒ;úëlߣ:¾€ãà XáÕöuŠÐRŒ?tíðýªñWâåð¨TùŠQ@ +x× T¿µÊ»0)8Z¾<ßÔ€^@…‰4@äëç;%:Òp—ôßßwA·«” €ìÆ`k£ñLÿ UÒЭíºûeÿ–¯RúÐe¾MöM 95@_.PÃŒòS}ؾ0ã§ô:ëwÌ!å∠ØÄLÔ7þ#ã'ÿÝ [Ö7ÞÇgt(Ìšllóþ_85@`rÁåô§Ìëm¿¶”e-€)­Ü¸ßb;ày£$&?Ú¹ TÍ ¼©:—×Õâ?8.UŽØÜG¿Á +„²Ž 0 OHý5 Ê GŽ ÔnÀ}•ƒ£å˃uìHÚK +lN€^èq ù« ñúãI@": Î\ `°¹ÿp@i®Ö‡? ‘•˜77[舄û¢$ÿ·üš9njjÞwÌ'4ï:€}|݈i€NpGÄ1,ß'õÓõ€=ôw¤ï’Ÿí­Ó°½6åûM°h÷̰£` +ÌAÛðâÿìä\m»>€ÞÕÁoŽ0;2E8ý¡ëd"ð¢1]L +À¾®ù©àÿ7{V Àqýþƒàø<}íäz@ÌÛ%ö*þ³.`…ÜÀúOý¶Fá&Ôy—¿Ö¾²ïuON‘긣à‰ÖŠ+Q¡P¤ ãX`fúV1 žù>tÕã\þâØÄ’W\Á>Ìø±äX#È»~ž­Q•ü+î!(­z«:¶ Ž—ƒöÃa)^^þ +ÀjÜpоPp´|yý‘ó£@ àôÿ(XƒçºäwKHfdZ<·'iè“£A +pÂÔ6>øà>oI6·Ò™Ï»!føOÙ©Èv]æÛÔlnã+)zûM À.—¥&l kv•øšT5@Ÿ0þã%®B¶n…‰³pE},ðœ¥,llàææPÜØnÔfœ¨mƒqS³(Ý’`p’‡ÙÎÉù?0 ‹)8[è™fÏpŽî}P €@ Ü?v®Ð+_u×|ïÒO$À5pËøêyϰÌ1¸ß–­Í~tÁ>ÎØ †Y2·)sŒÀb1ðJe/REìpæô§¢ô|ÖÃ'Ó* +5§ ÖÃųA ´@ù°þ¬Âà„˳–¬®Â`¹ÄGà?^:ÌúËël €³‹Gr_Ô…£åËC×Xù_oXuA@†ÜR˜&ŒJœÛi.vN ÿVd¼“rÌýùTZFjîFáÞ`­ãÂq‰Ú߇„ùñd™“}7ЬÝùXàY* &>y1·Y*0ÈP8ý9ÇyK0×à°XÊöRI)€ã…²Ê’ýBÈ2:€™Y– ¶kt4(àcßÚì$Š:Ê)s»NH À]M À™ +À+6pJPtÙMýí0»0<äÂ[‚Ð%3×,à€°Öf- 3ø·Äoª]ò±í Þ™ws0m–þ±B¾/(øAþÊØpÆš;pf@>tAØžÎ^ÈL,â%7̰Ed€%€™w»Ô> +Ö±Öøïd‡ügmÁê –*aÒÿ†ç-æ2Ù¶P³Á4-_˜ó;ÈP *8â÷Ä(‰YRã<~’d;Lk“£¥I*À9 bµÿp'îΦV»uk O½K[€mæ§o8òŸBÿA€gA=âwòëš;»[swP1þ Lï8¦µ*ý |S:¢â?^8'­•¹']O9Sa`š@Ðv”…Ùúö^ƒå›SŒ²@@9`kï4¯Í‰óÊôcðÜ€ýb'ûl ¨wî¸"€Û% Gö°*€8Ð!³Ê†¹w°Æ¶€ì €·ôvCÈûƒ(W Øs¯‘‰"PnWüÈV('æ0Õj±ˆ¢ƒ'`àR^¾ŸP³S&±ül ‹ïäØ^!o= ¸o¥q‡õ? +‘û¯kA´E¼ýOg• tCVàF©ôI©¢ü`÷QžòùLößÀ¨ q GË—‘ž¬w…W @!@TìÍ*7us{Ê ¬-úw€q1ån!ár²ô'æÍž2ØÏ)†c|ªW>öÒìçÄTS‘0hînÍ6âsÁq™ÅQhºÓ`Z“r`{Z”éëSâbp\%»áþrMŽÌàc| ×ÎÖX Pc; ÅPÌ™ša fî +0Ë`!0pî €]²‹ص(÷ï:¾Ÿ áÀÓC3ÿn;ËþéTëƒÄB²_ÉCòùE/ÿ&Èú„ýìà^^-‡â½þ·•àˆ Ø`ÅÚKDÑwxÛm™¾ (æ³—†3Tê §•z<­8°“Ë^¤ð›=˜Z†¡eÁ:œŽ*OY?ÀSÒ9÷ +à•¾.À@Qðž_ÉšÈð\ƒã(ðßµßbp´|‰$`yÀ$ ëXgmfo•Ä,©q?ɲ¼ëqÎXmàæ¦9€M6ã2£ò˜b`»?kÀ¯y#Í}N±X¨ß =Úšƒ p`ýmÎôþ  Ó0¸}ÀaÔ'ý©sQ¾¾0Cð^€mv`µs¸º50§?ÌðÿЀýâØÜÝq„ï I`)ÉíÒ…£úXî¯ qqèm€4.Z,ªßE9€'v¿ˆFWÙÞ·«xü bì<`9¼ìJ&k¬À‹¡”—&ÆP®–¼ÖžôQÈe‡/]Ƀµ(¿,þ£(¯À6` ]A€§Wò­qä@ Â!†Q¸áU¨tTx`  „'Ç?*øþ1”â1+_"Äxƒù²Ÿ:@ï¢ z3e½`b¡†Ý:ËÜW%€)€%#Ý Ðl>¼k)7=(I€=ÿQG4ò^Y?éϹØHû:ÚŽm¬Ù­ÑH`0xƉlp ŸÿÙøÏÜŸzà@Ðp¯˜ìa'$`{3¤=éÇØ’š'ïÀŠ6ͺñj¦¶03953·¡fÌä±Ý>äÀf\Žg˜»:€?(`—ˆ`ßÑ +€sœzA‚Ÿs€n výµQÐuÀöl†·ö¼õ¨£&òÊ;íåö#cB•7~9jW‚°ZZj>T;~ÙúÛX°]Pµ€‚ÃÒD&û–âE"|fHξ `8»è[_ ;ÈûáúY:ÖÃGaøèËÎ@ØB™ÀÂønž8çŠþ„ï·¯—žE!9t ??v°.ŠÂõà€Í ìáXùaÜOÀ( u@2à,^ð`hP`r)?®Å .~’ƒ;ÍûLl¼• ¶s "äƒf’5Ü ì À¶Àà6@ +d™ox¹‰~]8#ò‰+v››3N®R<Q?ÉÀSKýA@ÀI@Âÿ> ‡1w’;€YX)äô°/æêÛÛÛõ¹Ù¹(¸ÎëŠrKªCäeÐtrÆ×”\Æšùœ@W $ƒ<€ë¨9Ç6Ó¼r=pD?.àúì‰@†ÂFí룃 ùl$Þø¿ + •¨Û¤ÐAðIú•ð“ ­–ظÝñ¢ð,v¢è(ô=Þ*Pªä5û«˜ÍÏÏ縆ïç§ \š×œÇÀæË¾»z]Ïe3#ç‡q¼ùy>—{í9ÓÛ…³§Âüò|a¾pùÜÐðÈø8Ï© ÓÑ“_~õê|¡P¸^XžŸ~ ³«óX=pÖØ/xso±Miúíצç_ãisŒ_ÆÏÏá;¸Caþ§Z)8V¾Dˆ÷  +AÙÏü_· Ø"}îZRSNãž$ì¿,À3|²P)j@Þâ3~‡âp7` A7–Ñûا€s1=á!h6þ-6 3wL¶]Œ‘a;ºÑ_ßõs¼Æ_ +ÿ½`èÈþÈ} +x 0Ë_`µ¼`{Ca™É:€ÉØÀð(šép}3¾’ñÆúøÚë :€`¿Yc¦oÂѸÀ?Ö+Žæ§@åÓÎ@øÀ™‡èW‡Á!rOvßï¯~p|òEøé•B)¨T¼à×8î|ýù{øÝ(xÙ‰àë¿Eà0lÞž‡æèéXùatO™?C€¬ÀSYÿ¤ +ÿ|Šÿ²“àÒÛ @úãén" -)ÕjäóÁ>³2™ÙJË$"ÖTOˆ€™þm|B'`ÏzÂüx’àyP&ø¨±@g2È$´Çñõê0˜þr ?çvN‚íâx–õ‹ÿp“Ss²VÈ—Ì¢0ûð) އêÿ8Èü5Kã¿7ð0€4óm¢ÈðnA?Ìý] §€óC¥4XCGä/Ù0>¬´V¥iø}¾ÚZ°¿Ð_Ž#Ôg «û(fÛˆ[Eï­ Üêäñ9×ý5ÆXçö°Aÿ +ô*Óë¶å5««ÔÌ' «A»¼Æ°@9 ŸüÝêÄ÷©‰ ùA«Êê~k'¬WÛól̬ZIC!Ÿ½ôÕXL%ú„ŸË=+_~æhß–Ü=Bê(@€¯x'hl'IM9MüN9 ÷Á¹Ñ¿›¢Ø8g paÓee&–¬77·6›XD&ñÓ·ícõ‡Ìÿ·Û|ÝÞ¦þ¤'–6ðu¬äƒß·Ã"À®äèN³¦CSrÜÑùøŸÀ?·Z@·ßˆòni` @äåI~µfïÀ¤¸¾eƒ˜Ôéf؈/Œ€:„€,t€®&^,]2Ò8Íà$—¾ÇÌ¥¹oÀp$˜ùKŒý="O¬2 äÇ3Ù;+\ûÏ ¦QŠØŽ>m\-ͯsIüÇ3Ú <»çVcAð.wıvƲ¬`K=ãÞYpçsÓƒ gpè<¿™úU +ÂvËwaA|uõQtý˜¡=,Z3ájj$ŠðtÞuŠS_Æ“]™ò¾k2´•r¯ýeŒ×P2ù©£åKÄÈÈ9£|€ ÿíÆUÿñ•!A|PG’Bz#ëz€Êÿ÷ïïÝßkîí0áÅ ŠEB´”‹ÉB€|l@  €IN‘ŒñpÞø¸YïÄï"ó™×ã\À 6P!2|Pç͈vx'©flpçÿ5ÓYâÌ`ÏE ¸žà3rûîg 5ü„ííþk‡É©Ý +$y0ªã¦ $/À_‹$˜(À ⢠hŠ€#ø™ õc Ðmàòÿ V}w'¼”ÿ7™ñ,迸¼¼ 0SŸ®!æÈ€mu9ä‹è²•MCÙ0¨M‡Eo1{éJ‘¼$ •Ÿ‘ïLXµýÅ‘ŸpÔ ¿<¨"‡Ç—W«åò;ئ܊–À~ʾ•&€qÎVظzœ;æ‘ø,`"ÿ/gF2y6ôo”+Ó?ͽ6 úãÕ±ò%ôGN7ÂáwR°V, ˜áÇ“þ€EpÜRB‹s%¼û÷wbÜGæÛ— ˜9?ŒRqSKäÿ¦jü7Vj¸.nþßÌ2‘Ýßûä-@ü: +7 þàë :äÿö6Sy=åsè‚8úÈ윣ü $ü?Yå§xï` S ðâ§â52È ¶Û˜S `õ²jÀšLŸî¥»Æqþ…c[}ÀÕHúÛ:˜eSîÿå(~â³ÿþþ¤ýÀ÷VI&V„³KP™kÒ<¦Irb9qÜ2ß¼ŸÏI Ð'Å9À¦_,ûa•7 €ñì»Ä"À +ûßw¡ëgOî|ž/sÁF,8WÚfñ_z$žƒß¿)`6eû 2Ö!Û§UY뇫ÕßÌwüø‘lHm3pÉ3PzTI"“¯}@@èU°¾ŸÎ_ ço÷ À0u[wk} éÈ/ÜoÎÍa#nüA|›s"æf2³Ž?u$c$ïM{ªÓNVn7nÓöƒCà¶f.¹wŸÆ|d~2;µå¸Úh)Ô•m/üÜ”@žE^–°â¿^»’iç žKdœÄ`&Îß°ÍAy/ÀL À»AoðNA@âëÙ]´^xÁ®C—Ë} ¿U0`‹íx•â½Dîç±_üH£þSò8ÇN€Ì[û~%wHz8à¢`5|‚—3@Ѿ¿­“€Ìù[îÆœ`šƒñ{¼Õä¾g¡ú½2’YÌñ.ÃÈg;Æ£Äü·`ø!%­p¹½¶æ£LÁáwÓø“ùð)r« W°-!Q(pX³ÌOØHWUg`p¬|yøYRèó‚‚jH5ÀSV`d’©CIov!ÎýñDÑ¿ $µDºh~¼Ÿ4iq«Ø’°eþŸCn€¡ì«‹Іì7ÞºŒßñ?ŽC$O~©ßMø8ÍÚÜ»8mA¶xvA ‚à½åݱ0î‚ìiþç¹Ðu<9wŠòù:ŠÀa ˜ä?"Áé-ÌÀÌ ëŸe `Áê\7‚’€Á0Ód¬·pz €ñ¬p—Á @â>~¸ë¨opÀ6uÇðçÃÅäúã½"¬Â ¯ÆUÕ‡+ðKþÁôAÉœ?ç7Ä–ü…<²öñ€¥p™*Ë÷lï¯øÊhÉ÷ ¼¬,*hô/Ó~Ÿ w6ÏCÑó3¯ú¼a)„Á/k¨?@õ‰¾^^ª ++Pðss!ìA«£BtrŸàSXŽ',O£@ç *Žü„£åKyNÐçâ@R +à+Éχ%òÿn}v†7å#åÑìì[ Ã}'ÊŒcp§¹ÿ°Ñ/`5ù¯<š…~æ­·y×-¥vd=1ëñxj5NM¯R ,׿¶›;‚>fKÃp28Vu±6ÎÆÁX²Wà P;‰”íjTŸM;½è-ÀÑ66à 3S¬¨ÁLN©?!kpû]#A"ð¼À~e—ÿ€¤€`·§E€Yþ«nå?©ŸŠ8Þ[è¯tƒwÍ«)\´B^¢ãYA.Äeÿèmî›å—²ÙË€¼·b,YVô‹EÝX 7†¸Æm“›üº^ÿ”ɵø=Öµo潜õèBVXÂÇW¯[ƒ¿#Q«……¶nò÷y^”¾u„Âÿ:,@9xTþzž÷:¨¤c²[36(©·€puš ØÞ!÷ò‹?;É|‚•€:r@™?[9þƒQ€[(.C¤;ä¿Ëý‰ý}¤ÌR¥íà—™c-S´êÉ[òŸEþÛÊ^ëP²Ÿžn‚wôš s8=XoÊ‚¾b:VY¾¯"@åá û þŸÇ3ø9eC­‡Œüd¼ €ñ„N@€A€Û0Ú‰@A@}ŠžÒþˆ4žçvšŽü„€¹c{8~ŸT  ¯G W8á|ï-ÎÈlW Xòn@!, ˜÷Y<ðDÿsч\,zàÓºxÈ;‚}Ÿ±îõp:Z¡]Èz´ÖSÏs@{~&X¡HãCzw€ÆFmOÖƒ;V?—p‹ÎΞýŽü|Uå$v“Ð Ú½+.(oÏ®Añpì` +ôŸš£˜‚à'±8Cì’/PË} '˜í8€/LôZÔ~ˆýœÉtc€Ba|Ïf_'ÿ¹Ä(•ÂéJ {åcä'8†>˜¾…j0±„ÌX/XË;úZÕø¸ÓŸ+^0á±­¾¶9ÏðY@pªŸbÕJø˜sµWmñòÃÂß±àá4ÿ´'|ѦkìwÄ÷£·9WXCºVx=›½°‚¤äû Âòx2Ç3îV @ÊëAÀS…—>Ì|€Þu(ö÷ 9‡ŽÝ.9&ÞMV 5Þ‰é€ñ]ÌO ›€Ha  +mÏËfyS>4@&\\zŒñ¢\Šð™GÓ›¯£x~Æ?Œ3¾£/ÏŽaŠ(ôS öå>Ô‡Vƒ€GcÍ_ó!þ›Xp°²_ çQž`øù»J^ÁÇOƒ°zF|AÅåþ„£åKh®üŸ Ò`ýYNŲ{‰™{·×ÜOî64ߟš˹µ+ÚS88$×MÒ—·]jÈ^·´úCŸId>ôØíø]ÀI˜‘¨×7¡(› L%Û mÜpMŽŒf]Àhüâ æØœßûaô—ðì`-ÀIN˜àPF<’›K4H(cdv’wÖ¬% ûaS@BN€“[ÔÛ|^'OHÎŒÅ/ànu{ +Ŧ]p“ãöóáÀ+Ö#Pº?¡Ïp\]äë^ÖÌýŠîí%9§!V( ÄeüWf믔:Ø+—Xí÷ŽÖ‚ñ²`æÂå0×YYñ¡¤¾jàY<Œæ§ƒœ^‹ƒõlf1Ë?Š0ꌋøò°…/¯V Ç’FüXýOÿÕ<0@¯ZGøûucá®?` ïËü™åû溘ä°\¦Öö`T 9€&@*pç~Ü›0ø´“Ù@%â…´¯d:7Ñ +ÓÕ€('ùåïñÜÞ¾“º}×G¦–S€…ÚæìlÍôÄq?Îi»˜é:‘`ýÿm¦ÜßFsÜwÀ4Ç“oubæ H³´ê\QŸÅ„·—ø Ý"_ò¹|þ…cø;8þ!} ÛW06ùïq0Hõ—èÈÖ4VÅ÷l–" ØÃÕí\·½èŸÉâC²Y,zå¨Ô¢õ•ìØÄÒ[EZs3ç,§3à ¸o‘e†¢yocaõÏOy¢æ G`óžµ ;š§!À‘±!dò +ðd¾c{¨!eà=6E°‘$ˆæ#v°êù©W«åáL‘;ù¿Òv5„cåK„ø®oÔe~ðߑԋÜ;éÒ +ЄÜê:Ã[Ù¤¢9&Y5^LøpÚÀ0 šþ[ éÚü^¤³yœ"ÊÙ")¸§[qÈʦâŽÇa(ˆFú¤€TÓ5Â.:”ºõT_¦6 "¥!rÛuÀcrJ€8êcâCp‹x2"N f»ìPI3h_QȹÃÉ}ù7æõçÖÐÄ +À<¿ñ?àlJW&€w»vqD‡a}Sr|½ã£VÔ~íãBÔŽxpÈÎõ³žßyúôË'a+ °þàYûøK°È˯µ°S«†a¯ŠC={Òé:_~~¹…G­°Ý>jÿ5ï<:Ïžƒãã6N'jwÚù¬¿Æ“xQçˆ#†ðËÛ8ÏjøÕ7ãcÿV·;í¨õ'Gí*öãμ÷§}ì|‚s>å "~>?–Çñ¸A§ÃÁ’ÜäXùáØÞ W`“¿nÖopéÉ9€1€ûxãØ4bÀþÿAd¢ùp7Îñ™wá9Øuçœ8ŽCH~~Ò]—@¦'À8§¬ç‹7¤·&}†w˜\IÝ@Юڀôï*Àâ<;o·we&¬`Gf<Bßê Pg-Û²`1ŸL7Hvp‹s ?;ÐËËÈ87 WÞg °Ü_9ø‹;§¶‘ ÀâºFˆAú_Ð4t5 ÝÿZ¸úZn<3}µ°ìÙ-±œ­N—°À[|/ çòËã+w™· ¿¶Š ¯æÆ‡ÏdùGÂ>¼õ)`ßUÞbœçZݦû\,?¥ÒòòuœØraäÂøøøå,obæ‘ñä)˜-{ËË«?­hž×âØünÁŸV(•¦J×yÃÏkü ü}øM™áÑ«ÜêíÂ|©ôÓ.+_"ï³J?6úguÿÇ<JO_-@ºÐ|e\s¬°ÂüÞƒýMã? °÷tú¸¾±¢}cÃQ\€!@ÞØmwR)X¤² dœ9κ1fÚÌ¿Οæ˜§`;"w·?SC‰ø|o/b1±Q£X€Ó˜œb?Ø‚!ñeMx£—,É/ÐȘ€ÿÇ97 vÈøÉâŠ`Ã;[ÿV!lK`¥ÍäGÿ$ +çþDoŸ€ai¹´ºúi;ô+…|¶Ãà îþ#(•‚›¬ÏeÇsþcvíÁ’s~ûWȳÃ/¢ eIÞÿà€=q(OT‚°òðq–=˜ìÏCx‹ë^çt®‹²Ss:nVC/ïùkH„73'ÃUÞ±ü)O$Œ‚ÿ„­ÿr{8’_~|Z üƒÊk•ƒO¾À6†¥{*áøGfóÁÁã¿ã/?8´s+_"Œ=Hø‚t Ȫj†.9ÛLkt}1€½æ}Ž»{‰,å> ½)Íû[ s#±ÇEX€ºkÌÒ:ÌB· @;¹§… Ú“ô$%cûw3ƒ†Ç ÞºîÎìm¿ˆßƒ®ÀÀIÀú›`¶ðs“‚¤Õg'GA{º‘_À.3ƒB=€.*Bö›°õŸzKIÁk–àD€¹¾²~ç8ßœEÙ=qdò@0 €ÛCT ¨!ûñè•¡á@ OÀ«›(—ÀªU/݃èéÑW0ÛUŽˆB±»1˜ü +Y- q9‚PÁ‚ÀÏS¢ÕÇ-ÌYýò(ª–[¾ÇJöÅ…ÙÏ%ç9ø¼ý)"7®dØ{N« Ü_ÅitJ|ë#}yëÑQû(zô¤ÕŠ¢uš|ì­ã5êó|XñßEAFCV|Vsy/Ÿó!BOPPàðá +_"ö-Øçx¿ +LÁä}Œˆ°À€Zj€)ÒÛû³q @Íêu¦ÊýÈj€÷ÕNàG(É:–#çÚø€: föâ??`¨e…ðtyײ{’övþ¬´Ô¶\ãµFsýHþzv!)L½a™¶b2çÜ.Û‰y>Äc +·îÅøÏÀÀmÐŒ-xa_±Ð¿Ý-,%é9ñaoÄÿŒúõc×1濪^Ü4èÀ¿ãs¯ÿ¯Àÿˤs¢/¨€Ã`yö޹)ˆÊ¼Ã.\gÌœ±ý x͵­-ùyÞ,ìù×lF•E¯ø¨Ð.cž‘9¶ ô‹EHÞb¿îÖÿ {y¾Ù G0àià„Tw×)°sSý©QìÐÅËþ*¿œ§˜‚U76Žðç9OMƒvk…ì? cåËÃÏRñ}{TÔ`êåLBà.9r¬è‰°€û‹ØÛ¿»0£L-lÎj +ˆ¤ÍÄnù?}¾êLåÿT†A~XšŒÙñDà@Ǻ_Ñ-ŠÿjÀœ(€5ƒ]‚zcÁÝÀ~çÂ>@RpÞí!æïÿw×ê§}6ƒçŒ4x/W›L‰ÿ¤»®‰{eI@óì„zÐg÷‚z샥b2/ù‹ÆXu@Àž®@;9v¿ ˜q€P0ž½ØëRjb£¹€íu[°ÖkQu•{ ¶× + ÈKY +¤2«ýÙòGÍíü56èÔ϶HÇß«ˆMâ6χèö`«õu¯¿ E‚SÀ÷uæÛp#`¼j?hµ$l$h(WÍÃôÛ2?PÍÓaÎÏ g½?§™Ž88Z¾DÀ#38)Eªñ¿)8I‚“‰çd-À}ŽÖ·— ÀÔ‹øÎ4P`mlï?ÜÖP™(ˆýôò°â¿=¸¼ý¡>¹íJ·Áw¹€$gÎIT§ÀIk ˆ•bü(~'×è†F.ñǸ|ö þRJÁ´|`JÓŸM€ ®:?Oâm æò²þ8ò ð¼z”Âmà͇ +HláhÿUäÇFâ¾T€gÆÅ?¾Òëòyí–ž¦fîÐÎ j 8 `Gô'ÿï¸{äÄ샊lda@ þÙãÂðP…U]šÈ(ÖŽ±›Ë~‰µâÝóŠ Bù²‡d»ðö9äúTfékú ¸V~‡ísÙ28,0Û·Š7 k×¼% +€½{.áNΖ’E޸̠¶‘;ˆ®Fl' ââÄYß–CYŸä}VaFhÖøËm=4-ʱ¢bM™»QÃ Ž•/d5€àÒS<*˜²1fS. .9r'bû¼óv¿Iþ[ `¦v—ðµÞBN"Àæ‡ï/ÔæHj˪c·Ï§ØÎŽ¿ôi‰BÆëgfOçÏҀ̿„ +àçà­ Á:@¢ÚR¬Sƒt€€«ùt{º6ÐsÓP¾‰ÖG±Ôê·á$ª3T€ØH•”,^ÿÓ1Gísn+ÐÑ7š; Þ÷„71úŠ=ÀíÙ¼3÷§ú#±ù‹óìçŒäG!ü¿8|áÂÅá‹ö¸p±ëÒCš‡s‡Œ‘#^I­ÿB,—×Pˆ/^Þ ¢åÏCdäàüÊJˆ]ÈpŠM8±Æþ9Ík¨ AͰõ"‹Ú‡{Dò3€ Þesÿ`åÒp†Lã A8aˆsLg€åuS#q}Í +ìã Ÿ»à¯ˆòpÃÙ|IC ÃòƒƒcåK„€ã¾ +èR°’oKMÀÀ{èÒšû:€ÚÌL½y—)Šæ4G!¸±ÿ`ÜÈrð¹Zå÷ò , lp› -ãß¾­þÒp¼'å9ÕÉq +@Lÿ„ËCçð«P@˜”°q8ü ~eàV¶G†Îœgï)4ü1tmxDáÉ&Z6Øvº±qÁøÏ˜}/lòæâò?'>XþzØO8ãß…Å–èõºu–Ä€ý$ ó7é’ü¡•œºM/\¼˜¹˜ÑãbfˆY¾=™†xV Y¯´ :€SÁ;Ud­årt ƒÜÕËpôÈEÁ/ËÔAœ%×{ {ÿ|—@î‘êXÃ\¸˜ÏO`I[ÿ Ðf«Â`…ããú“ºR ßoχØŽMð´#ñêþ!ž‘»‹ÅØŠãüåÊd\KÀr¹zÔ…cåK„R¡#?_h$H J¹XÔ«Á%'@`wI;q¼³¸`ÿAsav¦!@ök‚`=r6^ÿq,¶tù?Êü‚€ÜO«ÍH-ÒÝ».@tWèùýuÝôÆ.œÛ?L7a «eü™ÿ3÷O€ñ?/ èÆ8ÁlÚÄ + àE3˜ìÈŸÉ쨿&È€ÛpµØÙQû…@ [ìV`Ðÿb&vc  e +€ïAØ)¬´ÊÂï…U€|ÐöÛ¼–†›[®Jæ Öb>_lÂ#ÐD^3²sÌ+vó¾I«ÎÏã9àÍ}ëÁÊØð¥lVô—^!·ïÌSØT8†~™Žu8kžÓZ¹SxÌ0Œ}Hib+ÇðòU€jk›…G­.+_"~¶(Tî²~§„+(ýÊ¥ÄVNLRHT‰€°~€ÕÐI `Àbp[݇MPõ€5q¿ëøˆAÚ³î_‹„{éEÂý„ÿîvlˆèë~™,?&R‹pø½³S LM±ÜRRàdÀ™‰X£¹}Y®( Z2@‰U-€ögEþ32°êO8þ÷Áåü1’à.þþ ½PP@‹À C;(ÌØßÚlµ_Fÿ½ò +ò9€ ÊüiôRYYåeÀêß$ùœÖTÃVØ9j±1]µ†k¥GKGý|ð=>­>ÂFÈ_Ë>»ý®Fþ+*µ;_~ù(d< ijî…pŸGϯås„; Ø`/zµW2Ù+Ìû‹k0,°yQ'j·Âõj­G¢ð ×ùÓXý…ì•8ýKQè—ø «Áú«'qæ^!Žg³™ Y?ŒZGOÛGOÿúIŽ•/?cZë-rF „,òc‰’¯LÀæQg]ÎKÎ"™ìÑã#5)ÙÙ»Wsü§ §§ì‚ÿTñœ‡XíUún €^¯`C†ûÙ vS}€“žôÔ貟OüúçârŒsCx’ÍÎðb"?‰ÏŸŠ9cúÉ„¾4æ Ü7†®¯’í,Ø;®UX\ǯ™K…PP@õ€,àÅa–ü'x_ÜÉRï't>°-ãêuûöI ™Ävvùº»ïÆSæðw™ˆÛ½Paxæâ?k/d2âCÑã/£¶fGGQ§ƒÅ(Ìg½`µPa/ùQøn°Þn?íDëQø¤ÍtJaØ®MŸ’ªÿ@¼Âb|¼û8,äKa©}|FOy¼(ˆÀ:Xl/¨”V+ÈqBkÍs¬Úý ´#|ÝÁA%`¥¤‡†½U*•Ç¥ãc|íoðå‡QÈ6H°q»RbÕ!¾ü«ìS*|Ýé„Ñ_D‡í踭q‚ØV(—=?r%hóu:O莕/d¿`ô7ÿoi×è/ 6)˜”:&”mŽ»°§"ÀžzÙã´»Ëj€ýý»5ä)Ø.ɼáj»D%€”llZà`{7³g‘?qØ*4ľ+€ílÏH-0î Žµpðö 'À=–Ôã"{pÔMÅÄúÖwžé@?ÿÍDú“mÈz@Ч&øOúÛE愇ÂKÀ›3SìT„s`¡k㙟7aʘù§CÍ{€Ý®ØmÎÍmqÄ45 ÚÜÁI˜µ_lÀœß•ÿÍ@°¼|}¹`³ëËËl[È ŸË\ÎMç +W_SƒØ’ïJ«Ó¥R)ϱ}J…Â<›û®¾vŸq97}u>7}9w5Ç‘wÆÇ±‘k–Ëö¸¥Ÿ––±É80mÃòXCܳpý9X¾9_¹¾\ZžÇ¹žÿÉèø8Ï׺íáwò¬ 8»B©4]º^˜í5P„™®À?Ÿ~[[ŸŠ_ÄŸry||d¦Ü²wwF/ßÄïŽáHùAàjX Ð`š•ð•ü'0W#,›˜ª5÷÷Ù°0Æþ=M€Y–*™?°»h>@€±oÆ *ˆûÌñ9~Âά'åùxtŸÛ,ð‹û*¸’?Þ% ÿIhám~ é®ç*ˆýZÄ /€ÓŒ~0ëç &c®Á®fÆëPbêu²VÕ€0RŸ&Àò}7ÍÍ"Ó7ú›ôàMT00 àŸéÁÐÓ4ŽÛá¯ÅмÀ¯ ›<~öìwÇÏ~÷ÍÑ߇óÊÉÃö7ß|òø(¬¶Ú?:>þ¦Óùð§ýø¨R98£¼ttÔyÒ9ÆY1^K•LJ‡ïVؾð ƒ|–ùïs ;‚ÎÀqã¾<ÊfàØž×¯„¿ÂŽøJ tüìøëÎ?^?À¹Á¡<ÆQÿ_~Ì£w:_¿]Â&<|úäe +WzóKyüο?~öûgíoÂO8V¾L¸dêˆOÄÕä¼5<Š + ´B(M9Øsiˆ1 ÀÞþùÿ ‰ÄÞhÞ%WInÖlܲû Žÿ˜ $?žŽäÛu5ž!ý¹é's{åý$=e ‡þ€±™7ñÙ{ðÙ,oÀÛðÇ.¼Á¸}lÞßP ÀrXŒc©"ˤ¸`¨ nÛ…úíºÅf5€I}w•mšec9P3M',@~9)ÌÌÖTDc @‚¬•ô8€ÚLÍÀvà’)€‘»?:YPößþã¬.¡Ѓ!WÁeX_o­U"C_m¡±j믎þ毡 ó°ÇEHƒýbýúÓ +oÁS=Z©t¥g‘á6oÉoµØawlùl¾0º–ghuŠÇîÛ΀³Ü§"<®tŽÚø6ï=˜³V‚m?°~‡¬òËy‚„Ù»h8›xõ8³íÔÈ@7Àâ¿Ô5a?&6y%ÿ b|Þ\^J<ƒ€,Ì;»;é"À'ئ×PÔˆÒïX)À]¦åWÿò#óÏpÀp~̨o +Ò}q’7`{ôÔ°o«Õ¿ü›¿~òÍÓ«ÈeyçÍ:Ûó‘1G^fû>ë +Šì$ˆš¦a}âuÇ]ý›ÿ²rm8‚†Ï²íùh—ÚOøå¸Š +À(#YîWY;©˜?¿|¾Ã³òÔÕYPôÙæ8ž?(ü»Y[ï©Á²vÅïÀŸ—ÍP(À_ÿæožþþèñ¯b8V¾L¸„ó_Z ¨ìÏÔ›†KQ õ»¨©'iç÷#!Þ… ýrs³õæ2xÅÕ€E€]Ëÿkµøn Œ¡ Ô'qÿ€2xapšVöŸ4@¶c™Ã—¥áÈëÒ,&Òýc¦ ~ìqë=·€l?6ª`îåó0â´)Åò4tùφ®˜£/R=XHø/)üåÄÿO8¤x§p[»F~Fõ ¼ðò™`ŽUøCPÐß•Ü@¦ Îpî+p—)aÒ¼ß0÷7þS.fóËêð¿WHùÈmŒÀþ€¨ë­£Ö_=m…9Ö”ÃpØöÿ_Ž +Ÿ¶Yù†Õk|Û°UNȪCp‹ä²—Ù˜UÏ¯å“ 8 Ñõ°Ãoö2ð4øôýp¬ +|ÏøO¬\e?T€•RP +CæöAõ«Ç«•å/ñ=Ô·€= ¡yªlv€Oþê¯Þûë§ÕO>á-„‚#åK„ÅÒH,€¸ï^bР I`»Q³Š~8€](ÀÝ»ðw›ØßkȸŒHD–H î`»^ÛàM€l`í?´–€XãËÄ›'¬3þóþ ;cFüà+Ÿ.ÙÂ(ãV»5àÃT&N _¯v'-ÀZc5^ÎÓEÈa·@;’¾¦º„¦sêG”Á;–Ýc f@X”ÈæD}{ž`?ÀbÁ+à0z€ÈútÖeiîÜ—$À* +°vÈö¥ ¿ÔcnÎ]¥4ä{"3ºÔö7“ñ–·e.aê‚°ž<”u®³ŒR+êÓ罿~ソ®A@–·…åb±\ ¥À/­®²öÔc;!¢ˆŸ_DηÌ[ r‡þ 9&+ªÏç÷’{=aX@LàߨÿB¦35S@öùvEÀÞ—[úòãÜñaå8ðÖK±òz…ó-Ò°KÀáÌ[ëÕÖ_>•ôuáXù2a©4•`“€ãqkÌ<¤–¸Ì¨à.'æÿû÷ìÂlP%Õ²»®Fs?%Hz~9ö¤K À +nØ7ÅmHzË÷©b} +–ƒ»„ ˆ¹ ?y îã§Òû§Y<°KNKø„¸ƒÛYRdW³®˜b+«ä(ȳ]3€‘©9“‘XHð?@‚~®¸FXØrY¿{‘ŸopØ&^z9ö׺ƒv÷w03×H9W +hÝ×s!“R™² ¸èO\Ê^‹1„‚¿=Ø!Ô”g;ËSÙ°ú^ëè½Hýz©À +?ÝP-”BªÜVüå±)AŒ pÜáz…Ö»¥ŽSþÍçH@]@läøYF5'òK”€bq û–œ+×£G8]AXðý£2~ë7óÏž=žêÌÙlôWþ/aÏ ¿Â†@ÕÖßüÕ_>qÜ)_"Ô€°ŒKÉ×’-KÿH§J– jlÂÇir)ÌÒS{H~{ðÿÄ=bÿÁÝÆ\ÒPÐÔ ƒ€´êÕ“@öÓ˜1  pÛöƒÔçÙ³ìínØ©¡M@Ÿ"‘mãG"û}Iÿ7ˆ}>w" à‚£¿»€àÊ/¡ó#ºšvI‰9ð + €·âÿÇ[J|„` x—£Ý‹ÿ†×é»XγÕÜ›ž9€÷Ùö +ŸÛüG@e]tCÀZ@óVâL †7ïî*¥@.fØï· ü'濟þ—Æ2c—ºèí˜aPˆO¤Y+W[OßûªÜ¹ÚËó‹~ öŸ·üùmv«­\àÖF|H#³Ræ§x¡hÏÏ—‚®×²ïÝ„ Õ¨ž5áÒåóê üTƒöòûñŒcùØ=kÓKþ#W¢ùùƒÃ +°ZºÁž¾iú Ç­vpó˜íõ‹«æŒÿÙ±Ì𹌇 [GOÿêIà€„cåËD:•ôÑ1 ûøïúµ`‚É…¾Ö“æ8Ü÷\c@$6)ÀƒÝ$oÕ¶ŸÒ|kÛÆ&‡Án¾Û@1€ƒe H·ÚE¾`›O&åTæï&Þ¨¸„€lïià [R˜ý3×ÇO´°Ÿ{cb É{áøïÀ¢ê¬ Qt´€™kUMH.€ú6¶F®- €˜„*0÷ ràIʰà¤X^ö0å=s –ïq¥{À-™€ÓÀ´ ÿw„Ãs?²É]. +HNv¿òŠØŸªø#ÿÙôOìCêÆÔE_-€$@`Qt‡ËÕ?ÿ{|Ô~-B>š¿Æ†ýå€o/~x ðÖÙ[’@$&Ìþcµœwgþq ØÙ.À `Ÿ%fèù¼é_×"'—t? €}”2úD Žßþúf!Œlàs Ïw¾¬v‚ÊqÈŠ…ÿÖØ9Î>vþ袇mßûË'­ï¹CHD }3°M= 5‘€Yvm(¯¹K@ö®Ôs÷þ}µ`ùxpφ›d +hèHh\‡ªh `(€uð î3öWš²_BquW @Î0ÿÐO—˜–ö™mð•9ü´N¤©.ý ’lfÞO ðâ4&qN€DOÅ~ö!X§ñ û­`Rõ½è®ÉHN:€71Ñ,Ńiõ‚ +€«îzúû+ç8¶c¶»\C?¦¸@’_fäÙ¢T5ý3¸ti,›Å#F¯«GëÁÚÃj]-Þyìä +=´ô ¯„ÄJF„ç !À“·#ÄÊêÆ#ǯùäNìxyÖªÒÿŸX~Ó»F` + ¤Õ…9€­ç;€ž@éΛ-ÚAkûÝ墸pO²Ô~ÅEþ¹þ9`áYf<õÖ¬[«ýÌŽ·iÀ6ÿ­V„Ý£°róîZ~ùaËFñô8Ž0~´v€ýo¶ñƒO¦+ÁAe:wÙ+àhe¿ú÷þÍ3ÁCÑ,åÝiDÐaÇæVPøc^q};NXy:À÷8m\®ƒŸ^§(|T½°Có4,=ãn[üJø£¡ì¬ôx1Þ{Ò~åjGÊ—ˆ$@ QÆ@&U“z'““ [`¾%¦0,Þ…ØßÛÙÛoº!Âì7x/@bäý}Ù|¬kÅÿÚÆf N€ýQhÀrÛ+°zØÀÙ€Á`Äu‰ÀÏbÖMÑ#û’Œ ê0°]úáŽ$£Ð«‚”à@ì‹Ä`/l°ÐÊj H° ›‚@7€×µrHMLR½X-¼Ä¸Ÿlˆ«ìlùˆÑðxÞ›3pp°j·×¹¡áŸdHsE¤ñ­€¸ €BÀØ¥„ÿ}Õ€Œ+xE'ÎNþu;|‡Lj³2?ï³²€yíÒã{D! Ë'ó` +À‡¤ 0J¯~é ry¼ð¤}Ô +«ÇÑUkð +ÞûaðÀ‹;±8.ý-ΫÕ^Ë@þ^…+  ‹¦ÁÁOà‚ùÒ!ïÃß„óÆOÈv€<@â~4 Š_¤È0óWàÇ: +·ºòóc)Jý`ý%;w¢/¨õV2T Õßaµyœúu.PeIެrÉ+¶KÁ¨º‘ýËüÑäHä ½L‡>,ÂÁëã…O¢v»Ó™v!µS@êƒüörŠ ž\"6øóã"øÏ/d„"¥Áôa¥T +¾®JaçI»ÓžîD¬„xùßèÛ0&kU¸örí™`ei^ÍZǸܮüO8R¾L(y:¤–Odÿ³³sŽþ““3ôåä¿bpwïÞE ì¿§ûN€‡t +rà9äG‰p™:I8Lóo +°¡¸ŸJÜV_Q‡g`{ÁôƒÏMËqaŒrÝwä+èì’3ÛÐHÞH•û JޤjÀ3ùŸJ@J ¥.¹7n;ßév+À)69ÿºøC`QÀ4`ý oŠî +¥!k²­Òðˆóþ?J^È]²ÿ<™ëÀ0ØÏ2Îð%0B r„A¸àH¶'ÀL»\4€uË*\8ÃØpÛLóë ² O¶UO¶sàÉŠõú±¶ÆøFè-vöÉ:AH~´ €ÍmèðŠü—à +^óÞõ½©Biy¾”û»ãnÀÿäD3¡Šy€SBíëQ›µ–Eˆ›Z©PÄ?ú®p„¯±ýoÐéü”w1•æŸjÿ§ŸWè !ØRý ”%t8ÞR‘áÂjëi¹œê¬øÐ‘òeBÉ“I^@©T¯LÎ.9qˆù‰):fÿæ¶évövû³$€ ¼2poŸm8!o‡€ÿL4ÿi@ê« mð”ßã¿ÈÞ#¤3^Œ±] ßG¿ßãeà|}ý»Àn½u­p¬ˆÁ•³¶í›L²!>Q €·Wf™~˜çI(Æú=Š ê4—°‘' pÏ%ÌÜo%äþˆ32ÖÌ{ìΟûñ ð ˆD¿¬ý±µzùa_ ¾Šv†xû_âÀþn €yo€­â -c€%e¨²Ô Âàk¶„''©Ëþ@X +¢2›ûs3þbüÂ5áj"š~ìGae|$ëwþáY§]:>ÏOD|Îðù²Ømš:×£/!Wëå1\ª¤) ¾Íø[€J4ß :íß¿¶vž}ówÂ1ä£Õß=b¥5î5ŸE,þÐLÖ#ÿé}|ÿ‘óÿ„#åËÒaÌ~ [heR>aR0Soªa^lšÍÝ»wéþ›ÉÈ öµÙ6áÌÀåê»Y<À~:~ž8ðßcp67G4Òç{tt5G¯äÌ€X «n¾?‰!HDtAÈÿ³ËHCƒîê´‚Wήc²` ëT `@™ÿ˜°ºp"ûGRÌ/‚éò?@Jû­„ÕÜ+ èq¤?~ À¢9€ 8p @Òé.€’õ iìãÏÝeG\Þa ql¤¸£p§Ñ[€C‡Ñ]Ëg²‹ÆkbmC}EGûbýq­ŒY9ó^;  H¬äøzÔ6Þ—ç©3ž0Â# ƒwÛ¹¿=,Á?ðÜ!_ƒv'|tê´Ä*ÆpUðæR+:1}‚ßEÕ0È_šÐ?‚’ûýÀ*öA…$:«û¸ôöáçN _¾ÚÁÎ==¾ùKDôõ2}>Û e‹È”×£¯ªŸw\É„p¤|™ˆ£€¦]`¢ì¥¿H£ÛωYü7ª²!ø¯Ix¸¿Í^ÿíV äìeëÝ#ÿ±¤ñq\¨$¿Š +bÛzÒPø$Œé§ÀK(9ã×Y•ŸëÿШo {y®0F› Á» ~Ÿ—ÊUØ:Û–P+|Âj@:B%Ét²?v¶y¿ÆÏf´¼Ðì£ZœüÑÐyݸgî=sÅÀ¹ó*ô8FÖø…L0Øz˜ gA/ÿwöw¶»;;;ì r‡°³Ã~H l†ˆ—!—´ `LøITx>¾„÷ù‚(t„í°–¼kywêµàª½ùT!©`8_áØÁ¸´(Ø:px½pãf¥âås^»Ó +¢/~}ÖýÀ‹¼˜x’ü ¿ù˜š·ßýùAq¬v\h\–è (•J ;„~©Ä@É'áãðàúÍÃÏÂJåëNTýÕ;‰~w|Ü>xÊÓÐCÑc¨Ã»”µ.ÆW¾Ëa9@I;ê¸ÜŸp¤|©°”ï è1q²L’'Нœd•€æ=”ÿï¥ù¿ÿ€]Ía 1½ÞØRÖNÐ\ËœO0~a™mô߬m: |¿±u›3«?[Žêƒqn¨Ëfð?)ö[gˆÆ:>aXnàH”.†Ÿ‰¾r< ül$®»ëfB.( +Xë.7僗¹{©ÉóEÞ5šÏ_ÍrX`>{ø³=ަ¡B˜Œúø/ ×ξ»3ûzvdà•sçÎãàJêê‹'ôóù¤ñöÛaóú²~®Ý•4»7!˸ºw‡ùÂükì¼c43~™ýk¼†U×—§KóW_cg†ïêÕ«¹ì8?¿Ìn8®æ¦= ¨‡Ïrìsù2^ ËìãúõRéð§…ùÒ2Ç͸qùì{N™ï3þGú›àË"‡öKMË× óy­t=7ýåÉJ¹py_[*áTÂéëó¥Ráúòõ·—KØÉ°|ýúüêu®ÅC݇ð1Ÿ›žžçÏÉÍÏãkJó×ùyŽ“/ñÝ@|²À­,›r)Ò–”FyëªÄÝÆ?ݼ#XhÜ»»·ëø;€‡¼[`‹aÀúNÚ7Y `HJ÷4tì)H ?0£@õÐ=A*A ÆÙÀ¨ë2uûÝF}{Q;B–¸±ë|0Äç`¸](€mƒØ9 ×ÄüïwRÐǺכ¤3¾_¹’ÍMôÆ—òËVzv|?Æ}âÈÿ?ëÁfè„5sa¿å•s?Îä=”áUB6µÛúèØmU¾ý ¹¿»uÇ À¾ @¿PWöˆ¢¯™?D̾x« |ô×Q'ª´¿b\Èoáj>‰¢V˜ƒÌ!ÿe·àž÷k¹ïM»¬sÉŽÃ :>>怼• Òsuòk΋ýä<«´¬Ú€Eï‹0=…á×ÇÎãN»RY¡*²xíÇ8ß”õ?¿ú‡gÇÑÑ“ö2ΞݒµÚ(ú¢ý˜=žýú8‚8xÌÞCž~3½耹rÿÝ»û69ø÷€ÙD› ÷èÜLb®pÛ€)@ ç¤HÇ&› FMàjÿâj@›Dæܯ@xÌD÷´ +<îezç© +àNÓÀK£¹.“• îÕ¶b_l!Z:ÛHòjÛ’s±ãO °ŸÜ`I`ÓÝpäJd>¶ä‚#û@ˆ·§ÁQÖÐÍôñkµäœBBBÙ? +` §1ña°+ÆöÁöp—Ðm  €Y @›ØÅvÛ"何<ÒÅ â¾Ò ¤€•€ •µ +ŽaÜgÙßf|þѹ¡aÆþykßEdk8pvä<RËj`í +GïóÀ6›ÔXX37pˆ‘ÀŸÝhð,ïîîÜP  “LçæóøøMV¬"€oUä,£{‹ü¼üÕ€`,“yD½–}Û€l•·Vö¢yŽä³}Í„F9úW @‹T~#fÕX¤§Ÿ±ó+ù hÛ-®@ü`­ ‹!ÆžB4°)eÀ}X]Š ž å:Þ Ä¨ /y&#Ñ.}²ŒBAŽ“/´Â$(¿pºˆák¬¨x[ŸC¶¿·÷.Û%QÀæcñÆl¼½Þ¼çÊ÷Œ"ê`‰À ܧlÆüÇS øüS¡¾zc›ñO={òndô™ŸÊó[d‡_|¡8ÿpsºÅß‹.ùÏ:©@| m+x…Ù!˜9VØ¥N®6ùŽä9R§²b€¬Ñ‹A#çÅn” +ïÙ•ŸîÞA1`è•?2þ_€ | pþüèÞääuñ`€¸n¸s¿×ìPœ°jÀ3(B§ïp|þªååBÁ‹ÂB„ò~ñtaÔF–¯_¾ˆð««zÏ] ƒjGÃvy<ÎZ9ˆ®²!.Ε±l±,>¡Pànë=Eæýf¯,þO-À =A0R:7Ëå1|¯.UV¿º#ƒ¿Þúª‰(܃?0 +ÂoKm•4[Õ^îüfªŸ|P§rû•drœ|™ø›¯#MŽªMÌ-)É EbÖþšræßH$8à®Åt7ð½}:Å`î>·P«o6¶ïQLŒúV €¿A¹?Ÿõv= ê§;Åä4ûÐ5qZá0ðÞÛ"qn7‚Ë:?=¨¢rñ¥s/ÚOÀÇ“®À ìbÇÛ2_Ý™ÊUáO7.†X"JI‹ èI3Ëþ¥ÃÃù+Œ sØ.›Ï²aÀ¹óç†G²™‹ë0dîë¡ÔΩä׉~м¿¿··ËˆP °Ÿ˜Ô ¤'ÇùÄ 8@&,// +…ð À¾@Èm‰üœª$•ǶwÏ.Â(y+jñÄ;ÿ=Þ3ÀFDÑ< ¸²”Ï^)úÕãu†IÇ ñÙãø¿{¡Xô¬CPáQ«U…—_õ‚‰ h‘»ôøveçÌÙq´°]xV ªløƒg¹õ4ðÛ-¨Ï7Vñ‹bxžëÔûëߤ”ñh¥hµ‚¢B…e›)_*T&F’ÇÜ9k¨ÞMi8ú«ÜOb +õ :€½=0Ÿ=ïö÷U @@j8@ÀÇI@×ðQ3þó3nÉ6¿Ží'þCÀWðy¥G,mñL`N¡v €[Qðà¤q @¾>ÎþÝY ^sÙžzÇMédb †ºÔXgU¬LÌï=¤IÒ„ÙÞ›J|×z+þVÀ‚XðŠ5.ÄF8ÎlF`8“ç½ýº‰ï2y¤E8Îã# ”…Z*gÕ”ÛwñÙ/~ù‹8"4 ¹¥1Š’ìŸ:ÐÓðÀîîC€ ÀM…å TÇšÊ÷(ÅëÇÓ¢6ïü]«Z}d;7<øœ×üµjTx‚#½ü@P=zz†éñ6{¡\Ÿõ€ÌõI}¾äÁ},-.-ýe˦VBÖÊÑby‘ + ÇA ( ,´ÚËpìè oÊ€ò“Vu}ý›ÃUõÌ=ø_|Kÿ*O“æQXTÐ%_*~ÆØö¢°–)HŸKµ}0ö1ÿ¹TÛÑYàm€TÛäÞƒfm€t@à!YίoßSý>g½€]ST]`B‚°Á[…N±•ÝuHëøiHx òÚ¯s`$Àâ + +( UçåÎ +’Ïø=–±»«ÃkG÷Ï!†ÜÕ‹/¢¶¡`9¨n\à:§)X`‘ì®!µxo.ªä¨$Ð5ƒü7|ï“$ÀT ÔÆ%=åãæ˜~ä"€ááK]>wnx4ˬ9¨‚ÎZ#[cQ]èwŸ}ûÝwÿüËû ÐÔLºCÁˆù1\TÜÅø“–¯åƒ?yi"_t›¡`í(ÛÃß±ý°ûq­Bü»ƒv¡ƒÁå¬Äío³úg†Nþ+ó§\3°”wùë/({€uþ'À% +!U +–åÊï´£°Lðµÿ.OàïÅ @±Ç,'€C§_àÏHF½‘ò@Å”‘I1q˜<9C‰ßàrfås@ÿ=3ÿŠÞ×o³Ú€ N  #Øq8ÕÙ!Šf Œ@$Túg¿@pî“>€øÌ­»yw¢ç©xôPW?F¿‡ì¢(µ`Y\öÄÛœGµË6;ÅaƸ„µéK¨m?¬Óü˰  `¼'w&˜h8Òéï!›Ì/«Ý’ѵD”¨ÈtÌWV`¹SÄzÀiñ¿ÂØ_†­÷yÏ…‹ºî )ÂyhÀÇìsÁµ,Øþc¦šÆúÁîû»¼ïÓðÑ·ßýë¿þë·Ÿ}¶¿ÇœPE`âìh1'ó¼€}†@ +ü¢wY HÅ7¼¢‡Œ’ +X\)¾£PÿM¿ÃÎtÀøÐv>-·¯¶~˜ÏãÔQ"hýù:;9d¿eüd?v’$`"ë ®‘ß㨹p +5šxûo0i£X£¨~s蛀»ï:œ¤Š]¹½ýÞBögH„à +{Æ  %Ý9;§WÍŒµÊÿY=`¶½½…"ìÿ€•"ÅBÐÎ5\SÁMäŠsÌÙQ°ƒð0âÿvì§çT†ÕP>_…2Ö[PõšÈOþë!Æcƈ&䫺K\'@}!¬Õ1Vn"“âÈÿXRZ€O@gY½ìÒa¦¦À\Œ¯ m‹­ã  +Ä@ŠÀ'Àê½°Ý™ä1<9€kÈí•A + +Lˆ¢Œf^ %²a)Í1-Hì¿4xóÞÂÇ(`‘íÿÇ3øF?ÆŠ¼çgÇìö8/ŸËrâL1~=ï@ Røùÿ¯ÿòíoñ¿}F4 €;4}B³Ñ{7 òAJ[pæa8262s4°;1Îygqñuoô¥KYÖ^J9ô³©åN.ÒÞùlfÌ[ƒ«­÷ÝOàMìɨ_7þÏ^UçÆ2cÈþ[­/ÿÜ9€¾€9Žøk `€å^Pêu.0Ø$ü¯8J¾\ˆý–©€¨4ÊtÉ™€U–¦éì¿%;]ïý`ðl­y/îdŸn³%à–s›l#HцÉ*ð‘eéäÿFÍqŸN£þ!©­¬· ôT3Š[€Ì£®=ÂAˆMG|Š—ÈP vâûòB‡fu»8¯m>¯"^0KAÛÊ 0€ÅYÇm¥´ÆVòl0GÒ³åoéßÀɦ{`ÓÃAÄU€üEÙ¿néEþOÀŠ@$Æ ªÂ0ÀÈE%›¯  œÊîž ¹O`“÷÷5÷¾%ÿ¡ß}÷í·ßþó·ÿù/æl”Bdþ†Æ!Æ´Õv„_–÷Xw#¶¤ ýÎ1ˆû cw(„°‰€ºÄ<›}}8se$Ìç3j€¼xÉ×Á¾ˆÏN»À±zC?Xó£Î³ß}µ;ÑW§àMËôùëhè¬8¨L–6ÀÅzdW€>ÆÀu@ÀÿR è:Í è˜÷ÇJÎÀþ›ÿÇä(ùr¡l“$ÈÂ4kH @‚û×Çœkš¹v²woŸࣅŸ/,ÀPì5ës³ì9áp8¤-ŽRÈ $P¿°Á[øìØÝ;…{&Ò‘äGöOzóÝI8Þ ΄’€zʸW°›ŸiôTðÀi; +áò~{\ã»Áư5&(o`âÏwÀm'§xÙyUmk<¨SL$H2ªSÀ•»ÐGœ½%þ›Ïd‚3óÊ +4^¯Ê`?d€e$÷<<ÀƒÃ#äWôÍî»ùCÆ_gîŒo ÝP{'`ŽŸÑ¿žj€´¸4–»‚kÂ^˜Â˼p‰Í¢²WáXè=ìÌ—µñÙºW.–W–¼r¹ÈöŠ8嬚pøjÅE¯€i°øŒ¾g0…¤i!`Fü ¥üSI>áï €2ó½&ùßu÷îm׿Ô¨^Ã1AÖÖ¡LRHP(<íTöw1h:0€O¹?Èž°¾;1Ÿ6àx>HRÁ|ñÁé¯3`Æ¿ £á@Ýv䞃m€;È,ŸFtè]GëRA{ÄÀê­%­qW]‰ é%×ÅsUj] +úDY?X¼×¢•õSfÿ?–ýgòäÀ=¬$ÀFãÔ΀–i©c°õß.ctn;÷÷Ñoû]|÷Û ç’(Àxš`õzÉ/­V +Ùqþž~W!K«øÊð™+Ö”ü•HŽ¥ û±N9ç8WvÂMò—*‡ó‡7H{üú|fÜßn–*§VÒOñE{…¨Ý€z3…_‡„ã^qi Û±‚"uW†•òþå X\Zz§X†Œ€% +€JØŠRµ)l÷Ûu'bÎ|?ü‡`¿5vcKqrDzUâíËþŽ™sxG°½Gp»¾½woO‘€úÏë?ÿ°^¿÷àÞæl›66§Fq¨9”ô7t ÷x@ö"îoÔ7è¸hÂÛŒbƒÁÀò|úÿØ·'³ÖøðG¢!@þ'ÿ6o>Ðýý,p PѼÏćìr(cçð )$oRk•ÿ›X= øŸvÚ`fŠÉ‡Á1¤;òQ­Á#Þ&´z܉ÂŒ|„<¾¼‚Y> + 8›œ©a~¹Ê»â³»ùÿwÛ(ƒ—ð„çG™ÙªaÝ1ŠÁ§®—Í>8ÂSP¤ÌÿÉɤ€]š£àUW to­-²6–«²ù«üoäXAk`e­ÈÌ?X‡ ˜ ºv€ ¯ÊÃA ®€`àû)Ä€IÐBTYQGþ^ °¿•™2+ö@Sþ×lÆâü;n#“¿»}^ !ØÚ¢Pv ß`¿ÁšD~Î, +À8?x­‡ +œñ»;Ý9ÍÅËA +@î’Ì1Xp1þ6ó|Ìø*+’*¦ÐËÿ~ˆû õË£qî~vñÈÖ¶b®°I@Lð1ÃTó&Ò e ¶òÍ/,€ýÖÄ”|IùÀýVvàõ£©ÿáaûÙµR)Ùgý%¤íÌÈ…óçéPð'¨qŸdˆŸrÿ Ø?‘ÿ¿½Ããì½Å<™Ç{(à!X~”U àZñ2X¾ãM“òx^Î/½"Hàm>¿ UÔoÖ¢«í0(‡m¶ÌŽ[O;lÅ*pT–ù½S¾÷S`¢ßä—ÁYL®y¶skæŠkeµŒr€€*8)»“Z®À1 R¾ù3ÇÈ— Æ\ÏuHó‰`zµdÛ#SFYÎHÊ5²”w‰Í!mÜÞsñ}”\¿€Í9n²µ¹‰#r܆íÙ^ø^ó® œc€ÌÖCáÌlÞXß,“&÷Ï‹þ”ÎMR0Æ:>t-@ÝN'ÛÜÝðñþƒ€ýÛÔt†0¤¡+¦ºzà¿ëttY%ê8íì‚ …)9eJ€;òÿ>î“ôqþ$-­K‹€ýVEUûB?À02k +”›È_Êü„·œþ 2ÝlÖ B¿Giœ%ò,JkÆvw¬ÖßÕôãŸ>b íÔV!yø^Å+­ùy°LWó¾bX™ç-1ª!TF 9Ã,h/yáU|P\Â{ @Ü*´ðü¯æ£°ŠbOÛ/â˜þ“Ö_»Ã !ú \t¯=@!Ç8ðÖÚÄ +‹¼3˨-À?åVX¹Â+›ïqœÎޏ(@ÙòecdÔØO8 äªÜÈÒ¸ƒÞÇ”eN93ãþå½xP¿}gÇ5²Hg÷L¶ <˜nø©³Â@¢Ã5X ävl¬ÁbÆ  òc&¾[!àÊ>Ðú”X þàO’hîíîüñÃÙ‹ÙCü.`ÿ{ÅÀ®‰?ä§â¨)50« 80þ3 wâ¾J3¼gÌS ¤”’.ÅvÏ{ /˜²øŠDÆU<‘üŠþ)ÿýÅ.b®r€¿„$;†4ÉzÀHÞΑGRÏîèv? +Œq @¾ûŒÃÿ@¯8ÙOü•ìØÄ€l÷Ú~!¾'¼^Á6@ƒQÁ¯–CÅ8H(§ˆxg‚ѾUáªåòRöRþÑ{ÕˆwêXƒ°H$7Xp‘›eé—@`À•®x«¸ôNÞ¯\ÀÜIþ]så"@pÂ$üW$àŒËyßS+ BL×dñõŽéÚR·µà'x°šÎÀº/£(ŠHºõÆžsM¸{‚äbVÎûyÌÙ¹Y±ým¤’ÛMåîަ²?ûu°C›×ä@O=pÒΰ‹µš÷I€kÔ7üÑBB~â~s÷ãý‡ûû?äüöÖ4о ìP‚®¿ì·†º|£¼ÕP¼ƒm‡‡À©D\P¾oà±ò×Xñ Ö3½/à +Ë=Ii©'“ÿÌcþ{Êû%ÌòÿT0Ÿ0@i÷Ò%ÝtiŸ²k0…i–^}5;Χ£¯øß€ý×_PÀü}=-óÜø ÉøOC­^ \XËŸä1ŒÉßqX‡W½Ðo±Ä{$ÔhÅnú/F”ÊkÅ7ÇÆ&üõÀ:ß< ¢æ,ñZ“æä/Œ¾)Ãb8ž/¾U^BÄÏOÄÙ?€€b,ã, ÿ‡ àt±jb,µÕ6Aʘœp.Àfx8:¾|tS^×J¯Jµ|µe¼X.F !»ZvZ¸Ýˆ³vG,zäþ[[V+fyàf­‰0ˆè|°‰ õMòÝ&øÿY +ì²Ó(ÿwäsµÊtÁñ¿G†˜×wAððㇰP€÷%!:Nÿ{Þé"ÅÐ÷¬a1Ø$É‚«¼¨¼„¼MÈÅHÿ”p€73Srêõ;ï@nç¿ €ƒ(b +Îå < +­ø 5‰¾˜aþÎ>ØþW&ëd2c(³ý÷êðøÎn`úT{}ÁÑßÀ¾sŸ9Â÷ã·5”Ò€Y]<©$£ ý¥LFÜ2ôÈŸoãÅ‚úl0è~I8£ª¡ù†µñ +Šrd¶*òèŠïT‹+0lHÜJ7î‡ûE)Øð "%qüEÖ/o°†{Å¥²·b>ÏV/j°¸è—×Éürq Óù?ÁÁìHþe§y§Åpº•ÇÆï–ô¦Z%U6VOHoi7~+î ØA7û3PÇ êí{ì* ¹m1> @“ +°  ƒíŠc#s +Êê s‡\‹¬Øìá?y­‡ËîMŒ·š úŒë‡zÀˆ#vûÿ~ÿáGûûñ)Ží1°Î><×-7ú.«Tqoº“^€¹€Ü.äøE ¦pMMÿ{ £µ;ÇÏž=ãó÷ÆÎ]ÆG_͉#w[ÿ :æ( +pá 11 \ò'Æ&˜ïf3©,úLì9‡ÝV0ðKGø~| èæÿŠô@?&ð(=â¾§ÚøAÎó³`€¥€bP(…Å2ʱ´É((€­ª_^ #vÔ‚üÄÅ, ;xÿüä†3š›8ý(ÃHß›pù 6ŽCiËlzÒÛÉbÆ÷øl©\ M48×%ì1‘å`*:ÐOòq½kŒ“ÀÅØŠð{,@â$¨Z°TÉU/ ûO©@°_äïõÛÛöâ¿Zïß3@FÏþ“âØAS\€ Àpp@·€%E@z0V[FÝuÆO­ÒºXc¾ƒ?F×@>~Èl¿^èUwÍc;Öéµn]T9€tSÀÑjX¤®©›e“ù\ ¢6ÉÿìÙ7Äïž=i·˜ôE ‰ìŒÿZ¼0ÇÿáÆ&&.eé¹yÀ|†,87÷:¾éTpW à]ÿ6 ñ_ü³#|?(º!8v7J¥Rü,ñ'àäƒ|æâ%*²°×örí•lÏlPaàÂ[þ²We G™ŸTFâ_„9¿³Þb<Ü÷Ø +@ðç¬Ü ]„Áúñ+¯Ð1]à覬9`餠¯‡¿B+Þh>ð||5ydÿW²ëwéǯ e†~œÆð‡Ç*Š~Ào_“ ß-µ’ä³ì¬Þ–´µµPÏ ª`°q{Û @]!€{j`@pw:7¢&1p VÛŒoúcÃù|ÊgÑÃÿ»À˜—Ä~§¦?èñ.AÇh2ø±ÊîxÜí„è"ãs_`ߟäýñYh]Q<Þ P¤P­€Xˆ/i, SËo./Çô/ °…g–"ƒÈ6ªaøeûéï¿ù=$àÙÓNTm@ÊÿH¼g–$ŽýVñ8(à"YfF†Ïó†OÀ‚—¿ìà.  Øûì?³åß |û@9Ñë ê ƒ…íl6§{ ý ‹’ЛEkxæbÑ Ìe‹jr"£Å/ã&äû€y¿Šå·–&&Æ.ŽyŠ Kžãû ðœð——Icà2eÏe/^¸8|‰ñ/a£A\þü%^ÃásVŸÂÇÅKºÌL\¯@G_Îr§^ äÒã\ €à{ªÈoKyH­,“òqÝÏåÚP8o PŸšaýÞö’rì ³ûM<ÍMçØÐb¢6±aBtûC î¸IŸrŽ]àgäj_ @8ö;@úS4¹í€bí> @ Ó Lgñ_@·›à×ãì»Ý7Ý2é¯ÖÐo°€ÓHªå%/#™©”Ù‹nAyv‰Y`¹ ïÈÁµóÍ?~ÕªáïßâiX~â•aWþx@\p IšitŸ˜XäÍ4 ŒŒ¬ I"²eÚh€Ü‡ØÙÿÅ·'Û9üö ÎÿY pƒ™¿7Ø€ý8è6@á2?Xž>ÔCvÊŽ7iqŠ^æÛ÷W¢«7ÉxdûÒžÁm€Åµ¨”ó«ŒÄç'²c×VLÿbpî2 m’c°:븀'ŠR¯ _„J2NÈsÎ^Ô5‚¥2a5°÷%WΞ£Æö ‚w¾Oþÿ™²%L‰P¦”äúÝ%ÁÒ(€doA@ö Z¿iíïíí©=¿€¦ÀæP%À€£ª@öÓ@6m¢ý© €ö( tùŸ0Ž„sùu¼B4´Oln|<ÝìÞkî;òÜÞ˜z O †(jf؉°}3ç¶ì /£-ðVaòÏ‘^ˆ‘2ÿi˜@*Æ\Iœ4׫­'OZëÕ xöÍ?FìÌJ°dH ‰"‘âÁbîÅ ƒL¬ðƒ ÿ9Zw…€óÃF² {ÅË»@Î]—‡÷ï³À_œæÿÿõ_ÿåúc2%O`àm.È3Òá4ŽôFq€wâøþ£å@w9²Ømm| Xÿi¦K!Þ³ø¹p‰WÇ/ÃBœ†‘‹?ø¸0<Âàè…a6š"¬Þgi/.Ú%±˜@fÏ‹9ädã‚g!ðëòÃvKC +—ÿÍÀ@å{,ÿL”LwI@F–FòšÇPeóG§À¡Èð3}”Aüj«ÍÀE”B Æ@ľøÖøÛWVXNXÕs!?ÂO€a £‰ºHaDˆ‹£?A!ˆù=û×Y!0Ì‘¼Åò¬]¸˜éðüÉ£$swVá'~¢jW ? +ž÷ãòÉ€#â÷fϽ`†ÀQ¾_b Ï%%€‘Q8€{{}À|éšÕ€³€ÍA@EØ|6ÅÇ´É. æ`ÿyó¿ã?8o åÜ @p² ÏùÐÆúÄeþ‚c¾#¤ÀC;.ŸØ’{¦î+£?!üjÀwk“˜ç¸š‰ å9·%‚,‰áÚÅ·‚AkC“)}M€Ò¬‡GÈù'ÿí›ÿöÄA©H<ªeSJÆ ÿ¥Ì˜:ò+Çú+0‘©ÁÁ½ìøxîšÕ_Üe ´ð‹Sý?J{ÏuÂÀ_D:ém;\ÎEV×ùIF ñÓB–e˜Ûûøüäõ*V”‹k’Š Kí\ÈîPԈ׀ +wMáUHHLnãâ\bá—ƒ·Jcö^`ö/•?Ÿ×Џ¾¼í‚÷]d½Lf¼Ú„m üáI ÀñûBœ89.îNç[£¿=z@J&'gjrÍæ6€Š{{j#T‹€15b€mçÉsÝæ#8ú3(ˆáx »¿Ñ`Ù_39Nθï»À6ÜäÓg¶Ö•eþš ˆ¸4NØÖÄY¿Ü$ åtzó_àEå… ù•ýc²O LIÑ…’ +&…wú¼IXE–ª-އ‹—§ÿ¿ÿCŽVt·Hâq ”»”-Þ›(LЈÿìåñ|áÚµ'wY(÷Ù*pàM†ú‹F¿Py$,G¶Ûël„Ÿ£âUr9ÒŸùáñ—_? «ÕöÑQµ naP:d%dâ¨mýò^@·ø\[ÇÕ¨ûÙ5vJß`#üž˜Öéu!‹<9»ƒž¹Àv‘W&ÄÒ|Æ1‹ì©[^=`{!\A8©)A®Ž CÃcWð§ÆAõ˜œr Û¦bއßb¾³<6Ú‹÷ÝY.a#iSTh4·gG&){÷zÀ~`»6Ë„]̀Ўþ‘¼®Ènb€üÆ +ˆÏA$ä›hγÅú€VºObðfýÎ`ÿôÀùw;·š½Æ¿‹Çm6|ñÛìvx"Ïj<ø™Š?_ñýR‰Ã…F G%•+Aù-4â(ɾÎbóAˆu_¶uÕT²ÐG¹’wÈþF:n°pQ“@–\ðó™¡á‘±<%¼¼zN'c9Dø«Tðr@]^ñGÈ{árf5;þ*‡/ÉañÜeîÛøœ®°€£á÷¦HŽ—iƒ‘û¢+^4'R"à6’öää¬ëô†ê·)4ó Í»š¨ÛÌñpxÒŸ°`7ú +Æo@½€èVÁT;‰û¦ô8›ì2žƒbñ'¢¿"zŽÎý€¥—Æ û} —÷ ì0‰C§Øë9_7êöaWúFKÀyWðvT> _–Ä|Ö â•-~éHsEsœÐ¸Z€*â?éŸa à­ ;6– –ü¢+°c‘á‘E| +Íê"›³º:€?Þ¿/HuÒ‡ï~¾Ñ  Y$ =0ç¼?]ÑðÙásqó²£ßk¹\aÏBáêU~\™®”¼eŽÊÆÃä÷Uë± CM—c¹5àærÕ#È{/W¦Køl™ ¼ø ¼:Êyf„UxÃÙóP¿ÌðHœÆZð}$;2žÇÚx9ylÁÌ«XÂWfF²ç,$‰à~ÙË&viÒp,üaœHÊå¬7˜YŸ€†$aÓlR`øP2€³ß݉{w15÷X ˜8“»ÀÁ(Ž©¶±°0ÇÞR€ŸáŒŸER_ù¿+ˆè¢< '£h?cÀHgS~>-ŠTcS“wEs´ãÆV½íp™Ì%¤@€õöä +"¬ÀW1ߡϠ€K@pü¯2˜8€oþÛÃpìW¸OÀÿ›0çG: ‚|¶èMäב+M䋲ÀÌ…‘áñk‚q8XL$ïà„ ¸¿Ê]Àù‹[-^Õ”`` Ú…è²ó0Ì^ÈNà·p, dë\ƒß¶Ã¯8ˆøQ&ÃjãsdùÜñ‹Naþ í{ +p¿ªÆ?j?Z—«ð®d r7a¢ˆÅ‚Aà· Bž·?øÅ± ™ì¢ŸÉñ¦\“pœ7þyålæ·Y ³Ý4`Ç*{Kþ"»oÂc-7rå½Â<•·¢AÖO`=ü?Þ9Æ ¿O SÍùd†JâKHØ÷¦~‘J Ô‘†Qvؾ½½}{K#/è–vIØœ£ðv8(8^oÜŽÀõü*°GP·Fô'8œ(ç ¾øïêÈjͨ\tz@ˆ'òOž2`üç|èœK@|Wˆï +Üö€sšõðß‘°^dVl  ä '€ ¶ðÁW002JK@05Â#q +°ö«× ÐÄxÅÑõYàð©{ÞØÿo>;Á  ?²£(ÀäÆéd_gîüzÎñÿá9€û.ÿúnàZ¨!Pâx¦ Â\àGå²ï]²6÷îæþkääP–ëy§/të#C±Ø)”"µÒ-+àb™—€Õ€ìDp8S¦K›œeÀƒð:oLȲ ãXˆ+qI Ÿ ²9?w%›·ÐÊ Œ,òNâE†OÀÏá]×™ ™ |‚Ÿf·÷A+ÙÔÚÅ¿W(—Ç”8,ÚÍZ¶—ÑèÞ·ë ¸bàuãeÍÍÉÀ¨ ÝË“$Fq ¦þòçT -€€nXPoA Æj"iè¢?™¯emâ„ñ5áÁ;” M–l{*úŠä½½¤ÀN_l'á·8zyãRÞÖ@ǸŠ@yì‡èo +€w <‹T^H,Zª pÒ@NÆ`ùIÿý¬Àb_ ÖP=îN0•N\áÝï!²1×[óÙp8_€È^ϽäÀë´³ßØr!oû[‹ßK)(atO>œ.­y^éTÀ÷ òu¶ñaÅþ˜— &p<Ò_±ºƒ[ð,AÀv§VcÅÒ’-®d¯d¯d2×°ž·ðãj,-Å1GÁï §Ú¨Å€¤'vh7Çf<1ÏŸ•€Ì,ãL΂°B»)P`*ÇÔÙü€jÀúÆÂ ¾;íX2p.Û©òpü'袤uâeôO>ÀdòÐÏ¡1C25ÜB v1Ü·'ñmJÁ?À‡¸°ûœ6>¨;O°±Ñ€è +`ƒŽ`âƒ2À{ +A¼ÊD å°Ä—“1€j™#hœt*ù;°öÌwá¶g!ÿ‘êÙ|4œðÂ"x‰4ŽÂÿÈOÎçr£ãy¯„TÍ‘èØFšívvvÎtÿô!,àò?q+i´sþ \ Ù  Ã’WXThù]dí>Åù%ßñgcoP‹``%î.€ +Àq'è.æÃܲTDÚ0ÆÕÓ`àÒ0«Ÿ G¡5€`×ûc@™êþ½=9ú\€òFŒ=ٿͦÈûg!¤¸È4ph>\pà ލhWeób)èEòßI ›¦?ž<,Ž_Ñdlëî™@»Ú,†;—ß§b…”pO;)Ÿ¡;ÅP:zkNƪe¢uÂíÜÝ*û_b r·¬î^E&˜˜X‰"¼5_ÿ’e~Ç8¶Ø9Ëüv£63·Åûãû†8€_2ù¹L*ò^€±+Ð :k(‘kç$ÀÜÿjܺBØÝž¿æ64€l‚eë+º? °äOw÷ˆÓ© š ¸´6Ê!Åq`i .ÿÓ<iÉ2z|ÎóÎ@dò8%œ?n;~L&“ÂöÄW7t€ìß»û€]l_‡˜þ$;ù€ƒpnîØ™tá”V€¾·–RR€¯@:Ðú›üï‚á`iâÊÇÿüRE ûá~õÕ‘ øúñoÞÑäøOÀB΀ùwÈfX@ú ½µ~.CË~þâ. ÛdæêÅ6ùVVPà§“Ç:¾÷Š-”þƒœ²·/¾çX~¸Êþ‹, ˆ—™±@¦&†â…!sáåá—2W¼ñœÖ'V ×aY +¸ÞøZ«ybê®Àºù Û—ƒq”p‘µ{08Ž~ß?Ø…ä‡Ä--ïOñ¿×Pjµ¹©ÙM²“a.”]IÝí°··C`Á‡÷ù‚·'HÎæ¿É ¹N€Cš«i 9Ì\-©MºÇ3P“¯öVä·6<ÏOÉà„þ]ˆÀƒ ÄDëÕ$„oðL*ŒìTCêÍ ½66¶¶6¤ÌÿEž¶@Gµ“M^¹Ä¹›˜Š€ÞZ€1€õ2{Áêsßœ"ó‚ä®0ùü„Er1(@f43:2Ûâ§…lõS)¼æ…ìóoØ=T¯”ó‚0 +­!®Œ„_ £jp ¿%RïB6ˆrlônè¾îT8þký,É{-s¹€oÔölˆ+]]öñ]m~¯V3ÂÛ`‡~¬­á—\†Kñ²›(= +£6>>m +…¡£ß`?«ŸÍIMR + î `£9è¹YWKh?i(¸0' (Àm5R™ÂÊvÛ@?j³41°-Ž-°ÞжA¹ƒ +àh'zˆš|u·ÞY™ÄuôªÕnÅG¿CâßEêf +>&% Ú/ÞS_bˆÀöö‡Fù­ÍF½±µukÆA‚جá¬Éÿºè§Î%†;ÏÕ Ö»·š×ë&±8é˜|{Û/¥î\˰!ûXæÌ¿¸Ïo`h›ý^ ißÂ&,‹ç'€B"ŽÿF8€³b¿¬Ý‚ܱz@aH-}b,æ.OOŸÒXdÙñËl4ó'ã9¾Œ«ÿl7>Ó9¯¿š»š½<~¹0žËM_ÎNk{µÛð_gÃóø‡29ÿòôéәȟ:?’ÁIá8%|ùÕÂ4Þä +£¯åƹ¿û^ârn§†“ÊåñØj:7ŠÏG†‡±%×OŸq&YÌû~0òÓ0;Í sip1ÀÍ͹™Ù Û=72…¬:®@柕MFYàmð¦r¼·7 8€'(Hc>«¦ ([ V `…r3ýÁMÑGëD ÷‚Ç¢rül¨–žÓ\ãc¤ì]Å,ÿà(zİ´-pYþÖæž5`666Uø&À‘Aç“v€²NUïì ÌŽöð¼7™óST p2À @¿€¿´-øTØdXdñª¿Z\b– >‹¯+~Yy£².Ôa<3úÀò¸'Çÿ‡Ëœøw“µ­~àWºðßÅ;f£#l3—É.y8¿B~™cý” +%¹kT|¯T¿Ê5~©€Ì8_мg‚m±¯çsƒŠ_Yö¿à…Ê!”ëjöÒÈð¥‚_ñJPÄw]‰ãtA@7)D{+Ï]ÍçK¾7_)¼ŠW¸Ù¦À—âÔðŠçjPá%•‚³ÂqušvÙ˜-0.ï]®8 Ž}ß?~†램.T׫\Ejôß5ÖÛ×êÈáØ:7űÿ ëgðî½mö‘©ƒ¹ãÀ-`Cy» γͦÀ5 +€Â|s³4X°j?§¤¿@ ÍÅN.Š=˜¹õfLHçX˜Aæ þþ.»Á‚Á˜Ih?·gZhýÉ|{ÖÛlQ€"@- G¾µEsÈ…&®Kbt;];S¾³U ?­cˆ ¸˜ñŸV °^¨½íôé Ð*ÕukZgh!ë7¿ Ÿ½˜Ïe_e³V9€œªøtü‡4j\°Ní à¿þ¿¦jZŸPy:ˆ…óÏg³ä6ûj–ë ÇÛdñë(Qxmûã0=,\ó¡ +ÁYù›ån(â +ÖP=òW#¬Ì{¯g³—†_f›<6^>ø5!«›’‰Ð¿¼|àûÑrî┼Ð_a?¬pHkå5±½µ1‚,Gn4p[ø+yQp¦+íÂÁ±®ëépôû€1Ý‹ UÿÅZæÿ`.‰iPñ™ÚìiÄ–í€s®Ö.³Í&›5÷în“ð&+’[ã Fm€õ@ŒÿœA ¬Ì·¶À*ÈièÈPòÇ­$´ŒÍäGg>Ý¡Y¶<ÕسKÿÄÈ ˜±³˜» î× ÿ’#%sYFÀàùr²uX˜›Ã.¢?ï‘b¨¶@pÚ½'ÀJoü‰=èˆ^ù¥b988ñQ%l¬^*@ÈÍ䯙ÿsHN¯tãÆ >ÿåvš÷O¿ໟOÖtfÌóº(x#… ¶òտVꎼ A÷Ø(Á +…7ÑåÕÐ>dÌõï” +v½í{K8køù÷"ìÄ +@9€üÚ¨Bfü0W +¼ÂAr„Km{jÌv;Æhe”óZë4pR‹ù쫺ÍÑkæZ¸Ìƒ'àÑ(0 +ûÙ>-vièmD Ì©±I’.lÄ`¼FÖe»°7 :€æm9×HAôJû¶ñKbsøÂˆMf4? a;qܸvbÁ”Zo ‘ÁöBc®Ö¤÷gþ™L4P2Ünœ'ˆfl„ëÁ"ùn‚°…#ó–fò_1ráV<”*à€ì·3Õ霛à ¡t½;Gùßçìƒ&rf–¶€{÷·ïÝKûdMH÷j­:Á!qˆ%¹P=i`çaHþçóÙ˯‚•Q +-”ÿ!;»p§ß HØ‚pm…¡<ÊÈÉôzÞϬùËÃC¯°ß 0e<L\¡P<Ÿ¼Ç©æ®½;Š<¾PPh_…B-¸˜¿’.gã¿n×g§‚¿õt@²^ÎYûPðƃBeÈ/¯Y÷á‹ïHRqÍPðù§à=üçÕÌâ,°]»uƒ(ƒáØ÷+&yŠ‹ˆ¢di—©ŽšDi™r£Î´ +(Èg€Y:ì;‹{Š6]CàYöƒÃȧ (k· _†CQœ ” PÞÏzÕ˜³'}ðp~)æ—ñL€òr'˜tâ@I3Þë"9Ò_ÌO±°´Í ‚ú&@ý–¶éþk\²€ÆÁ$´¸²Ú‘tÊ:[,ðçã LÐø¡ÆêD9¢y:Àµï/àñ~JØmçîþž«>s`KVh1·°+ò°Ò`è‡w‹€_¼Æñ/#û’–@ŽÿrøŽ½_žÖ!èwN¾¿U›Õý€ü•œ†²ŒïŸWýüHÉG~ýcÀEPvŒ5îþx>˜Èáì°¼˜_ñGœ¶Îûùœ¥Ë­/-YG¼WÈïÅEV`P,‚\–wÖl€Cõ’… 6šÜ¥Ê çó—C,Àv”‚ùRP@±>p*k¾óÍ…J%3¸¼¡% xÚ”é0wp¼êŸ2q°àÕR €}Q)رp‘P†Ç j“i¼¥€ 0*/,hø«`ˆPÌØ"ȺÐ#H}Lt&d¼Š 0݃I r—ÀIC ñ†ù&æâ§Þè­ûP›QDÑÙ„€2ÌÕðÿj°¯;z7§Ø£ pŸ9ª hðîHB€Pû¨¦;[üoÞp(wª<ñ÷)©ðVèÉÿ7%¸:æÞ¯aš«-¼Ïh¿+Øá¸];€†¬J›ùððL`è…íYÔ e‰Á7À/y…k(Æf¨Ñ×Ô°/mäsgwç~sç³Ó‚ß}È45íÀcdÎç¯F<ðÿrW•@Õy/{Õc‹Dâ’?ZdC~ây#^6ŸËútþb°kˆ»ÄŠ øÿlÖÆú`g<i&ô1ö–Ò„»&'ÀFto$P´¡°x-¨L…J¡¢è²¿ÀË )XA¦ïGùµ‚ P£àdÓ +AËŠú§ÂÑïW@¨³étöO/Fjrü¯7,M’ÿ؃´a[ ËÀMö jDÐðä[¶ÙÓdìW8?3«4®¯ÁÃ2üMxi5;p”²ZBŒ×aèø¾«n&@yHÓO£Ê5]¯ 4åÿ|í}óY0ÀVî +Í–Œ ä% ÛúT8öýj›®nêISòÕÖ=]óŸR¿Q¡­S,ÐDÀŠìVO¾­N³(T;&‹FPLŽýÎ7ÐàZpôMµ9RöÏz’Aµ¦&"9ª£òÅVi+€ˆ¬=Å$NTxøð|n¯ ˆþ½ÀäÂŒøø€mÀ8cPàÍ1˜ÝrДØ"ÿ‰©¨ï9Ñßè>çŽIÍŒþzòÓõ‘ù3ûÇDpe@óV­æÀÌÙ–ÊÊÈ‹Uès^|‚©ì—®<ÖfFFG ¥kœÌˆÿ î5ïï}ôËoÿ‹ã|þåÙ­æHª~°øßW 0²äe_Ídþ ïR‚ä!JAÖãÝwª†ôüÙ»€Ì4;Î>4|œ5ï\`Ö¡ŠI²ãì\Œ U­¨•7`JµJîüjÏÛ]?졸.<¿à?^Á§–õÓNA ÖÙ"ÑG!Ÿ5}$? ¸†™ô(ðÿ S$DÝ Š‚©] ˜ƒtÁD+ÿ[göÃn„HqPÀ;}Ƕ¤°­…`â²Ý4À72Q' ÷mbùŸ­€ Þ,®ãadg7¼ä¿=l%À7&Fci€dàÜ9ñJÁ +ðª æÓhd@j÷vsàî¶k ŽYÀ‰YµÄPOø‹·ÈM ƒØ €{wëÖ, 2353s«v 粺‰”p=¢?Ï–+Pö§@¸‹8 4`ÇÀ}Às)çXƒÕãñÓ¬$€íÚT0‘°(ÖuP_ + [4?úl` ð_nÏ5v›“t ’GafæÎ F V>ÜÅÄ‚R-µcÌü”(Љ”$«fxšØÞnÔê[56¢ˆï²vÉ÷hT)þOM±4ÀLvãp==ð-á€c®üoÌXpΜx¿±ïÒc´¬æ &àFÚP*tײã(×¼·åJEïnÞç84àýð~ì„!ZöÅä™Ë€×ñzuw‚—É®€ÎcYä½™0›Ã’—˜¥†Þ¸—tÎÈäõsPh§XH8:"í8 ¬€ö7\mû£Ã…ÅîIaäÏJéÁ×Ê z‹ ŠP̬÷ü’º,fP»àzò¦¤|1º +áX9srìû€aþïsi‘U × ‹ä1˜:atñ³}LÚhqj +Œ"PNW”ÿü¨+PR,Àg·`Ób¶! ñHøOÐ ¶pÆÞMœY €®ÐÉpYô[Á’ç€Ä0ë·\n÷ã]lƒ»%{uáø/úש†XÚ²ðvŽ ù±€Ð˜›s-äøùÿ Àø?Cþ3lh$gÓgïí þóºÈØ*FÿÍ8s%hÀ˜ PbîPúÀ»léæb?q1&àºMèøMàŸ!ûMœQ +Cä]0•õŒ2”€ |“a<ùø±BVù¸Ö^ÊdØF`ÔŸñâBU";16ÆÂ6Y¾4bCK††¸€c@¬Éó8ŸËô~Û׃ÂÖK‘ÿeD¹N¥ð„ã­IÖür€Â@K[ûÑr‰W ÌW´ÔêX8œYôÛó–΂cß +º‰ÜÇd@ +@ÿÏAb0kSäúøIõX&¡ÈÁë ›ÊjÁã?TÅM$9«ÜàØà³ÍÍt5 3}N¬PK@¢^§ c¿HO~j™¯•DwKËÆ)|‚E ào"õ5§ÑÕ¾þ +îáÞÆpü—8Î7j5{ÕŠ¹Ú¦ÜÀFòc €-ä•nÍÒÌÍÌÌ(ÿ¿µ @nã±Àã²Ð÷–ýãáÄÁ8kMæ”3ã˜;‰À€û¬ß°´8€t à„ðHÇ<ô·kƒïA€ ù‹AU¿…ɱ"€ÙŒ–}а.0“¹äºß~óܸ-e‘ŃæcÙÚ0Z„ŒqØ‚ìØ¥12ÿWúÈÊå#Xýg~T)»×P(ÓD¬Æ[ñÛË«ê¸ +ø"ñüãB%d3¬3àØ÷€8Js&ò'f] ùÂÆ9µ…Íq"v"ÅñbŒLÎ[y,ðÆÔì·;½¡À¼ÁÈÔRu‚Ù)Ú ¶÷1Äüge82ÿ:Ç&Ü¡Å~'žç{9Jh3z08Íaq_Hó8—Ê{‹¶ŸöO¸Ϲ âÆ‹ôT€Ù…-Žˆ´¹µµIº°®£,”Ž›·þ´†üŽ]¯ˆÿ[°1Éy Ýülç¸É‹„'XÏU\›8näbÝZ9.+×ÞßÝgú|ÀAâR1€·S%ubUŽŸ ä»ÏLÔ-hŒ3€]ð²»ÒÌâ°ë??LW/(—›Xò2ãÃ+ ?²ú±1ðþÒX"0rTg€}ðp¤¾¡W.Bž1ùtr!Ê"¯};¬–Ëí£¯WýÒq•ÌGÙŸü/ €Ò¶o—|@Y÷(sÿÈc@ €€êpû~p·ª.Œ§M7·n`5߸ìZÿ] ,vÌg'g•MǽöX €•ÿ˜¤:2tp¦ææf¤5 Ü HãŒ,r¼`¶°ÝÐíÀ‚À&rÓqßæÄËÿ¥"°›ŒX-ô¶KÝ lo¹?wá# F òY2`yÿë3sšÖFž+Üš©¡LÞJ°åøÎ.Qà'Œÿêz… 8Ñ´à¬?ôÄÌþ°ÛŒŽ^»^r€X54ޱùŸ¬ üî—û€[Ö/pìð]Àbó‘É é0˾@Ó ÞÃäëóÍ3tøWàªUZÎŒ,j?œz–#šç!y(?ÅÈÁX5 —ÁÞüøyÁ>‡áiç«ãè „ ¨úQØj=yúûgí£'(wPè´ZQ+luZíV5lãBµÃNv:×K;èè¸ÓÁ¢ÿø,8ŠÀ ”ÛëÖŸ ǾH*tfðTί2Þ)‚BÄÈüux>Ò ü>ÁòÿÙYö:ÂŽGÌm§@ßPŒí#ài¯Óµ•4@¹¸ÎX`NÓûl0WÛþÖ–…Û¢¸ƒ~¦T G + )Èñ­[ ;RP~{»635Ç|œG„æÂÌ‚ ›ÿ ßh¼?õ?MÎvù¿uÇ*ÀÒ ä¸¬>ö/*8`·é’•±HÕ¤ñ¼À»=íx7›º`ü߿Ӹ¿ß¤à|ôÙ/ 0üó/ÿ×ûæØo¨í`‚Y¾–<ÕˆÔ°Ï%òŠp9ðØü6©€·5¿”×Ôð¦“/ƒ€ÖäÆ +¹#õÚ½ë7‡ÃŒ°;/µÇ%°AÑ:"ï¿}0Ùç-Ø™o×ü¨Z Ö«ëáÓRØ +Êúvö^ðØ\!Æ vœV–©Ö@}à8b‘îµ>Ž}?ˆ(4¦ ’ò ЭlÛǾçFÃcfýVÈw‹”@4¸Àï‰@¼? ð&-H/óï ‰ÎïLîˆ@$ÅËÿ|ˆÈ¦|öïó{È¥Úý!|8ØÞ‚í…§ÍhG ¸òú¶úÀõâ=*¸1wØUVâ$5`\ pÇøÍ=u Á5º*·’•Ž îZ € ëY£°å~P¿GM ˜©m7ï€É°+µž¼ÊÛò7­Â?…YàXJø¼Ýßû_>û¥Ãgí3ë¯Õ @¶qŒ!£F‚õ2ÒT×ÙÞ—ãx~ùóæ¥ú:´¶û\‚rÔb/'aø¬ð›GÐã£öüüq°Vf=œêßWñ\Îû^ÆËzë&-8¶ˆÒ)àФ±è4$UœÌúñjÇøÏ&þ#WÛW ¡X„Z•ôåÞJX)´¹‡iŒJ¶Üú«ÖsáÈ÷C€cKæH{.¢%Xîh™òŸ=Œƒø¢öè?Ëœô§ùo€çd»•,¸ftô Ö¤jì«„$ÿ_W쟬O @ÛO:’Ý6’0öâŒõÁûPV«Á€VÌA»ìDq)†i‡[#°v “·øãÃuÈ7ìâÜñß­cZ6omA&'gÙH̳Ü'¦ºÈÏ9“•=æ‘u¤ëþ.8 ’Â`f €ÏÜÌ\³yg—M“¶nÕ(4t›ïÔÞ·>ŽØcçu 3ùýÆ-|õGûîa5V™ìö;ñ) äêGrÊrþJQnƒd!H'¼»G +àiák®&´Û¯U:¡ïÌ~Õ¯àûã>û嘕wФÝê ÐÈËk~™_ þíR¹agEoôF‡] 4B ðõpAáçàçxù‰±‰r«õ^µõ×GsÖäÈ÷Àë+ˆ©²äqw€³ƒ`’õùt|‚%b2;þÈvV @Ø`K'€˜à$ÆàØ^ß´ ú@Ù½ø/~sf«l=Wù8j,€hXØï/¸% »ÿg”å ÉYÑׄLÎmö)ÀLÒW°ukKŠŠºA·†@„è¯6€¦  þ€‡ü°ùÅQ6 L€èÉãt[ì!õVªöžå:€2³÷DLPêhÜ‚Â|´ßø_îÔ¼2àdPlîÅʺé†ðÕW¸æ?Q=b.\ Û…vˆì;¢¯ Á-»Í„]µóAH@÷ßÅ¡qjÆ)àw@jN<¹¾´j€7à¿Â~ð$—"æí‹(`ŒT"œINH +ŸT–#ðê‚_SôòcKåÖÑ{Õ¿t9ýipìûÀêlbƒ]Ðß)€Å6fùA q_ ÇXþ“9£ŒÌ2Ì/ HÀ¤Ú±IКlæI à7jYß 8¶ƒú𥢀q=€˜®'¨ÙëHV³ÿi€'±%@@c àøïà¶"¨ü¡iò±P¦ÏHŒ¿‚\Þ®Ï kßtüwôÞšM;˜tÀ ŒBâTN ¡å6@|uÀuÑ¿ØèZÀÂÄ4`ýÃ;Øtg¦Ü…b‚)@–Çü¿UsCº7› ïã£;:bOv®Ã$Àà£ý>€ØÃ–‰p›N3o¶­#uØr”Ÿ—Ü ñh¬ž ƒàI«r¡=Ïe¹¼þ¤TâèÀGÊÉQ€X-y+ËȇÙkP¹úk;:t;}ƒÚõö=o`±¡)x»æ–$àO‚`Å[œÈz—KQµ\m¯<›ÍIø;‚Õåˆ%žöXÊfy»Ð£j«õ—gL?$èÂ45´d·"'aä'H-ò$çs”@é@‘_ìW% &à(G( +€ç³ÖDÐeùò¶`2ÐuÊÓµ€#»£?+´dt$N*3~ÛQ$P ½†;AG‹Á# €²ê eý(HXØæÐøMyûÍMvÞuSi@Ë 05ã Šë’Ù¢»¸/ê+¸&FXâQLÄ58ÎåšÇG”uH Žô8ÌtŒ&$À9²¼Gz€àEM@Úô {ײž4¦c´Î‡ƒÍ›Sÿ]*à“±0Aµ3ÿn¶>èó_£hÞ²Íu£‚ÀÃJN¶` Ì ª + ·9·=’øA˜+ù(ª°×6ÂZ|ê±³(N¢äUüë.H—ƲEÏó ´~@AÀŸ¥,€Ý²£‡8©Ñ×X ÁÑ‹­‡TàÑ ¢<Ðu³o0üoÀò}­¢¾¸CF‹) t ‚¾Úè?ˆälÐÜJæÓmJ˜2WÛß¿ë¸/¸bÚójpq€yÿ”„âh©w¢ ,t÷Þ‚˜œ«In™ °VEŽþtÿ ¾SÁø/ga-åàÉÁ6ç¶¡k€ÝÝûûñtÒ¤c·P0@(8Û€ýÀ2@ãÖþþÿJ€/ìp5{ ¬M˜ñ²k- ˆ + +á« Xž[¾»æ‡1“Ûó•Ð/Çþ|GÐúª[–÷VéØy3î¼ã`ûV9Ûf QÌ%A@è¾|…€ptÏ{Gù«!!h±I0¾‘­©úO…p\)„‡B= +u{·']WVJÞÍàêo´+™ ÏpÜ6¼œ1!dþ±úLù+ùÎõRµÊ“®òoxÞÕŒê àC‚Òõ÷ç=WEß[ÌfQŒÀy‚ågLù~`U©Ì@9o -ÁCxôYæòJ†„£¿ €š¸ˆŸ¢€r*écÇ7à(è.ä ³rŒࣻûJ)‚­¢¶iHòý¤4 žÆ"Àµ˜Ì¤ Lžâ‰b³X +«Ðc¸c¸x$§©#¸³ áw(,ÿóͳvë(ácvæ„`³8€[ȃQP5¢D{9 òãà[Y€„ÿõo" Hº]«›7°ß˜«½;»àŒÀ–b€ÝZ€Þ +ÊÜçn¡l‘®HÀ}Èøæ­;xGÝÕìsÿ€SÞDV +AEåyñ?ŠàðÁ ‚£ð½÷Pè¾ôÃÃé¿… °xýDT «,‘{ÞaáXUª? 8bú@°Ø0h*ùl ìåxJ¸r™õ€0üÑ8;ò¯¶v­P,>’À—Âät簳ĮÃéEŠp5KÙ ,â4¸{ nä½Ïª#ß. [;2жDö²³nMä„&•ƒ6€à ¾" '¼gY=3lÆ8 Ò³Bà?%ЉýRNâ>§.\ÆKÔEùxJ€¯Ö÷ãA‰pÐÀö1Ìnùl28[C–•W1l{`¦9Ü«@Ø|üi>ŽÎá÷ÎmmÚä¶ãív3Á=`Ê €zÜï´v@Ìûk¬±@–Íw|HÄåób € 6¥ô@~àÌ€OÄX3²ßœ“P¥$Iãi¶ÿ¨ [øÌ&‡!Ð"…5ý`åkì;ènùy‰ƒr‹w9 +Ð:øóp|ý v¦ÿŒ˜µG­*ã†$櫞׎JmDE‹²Šƒ-Nèï{eŽS*©ÿ«åh<ë‡Ñt‡A ï­bΠÌ`¢WÈf²9z€vPê8ac\ Èe@¢ŸG¾RÙ>¿5.òÁ²ÈIˆ`œØÚ—·8°j°Ïó–û¿Áúæú¬&ÐvØ_21ì9a™So n Ô<@—ùi ùù°*äþr8)ž´ I“Ï­…÷áæØ +À‘Ÿp‡ôsh ñ+=L¿šÿšJ±OˆV/€Ù³â3g†™Ù™÷•Ç Œ>¦À¨|Ë ¿Õ²<ÕðÖe*ª‡Ñß¿†‘À>`Y¿Ãóc1úb&BÅ=¿£{wÀI€Oq`»hJ2𔼰2¨EЮs|$›ÎÍàZÃ@`ë›Ò|¥3ó øßj=y×ç±^ +€;*K§@ÑþAv:ž‹ìÇåG ›öÛÓ¿ÒÈ) ?ÌÅQ¤V<Þx˜GæÓÒ—ØE1Êei_Þ …­ôˆ éɑ2C—þ¶ÈÅJ²wÆ>D$‘idÂÀöÃÂ(Š C8ëA}ò_Ý€±€ýY+Hê§ØèkD|6pÆ`)€•)êFrxoÐç<3~Ä’'Ò7À怳sÍOË^õˆá˜‚®)€,€s“©Q@ðjŽ!BŽ£%SÞ,G¯F€¤wÜ€8ÓÛZà 8pü—4jâj,ØÚ9€®±¨Û‹åµò:[é¹>púÝ ô3rq +¹.Ÿ1»³7€tL ¿Ú~ ï+æOF:€ÐoÄûÈ`C’^6ÀÁ@i޾‰_iK\pÜ'`‰ûê¥q¹¿ßèüp‚¶Z tÎ1•̉æ†*÷;ŠƒÛÉæÝ‰Ìh½¸ÈÝs¯¹Ýä ìèkŽõ.,8CÌΨSP  +þ>8g5õ> °V€Æÿ®`- 9p”)ÿU €ü›¿v68\ÈóÀàÀÉvÎ,pE££!úŸît˜XŽÓxvµÕ)~»süU yü'àÞÁ|x†OŸµü÷ßðæzâ¾ùæÙñï;OÿÍ?V ‡?­àÖžw~ß Ÿü.lGapÿ.:zöì :~tÔiÿ‡ï´;Îoì¦û>0¦8Çøòo~ó$*8 Nñ¾ùÇããßµ;¿ûǶ7~ð'Á³6ÃëÎq«Ú~DŒR´£ ›­vZígÇQ'Ä×¶¿Ô-BžÇxÜyz6û~0Âi9Å?"æ¿è›b-Ù/N¨/ÄÐh5Á"U"À],`Ô—ø9—(;˜ð +ªÓN‰ÀîÛ«íkÈù4õqß&¬'TQ`µ1™bÕ²ÍQ”Ô Éfv¸Ô»äå8êè§æ±h6¶ë³S´öâ¾&7t¨üüÖ­9W 4@A”lsl ¤EÞXs5€ãÿ)xk.€~‹Àóc†SbïÏ2` Ïc˜ÿwv³l•ˆ·”ÇÿÝ¡ƒ4*7+A€âöÍÊ*‹Ý¥ÕÒr¡ts¾TÚap†(7ýÊòuïÀ |¬øyý»¯?>hW¸9œÂ!ˆï”üÒõRÁ/`Õ§áÁÍðð:V *•›Áª¯©Ü€Š—88ÂOK^‰0 +…ÀcuâOµä‡‡Ñjáj¾°\º‰ïf‡ß®ò™Œ•((yGí¦¿ZYõ–óÙqlZâ­Ãg‘ï‡ò‰‘ù˜fÇ,ÌÎÉÌÅΑoâ>s•æÄ¸ó#Ìý{bäâ$ˆŽc¾Aúÿ\÷bœÐÅíûÄzàdæ/@ŒŒ„NGKâ>=€‹˜à3~àt¨š@)pᎪÑè0€È®Ãémw0Úk’@è@¦?ÃqN™ýócÿÌÌœõ +, @À–@¸¬±Pë ~¤î ª%€ QÇ @*–8€:{:|ˆüù,0¸€ªÆæ>Øÿ˜çÏ'ŽìB׿ËNNðÖ.mâÅ hup°º +)ð+à°(ü_pøðÃë_b“ðÀ¯„$àAØ.<Ž|ñ8ñ±ê›‚å`úM|ú8¬ðá‡QÉ[eîýøÓÇ•Ji5ðñž~yôö§7üÒêÍJÉÇ7³0*„WGa…My„ + ÂЇ +KÙL¾^ÿâ HN8Œ‚‚†"@rT +œêœG¾H7’=.ˆƒn‘ŒU.Ï%ƒ#ÉŽL½ë¤"âÈ9Çk6üŰìqÌjº•ÿ•0±0 /L ™oru5há¿b¸&|ãyö +Še1‰ý*ð\õÝm‚˜›EzVØŠé˜`[âÝR«•ý“)v,€òµ™©©¹M½äÿY(9n0ˆŒF¦ŸÄ˜õã3<Ô ˆ åø•ýÓ¨/+Ä_ëøßäÕw(ÃÌtªÐøpW¢27³ QˆÛ89Ì˜X-€èßL°»»5ÃKi•„]ð,'äÿ#ö¬÷OŽ#/Œ>[뼿³¶;Ñá£ö“§O¢ðs(ÆÑqéÙ?† Ç¡ÔÐŽ¾Ô=úG°é|´ž´¢è¨óU¡ðIø v= +CZ7ò€úÒaØ%v|Q*·££ÇÇ…gÛ*Q+ª®ãÜ[-hˆ¾Žü½Ý®f³þQT(áÌÃ',ŽøøQ7<Þáü)y6ù~ø©h\WÉßø‡UFÈ…9’\â —µ +ï‹üD¼þ܈˜o +0' ŠÀ °`à&6 ÿù½ýØóùä„Wã|t$·ÇñŽ}?nŽì@W´07Ëfi ­6ôêÔ`=jF/¡2…8o@í {À.ÿç—Å ýz2`ËŽù1Èneÿt,è“.耕„xýÐÐýæ¾M* Sv])¶·Pt×ÌænFÛïÌ¿$`£.``%v¤7ÛúG:f¸r`òæÀ$@ Ì¢}ç莇s”ãÒF§ª }`Ï^4ιê¿`f±ƒƒ¾ØÙÝy÷î<ÏóùV±(QJÏg£yªT,Öo–¾Ïó}¾¿ëÍh6ô§*ËØk…ƒ¶‹Õ™YÝñB®²ð¸Æ2CHD¡†ã8ÀÙ<«%ƒ+ŸG¾³R‘„ÿ”HO`«e^7(,—È)A‰•°ÒÀ(× Š>$?¶â2t°\r3`?¸1ÒõÆ|•‚ývÿñSn0+ª9góZdûø¡]Æà{Ý=Äo÷œØ`]`‚‡:ðx^);ÿ¹1¶þSÉU-!»`.-I +žÌÆõÊu6^4uÁÍôœ¾¿°Xo®,ær•Å> €ý^͆e‡°¢H~ùÎÄ7¦ÇAYsÚ`> Döf ÀÀXâŸJðsŒÐ<_‘Z +ä¼Ê›h#–ºÀÑè)p1Ì8Ä9耇$I›ñ9ð“ì×Â=‰c¿viûؘupF À¥ À(7p¿Aãl§ðI³®Á¥ì#x“4 ”@÷/ÈÀ[©”4&ÖÙ¨³å$¿—d׈tl@I(9YL #“:Ü‚yeöth‰`6]ênå¶wF9€ÒŒ }}â oAYÄ~)¯ÉcéðHÀ •dù߇÷_mA#뜴×T-Îú+ŽÃµÌJ÷¤Í_6ö{øõa³š/âg±ëø„5?˜ã¸¢¾*òŸb¾yÙQ€ _U#¶ïÃc ŠçÕ‘þ¸úLHµ‘ÚÀ*¿‹Ø¿xñ <°Ô‡èÏfƒÖ.f§NŽ|g*0Ën +0#Êž¸Š€ÈÎ;JE‘гeÿ+%P”Àö& ~‡œh+˜Ì¦r Ï,o ù¹ä™R¬ºÛI øw³ûXM'*‘=‡ÍX¢8ÿ’Bì;âÀuq¹ +Ë-󺓫é,}w+VùDzÿHX¶ îÜã (_¨k ÀÌqP‚0àR×V¼°.ÿÏ>ÑøÂñKÉ|øz,¸Ñ&²_È +˜×ín"Ž?êø @ôÿ"<~¬žÅÀßN´‹Å¶2C°PÆbw\‘Gð0s©îk€¯¬˜œ:€ƒ,ÈbÑ%Çàb2€ä¹åóªJØIpüoöƒ &ýq¸ÇØø¯½ØêÕCøö)Ô; :m$üf< €Ä¾v‹è¥ ¨Tàö—ÙO@×±< ô~áÙÉÈ€-ŠØºÀŽ<Ž|gd›¢{,™ Àš96àÀ½ê¸‡äš0p†óç'𧙉‰WŠlÄ3^¡†X€”ä×ìN¤çù‘L|5 YfáÜ¿›ýå°™Ò`{É^íC u +`yrN°¢«8ðø„þ\ê &Eûd¾D  h#öç v”XÃ?ÅL©ø2lþà¸\bM Ò†ã{à%yQ6:þ+ÀâþÛØ–€äÀíT@j$o tJ¢;`€úÑ·-OSC€mzÙÆ8€û€°™ À5%ð ÔSv¦À²ÙÀâ’ +¿`¦´e;žåºÆÕÝPUêHk`÷=ÖñÃ*ŽƒÀ +iO÷ãŽdÒãÍyߟÊ%èÀ(àð‘ÀÕÃÏfC渌„ +°ÒŸ —§*lÛ‡çäVöói9rÐbî…Š÷žÇÖKü=L`õS& ¸dÜ¿¹$Ü +Ó4£nÄþÆ~@ÔU=—@7@˜8Xž +–ÐP ÊÀ&ÅþÎp#lÖîkÆîÕWöǹ/(â?ê0›¸mœ ™ rzÐe—äeÆìtÜQ6ãWK 5.œÿY)«¬p·C°¹Yž)1w÷gÈÿ€ttõwJ-VÃk!€J^»z$$"{æPÌû»dAÇ0™ðVy‹°H¹îôÁÀ=C€À-Ýå0cgqyü–J€ÐÅëdE€äEÆ\¡—Aq­*Í{S㛋ˆäÅ?†Ð$¸¸–qðÊánøû)2ç¦ ÁJÈÆúü +{Ô¸˜_Ð7A‘ñˆ‰BÃň¹φ‹sÞB’“ˆ‹7?¿Ö§¦©ˆú‘`ñ ®!:c+¯¨£\À¶t&Át?E€{íÛ´RþÆ­1ÙãŸIˆÛéìuJ¸½ŠÌµ¤0ØC°.–nÓ°îª ¸vƒN2Þó›û{nÌøí†ôÊ\@‰ÿÒt û7\^øÛÌ(ß$§ÜfºÞ¤€`ã~ç¤(4¤:éOþ«Æ’šÂ1 ¼Ÿ8 +@ÆHÐIK(z‰%%€âp:vô‘8€÷Ùn‰pGBRœ`†Awoƒ-+Y¤Ê,‡a€ÁVŸßÕJ%—»È‘þ+•ˆ£nµ^\ {lЋ/”J@Üã&œGÕ›ÚèA“½sÔ‘ì^€G/x• ç. úÆÅÍVœÞW?2‹¾J0­/z¢zÍ˕닸+ü}OÀøæ,×½ €¸@t†Ý$ïîÃÚE'ã €êd! ˜ Ï¥#}€ÈOw•¹¯5µ  À€Eò\¨?&xy.µ/“`”OÁýÅÿiž¤WvO†JXùGš±0$ÀþÀ¶;>+ñJ¼`ß´Ñé¾cì'ÿ‡2ÝIÇ€'{[ì'@YnÞ»Çl€ÍviºÜÖР‚èf`í['rJ wàˆöÛÆ F°Ê¨Ÿ¢[æ@*å˜`uÆmsøZÚ ×w~9€;z–$ 3ÂpˆÏaH€ÁpÙx°ñ2tH` cF +‡ÊÔõ|>Ï1zrlüÂT…í鲎ÿU¿Æ +ÿ`x©âöû»ûÑgqÿ ŠV‚èáÓzð°× ØšF}ƒ±Ð=Ÿq|üÙq(ŠÆúnqÞ ß{/8:‡&ÿ«x¾Oæö`êñaޤ¾èGý^Ø„49lÖèêa¯·’¿„½ZÔŒz›-HÆuuqÑAËŸãSsűï,`X@z%ܹÊä …ŒŽ2y¦ø]  ¾ú8ϸœ)yçá ŽÅ,x…)WÔ0Ínˆ’Ÿ7ÿqO5ê»ÅHðÒ€™Qßþô„VH{H~í3^ËHÀp€®Ã‹ê‹®nßÄRÌÆÿ6{/‡ÿg& |‘ÃqHA·n[c€·(üHàÆÿ ^ª iqƒµÖÀyHÍ?Þ<6h«ƒc)ˆX}‹Ùü¬J@€“îtœHÀ@÷C—îyYŠqTÞ`zä$ÌìµWÛ«oqÌsÐ|[@ºE +€9€T&^ÈL`½Æ¶±©ãc9?ðªU$™+ï0È~êºh„á›Ñ­ŸíkDÎÀ'-÷=DÙžÆ Ä¸yŽ2š€æx£c¿§ ‚µH8Ž}6F˜eÝÿ÷b“‚F¾éGÕ ŠÁ-RÕap3ˆâè!nŽÌå*•ÚlÀJŒaþ,ŽWjóUrÒkø__Ñ‘ïLÀø”‚9pâ¾<@yÆU2úgêÞæ¬€Y€ÌÍé@mÄõd:g^†@î2æZôE°™* c Ò_Jt¤%èÌNŒ¶ÖPI·‡ô%ƒ @g®N¥wè†ÏË _ê'­õ»{°›ì € -®×-¤»• ˜¸ç/Àªøû†¯€ïàúª>ñÒKÄ€20ÒàÑ™ÿÎLJxG€#†çðG·Ò<€Ñ€9ûæ†ò˜þçÌÇm::ÿÔPZÌ@Rû½gÓ³|Ï?Oº¦xž£ŽOpÒâÅ ŽÊM“…ÙjõÆZíjUÃ~rxO4þ]Cêt¢`׆‘Þjh&ìäOí?ÀÍb´h!Hnß;JÍpì—¸0æ L@&) d-zÞB°œw'–¢ó .mÓ43¡C¶;Ñ¥°-ì+GY€A̯YUÉQ“Eÿ0Ø%Zt¬@eYvgÛJt¼NÑ¥´ÁAÛ-Àe°ñà]e´K0:HÜÃ-kݼÁ;€-¦ü£« Ž`À’œ- P^]w¦‹)míTOŠÓ€ˆèERÈÑ<€`Î'PÜqG ÀÉöÀû0¿Ñà¾NK€Ï·˜ +h𙤬ccÏ‚¹Ï¸Mc`~²ñ˜¨ÏOA3܆g¹0§MÂ9¤ýŸcšâà"þ’ñ€³S.ç/5Fx€›7¿1;‚V’Züo.û 6V*H(ÛÒ²Ydè­¨ï0Ï_^ ¢ùŸ«!@EÌ"œc=$YXRy÷ÎŽ:ðÏx>"²“kEAä`1“ (iŸD›ÃïÊäÉFôúŠT‡2¿¢¾H)ünÜׇNd²@Ÿ©ØG}÷Á5Ôèo€s²‡›µ_´6%-0äÑä*&”g(å‡&[ä}š Àb“IHÀzqz¦µ¹¾šDmjÝ.’dtwœH²ÔPPµ×!,€ /<½ñ?Ç0‚MuäÈJ9¦ >vLtßßc­^ìž¡lŸ ‰0¸o€  ¨Áþ3?jC[Á$Àvç~—‰ œ!倯DÉ!LŒ#ÂrhpÑZÑûsÎøÇ…ñçmÔp¤¼ëç§Ã-œCÄ>vÃçr/^$Í/^ÆÊHXüq\ ýÒô5Q°“B/(äí¶'®{Þ¢7ÇÒŒ…Eo1àÀ€,¸ È–rT./¨¢ÂJ6ÓïøäÈw& :  $€ Àôt ÚÕàcìÏÇ~€d'µAWf(îg1àľ‹Ï¸‚+ö¼ŽNª 8@Pv4I¸*¤/<¤H‰ŸÎFU“€°šÉgÑ‚Øë$€Ñ–&6Ëíøä·ê–ci€9vް pïÝNkfºhMv‡'éÊ/—Ô°½Å„¢S ,þˆü— ¸ºîâi€S“LŽa€9Vf’¨ µÑýð˜ÀÀÌÐ@8ú Q*£?€n_°“8€ûŒÜ·öºJ0À­p³íû–óHó²àÀX—lŸ_„µÏåŸ_Dz`à`ø_änHÆenæqã—s¹‹SvFô¸<À3ÏžË]ÌÏó'3+ÿšp±Pj~5?Yàx¥ 9ˆ^g}?@!`é`µ±'ðç*4ª40ç‡×¬%à2€ÝÏ©SP5\lž69î (”eD¿ÊÿgÇU‡,´­â” ¢uÚC†3xŨ>뾂mª!ÈŠ‚:…7þ“ñ‚ÓèLˆ2Ü3e)Ðl 5ú§À¶Ǚ蔭x$a!£-uÀƒµtç¸ïXðލ-;ó(ïB¦§_æ6‚ÜFÜo3€ÚBp/ \q¾©õ'p˨$À6ÀP|–té6 zRáè šsxšcàcypÛæ,¡bØÁÐPdRr؃cLóf‡ñgð/zžÑ?“õHïç¾Å´÷|…d§¡? +œ‚x¨òy,É|°}jÊÅøÏåYœˆ#˘§*£§ŠµÃi¸%gû¼ú¨vð­ÉïZ%UîÕ¼9òÇ1©+^åúœ?T¦¦¦ Z]ð +ŸâXæ ²“œq=_ñý7cÖX<Ž{g¢SG@]ôO(¾%®úÔQU2ùªÜ~°¦$Ô„¢ö¸ßÈ®eÉæäî™2HêY{@ø‹úøÃ +‚ôûÙLÐvñcŒ–$ðrñå’õ¨›@Ç&\wçd¡k8¢ +mf  8=£¡ÁH6Yx9D³lö›8€l˜Fö>¤€rk­T¤$p #:ì߃×6ÐFßê$@üœØ:ÝX>¡+ˆüAeòYé‚n{Í.Fm(´¸”àAâ”àp´`RËsTUÚ|lž¼ +ŸFŸ~Š¿t™,¾ÍÎ~}ŽõƒX^ôg²ÌÏW4($€Žßãõað(lPÇþ)oÒQ²ÈÖÉ>lÁÅJY€ê¹ä8î X€T÷6Fþlȧ¯ˆƒŒWyª.Ù'Ü.\CÕýŒót ¿øìÃ_†ñ82“ H(“Ð9Ìp•c¾Úü¸ü>ÑŸ¼=Ñ0Ü Ýî=DªV2pd0GuRÞÎ!lU»¥Óútà÷]ü8·`ähœùtt꬀·9dì›ûYfµ’o8”…~¬ÍL·Ö +àFt7䘽àNï|üÑÞ÷ö˜#/ÇC·. R€ÖÖQH¬BÆ0‡TæVl|:e`=Û¸™å¢fN¢Úc°êÙ©ö\ËçÇžƒ8_*­Læ²€¨TržV˜øF¥¾V<0’ñreâ:À3cŒ¿O£ÿÜœ«÷s WC¶ßõàD˜àJ`ëñÄל`‹¡Eô/0ëÉ|y|oÑ»¹„à?³¯ç§ƒz=xöžǽ3Ô^-ÿ–ëæ ©'¶ãG0ĦŽYm¿éÀ¿ +ˆ°Å^Dô8{À¾À±‡ ŸV'tÐAâ¿RødoC@²Ÿ@‘¿±îŒäîû’^U߆h·ïv6‘x÷^ °æ¶ŒlÙ”¯|» ÀˆÚ€%R €‰îw JP>H|ДÒûp)@Ûi +v·pu:€½>Üsñ¿Às3t$¶©ù!ÀM°C `:e`Áä?R,-Øéòu:ÀS c´ÑY€¹ß­\ xáb÷$¿0ñZžƒîÛöž,¿Ì,=°z21ç|D¿>y`ž‘2SöÞ¸—ƒŒçY@\5üc(ìƒî‰€™Ca*,_ó<°êÎà×Õ&Ü¿´¯Á„–ëÍ›<ïúÅ)Ž|7àû£qæà@y~SyEAhdP®»mÐG,€>À€}'p<&Fè–ªç)$ÿU¨ +nLæ?<¬‡)ý¯„gài)H{\Kcº"i×="!ÞŠÂØÍp/ x‚“pì™<€lc@¯s]YWÇ&Çnƒ’HP8,«8RµÖØ/#þãK%ñ4m 0ðä?&ÇzN¶PÕ°¶V„X `?ØÞ¾ßbC\«cÀlù-^àÃö>r´ÄÉtÐühæãÓl@z0¹ƒ2Àb’æq;©°¨®Žð;páí¤7çã8%”p’€O¬S§*/Òê3'½ Ÿ4XêØ^!¨Ì‘Ûʈ»N®SH@°ºr}b1—;÷,À›[˜[ô±5y‘à(¾³Ï2Ågº*@® —¿x‘ýQ¬á¯ç±²©ü?¹\ñ.Å ÖQX¯'º˜ç±Ö@ødœ©LÀõòÛi»»õò]±V`zbÆ @6 îh ´§€8þØõ—rX˜\W¾¿ªrŒÏGä KÛð$»1V˜ ¡Ë¥@Ú3ª8c¿&{B±_½b›vtXƒEµXÞï" 0ýò`&`2iáÓ“9a͘?ÀÛ+ôÞ»Ýÿ½]œž)®òÖÀ5ØÖå£0 °ÕÞJÚ ` +à~áD€\5þã â•bª,IŸ€@ç—ØâÀ}à˜@ +àã’½J¨ÿ``«XäÓØ–°›sǡ𱗱¡¬´±ðC$6”†n/‘쇽9]0Wò*µƒ¸m•ÊÊù@ëú°´±;—s~Á¯0Úe®…„@åñÌ‹ŸóǽüE¶˜óÒpyÄ´¸Øÿå¿9~IN•/Ë5z¥¼üDŽ­rsH,’Ը̂xÆÇÏ»p±\Št,Sع8%ø:8î útøCKÑ0€…‹‰ GêcÉ’½i—‰Ïøzâ<¾+äûÌàùÜ +ÃÕv[ØAªJ,Ðèx€â?s§±ø‰ j¾¤€e€Ñxê‘àŽd× €à "Nƒ;p¢ 'w¶ÙÝŸƒíqô¦^m8 +À»ï¶¡(ÅÕAcà5圤@Ô_@Õ{øÇ×ð3á?_¼Rë«-Øo à[è`TÌî:øáÇp)ÄIW +à€e’À-ï ’d5é ú߃§ètß‹wxJö@äp˜eªö@F¬i½›f±tt÷Ã:øÀQ‡•¥³Ê &¶ÁšuµÏB!æ8[Q3ð‚&½zà/âfØ/úŒyÎó˜±x!PŸ!AÈzx#¦fÓµÃ9†Zü³( +½¬Å‘FB:÷ÎÖáü’ (@šžæ˜¨—(2¶'…ASÖœž ½éØ5 +€m }éîy}æry ¨ OáíñLLðrI‘ óýH²ß9€„£XºgÄάÀŒÈ_ÍY;{ݵÒÌô´¸*€1\“}È$p«|IšÖ`.`R0=ƒŽþl |›½ÿ0[Þ€µuXQ§”á? àJÁX\Lÿ‹¸Ä@2*›ûјG×ag\¸ÉAö:EPà‡{øMüÓÀ^†Â9VLbu%x,€×Dô2‰—b ëj7¯ªTƒ5xÕ­DX_˜åìf€ó““™ùêïOòƒãÈOÒð3ãòüùÉÂùÂää%~¹Š Ç^ºä¾qsþ’훼¤l]Ÿ…j¥0ÉfÂÏã_ƒÓˆB'ÄÑxýê— +³³…‰ñóxŒ«…µk×f±œ-\ÅSå^<ÏfÈLµÖny7ER¥ðÝé*¾V(\½ZàƒM<7~õ%\cöêépÜ;°GÊóƒõlµr:`ß` ”È×DêSHPúÀµ&Á]¯ Y0?Àè_" «0ÑàÎæ©‰pà +ö° G›h8à hmÕ€Ô$˜L'ÑÉQrVô2â`3Czz»»×."Æ&—Rþs¶Ha{8P™+ã¡ìŒ=g@*ŒÕÙ¥¿sL6+ãýHСY°dYf–[kë%6ÊrS‹Uÿ ø!í`”½Éë±àÃÀž­Tì툼-&ï™JÀ.‡«8°M`U_~QÀžõhhcW"<I€ “nŒÑí¦hxìù#€ÎO\.°½M1<3ÞüJÕ¯U¼FP`F|î³'>D÷ ÜGü³k·l×°ócWÃ!•ÞÛ›º0ž¿¾¼xÕSú¶ŽÉŽƒ—Äí ÕªìF_Äûì„=ý”‘Àk° ckä}—¹€Hˆ,z^ËãÇý~G½[a¿„ y/o…K/ǽ3:€Íò«öÁ<€ÇvÐoÉwD@þäü/%ôéøÆŠþHŒ¯ÆXË p`‘•H_UЕlv‡$"0êC!ý5;æ;<¯J¶püG¹Ñ#©ÌYÑ!uwo³ PFrW‰i!a?&›1 ¼„]ê¹ç\ý*Ç,ëà6Ù%˜9€è/¬•å˜åæÀm +€2[·çãˆËA|úÁPpiw(øÍÌ=›˜ïòÚŒUœ[­-–ìíÝã/¥ß'ï›@š 7’q;iÅÀÜ}9lmu$UùDôælT +"¸‰êð^°ø7™°~Í«Œ¿‡…f2 Öƒ•€öŸI¯ìöYù„[X~©puµI)`Ý|¼ ªR‡7–5 Ï¢77•Ï#ÎN}v5®{@ï0yÒüüõjåaÝN˜Eƒª À¾áþYà‘òóðKpA=b±?Ïò*H‹\ðƒ•fÌžǽ³…8sJ8 æz !(ÈH(x)ÚJ(à?Hžð\Hêö» | ðtî¤`IÑ<¤ ˜&p³üNaÍí¦¬$PΟÍɇk¤ý$s@Û93psÞ~ÿýv‰…á=1Û:Ù&›±ÿ1ã‹ÍŽÿà®Uìܽ÷î½u8€ò pÑ:©Ï=Ûô²Õ®JÞðu8 @ðí¸Úbc@eðÝ·ZëÅ+¥AS€¬('^üG¢^l}, ý)y&;Ø’’tܘP=€#Àü’vÚ`M ,œÀ£ðPÀˉðV†á>IWÀšó~ë[€eI9kÚQ©6ƒ«‘W©^Ç„ Œq­Z®à ‹s^P@Úk< \dܹ̀gs•Å…¯2W©"¾&Wͬ€3 +uõ÷ïåžÐ…Õ7ð`4 ˜k“›cÏ"›ªÿR\€¥ùü‹ã¹9\¬þ…#úIpÔ;€íßT’VཋïA¶¤pÕ4 `¼ ò9ÌAS dh¨€Kl³„×N‡£ÞÙC£~‡#Àz½‡ˆv4‘¶¦ˆ€ÜL£hnä7æ0ºw + ¸/¦ ¯Ð]ðJXh/Ày\XWèú‡.’œwä·5"¥ïÑ<Y‹1†|’dà¸=Ðèt̸Óô1€ã¿Y^j±Is›×[Ö›gæl°Ö€‚p öÒZ­U¦þÉ~¦¿ð•¥Pæ,àÏ=0§n§ì€ @—k à€ú¤ æÑd@@@Λ Ñà_tƒvÛå–6°•ÐððVéï©oCü=˜Ó³*]eâuÞ;wퟰHoŽetJ€iá5ì6°H›L’¸Ø÷ê,3XÄ¿G@¼{!?΢:w ôGf1õ(øéìåóU¤ß)#d6?• À^>ÔË ®ªàº~Ö¼Å:Ò#35ZÆ®‡=ÓŸG½³Æü¯®[.Àú«e¦ú €+3äÿ `œÅ”$€!ÿ`˜en}’˜I$üÇÞóŽþi|æSÌþ;ð|IÌQ(ó³²Íqsrü—phL0òßÙ÷Þ§`?=ã ™Üٜ샳>l› &P?“ù€ŽÚ©O`Çÿöúmj&E`´L†9p<@o×ÀuJ†^; ÛZo¯L»‰Á#[ æT +À!:Zí?‚ˆü„Rætô‰g·Ù±‡ñoFy:Ap¿Ë¿Á¢ÿ pƒ"B؆<è! G€(4LýM¤”ÏË]m™¬®øˆ0D‡°‡ E®Œs0ÉØOfcm€H„<Çà;.ÂRÀgÏÍápîçYüû°;b/wáz~P€Ïê|vw,y/°ß‚KAÀA@·B©ú`"ž‡°ÏŽBO£Þ٢̊Çf Ð?Ù‚ §*:ú I€¬ +Ï˯X¤ŸòÙ䀱?V˜àfí$ûY$È!ǹÅ\¯ÊÚ?ÇÀF–ˆÙe[99ú'Þ@Ü×Z—Ñš9€,ÜÙœ2 } w/úSV9PP☠ȑƒmnƒÉ,“Àæ˜$³p¯8Á* KÀ~Îæ¦3ƒîtAQ7±”ŽÊ˜àbí ÷«ðsÉKÚãïÚ÷¬€>ÎÆË,Q ÀZ€ÏP ~!t'pŒíàªÐƒc€”IÁ"~ñ„y®·L§ï÷bîgÀ³.vÀ(æ«Y"œï9[À]áµ dü¿€‰Uƒ®“wãã2 ‰Ã+õæ¨é 6•\îÚµp‘þˆ4D¡Eþɽå Âk#ú©ÈpŸ-ºîMQæè!bGô“à¨w6Ú³*0f%À>…@¬Kà¹bsBRPŸ¥ôjßãÚ Üû `=?Ö ”n¸m„¾p'ªQòsÉ}à?ì¿d@–À¹¡5«”l¿j‹ûƒ™Tuw¶€Ûã@ï«?¤‡9tïõÀÅ¥w6'ûàLˆùHüƒýÌIJȱ€• ÀbÀ!°¾žµúŒ–A•ÄßÕøÎ<š6¤¸¢ÍXç¾ý±Ž9ˤ(o €è0NgŸ€eKl'ª  X¢ ö$7OÇŠ­u:/<ˆº"ïvnS‹(ÌxpÔ8êH úû +ø?Y)¨ñ­èã÷ÀÃÀ¯@¢yöÐ)À\"ûUÀYñ®†Ò.c¦"ÞßcÚÛÜ7 +ÿæà󱿃fìç¿ÐĽtW ð®”âæöô ÐÛGp ºsS$è¿>[=é“£ÞÙ£²ÿ®€€¼Ÿ‘`$„0Èø×ÓÆÃÄ$’_Ñ<ÎÁW«ÃåŠÌ!àŸèÖ[n¹O zAná²xô4\ÇyZÛ’Š)÷IrQÖâl:µ<’ÀØoí0ÃN6aÕÎÖ é‡ÎÌ€•• ²ãÝ‘ý››t33ÌtôÇŸ‘ÕP*߆0ßÝm8 +¾ßú‹X€e™àŠé,GvâϸwÄÜ>"äå Í‘Ê{§À`ü§(CQÐa>ðZîS/]2O +]»ÝÒx„tX8Ø;æ,›= Õƒ@nâÅ +9 ë]£ð ÷ø h†Ñà «a?Ä:£ðá +ÖBަS¢÷°ïáü~?zÌ H¦k4a/a<Ïaƃý@CŽD`þ·GþžÄaÅ![!¯ˆÛõ¢0j†!G%t7Çsâ^A8õ?{Ü$‚6%úlEg0×àMo1çÀ£÷žÖN‡£ÞÙÀú: V{›1Kÿ™ˆ·R«`T + ~‚ÒV “CÏ&œdñExWÀ䂃ÀÎãjü3ö3€]$7¯EÖ+PôÇ–äbÌÄ}q¶b:nDUÇ_Åÿ”Q–{ŒÈpn¢˜ž±¯ÀÜ¥·ÉÀ—#¯p·År?)€s÷øÊ”n—YÅæwŲ.@Ö[% €¬óAhÄÖÇ@ûÛ <I€“Àíw2€šÈù>¿ìa™÷—ü2V8–@j¤ƒ˜výÜ…K— +ËUvÁ ƒhçQ´»ë5ªA#làà°áûßcY¼ÏÊ@`×.ëæPQ-â˜ÁQ¨ñ0W¾‹˜7ïáÒµj çŸW ÷à>8üPa<_`tï7ªÓã/y¸~ã=Ü÷ÅÍ÷©EQ5¦Äü, +w±k8mÐÔä^Ìy|,ßjžG½³„3º†iü9@€ÀG²óËÀ´\öcgë³ýµAV%’°BÑ9/ÊÓÇ¥pœ%LDHpnàRªÀ;É®¤ƒM14‰Yú‹é)ÿÇû›àã±âÁ"1Ör û‡‹lâÌs3 µ©˜H +À¸<9€"÷&p\ð·äŽgÿø~3Xù‹Ì~¥h­­[€¢t9 +Éö=,áÀ2Ùj¸óáG€ûmˆ VCØ!À©K ùLöóPê¥qú˜Üé>ÀA¸ðÎ^—p8 çÔöÇGaâ÷ÆÇs“…B¡ÂAw|¯êß:ߨՖ¼ÙBuIIäZ-˜õkÞ¾]SÕÜjµp5l¯qôžª7Ïkñ¯zó÷ç¯MNNŒ?7^˜­ÖpHµ6Â¶ŽÆUvR?ÿ]=”7-^µæW«³¸cõÚµ*6³ŠpwÆOàGšo\mÌWg¯½4Ë*“““çùóÕFõ¥ó7æçOøÃÒQïl`}uïâCu“L@†5²OÀ¬ Ég$ØY(È‚:l¡F ¯ÃÃY±Ï6Pʯ@"”H¬@ÄnSóWλ4€`»´ÐÊ(þ§ +€‹RÆa"Ó!“ÓÓ·µÎ°o“;=8sEWÑ2ãT˜€´á˜ È>ASXâIK\m·iàG¯6™:U`½ i8þW8!Jß¡’ øc;qò?ÈḚ̂$À‰ ÄZÁa„¹úÁóñºöîiUú'€h´Y3ÀÞ•E~bìQQ «ý³(Šz—sˆ+‘ÈâÃþá㧇áµvÿ²ßï?ëG½ÞAßß㧈å°õL ú £§[S›0|Ç}|"Îg¼\ô£]Äå'áé xïu8€/b/ï… 8¬Ù<ˆ«Qôù!nþf¸ò’»AðAôwÅŸ#¹õã/úq?¬îòÉ8> ]BÍóóùJpÐfo¨’ñÉpÔ;`æÿzyíUkâ¤êM€ËÀzÖd-"t|С+YOm8 +:€ ¤ÞÕ!3q,³·q´Ñ™Šþ™ +ñÏcÒ(ÃWÎã<œåD@‡fàØ¨Æ>lïcñ¼ÑÖJRÀú\çt8Œ£7}פ. ºŒ-·Qx^ï‰ô·’:€ö(¿­.ñÇO:€N[ûIM@ïÜÀuü!ò7 ÿ×[Óp‰è¡Ý`ã"0p<ÀA‚Áä‚søÊ‚Îd ­.  Ô€ìOD°‡5Àõàö°'æ7ÚÀ˜æ:;Ï‚¦—S~Ìý_®7ÿlÜ¿¦b÷xjv¶ôõ/بŽ9„Ì´%`¯{M¤û•Õ‡EÿjèjàU“š£ô!þ[ ÚãSǸ’víGúc‡x,ˆÿéwr_`ìïÊ´Ë€0§q?'Á¨ª…Ѷ}„fQ¾óÀL˾h+'®¿äJ:‹›ÐÛ X ¨qAÚwÛw;tWJŽýZ[°`sýX€*ö`RÔÎÉAöŸôǧÀ  SvÁ†ÁVH­~@pÇ`;Óü`õýî3˜kù&d°K„dAâL 8³OÁ=ü¥yA p{ ›·Ù3H*â¾0ìT|^¯¿1wA½øW®ƒ^õæ¿i6£ 2@Àî6°R¥¡wü‡~p,>Äc[“À}˜kWßdÀ‹ã/V ¼~ÝUñ? +»î„…î ?u] ý–…yNÄÇíÔÉ,²v€I€JUñåú”ÇÁ‚ƒÂ/ƒZÿt8î $±Çñe¸s€üW,Ío‚iÔÄÆ:Y <Š€X>ÕùM’´p +–ë—§‹Æf‚Š"`ñ<—Ì€Ðà_ïR•“+dr׳àÎ^§5£Nz²p§»™ô×ɺz +¾Eô›¤{–€rÛG Õ¹‡÷H@Æ@€4'pO+@¬-#ëŒ$q¼ÁX¼ƒ˜z)Uã§+8êÖZímòß9›²‚ã­ƒýÝîûª zi`Xàˆ¼¡*6þ"ãZå€_õæ÷ÿ¼Ù«G² Fug‚jM–)i ÓÏꢗ•ûYKÛ ¾Yæ`Ç2Î_9©^Ñ(D×b\™€tÉÓ÷Á5ðú™Á]+ž«p¤oj@|µ¯[/3 $ÀÀ/®öã]¿ßÿå/@t.Žþqá¸w&ÀÀæÈ/˜8ž3G` ¥ `&`ê\ýÿ‘$@⬀äÇRÜW¥aVvL&À·æ4€à&Åü\d€àÈè`X4@­p`ñ¿ŽÅÂQÔbzFù#@€Å‘}‰ëw*Š(.ÖÊè@ÍÚ!¸ tÁ”6»ÁsßG~}péÎâÆÏÛû ›æîvînrm +?õ„üÏ{HÖäò᥸Y‡£ˆǘ±8ú÷øsÈÀcǽ3¹ äÄþ!`Á²U^SäÏ™éù„Îd´‘{¸8€1=£É|*€N42Ùõ0²\à7mÚ,®jÿ•`ˆÆ„B³€Ð«.ÓÎ)@uã¾.“ž¦k¤°×X… hÀ]vÚ¥i¼-Ù.†“Å—Ë÷ßél²5¯ÞáÎë–3+ÏI“жÀp¢0ä¶AB'LªŸâèñ;ìfä¥P$ ¼±ÕÞØ¢&Ð-Ál +Ä“q(É¿×Ý{p[áv¶ˆn)R~ÆÔ¦‘¸–Í•ÏUÃÞ»À1H $ٛ͠Xßüµχõ6[‰~ìÙ±K k‰Á,ù »WwCâ»—' KnR?T•cÓµ‚œÅÔ +»d4àÓ$ö5¡NV‹Ú¶ä!„9,‚Êõ*¶4&ƒðæùš_«`h(Þù¨éCªýøq?ÆË¡¿>Ø…ãÞ™€ o ˜@ÀR(Ë0€ÿúš4û Æê±Ì"ŃF5ñþ=Ö§ãÞ™€B[– °wÜ@Hh€::æ÷Ëò›ûg‡ Ø%AÀ•æÑP2¤r¢µaÀG×,À>í9É>#,¡« _JÛ-4 ½,HÛBÔ=@JuG{œb+Yèm*‰ÜÅsLÿÃt[ìO`Øp eò>kѰçÌËìüéo8€æç‹ËQᑨh…¤xé DÂ]m²^½ƒ¹²¸Lm‘©þ«ì"üµÜsùðàó(Œú\{¬|öã°ÿ1øì† Œ~á… UO¢‚:€\Ë#j7 @Úsì‚€›°~¾V©à +KHµ,âåÎL­|æWáó?1ÙüùYv`­3 sþ„‹ÎQœÖ_ÀØP’R F’ +x}i@jêE|Q“ØšÀJv¹i0§SصܑÜΰì„Á=9oŒ×‡®È,RÀº“’йÛÂïkýÄÝ# 8Óêv6• b=ª@Öø6qìè›´X3MÜÓf@ 2øÑ÷±cLÞv®?€Ä˜—À’ôî'Y¤Ûݽ÷Éÿ÷ÕËqÆ0 ð» @=è…M0e€Àóa bÄúqZ@ ,âZpÀ\2„{ïq€¹~ðû,È¿–›ðXî~t• üFÂu—jŒÒÇŸyáœÉÔåJe¹à×Ùó/XÎâ +â:Ý?ÙïF&! Ë4ÿwµ2ÏàWž«0Ûp1¬WÍŸǽ3 _ ÖÒäÞR( 8>k]K[; +&ö©– È%t‚ ”@öG®öÅ8M²fA≒é4 +v(g]Ž$°´9Ë6f!ÚG@r}­ðŠú6{ŠÿËViónûmümÒð«fx€Réåt’XSö4pΈøNhúI}¦÷•õ7-À=­ uËÊßÙa£öí2säÁJKÙc7(ÍšT€ \q‹ RA'æXê«dÀ}:‚d—x€çf EÃà +°}'eÿwÆà pä}IÅŸ µò|?.¼É>x@nð_•†£ZÀÁAè Þ´C%uø|ó‹>ÒÞž·Oð]DÈ—§k ¿Ö˜=xÏ—hž‹6 :wKøUÜ(  ax^.RØS°sâ>g€¥,Î7òó¿`ެ¨=yÒšYwˆ¥MÊ­¶jí:ömõû­uV0`á#€"æÄf9»/ì u{{t;w`+ˆ#À8ˆƒz³^gcüÄþ´N˜CN>ò£ 21>ùfüÙÓ~¿váô‘X8~éý©ñ1hÀáà’JçæAùÄxjGþJÂà_ +½7GzÆ÷ÃEo¼Â†Ó‚Jd]ŽŸǽ3†®,àØúg”  ˆÀ‚Ømd| ƒÕþRâ˸jXstßUbçÈo0êwàl;w‘ü‰H1ÁQÅqFH%6ÚS´íl#¿D Yɽ +JÀ«ôÿëoo®ßmßÝܤ8‚d?ñ¶¢p7ÍïЀñx»$¼ñ~”`¬o@K€™lÒË=€l ØVt,þ+åOuÀ„ÛQ4qv$^‹V ÉxÀ=”dv?Üë>H€A׆X3<‡èà±ZóÕ+yoÁ_^–ëo†q~öEá‹8Ž>dÜßìD½(ºá?‰¢fØ{Øë…ý~²S€‰üÇÅâHíþ‚øê§A FR<ðÃ(¾†G¡§n=Fâ’{vüÜÅ)Äß•ÉJ¨:G ÐÜ„=: bAÌ- áþ' ¸sÄ«xçó•ë¬Ô‹æñاÁqïLÀ"W‹3Ø‚ ±OÖÐȸ0puâ +#~uÜ?ØC+àüký±œÀé-ª+àè°‹ïaˆã§Â8 lWÔ/ò›†eD†¬ÿ×}7u?î´1"½Ï¥»ÓÑ›ÑÐðÃ9âî&óGìm)pµx^v3r«ë|‡P8€zóTèø?cÙ°ÓWff¦5ãOOžû÷4ÐíÞiµ¶¶:C€šçÖ:¥âËFÖ©Ž;€nRH +ey@Ð¥t±$À`‹õöÌ$íD¬â»ØA–lìïG'u tb)€wÕckþññ\éŽJR8¥ª*ð{¥Ê*ˆòóÊÀãç5ÊqÅ»V¸T­^«¼Jä/çr°5ðµ +îwÚì¸w&À°–@áÏøO¬Ë(pºpÚZ32Êç·ˆIü7Êg¡Â€ÄèH~—[(NÇ0Gâê p3/ÏŠCÇÙˆúŒ)wºïvU À O#° šˆí\¸'KW²ÀÛpU'•߇忦A`à— 3þc~ ðÖÐ>_,r/Ô&Н%ð退÷ÆL€+WÀ}öb8KéWdá¢m$ËÕ' I±>&:ð¿Ër¾­²s"êwÝû®€ ©À)Éh—ït?2°Eà€ëÿÆP›­VÙµGnbò’zؘ¯BfµêKØL\›_òÁçZÍ«ñÈjc©Ú¸Šß¨ÞÀFvÂQ«ÎÏ×Xç`G×pºïU+ùÜ%¯æÏ/yó¸Ïèi^CŽÀùÜädnòEü«ÇÇÏçr—.å¿•;-y<%ö\ÒP…yC*×òyöÿQñ'ò“*ýç°æØ›@*â<öáÌÉB+'Îyǽ³€j´7h΂_ ÑÒïÚc±'1Lá-?áô8ý sçÍØ&¨åèu„Ñøo| ÜCàf»¶âN’,L +ù#I‹MÅyÌ€ +l2 I€z2Òß=`z!À]Y€õöÛC@ÀeùW|Ì¥ᑼg§^â*«Úl +  Ë„±gÑ`ïW;æÀÚÄ ¾Ñ*SÐ6ÛLõ;þ‹Ä8|nͰͿ#ê éHÀÏÐÉμOåâˆÇæ6ootHÐ*m}€ûG ŽüÊÜì?{ï ÿ"þ©ÿ—ý/âGq¿ÿEq/ŒŸr @|Çæ¸±ûÿø3ÍÞ£ç˜Ë†ýÿ€ÕçO£¨-!ÑW¡½G瀣8ÖßhÐ<ÜñǨȋϰ†²ŸCÔnÆÀ/TqÎMC°¨‘Gbx•ïÁO°ó¢}œ}©„˹s¹<ŽeŠ„)„SàÈw&À Ê:ûü#ða:À Imfu`Tž¤G5°B~ƒ Šü’üÇF¶ìq2Á +¯Ç½É’Mâø©°ã‡ÍÐ+N ÿÝ_\À40\om‘øjNèO },$éÃ%p/°Ò>5^¿ÛÞä °,?FÄ?ÀL»Ûn¯·Hدe’ÀWÈ$À˦,àC>B]3ÿU°×½Sj±ZB{¿‘ì5¨Ö#À’ +Ì«¿ïÉ~¾‚ÔÀÜßq9$ƒ<+hÝÙ¶<€òÚût;t)ìïŒ!¦Nš bgýÝü8éêkU¯ê-†êc’L^ŸE|a3zÈAÂÁ7iÄ¿o6]KAVõêAÐëýù“ǵ-½ÊÔÅü‚•.×ÕöøØôF=—Ëç&GüåDäãcϪ•"6ärÌä€á•)˜ nÌ_Ì]œÄÇ”¾°)c}y¢ÂqÂrìšüÙñ‹J'¸m'Ãqï,àŸZPÎÌ‚|¨Ël­+k@WX¥ÇUîKb}×Äç(Ü&€ €"éqâ±RÙ’\3ö}-tôp3ùXÓ¥è²*àB¦ `‚=/–t)ãÝcpuöš²Ÿà[{Ój&°—ø2ßš’òÅÕîG¡Å|±ß N  ¸ÏóõÓ°1 €“±’@† 瘶aÇÝâ¿õó“ðŸf`+uN¶·,b‡ðY€w”¶`ü¯<aà ðÑÞƒ;¥öƒÐ!¢dKˆüj^ž±leÞ{ ߿ʆ€@½„MÎÍ^¯¯Ž5ëA=ðÝŽ0ÔÙÞ§¾\_VžÜˆêìÊû:@²q +H싎ÿå4NQ>aü…s¹‹ó‡Ã÷Êä”7EŠãˆ ˜ˆ|å"6à |~aabTÇêE‚ðÌMÄd®bšq +ùÎ,¸àèÏO9 +Àêz áNiЙi ­ÙÃ>Y{[Â+åWÊÖ¯âë,¸•™A4[³ékáÈ8l–x…MIþ„û©°%p†k:„y9fÌ›¸µƒ…K‡Ì í=o³+Å2l€ÚvÔ#ÈxYé[ÃÀêúª€qÞà„Àc ðJTöш$þ’þ‰“T/÷™8€R‹Lß2²üwÀ @u{«µqà1[P €s;Ûv‡íŒ0lP@‘(ot?†,ì( …î.¬&‡ä2ë0oÓ£°jØz29€ñ_wƒ/zøn‡$`5„æg³iï5Bøb½Ipó¤R€ÀqïdŒ?3~î$ÀÑ·’»¸8•Лa\Ÿö‘ŸŸÓWV%ðòãSƒsN€#ß™€…äòX-Õ‚@k}½äª Ðû+;Ï`™úüpkÂyvâÇ~|0G[sƒÊ1“]Yˆÿöù;À‘qØ<§~¥¬<€Œ ÓElf 0âgäiزþÞÁÔȾڇ B•°€ÉfÜݼ۞™¾"›n4%Pnßk¯·[kÌÈ–¸¾öN±RbU+e ¸·Ï¢rñÞ–L˜°ã_b›‘ÅûÒÌäW`Û €#&G´8z·Ô>î¶Jr¶Yøë“DÀ²só^øA’ð›¬ú7ö4=ô—†Á¯zH0Ê'˜gG0©ßŒª1›ys•‹S‹~óó°þ8¢€Œ„ãÞq îÖÇ3cÏʸ1ýã÷ܹññqŒ»^Àaçrùç*9:†søÊóÆÇÎÑx9ž©cO†ãÞ™ &ÉžB_™mÀ}æ.ü¹î}»Û¿*N;L0Òg_~ؤ!=,ùÝ¡â±à(OÒÙÚïGÆ!`óó0P°ß€Û“Â¥ˆ‰Î=Ö¢ `Ü(Òð1ß}n4¸!û´©¼Él@)À:R›™$`ÈL—Ú÷Û«­u>UPߨ¥ÎJà€ÿX-ê€9€|T‹ûÓ¥ Ð6ÀŠÁ„ñŸ :üR €8Úívà8ñÇo1µŸ:ñ¿»}?ÑÆ£àMÚr8PmLNrIRžXŠîU«óóAX=\fW!Lسª0ûîh†y§wÅÁþ—Ù\À% +Àòò2.†¿ð Ú_©//.ÌUòS‹A3~r6W׿÷FáLçÆÇÆžy_ÎÝH˃Ĺ©‹ º2 p>—Ëó3tbìÙ±ò©Øm:Ž{g ëò”ídÁNƒÒuÆþ ˜¹'1ÀËïKjÿ¶ž€0·ðÊt™ìÊb ¿‹86›á`^!õ¥”€!ïw\€sΦ‹ç¶T +`3îYìÛîM©àü0wYIýIÅÍÓ3­Í{ísÉÿ”ú€­Ø9 RÆ$€sXãëçç@Çœoos "î2šƒ7ðæ¤ €‰¹ÿœ$`òAj¢³$øJþ§½;й½öþ¿`€s@Œ±mo +P•ƒ}.+ Z©ª»@ù"u¶ÀÌTûð1ÄQø«>ý& oÚçòõz³_}Lsà]‡«€ôzl^|pÛ‘¸W€ò@ë‹,“/_ÉW” ˜»@`¦Þeæ/^¸xynÂcþ6¹mLC0ñ¼Çï§ÂqïLÀÂ2‚šMî K£ìèZ';‹ËIçt`ü ¸oj @ '€#`ÃAÖÿÁpd€ô/«¿ÁL@æp憻p½Í>úÜÁ È#; ú;Î'wœNØ;äh²€dwS +~)áë­U¨M ê§â}üh%˜[ ÀO¬Ê‚vÀ=±n«\ji¼€$ "Óë@€6@guÞg`#©8ÄT.“éì¥i)€ºb)@ê>”°K°Ô8 n“¸žß¼ln™èA5v½…úõ7|´vÙýð«?‡ËË0n½ôg£& +†È{õ@Ð ÿhôD½9ÌX¸~‘΄_Ù/ ôÆ  XùŸ™)ª,½ð—ÃB¸¸ÀªÁ’ s ‹^åb ‘Ø»æë§ǽ3Æ/YX$£ÀQ-)dˆþ€}cŽ€’L°€[Š]G`”û]àÈ8lž`7EG󲇻- Ñ«pŸ„òLF~©³³÷s/ +X/¿ŠT›¬ót5€åôw@ü,!3Ó·7;m¦”€¨²rE:)Eš Pt™€Ø†€ Œ ±Ž1[/ÉHPÏÁ¥"`Ç q<I°_R D^Ëg¥Î”[¥Û­ÛI)@k­»GÏ¿ñ²:9â|uniZ±Î¬Àó^ƒŸBËÁ +¢5²ã*@°Fá—½ê+ ô7)±*=õúÊa᳞,@ {Œ‘0r¸6 ˆ¿È¦<‹xRæEà6Ñ­Þ“?§ÿpÒ¥›s••ƒ ×¿ëIµÓ¯7ë‹•©©z3jTÃ÷\jçD8î ° +ZFöd:åü eHMPö6pø“öI?Àè¯_b¡5™ƒ ö‡#ã0°YÏÍš€ê O᨜Ài€q#Â;kº-ðÇ8‚Ǻã“; ÝnÌRÊ\ç€ÊÌ@*I€"cióZ^Ñ úgzº€·²š@ŠþY)=ìÝ1Û@¥€H…•ØÚ‚ÿHÉFzC¢íN÷]²®í.nÝ‚‘§) v8¼UºC`¥Á$€:è€ý¥€úÁ+ ê°p™€‚ÃR€²U»cE›Æ¢è³tŠúQ/Žú±WY@ê]µýâþa¿ñä˧ñAŸ•à ®G‡O>ýª±{øäË'_>‰â§aøYÿ€•YÛ¯†¸b\÷~ÔŒ‚©ààñÓÃ_<ý÷n¼ßq|ÈáÆûHaÜ £Þaÿñ—‡_ÕBÜøË_âOÃOãþgQ?aÆþnÈãoàÄ/~­FŸ÷ ~ÐÂZm7 xØ)pÜ;`èÊÂ!Òÿœ@øM™uìÚÇL€-f²•¿ƒñŸ‡Û > ¹…*á”âÿ&zýCáØ8lž(j4¶/t¦,60LÀðîV;b¬¿f•üi[’cQ`ð§ú€o·™ ‹îÂ\¹2£ù;L¹‡I€ÔÈp]7å‡è¯?~°À4Ò +¬`~LˆÊSØ:)Ýí®–JV½Ïø?0ð;8¬³Ó*¶L°³í€ ``` ©€`݆`!!°aŸ€;%öA îgÀêàW«…ññ‰\¥PŸŸÇ†Fcö ¿Q[â_Ãêùs¸N®¼ÞƒÝŸ6jþ |¯iQ»1ÿúK7joïªW6Ôñ–pµ¥¥FpëÑÀ%ýÆ|•´7ŸŸoTAäp7À³ðžÀÚ <›5pCãÛAn@-”æçÙ^(_Á¡K¯ßz}ökà¸w&àÂÔÊ{ Aøby½ÕÎä«ñ—ÒßQú˜`įƒÔ±/?ù%ö‡#ã0ÆÆžÇc»<52v s¸ ÒÀýNg“-€c¢s6NÍœ°ªÞ”ÀúbYÀ¦’úÃ̬?ç ¸2]j;@°”´Ñ_K +ï0” @ fS›]¬/È·S:Ûï€|ïÞ)•­‚¿ À €ÔÆÝ‡%¤p۴€G0;„¥‚€ûƒ¡Á Dá*—’<†ïpÀ`·fUàAcð¤V w«/äYy^¼ªEÑ£F° .ß vãˆM8hþ4Øõ—‚AsТ¨ñÓpw7ÜmÁþ>ÙÇÃnD /ÝÄ®_¨4 ¡»Št\“€cˆû_ì"æG¼Gœ Àv‡»³»Ÿáæ¿àˆ¤G@ p"øZ°»E¯ÿ4vyzÝâ€æþ­Ê-ÏßðÑ~­);evÜ;p* FDª®Âxš)€!ŒüY 0` ýq[yœþÈœðÿÀV9€â+î¤:Ú}\ &Ô žÂ½˜Hd¸®ÛàTþ Iý¿k9±þª +ï23ðî&ê|Cœµš:€+Óß¡¨‰è¡æ€‘>œoNàÊ•$9Ó<0ê,ߎüe4ÝÝF=+@zS&̰Al1(Úœ€È@;P€dÏ8€L Õy_à€%ìÖ;c`Ì`ŠÂ}ðe%ÿbÅã±ÊQuã¨ÀÃGúÄÑAüøsPña¼1¸Õ‡ÅŽzáAŸî¾¬FO¿Ä³†u?\Á3A oá’ð§¡æ¸w& €œC6þX 0ÍŠ€C™€$wVÜ'ÀÌwr-9kè× –\1~ýCáÈ8 ê¹]ô/@óia`“ ÇB9‘]IÓ·e8 Ü)Â9¦úÎp’˜ýçk+µ7áëTo˜ÿC@î3YEF" wãVÖ 6ðRƒ©ÃT@*È‹ £bæö;€ÁÉYSpûv˜l ½‚}üŽý:À:„ƒ2“Ô0ÇÈnGß)Ê 4$pó¦ŸLµ›µ%,k¯åÆs•E楩^@T¿X˜éÇl?ö¤ 8CX‹>k6Ãz=ˆ9j@ +îÃÇçÕ~/z‡Áâ¢ïU–{_>nž–ù¦KŽ+­0ç‘첈•ßVª_D¡rqs% <ÅÞìWÿÝÃfpp¸RFõzï˸îyH>¨BsþkÀqïLÀÂñ,~&ÿúØÝÄt‹càfs¡ÕçË¥bÙ5èÀ(÷Ž_Ç‚üÊ@L’83Ùõ‡#crûl ;b\¸»o„ Ñ)æÓ$¶1_³»‘Û¹!ßáÕòÀàc½üjò’D½Òßá;WàÚ©Èü›ÿÇOM¾óƒ`š@ÎÓ–¹Î…ŠÅÎo¦®ÌL@æ<¸Ovš°2Ïý„Á„@€}eàŽÚ-#âg)à>@&A§Ó ˜”J¥ÛeÌ +À  ¸ü›nÂ*&聯¿èAX'tŠnUcŽ3©ÅO©"®…½æ +{ ŒÐW‚›Xæ¡øìÏÆQ‚ñeúSsõ'ÿæñŠåȯ:¦8ìŠeŽù~\þ¨¹Â&¡n®&‹µäæõŸUcêCïiC%šÿgï1îm"µ<ª5N‡ãÞ™€å uXj6P‚àðôn2ÊkÉÒ€™R’‘\sU‚!ý‡¹€$>³Ñëw€ãÝ‰WDQÙf¤EŒ 0Ä‹7á5ëî”~K¡$€&â˜`y {:s$½¥œ °Åš"}¶ªù±˜Á¢XžÁ»õ ŠÿAæØ°.?­‘ÿ;·K%'‚]HÀLÆèH«»´áŽãALlwù·Åí©  <]°uŠ`¿?j +a=¨!†ÌWæ<5ÚeÚqCµyëË>ûû\ëà#+ÿÁ›¿X +š¬ãz`?DdùM2Œ|OûÕ¸Ô›½ÞA}ñúb¯Ç1F( iÉãð$š† nÉ%à//×o@}êpø&à£gnÄÕ˜-þÍãf³yЃ˜`_#ˆn0có$ø3V 8 ü‹Ö$W$eåe©N!þs¡•$NW¼(Þÿ´ŽcÔˆ•͸Yôú€súy± DÅ£`+¤™€²t4 6Y(O°­öní¢6`×!ÈzÁ©Á¤)M¹½/³*`)51qY ÀR@rŸ2åÿ°Pï +üÕ,ÐÄ™"} +¬:ó¯€Ñ_€Üës‰ßFüïòÌð‡ëHÖU~€Å p*I² î5ÁàôŒt lj÷®‚Á«ÊO!î_\ö±EchVIExq9°q¹þËALÀøÏ9qrD‹gãâm¯¾0ÇaWB‡¿/XµÈåÿëþôA¯Q‹šŠÙ“úÈ–\Y†¤¸ÝÖpüã`¿Í'ˆ„ëõæg0ê‹ssÐ•Þ +œ“Ì–?òÇ’ÅÑÐÕaÀ|3P£zýÑ,@¤; ËRWh¹  U9ø~ü§`Á+`¿~I\ãPD§ÀqïLÁkJ#´a)0Ã.:3l•Êà).k-Aš0ž èžçŸEþZ8€?,í(‚<†¸€ˆPX_¨BY(». Ùx}FŸ,àðàÔ`L7))X ãìls\€ŒH‰ž8÷Í>4ÂeXJ@­)¯®¿]&Op€Ä¸…#âL”ù'%Pš€@¬Ï€tÏÂ$ u®"s ¯S„Dþhícév+#@€u…x®fœ`'8Z÷ë òÚH $i€DH†¦•üx~ÎKFÙõãpž$™Ä1,ÃÚ›ˆ‚ùÕíÖ +¿ËáU¤¿W¾X{ÀøûaÖ$« íc$´O´'øDŸ ¢•ÞÑ›»„D=Šf£ƒï7{ßWe|Švпa‡ǽ3qì(û[A™ÐRž¶„”¿ì ë¤3rß™Ö7ð‹[à €‡'yˆiÎÜX_GºcmýÝMV³GôŽP2XwlÆKÁœ„ýÎЂŒL l+ òóùí*FøH¶cª§ÿ +}@Úÿd€Å€';úv @ö;þóƒë„˜ï&À‰sÆûŽ÷ÎàÇ€[ü%ìåÇF8€¤`»5Sê ;ýú3ud"XòtmKZ”Š/s¸9P?u[È$¨žwa<_™£ýW’ _›Í +ÙMš„K~To.=îáÈáa“‰î„J„álãËÞøp}n™\=å'"ë 8y·fSÃYÄéA}å!7ƒûËÍ–å Üœs„݇=6>„Hrð«tÿðÆ­ÓîIŽzg ‚Y0æWªSI†å2½« +´8‰F˜L!‚øÏ…ñ߈ÂhW1¿€ºÁ|A›ÄO#è1öÝ[_g_Ú!Çüv“a0·/q€ËÄMÀ£žÜWS@ +€]D0 d£“v€È™ze¢ÿ”ïÒ8ºG4@P +câŒWðò` ­¨÷¢æ¸¿é‹å8*«²WðX"g  ˜Pê>+¸;”°s_`ßìทY±Á 3€Ýã89€Äœ$5©’¿È¦@ójv4½ÙXåb©ÌE\ 9:ÇÛôm 0ÑV W ¾°5М¶»«üÃÀÁ +5X P¯ÇÕrã¿ÀÂJÝrðxõ¨ñ  +©èߥ¾GÀOiôç]Zÿ8ê 0·/™Èy%ûK€éHز†í33¤¾Ø,¶+JO£€ß“¨]…8Â,Ï¡&¨qÿ,™Né³°€½Îöú¸w‹=i‘*Y‘ÇûãqÜuÁ Àذl*LŒUß½ÍØŸü—H/ ÿ±ÐÈÉ ¼¥¤,ZgŽÐ°ŽßÂß!àçÀà$gQj,Î`c@“€t²·“AÆl›K¥„Šiž:€—åTÂçò”Ȱè߸ûoçk‹ãôLi† ɤ°g–àNr$ù’ÇL@ëd¾ +¾„µÙH{§2ÜàZ"ϳðr¨òBP͹ñåeÆöÍö‹êþâ÷æ<ìþóß®ë]gÓ¾E\…ߣªõ±2%< ›÷ükA”¤ˆ7ýC×ìÃûªõtÒŸ£ÞÙƒàPTMAw5u¡Œü“lúSÂøäÿy³c'¢|ÕT. d>ŽÑŸñ§ŽÂ [Ø" °ºŠGqñþŽŽ)d%à@OöyÁ¬çÀÂê!hR®Ÿ&*€uzýéÄt.Äçì»~/~±rh4à\^Ž(? ÄÛ2)™"‹ø)eÎ8òëC \g†m1øÚó'“H? FîÊHK4- uR– ü=9mHÚ^cß–Ëô·$À} ¿a¢ª†Pd‹blr!„ä'p€$@ŽJŽ£g ú¯ü!ãË 1ª°lgG–ÑQL§ €á!âVvl·ÆÃtÞû³Á6°HÁ»>Ç¡B™N8î1FûÉ_<Ò¢×cïdAxcŸ€›{M«#À›s‡/d +á!¾p«öÐþ³¬ùË¿¬å§ÀQïlÀEþ6d¾þJåUå@Ö[`£ÍŒÊÇvZ ¸Mä˜ê‡GÛu¼NÄÎ@Œ¤À1p…\÷”Ú€7k¤É`1ÚŒáþ¯Xÿ²Àø?”ØÞ¾Ç¿ÓiYÄÁ?]… ë çÏ‹…êAÙ®J -Øï”‘:ÀµWŠ«í k + ÖsÅM\³R€aðã:,hv¤OÁ¨îüSᨈxÜ¢pÐÇá×Ò<ý±E`% Ø—ðß’ªY˜T$t20ÃL$Xm»Û·Ë‰h™ RÔ¼%¿Y§¨\§ý׸ÿán5®Á@8 864WzY;¬1’«=¿/€…€««ê¬Ø¥¼JþB^úá²éŽÃQýð V\YÉCD‚Þ<‡ú<âX…¸yðsP`[eöLÀJC,ƒt–À2þ™«QÉç-?±ÿ5¥ŽzgYþ[’vsEÅÆ¢ÉL®c³D;ævàÚ°ßB1ÕÀàèÏÃR$\÷RG›JÀ8“&«ëåõÁbt& 9\RÂò¼€¶ŠûzVv¤­øŸÝ³R<¢½M8åpÌà`RŸd½‘ß6¤°¨?&À²å^-¿ªøŸÐ'ë¦è§ø/ò¶’¨€{{YàÕáyÁø”þnáB„”à Åbâ’Ú|ˆî¡8#ú¶»ø_äÁ˜u0(}ß ¾è`V ØáÀb8ôå’z °Ý.—‘¸³Ã1Â, 0Rˆ(ö/æ.ωêDÕæ¿`ÜŒ]‘W­Å?,nŠÿ>€©À_fÇ€+ì-Œk»9˜a-DÙ¼FBu<‡‘ßæéÏ”ЛSïR¾5¼7°V3E°¾áˆï>l² åô½h"øÀøSÛ›ìãë€<€˜Èb¼Ô°VZÅÛd~§ÍîÀUåzl  £yp‡…G€,S«E@€mÝûà=ó˜õÀ +rPDæçço¤s05üš—›ÈWæ«óµy˜oŽö©‘?oT™G¨ŒÀèÆ~@±ÑÐ`ŠÙߟ½±ÔÀñ»Aƒýwø~Øð÷ÁÂ[ #7ÔªU@î÷wÙ£Èîþ pýqã|îʼn'øy~ÿåÜ„d|||²ZkÜbOnŽgÁÍE~fì7¨'øº»ÜZšd_¢ã¹ç&xþøä·xUz +ÎTŸ £€ÈF!°ÖlEÖÅc˜Åb•4DÅ6W# ÆþàË™õ¯ø‡Nð#He¼O±yÓÝ›,ÿo™ñ?£crº¤Ó€¶² +Æä8ái¤ßy§ûN—„“3´í~Äw@Ôïè2ÂþŽÒ?ãÁ 1¿Þ˜ÝÍÑ_ +`€L8¾h[âÆ9ÉRBJ\qÄçULF•d€ +ê ÿÓ4ü¬¸}§Tþã8€ Vý!ÿ!p ì*”,ßwXñ6;Mß!›wî´Öä¸áA·]8€ÎqÐï÷?×üøñ_öû7ö¿Š•ÊœRQ´~€e Æï~ú˸È>þCã½CvøEC¿‡ÁJøtþõ¨s>ÿwQôQ<Œÿ“ÇH aÇ=$¢¦ïU^»úûö +‘\ þ8.Œ¿ÀNÀó¹gž{æÜø3ãã9XQàï‹já½È÷𜈺Ù3€ßÄ£FÀM~EðÌ3ÏŽ?‹ð2žËƒž| õÎZlbÑ¿ ĪsEù •„ET\’‘Ñ—b^à¼qÉ}2Ï©(Â`,MÚ@ûÏø_™€r|*ñe°p|Ìbìü4Ï"”miH¨ùÎÎ;ïhpà.>¶!÷è­Y6 EÄÍ ÿí3£I4Í P†€ª-+Ï”?š3@¢€½AGN%þm(³v%»MÀ’êÈž×ðñÐÌdи´5÷³†ž²O@s€Qì·’~ÇqOjHø3ßðÇ,·ÃÚRŸÎ™WáQ+Ì”çèßW= qу¬4 +œ„ñ‰FÌà<>Æ-cã)„Èç¼\®ÀADóÖ1xîâ…Üÿ¦~ħ.ããb2ÎÁùÏpx€sç^ø8ê Ù Dº»­ƒÅÖzyÿwMd’褠H¶3Ò‚ã¿KqlOln@Ç€·—ÿྠ€O´Z† + -ŽdÐG(¤Êç7^¬cz÷Ýwï9 ˜-¦tñÑR$ÍÉ®à!’?-ÝfBOŸL<ñ +síY @Ù÷’Îk4ŠòÔV/Ú€«¸xŸ ¾#=.åuÀ|Š þì—øIÖBL΃à¬+ÈÛvmo”Ø=aÇ€ÙN3 tC:š‚IöÌ"éL°ñ;­i:€-¼<8ĪÀåî/`÷†€©6êÃÛ¢úÅs—ç’ +w€W» ¦×­/Ž}ÇJ‚êùÄUƵ »IkÞã@ÖÂïñP\k¡Rñ£Ù†¢í“`ü ð4û8‚ Ïqh áY÷)œÏñÁ1E€À9€Ü¹ö +G½³ ‘i€2%Ó’K •#*sü´L@NÜçR¤?þ\çVqFt)À©£°Î*@̤0’\-ãƒE€˜±S€¥ñ1B)€ó,\ô›ï¾Û}÷>Àxžá3Aç^—CàlwJFR`ÿ§€ÐzšA?×™Ÿ"Òlº“±G€Õ¶Î@÷iôÖñ:û›~pÞ»W踟…~ÙQ0~ÆoJ@Ñ‘v/ìÅ1t;8bËGbÑà±±“qˆU ™ÇϷʘ%]pìŒÀÌÿ€N«ÌF;p`ýn õå~•z1Ÿ›òTiÇØ|Sƒý¹î DÔýúŠ*åE¬Žgg°ƒÖÀY®³Ž+ñ@Ôd÷Äz.?ÙïYð8Õ‡ü~ßòã“ ø`³øÎ„Ïê\¾@  Œ=;öŒ»Ú×ÀQïl ”Éös…l +•Üê’0¯ä¾Ìª%Á°ot7ðÏ(ŽˆÔY·°B 2Üw`D@ + š°| W€ oµÆ¥èhPM`‚°¾ úsÌŒû]<ä ‰Ÿ´è²/mŽ–ãÀ]Î=¥´ž¨`¿œ™ +`u 8G~£òq(âç¦ðC ¾%Ö™„[²‹' +iþjXì‡~ö}$Úêt@ÚŸãÀ€ VÜÙæ¸!rjþƒ”Á;”@êø¶Ž9Îü–´ËwÀ~ Àm@§ó`ïX^Ž^‚…Žºþ/2f?ŽåeF!ÙÂS3üøõݼ¶z€+ê½ß`iˆ©Š" À½îvGQÏ]¼pñØÌÑÿ•owŽÿägócyðôÁ‰ /ä.Op8`R¼W îÛ©%‡ Êå¾õ$àÜÅ.k#†Ÿ G½³0Ý&fd+4: €"aÑ(@ 5 ³".YV[à¨päÏò„@ÜÏ™5X¸E×ÏøôÇ.ͰPßöm°ìƒNçmòb½³ÙEDß…  ÅŸNó„`a«ÌñEθހë‰pË’0NüÁä¿ô:æ6âO+¼nI°Q¥^"Þ«ŸzÍÊ +P…ý&Ù§é£4ô(ûþ(ôÓ5õU0°“@w§lñ·€òØ{@ tÕШ#€ÝKB âÀ¶š¶!ïãÌDTï5A05ßËËÏ‘ÂLˆÎV{V«¬ÅsxmWÍþÙ$ 6ý~pJ°]‘ºâ"ݯ$@8+þŸ$Ûü×8`ùðÏŽçŸppàJ.3Úwš7à˜Œ5’Ëç‘v` +À+v:õÎ5YH µ¦$€Œ+䀸Šá_ëX¸I¥ä‰ö +ÍöK¨¤CߊÅó•–RLXÿ¯\^cÛòú—pðÎ=«Ô—Ø ªÐºiüðd £„ÌMíîý{pœ  +¤ñ¼ƒÌwSÎÅðwIóìÇã}ñCü§ ¸2¡œ{΀»Ú«å¯œô犽{Wz5´&¿ko¿2q΀³æØx¤¥}“<b‹? ôÙO!ØàHåh9€äDKàAw°³±Õ݃ÐÙÀØã,Â×ûdh~<_Yì¸ÍfÀayDóï±€Ÿ~áÏ« ÆúÌïÃ×^ÿó0 +«8 +Ù9h¸‚è +ùjŽ‹ ù€~uçŒÊÔˆ©bK¢ïñ(ù‹ 78ñ”WÉOi(Sìç-óùË—ÇXËW¦¦°7ïçs/Œýwç/O} õÎRê+<2\º Z¢`¶ö•=8&Π ë$ÜŠŒÿÁ‰”' ÿñǺ\ôŒ# +@÷ÏY ¤@¤˜ÉzW*ˆå}ðß`ggÈÀ´±x»½^0¡ÿn÷^Û¢ãv«Xš)鯸éj§eÕ[0óÁÁv7gøŸ‘€ôÉeL˜ `= 8v—@êÉÆ"gèÚâ?»Ô³W,æ»÷o–(É©¼b·à{ùû8æ&yö&HYsLíÓ šWË_sÛìX¼£·Û;l"h»qp=8²^²à蟀4 Û¦Øèìz§ÄXüóÌ×â/âØÏç¼&ˆö£¸¯ñ€âh—¥k1pxx†µ×—ØÇ6{צo‚h÷õÆn<Ž£÷¢0~î²Û½øQtøïãÏãf¿,x~Ü¿‹öOÈ>ü±‘’b÷ç'.pµVʃمJa2_ðæ¸ ß¹ur,²$c_ç*Sø|m:¡êÈÖ':Ž{g +Š(hrÁPÙ*1Fc& ¶¸Ùâ&†T‘^Tpñ¡\rÝG‰äÚHÖHàÑÃÀÈ_ d?m¿füi­sû>é?ÐHä˜ °ù3úºï¶ÿOßiݱεXèÙ¶pº×)‹ÿC€ÏCÚc²•ÜSP~…F¯: 0IÑTœ¹r¥ÅfMx§â?_qB~~¸« öjØ­‚>Ãü݈²Ða1§¸o`'u»í-ØrŒÖù-ÖîÅa:Zïåþý9wTFJ·8€½½-%ÚXË8€— +™iöÛ/½T¨V&ž??99y› +XT_š­ÎÚþÙk×°~õÛø~uv¶v£zß®¾ôRŸãYø»Z˜­ÍV žÛ®^šœ8_˜ÅtMs|¾6‘1ñŸ‡Oüáßü{Ï=÷|n|büüÄdnãØÁc^˜ÀþqìÀô"þ&Îç'&ó—.áXìÆBóó )8ÇNN²fÑÉ“ãÞ™€b +å4WË%õH±†Ø÷˜ P@I·Ï˜šð!ÚøO¸¸?#vü¸¶@ë,`¢ß²îSÊ뫈ýïAîQX»/8 ýM^Ü¿ß}÷Ýv[ü_cV<â–••ŠN{¥<Õ“Ù9}ËÀ=v +) ¬|½ÅäˆýqÍi]™ äR¦ ¤¥Œ±ÀîÅ+›bÕ>@OæÚ!vÜë §µÊÖÀpŒäKì\€­HÌ3# ½Õ’‡ÿIts(6qÖX$[ô€íN©…#ø°ƒØ¿»qò¿;öY°Roÿ‹ ÷L~ÑójVe?KµÂý`?„ø%ÜÀ~°ôRƒµ‚wwwQØøà?„?÷£ý(>ìG8(z/Œ£G»a¼ï7ß…þOƒ[¾·¨ñ:úÇý¿ìœ]ì;ŒÌì— ð.Âüo¹oM䯳Np¥pÙ«^ ®/{Dð‹ø`ÆÊܯå+Hm„ظàÍys ׯ/ä/»Æ@aXyíkÀ?uä; pá0ÁЯ"J+¶ÖSÈæÈñ•-C€T8Õ8ò §¸•íö² +`™tæVWWAy¤ùAzã¾9€5²ÿ¾’¹÷:÷Þéì çlnnm" °ù.€ñ ÝZOL2B± ¨ˆ5o—9âMiP²(ú‹ÿxœa ÀÓ&“Á~¸« •V‹0Má„Õâ•+å¶’Rlee³ÁôÀ]i|gÏý½ËNA ¬qâF +ÞR+;Ûå¬ À‚DÌ8Ú*wñn‡óì^%¨n‚=Aö:tø¶··³HÀ˜óÃ$òÃGñÕóùêejÐ@…_Ôª–p¯×9ôwðôÑëAü^ð(øvÔØõ?Øõ!!›àl5 šXo¼÷h©öK7H}iu\?h@Y´eä÷Gá:ùñ1øÊäxï}wƒ¡¯ò¤=ÒùÐY©Ìá2—!—òþõëÿ„[‘Pª?Ÿ{q||<9?\r½—žǽ3 0m`Å—Ký‡ó˜ F€øNüGФ&ˆÿŽê¹NÞ˜ ˜o\Û¹?«.þ—X…ˆøëëkª ÀÞ!àÿ=Žñ™xç#‰kèÒ¹GÐffÜ4­Uˆ‚ãˆàA÷ýîæí"ÈÏr9Ž àèÎè_üçº/==ñüs‰à 0 0_% úKJð^çg@à®2»—»Zúa¼…‰ÀlûÔ€`3Xkä, PšQî›g@µ{-q&u°Ô‚ ìÄÌÞ RQ¶ïÐP  Ãàׂ7W‘§Øüßck Ù†šÛ‚0¾úÓ> ü5±¿4j‡ÍµX@úl–Ë⃘# ®(Í­–ø[æ.ŸÌ‰ý¾+fçÇŸÏUž¯,àR²â㊓•pnnÎCÜ’ã˜ë|›cf€?™÷¯ç¡fýåsããÌ0¬„ù«µú©pÜ;paР:·üT ÄgkQ×ÌšB/è' ÆóŒö˜®§'8ÏKjø ÒÛwcû0´Ý‘Ÿ°Ü?[²5€ÕÿH|óëe¤ÿm†p²°›‚Í]Dÿl´Âܸé™V{S8€âí2ãÿÒm>‡ Ð K€{nò?k ´Ï€âÁñR`:ü€0%L&Îz'¿ƒ ûßzKàèŠd'5¿%t ,Vv:æ¶8@Hö•©*‘KèµlãÝÁÐý¥÷”!*Rì¶mü瘸‡³™ ·ôüýÚÕGQ £oÙ«G­¯¢@R¹Dþþçˆà¿¸ºß¨5µ”‡»ßå¶`…}ñXña|céÝt&•«ÁNFN€Qõ$Ð\ž¨"ÊG„^ñ'n^ËW+õ^àúÈ Ã*¡\ÁÜu~gIB>ÿ-ËÂÂn…íO†ãÞ™€‚_ФÕXßDÈ-"ἦ~x í„ì>׹Ѕ¡Pl+ö¡ÀLa4»Þ:Ü‘Ü-êXú'ÿïÄ’FÿZ€J•`>“xçwÞÕŠ°u!žpÿþ=@k½ÕÁ¹,ÇN€Õ×7ZpŒÿ[ÄÑÝEÿZuî‰ÍîhJ>¨…Ù±‘w+ ÛÕë¢hoô×lïÁM¸‡>tÏ +`,L±êDpØx5&Ì$gS€—pÇi¦ÒõR!€óøA]À6u0î u‡'l!‰Ðn›P& -Úllà¨çðéÒÕý})‡x’Äb…À ª"¦÷ÕEH“½m÷ÙÔâa£¶_kÔj}Dùê h®°€_ï/-ÿq2"ã¦"ðíD°[¹ Œ?{1Ÿ[“!ÌÇ/°ÈÿE|òk÷BÛ†o𠲚~Ø\Pðc»ôIpÜ;@àËN °Æ`ÊQA'f”í`|&˜å‡hŸ´.ú§Xì#qÐn;€UÍ鞌(ÿ߉éϱA$)Ný#Ü# ØR°Asï݇F¸^?A1c0U€Äl–_F¬,éô,œ5%2"-˜Kìˆ^áx!6[ë€\[ÕäÛÕËv3Öù +’?{)v:ië`¦(ÛÎM‚92¶ecÈàå €kÅ2Û·‹-Ë4@p ²TµüLóä’<€;\âZÝN[ ~s{Ò Ü™ˆWC³wÍ À"‡«GµFö^u|ÂþÕXÝp/ÕüÝðÛamw €Àž lSÐTÇ|A¼äkL!°aÕŠF¸7`¶çM±‹þx­‚_›¼yͯ\ 9‚ p@SX¨ú•?LàúuX¥rL$„$eN…ãÞ™€Ïi€s­v©WöBÒ€ù +¦¬Äl„bbL´Ç ÓJÜž8¤M:BëŽý€Òÿš z¢!0™/pŸM^Åû¡Ê÷¶03”2ü¾Ó.±^ù¿îrÍ@ø}\¸ @®ëψO!H6 Ï»' ?:wÕni³lä4àML¸£  +(^,«þIn“ëö0e 7Á÷ ¨N6çéóW†;ÙRO@õÛypïˆØjs-9€MVþÍ8$¤"ºË0ÀmnŸƒS 8—Z÷Í@:-Ls-ñ ÁÕ]ò¿ÊÌr–³³n¹_‹Bö©õ™Û÷w‰¬B$|i·±ÔúLÈXí¿•*=©íºz?`&ˆëÉ#øßÓr¼…&´Úh®ï ÿ“-üp!žXQý¦ŒgÕPQ.k0tr€í#€KoXEj€ÝþÏð²ŒÿÁ—-*€9$Ø:دŸÃþÄI€mâÓòIñ†Ö5 è]•»°zÆDø4‘ãé4ˆ+´æfüc¿{¸#®Ë?7Cj¯ŒpJpY`¼@Ê>ãZråT»À°¸‡·ãjHä(Ý‘™Û;r¢½Ktn¯©"ðÎΘõ€çpuWcüz•I9Пµ{ŸB`ÝCöüE…/’Ú¾µ›û·ªK»¥x9‚øä] "eþG~-â'£hÒOáà/.œ0y˯0>.÷oª…ŠWõBÏû‡ý&ë¹X\€Ì]§ÿ_–àL#€ST[¢@ÀãO†ãÞ™€ tDYZ…u:€éÖêZÙy€Œ¸‚‰‘¾ª3) 5`1¸Í?23ÉîÂ6·Y¶þlaûñ§0ˆýâ¾³¬ùOþ°¦|~€²÷:™Lî9ô­ÍNÿŠkˆªÿ3Ê:‰`=8+Ó ¬àIlCº‘x~sý.øïq?3,ÖáXÈ÷¡H¸¯iP¿€œ—àl›5€î†O¼T¾k¾]-ÏóùSl¹Žð+aˆ$Ì$-™Œo·Årðžñ6Þi±Ð6Pc|óíPGR@®gòpˆ¶á5K¤¨&°¢ÿøx§µ!ÆT'Á~Èœ@¯Ve€Daƒ¿z¼ô£×½ ¬~¡ÀÜüøõø«,ëÓ&~H 4{ÑAÉ…7bV-f—¾ _År ”—p`8FNPœ—ƒþWªÁÕððV5X¤Ap€X,ø+´â_- µA0Qà{Á­Cnü‚ ó OƒãÞÙ€ |‚qPe¸5€¨K €¡$c9DwW\€›BàþrHAÚ}wá›°/þ3 ÀÀñŸÄxߥÿÁÿw;]rœàÞ}%óõïàôÀÅR ó\W§­ãòŸy^8ÝØv’ÒÝEþ °…ÁžIp·Í‰Ù6÷%ç%ð;p„î¸nª%Ö“Ù˜“À^¸ä{A„o ×c[!½_óìö3-­Ãük9–ŠúaàðÖ@€Ùv8ˆÀ½6J@<›öPAäHwŒ ¬åÏÜ\ÉकuÍ|H%…t[-÷hGÙß5:€€ìóûµ0æ~A3Ú÷fÃA{ž¥¸_=ªq NÇDÿðÿ½‡Ê4ˆU;z‘ùû¹ÿ´â¶øHwYÚ+ùÏúÊt óµ2”P‚(µ×(°|µÐ×ÛÊAF„¢Æe…°Æù^ŽôWCé >Šd],kË%V<áp `»Å†ìñ6u{í|õóéØ.€wÉŠ$?ùÏ}:àmy-Uàîlí=pPRã‚á$8è±ñ%Ÿ›Ì_CÔÉÈwñÐ\^^ì_Ô;§PÜ[‰oFÕæ†54{õåˆcðópï=“ ËVPÔ/À Ã"z°xÄDD•çs¹KPÙûC/D¢äê#¿/ƒû´Ô™e\Â1;¬V¨VªÌ ¨ÝÖãÙ¥¬Àˆ?ýP]oÁ°3«5fàAМW®¿Öe´´˜ › à(ï²³IîÖŠ£êÇn’h«V˜ BE€ Ê„@|Oº{X‘` †ßç0øÒR5€”8¶µþãWîí•‹ø$ÿì˜õ0\pÍý%°§Þ†x›Iæ”Ezc?–Xä­Òm^’°\@{ÉüÀ¾f¾éA¯¬î ;cíËE^V5Œ&…Ó4*Ú¹]æðÌ ‰YúŸ: ÞÛ¸¾Ý.ΔñÓ;Ü£ (¢ç1b57ðà ƒõ *Èð"NÐø«@» ˜aóBàH1 ¡æ±ÓL— àûµ€Õ桳»ûX[ÂZ7ã•fï«ðÓ vÈö@ŒýÉ6#ŠY§ñs£þ×q K€ÓœÆÿÓR^òã¹ |¬ä_ô›}?¬Uú|2<§$€ƒ†ÖopT­qÀ2e°O2 +ÀE¿_iü£u‚  D«ÝšfUàuŸ €¡R†s&IåŒý Ÿdº¸/þƒ0Æö1EúèL‚_ 飿@©lKhƒ\ÌH±^f5TÆ÷ î³$P1zêî!ˆ®¶ –p§ôéâ*íè¢m÷:«ˆ}[,±îvßÏÖv|O$À¾¥°gºË‡SxÜóÏó…d`Ì&àôÙ@mª˜ìç¤ò@ìÀAZ58À¼x`ºÅüA‚±¿ÀˆC²Jõ£p™€– G¦Ê°ÀŽÐY»Í„“܇½É|å %­™ê‡Á'ϱM5.’׫L¶ÿ!î´U€cóÇ C}&Q»_¹„$@½‚€\Hø}eü^cÿ\õû½•æÁãÿûÒî§½•`…V=X š+±ê/!=±|بA9  4á•‹SÔ€°˜É÷ËN€Bùï/Ö{!™Þ‹«5×9‘Þi*øqµáèæÀbÄò@:€9\°_ýÇ[زÙð¿ÓV Ó숛 ÙR@®×ò°¢˜/…èï/0y Ø$`l°WË”ÿ¬è `¯ÄxžT˜FHµT€‚&"~ÅSÊà +õ[oÝi1Ìo)C 4=ýrËõöùßÿÿèZ°ÚÓ ƒÜ?ÂÀÛz6•®ß… ð‹9 } xR‘œKçèùùÛi¸Wy)õ ¤Ì\IÀ0ø Rè÷àlec íòLVð‹Eß.Lò˜žoq|9W¸¯}r¼€7J‚cÀ¡©Ü‘ÿ'º{uÛö¶Z­½N©¨–­Ûìx€Ãøñ£~? +ØyGÀ†@=l®5žFOãFüôéaŸÍ„ã'¿úê«_á¯_Ý}½øôð˧O¿zþøŒGý0Šo܈úýƒƒCë›×ÂÆÅn„íŠG¡w~ÿ¼—á±­o„͸ÿäð Ç()4fcÜþY>9Œ!Ž{gä$ÄçÄLÀµöËÏÜW×ZP „tòÞ­Ó¥B2R‹0‚4žwôÇ'Ü¡ýÜK¶¥&ž6`ÝJÿ`ðG(ܾ'wY@HÛ „’ë­Ö*6Û-8€uV° ñÿ[ø…ÐÿCæd½ßÝÐd`E€þã ù.ƒ’ÙwÕqŸ´]žf;ûùXbñ5l °J`ªà4ÖÞ8þ2Þß­ªOö‰i•û†08æœX€߀ì@Š-&Ž9|P + €MTV¼ÜDRp_™€{€.àN—`PÎløµÚ 0yžeí× +“céÖZƒÃÔªì6xÀR­ÆNø9ˆ6f¿½{˺ã×8^Kö/ÙA¯ßàåª^õÚ¥K…\Á¯bÛê<¶†ÆùÂn-7>‘+° +€‡d£õÝZá*žA%óž†.œŸ¯V¯Í{Õy¿ðzu“WÅ5ϯñ÷\ÊM¼0ž«Öü« wÝáÈw€Ð‡)™Ñrf![ÚkÓ33å6Skkl…ã B¥™úØ|A W¯V€\&è’ø$Œ€6»}Z³=ÖžZ™ïÇžFr l*æC0d„ @" ‰÷é¸&V¬¾õVË;þ½Ã ®z@ÌÂZ} ß +þ3 wÛkÇÀiÀ@¼\MÀ!`TÔ`¿~Çø“®E ¿É÷Ô°¥5cÛ@’ØÖ ÄýðáÇ€÷:­ :€cˆØøåˆ¬SV.V|ŽbÚ¿±îþ#Œ¾Øÿ Üý`lç˜<»A¸î.Õf¿ˆ¢ø‹~ü( ҇W÷àÁ‘C¨'~pË›õHOä+7ƒà§á­FøÓàò"ᮇ¨=ÿ"‹ªž‡X>ÔÐEþ׫ \x˜ý ±õã«»ˆçm˜ahW#¨VkkµÝF@•ð=VÎãÜ]^âT8òÿ qû‘t¶ªÕ‚(g7@À…Á$?A-°d€EïæñIl.ð5á9¿ó›n3?ùÝÈ6²Þ­0 1 +ö*Þ»5‰ÿ©`À·Þjß¹ÓrôßÜlÍÌÓ$€Bû[Å2ôáCñŸÙ­m±ß +°§Ç]¿KÀ´ÛüJÐoÑ+°YÅ|˜µ `E :~|gâƒìçÛ×Ëù©N44(kažîðÜš±5­dÀ¼Í”fˆ_ V3 @P’ ©¯)͸·Ýî<èò3ÿi€§Pp 9€»íí!íî‡7 çÔƒèðWðÓÑëíûì(ŒûHf“»ûá›Ö‹¢÷v±xxpH‹þòõðßÇa}y9 +çO_Šaô!¢3Üx×Âïæ+쀃4ž€÷N-¯90K‚àŽOö0 {ý¸p¤2l ýàé/¯ÆŸõx_HÐ-œ…¤GïÖúËØÒôß\Fôƒ$8>?urì;Pd d3e€Ò™U:€âL1q©jÒv’^¹X"΢÷Ú>â 5I`"_ü·7¸?;rÀ8ÆùšÌpUƒ›o#*#’๮BCô[mur!0/£ôV*ì£ A @&ÿ9T~‡Ï1§CУa~»|—غˆÏ˜þÌGâ+vÙîãK¦C'1p¢¸*½òsCI%í¹b…÷{ï·ýÄÿì¢pZ ÛÄ|SàôŽÊìœ:©ÀI2/™9‰ðíKtàƒ{pÛ}ÜÙhw?L$À ¯ ˜‹ßlúlZ˼sXç zÉŠò þò3êáPðiõaÜ\áˆoÖø¶tˆ#DºœAÚFÁgþ»ÛžÖ: +EÜ£Ó^˱-ïJüžJša)l²…Ñ"¶QÍ–TñÈÃq† QåXô­Ž3.Rïõþ¼÷0†|ÿ¾iXØU)?``áÒb#¬Á÷#ò×vAÁÐ+°?0·jküÇEx‘‚ÇBðÅù„åä*¼6&;Åy#½V2ü«W×áXÀ *o«Cºúû ÑT¸Q†RøŸ¬HÀ9€Rë}Úÿ½î½­”|r›=Ï€þn;ž®ŸO¦€J`¥üAî—=Gæ'@°¾jÑ>&o×9¼fk ˆÿˆù•@À»¦îG¤`¿¹ÄNyÛÔ›—‹®_pìÙ;Ûl(Ë3Ó¶@™€¶Ÿ;%`[]üPÚØ°­ÒCêØX‰(:€-Ø©ÖÓ€Õ|/Ÿ“ Á,kÿ¥À1Öñ_#"Õçl¨ª€áãZ#>š=yÄüúÓ›¼©<€e»ÃŽÃî00K¬Ÿ Áýà!À‡èD³ÊqXîü¸W¯³°GëááY A­ÝônªùßââÜÔ¹‹‹RwÏáøMC¡7¨°jcïAhK)øcßü†£¥ ûñ‘²ß‚)þ°&Ú˜ÀÊ€ÿ7ê@J½Hw’\ršßÖ§»¿AÒ;q›[¬çRþè7q©Žë¤Gñq¦uÜt?|ëŒÿ1mÏ̪–ð<ˆ'²ÖíMJP.žçO°‰‹ sÂÀrÔgìOÀ›Î: Ìþ˜'®à“/ǽ&÷ºìG8 5´Ÿµ‰÷FïuW-‹¿?ÀþƒÑ¬ +lìì<è܆Pð¾$Ü $8À.ÿ$xs퇹\gª/pïý€¾Ö0À»¨¸$ZôÃpþ! H#ð¨zàG½X¸4û³o6Y߯ߨ2QÐ Wx$í7Ý;ÉXó/yùsy/h ÁîƒNœþ(@Ep5^¾„Oå{¸3“€¸Æ78dqÐ êÜ-@(xwf2#Áç‚àâ"NÄùtÊ„ÙðîHçƒ÷¤¹ý. `±?—Ü1h äB¤ãú逽Ɩ„ ÖKúm3àŽ³;!Ù©(ÕD€K,¼Ý~ë­·ZP€· )$Êù#fâŠ@)³ò'ò§Ø®ø¿ÁB. À”Ø)­­aCÛ=σ¿Á3 z[|BæÐð7æµ<ŸW¦KìÖääWg¬53ZŠ!d€®g2€¥ý†P³?Æì¥N÷ý;Eü—ø]À +ù/ÅÛ<»ã$HÔÁ9R¿~ãM1% 4@-±$€|ÇG{[HÀllŸ$`±hgÛ0ÛË+QÕ5ò™ßð—Y +û6#±¶ù9; ­ýÚü§p½ØuÌè—KR±v šò-~Å©vÖ(ððQ`.C€§bÒ¤^—éV"6úõëqU¥Í˜8ž•À_Xª…µy$J(‹žw} +€ç@Z,?ñïûøs ü†¡œÒ ŽH¬1©Š° Jæƒ;I:aqŽúçÓJ€Œåø9 æ¨ÙÈT;àëÿüpŸÂ3ëò·ÖàX%â¿zÝ"é@•Y%û©ÒÒxöµMZbœÙd ÍRÀ÷Àÿ‘ÿ°|h÷ܧГàm½j/--¨°óìgcRM@Fëœ, `ªê’z¹Lp/ØhŽ¡„àfÿ_™È8€Á…õ€Œ˜èÞQ'%Ðs„dÀ?ßÛÛQ››HJù¨FÿnwóöV*ìcL@ïÅë;°9E§ÃŒ€;pR-ü ý–1F£)Àkãg 4€P üÚMò4IJ¼©B@DùÃðáÃðI5‚Ö–84ØJó çdDÑ6sß«µÚdöâÀÉ +P»9z‚Á½ÕKž‰ÏسSâ—˜EyXm„·¬ÙkRdìÈE/Xšÿ‚O7²0w=qü‚§Κá…§þ9 +~£P¸Í"› €0‰аIþCØ(Û(Ã_?•ÌRã +¬æ¤ùŸ þ8ÛÂEÂ32Þ8Ï·)ýËe6½a¿¬€ÍúáßGð–Øf Ëtô@ÆÿˆåÉ–8°ÖÕX–›%—Þ Ñ$ÀseöòÔG~¬B9ùÃù^Ò‰Y`µø_¦Ð*X +@ M?å0  P& › ÏM¼e2æ€_ŽïL +µŠ­îÞFIöáØ1ÂüpoïŸßíPü/àü”½†ÎŽ3ÝÍ2;ýì$ ‹÷쀫¥àÁ¤:?B’®‚%Ç3˜JcodQg6=@˜ºNXðÃ`À(Uq*Lþ›ŒÆ™ wðð˜XîÏîÆ~ôû +Uÿãp…€ƒY‡¨û+Á%ŽýO`1‰‰ÜãàQj^ŽýýÒàêLq!ý¨V£K„5V c¼9+[%„]ì\`ß¡PÊå æNÍŒ48~£P ªZ¦Œ«„Q®ÿ‰¸P8ê;(ð¡3¸áÒ ÿÓ <ÁäpäçÙõª¾ +ùoµñŠ„hD×ß¿o‹™€Ì¤Ú¡ €øÁûõ!Ðrñ¿8“€viM!_!Û=Âz¨äÉFþe$ýËæìåûùšÀ{€ š@…+©8*G!À©¼®{«šŽ;ÇGð´µ³×.*9Ÿ0@UvñJà_~ôîÞÀ–,ý)ăx3ì5i‹i svQê +oÈöÇ.ðq·½±Öîr¤5üƙ☟"Qæ(¹]óƒÆlð&·Ý¤Ä=Åî8Šõí”YÖ;¼±G_Àòй|UGQ0¯ïâ pˆž%'€ÇÄMI€¯&ÊÞM–í×YÙ Ã'³µ8ÚŸý‚9ƒoÔ›+ÍÏzÍXL®ðÄ{5'ð €ÌÉe‘)¿Q(øzß.©Î ¨ÔqìÇd|aÂj`ûË^ÝgÂÿ “t¬ƒ‚ø`‘·´Ùö¾½Erá™" Ði߃sÝv¹;?Ä}LÿÇŸüèG2ƒˆ“)€6’Þ’6DãÿãIü~ïéÙ¥øª•ÿãÊßÿ~ïð± IÍ? aÖ˜3ÀÔ€çÍ]Î3 À4€£ù)p$üÁV¬ÇfY€¢Â¤èϪµ¦ +´ÖÒ¬®!þÆ}.-ø§Ÿöayà’ñ‰³NpÀ. €È”JhOzÌáà×é¶-âÚf— òr,ãFüïðüÉ~üãý¨•tò6HA~ ^ku>døÝ*­3ô[à¶'Æp"‰’2’åWÉü»Ö.ȑՎ Vh£ &`D}—ÀUä¯0·Ž;–NÀ7°"ß!_ ^ÕqÀb@– Y(ZzÆ~ ~³2ð)©Øù¾»º÷Ç­ÒËÛWž‰Eÿ¦b;œ§«TàÂ[‰ØÄä[ðH€™{r-œ ¶<²À²—{@ ¡‚ ƒægêü—1uà‡Ÿ5ÁÁÞŸ|ù˜ ÿq>©M{ßkbU ü &çÊá…‹Ê<ä þ¾ðã&{bDz^„‡‘ø< «ÕÝÙ¾ +*©?¬ìŒ0AÐÇ–(òûªäD 0WÉŸ»°°Ì'ùz8~ƒ‘ŽÌǬ Pž)!<›˜ ðR @h„Uš¸º£ ÐA\ºƒñ™å‘nàWœìÖrfÛÁÆûÜh¯­A Äx)€Ë½âªú¬øÉO~b +@ÀøÿG?úñ'Ÿ0š4°‡œ­sïý÷»[Å;¼‚1Æ=‚Àç9šÀ§c–©¸Î˜šìÄ~.µÆvÌ«««âó•+&hä¿2øÅ¸¯Y 0ý€4PW´ÅˆRМŽÐî®Éµ[v@"z_Â?ÿßmѤÀ¦¦¥‚ѺÓjw(ÈV9ë ¬z!¡ÈÀ|üá‡ïµ[Š;â±8öy‡O" …>ì:[ò„AØßÝíGÑÓ§ý¯Ÿ>}ü8ŽãO£øð«_}õÕ—Oÿý¯Ã?ývã«8 +Û>yúe¿÷øiÜW;"mé÷Â~ìU‚ã¨ÿùçˆËOÀÏF#~ú4þÅW‡ý¦Wo²©pxøåÓ_=yÜÿÅ—Ovg÷¿ñô3Þ®÷äéáAÆÃ•p7?ùò ÷ÕánأχáG)ÏW"<Æaßµ€<Ž…ß Äy6gK–ø³Œ@9ÖO1—ê²­D0¡ý0Uà„@$A„HóÓdþ‘óõÕ¶b&9DaS™¯àÏBü¤ eô'è,€oÀÿ,h~ð£ÿüÿÓ?µ³I xi¶j±=2õlG1¤z(€"``ŸerüvþS$ 4ø®€Kdù?” ™$€^Œ-íW`²OˆP¶ñ?kCÚtñùŸÛ销o|CÀ?ÿÿ´§áà‰Ñ3ª'äLKÉé½Né­Î4`¯{'ëtY—`™¸Ä‡, d)@¿Îh4jKK^µZÍO\˜¼T¸v ë7^ +µ°á7ß›o,Õ¼ó7æJßãŒZÍ^v?àY7ækµ†¿T›_ªÞ¨VggoÌV«^mi¾R«M^šÏUÙG@ §ócÜðÇÐ`Ë_¯Z`?E¸¦_e—þ’?_ó÷gw?ØÇÍç«ø¶äÍ{µÙyÜ›7ÇãàŽ¯ÎÏÏ×pÔla2÷üÄw«5VQÀO:}j8~c ÝÎL ,Ãý,£N¡OBÆæI€rJÆ[gøUò0&iig®1Ëí ÝØa‰í) +˹Y­‡LÞìtÞeþ?¹‡ÿ×€DþTñÿ>ü ‘'÷Û¥ÖæÞÞƒ÷»›–  =²`îaÐÐI +Å~£~µ›$œ W®˜­ûÁn,yJJÿQõ˜˜`@ã ²£yÌð§ªÑ”ïtà˜â€ÝÛöè¶AÊÓ?ìÜ.—6@Ý=Xüa°ÐiµØ\ÂÀ\3™Ø”åèlSöº´ÄGtlŒ3…áâpÿ§Ñú…ñÜ$óÏŸ=zì32èõ(Â!Xß9’x=ŠoÄýøÓŸ÷û_°Å0› +ïÞ‡ac7 +á&Á.»ó ÖÁ¯„¿ì?êïC3œÅ>÷ÇÀ›?ªíÒÿ‡þRðSÜš7{T‹ÿ2ÚÇÄánâÆHüÞO‰›GKñ£%pO‡Ñ›•üd.W[j,5x‰¯ƒãá7Ü„ùm¶k·å*6ðރk†ÿfZÎö»™"#äw-x¬V’b€l)Næåt0Œ½ÃzqìÐÁ|ë-öê!@Ø'‡Ý£ Àüƒý@ +ð#À‚´ÿ~ü¯ÿ5øúÿà“OþWå@Ì÷ï·[¥Îûvß—%)ó‡$à÷ÜÃ0mâ2]€Ïžü\üÉèòjiâŠ^§s\BüQ +P.§õìMÛþì5$Ødø§ öe§ßì\àsØbok{ïÿUœþ!` ¶Í,Ö·59€ìÙGIöògc€v»›ræh°i‡ý±_%:&+öº†1öá•"~Èμ˜Êå¯W<ÿµ› Â`LŠ¢~ J€Ï°÷8ß#Ý«_r  ‚E=̽è³]6ÕWz¬ô…ŸÅ×®±£á<{óòý÷Bvî1æ*Žƒ·ê/ízöñ°•?¨Î›Þäˆ$At€ãR°õ>çÆÏÙûRŸáGiœÒj%—¯ÞªùŒ¯‡ãá71ÞÀ-” À¨åŸ²©H×6È}&T hµú$ Ãà¼X2à`‹“¸&*I2pCi ºæ}L3ÀeØC¯Êȶ37Ÿu~¶ÙpgëÞøÿƒ_' +ð“_ÿÕ_ÿæ×?&ÿ‘ø}À'*hSüwq[ @¶yÿ!葳(»!I|>˜±¼,ãó»RØÇ‘Íi®0U”@u2‹þ%±nv¬O0M Psàäªn²n€ÄDÚFÙ·),J 9à:';?üÅéÁš@¤5À6S-;%q”ªm9€DÈ}þ¹<9€ÎŽŠö, MуµÛÃ=5ÙÂ6êÞÅ\.Ÿÿ.»ßwVŸß<¼õ˜»Ç4;2ŒªO•ñ‡“¸QÕü´k¹î3«Gv­ å=Îz§wÅéZ%k÷g#e.ââ<¶^£YÜ5—E8•­2òW& ëŸì$3ìPIwU›8.@fêÀHèxy–llp_:ì0HÀöοü3ÀÔbcgoo'qø ŠjUyj¤,B+ ÀÜ‚xkŒþùã,€‚¡4@›ƒv•Îp€Ìb6½wa<[end +ˆÄlôh©ªA0xfX‰_ï?Ä—æÊ2[õ•&&@]ÀÏW—çØÿºHu +‚•¦àÍå~•0ÇZÀ!–8†ÕÈ$À©Ø¸¬CõV© +‡µÆFq`— ø]µß މßÄ~Nÿk `yÓ*ü³,ö\·¶Ñ†ÿ§p,H‡j8šðSœàWR@ÿÉLí ŽÀ¡PÝÙ ¢ik«oaºÓ~k äUõÝMÄåÄ=ßû2ÿ>¡|òWÿùo~ûÛÿúÛßþ—ÿüןüèOÿÔŒ‡oÝ#ÿWY +ðáƒ÷߇4Æ'>åØC§`5=ˆÓ+,Ô¸ŒÿW‹|~üˆäçºêLÒ€õõé+WŠ. @~3¢vUÐ!á?lC’ HÚ§xÎ1ß&ÒZp_IoÜ =hÝÃß”€Ž$üÙ‡Åéx§T¾£B€$Ç€ý†HÒ<€rñ¶`É +æìuyK›q1—@ÁШÔÀaìI,»#.°îB¥òûß´23|~å?Zá~£?Vš+OoÄ= ¼s5|‹¤bâ +öÄžW÷(?q¨£&Ü}ù+/š‚àବÀʼ‡³Ÿ‡zÖ_Ò qsîà:ΣxZ CÈ}Ö%ªPªXã—ߎŠßŒöG°ÉLÀõV IüóU@ÅkkëŒþ1¹xN2*]ìOp4!ôg+ŒØËПALŸOÔ€cIæ8€kiMÀ"»íÚ@:wC™Ý.Ü +¬ðk1 +ð(À¯ÿú·¿ýÛ¿ýoû·”€¿ú× ÿÃÌAf2þÇ•k!¨ŸæŽ°`‰€þDµL ðf’ǧ›Á'Ø¥ýpE:³ÿLp@ÒQ€#ƒq†>@Ô+0À—Lೕ8 +…Å ¿)lïýÙ»Åé½±Ñ*µ`ù‘ô×fœ¿Í.ÀÐЊÑLo‰ÿ@kËRÞE@à@Šab±‚̲¯Î·¦*Þ<9 ¶ÁÐC¾â8lpGn áac¿g« "~E»<žX©ãX$j~]`Îg£ÂSÌ·]i–ýÆWÕ0Ÿ¿ÎqBÜ,Œg£™ üáÉáà|§€4—ö‘ü'Ô€€â•H|-¿8ʃH³–¦ñ¯§ùǿߒ£!3ƒä$-‚·ƒ \µ¢ !SÖ$`áü9e"Íd6€…îöe} O‰ ,HÛ¼–×ÿÉ'?Fà“Oþú¿üö¿þíûïÿý¿ÿ·ÿ ø/ýÉ¿¦=øä¯Èÿüàó‰­=Õr ¸Ç2ÄϬòiüþŒÿÓÎÀð§ºOmç^f*€îŸ,§SG@\ìÏa”×KÎhÊBÌw“âu¼°÷~À:úçf1+ýèüPðg{¥;ŒóÓ"ƒû¬ÜÏA)@«x»Õfš¾u{ÓÒº2 5ÁeïC "ÝT6 æ+vvÆ¢Ï2“QûºGÈW®¿öݬøËÀÊçÕO1¿ 7ŽÉúàsã(9ˆ}2ÚϤ€ê…ó~Þ1ì=-ñmWl+y¶è£H©V°é!ïÁ'Â"î§ÑUts®|¶h?¤ƒüǃä­Çãß Ž‹ßVG|‚ ¬•g@zJ€\ã'eÚdt\X‚%œð-®è‹m×Òƒ³ŠW½@AGH :gŠeFlx6èi•6EY »â¿ àÇý7ÿõoÁ~‡¿ýíÿ÷¯e~cðë_ó÷¬¿Þ}‰gF|âÿ¨$À0Æð(x ›iôlEeÖÙãsÉOîp à/°_–ù}f Ä}©6'€W³Ù&g¦?Ó7!ÛøA¬hÔ¶4¸ÑT¥`¨K'€éé÷ÿÓaÚwZ˜ló}ö& r[ 8ävKüO€Â’8€Žà` ð@ca¦#Le¨“,€JÅ«ÂxÞMn¸ô@0Dï¢8Žmî†ñ‰u ¹ > ©n‚ê‹‹ÒíN µ“&—çw ¸C]Û¥'ÿܱٟgWD¼§¶àÁ Uܱ0sÉ?ˆjq[À³”€™äs$|¿¤|šÄÿöZ™-Ê=Aœ [C†G–âY(À Àù%Ä +£uìý³Å€Åç`> ãm’€à¾"&eÐSc·v©d1ß½-–ÿu~ò“T~üã_3úñÿîïþÇÿ;)Àßþöo eüÿÉo~ó÷k:tïïµÙÈ@ÒGדé +aÌ/—ÙNѪâIKMï$t”A š‹þD¢r%g*€ñ®"[XÐ=³» Ïͨž©#æl1Nîì`'(ùHÀ@÷?}Œw¨$ƒë<@müM²àA§Uv¹€z÷ ÖÜW+²?°;q®žAü› òSsª ì'õúý8®†1ûªJÚáè_ì†}œ£h_©s9pð_e\õ½ zScêÉü[#' èžcý³ŸR€¼ûÕžú“@Õ©xÿ”úçcÀ94X¶a¿€‰ÓèËïÇÆoìöïØ´ªî××>%9ù#lb-“Pc Ñ@Áq±?u™ + ,`ü7…Hpß,¨Õ€°¬í•rñ•23*!«˜ÙçÕ&8‹ðO0ø à'¿þ›ß*úÿ»ÿëÿú;á %ð_ûŸÿê7¿ÿ 8̓@àC¤”`?Ï¿#ùK@úóÏzÿ1QÄNc+—|~ @†ýt8 ÿ%tÉd³ÄÏ9¾–!€­ €ºiÀÖQ@.°ƒåÞýWÃE´•‘?ÄB‰Ð?ãT À~Ñ_Àµœ؆bìíá°éAXå —ú7¬4I,ߟ7P™¯¾æÅ i=. ©fȵfÜcή¹Á8v Â<@¦‚&sæ@N$)ÝJ<öãƒú´®$€e‰<×ܰ#§Â±ñ@–÷éÄÒõÔÀù+‚Òø5JœWGTFW ?gòŸ\`¸Mˆ£Cm5¥’L# @ ly>eH0­zr«êdZÁÖ9€{?œü:±ÿÿ€.€&€üÿ1 @’èì}¼÷þÞÞ¦€w¥ö¬Ò©ã°gy•" s" $‚~¸¦¬LKì@0Ïb; S q¸%¯¦×cyL‚f€ri¦ÕÙaRiÃèÏš€lÞ§ÞÁ$Ì,O¿ûŸ>Þ‚ÜæÄ7 °¹€Fª#ÚW$`Ué½#^H€õƒ)®€šãÒL…±_ô“éßq€½'Q/ ÿ2øïÍy~Ð?Œzã(\ ß ¾Šçãø!v7CÖ¾ã0‡ýÝkO9DH¯=~Ê6:ò|=ˆXë¾^ƒ¨à’¢gâªÖÏß ÁWÑügìú8ˆ¢ƒ0ìÆóŸÄ_ðQ>‹Ÿ²}r6WÂ^ĽÏãø0Škq÷¢ƒC¢Àüïzªi +\âëñÕTà?å´™ø',Ya…ÑŽþ ì.0:ú¦dÍ@ÁHèÏ#gŸŸ|SÏ!G€šß.ø­i« ¬L€-6ÿ‘üú7¿IøÿwÿCÔÿ;L„LÀ_ÿø?ù Øÿë_ÿ&ëc&`d==oŠ$ @Xw%ˆÙ@¯‡ŸÇ’Fÿ-bfÒ DïFÿTìÍädß7Ù/2›Zn%`¦” +€è˜z‡y;-vü lÿð_½Ûšî к ™Ç¤+°éKÀî@LJ¬ Ìæ€-z«¤ãðú¶»ÌK•p$!;´ÛsÁŸoì.A´”Ï·‚85‚‡~/hܬ5|ùÝj°¿Ûh°²°ªÊƒSaí‘Õ½ v±Üj]ì ãhñ+’õU¯V]º +1¸èG¢]l½ goˆ……†¸{ÿ–¯ÞIƒûûÕxßn< +ƒh¿v‹7âÏðäX jKZc¶±ËšƒÌEo5jó^nÒÛůÀ–]LÁî­S—ßX“@ü8”°¾^b=  †PîPÖ› ðŽ‚±ƒð8@Ædà‚°Ö»Ü)p€1ùZò’8€WÀW!Ð(°xK¡që7¿ùÉO>ùÉ¿†üõù-3ÿ“Øÿ’ú\ÿLüíoÿú×?ù1ÿàGú9÷)ï[¬¥KIG~Œs¯È°Š4€™ûI€½ü àôCH|Eï·Ð@ù;dº¼Z6à¦ÏOÿ%X&d£K:¦ëÕ#«°$ÀÚôæú— 5Û|á?¬ípIüMkÿ€… +x¸;ˆã»ŠÎ=ÁÌ—Ä¢fâ0çT¥-¸ÄìŒU‡1_­--U Ïç&ó…BµP(Ìck­ñûÚlᥗªUù7[«Ý¸±Ä±bª¾îtè(ޜޭáÞW''+Uß+ܨá^7tóZ7äÍ!45=@u~)À/ÀCx[7]­UkóÕyè e¾péÅóžéCV -_³¼õM Ù=j¦Ø`; ±]Y€L°*  Z\æ’«€ý„âK +Ä"…+LaG€çÜÉ£À ¾%ý %:€ÍÎÖ&â¢Íö'¿ù+Y€Ÿ°ðØü3À–Jü—¿ÿóƒð'2 ðáÀžšÄŠ2îi‡À_äV±ò»2JbÍR‰Uçï²(EñŸa×?c¥%’èm6±?·ò2Žû: +{œàE3püw$¢(:üi|Ç»O…aŸ­ƒ…°½ÐçL!`S“CGÁ%Dï… ¹<’ç<é!®›Þ{/Ü÷?ñ7 ªGšý&XLÿŽ{÷¢~øA°ßßßí"¥ñÓ0Ô€„ñ~é‘~õ÷ãÃO‘D¹ñˆ‚§XzaÁw=ìŒcŽø;Á1ò1ÈöQ½Ö×ÚëJó“ÿ, + X]og(ª®Àx)YŒÚ‘å‘vk:‚¡æªJ‡Ë‹Y©‘8²Nô×¢4cYÚ +âŸ|‚d½êþYî¿™àþOZƒòY'` ½§$€ÚÊt6p±­¶ý6Âe ô&‰0,€ýLþ.eòèW¨o8=c<9ÎÈ?c¾Á²KëH8”ŠLUñº/?($ô°Š˜ñ/ ÀË­m +þ{ä?f8ÖÙ¥pI€éþ£@ÿæVç~±;`#㺸^«´¶³×ÝÁ«b&! Ø·ã;€ÛkÛIE`\çH—`ª"W«Urã/äòùk•טmÆKW#Äêv &€Yÿ´òAx«†”ÂHC„¡ovy‹õzå›^>—ËM±?æfÈ::ǧ•¸‰‘¸ú÷l0ÿŽÅv{Ý2‘"±›»r½Ý ZÁÍë,pÀ­¢~í ê̚ĶåºW™Z`n¡ +*~8Fþ¯……8†ÿa€ç€uŽL` ÔZ]åÐ  +€øc¢A|ôÿø@ø']D™n ­4ÙIÀ4À’æ/œPÌÈ<YF– ý!e¶ycS €O>ùõoþJöŸ©ÿÔÿT€T°ó¿AXð£0äo °wºŒ±D—“òôg &©PÂM÷]€ýÈä§'q<>f˜×YFBq;5@¸Ÿ™…K¬³ ¡ËȾkcØtïwXu·TÜ€ÈÚÛïØ–Ø‚ ìü‹ï¶¦×ÿÓŸuï”ʈÿ[åÛÝíû]&ÚÙ«?¯Ä Óö:wJ-gìÿæ?ä  P°kírë€Å˜€²ë?o>76Îæ@j ÄJ³ÁîÕ Á>‘úæ@}:VÅîHsߺaUí–| Ø ú½º¿ÒÄ^Õ" +‚K! ßæ° Epýy‡ãû1\ ÙÓ·W¹Va{\V÷#â¥ZÜ ùÙqný°ÎK) yÝxàꬔ €*M]f'e8D…§/µâ8ù¿vˆÙì –fèµ¾?á‚õ”P€ÁèÏ>$3p­f3àWª@Â~LܤI$ {61lúÿ×Üûƶqæi‚Þ» é6ì ÙU#âÚÉŠá¹ÑqF}Ö™µQ‘ì²v௩°ZÐTàÐÇû¥;“FViW‚AǦ¥îBN{îa'³l{ÚxÈnzæÚ·7wû!ßvïp7ôùîò·g>Ýó<¿_‹-Qv’›§Èú_Ūâû<ïóþ­¸& '¹¬½ø—]-¾J ýÍþwý? ëæÜùèöUðÿÊÜ$KVVš ŘºÜx©½À…Ѹ’&zu|ü¡`ð ë3)²Ç08#Ø•Ëà·%r&JlK˜€üÃÙì!;Y +±Ð@,È0WS[BLLýS€5¨¥?ym¡œÉ_þSþ[&”MÐh¾Pž—x¯à€³HQÀä×òó؇{ÅÀ_îq++«M¤–~èØ.4ÅÒØ7úÆÁÃl  š7X³ñDÀ^¾™ÿþ?Sd|«H8(µ–‹ÖÆZ•‚Ù6¸V +¦gY hacà!Ðl‚Ìv+ù÷g–ïß 4öO!Hêì¿fEŠ€f°—´Ögõ’’V0=ÅVëíqfªŠ3~zbj@k@ËÉcÍ8'¿N€ÒP~ˆ&’˜ÿU–²3 P±—ÅI€¹n!€—(PJ†SØXB•H$3t÷šïÒIáC*ÐÁ«"«À@5É`ü/¨0ëZ¥Qaø*à}þSôgäoüO©³>þèö•W߸z·E@Pgø.@\÷ÑÄu €+u{ºiÎñ›aTò3zgV‡¨NEàTîÀ”cã}¨ëÒ»¶wQÎæÊO2ÏŽ¹s]À<ö XcÙ×´öW«5X€|Ùòí› 9< +Ò_€°þòJ–b› ܰž‘9€ù|e1zQhÑ)’úæáGå¸A·ÉB<±AækOÇt¤þ‚J¥·K…™ö™ hÏÒo¥3+à=;QŠ¡`;>nïËwßùyâ:÷ÄQ\Ð *ý2M²}B)h— +»%x“4‡ú\c¿„àülûd[Fe +¿û,.h¢066 â[ͬQÓnã3Ðÿ?€´Wôn2`"PæË¿èðͳÏ-ñß|ó_- *] ܆­>%8ËlI\ÂGÇó›9t@õºà92ésW¬?IKxõÖm«ü“Žÿ‰®Hf>gFÀí[o\ùððÚ|MmX¸›Hó¼V€kχèÅ€Û_Eý¤6Ø|ÐjQðñ¢@£¿æŒ÷]`žý0¦l^µ‡‘Ì€ZgsHÏ”GžɈþ±0à΀°œÉ¾öëKHH•ËÔñ¿›°š€– Èf@P¸G,æ$t€ÕfùlØ|í®@/Õ)M~ûà:€¡1ÕáNÍmÑü+¢Mññú âØv«…H~SİlúYÙîGY¾ÜôG«Tœéû9±íN–ñ?~¾+?׋ìb € ñM%êš$x+Îü.>j`nD¿Ëæ +Çç\ëhÅ@pV~@0Ax=+âKh@.¤þÙD 3` þ‡)ÙA…D"aÐÔçZЉd + AIeƱ:,˜@„ëñ¿`ÁK`ç_}_üWµ?ç¹Áò4€Õ¯Ü‚„^{/0€s-„é—Úµ¦¨oÈf!6Ç €ø#|â÷»ÅGDVdÎþ=•"púÃÕ)HÀÍX;Ü7 ¯h^X < Âê]h##‰hàþXÌQ[dAàÒŸüI€ì…_¯-ÀàçÁÿœ @“yӓرœ­ƒÙpúª¤ ç4ݰÆ0¤@Ûˆ^(ø+€Æÿ—~|û¶ñ¿XZ>² ò3Nî?ÖÌä§ÓpßðÞL3Ê]sf§§¦'¦ƒGU·çPÈõÖïs÷<€ˆécCþ5¢˜áOM«»b\¦Tš¥¬#þZ­qõrM 1Qr¼€_Šx­ƒÂYùõAѕد9åôIò0Ô€r®² ·XA( qî  y¬ ÎpÙóÊ´ËŠ‚Ü»Æ30Ф²#–ô„`=ŠURÙHÕ@bSAŒbðÆo\¹}çcùÿ^Pü+@"T€;}ðÁG…á’;•Z-ÖÏ$ºúäÒ ~ű3£.p‘ÎÕD›Ç¸²™I`f„š ú‹âúbl´OA'ÍdrqOCiŸ¥{á-ý›/.ðƒXiZÿB‰`>€RÌ„dªz¹Ž?^´ €R4ðï³Á‚;>j?C ì,h,Éàø³ »8'wáð? à« ¥ï æ RDå–‡:|ó­ÀµÙÖļ`·XS ¦¦•†Ö‹Á+óåwÃ6ço ÌÄO# Ðå?€…Ö̲å@¶fÿH™‹¬mXb'@Ô™`ºµ1nI$¬ÙÐÄñ‰Ù·ÖgÏ´ÞN˯¤´µóãÀ(ž™+Te€­e€ˆ'ßùÀ©W 0ýø*ì[©¿Dªr—GiÓ}â7 +JcƒYDþLbÙcù¬‚ /ÀvN² 2àÿ{Àùo“®°0à“;¿¹ýÛ;ax>íX¹¥¶óõÀž ˜\9 Àk[×¥<€\Wt£?ˆMÜÊ‘òÈJ*ÀGZâñ6ÊJÑŸer<¯=ô.Œ_=h0â‡X”Y#IŒ<­´€Hð=ÂØPÉdÊ—ÿª.é?[>ëÐëêàÿˆÕ`ö>=ÑÕ‡`ÔOX’`“@ +|.âE¨ve/}V + wõu 9—×§ÁtĹ¥éGKÁLL¥äÿ]“³­ O,3“©÷1uP2­—˜XjMªVá4í‡ý¾Ô‡‹¼’`׊µö:ái¤pÊáÎ˯ Jõ!¤°(¸ÏHžkøþO:€|¶ ) ý¹ ' ÜÜœýÿ Š +ààï¶P™@°©C3¾"‘K=q~ïRo€TÀóÛªÕçªövPöáà H¶§»ÊcðÙß}ñù¬ôáà)‹<ß¹zÍ®² »ØŒŸ¯è/Ð8l÷—c7ŽpWT4¸Pä/¤€%”¬à2‹óÙƒ‘ÂÚ.òä`,Óm,X‚¬?™Ë‘ÿæ˜ÉG}“s·z™ü¥¿Zù)òe½>P›o°*pìÎŽdkuψ«aë]íÉ|$î.ˆÑŸ¡zˆÅ€nXðß:œ¢åV7$œ"Z=XoÓ`O·ÔˆÇh¢ÆrÏÒCÀ úçª]Þî™þ;@Ç?v”ð“Î b…>\“üñ3|9(vækC¸` 10…ć`bbì8&*_w“@‹Ø5à8‹e\q%€k¥ rA NÒ¾Ô,@ÌK8é±ïƒù’A; ²â`¸ +R ÜGLKÐ +„s!D d>‚=W€ÿW?¼cñ?èMާRþ¢¾ó?^Ï’5uêɹ€ô·!{Œ ¯;25ݽ’¿]À =Äô¦+–wöñ0ÌmTœ»×Ä.©ÎwÙ ëf`©yžÿi.l²êþ¶R(Ÿ»€X{žÐü5_äͺ€qÀ‹!ÀKärµFÈ^AõÊá4ø».+œ`Ì&!¥@ÛˆíP*>dÀØáX´&`Ã8XœT€±" õ³ì™cv£¸U«Õ70Ë×Zä ˆj)ræt8Š…tH™ßj÷ÓGbõ< À&†V ¡Í¯—ð£‹á.ìÇKü’LÀµh¼C¶ã‚‘@`äÄcÇY±?83¿&ˆëýVjp+Ÿ«¨âéo*€?<¶€I…Ä`µty@*P*D +Hx”:ÁŽÓ‰îÇ 2¿Im±¤úÜsêWIX) k|ôI\ý'¶>45)àJ8€Oï|D¨ÆÅ€LHãløìè„Üç×åHXŒÈ0€QJ’€Ïb§¸+ø_`ÑÉ_¢ 0â·¯YJ@f8›?Ägž<i€,†"þ*þ-¾Â£‰)8». Xx[€L&ü«‹LbǸ°"ºw°B8ÈÎEXÙ7LÀÊ~7vMw‹ùo[Õ6âbÏî@§Ì|€ñ¡!ÕR÷¢stÄûóµ<@çÔTÀÎ:6Š)°”|£20· (´À8æ–‚G[JXû\îv7D×ûG~¦3Â0KWÉŸÕõ^;]ºD³ëøu+¼ãt›€V @ðä2`l“©g¹Û pf~=`,þhœ|9!* +@À"`Ò@Ò+´BŸâ|£l:úO@Pbà²æ]bøîè…qêd +¿*C#EõcÊ1ß <ÇËq x# +Ào!b¼×ü'Dv @ +Úø˜€3¥k-ì¬ÐÃ~€®ÿ݉•Hxµº9Þ§&$cλ°…Ž˜ è:ÿƒàý°±ÈØ|x€êJPJXÒu- +@c);æÙÕ19KÝvJ/©ÙB½¾ +À‡µFþ³A°øïÀ=à|³ž./®`–o ŽKtDÙº@2¡ù2ˆOÐÄtálÈ%m#zß ÈFò“kÇiŽ“þjGÛ9ÊÞB¦Zß ‚Ää-øiØn¶Ã›>Ó.µƒk`{p¦5{ 3H +èlФͧg£Gƒo=ò ¥š@×Ôζ¼wòxbKIöø/÷ÑboÊ÷Z3­ÅçÌl‹M1¦D~i¶µ9ÛîŒwp™øUÖ ¢QÀ¾r§æ×ËËï¨;`!ïè lYÕ°’Í-H 0*D2H¦8lHz´›-iŽkÑAÊkPÛs2‹´g +À:áÌä«ìü9°nžÔW¯\½r‹y€âvãúßþíßýyocç?ÀgtãDM« + 0Œ¯6¾pƒ)@"¸"$ê!) €xÔ[¦'±cà® h=`!AÌïùWàé³Ãsy¾lÑ€‡+pèœ1ß¡hÀÖ€H…ã~˜¯Ø#¢ÀfßZ²C*àò’ª +’8Ès • °˜Ë+Mt@‰ ëŽ {©  ê9›¬’â(`œÞhEíÖÓ`}„)ص‚è“QÔú1’ËÚ­Õél±—¾F¤s}ãÝv»³Ùélê/ õS½IT-•Z¨Õ~*( :‘á³Q¼ùN§ÿPl_oEË¥±g@ûåÓ­v›?FG›ÿ:jßì´Öîàäí·p×Ú¼z–”‚Í›ouþbûFÜ~¦…tB4]+± ±7õÎͯlçSa[~â)?\² M^i —Ÿ«ðUVØãiòA3)(lÿdST°ymLxİRk»¬b„ÏDvöeÐdä˜ XSà^X|c:Õ»ˆí`>©ocB›¾øìåÀF¬¾ €•)zM@¿n]FÝ‹Ë3 H9›pðýÜ)Ÿ‚"ùáaEëÃÒû‚Wàž8i.s0îkÀÆ.8U½~üŸ•ÿèê|áyE0¢¿Ž‚& R@ˆ·tåL¦|é ñ߀gÄ,xœž¯¯2öc°%½¹/à4ÌËp“pàè‘£GžÀèq}5>‡:üè£GŽ9:^NÕ~£'17:ú¾Àø‘#=úÄSO=ŠæŸÂ÷ñѧžÀÁ8ü©£8×У:È-Ü‹«lçŸâ3“}†g&?úÄGÿñ¡CGÿ1Ž?ú„ÿøãGø³üy‹‘>¸¦q­À*îô„š9>õ¯äÈ?zôÐCÅmŒŽy|ƒ“óë€ÂÅÝÀ<&µZ¹þçÙM0Zˆ‚R( ‚¨wËHûˆÝ’)*aá+rÙÏ <€¹kãë+þ‡5^'ÀlÀ[W¯¾ç³O·ó_#Rßààà³;¿¹ÍLÀÐ Ö´Ø/ªéb¯TÀùoN ë$wüz‘ž€»’sHÀ8ï"‚c?h‚¶Òd†!|0þl°™:Ë!G¯,Äóà= n¹Ëì×9åØ:3Ì.^nBÑ3™Õµy‘¹›¨ç!Ð ¥û‘È„$7sa½|-¨<=@ :3‹Ø +8i|=˜Y^‰:íÎO‡ZëˆÄÛÁsG­ë¬õ¿Üê´‹3ÑõÎÖMDÂŒÐÿ¬³µmuë3nï°!ðVV@ ‡‚µ¥N)==Ðz;z%hm¼òÊrßϲŶ;ÑŠ‚™¨U‚(–ZûÁß~e£Õîlu®#vÇϼÿøÛ§;øñc‡¨Üܺy;µ;Ø9 +N/—Ž  jE3”‡áäü `qW„sˆâÁ16&·š€¬€ ÀHnnŽÝ†Y8ÍÍÂï„Q@}´­/L°‹Nˆã{Æø,ûÏ¿” + „&Š´Ù¿Ïö.n'Õ·óŸk´í‹OïÜV=€P Ù›ö‚v¢¿³˜oRöd¿ÀÓVîîûÅxØ<=R\@䎑Åz‘ßÇ·TÑí€"úãC&Ó8ø$Ìä%¾»é8€—é2ÖB¤ç‰Dº€…z#ÃÉk>Ê•X²ÜpÇ”@ŠÊÑuJâªÚ;¿33ÌN¬%P!b»Ô +à÷O•J?mŸì°Ø¦t*hµgJ¥)¤§§Øæ¯EË?­i4Ó0Ël7¬š-MÆCÊ›(• +|·€·µëý€Ç}Á}8ò[¥muŠôI‹U|™# —ý#_š±ÿY‘%ÿgxD¬3{pv9< +rthˆGGÁøè>†q§çW‹»Ñ~¥RS{ Z™ý‚ÿ1 ­§p(¢¨}W ÀàŠ+àDÀ—3Jî÷»µ]ø¡¦­Ã’&Œý‘ þ=«dÀf €¤A„7°‚@€«¹˜vÝ<€…tÀ‘¢twVÔ5ôq¼QÝ >ˆ÷ÿrž¸ïŠøÍÕ=ìºIsFÿØô'ÎiZc.@}i<«,€z9ÃWìpŒ–‹—_–X`Ÿ@9¦z@”®ç²ÃU’Xb_A®‰  8< ; A ‡K 6Lžô’ž§Ä”Ò8 P*[Ó`°ŠÔ¹±TjG£þ1. ] Ò1¥Ž¹ŽÅíSíñ¶g½C¦§ÉÄ»gÔ"—ú,PT¿^½Ÿ •$ôÏÄœI|¼0‚À¯:§^BÈŠ jj°¥ª?¬l€ ™¯’‡3öÛz/@²ÕIó{Ïák³ »±> ÖªøÐüƒôˆöËù98¶Ä«VØö ê(·Ãƒ«&62Û=”JÃö2ú?xP¥€Ì\“IVúŸù9²ß +ºˆ Ý Èß×%\6 Ð6î`5@f€,Ììƒt +€Æ>fµåN˜to4þ€ÿÃúb_<ÀŽA8\$<Ðqˆ»âÞY2’Ê †™ÑJ³Ö’AOIö’ c^ÎÐÅÕz€´ÀàO_®QÊ?l°½/\@,‹H0þfÄî€934ŒäFrÙ'ù&µ´XY‘À`A€i„%Õ’ã(Pw;ªàÃ÷h"ª›b©ûÄD‰4²îÀƒ7£ˆ[±ã)’2˜E¼­â@Æý ¶N° ® +x‚ÂqöèÏj:Œ¯ãúÆ} ¶÷ùŸ›.e™„]/®¿-‘±©åíwÆÛÆ/¤EhEæFØž@0}æÇnî„óó+‡ñü®Pf Ü?Ú5_å2(ƒÿ¡—0´îåD| Ö6蓆5³Ã@h7€õm•ONމjÌ0(@ç+øàŽZ’ÛXΓý€±jÀu¶ý³Ïî|øáox‚žRÁ¯® \[Šþ<ðßZ¸¼t7Ê{%û-__ö´Æ71¨ïñ¿)hî™IËXDˆôKH0V††j‰Ú">_ Îè©wuâÆÛ‘P=>-%Ö,0“o¾T†8›Ï;ÿ›‹ìRœ½y€Ò«õòH&vÍÐ^ ¶ÚÌe¡H{å8B!hÐtÀ h/ßö‹GŒÆ‹…Sãcÿt¬0Íwù¤ D×Ç×)3,d” ïLÃ6HTG0q†ïíëžž8Î×zJHB2¸?tpL+yQx¬PzjŠ–Du€Ô³~†óðØ «ƒÒ,_æêH¶f§XȤhìðìÝЊúwLx·ákJ Hì9$æÂZ…ÔT)‰ƒ¸7ò“á1 «; º³)€¦iŒ#Yq½"¾Àyî†SâôÌ ù'í‘ò>Èœ½‘;®Žjrvp›y_$™Ù“üòä¿Mmûï>ÿð!ÏÎØ!T(~ +HR^'‰šï¶à½9“cPÉþ0V‹×Ab 2ÿ±"b?ÈY0 ÀSiË$ÄXúÊg“s!@Çó€çêKçwk]ìHoì…´w_ZûÓ2¹úê|žÅ€r¢y.|‘jøbÊXç õº^Ü\Aòš-˜ÈÐ 4æÕyˆZ`‡ þ½d”ÓÀT{[¦‚ÍèÏŠ¶†¬ ؘ€±ÌNö´9ÕÀ—ˆ»ößèE_̾…”`¬4ÞÒ/àBàC\–ØÌGñ<ßj† £€à•1…@èΞFbÄ’¥hü;£ƒãßq†~ÅP Ø¤ªU¸Çªñ®l‰Éòˆg»3¤zhedt½ +úÒ’Á>ZÿSpö‡ÝpGŽÅeûÉÐÈiÓý3î¯æ*îYP1`·‘~‚^øâÓ?bcÀpnÅŠAŒ~y1RôÇõ‘‚áÂL¦xi=@wÂçCþC)t–qÄÁCÆn÷<‘Ãü ;Vho8;œr8TaÔW’ž%ºTa?Içç<·À~ªÐ o%+—_f= ¨W¸zNY¿„eöñ=’QŒÎú~ tR$q"9(Eì–àLH|ü4d3»Êž%gwqѸ’%$fJÓÊÍë:Œ# ÀÅ€gÙÍÈï÷Áf[VMÜdŠ¿QR4;…Ðìo€_moDqüïÐɉg +Ç)¸“é6buÆì¢_)˜ˆßuTª!S. >¬À\XÍ–F|- ö¾ +ù9M}lcLt Î~p_Ý+ìãÃMæ˜ ˜ÏbÚV +˜Qèʹ2誘(¬3€UÜ z v6}ñÙÇw$óÝ$€Ç¤ý@—œ„݈)Í?é¿=@ßDw$Úç'`˜ù ~*Vð‡Á„܈«PçTÑ +“ÝxÒ…}~Ô(à$œ€n¨ëp‡z^8¬qñrX¶âÈòJMògEm€fç€(ç(˜‡0º·]Lès#ûÑ[ñ©åµ€)¹Ï ä ¸#€€fà¤;|»Àó)€ƒÜ˜+ÇòÝÀæ¿Úüïû ëÑzt¦T‚` 0ŒÝ æ>Ò¸`„3K~¶Æ;ë–5‘ÀOÏ4@aìðÐÓHDLoõ§yÿ/Æ_‹¹wâ<€“ÚÆöY`!Ñ?“4ÛMÂ~<Õ¬9zÐøï_c‰…Í*àvò÷Ë‚_DJ@ €n`.WYÐ c?wÝ®@}Gû1õ•ÿÏ ’åJ™IXXDÿ 4/cü2º;€ù¸LæNð×àØ=bÅÙJ¶s-Ü?â| b ¥8† rp‰å0áØ¢`úãà!Ñ[ +ÐuæRy$¿Xo,5rg•I‡ÇÃ4Òåt €µKÕ|ù_ÐT.¾d³¨ „ÙPm‡)«ìU´¦P@â]8=uJÀ¬¨€ô”;`Ô/öó½|$Ë6Ð×À-LÏ”žÓèÀÃØ)€cܰXpÐy«ÿðn{3Š:Qüm½u­µy­ÝŽøÁÊÇë›ÜÎÞÀ[At½ØþÅÏn¶°¹µ777o°[ðàM¾=h}£ÔšÂMlvÞœÙÇ€Ï×Ð @ù»‚s‡TÀs‰¨ÎW«à Y"ÀðHÆÞüµ›È`c Z)€-ö;€;$ÿd¢ßÒ̰L@®ñÀçø.¾±ØV0î› hëÌ|¨ÂÚÀ¬®¬2¼29±=@´'ý“|ü’éäSÿÓh'ŸÁ¢,30âýâÕôµÂAÄþªèôÇOñä ¾@@OQÀÃàéÈ0‚U€ºШ²† Ìå Ÿç !ÖgŸ‘²9€ÆÒ{ÊÙ—þ—z \;'µÄ¢Ž7€$@. >SØžPµ––ôc‚9r^¼§`übÓ €åòM:]°³ `& ¢ù]ópºÁ€W ÞüPk£UÕ•Į̂r\P +–™#‰™Ö2ÚhŸìDÁiÖAZ‚É™w*Nž.bZ,ÇŽ>\Naç“û…³ô+„åóíæ†z?\€gbÌäå.0`Lˆ° NmŒÄs9#þ5ì“AêXŸ±É€«ùU¢_Õl蘠¦I š›÷øz1ü®;€®Å=µ¯è^ +ÀÕ‚Ön  +@—£¶8•טFšÖ‚™\3HJâ3)é$  ' ©Ó6qÃr±ý§ða+5ÀéoÀÍä?û IÚàú‰CÃî&\êr! òYq÷<O)9¤Ë- ±úÞB>ûÒ{K! ¿ä€„ vl÷;Š‚A?€ÿ¬r„]à¬ï9IÀYhLõu}òT +P:EPr-0 O;4p@ôãŸôZ£3Ë¥ øèᣥÑ'Š“Ap}t*°\:=y¢X¿‹E¾+¨x²ˆ•ÁÌòòÌr°|Ì_~|ùt «µGqôèQÀ?ŸœY>ùÉýÂYúÕ…|{ seºãmž5ü¯Tª•¹0Ìæì· ‹1x¡™,}jáSKh/í;­ÃçAÖ±‚÷rÚ°ãmF«$H‚˜ÖÁÀB×P蘵ÅyR>™w æ¿õðaÊFX]}A‘#% Ð%Î}ψa÷•v‚ €¶3`ÄÖ¤7Ÿ —Aa¦ÿ%ôùtÚ!í lËÀ1:›.Ôàü·R€‘\xñ5’òKT€~`iíR9S[ýáåæŒ4êç@ùms¨óÀ”(»`tï0›´ˆýX]¨Î†À&L ¸(ùïðŽŒ—0F @IEÿø˜˜²ü·>yÏ&`ïR€w︶> +J­N«¿mu&±â&lAëz á:?í0]ÐÞjÿüæÖü»}ãæ_òÝ ·‘N¸ÞŽ~ü¯£RT‹¶n^-vÞyçßìëÓqž~UPl¾'XGð¶ªR«Ì-0h +†Žý@œIå €~-'!k=¸X‰‘õ~+€THò«”†™ô?–=v,c \ßYÏ`Ÿ`ï³@âDs‹ó1eį€Vr+÷‘üæ7¸»põ-@Ügˆ•ðkˆêûm‹è¦åAFÓ]þç3‡\$t¼·iç <¥ˆp?þX€® J2T +àe`¡B¦ŽÄØ‚¥Éb!„h„pÍæùó ¹P’©¸3+rŸE6(g‘T_ýU=Ìgްƒ²vùÏ¡^îuåØ4ôxtN :{Œ±Úœ€{‡u9Ò’wï<¯`¥îbàè^ÀÔ/ï†Å6$¨44Äþ@¦ƒ?šm·¢ÍBÒ;p!¾hÌ&{üö n޲Æ0{) j…ã{&n¿3Ùyë­Ÿ©Ë¿AÆÀŸÿ}¸ü³®å|9dþ?ÓXë î‰ö$ìÆ@ÐÞÆ@ñ¾»²€+mÉC;¡*‚ÚjÌɪæS±¶–àbÎaü 7³„´¸ ,BLÕ@» ðÃr¹ß†ïýKy;1’tþ,þçžš1½µ’ùz:›'8” ÈR%–0G4 8Z5wTDè$ï>ê`Ï}äì] +à¥þ;ßÄy!çËá%ZãÑz¡ø42Å*!ðÚKì˜SÎ.F§ô2#€~ylè›OÜ8½1yâÏ;û†Sõ+ˆ3  䋿1ƒ5p a.Kg rÁgX1UÚ +‡`ÎuòÐŽð.ò§ ËÚ|ëcŽà1 +²&‹ ‹‹ž;lÕÍ .ÚꙀ´—_k.Ô›K0Ô]ØÒŸ_ƒ”‰Dáý³[­n)@÷>p“Jé¡p™)ÎL °BëL]ð1o%ú«¸ÞÀ}=ã˜ü8ɺQ úyKXE> 1V)-Ó¬¬](—ÁÚzX]úß~ë¹ñŸ?¹ H€’rŠÓëìtD@Šƒ»+òo¸ðõâõ«mWϘAÎj±°÷70—ì’°§@Ì~´G#üTqèá1¾ðc6/&%¼^ü0® 3S¥§áþãš”P‡æ°8blèð#³íÑw£™›7±ßÁ¹ú•Àÿ´þ`+_ s¤û\®BþÏAØhX« Îe-sÁCŒÂ¸Ïö"­ŽôžéYðèÕ€ N*ÈÿÓÐ :dïºL¨íjlÔ'x]UÙ%XÒ#0³Ý¾„ÍcÌBÖp*€4 Ó]רo @WÆjn²ù9€öêÞïÛý¿; û|hR€\'˜€µô¸ça¾ÐwÊxE¶¤(@€ +Ö†#Ê…CúâÈüg„Þu/-À¬­ ‰W{ïÿ¹è uDñ¬A(©pð€­{)Øäy‹fb€x™®û`0¨«O ÂJ¦EæR¿š€»Ô`´¿Ó÷–`ÇöC{| )ŽÂÐÃê¤oùÚÿ•# ²OOýyä?æ¤i­ÒøÆ[Ø“€›9NðXôÔ»om7ïNÖ¯þŸí :É|®âóüY:€0¬•«HäF,˜Y€ap¾›°!ñ®ÊæKö UÈyçßÀOÀl@°„V›sùŒ À"ÀÌ(C9 U˜œ·XŸ„'óõáH+¼À\X]x€DR@=õzð¼*¿2 J`‹ES€|Õ@ï‘ÝÛ‹¸ëÄð‘P¸™I{eù ØÛ`/˜í—õ¹>ÇZ ƒÌstÍ0C¸À>Zî €ìÓX{ àb3¬ Y^þÌ0û¡q×@à×€Ô¦/°j—^AÌ€[ 8€%Ö¢ÔX8`ð<ã?9h„,€isƒäìY +À#ûckœu C(ßïÑ_.µ(±Ä(Fb¾¾¸ÞÎøäx+¢V@J…‰‰Ç†½9ÛfþÍÏoìw¸álý +àÿÙ^PþZž‚Wéž,³ë=öf€)€$ ÀÐîs]0JãwÒ{j–úÒ:²Ÿ½ÑŒUü ¾;òŸeî#Ù³ úqÛ=ÌX ·Csþ¢;‰ï3q¥õ øa¹<__ý!ÜC,¸‚ÓAPtÛ`Wå¨V¿‹p°ë0é­dð4ªsQw-Bû6MX àö†ïâ±²OB‚•8|Ð"j}|prKKæ–X ‡ƒ­– ­×³ZZ»P©\Ks8y¾ñ×kzp®Šk°Ô{×¼°4½ó¿ž;Ëöƒ¹³ç)t+Ü +5X‚‹0è:0…q>kL÷s»ÔHçİKÀžÀü}! Pb[€þÓS­Rp‚§Â‹R£<® ×âó¥™Îw:O´Z3äÿø4t`ì[Cýl½u#˜ñŒ½ýÁéú¥Ãù½7èÔŽ¤òœ;€Ú\8_®H  €Eçnð60|¦h‚vµ°Ï©;&ÿ… ¾lˆS‡Ø®ò×™øGœÉ@†ýð«/Š<Â54À3ê€(2îPœ//à"ÀÂ@ö +Œ$@X­Ô_[…ÝA@îJŠ® ]RšÛ U yÜEÊø;’» Þ²Çùñ¢ÍÙ°ž ‹)&&ÊOÈ™ þgÞ‚íLös5€çà$PEŒ,óéHÕwpñ ¦V.‡j œÉ”—Þ{ïß¿H!8hD°"Àz¾±Phð-Û{$Øq¶¼ˆßãQØ…GÖ¶;Åþfl Ôàþæ©°W€÷þÓðí§'pS“Qà 2kÌ«ÙÔª`ãhÔn™„`g +ÀÓ…ãP¢QÑ]ýþà|ý²áìÞà¿åö…V@äÿ\™y ¹¬ÕRH$âP™9.ž÷ê@²§­qø9Æës@y\Ï8ašŸ•I{9À´ê—¹*>¢3ÑõùÅðƒ>¸Í$@’Õÿõ“ô¤¾!v·oß®T M€‡X0´è™áÕ€ìúÀ,( 2¡ÄPvБñ®º_·)ß;hÒ  ‰M÷¡Œs9ÿí•c~=6>¹ƒ#½²_5øÝ àVüf^@ô:€¥µ—Ëå‹+Õrþ¥Æby$_žÿ×^Z{©¡2@ìfh†¹2KÃèKÀJ_!Å7IBð‹Ø‘?‡´€c^Âüb3~AøÒ_Ô/ Ü ®ÀÈvy{•¬_kqXß1\k-¿$ÇuøÔÛÅ7qg¸V2À÷¹ Ñ!¸˜ 6o-·6FŸ(¶NcËÓ°‡Æà5:­{€¯HœÞ€±„rû*aõÉa:ú~®^8kÝL¦údðFXìÃç6ö +ÁX}ˆ9lJ¯½ûSøvðD؇C…í'óI4ö ¨?J\ ‚6Ò´ßeº¶^‡°0݉®øßx/ %[Ë÷C tçÙ‘]H;«Sv ]ð +9J``Áóâ4@ÕŠ]„„¹„V$sÝ<U ²ü öÐÅN:p×®ÖÈHû*«@ Æ¹a­†' âúóç¿,‚9)€ªþóK ùð"sò_z©²ßW¸Ää1õmjyx0¹æEœÀӨ㱰ΗÈñ…Â&n8–¸ Ÿ±º:òû3\%}ÈœAòHÀ©¸ÀàžÀ{eØ™‹ÿ;†ø®;øÆ‰6·D­ÀÀ`Ò*-/mÑ[Gƒ¨ýÖ:ÌÄÐáGl­—¼’Ñ>áŒýra1÷ ƒ‚S™€À•Ëä°A Á n~¤Æ>f…nNÀª9^‘Ý¡œ¿x–#@mù ¦(Y·{¢¼*ÂÙ<ßÈEäª[ŠìÞÿýÛ½oRÄ/Æ Z)À]>ÿì³sû6äméµ&îüœq‘wZ«Õýsˆ‘â¿]£B¼O2+é<Î%¼5pµÏñ4rä6ÇLŒãl +`ºP8•Ëzè «käÀ@©Y\ª;fã/Ö/®–Ë++õ +ˆÿ7¿º\¯ù~R0"§À‹î‚ ć°Ô€ø` ¾›ÌÀ<€¤C ó’zŽ}ÔØ#ÀÌ~D£<ùÄ#̘`†ÿô›'¢ˆq=.öD ƒ. +ÓÕ +(•¾·|d£T,N^å;ÅÖuœ¨ppì0 ³Qz÷—÷48g¿TxHÙì9pu.ä†s5r‚Ûuõ3;Ÿh6Îõ‘žï‚~¼'£;},j(n8„¨²Ó[‹íŒdj&R¾@0/  PÀ8ÛIOÆçtû­ÐÓá¹`kñ`ìyt%ÀÀóâqG¹™1¡+ a˜­²B¿ø#úÓ0oÛka¾Æw~á¸K««ïýõ²lf Éo€¬4Ã|ŽÕüÜðñè·ýçÏ"®‡o@@îÁ2qˆjr1ÉÐ0h@R€sƒäìQ +ÀãîV¯ }€«D"¿=­S^tñ&)¼œ%HW¢UЫ#ÅR°ÑiG‹§q_Gƒãß8<7"@š×ÿ•“öK„(¼;âˆéê€læIEÿçjµE +@f~~¾>9µZvëÑÒcŒMÌ­h²óóŸwîaø +Š-T†&ø7Ï?9œ}u_€p‰Ðè™Ü¤;û¾Á}œþwÄš@ˆ€I¿àÃ^°ÍpĤ¯9€cÊÈŒÌ1°1’cÐ]‘`M@*@·$”O¦’‚.ÿ!q&àD‡Ù2 ÎU×CàëÁ­¸Œÿ]v«8îa\­æ²ÊW)€mÆD•ùqè&µZ3¼U›×>xˆü¸ȱÖ|Ù ×àñR0â,V~Î 7×|ÉÕ”ê +h ^/Ö_Z-gÊ/]dYþ?_«U–þo¶î§’2oä·iìš«PÀ¾§¼ˆ1ËNáM¦/bàý!ŒAIjcôÁó” èàþÛxeÛþhŸø‹vûçÁ`bv/ÿ +Fƒ­ö››v{½ÓÙú‹­¨µ®ñ5dí·‚V;ê¼É×]¢­Ó?™¹u:pŽâަ×Û›7o.ßüÅ=Âiû¥Áõ`P@(ç¨ÊÙáüÓ2JÀ°ª°B"¡°Î@‰ÐÍ”s¨ÈonÒÚ¢‘T}2Ö!hH5§ƒ9¢?‹ôé Y¾Us$[®¿ Æ’ý‹¬ðÑÇR'¸@¾ï™õ¯™Ÿ}ƃܚM–o0~ƒžØSà¥aWÔå?’ê‡@fóz‡Rº žòAðð™øFñ_7ÊuþhX²Ÿ¼ÿËÌb”`‰ í̧ åƝóÑÇ€@B<ÌU¬Ò§uH¥Ü,.†/­U‡³Kï±(oíb¥ÜøOÄ0K¨ X¡ø¡€Õû¸E²>€Â°£o-u†è +€¢µ`ü9H€Õ ý÷•°k)€uüq7lŒ#%?sbhhŒ9û3ÁéÖäì +PßøœÆú"»(b3ÜŽu''OON²ƒ€Rp:(ž;1†+6¢ÖÌõŸ^oÿ´½ïïO¯;o¿4X  ø‘`µŸp±2`«ù·2݉@  HXxFè$© 4§¬¥1à+ìc¿aEø\bðÕ@ÎÇP`üØý³ý”àù,¤4â,pËÀÚá›(¨ÿ»¤!°­g&àߘ¸fs• / ¶d£Bw–‚.7á‡à»ø`BP]©=Àøÿ€?~µ‰àS 2N„¾Ögìq¶3žž›Á¥@/Hf"À@µ€x7p(a×à‰Á4ÖÂL¶ñ7ìùeíb­¶ô7¼þxæ%öÀ2ÙhHð¢*IX + © +H÷Ï.‚´¿)`I€Dý[[µ Àë€é˜˜¸ï¶ì³ã®89ª=4tô¿-N°sññÒ Ð}¦…yöØ5´ØéÖL¾²°“ `yùíÑâòò+ÒlÄm=õèÑÂä+§Ù‡H Ãä=|K_rÏ ö÷ˆXä Ê<‡± €ª‚+¬†=|CŠ“ðZÔN­,£.®³HŒ™€ â"AQ ?Æ$>ŒûŒÿŒþG²êkÕ€™€Hû÷6PŒÏr•ýÇ`VÁpJΟ/g³eœ.¬…uÜ–†ñUqV+àþ‘þ—À'[ž›c" l¯ð"°™m´åsÄ 6•Îù¶dŸ@=éITa"—žÍ#½KáÂùf˜3B’©Ì¤H +ÐXkf³çþ3 ¶¶Z+_þ_—$^€¨k.€€°æÂ”°C†)öf‡ àPi¶;ÅãÏ*úLJŒíuw­à½^`·<Äòñû wœý;íw¢ÖØá±Bi¶3/ßî¼”Açtô.;ÿˆZ;ìÐøßì´Ýìlµvsódn¿½¾þ³­Q«T€*JH&l,¿ÓiÉ[Üœ¹_œÚƒP/—UàoÙ H0z0¸]±XÒ”À6’ì˜W±•HÀpÞ0%À™ˆe1Ó¥ÿ»IOùºÉ/ ÔË…'}Rÿ÷&sþ)þ›XÇž¯Wà(ΟgàYZ)óÆÒðK’ yãbÀü‡èÅ øð5Þ)NÎÚ'6ÙŒN¥ù´§s:€À\@j»ðÉX—¯öõ<PÍUën Q©<æïsfíR>SûŸ!áÚj%üõÿù'öq°ÙñNg€üüÊk«+8ü>‹)hv€ÎNô +ØÇ˜Ÿüßw[€®¸ï¶E~î2<ƒí|ë_鑇?V(MŸ™Æ žÁ¥ÑLëÆì,_UXReLÈįþ¢Í7Æ74?­ª…Â366441»>sš5 q€³¿/àÔýR ^ ò@1=(o@IïH‘Tg8ïIikâBv' +þc„Õüb¿aNA{m’耞 € Î8ŸüÏã˜8àk#Y¬L(€4 Ÿ¿u•­™P‡û;¤!èá¾%>#$ /ÔóLRÔqªp¡¢·#zì­/á—Ä9÷üYÃÜ\•õöªe°Î>àÆ>‚nZyZä “yŸº5ü[¬Ì·¢ò ä’¶Æ~=:o8  '€|ì UÌ`ÄyÐS{Ö/^®fÊ¿z¯\~é?­…•ê{/™åÈçµ¥CPMÀ•07Ï>“•À™p6¥tuz ¡9wÿ±X*ךM+°Rp~?m¬vv–Ü5`϶»§+ :^(L³›­ò?h—ZÿŠýÿh©©Súiþzpã­ñv°ú3…%+|{lèá¡Âéèt1âŸÂgßßS§¦¦œ»_ +œÙýÀ ²ü†Ì Ó°.`>ãÀ¶k ÒѬ€@©¨#ÊB Qœ¼ç±Sò^ü÷`Lº–èÒÿÀ=ù³-ŽáôÄ,cŸ§ g$Lÿo}ô1_ü…,’øŸ[v@h5öüôãÛ|€ƒë e8úB•¯E¶ m—¤1‰š\–øÏqŸÈS²ê;1•0è‰ý Ûf3‰`Á¦o@Änס{gk€îNzv’³¬/˜ÏŸM%P›ËV-'ù•@bg±ÀÌÊå•lîßýª\ž_üë—k•š¿FÑ9Û±ŒÅ- WN€â¾;9\8›? ú³&;÷$«Išry)] +€hT–¸øJêìÙÀ.PÌ^úÆ#cÇÉt³)¥é­ õËõÍYÖ,znéÚ¦pUÁz4¾EG€‹£˜(ø«AÛ¥bd‚Æ÷ûåï8y¿8×·ÁÃËN€÷ $ðgÖ)ÿ„s±à@ +€D}ª€XÏU,²í±‚y‚ä/ƈͰñŸ ~õ€aÜèT€;€aHÒH–üϲђâÂÕ«W]@ð/˜ÃGðyâ>7!÷µÛ?ûTõpìBˆÄFy!dßDZWø%¹ö«ó,ÓŽ±¨Ž#§ã,~B="¶Q›u–x%'Iî õ4@EåLñ +| +\‰gÇNHβáÐ6Pàh¤fIƒ§Ô‚ÆÚZ>óÒ¿áu~}™9¼Lü§A¥àÞæÊÍ×^‹ þy l/Êú±,Aš± HƒMûj ЯÀ—Ð`L•f¦£`⑇†;>11sOMÃøOonýrs=hÅ&ÀÀW•òrδÚã7u=Ìãœ.µ DC‡'J³ïþ„o÷½ï ÎÞ/FøþÞu†æ`^I&:D!QU—ñ³hO‚K,åPš¬b9À¢ÈÏ0œÎÜÏôc#@–°S0õ¨mÉ[1gð¡ù¿Ð ?tŸ;ÿ•ùuàf  ‡8”³º½yÜ šÀ/©BfŠÿ=ÀîÚèïè‚Îâ»hÿ^dé&(j°‡ûNÕУrj1PfµÍØ,ž_zŽy¤!—B<%. BgŸøyé2"ý÷šT€¿ù^ÿ_Fþÿó +@3̲põE% 9 õ‘ÍeŸ¤À(¤Ðè© L€ý¶8ÕS .0ØŸ°cvOß*=òM8fÌή¯_k• +­_üwH°Fp—Ðü E8ÙaôLG¥§ƒ±±Rðî,’÷§ï}CŒ€ø1þ‡à$ÃÜH†y²8eLFßòvÍ(žç!”R`s”“ +Eû¤¯§‰V1º-ÁÍV + …Æ<4Î `îéÊÑÜœ€í Ÿ#ÀA.€‹à>eÁøo ¼/¨ÂSè< Ålº±”ø%Å +ðÀs^Cu.?BúS@TñšÇð®{¡Sù€fûí›ýiôÄR}Æì7V«!•ÙÏѰ@ yæBÛªì0ˆ`yÑ{åò ™üÊJ +°´¶öÞø—kkü(—€íå S^¹ôÚªzÿ·õ;€=¥m¡„.aÑ€ÎR¯+€@@Ö|eõîš@zïŽà~nvbè›|ëx~×Þê´K›¿XÇ,Nbþ_¦$ÐkŠ£ö‰wñ›üQHÀô4.|lè1ü½ÿÇbéÞs ý—`¾œù'þ±±¸ ¥ÖÄfM‹ìé+|"°z÷÷ÜŒý°£â/Í:¦œWB/ÿ=  )`Þ_¡ƒ„ Ç«„kI€XÈs›£Ð‰~:Â7}BxÇVó:€,»Òä'ü’bþ§@_F¾òx?Œ»ë4l“fxßEkÕsj’TÐù€J…ògÀ÷æCÄ@°MDf˜4LˆY¿Ps5V‘í•BˆSë Ï­_Z[ÍÔÙ#H¹\»øŸÿÃåð\¸ˆ(‚ÆÁöÀ×@y$l^Z•4Hn%Fþ2@‚µâ?À†îšÖùÏ„À y^€¬Àý´ˆÓ »`*8…¤üÄá‡X¸`G€÷­örtãþÙ,“üL'0#ϰ߰VgVŸÀ»šžžž€³ö|_pß'ðÄŸÁ†:ëx“õtÃÖä_ Àê´à`ÁR€Üç@à2iù\±¨Ý0‡pk¡Ø±óª/¸ÝrñüŒù9`ÀOü VP ÛWDo¹œù,@ÀégŸ|ü’:lOGêó÷2ݼI‹ªÓÒÄyö +ì`—ÉF9¶á×1 ]{aÛ4GúÓcR}â£Xµ˜ü/C\p5¸:[O4P$„Ù³y&õ àc¬dÅ & ˜C"ÈÅuêQÏ×ÞãkAVWÙ'Hýò’ž1 úÃÞМ˨Óô¥:Û©PƒóŸ=Hp ~R¦žKÀ’×$in Я@,íÏÐ2Lí^NWx˜pœ‚(©qf6:½¹E3ÄUÿõŽpÍá~˜hÓÿóæ`e(=v|zvkf\E‡÷gðýVòp(çñÅ u~„õêêy°XÎdM@i˱bˆe`Ä, MU±̓þ¢< ×ZÏÁ²§ i–^ñáÑtíl@†ï TC\Ž @XÈìk.†rLâMŸ~ü[8pž y:öìá¿(ªp]Ý+³%,Wò~ªdjµœ…—’ôË0H$q6-pJ€ì?g8qH±È]rB{‚R€‘ááj€;v ¶°Ô€\ ùÉ+#ÿݬ7ë +ÀÅËÕ\míÒêB­RÎ{Ç@[‰¶ä³9€•|°ºÒdë>’ÛÂÈ¢ÑØáQ4jjICÍcÀñàyüâcà>ÚpÿAP + +tߢ:yûttc“i»l%aK + pcô­V²urtü8 MŽ·þ^(ÿÿ 6°%à"´¯å2#™yÒŸ +À°;1¯¸U$†Ðˆ ÇŠá@¹‘þ_D7âr-P-lóÎ+b;ÿã$wÃñn –$HCààS¤íÅo0ü3›3¾‹üi|rçÃÛ·néh°SS—‹2:ŠþŒ«ý’<Öƒýðÿ̘cÁ= ž{\]šÿB惨ٟ­æ» šå¾Ã‡Ø7PÖùÏ2ÂëÀð v…’VÚ ð?“Éñÿq4U +pA–€Å£4)¹Ü“Ù1µÉþ<ÁìËõl¾vñ¯/Öa*y:*Z °^y…8€$röÚ”:ß L`ƒÚ àË*¿±0˜ ¼Ñ=”)V˜ R€¸!€‘qðzû|7`ßR€©_¾û.>{`k«ó³v›5Ÿ.•ZëAЊ:ì¡ï/‹­?¿qóæ­¨sóÚO7ÛöµÍN;ŠøBàèÍ­öÉh«ss«Ó‰Z[Ñ[Ñú™‰‰§ƒ·¢`æärðŠ·4¼W8‡ï ô"þ/û 4 öG„‚hg-72’a€Ø@$´÷à ‰`É0™Í®`8U`eôÅ°Ë öÕÀ0¼³P +ù±àáŒ{àÛ &R€O1â„S‰Áêöé§Êüð€øl¼VÉKBHð»ðêBÅ é\™„Hòpoéà”þ°¸Q«¼Àž Wê(‚£‰ø_*X# -{ÕN–4țȰ5`Ø|ÁÒÌßFF²OfåVê5vÚ¸üZ6[®-^¼| +PöF9rŸ‘¿²ã<€ò¢–^däî8‹ýÙ'X.\’àÅJ)ºÿ•ð¬¹e ’Ч5à=·˜œô™Ý0Y*Ož<ùÔÁ‡þÃtôèSO…ããÅÑâ ·žÇÂøèøIn FGù¦ÐñÉÇ‹­{ê裇Ÿ8yr´8zôñ#÷5uß;ìÏ"u»Ú½×à;·XƒûQ¥`sa~83Ï€‰(‹ÿ‰pÍ09äñ>vÂ"r&áw^\ü|1ÝæðTb¦ ¼@ŒDu.qwlûpÿ.ür†éØ9CXµ'€ý¸³= %‚,ŸåŸ‘ØŽ]ÃêbóB˜eV Ü—Ȳòt½¹>Ÿ¯eáÚë—/!Ù“-¿ô?­]¼x±fÙÌüeTÎ/KàVWê89ÓˆÑÉn %ìGåΖ;¬âHÙ R€î‡ŒÅô+©Ð/`3ú³è:†=Ðét–ë{h¬t×ÀzÿÛøŒŸþó·:ÿöæ;[ëAçúÆO¢åŸDí™™É`£õÓ·'7pT+Šþ †`yùÜØXáá±VÔ +6¢ë“l#t_pß3X,»OûU·\ƒšÿuþ¹ü_‡­ÒB$CaBl„OOL@}±ÜÀ¾Š³[a‘:º<ÞéÔl +È]ñÕñ>IcKbÖÁƒ€Û€?fFÀ'J7ÀÈ^€,h6Ö‡OîÜùðý«Wíø¾þ€EøÛaü§wæT!Oú¦ >#Ì’µ“¸–ö)vÀƒ©ßònи« @%\¨æ3Y¸Ÿø„ñäè¿ È~Ö‹––Âlùì/‹ÿÕ'³¹l.ä›ûVñŸæ!͵KYxþrxñ½ÿý×:žy…¬-¬‚ûB˜²*°€!Áq–Šéɕ뽀á©lJŒøL˜ œÀ’¹ÄÜk[€Öú5 {"jGíÙo}cè1HáL¬·;Å¿xkýRù­6¯å Èq‚F-·Zßû^ÚºÑi¯·f§!³ëÜilh¨€ÄFôNqò~á<¾Wø?@êÆÊ½÷à¸ÐZý±!’ +pÄFn…EY’H«˜ð×&Û»hïg°PŒ0œ~îøÎ:«Σ¹aÒAÔÇ^âõ×_½rûC(€$ôw% º‘þ'øjÛïüö7·®\Ñ ]]p ö÷Sçÿ[Õ—É}~R€ß.\¤|-î3t¶Ò6è øÁÞã1³bâB8‡“&/Lž0ìÿ/òóø¿æ0,PæêMµ“`!B•…$”¦:輺ª–àöêÅ:ÿ™l¥¾†Øüå /71X \Íû’z/ך—Ø'XÓ€!_Î1Àb€ØÈ'ÊÈtëxÜT›Ï“±\¨ÍÃÎR€ýÔà!ƒ`"öZ)@¤‹™ +ÆßŠfÏÌBuÚ«`à!wÆo´ÎÌF7f§qÕÓÓ³íÙÂc¬ +ÌîLƒÎI§ñ=‚ gò½Ñþ½8†FùpOÂ:–CÖ `g’õÅ< °ƒ( †ŸáP%õ6ƒUd=¾šñ©ïçÛ€Ea»;íhÀžPüF/µ³'¬U«¯¾úÆí?üˆ&@IÁ'Ÿh䎚@eàT»|D ˆ~=àCÐcæ¬øÔ'ÿÓà@lÜ«%0ô3˜Ñi» + îë“ɲÞ/\Kå$5uÚ;8Câ+Ôj @ 8Ä4çS_ØÞ;ÅMRb +G‚E®‡$ïC ¿ýˆ2pǤÀ„À§6IðÑmÀpáÆY#—ÕG<õëI៤ÿÉÔ˜dy^£_Ÿ@¤$k1gˆ×˜7`M “a‹à +ßÈ +//pþû3 R°C r– X«¸ °;€œ9ü_-eíÉW/ ï]~zBAÑ $V›¸?ö ج¿ØdEbË×kÔ‘üWH@àXY±$€9ºZn¤–ñß¾ýÀ]ëpßûk `ûœobèðÃæ”L™>µ5ÚŠf×§gqª=ø¯ :ñÔT¸væÌìæú&迹(@F€÷q¿I€ûì„rœ|ƒåŒÀåA˜»È—U +N#ðÍ1î:•ýiC2ÑjXL±§}m“Χ¾àFy6œ.NXjøÿêë·n*üÖ&]@(w>úðö•ýè9ÿRôWÝœøãWÓ ýÞØOÀêñ:¸ŠoÂU%ïpþëÙ’Àú:Ÿ\,¬YP©ÕÀÿ…0Ë?§qíäÛ< aotV!œzÈÞÒ HÕ—+UÕ“ÌfŸÌ.®¸€PÍWWCü‰Ã™‘|“9«««Icò?vÌ5 ˽€•2ˆQÇyã<€Ø”sÙù>Àjì+€¥澌÷ì‚©SvUHÁŽóp½ ôÏGƒõÙ7ƒYDè…?Db¥eɵè :›ëë³Óëg¦'w@4¾,ß‚e'ó=ÀIŸðà€"zî2ÃåEñŸú®ˆ& IlÒÛFÀ1oŸïó­¾Sn!ó®5y©rÎ9 +ª,®þñúÕ[ï``2@¦›lŸÓÒon_}Â!úŧ2xÄoõÀ &Œû!”\¢N¥3vϧN¸VK¸>¾‚KX†˜’àfs9€¬‚ݰš{»Йñc]_ûcŠoVspJÃU`QÈÿ<;P ›«HÓ7Ã\žÃÆÚ*kÌ.\\c—/1ûOÑ;È,P=€ªz–°5ñ)%aÓ/W@ PÎ>9¯U„€WØol‚³zÛòx¶a1{ibhè±ã…?ÄSÑSü’o«9²TÈôÔ,ë³­ÍÙu ¶´Ì´‹Nãû‚Óyßà!GŸ@+öþô8€Ì“##Ã9¤ÿ±H@C ÚG`heÜlK…XÍ3Ôr†î†ÉOo&à|ê qD}LëosÆ0ŒþXxõÊÕ«· Hî3à;À9NÉþÛܺòª”CtLÑ•Y1÷ïËtP‡nte´íL¥àµs“ +íCñkçÉgÕ¨"PÅݧ€ŸÿUp>k tžàõ‚¸ + °;@ñ¥€ußÿþóßþùïÿàõ+W®\e×@ïߺÅW…œ»å’ÀÕ·?xÿÖû L®^yýU“'mrz¿€]à¥Uf0ùÏèŸK.1~„¯2†#1`û˜øþ¼,?`òTY$*t.ãkŠI°Â_Û€ÿËz8Rfo@¬˜¯XC v¢ˆ˜š€Å€tµ°vq-ÌÊ/\\M¸+÷PMÀ•f%Wn¼ö‹äl‡F½<ï€Jš +v p#µ”0ògô¿ÿþ(;KˆëìS8€±±€’Õ ØH`}‚á;àä|¦£åÑà%‰›'X +p¸€Ô{©tƒI€S÷9Ü«òž©øÆ7¶ ëó$FF æj•ŠÕ9a¨¶Ô}Ì÷”Øí¡Í–ú'ÔÈUçS_àsê„ç™’”üÇó?xõõ×ß À-0c œ'®^µ-6ºòÆë¯þàûò/¡ÿ à€-‚å mÍðŒêuó⬴Ì8Ï»ÖvQ&›çAÌ Ðit2Ä®p¤²’ÜAÏ qÿ0Æø‚] ¤˜€ÿK½~~éšü ä¨b  Š@æü/kõµ–3ùÕµ.ýcz‹ÿõkÔòÇÂQÀòC&%Ofk*$¼-€D\%qȦAòÀ²ÄÜÿ{‚ÞÈæ@¼Öé©öxÄVÀ׸)Ò»@pñFwÌnG—#ü$.B4==1Q{lè!:€"ÀI¥|îs¸·‚qÞó`P˜ØÇ\f$Ǿ·hø×Öjø¿‰„ø>¥gð¤Wç:_›¶Ê`Gìç|ê ±†Ç˜`¶#Ïc0šaÅ¡ß?æøýç¿ÿÇ Gÿê«ýèGÔˆ¾¶¬õ¯¿Žôÿž¡Óŧ÷ßß UVÖàü×Ö=>‡¨Nɲk·•Z;j62{@ ª”Ƕ…8'_Á€$-€k`ˆ/€Dà9§ÿrЬ/dÕ_ª’UµU˜£‘cZg±54£¶rùB.¼ø’Nc0þ+€}®¬.ÍçÊõ‹p¬ ` +°Ýày×a…jÁzfú˜î³s ÷‘p=¼ªRá[‡¿5v¼P@ÚcÊ3µm:œ´ç"Õ¿Þj•FƒzFòÏz—`ë÷ƒбûî©I€QÞÿøÒÞRþE± èäjd?‡XX;ä%Ïù%›Š1Ž‘R›5*' ›5•صC 8¡œÀ$®O`ˆ€³Ÿø}¸p_Dýõ½ñ#ð]œç"×3íÿÇßÞÍÃÀÿOƒà’ZÜ‹eeâ9€l·­øïÀØ« Ñí³¯/TFÀíÖÃ7ßúÏ)v>õ…@l$Q[%xœéÜ'þëß'ÿÄèsöûü¹Aé}N´%!¿ç"“–ïŽXØÙX› ÇWyà,rì¼G×ixÀžæ0¥ÕjÂôÂÁsàtR¤èê¡ïb'cÃ=su0w±¾pŽÝ¶óoá¿w[’ÀÖ„ùj¾ªLÀØœ]ÀAäíÜ¡ó׋ù/ûÎ^W–põÕØ,¼¨gàyU!)íFr‹Û€FÏî·À=·ð’ôÁAþˆ±¡ã…‰ ZG\hÛP@aögP!*c|Ëœ.ýÙhc& $ p¬0$3qªSäN÷‰{ÊPDnò«~|iïa)„ H²pøS•è“°)h ‚ZÛ½ -:©K¸¡`Ö» +ß½å¼cE q& ÅÙÎ} €sŸ—½‡ +8çM0â>ÏoS€ØØu쎹¹çôaY»Fä?»ñÆ…*ºï +¢EÿÝ7¦v3Zð:¶Ìp°pAµvmgsØû{¡ü[ð/“vœ «5Hô i”¹ +{Q®©"P“àEKÔàèõsÎ~ ÉÿåL0€5°–Tz“ú] +€9€<@ä˜ èÍ4r® V +À‰9€ýµà/ì ˆýKQ(?^˜RŠ—'ÛSt¥`¶uZ$…á/`3®åƨõóÒ 06u¥ ý%Ô48¯þ … ƒñ?YùzsEÁÉòrÆ ëØ ¾»ðÀ°ú©—8Ô •«Èß] Øa0ú;ÿÍ(@[y2xèºE«/.œ£Ÿï +À € Íó”kz‚¹ê\™B 32ïIæ$¬\ÈûxèãØ8á? Ÿà3Ûã~ûpd±å@õÀtLÌì«-@ªÙ΀àtÏДÒà”$&h­'ËHôS¶FßáEQp¥‰§hOÃÃÜç Ñ¾²øÜÅwÿÔâ€` É0ÀH…!’0ò +œ0i¯Zð )Xçè’<îé„J#vžÈ玤ç(i8ñ¿G‹æTП¤&×û8ê€X߃ãÿĤóÄ[fÂÓ;»cxôx@ì¸cR1H–Ž`0þWùn/Ïðçê öŒ¸Àßíà<@…€ ‚q™Ì¨õu‹HÄgê²ß@ ßߨc 7@g1@'A¨?}Áÿó¬À¾ß è¥Ïðe_ûøÊߨt‚`b‚j4ý,@± ®ËÌÎNC‰¶9€ÑÄðÒÝ Q¼N) Ðeò½ül8·þê®F>Ã/í=Ð°Ø •ÐS (ÐÀŠ¢¤5Ò y€S#~’Зÿ‰%ì ;­é™ƒÄŽ€ûsØ}pØ™€¨Ì5ÀË%ÕíAèZ]´NSŒø±máˆ5éŒ\tÌÜ7`O›g’Àò&H0IüGæªtsÙ]ÿ]ãÿây㬠R{>ö.ÀÑϨ rp,Í97Ì-”~7`\ +` +pwÀÈüÀ3©<s8oÊÌ®ÏðÔ®¸1ú?ðr(<ÉÄ3æp¤îm½@ü>¡$À~JøGàk#ÂøŸ,€|} =ް<ïp +Î0ÇH¿»¯´±] €c™n='TŒþ‰ ôT;­JàÄwüžˆMšcŸwqØGœß]Ážù‰T£í|NÎ~›ˆ±-ÀªCÛ&ëâÜDcW•5w:è!Óp ,Øæ.ÐT•À>p±– Øßtù¼Ëþ=@œè›0¢ê†{3×0àë0@÷šPTÀÄO«xŸy6SB!ÚæúæÈ(0•ßÛ ÑÆ>,uW#ŸáÇ—öz€åX + •àÑT@lFè•è.±ðNþvsä>% Vì…ƒöídvq„q¾v{Àȿ݈·L¬ðYÄT'x¥ÿKpßXÂjÖÄRÜÑÝ%ÄŽè$Øjy< ?ñ¾;²­ëˆó”¸‡<Æíå»8€F7 °kÀbýÿíý—Jª/ŒIEND®B`‚ \ No newline at end of file diff --git a/examples/models/models_mesh_picking.html b/examples/models/models_mesh_picking.html new file mode 100644 index 0000000..a2deca0 --- /dev/null +++ b/examples/models/models_mesh_picking.html @@ -0,0 +1 @@ +raylib HTML5 GAME

\ No newline at end of file diff --git a/examples/models/models_mesh_picking.js b/examples/models/models_mesh_picking.js new file mode 100644 index 0000000..18f36f3 --- /dev/null +++ b/examples/models/models_mesh_picking.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="models/models_mesh_picking.data";var REMOTE_PACKAGE_BASE="models_mesh_picking.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","models",true,true);Module["FS_createPath"]("/resources/models","obj",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="models_mesh_picking.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"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);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"])}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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).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/models/models_mesh_picking.wasm b/examples/models/models_mesh_picking.wasm new file mode 100644 index 0000000..ce07161 Binary files /dev/null and b/examples/models/models_mesh_picking.wasm differ diff --git a/examples/models/models_orthographic_projection.html b/examples/models/models_orthographic_projection.html new file mode 100644 index 0000000..7bb66e3 --- /dev/null +++ b/examples/models/models_orthographic_projection.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_orthographic_projection.js b/examples/models/models_orthographic_projection.js new file mode 100644 index 0000000..29f18ef --- /dev/null +++ b/examples/models/models_orthographic_projection.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="models_orthographic_projection.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={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_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,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_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,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_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,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_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,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_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,"Rb":_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,"Gb":_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,"vb":_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,"kb":_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,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_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/models/models_orthographic_projection.wasm b/examples/models/models_orthographic_projection.wasm new file mode 100644 index 0000000..384caa4 Binary files /dev/null and b/examples/models/models_orthographic_projection.wasm differ diff --git a/examples/models/models_rlgl_solar_system.html b/examples/models/models_rlgl_solar_system.html new file mode 100644 index 0000000..43dcb7d --- /dev/null +++ b/examples/models/models_rlgl_solar_system.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_rlgl_solar_system.js b/examples/models/models_rlgl_solar_system.js new file mode 100644 index 0000000..28b22eb --- /dev/null +++ b/examples/models/models_rlgl_solar_system.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="models_rlgl_solar_system.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();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,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"Aa":_emscripten_exit_pointerlock,"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,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_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,"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,"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,"jc":_emscripten_glGetUniformLocation,"mc":_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,"t":_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,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"lc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"vb":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Rb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"ac":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Gb":_glFrontFace,"l":_glGenBuffers,"$a":_glGenTextures,"q":_glGetAttribLocation,"Qc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"kb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Sa":_glTexImage2D,"m":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Zd":_glViewport,"w":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"x":_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,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"v":_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"]["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)};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/models/models_rlgl_solar_system.wasm b/examples/models/models_rlgl_solar_system.wasm new file mode 100644 index 0000000..fc7bbf6 Binary files /dev/null and b/examples/models/models_rlgl_solar_system.wasm differ diff --git a/examples/models/models_skybox.data b/examples/models/models_skybox.data new file mode 100644 index 0000000..c9ed18a Binary files /dev/null and b/examples/models/models_skybox.data differ diff --git a/examples/models/models_skybox.html b/examples/models/models_skybox.html new file mode 100644 index 0000000..0888343 --- /dev/null +++ b/examples/models/models_skybox.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_skybox.js b/examples/models/models_skybox.js new file mode 100644 index 0000000..b1a462a --- /dev/null +++ b/examples/models/models_skybox.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="models/models_skybox.data";var REMOTE_PACKAGE_BASE="models_skybox.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="models_skybox.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"]["xe"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Ae"];addOnInit(Module["asm"]["ye"]);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 _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}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 _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}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 _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 _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 _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 _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 _glDepthMask(flag){GLctx.depthMask(!!flag)}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 _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}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 _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 _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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"pe":GetCanvasHeight,"qe":GetCanvasWidth,"e":___assert_fail,"P":___sys_fcntl64,"Xa":___sys_getcwd,"Za":___sys_ioctl,"_a":___sys_open,"ne":_emscripten_get_element_css_size,"he":_emscripten_get_gamepad_status,"ie":_emscripten_get_num_gamepads,"Nd":_emscripten_glActiveTexture,"Md":_emscripten_glAttachShader,"be":_emscripten_glBeginQueryEXT,"Ld":_emscripten_glBindAttribLocation,"Kd":_emscripten_glBindBuffer,"Jd":_emscripten_glBindFramebuffer,"Id":_emscripten_glBindRenderbuffer,"Hd":_emscripten_glBindTexture,"Vd":_emscripten_glBindVertexArrayOES,"Gd":_emscripten_glBlendColor,"Fd":_emscripten_glBlendEquation,"Ed":_emscripten_glBlendEquationSeparate,"Dd":_emscripten_glBlendFunc,"Cd":_emscripten_glBlendFuncSeparate,"Bd":_emscripten_glBufferData,"Ad":_emscripten_glBufferSubData,"zd":_emscripten_glCheckFramebufferStatus,"yd":_emscripten_glClear,"xd":_emscripten_glClearColor,"wd":_emscripten_glClearDepthf,"vd":_emscripten_glClearStencil,"ud":_emscripten_glColorMask,"td":_emscripten_glCompileShader,"sd":_emscripten_glCompressedTexImage2D,"rd":_emscripten_glCompressedTexSubImage2D,"qd":_emscripten_glCopyTexImage2D,"pd":_emscripten_glCopyTexSubImage2D,"od":_emscripten_glCreateProgram,"nd":_emscripten_glCreateShader,"md":_emscripten_glCullFace,"ld":_emscripten_glDeleteBuffers,"kd":_emscripten_glDeleteFramebuffers,"jd":_emscripten_glDeleteProgram,"de":_emscripten_glDeleteQueriesEXT,"id":_emscripten_glDeleteRenderbuffers,"hd":_emscripten_glDeleteShader,"gd":_emscripten_glDeleteTextures,"Ud":_emscripten_glDeleteVertexArraysOES,"fd":_emscripten_glDepthFunc,"ed":_emscripten_glDepthMask,"dd":_emscripten_glDepthRangef,"cd":_emscripten_glDetachShader,"bd":_emscripten_glDisable,"ad":_emscripten_glDisableVertexAttribArray,"_c":_emscripten_glDrawArrays,"Qd":_emscripten_glDrawArraysInstancedANGLE,"Rd":_emscripten_glDrawBuffersWEBGL,"Zc":_emscripten_glDrawElements,"Pd":_emscripten_glDrawElementsInstancedANGLE,"Yc":_emscripten_glEnable,"Xc":_emscripten_glEnableVertexAttribArray,"ae":_emscripten_glEndQueryEXT,"Wc":_emscripten_glFinish,"Vc":_emscripten_glFlush,"Uc":_emscripten_glFramebufferRenderbuffer,"Tc":_emscripten_glFramebufferTexture2D,"Sc":_emscripten_glFrontFace,"Rc":_emscripten_glGenBuffers,"Pc":_emscripten_glGenFramebuffers,"ee":_emscripten_glGenQueriesEXT,"Oc":_emscripten_glGenRenderbuffers,"Nc":_emscripten_glGenTextures,"Td":_emscripten_glGenVertexArraysOES,"Qc":_emscripten_glGenerateMipmap,"Mc":_emscripten_glGetActiveAttrib,"Lc":_emscripten_glGetActiveUniform,"Kc":_emscripten_glGetAttachedShaders,"Jc":_emscripten_glGetAttribLocation,"Ic":_emscripten_glGetBooleanv,"Hc":_emscripten_glGetBufferParameteriv,"Gc":_emscripten_glGetError,"Fc":_emscripten_glGetFloatv,"Ec":_emscripten_glGetFramebufferAttachmentParameteriv,"Dc":_emscripten_glGetIntegerv,"Bc":_emscripten_glGetProgramInfoLog,"Cc":_emscripten_glGetProgramiv,"Xd":_emscripten_glGetQueryObjecti64vEXT,"Zd":_emscripten_glGetQueryObjectivEXT,"Wd":_emscripten_glGetQueryObjectui64vEXT,"Yd":_emscripten_glGetQueryObjectuivEXT,"_d":_emscripten_glGetQueryivEXT,"Ac":_emscripten_glGetRenderbufferParameteriv,"yc":_emscripten_glGetShaderInfoLog,"xc":_emscripten_glGetShaderPrecisionFormat,"vc":_emscripten_glGetShaderSource,"zc":_emscripten_glGetShaderiv,"uc":_emscripten_glGetString,"tc":_emscripten_glGetTexParameterfv,"sc":_emscripten_glGetTexParameteriv,"pc":_emscripten_glGetUniformLocation,"rc":_emscripten_glGetUniformfv,"qc":_emscripten_glGetUniformiv,"mc":_emscripten_glGetVertexAttribPointerv,"oc":_emscripten_glGetVertexAttribfv,"nc":_emscripten_glGetVertexAttribiv,"kc":_emscripten_glHint,"jc":_emscripten_glIsBuffer,"ic":_emscripten_glIsEnabled,"hc":_emscripten_glIsFramebuffer,"gc":_emscripten_glIsProgram,"ce":_emscripten_glIsQueryEXT,"fc":_emscripten_glIsRenderbuffer,"ec":_emscripten_glIsShader,"dc":_emscripten_glIsTexture,"Sd":_emscripten_glIsVertexArrayOES,"cc":_emscripten_glLineWidth,"bc":_emscripten_glLinkProgram,"$b":_emscripten_glPixelStorei,"_b":_emscripten_glPolygonOffset,"$d":_emscripten_glQueryCounterEXT,"Zb":_emscripten_glReadPixels,"Yb":_emscripten_glReleaseShaderCompiler,"Xb":_emscripten_glRenderbufferStorage,"Wb":_emscripten_glSampleCoverage,"Vb":_emscripten_glScissor,"Ub":_emscripten_glShaderBinary,"Tb":_emscripten_glShaderSource,"Sb":_emscripten_glStencilFunc,"Qb":_emscripten_glStencilFuncSeparate,"Pb":_emscripten_glStencilMask,"Ob":_emscripten_glStencilMaskSeparate,"Nb":_emscripten_glStencilOp,"Mb":_emscripten_glStencilOpSeparate,"Lb":_emscripten_glTexImage2D,"Kb":_emscripten_glTexParameterf,"Jb":_emscripten_glTexParameterfv,"Ib":_emscripten_glTexParameteri,"Hb":_emscripten_glTexParameteriv,"Fb":_emscripten_glTexSubImage2D,"Eb":_emscripten_glUniform1f,"Db":_emscripten_glUniform1fv,"Cb":_emscripten_glUniform1i,"Bb":_emscripten_glUniform1iv,"Ab":_emscripten_glUniform2f,"zb":_emscripten_glUniform2fv,"yb":_emscripten_glUniform2i,"xb":_emscripten_glUniform2iv,"wb":_emscripten_glUniform3f,"ub":_emscripten_glUniform3fv,"tb":_emscripten_glUniform3i,"sb":_emscripten_glUniform3iv,"rb":_emscripten_glUniform4f,"qb":_emscripten_glUniform4fv,"pb":_emscripten_glUniform4i,"ob":_emscripten_glUniform4iv,"nb":_emscripten_glUniformMatrix2fv,"mb":_emscripten_glUniformMatrix3fv,"lb":_emscripten_glUniformMatrix4fv,"kb":_emscripten_glUseProgram,"jb":_emscripten_glValidateProgram,"ib":_emscripten_glVertexAttrib1f,"hb":_emscripten_glVertexAttrib1fv,"gb":_emscripten_glVertexAttrib2f,"fb":_emscripten_glVertexAttrib2fv,"eb":_emscripten_glVertexAttrib3f,"db":_emscripten_glVertexAttrib3fv,"cb":_emscripten_glVertexAttrib4f,"bb":_emscripten_glVertexAttrib4fv,"Od":_emscripten_glVertexAttribDivisorANGLE,"ab":_emscripten_glVertexAttribPointer,"$a":_emscripten_glViewport,"Ta":_emscripten_memcpy_big,"pa":_emscripten_request_pointerlock,"Ua":_emscripten_resize_heap,"U":_emscripten_run_script,"je":_emscripten_sample_gamepad_data,"oe":_emscripten_set_canvas_element_size,"ma":_emscripten_set_click_callback_on_thread,"ga":_emscripten_set_gamepadconnected_callback_on_thread,"fa":_emscripten_set_gamepaddisconnected_callback_on_thread,"na":_emscripten_set_resize_callback_on_thread,"ha":_emscripten_set_touchcancel_callback_on_thread,"ja":_emscripten_set_touchend_callback_on_thread,"ia":_emscripten_set_touchmove_callback_on_thread,"ka":_emscripten_set_touchstart_callback_on_thread,"le":_emscripten_sleep,"Wa":_emscripten_thread_sleep,"fe":_exit,"Q":_fd_close,"Ya":_fd_read,"Sa":_fd_seek,"O":_fd_write,"x":_glActiveTexture,"I":_glAttachShader,"n":_glBindAttribLocation,"a":_glBindBuffer,"i":_glBindFramebuffer,"L":_glBindRenderbuffer,"c":_glBindTexture,"wc":_glBlendFunc,"l":_glBufferData,"E":_glBufferSubData,"La":_glCheckFramebufferStatus,"D":_glClear,"R":_glClearColor,"Gb":_glClearDepthf,"Ha":_glCompileShader,"Va":_glCompressedTexImage2D,"Fa":_glCreateProgram,"Ja":_glCreateShader,"ac":_glCullFace,"o":_glDeleteBuffers,"Ma":_glDeleteFramebuffers,"A":_glDeleteProgram,"Na":_glDeleteRenderbuffers,"t":_glDeleteShader,"N":_glDeleteTextures,"lc":_glDepthFunc,"S":_glDepthMask,"u":_glDetachShader,"r":_glDisable,"h":_glDisableVertexAttribArray,"F":_glDrawArrays,"T":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"z":_glFramebufferRenderbuffer,"s":_glFramebufferTexture2D,"Rb":_glFrontFace,"m":_glGenBuffers,"Oa":_glGenFramebuffers,"Ra":_glGenRenderbuffers,"C":_glGenTextures,"Ka":_glGetActiveUniform,"w":_glGetAttribLocation,"$c":_glGetFloatv,"K":_glGetFramebufferAttachmentParameteriv,"Da":_glGetProgramInfoLog,"y":_glGetProgramiv,"Ga":_glGetShaderInfoLog,"J":_glGetShaderiv,"q":_glGetString,"v":_glGetUniformLocation,"Ea":_glLinkProgram,"vb":_glPixelStorei,"Pa":_glReadPixels,"Qa":_glRenderbufferStorage,"Ia":_glShaderSource,"B":_glTexImage2D,"d":_glTexParameteri,"Ca":_glUniform1fv,"la":_glUniform1i,"ua":_glUniform1iv,"Ba":_glUniform2fv,"ya":_glUniform2iv,"Aa":_glUniform3fv,"xa":_glUniform3iv,"wa":_glUniform4f,"za":_glUniform4fv,"va":_glUniform4iv,"M":_glUniformMatrix4fv,"j":_glUseProgram,"ta":_glVertexAttrib1fv,"sa":_glVertexAttrib2fv,"ra":_glVertexAttrib3fv,"qa":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"we":_glViewport,"G":_glfwCreateWindow,"ca":_glfwDefaultWindowHints,"me":_glfwDestroyWindow,"H":_glfwGetPrimaryMonitor,"k":_glfwGetTime,"ba":_glfwGetVideoModes,"da":_glfwInit,"se":_glfwMakeContextCurrent,"X":_glfwSetCharCallback,"te":_glfwSetCursorEnterCallback,"ve":_glfwSetCursorPosCallback,"Z":_glfwSetDropCallback,"ea":_glfwSetErrorCallback,"Y":_glfwSetKeyCallback,"W":_glfwSetMouseButtonCallback,"ue":_glfwSetScrollCallback,"_":_glfwSetWindowFocusCallback,"$":_glfwSetWindowIconifyCallback,"ge":_glfwSetWindowShouldClose,"aa":_glfwSetWindowSizeCallback,"ke":_glfwSwapBuffers,"re":_glfwSwapInterval,"V":_glfwTerminate,"f":_glfwWindowHint,"oa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ye"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ze"]).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)};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/models/models_skybox.wasm b/examples/models/models_skybox.wasm new file mode 100644 index 0000000..f36665c Binary files /dev/null and b/examples/models/models_skybox.wasm differ diff --git a/examples/models/models_waving_cubes.html b/examples/models/models_waving_cubes.html new file mode 100644 index 0000000..5c5f2b9 --- /dev/null +++ b/examples/models/models_waving_cubes.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_waving_cubes.js b/examples/models/models_waving_cubes.js new file mode 100644 index 0000000..4cecf4b --- /dev/null +++ b/examples/models/models_waving_cubes.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="models_waving_cubes.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={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_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,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_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,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_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,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_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,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_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,"Rb":_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,"Gb":_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,"vb":_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,"kb":_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,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_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/models/models_waving_cubes.wasm b/examples/models/models_waving_cubes.wasm new file mode 100644 index 0000000..6afc231 Binary files /dev/null and b/examples/models/models_waving_cubes.wasm differ diff --git a/examples/models/models_yaw_pitch_roll.data b/examples/models/models_yaw_pitch_roll.data new file mode 100644 index 0000000..32334a4 Binary files /dev/null and b/examples/models/models_yaw_pitch_roll.data differ diff --git a/examples/models/models_yaw_pitch_roll.html b/examples/models/models_yaw_pitch_roll.html new file mode 100644 index 0000000..6a5d06b --- /dev/null +++ b/examples/models/models_yaw_pitch_roll.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_yaw_pitch_roll.js b/examples/models/models_yaw_pitch_roll.js new file mode 100644 index 0000000..372bcb1 --- /dev/null +++ b/examples/models/models_yaw_pitch_roll.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="models/models_yaw_pitch_roll.data";var REMOTE_PACKAGE_BASE="models_yaw_pitch_roll.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","models",true,true);Module["FS_createPath"]("/resources/models","gltf",true,true);Module["FS_createPath"]("/resources/models/gltf","plane",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="models_yaw_pitch_roll.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"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);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"])}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_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}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]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _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 _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 _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 _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 _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 _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _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 _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 _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 _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}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={"T":GetCanvasHeight,"U":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Xa":___sys_open,"R":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"fd":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Cc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"rc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"gc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Xb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Mb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Bb":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"qb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"fb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"S":_emscripten_set_canvas_element_size,"ra":_emscripten_set_click_callback_on_thread,"la":_emscripten_set_gamepadconnected_callback_on_thread,"ka":_emscripten_set_gamepaddisconnected_callback_on_thread,"sa":_emscripten_set_resize_callback_on_thread,"na":_emscripten_set_touchcancel_callback_on_thread,"pa":_emscripten_set_touchend_callback_on_thread,"oa":_emscripten_set_touchmove_callback_on_thread,"qa":_emscripten_set_touchstart_callback_on_thread,"P":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ha":_glfwDefaultWindowHints,"Q":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"ga":_glfwGetVideoModes,"ia":_glfwInit,"W":_glfwMakeContextCurrent,"$":_glfwSetCharCallback,"X":_glfwSetCursorEnterCallback,"Z":_glfwSetCursorPosCallback,"ba":_glfwSetDropCallback,"ja":_glfwSetErrorCallback,"aa":_glfwSetKeyCallback,"_":_glfwSetMouseButtonCallback,"Y":_glfwSetScrollCallback,"ca":_glfwSetWindowFocusCallback,"da":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"fa":_glfwSetWindowSizeCallback,"O":_glfwSwapBuffers,"V":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"ta":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).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/models/models_yaw_pitch_roll.wasm b/examples/models/models_yaw_pitch_roll.wasm new file mode 100644 index 0000000..336af74 Binary files /dev/null and b/examples/models/models_yaw_pitch_roll.wasm differ -- cgit v1.2.3