diff --git a/Crawler/Monster.h b/Crawler/Monster.h index 9ff83493..6f541011 100644 --- a/Crawler/Monster.h +++ b/Crawler/Monster.h @@ -124,7 +124,7 @@ public: void SetState(State newState); static void InitializeStrategies(); private: - static struct STRATEGY{ + struct STRATEGY{ static void RUN_STRATEGY(Monster&m,float fElapsedTime); static void RUN_TOWARDS(Monster&m,float fElapsedTime); diff --git a/Crawler/Version.h b/Crawler/Version.h index 9d5513e5..33c95be1 100644 --- a/Crawler/Version.h +++ b/Crawler/Version.h @@ -2,7 +2,7 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 2 #define VERSION_PATCH 0 -#define VERSION_BUILD 988 +#define VERSION_BUILD 992 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Crawler/emscripten_build.ps1 b/Crawler/emscripten_build.ps1 index fa08d3b2..0f73463c 100644 --- a/Crawler/emscripten_build.ps1 +++ b/Crawler/emscripten_build.ps1 @@ -1,2 +1,2 @@ ~\Documents\emsdk\emsdk_env.ps1 activate latest -em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 $(Get-ChildItem *.cpp) -o pge.html --preload-file assets \ No newline at end of file +em++ -std=c++20 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 $(Get-ChildItem *.cpp) -o pge.html --preload-file assets \ No newline at end of file diff --git a/Crawler/pge.data b/Crawler/pge.data index f5983f59..f008ecd3 100644 --- a/Crawler/pge.data +++ b/Crawler/pge.data @@ -4766,6 +4766,995 @@ + + + + + + +680,680,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +680,680,680,678,678,678,678,678,678,678,678,678,678,678,678,678, +680,680,680,680,678,678,678,678,678,678,678,678,678,678,678,678, +680,680,680,680,680,680,678,678,678,678,678,678,678,678,678,678, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,678, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,678,680, +678,678,678,678,678,678,678,678,678,678,678,678,678,678,680,680, +678,678,678,678,678,678,678,678,678,678,678,678,678,680,680,680, +680,680,680,680,680,680,678,678,678,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680, +680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680 + + + + + + +1096,1097,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1148,1149,1097,0,3494,0,0,0,0,0,0,0,0,0,0,3357, +1200,1200,1149,1097,0,0,0,0,0,3494,0,0,0,0,0,0, +1252,1200,1200,1149,1150,1097,0,0,0,0,0,0,0,0,0,0, +3447,1252,1200,1200,1253,1149,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150, +0,0,1252,1200,1201,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202, +0,0,0,1252,1253,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254, +0,0,3661,1304,1305,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306, +3402,0,0,0,0,0,3358,0,0,0,0,0,0,0,0,0, +0,0,3751,0,0,0,0,0,0,3357,0,0,0,0,3706,0, +0,0,3751,3448,0,0,0,0,0,0,0,3403,0,0,0,0, +0,0,0,3357,0,0,0,0,0,0,0,0,0,3751,0,0, +3661,0,0,0,0,0,0,3403,0,0,0,0,0,0,0,0, +0,0,0,0,3358,0,0,0,0,0,0,3402,0,0,0,3447, +0,0,3358,0,0,0,0,0,0,0,0,0,0,3488,3489,3231, +0,0,3536,3537,3357,0,0,3448,3579,3287,3288,3577,3578,3533,3534,3276 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3402,0,0,0,0,0,0,3402,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150, +1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202, +1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254, +1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306, +0,0,0,3751,0,0,3448,0,0,3706,0,0,0,0,3706,0, +0,0,0,0,0,0,0,0,0,0,0,3402,0,0,0,0, +0,3357,0,0,3357,0,0,3357,0,0,0,3448,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3402,0,0, +0,0,0,0,0,0,0,3751,0,0,3751,0,0,0,0,0, +0,0,3796,3377,3378,3379,3402,0,3538,3539,0,3536,3537,0,3577,3578, +3232,3374,3375,3422,3423,3424,3231,3232,3583,3584,3579,3581,3582,3237,3238,0, +3277,3419,3420,3467,3468,3469,3276,3277,3628,3629,3448,3626,3627,3282,3283,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3493,0,0,0,0,0,0,3492,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3447,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150, +1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202, +1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254, +1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306, +0,0,0,0,0,0,0,0,0,3402,0,0,0,3796,0,0, +0,3706,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3751,0,0,0,0,0,0,3706,0,0,0, +0,3358,0,0,0,0,0,0,3661,0,0,0,0,0,3402,0, +0,0,0,0,0,3447,0,0,0,3347,3348,3349,3342,3343,3344,3345, +0,0,3706,0,0,3353,3354,3355,3356,3392,3393,3394,3387,3388,3389,3390, +3488,3489,0,3237,3238,3398,3399,3400,3401,3231,3232,0,3432,3433,3434,3435, +3533,3534,3579,3282,3283,3443,3444,3445,3446,3276,3277,0,3477,3478,3479,3480 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3493,0,0,0,0,0,0,0,0,0,0,1099, +0,0,0,0,0,0,0,0,0,0,0,3493,0,0,1099,1151, +0,0,0,0,0,0,0,0,0,0,0,0,0,1099,1100,1152, +1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1151,1152,1203, +1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1203,1255,1256, +1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1255,1307,0, +1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,1307,0,3751, +0,0,0,3796,0,0,0,0,3403,0,0,0,0,0,0,3706, +0,0,0,3357,0,0,3447,0,0,0,0,0,3447,0,0,0, +0,0,0,0,0,0,0,0,0,0,3661,0,0,0,3448,0, +0,3403,0,0,0,3358,0,3402,0,0,0,0,3447,0,0,0, +3346,0,0,3337,3338,3339,3340,3341,0,0,3447,0,0,0,3796,0, +3391,0,0,3382,3383,3384,3385,3386,3231,3232,3706,0,0,0,0,3796, +3436,3231,3232,3427,3428,3429,3430,3431,3276,3277,0,3358,0,3402,0,0, +3481,3276,3277,3472,3473,3474,3475,3476,3488,3489,0,0,0,0,0,0 + + +0,3661,3581,3582,0,0,3353,3354,3355,3579,0,0,0,0,0,0, +0,0,3626,3627,0,0,3398,3399,3400,3401,0,0,0,0,0,0, +0,0,0,0,3357,0,3443,3444,3445,3446,0,0,0,3492,0,0, +0,3706,0,0,0,3342,3343,3344,3494,3579,0,0,0,0,0,0, +0,0,0,0,0,3387,3388,3389,3390,3391,0,0,0,0,0,0, +0,0,0,0,0,3432,3433,3434,3435,3436,0,0,0,0,0,0, +0,0,3536,3537,0,3477,3478,3479,3480,3481,0,0,0,0,3447,0, +0,3402,3581,3582,3536,3537,0,0,3351,3352,0,0,0,0,0,0, +0,0,3626,3627,3581,3582,0,0,3396,3397,0,0,0,0,0,0, +0,0,0,3402,3626,3627,0,3377,3378,3379,0,0,0,0,0,0, +0,0,0,0,0,0,0,3422,3423,3424,0,0,0,0,0,0, +0,3448,0,0,0,0,0,3467,3468,3469,0,0,0,0,0,0, +0,0,0,0,3706,0,0,3512,3513,3514,0,0,0,0,0,0, +0,0,0,0,0,0,0,3557,3558,3559,0,0,0,0,0,0, +0,3402,0,0,0,0,3661,0,3231,3232,0,0,0,0,0,0, +0,3706,3796,0,3447,0,0,0,3276,3277,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3491,0,0,0,0,0,3494,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3492, +0,0,0,0,0,0,0,0,3447,0,0,0,0,0,0,0, +3402,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3447, +0,0,3491,0,0,0,0,0,0,0,3357,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3493,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3494,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3447,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3493,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3402,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3494,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3493,0,0,0,0,0,0,0,3357, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,3533,3534,0,0,3447,3358,0,3447, +0,0,0,0,0,0,0,0,3577,3578,3579,0,0,0,0,0, +0,0,0,3494,0,0,0,0,3347,3348,3349,0,0,0,0,0, +0,0,0,0,0,0,0,0,3392,3393,3394,3796,0,0,3357,0, +0,0,0,0,0,0,0,0,3353,3354,3355,3356,0,0,0,0, +0,0,0,0,0,0,0,0,3398,3399,3400,3401,3661,0,0,0, +0,0,0,0,0,0,0,0,3443,3444,3445,3446,0,0,0,3403, +0,0,0,0,0,0,0,0,3512,3513,3514,3403,0,0,0,0, +0,0,0,0,0,3492,0,0,3557,3558,3559,0,0,3447,0,0, +0,0,0,0,0,0,0,0,3351,3352,3402,0,0,0,0,0, +3357,0,0,0,0,0,0,0,3396,3397,0,3796,0,0,0,3357, +0,0,0,0,0,0,0,0,3347,3348,3349,0,0,0,0,0, +0,0,0,0,0,0,0,0,3392,3393,3394,0,3447,0,0,0, +0,0,0,0,0,3492,0,0,3353,3354,3355,3356,0,0,3403,0, +0,0,0,0,0,0,0,0,3398,3399,3400,3401,0,0,0,0, +0,0,0,0,0,0,0,0,3443,3444,3445,3446,3706,0,3357,0 + + +0,0,0,0,0,0,3353,3354,3355,3579,0,0,0,0,0,0, +0,0,0,0,0,0,3398,3399,3400,3401,0,0,0,0,0,0, +0,0,3358,0,3357,0,3443,3444,3445,3446,0,0,0,0,0,0, +3536,3537,0,0,0,0,0,3448,3372,3373,0,0,0,0,0,0, +3581,3582,0,0,0,0,3358,0,3417,3418,0,0,0,0,0,0, +3626,3627,0,0,0,0,0,3512,3513,3514,0,0,0,0,3492,0, +0,3661,3661,3796,0,0,3402,3557,3558,3559,0,0,0,0,0,0, +0,0,0,0,0,3342,3343,3344,3491,3579,0,0,0,0,0,0, +0,0,0,0,0,3387,3388,3389,3390,3391,0,0,0,0,0,0, +3538,3539,0,0,3796,3432,3433,3434,3435,3436,0,0,0,0,0,0, +3583,3584,0,0,0,3477,3478,3479,3480,3481,0,0,0,0,0,3493, +3628,3629,3661,0,0,3402,0,0,3465,3466,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3510,3511,0,0,0,0,0,0, +3751,0,0,3796,0,0,3447,0,3555,3556,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3231,3232,0,0,0,0,0,0, +0,0,0,0,3751,0,0,3403,3276,3277,0,0,0,0,0,0 + + +0,3357,0,0,0,0,0,0,3492,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3491,0,0,0,0,0,0,0,3492,0,0,0,0, +0,0,0,0,0,3357,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3493,0,0,0,0,0,0,3494,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,3491,0,0,0,0, +0,3447,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +3357,0,0,0,0,0,0,0,3494,0,0,0,3491,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3492, +0,0,3493,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3494,0,0,0, +0,0,0,3491,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3492,0,0,0,0,0,0,3492,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3493,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,3237,3238,3579,0,0,0,0,0, +0,0,0,3494,0,0,0,0,3282,3283,3337,3338,3339,3340,3706,0, +0,0,0,0,0,0,0,0,3372,3373,3382,3383,3384,3385,3386,0, +0,0,0,0,0,0,0,0,3417,3418,3427,3428,3429,3430,3431,3796, +0,0,0,0,0,0,0,0,3351,3352,3472,3473,3474,3475,3476,0, +0,0,0,0,0,0,0,0,3396,3397,3536,3537,0,0,0,0, +0,0,0,0,0,0,0,0,3488,3489,3581,3582,3448,0,0,0, +0,0,0,0,0,0,0,0,3533,3534,3626,3627,0,0,0,3357, +0,0,0,0,0,0,0,0,3342,3343,3344,3345,3449,3450,0,0, +0,0,3402,0,0,0,0,0,3387,3388,3389,3390,3391,0,0,0, +0,0,0,0,0,0,0,0,3432,3433,3434,3435,3436,0,0,0, +0,0,0,0,0,0,0,0,3477,3478,3479,3480,3481,0,3447,0, +0,0,0,0,0,0,0,0,3231,3232,3579,0,3448,0,0,3751, +0,3494,0,0,0,0,0,0,3276,3277,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3342,3343,3344,3796,3346,3796,0,0, +0,0,0,0,0,0,0,0,3387,3388,3389,3390,3391,0,0,3796 + + +0,3403,0,0,0,0,0,3462,3463,3464,0,0,0,0,0,0, +3538,3539,3796,0,0,0,0,3507,3508,3509,0,0,0,0,0,0, +3583,3584,0,0,0,0,3402,3552,3553,3554,0,0,0,0,0,0, +3628,3629,0,0,0,0,0,3347,3348,3349,0,0,0,0,0,0, +3448,0,0,0,3402,0,0,3392,3393,3394,0,0,0,0,0,0, +0,3402,0,0,0,0,3353,3354,3355,3579,0,0,0,0,0,3492, +0,0,0,0,0,0,3398,3399,3400,3401,0,0,0,0,0,0, +0,0,0,3448,0,0,3706,3444,3445,3446,0,0,0,0,0,0, +0,3402,0,0,0,0,0,0,3237,3238,0,0,0,0,0,0, +0,0,0,0,0,0,0,3357,3282,3283,0,0,0,0,0,0, +3796,0,0,3448,0,0,0,3414,3415,3416,0,0,0,0,3447,0, +0,0,0,0,0,0,3706,3459,3460,3461,0,0,0,0,0,0, +0,0,0,0,3448,0,0,3504,3505,3506,0,0,0,0,0,0, +0,3402,0,0,0,0,0,3549,3550,3551,0,0,0,0,0,0, +0,0,0,0,3661,0,0,3357,3256,3257,0,0,0,0,0,3402, +0,0,0,3661,0,0,0,0,3301,3302,0,0,0,0,0,0 + + +0,0,0,0,3491,0,0,0,0,0,0,0,0,0,0,0, +3493,0,0,0,0,0,0,0,0,0,3494,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3493,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3491,0,0,0,0,0,0,3402, +0,0,0,0,0,3447,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,3493,0,0,0,0,0, +0,0,0,0,3357,3491,0,0,0,0,0,0,0,0,0,3491, +0,0,0,0,0,0,0,0,0,0,0,3492,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3492,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,3402,0 + + +0,0,3402,0,0,0,0,0,0,0,0,0,0,0,3493,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3357,3447,0,0,0,0,3357, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,3492,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,3402,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,3357,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3447,0,0,0,0,0,0,0,0,0,0,0,0,0,3493, +0,0,0,0,0,0,3494,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,3432,3433,3434,3435,3436,3748,3749,0, +0,0,0,0,0,3357,0,0,3477,3478,3479,3480,3481,3793,3794,0, +0,0,0,0,0,0,0,0,3488,3489,0,3447,0,0,3796,0, +0,0,0,0,0,0,0,0,3533,3534,3448,0,3125,0,0,0, +0,0,0,0,0,0,0,0,3512,3513,3514,0,3170,3171,0,3751, +0,0,0,0,0,0,0,0,3557,3558,3559,0,3215,3216,3748,3749, +0,0,0,0,0,0,0,0,3237,3238,3748,3749,3260,3261,3793,3794, +0,0,3357,0,0,0,0,0,3282,3283,3793,3794,3305,3306,0,3796, +0,0,0,0,0,0,0,0,3488,3489,0,3342,3343,3344,3345,3346, +0,0,0,0,0,0,0,0,3533,3534,3579,3387,3388,3389,3390,3391, +0,0,0,0,0,0,0,0,3414,3415,3416,3432,3433,3434,3435,3436, +0,0,0,0,3447,0,0,0,3459,3460,3461,3477,3478,3479,3480,3481, +0,0,0,0,0,0,0,0,3504,3505,3506,3441,3442,3403,0,0, +0,0,0,0,0,0,0,0,3549,3550,3551,3486,3487,0,0,0, +0,0,0,0,0,0,0,0,3347,3348,3349,3531,3532,3751,0,0, +0,0,0,0,0,0,0,0,3392,3393,3394,0,0,0,3358,0 + + +0,0,0,0,0,0,0,3402,3488,3489,0,0,0,0,0,0, +3706,0,3358,0,0,3358,0,0,3533,3534,0,0,0,0,0,0, +0,0,0,0,0,0,0,3342,3343,3344,3403,3579,3347,3348,3349,3351, +0,0,0,3536,3537,0,0,3387,3388,3389,3390,3391,3392,3393,3394,3396, +3661,0,0,3581,3582,0,0,3432,3433,3434,3435,3436,3351,3352,3796,0, +0,0,3358,3626,3627,0,3357,3477,3478,3479,3480,3481,3396,3397,0,0, +0,0,0,0,0,0,0,0,3358,0,0,3403,0,3448,0,0, +0,0,0,0,3448,3447,0,0,0,0,3358,0,0,0,0,0, +3448,0,0,0,0,3402,0,0,0,0,0,0,0,0,0,0, +0,0,0,3357,0,0,0,0,0,3751,0,0,0,3358,0,0, +0,3661,0,0,0,0,0,0,3358,0,0,0,0,0,0,0, +0,0,0,0,3357,0,0,0,0,0,0,0,3403,0,3448,0, +0,3357,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3357,0,0,0,3447,0,0,0,3796,0,3796,0,0,0, +3357,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3661,0,0,0,0,0,0,0,0,3448,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3352,3372,3373,3376,3377,3378,3379,3231,3232,0,0,0,3536,3537,3337,3338, +3397,3417,3418,3421,3422,3423,3424,3276,3277,3579,3488,3489,3581,3582,3382,3383, +0,3447,0,3448,3467,3468,3469,0,3706,3620,3533,3534,3626,3627,3427,3428, +3447,0,0,0,0,3447,0,0,0,0,0,0,3796,0,3472,3473, +0,0,0,0,0,0,0,3661,0,0,0,0,0,0,3358,0, +3796,0,0,3661,3403,0,0,3403,0,0,0,3448,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3706,0,0,3751, +0,0,0,0,3403,0,0,3661,0,0,0,0,0,0,0,0, +3403,0,0,0,0,0,0,0,0,0,0,3357,0,0,0,0, +0,0,0,0,3358,0,0,0,0,3661,0,0,0,0,3796,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3403,0,0,0,0,0,3402,0,0,0,0,0,0, +3706,0,0,0,0,3448,0,0,3402,0,0,0,3706,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3339,3340,3341,3512,3513,3514,3577,3578,3488,3489,3351,3352,3353,3354,3355,3356, +3384,3385,3386,3557,3558,3559,3448,3358,3533,3534,3396,3397,3398,3399,3400,3401, +3429,3430,3431,3579,0,0,0,3402,0,0,0,3448,3443,3444,3445,3446, +3474,3475,3476,3796,0,0,0,0,0,0,0,0,0,0,3796,0, +0,0,0,0,0,0,0,0,0,3796,0,0,0,0,0,0, +0,3448,0,0,0,3447,0,0,0,0,0,0,0,0,3751,0, +0,0,0,0,0,0,0,0,0,3751,0,0,3661,0,0,0, +0,0,0,0,0,3357,0,0,0,0,0,0,0,0,0,0, +3661,3447,0,0,0,0,0,3403,0,0,0,0,0,0,0,0, +0,0,0,3751,0,0,0,0,0,0,0,0,0,3706,0,0, +0,0,0,0,0,0,0,0,3447,0,3796,0,0,0,0,0, +0,0,0,0,3661,0,0,0,0,0,0,0,0,3796,0,0, +3447,0,0,0,0,0,0,0,0,0,0,3796,0,0,0,0, +0,0,0,3751,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,3488,3489,0,0,0,0,0,0, +3536,3537,0,0,0,0,0,0,3533,3534,0,0,3661,0,0,0, +3581,3582,3372,3373,3231,3232,3353,3354,3355,3356,0,0,0,0,0,0, +3626,3627,3417,3418,3276,3277,3398,3399,3400,3401,0,0,0,3357,3796,0, +0,0,3403,0,0,0,3443,3444,3445,3446,0,0,0,0,0,0, +0,0,0,0,3706,0,0,3751,0,0,0,3358,0,0,0,0, +0,0,0,0,0,0,3447,0,0,0,0,0,3358,0,0,0, +3661,0,0,0,0,0,0,0,0,0,3403,0,0,3661,0,0, +0,0,0,3661,0,0,0,0,0,3403,0,0,0,0,3402,0, +3706,0,0,0,0,3661,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3402,0,3751,0, +0,0,0,3402,0,0,3661,0,0,0,0,0,0,0,0,0, +0,3358,0,0,0,0,0,3448,0,0,0,3661,0,0,0,3402, +0,0,0,3402,0,0,0,0,0,0,0,0,0,0,0,0, +3447,0,0,0,0,0,0,0,0,0,0,0,3402,3661,0,0, +0,0,0,0,0,3447,0,3358,0,0,0,0,0,0,0,0 + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3746,3747,0,0,0,3698,3699,0,0,0, +0,0,0,0,0,0,3791,3792,0,0,0,3743,3744,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,3788,3789,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,3004,3005,3006, +0,0,0,0,0,0,0,0,3061,3062,3063,3064,3065,3049,3050,3051, +0,0,0,0,0,0,0,0,3106,3107,3108,3109,3110,3094,3095,3096, +0,0,0,0,0,0,0,0,3151,3152,3153,3154,3155,3139,3140,3141, +0,0,0,0,0,0,0,0,3196,3197,3198,3199,3200,3184,3185,3186, +0,0,0,0,0,0,0,0,3241,3242,3243,3244,3245,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,3526,3527,0,0,0, +0,3745,0,0,0,0,0,0,0,0,0,3571,3572,0,0,3520, +0,3790,0,0,0,0,0,0,0,0,0,3616,3617,0,0,3565, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3610, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3007,3008,3009,0,3004,3005,3006,3007,3008,3009,0,0,3011,3012,3013,3014, +3052,3053,3054,0,3049,3050,3051,3052,3053,3054,0,0,3056,3057,3058,3059, +3097,3098,3099,0,3094,3095,3096,3097,3098,3099,0,0,3101,3102,3103,3104, +3142,3143,3144,0,3139,3140,3141,3142,3143,3144,0,0,3146,3147,3148,3149, +3187,3188,3189,0,3184,3185,3186,3187,3188,3189,0,0,3191,3192,3193,3194, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,3524,3525,0,0, +0,0,3745,0,0,0,0,0,0,0,0,0,3569,3570,0,3698, +0,0,3790,0,0,0,0,0,0,0,0,0,3614,3615,0,3743, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3788, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3015,0,3011,3012,3013,3014,3015,3004,3005,3006,3007,3008,3009,0,0,3004, +3060,0,3056,3057,3058,3059,3060,3049,3050,3051,3052,3053,3054,0,0,3049, +3105,0,3101,3102,3103,3104,3105,3094,3095,3096,3097,3098,3099,0,0,3094, +3150,0,3146,3147,3148,3149,3150,3139,3140,3141,3142,3143,3144,0,0,3139, +3195,0,3191,3192,3193,3194,3195,3184,3185,3186,3187,3188,3189,0,0,3184, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3528,3529,0,0,0,0,3524,3525,0,0,0, +3699,0,0,0,0,3573,3574,0,0,0,3745,3569,3570,0,0,0, +3744,0,0,0,0,3618,3619,0,0,0,3790,3614,3615,0,0,0, +3789,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3004,3005,3006,3007,3008,3009,0,0,0,0, +3005,3006,3007,3008,3009,0,3049,3050,3051,3052,3053,3054,0,0,0,0, +3050,3051,3052,3053,3054,0,3094,3095,3096,3097,3098,3099,0,0,0,0, +3095,3096,3097,3098,3099,0,3139,3140,3141,3142,3143,3144,0,0,0,0, +3140,3141,3142,3143,3144,0,3184,3185,3186,3187,3188,3189,0,0,0,0, +3185,3186,3187,3188,3189,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3004,3005,3006,3007,3008,3009,0,0,0,0, +0,0,0,0,0,0,3049,3050,3051,3052,3053,3054,0,0,0,0, +0,0,0,0,0,0,3094,3095,3096,3097,3098,3099,0,0,0,0, +0,0,0,0,0,0,3139,3140,3141,3142,3143,3144,0,0,0,0, +0,0,0,0,0,0,3184,3185,3186,3187,3188,3189,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3011,3012,3013,3014,3015,0,0,0,0, +0,0,0,0,0,0,0,3056,3057,3058,3059,3060,0,0,0,0, +0,0,0,0,0,0,0,3101,3102,3103,3104,3105,0,0,0,0, +0,0,0,0,0,0,0,3146,3147,3148,3149,3150,0,0,0,0, +0,0,0,0,0,0,0,3191,3192,3193,3194,3195,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3004,3005,3006,3007,3008,3009,0,0,0,0, +0,0,0,0,0,0,3049,3050,3051,3052,3053,3054,0,0,0,0, +0,0,0,0,0,0,3094,3095,3096,3097,3098,3099,0,0,0,0, +0,0,0,0,0,0,3139,3140,3141,3142,3143,3144,0,0,0,0, +0,0,0,0,0,0,3184,3185,3186,3187,3188,3189,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3004,3005,3006,3007,3008,3009,0,0,0,0, +0,0,0,0,0,0,3049,3050,3051,3052,3053,3054,0,0,0,0, +0,0,0,0,0,0,3094,3095,3096,3097,3098,3099,0,0,0,0, +0,0,0,0,0,0,3139,3140,3141,3142,3143,3144,0,0,0,0, +0,0,0,0,0,0,3184,3185,3186,3187,3188,3189,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3011,3012,3013,3014,3015,0,0,0,0, +0,0,0,0,0,0,0,3056,3057,3058,3059,3060,0,0,0,0, +0,0,0,0,0,0,0,3101,3102,3103,3104,3105,0,0,0,0, +0,0,0,0,0,0,0,3146,3147,3148,3149,3150,0,0,0,0, +0,0,0,0,0,0,0,3191,3192,3193,3194,3195,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3031,3032,3033,0,0,0,0,0, +0,0,0,0,0,0,0,0,3076,3077,3078,0,0,0,0,0, +0,0,0,0,0,0,0,0,3121,3122,3123,0,0,0,0,0, +0,0,0,0,0,0,0,0,3166,3167,3168,0,0,0,0,0, +0,0,0,0,0,0,0,0,3211,3212,3213,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3004,3005,3006,3007,3008,3009,0,0,0,0,0, +0,0,0,0,0,3049,3050,3051,3052,3053,3054,0,0,0,0,0, +0,0,0,0,0,3094,3095,3096,3097,3098,3099,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3011,3012,3013,3014,3015,0,0,0,0, +0,0,0,0,0,0,0,3056,3057,3058,3059,3060,0,0,0,0, +0,0,0,0,0,0,0,3101,3102,3103,3104,3105,0,0,0,0, +0,0,0,0,0,0,0,3146,3147,3148,3149,3150,0,0,0,0, +0,0,0,0,0,0,0,3191,3192,3193,3194,3195,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3004,3005,3006,3007,3008,3009,0,0,0,0,0,0,0,0, +0,0,3049,3050,3051,3052,3053,3054,0,0,0,0,0,0,0,0, +0,0,3094,3095,3096,3097,3098,3099,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,3579,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,0,0,0,3139,3140,3141,3142,3143,3144,0,0,0,0,0, +0,0,0,0,0,3184,3185,3186,3187,3188,3189,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,3661,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +0,0,3139,3140,3141,3142,3143,3144,0,0,0,0,0,0,0,0, +0,0,3184,3185,3186,3187,3188,3189,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + + @@ -7933,10 +8922,226 @@ R  IHDRV(iCCPICC profile(}=H@_S";qP,8J`Zu0 4$).kŪ "%/)=BTkP5Hcb6*^у0DDbH/f9]gys+y>xEAj88Ɗ=rrض bKGDQb pHYs  tIME28IDATc````d6$qIENDB`Ranger +) }kno}>j88Ɗ=rrض bKGDQb pHYs  tIME28IDATc````d6$qIENDB`# Monster Strategies have optional parameters that you can adjust to +# tweak the AI behaviors. Each strategy is displayed followed by {}. +# Inside the {} is a list of the properties and what their default values +# are. +# +# If you add the optional parameters inside a Monster, they will be adopted +# for that specific AI pattern. +# +# For example, if you wanted to add a longer wait time to a mob's RUN_TOWARDS +# strategy, you would write this: +# +# ========================================== +# ========================================== +# +# 0 +# { +# Name = Green Slime +# Health = 10 +# Attack = 5 +# +# CollisionDmg = 5 +# +# MoveSpd = 110 +# Size = 80 +# +# Strategy = Run Towards +# WaitTime = 5 +# +# [....Cut for length purposes] +# +# ========================================== +# ========================================== +# ========================================== +# +# The document below shows that WaitTime is 2 by default, but this will make the +# mob adopt a 5 second wait time. +MonsterStrategy +{ + 0 + { + Name = Run Towards + # How long to wait before attempting to path again. + WaitTime = 2 + # How far the monster will travel before reassessing for a new path. + MaxDistance = 999999 + } + 1 + { + Name = Shoot Afar + # How far away the monster attempts to distance itself from the player + Range = 800 + # How often the enemy shoots. + ShootingSpeed = 1 + BulletSpeed = 100 + BulletSize = 100 + BulletColor = 0, 0, 255, 255 + } + 2 + { + Name = Turret + # How far away the monster starts shooting from + Range = 800 + # How often the enemy shoots. + ShootingSpeed = 1 + BulletSpeed = 100 + BulletSize = 100 + BulletColor = 0, 0, 255, 255 + } +}Monsters +{ + 0 + { + DisplayName = Green Slime + Health = 10 + Attack = 5 + + CollisionDmg = 5 + + MoveSpd = 110 + Size = 80 + + Strategy = Run Towards + + #Size of each animation frame + SheetFrameSize = 24,24 + + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + IdleAnimation = 10, 0.1, Repeat + JumpAnimation = 10, 0.06, Repeat + ShootAnimation = 10, 0.1, OneShot + DeathAnimation = 10, 0.1, OneShot + + #Additional custom animations go down below. Start with ANIMATION[0] + #ANIMATION[0] = MY_NEW_ANIMATION + } + 1 + { + DisplayName = Blue Slime + Health = 30 + Attack = 10 + + CollisionDmg = 0 + + MoveSpd = 80 + Size = 100 + + Strategy = Shoot Afar + + #Size of each animation frame + SheetFrameSize = 24,24 + + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + IdleAnimation = 10, 0.1, Repeat + JumpAnimation = 10, 0.06, Repeat + ShootAnimation = 10, 0.1, OneShot + DeathAnimation = 10, 0.1, OneShot + + #Additional custom animations go down below. Start with ANIMATION[0] + #ANIMATION[0] = MY_NEW_ANIMATION + } + 2 + { + DisplayName = Red Slime + Health = 25 + Attack = 10 + + CollisionDmg = 10 + + MoveSpd = 95 + Size = 120 + + Strategy = Run Towards + + #Size of each animation frame + SheetFrameSize = 24,24 + + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + IdleAnimation = 10, 0.1, Repeat + JumpAnimation = 10, 0.06, Repeat + ShootAnimation = 10, 0.1, OneShot + DeathAnimation = 10, 0.1, OneShot + + #Additional custom animations go down below. Start with ANIMATION[0] + #ANIMATION[0] = MY_NEW_ANIMATION + } + 3 + { + DisplayName = Yellow Slime + Health = 175 + Attack = 10 + + CollisionDmg = 15 + + MoveSpd = 40 + Size = 160 + + Strategy = Run Towards + + #Size of each animation frame + SheetFrameSize = 24,24 + + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + IdleAnimation = 10, 0.1, Repeat + JumpAnimation = 10, 0.06, Repeat + ShootAnimation = 10, 0.1, OneShot + DeathAnimation = 10, 0.1, OneShot + + #Additional custom animations go down below. Start with ANIMATION[0] + #ANIMATION[0] = MY_NEW_ANIMATION + } + 4 + { + DisplayName = Flower Turret + Health = 40 + Attack = 10 + + CollisionDmg = 0 + + MoveSpd = 0 + Size = 100 + + Strategy = Turret + + #Size of each animation frame + SheetFrameSize = 24,24 + + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + IdleAnimation = 7, 0.1, PingPong + JumpAnimation = 1, 0.1, OneShot + ShootAnimation = 5, 0.1, OneShot + DeathAnimation = 5, 0.2, OneShot + + #Additional custom animations go down below. Start with ANIMATION[0] + #ANIMATION[0] = MY_NEW_ANIMATION + } +}Player +{ + BaseHealth = 100 + BaseMana = 100 + MoveSpd = 100 + + BaseAtk = 10 + + # Amount of spd to increase/decrease vertically as you climb staircases + StaircaseClimbSpd = 60 + + # How much speed the player loses while no momentum is being added. + Friction = 400 +}Ranger { ClassName = Ranger + Auto Attack + { + DamageMult = 1 + Radius = 100 + Cooldown = 0.6 + + ArrowSpd = 250 + } Right Click Ability { Name = Retreat @@ -7950,6 +9155,11 @@ R Precast Time = 0 Casting Range = 0 Casting Size = 0 + + # How long the retreat takes. + RetreatTime = 0.2 + # The distance the retreat moves the Ranger. + RetreatDistance = 250 } Ability 1 { @@ -7964,6 +9174,20 @@ R Precast Time = 0 Casting Range = 0 Casting Size = 0 + + # Damage multiplier per shot + DamageMult = 1.0 + # Speed of arrows that Rapid Fire shoots out. + ArrowSpd = 300 + # Number of arrows Rapid Fire shoots out. + ArrowCount = 4 + # Amount of time between each arrow shot. + ArrowDelay = 0.1 + # Whether or not this ability locks you in place. (0=Not Locked) + IsAnimationLocked = 1 + + # Hitbox radius of the arrows + ArrowRadius = 100 } Ability 2 { @@ -7978,6 +9202,18 @@ R Precast Time = 0.3 Casting Range = 0 Casting Size = 0 + + # The amount of knockback that this ability causes. + Knockback = 200 + # Speed of the charged arrow shot. + Speed = 600 + # Radius of the shot. + Radius = 166.6667 + # Damage Multiplier of the charged shot. + DamageMult = 2.5 + + # How long the world shakes upon using this ability. + WorldShakeTime = 0.3 } Ability 3 { @@ -7992,6 +9228,19 @@ R Precast Time = 0 Casting Range = 0 Casting Size = 0 + + # Damage multiplier per shot + DamageMult = 1.0 + # Number of arrows in the shot spread. + ArrowCount = 6 + # How far the shot spread in one angle is. For example, if the value here is set to 18.375, then Multi shot divides the arrows evenly from a span of -18.375 degrees to the left to 18.375 degrees to the right of the player. + MultiShotSpread = 18.375 + # Speed of arrows that Rapid Fire shoots out. + ArrowSpd = 300 + + # Hitbox radius of the arrows + ArrowRadius = 100 + } }Thief { @@ -8122,11 +9371,13 @@ R DamageMult = 1 Range = 150 Cooldown = 0.35 + + SwordSwingTime = 0.2 } Right Click Ability { Name = Block - Cooldown = 15 + Cooldown = 1 Mana Cost = 0 #RGB Values. Color 1 is the left side of the bar, Color 2 is the right side. @@ -8174,8 +9425,7 @@ R DamageReduction = 0.1 # The smallest and largest size of enemies this ability affects (inclusive). - AffectedSizeMin = 0 - AffectedSizeMax = 1 + AffectedSizeRange = 0,1 # How long the applied slow debuff lasts in seconds. SlowdownDuration = 5 @@ -8314,6 +9564,19 @@ R Radius = 100 Speed = 200 Cooldown = 0.85 + + # When bullet makes contact, how fast the bullet will fade out. + BulletHitFadeoutTime = 0.2 + + # How much time passes before another particle spawns from the bullet. + ParticleFrequency = 0.03 + # Specify a minimum and maximum range + ParticleLifetimeRange = 0,1 + ParticleSizeRange = 0,2 + ParticleFadeoutTime = 0.5 + ParticleSpeedRange = -30,30 + + SplashEffectFadeoutTime = 0.25 } Right Click Ability @@ -8365,6 +9628,54 @@ R Precast Time = 0 Casting Range = 0 Casting Size = 0 + + # Damage multiplier of the initial hit. + InitialDamageMult = 1 + + BulletSpeed = 275 + Radius = 100 + + #Coloring of the bullet. + BulletColor = 240, 120, 60, 255 + + # When bullet makes contact, how fast the bullet will fade out. + BulletHitFadeoutTime = 0.2 + + WorldShakeTime = 0.25 + + BulletHitExplosionRange = 250 + # How much damage the explosion hit does to targets in range. + BulletHitExplosionDamageMult = 3 + + BulletHitExplosionFadeoutTime = 0.25 + + BulletHitExplosionColor = 240, 120, 60, 255 + + # The number of particles that spawn when a fire bolt explodes on contact. + BulletHitExplosionParticleCount = 72 + BulletHitExplosionParticleLifetimeRange = 0,0.5 + BulletHitExplosionParticleSizeRange = 0,2 + BulletHitExplosionParticleFadeoutTimeRange = 0,0.4 + BulletHitExplosionParticleSpeedRange = -150,150 + # Specific color randomization ranges for the explosion particles. + BulletHitExplosionParticleRedRange = 255,255 + BulletHitExplosionParticleGreenRange = 60,250 + BulletHitExplosionParticleBlueRange = 60,60 + BulletHitExplosionParticleAlphaRange = 255,255 + + # How much time passes before another particle spawns from the bullet. + ParticleFrequency = 0.03 + # Specify a minimum and maximum range + ParticleLifetimeRange = 0,1 + ParticleSizeRange = 0,2 + ParticleFadeoutTime = 0.3 + ParticleXSpeedRange = -60,60 + ParticleYSpeedRange = -60,-60 + # Specific color randomization ranges for the fire bolt particles. + ParticleRedRange = 255,255 + ParticleGreenRange = 0,250 + ParticleBlueRange = 0,0 + ParticleAlphaRange = 255,255 } Ability 2 { @@ -8379,6 +9690,44 @@ R Precast Time = 0 Casting Range = 0 Casting Size = 0 + + # Damage multiplier of the initial hit. + DamageMult = 4 + + BulletSpeed = 230 + Radius = 150 + + #Coloring of the bullet. + BulletColor = 255, 255, 255, 255 + + BulletFadeoutTime = 0.2 + + # How far away to look for nearby enemies to chain lightning to. + LightningChainRadius = 300 + # Damage multiplier for enemies hit by lightning chain. + LightningChainDamageMult = 2 + # How fast the chain lightning chases its target (Frequency updates in seconds). + LightningChainFrequency = 0.05 + LightningChainLifetime = 0.25 + + LightningChainSplashLifetime = 0.5 + LightningChainSplashFadeoutTime = 0.25 + LightningChainSplashRotationRange = 0,6.28318 + + # How long the splash effect lasts. + SplashLifetime = 0.3 + SplashFadeoutTime = 0.25 + SplashRotationRange = 0,6.28318 + + # How much time passes before another particle spawns from the bullet. + ParticleFrequency = 0.01 + # The darkest and brightest amount this particle will be colored (applied to R,G,and B components simultaneously) + ParticleColorRange = 150,250 + ParticleSpawnRadiusRange = -24,24 + ParticleLifetimeRange = 0,0.1 + ParticleSizeRange = 1,1.5 + ParticleFadeoutTime = 0.4 + ParticleSpeedMultRange = 0.9,1 } Ability 3 { @@ -8393,6 +9742,58 @@ R Precast Time = 1.5 Casting Range = 900 Casting Size = 400 + + MeteorFadeoutTime = 2 + + MeteorRadius = 400 + MeteorDamageMult = 9 + FireRingDamageMult = 1 + # How often the fire ring deals damage to enemies inside of it. + FireRingDamageFreq = 1 + FireRingLifetime = 4 + + WorldShakeTime = 2 + + # -1 = Moving Right, 0 = Stationary, 1 = Moving Left + MeteorXMovementMult = 1 + # -1 = Moving Down, 0 = Stationary, 1 = Moving Up + MeteorYMovementMult = -1 + # How far away the meteor is from its final landing location. + MeteorStartingDist = 320 + # How far away the shadow is from its final landing location. + MeteorShadowStartingDist = 120 + + MeteorImpactParticles = 650 + + MeteorImpactParticleAngleRange = 0,6.28318 + + # How far the particles will stray from its outer edge. (1 = middle, 0 = outside) + MeteorImpactParticleRandomVariance = 0.25 + MeteorImpactParticleColorGVariance = 0.5 + # Red is always 255. Blue gets set using this range value. + MeteorImpactParticleColorBlueRange = 0,128 + MeteorImpactParticleAlphaRange = 128,25 + + FireRingOscillatingFrequency=3 + + FireRingParticleSpawnAmtRange = 1,5 + FireRingParticleFreqRange = 0.025,0.225 + + FireRingFadeoutTime = 1 + + FireRingParticleAngleRange = 0,6.28318 + + # How far the particles will stray from its outer edge. (1 = middle, 0 = outside) + FireRingParticleRandomVariance = 0.25 + FireRingParticleColorGVariance = 0.5 + # Red is always 128. Blue gets set using this range value. + FireRingParticleColorBlueRange = 0,16 + FireRingParticleAlphaRange = 128,255 + FireRingParticleXSizeRange = 1,3 + FireRingParticleYSizeRange = 1,1 + FireRingParticleFadeoutTimeRange = 2,6 + FireRingParticleXSpeedRange = -5,5 + FireRingParticleYSpeedRange = -20,-5 } }config_path = assets/config/ @@ -8405,6 +9806,15 @@ gfx_config = gfx/gfx.txt # Map Files Loading Config map_config = levels.txt +# Player Properties Loading Config +player_config = Player.txt + +# Monster Properties Loading Config +monsters_config = Monsters.txt + +# Monster Strategy Config +monsterstrategies_config = MonsterStrategies.txt + # Path to class configuration files class_directory = classes/ @@ -8412,12 +9822,17 @@ class_directory = classes/ class_list = Warrior, Thief, Ranger, Trapper, Wizard, Witch # Whether or not to show individual data accesses from config data structure. -debug_access_options = 0GFX_Prefix = assets/ +debug_access_options = 0 + +# Shows extra info about the player on the HUD +debug_player_info = 0 + +# Shows collision boxes of tiles. +debug_collision_boxes = 0GFX_Prefix = assets/ Images { GFX_Warrior_Sheet = nico-warrior.png - GFX_Slime_Sheet = slime.png GFX_Circle = circle.png GFX_Effect_GroundSlam_Back = ground-slam-attack-back.png GFX_Effect_GroundSlam_Front = ground-slam-attack-front.png @@ -9056,6 +10471,604 @@ kܓ +PNG + + IHDR8`j؛5zTXtRaw profile type exifxڥ[H]9;ڛ6{q-@R룥̪w:i`v?B)^Zo~{|ܿ_3__q}_u?waUoz֟A}\%(sB)~\`ie?REX]fnL)n Ɵ)ß1u',ȿ[uV}ѿXagiZ+?/IXW(*Oϟ??Vw?<ȕGuKŭջ {ݓ+1ra7bWL7b+iƖz13{K>>w1p[!>mh9eX$| Ү W,]b }NhX">p3!aFTc |0։8@(%nn2*y[Z^K̰DI{X9%\J2jZkh嫕V[kOms~PGwgina![ +$VvAO eNS2f ѯzH8]pk⍥s,E56'!4m'ன^viչʹC:6Υ +OX;wLP7~q6Rkk|W|c]%itd]~Q#ubi}$Ptk[/8<7m$L9O?Aq;-=IL@y4b VOw뗱FbaCr i^{2h-s,a!aO^ Iq5\;@ ),\yq{- k +O6Lg܇ȸ;*'EFmHy+̕ _#`5~R$6OIY[/£r8;n=G3Moyz+l1.^}@7V"b̑wF<.v☓8)wM>ݓ`zb>C7yWrx#Yd:|r i0lxx0ŭO!nlcSy0ftJ$ hiq 1@&i?F.>hW..%WJ2{}VwbF/YVV۟UFJJ/; 'ֆ]V +ޓۂCxZMice}@@+R! b2'CwH$t"GH#D`vp8$Av +0e/qlq +[/.{\AVHikA ْf=1M=\7}B{5Isa8}o`Fjs'Ż @ 3)%-~iCMF TtgdpATzNyf}1q<甂_AbB \R +(mКn/a#gE(Av{~.Hb̤±:DzpZX!p9 d dy1cby X~:VC5L35͒HUxˌpbt\o^/nZ-w +2ޚԸ(8{Jr_77]=\<ĀAŊQ*>pEZD-'.uN Cm-C(}{AZX~XZbXTDB Ē̜M&iB:xI3S N q S8rLO3/5:`)خrSLv $0Ɍe$;6ROmuӯy`Di?HsΝID|-hIa"VY>5s6ѰY!FP2PEX4}J$EJH(.$]ED +ίGP4*҈ha72^hH154 7DD$T6TY_[P3|`f 5%88'{(&^1B؏]%=<#]觭K߄.t^Phiut!"v02Rn~en+9l`'%C}r`D˞*,@!h~ B Tuqb”Sa#pZVA#.|K`w!/h,y[Vn+BXG2u{+bJ0 ҵ ŻՄca\@HV7 /G()!TI K֋D`_,wq)$DigL<71+!ӎ3!?sGp) U_SZW#qZo΄]ŪwDs]<8?ɏkB!z!)MB^/KE_vJ WA@SD#PhJlRo"H ᚣ\ʫ1A  I!s{<ZU둶](+\#YD[VxܼGM|JkµQ* ]$Ɋ0$Ra7e@IPM)W8=+ZTA< lU'p؆3Q <d%ņ}[!M4V4ǁ މgQ; +$%;C>[!ܴI'FUaleJ4ނc]E܏> r 4.*ܲood{u )-^zd)jq=D:HM-q%U ; nKq+S|h|%+C&}n]&o>$^:}P'H'g( a-xԇ Z F~,\?E\BQО;By)'og=`"T,TdTf!R9vXY;o2JI 1]~>bv!x +,p$yMC(5!m<*%+&DxB';Bu# ե\iXL$7YdTl0H\tG`{k~Bhk酪FƱpm m݄ƶCú6U)opW053 @M@ WQ(QR !],smXCw4%9;!$lA\ Ym%:u,!`:J[ +\ˢ O=y? +b )tY}x<;a{`5?"[(+`F#Xul,ZڋmԸE [*,QYznTnnQ 9 +¾n?ZGAQєY4nxDT (C;9ԃ8F^z! Ipm"ܡC:ԫE7'G(/TK&^h LazYE aiG` ɀv|HLgs} rJDneߏʲhfuc!vlˉMNB&|cLl5 { / g&+%;g891FQ8 ++L +r`,ڍh!x#$5 @vPͦ)(M hp+d2FbM!j .:Gprب>%|0Dr9lݐ#J!`rD!C,g OO=LP_l*l$FCV&̬,6Ku/#Cε bMVH<`9R$pE@t$DD܁7K'"[eO=qSH_Z% B=߄yp:vU31RA +tPH--x`@NBL7 Nai825oV)Bg>Y7}' dAdu(kOd}-jm:8aAQ!dUHN +-F)່7eo"w5pj'6Ȉ ZV~1W brpr +d+I%9>}~'pݦϒhތà,H/N>7?6jߧ,TKel X7腹_S`y.!Ť"Q`=;p/ZD̛ Qz:B/l# Q]Tze|DZ U!Y[s Sufyme;sr])Oq$'{%MPfXҢ*AL rEVuv("!ɥ/$X-Cj=oܑP_ȂG}^4.)pgmT^R(O\|Ӷn"#ԹnQ%`hmc,4815׀ uE`ݢ},:^ /[ÛV74PUD3vuXRt%n|~wBSՌGA.eVR()M@n^1ݡIںp*^:+G@eou 11`Ym ^ñ3;[;KE4}sNdWȋ|ojՆԐTX&SFL2~,áA+nep<g3>>J7F[dXR>JYd&)mINٺmWWެQHb>tCȈ>U*&̈s+ZrߐW&le" +2M2  iOX+9; </|[#L7 UB/&{rHrd/iއ\1M[mK6P#4]*@ I|uyyp5Y?)s`]q: ke EǹXfԖy67ި#`7 {cVA22#C=$ + B1|5l>n&żiz\G/JagN\2 !kyClP +0#ZE~t1A(&]3:+}k&) T}he is$ȑ'2(i]w-U'U_d!J^Z_oV ~cDuat~9i M\"ExE& HL;1'`vO+(QOl\~ze"AS +AsR 8t~qր}`Fw,;@kAz2koQ(gؑEtK@HwVlk$8SOح7| +xw\A^yҰJ8)T}YVbao^~)qdf/Uн]u 0XXMNЊ];(!Y1 +HM<)YsNbMni/# 8b:quSX׃|U G{`CvV wv,-ld(q x K~(-DrZQ__#!q7AI<ȃH>w|lX' ""v0Ak %߶'C +Rsc Ck:R*50!|jR߮Ћ4#B!ۋ`W|xڿ AtO;,FV׷ BvƷہ}`$2F&ɮ _W%,aIplt=4."}k?8Jqno"dxb e$tC^aI NhȀbo0.Hc%f =F `ME)g2P^μ"x!.\dbV< ۂƨeɽ.(7Jc$@iԭψ+!*hHA-?O4Aل/ݶsNJ:^9"W%m8;%f. 8-29XhvRe>b m3-h!;UMP0{b.`X'ב$g{ 3`#NÒjʼnZn!߇y@LfiL8v6Ț Ǐ T>Ƚ\ U8m\5nQu @#)| ~G2R͡t?IrTgsɴ"Y:bajEMC#i#>˽WHC[N^nj; d| 4+O9n~;H?&H#,}~7/JN N5YvAp٨^7Aڜn:82j"*am e1 :ncݥ'D{`;8X1|MDPv7 ~E$kh0@.ZEDIPTPƂqތ Jel +=0Gy8Oc(6$mQ~,X]5^#- OGx7+?N;p GȝaՇu:ܱ>d@hzpgbVjlM+5P #v0.yƭAn32i:z-P1IXzp;7d+P G1mp{] Oi6T,aؽBu{6!5gNL(ohζC9`?,zԁ`--/8dqJMk LwGדntT;AUJ0/7!R:w* ';tnt䦨HYp@[O}tلQ<4^J/7|öEgC* Z8Ya՝c"Eah4W6_M$=8ޫ~i=&v8Iw~n괿5TQ΅c&箛6.?:{e4p""uPx7e?0<ͺ>w?ƀ󊤈@P,׽fnn?'uX'*xчiZ'W֍ +po4O'l{bΏVMص7Xm%{ =nֿS]oK'%9Ka@n{ 2mD8vXQzl a9stsC0v8Yq*y#VP!9 (=)Vŵw&7v!gχr=9w^.$Eh\ 8'dwoR] ~rA7CXK xvs:Ih9HqCdidz; l:.Cg_Zu~ e Btԅ{qdk2c<!|(RXshy_җȽ(],i>B>d)p׹8&2Jv'ƛ{ufkx$B=:9܆%@ML'}C2,p ^kãLم"W%T +B: 7uA+*}~[$}6/*e/^ ط*UCu2pjΩ;dT @mwh'XY;#z~fHunH>ݴc]~McX$Y-_tX'ZBx.cBaM?(/ "nJT~<@3M{Wu,6;d.g_?Z򶩘c!?phAwS+,OȰ"yB+~i^M6sq&"U"FnJN) x`۳xܤп!2鴶o؋D\k~B;UGg b涘E)q!n"!LRi !Z6M X !.{U܈5czpo쁨k=~Ri3g0À EHT Aqoœ)g }V;yKYcO +jD:EAGH ·n?hBAq܉o3G!W@@ppk \䵽€NFJmno +"'﨓q!=L)cu[G8C܂iɾ/.u̘Hh%3Lx!)EPݤTIt{#>>< ,,-(2.7#,Oq{$Zi) +z0eǺՆr_k5M8.}&Dߓ}0Rl(A/$fyKs;凾[`Qo88hޔ0^ЖLR%sg01bDjw9%pD;F>sAe= X"\rѕ-qY]oߑ4]<9 ݞ|Ta!8\~P@mGKvGy 5H{nr76۪;s02/"p;%J&m#>ۚǂF +PBcd לA^rvUNn%Q {% 'dh<q5${'^nP(D/w[BnSJ=.DřCIPEvfF?uT-C>-Sh:o75eIhz;OE C&VO?m)}[m0z;voD0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +S(bKGD pHYs  tIME &+ IDATx]lוxi0-ʕL akJأ@0~C2<Ln~HaI^ F ]"1֑xEJl 4hBę]u֪E0|xTNwׇ!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B,i_|f͖ u)6!B!AE[_=cB!B; B!2s^ЃB!BHߡA B!B!B!B B!h 2H(pB!B!0DB!S1}\cRZm68!B!}! E+RB!B!CB!Bȑ 6(=6& +L{1)""6=yA!B 5B!B!ЃB!"͎==OlZSdP B!i5~ì1` Q!B!BHbF!B i_z4מ?|;.,#LXa_^B!TK}?qLI;*}JzODBޕ 0DB!B!B$^A[Dd}mAHMՃ1Ϳ1"g"↪,H=!!B*ͫ=/"Y)̤0 s?qoxL r +!!*B!B= ,.5]7O7G֞y̽ǟSq'TK}4}tZ5=9F/, +P Ɯ=~qEB!r4i>( K!UX\:1zc]y=6SeG&e~?=9!B!uG۟;%Fٮj=bD{6 BHdeCD:G_<ҤLuHq\B!B>0F1>?CVFlveKnk/W a! z0 )z^}NמisM{n}`,$l5P|w_C[넲`K@ύ׿[H7~{rTۃ +B)k;OĂ޶86_'*OV6X]d e;־Lg dr x]1뜳ҙ6 2*PCwno4F?<:s2""rM/B!BHUR }q:2F?qoF9w~7ac2țv(R,.Bv[{|   +:eTw5&J-u8lH͕N&|~C!ÆB*^X + +V*,N'!oY:v[{œK'EdBGBW~ܖl3OmivDӻ:֓jfKԠKՕ<, Rg(pX|e^Cy&b7':j:.b=2>B!Bչ\ٵs~6x\+y'δc8 +"s<!_Y+$dT*$1dcxBe>zFO֝ǰBT?9M@!*zӱY_1`% `4rtF(Cɏ(n 4Hi(mz(gfڣ.Ca`JcW"ٝ~Tw;#/s?/gCZ0Dk^ +{ɌGX"B! %Ee_cCx.bej =乗&1wr^HKLnyqBz pP s6ZEﹹ#S-y4>\pc+bUQ9Lh0CT6*+KgڡzJs)BChB6Ey?%O5)YܒFi6%(| [_= |sLiӐKWedNK6fH9Dq ARx:]t|0Za#zvPbˎs Q C< Ƅ7nOJFSB!as$K9F1"CD7 +Z׽ړuV +if<(ӳ~k;P\{/p޿q-5^ܸ{}xpBʀ 1/4z~NeQV7ogu$&w3Noѿ!0Lpgdpgh m}v;򘘘O EX kxcIB! +]^E1*6:DbW0RBtjc \߅61 + 7Y_ۑotv6_g %qᅥČ#}!y啲6 +O.,I['Ɏm9x;ƔWQ217Q`_z\%ń"iJLgf!TDž{36뒌dQ +B!}IyZbG' ֪tqi"< +Xv1)P.B +r ++H p+$UY%(XaA O!##p\z=Ë;1xaᡨkW 3фbybv^BRKj[ck\bK|x7?{x孄k +jg=8^!B!8J(2 ; 7x@ugt^s%ZL)7گrĄP-]aG Z[8|7?2·ѢÜ!/l@ I2ȍ=)N&>[ҕol%?íă#/3Z&dž ?o" akLWy>? ԹzJ^XCS(pB! }q;w̍J갗 (n|^[0TOhRK"GqcsT+[M71wO-{?0I8q\ǔy3':ϩͭL/\0?Gc 'HF3a"2|z0BS0l_Fsc2" 5&enۙEDnP!j)p$-wnnk<85X;xY_|W eм"ix|NO~+={i#1^yj;llUӃ`6~o11r0BO&,7ϴ}!B!r݂W)c z?wK ryhc'&g-&%Axa^(Ν3r;kbp+n5b =*c{}\?ۤYҼJxyaz`-<+ׯ})" az+^I=8B#B! DR$+AL]<$rreIg=vUS0l?[?C3t Q1TGAa}ڼlgf +kx8J/B!}< K`{u-TO.u s70Gt;S Zwf4řvwF0P^ ̅A@mjon 2'Hv`޿ixGCotfZ{max VN B KYkkTv80,ivu77E~}aZpz鵑4i' " tvqI-w !BA.h?` 1y18=xVyB&#nP;X:uD π }Z6+娳RCQukmYhvދ墯Mk,\Jr01[7'δ=aaHE$K=%&,.mgT,Ϻ=aYSNrQVRו1lύ[_=$VT cP B)OrJָCA$MMq8?q%WKasJ{Y5oՑ:VS$(p-<+z172%< ʷ3%c#X XD 9PvOBi$ݛ|zZy >-]xODD~?'[.~%˄xaCij //\(LY6YH9C bvc+4wXa!x&3瞴_4޴'VgB!ԕ-h&TBxQ$j;?m(8<#1}=ɀ1U0C[ǜ aLZBE⊆+XZyc=ؾGR6c|^.StsG?qmopVԗč~A0>OmˣI=[1^H6qU?p?7G{qUl"ޟl^~{"FctL[B!(l8g{$ϮblkKųmO@U $eQ$xځFBu92ט̔Ųe]~KȈnBH/]̼]jLp?<w B +)xW;g %;J\]k)؀dv( +#fG]w7]jE:^Xjz}m+Y_}]yjCߗs8e {?ä?w")ol܇hgvEB!dl%nLMKx8={<* =(zsFaJ[1%/qT * ^$ @աEMB{" ]7x]L:M0c w -aBE1煦_ R,͓87b_xuI2GS Xlyu'z;?|kD]o1DB|J6,%0+KȥWw[3:uS)7UL4j][0DB!=7xy2"La^rkMc˞<t<؆HCB18ϱVo2*%TCC$@8ЂA ҙvch1us^!582SWBUqzx&N^4AVDŽ`%k4VwIWVo:^7tbH>Ox^Ͳ;^c1J2zH{(x +61~3hS2^JB!oR-Gs[NP>4y$m|Mc4Hlj1b"UɎ1- $ 4V~c/-fVPoaUX_1"AK?Hvmmswhw;>RG*!k{/Pąbl mӶpp*ҢhgI{Xx=k ˢ;ggBib喺WTY\ʎ%+[TsTUܰ:3}VW!B!Ur!*:Z1crm +zF~EWeۭ(wHnxeV2Ca:wL bB _V(]'Q]'>f%KO{ 7~o Y+3\4tP eU='d<9DDSߙSCW;Sh6Ǫ1y, z=Ą y&i5x߅9'""r7C QSXA +0DB!}7D=q#D8s#ֲkRب?ٲn rt{ۛBWtv&\%@wt2;K/= IDAT~ +~qi( O;'Rqcybn6<z1yU vjsWjOV62|y^C@ޮ +bNgӈI6if1}gV +aHK^2 /qԩ/KzUQA<ciT/žB!T/Jrei (VG]R~Wa +!þȚM 6Pȴb-&WVl2fˣ p^Abb +nX†H!Y66DҒrj)lH~'T*UKe㵉t1D5v۟<Gx]尔^"!Y 2nk/yH[U{ +'z7zX䉞FLJBe'>;E1_k bk-W9>F/tZׇU}kWNpjkCA/ڡ+KyՒ1/JO*B!@ l02H0~J_d x+[~,d5~{A1m:=oĪ+؇X#T6w\M} Q^EF#kw]6[x|Pb.Eҳ;U:~mx'c Ǣٴ/*Ewf፛#YW9(O${y N˽禞T/ +%,"[ zXsj z0IUOʾ+OOU~(pB!#$jdċ0Jml)V"ȃ<1,9 FZ_9^VηV'/^ ́qJsLï^N< wOD&EE]&x&4CW lkn>I;IQ%*xNBB!$B܈)YnA}DUPPnk/ +cc +†{(|h 4~^BBDDVUC6a>^^(10yHvHj<+T4И}"s Иl53*Zt3cIO `{Տ ~LYmak2cjqxo?RW3 >V?*E7$ᚯs'&T*<5\G7$@a/c䑗Q^b^(gxVcf^=V;TIE@LY߅.Ӆ޼x?EB!Tx ,E {mxz\Ɖe۸n`^՘2k;IP76OUt{Gt+t26~֪:G9^Iڲ}һezn;2XjYQ(m[4fH^kwn>U*x7b}oQ WX&ƫs }zvփ'k;h=&^_,Τ3>.SBa,6t%[,֝s6|3 \Y:ƶ~so/N1 Y~ۥ^Teِ&% Ӑ;ys^}qk wB!R E y o1(_U&9]LE ++ck#ƺXw21y}RY#ię6^5^}yĮW"zkT4pmD{Eac:7?râ{VXneR_||~S"7;G軺 VbM=FA, +) 90Gɓjrqz;`ȘɛqJ*ONfɨuy]P/\Ȉ*u¦w-~!rJ5\zdUb_W~#/DG$Ւ`+GWD ej5{.HJCVŜ^i/` +!bQፆ"+Tļu;5EF^W+1E kauv1J†՞e< [ߧ౗gDDdjLuOZ"%K1y,m {"G!e8рGQ#;p72ekuwm`VZ +eIWw&ƶW[3}΃U (#`^~7{{|T]H'j?qnZxLl˓"oaU} "Չ]}Nzmz'?TtאȲkFn<􇹰GV3T$nDVbkx= ^ӹ󩡆tcҏ3hp ]ۺWw[{SDOeC:%t1a鰑VsMs/ʾ'cOLAQCw[pT~9':{bXHwiQa)8.xݿh-F%,ڥӋ1 AʊUzjlB"bK$3za)H0X26v 3Dit^m ҡOO$fL{H4LQ3ksxsL^D/ ZB{o}Vs{c;q/"Ƈ%2{C*oC(螱52T^J5z=0,T0TT{ֺFxyżv6g(˰KqWU)FWq Dua?VweԫsUUycͪHDB!gjsG QFU$(U#ĆM8^ _ـ52"ڣ:z 2kv2bAx}v2>YِOV,AggO*?w<:mwXݷv/輱41TqEDWpB91 +|g}mG.ۏk! _5cg~RTj'l/$!b UlÐ:Ȇ +` +;=pAX^u˸П'y_wɥrϨ;ޗftTCcX"F wsMLC0 Ccb!x:OCbnkAn]H&䌙ػYX#|;vxh;y;j-𡙷jbfzpG6f7;e!輇~jτxԪ-µ-/ӳ1tzx2w[{f7uZ=G}k'ct|N@P./)W_s*3q,GbZ_Va{]gϣ,eÈ)u 3lعû<L!BHYj@ƄXܫy=WW4|siZܟKI#&Up +a}Un3my4Y^&ϓ +JlUQA]q+հBTS/:tYCoƢ*QޱXrpQYy WV&{ +Hu1( ++4qiۓ1 lB!TضrCxB|X %xPWɛ׊zWA&osXB8fx"NQ;3ϫ6OzcM̍'aA"i77t͉Tne<8]9;͡w4n8GyrHs8)Tv~ oA #]CTBYpʷq<ʆ> @=7" p+KgإW-ݽ6=/wgrڗ] Q!2R`XJ肆e`iG6đs秓01CQRh0aDLD'bGsK)傪iN1>5JE ̋{ⅷǟu/[﫯=/E}m~i$1VIu7.>3!7srl"rtĊ~@Y L65X#]H=tQK֝j~S5_~VV$O.)ռ]<>0Ƴn斜Ya +c3I >T;cbn\& DžŌ4wva6/^ ,}Kj4y.ah,ϟJB'uwY1eV[ЕAOv[{m⻅\QTN4]_J s3sNJ7IRL<#"Xvu$B!bhJ+saxu +fp 1ytHmDn[x:Mt6ts* =[pDK਺+.+E<0\.Ka孉 ys]AU]={;sPQs't)Vh=!p}PPNTqKQb[D-E'O-9g=RA/mXc kE,g͇gy[xX敞9A'1rh7bzB=WgT+:-?w|ߓC+ )^ o?A,! %PjH/3ؿyaGunj2U!*BF[j(X5VDӳM}m>zBM̍˼,/Jq}-.7%Hyw/ż,5I4x:) Qk@_ 66HI7}Yx٪+1&jOUsV+{% 'ц_wsQsrĈVm')WPGE_[2i v"4(E&pwTRޮWˍY N0Il4v߷jE2E5^Wa%Xo\纾ړ[] œKsB1ᤘ;wU}!pc.[yEΰ@ b]kQ'  7t5D]-y^i̝bJĠ㵽>kN/$Oy!6y{N1!B!dƤμ~*v,IB;w2 {ohц!j + Ͻ4y` !AkZk uΰmUg^@CJ*x +vE IDATraE //AU \09+(~"bxF버 =64z ?) +)RK`c*'s{h:%} `A؄57o^w֦HT^8VHaq4j6FO'CT0Z睁yD i% VHšOs=0Ī\{*igk]a$d +CT!Iz =F  - gmcIgY?A]3߈!-PōYт QOhQ*[u2ӆwdMmV].>#x,(ؕ<0 =r=~ ߁cGvcu3q'-6{Y5kC.Z(Q$tcZ9ݘ}R@^a:͙v Q2J ]żiBZ@&n蝁kK䎯'͊W ;>+UlBɢ s!EܯJ,$+ԁ&0&(J2꽯z^p!Rv08*؈oa |PJN7G=!BHuܢ2?Ҥilzn?wE>VB) +i;@br:CHAk,[ƳgP\ +1^hBnƍ+y}Q!lQȩmwLy'j/ō%Zþ +*%eCHƄvB$zCU &TeyXNψa'FUa!O 9syon<2Us bp3~@k7|.筳AzAΑ0~1+{^Iy7H9 BHQc֝*: iBT8VB!dd1s;|(0Q$|y,52j/@2LOfZҵxnߤ"QUSd{F AxֹQqK- Gjw4!:H] -i.OXcH8[<$rhΫV 5ˁA K S_ܗ~oߛ3b'$iHQ*jq7FۡLU7>8p ]&Ɲ踠Do&ZtYǘ* ^gX`j)E\,J qk9*Q`LZG] &lCtZXY!#dHUPk|i#*+LH׵c˃zK^gy2|s:?'ĪH›_kkk52,B!ʆx{':pNAVy{g}.}1nX޵hgK/Xyc ob? Ĝ}oU +B!T@. !|WpREn}`,Bed_Y:ӎċƤ-980Ut_ {/+807SVk<䳵ѥKx[f.?lŖ[q1Ur/NG?޼bpO߿D3Uƛ7{0% xV(J^e^#a.Wx^+|B!>Q&Y;g^(@`U(r+qoAQ^RaK ޳MLUy:P!a[2M(xSV ّ=+9xOQm*0x+1}m槼9&/oEU(8}ڛ7ߺGQb=w3L>Xa>e,vlW+$/|2<1q}eLEͯQ eE[QKêSI$/N3Ӿ3!!w*b^^Ng]daR6|nه-69Yy1;Z_2 k =@taG~cv2oE]s0A\\ƤB! #ԙf/2L=Q__>1.7 o0,}ac|G! *y"WJ<=r(v乚h.Ro{)x]&_n< ; ;n,q0a7S]{L ső'}msSL~s ~# +\V`[x`tdVv;̰|ƃ珿%"s[? G{-b[{6_o> S0BFjI] Qd u3n1aj~A?!ڃ{^. 0bʏ{wVea5CQjTcpND[Tފp~<@S$ +K6:teUAOfDc/$}e,{߫/EDDYb"f<>Z*8a~BUѻʹ\ܖl:z*oー`5FLX u³2Bz3GJС+ނ(ګh Gdg*$sP$9h {Zl+zodb=( }/F:0IƖ`6fz[j)e 3 yHZFS߫nt'+'}ݤN`V!cë¹B!Pb/] 0n08/M }p\V F8Q$^W+7'2/0Ј 1@YVHckA|Vc3-Da//'F/#V(׏*/Fn=yBnkO~?'~Qhax_p!LU=taCp.*;?-o~ "uXR8zߺ0`b~T&J9+f[eZ+o."nbH1IE1 IwDVƃy՘J Q+&ݒkQ9<[sfY^?~n3< x͝OOX]QCYzT5YWƤI*9ט,pԪR}r +#͵/3DjR BνǟMۻ*ggr+IQy @LgΉUڱ2jy9o)O<Duu<1cwXineBS3.s^iO1|wlC>۫0Ɏ3f6!V.DŽngLtD OL%NKȇ[^ :&a75gfk7Χc75/$),\k:yoh4\E{c\Yz˳iy9>TЇ:׿ӶlFKBQ .zti2c N\N&TbK?LluI<&CxDr;?m +ٰ SHrm()@ sOV62e:EǤB/r$նpݧi[a)"ݹ^D򓴏"u vQ:UgZ]+t#j`~ aAWC޷ dyII;cJ/+"0g< NJ_ +-{>J GM XbdU1is H_#7 +A;wDD 2xW߹czņP+U+cŁO;jF#mDOIeuo0š>0\!x_)oR{c19a*͵dn75&%T|HBL7gx4Q 6o%ec ǖ|uv&ylz)n1F1Y;;uxڑREݡ'#JTp +@O8aB[}pn- V8L9K-Q!g~P>x>;oQݼgéWMh| 8Bά$P &a<ϡS$ HUxEp½wHd2Gp|,\2 s YH'"vWR}aC; + +RI61kcrcONeBSDːay2@ MExazn0Not2 +c,Y0쏧eƙ%x9uvn O'ō~ED~(c.0 +aZ/{a+3O91 Vx=(XV #Jg=Bk77?J>_>/7>Fxa{x9qz"H]x>$e*Ć `U:KMwұlyVhT\QyyQI&k˗ctT8PsAWDn8^omG%5&  Hqѭk\PU:}Ԙ}?ޯvevuA!,ge@jqCQh<.\Z`g2PeMp [}<ҡ.>_Za6ȬpW_{ ۉ>:-[E^[ ρJJg=AX} L#?ץٶU<-a-xżCX(XQ%>, X2U R(j`aeBe-t(p:`ބ ': ֕lU{l0"[3<ㇻ Yvh5V+B!:BhxVXh? ]3;ALQl0 :^8#pWq|27J2y;y^δ %m_fW]wLb}m'j̆Z?Vb{mtX<7ΟLK#c;`IM{suz3:ú<Iߍ5V넰h|^vAOœKf[ kPk g[2GoAAudVw< +ٱ}[_")O35^"O_5 YG?8䣗XCp?7РUT䵁siXi&f!gɆAdsB{ln۶='炩`۟]t/>3Ӷy*C"Hr~(NοP8b`řsۃ䘿_fqGXQc㇏8*h(DxaBĨ`b޿2w[{CR!BHݡ1.f#r2, KN־;ec^q>e':UHx[_Ӊ0,"/^G%#C +gل 'AUYC獱\[옓׿zd=n}_c +BHIGߟ~A%R`tc! c#=DVҶ[xSzپ ZdA>y!߯r #@Wm1ϋ3vBXW o vlޖ%Nt\|fm9jF2E + c,?%eB%]С1j).0(#,؊*z%?4:ۖG5$]<:,E !B(Ack:Ԁ͝O~q^}p< mҙ9Fg[V2|LsP\.zK2qe;ِ[QV{#'+O'^Ӎ/]x^{1FU3X_ɄaX=)l q{hql^"+N|=?I^Դ96oKgeq@,`>kb(d'O1h3xfzQ B(dnoQ~KرaXbkw*I1ِT-~+JR@q#nx==N&Y9vD^] "؞~U%]ezn lP(/|ʹ{pӻ:&"%Sn/Mcfe*?gHsmy~>{-Y܏DY}pLBYd>8."lDm`04%]q,u82ㇻO$1&,ÂB!dTG*Jjn%g0V,,33m=ƞzv[b âHH {>n~{eǛ:0">w~Z>xny+a'$οWY_'&*znL5-2CWsq7^]ިڹ_'rl" +Iu ,Lty:Ә}M@qX}w+8!={\i!dim9M=I6[x?ys)[ c?5&LCa :8z o{]?$®-wIae4^s'l}B!r'Ο .ruW~xyhA_ܢQFo::)8XZ٤c/LIw'E{c""(p88#+{-y98E]PG$mp5?Zڣ!:! 23ףx<d[v8 +O"vϠaP ,E3Ev T0V&^nba JZ1:jť*S_1"rV+K.(O#Y!D%67|B?љFUС1⳰zLiM?mc8n慐xۈB! +=33@g鶌g[I TrI2:794^kWjR|/ +\{sN ;?F)%EB"Q]uAWAFl$H󣧆Aϑ +x_/^ m**K*uso6>w~.g!E +OvK/lCRM=V(pB!=;V6w/0Q8 m`p(,.9,q++`Y_߂ȁ~uUE{>Z.KR~s15G+Kgڗ^vUBSfP8A̡[vP +}\[6ÈFڬB'IA&ÄVX?pDu8''ĿbZL։0VT!#b,rQI!BH +@n!bCW/Lɏ`L[_1VpZ(!3-^?n(b272{E|O|{+`H7;WB2s;1#r.!Nۦ/ɫHߓY}vBS<{w<0hK,蝑/uL0]=%%w%,M<1Dk˵͝1{R BJ,dERa[{T%e"68ZLses+/&*:-tsJ+ Vy7̇.bVt['ټ#V@ڀQrΒLoAذGK=uL + +n{L)R1fzNvܦLjaxe/:VrV.22c+1p Ōo,54=g@Zt+YXlnJ!BH?qUD{ s ڑ>sJ{^9B!g탫4G-H(t! B2egV87]6e'vwݺvb⛹Jʡ꺝Pָ8eTmt01  YIa$A:k{xp>lڛ+GЄۖd鶭D$5*kqO(1f,AnԱ fL(,O4V cI;F}f{Ajs7sKEvqĠ%ɠ^839I ?Z?K:E)ao2tjt<'8ezCoKRE|0]MxBW>vK7}?O?pcֶwj%#.2S w>L?Ld?ѣV1}k +]WAAJB4!qGݛ=R!6٘4aW*MN,"la)S^Ƒ-,ǛL ?$fګPj #Gn+5UR3=J,JC5*Όa;p8w|<2k#.Ÿ~'V]Z*#u=w/T㭮(-"d87hO˦7F&xQ^T1;VDA4!Q鹣lqě̉Ȕpbț$ĎeE7[9'xk K՛ǰU;]( NSsp2<[&4yR"ZUl :cVA8#V[A?wx? Vq}Y\)>:ڊ~eG4~8*t6ollkL  P9&|B' +|¥_k߭Wb zcel'2KGk&ov=C; U!fn;١o*G +X>LK{÷RqD}Ҽb_+9NJ IP n0DL,?;OȘh$ԉtB,M?DiJ_:1kܚv¨xRtDH?~T/q|ĴWOZX8BW2+[Kս +/-?[DŽF-oAAJC~hbCiRós( ils2 + H0E+z8DG@\)P~gB>q"CK*dxA(ftGkng>"dH"|NlUv-K%`%_Wm1eJ( +u‰DUzWT|p9!  .0;7RI&ds<јdJ_  88 +@AAȂɵ !;76;"kqp     PiWgإ핌  B!NLAO޺ֿwx*!   ~ز;n=~ÑpDA;"p   Bws x=)熾]CAA +?촬7~us5bR ǦOVς߽'Z3-}N!  EFߕ)N[N]itNL'DA`!  BQAH;:R_Wb[lY*eyb)qJ"QPvv5p_d^t\w2>k%׆h}ʹJx{a*_"!  OZVWm/qY~jЕᳮkq=w#N?v&:Ѷ7I}#WJzPP +.E k߇-vEkUᓷr_lXm>&޿ޓPJBAAA(x!'gg1QK!Qeuڇnay|$;mrqHY]A8AAA(8L.މ}{)]oۚ)!vQ׹Q|֌v'Qeɹ2&/ +"}0={e IDATqF_PlYjs_27n}l}C?~.!  Ύ_P;3Lp$Bi4:0Robmͅ C]jϦ~v'B@_ދ/ =]opRT>= /SE)Ytv/>Ո3~QIۯoL&؆oU׎V.>'l +CAAdB"^a50|vJ JXQR Wa)ck}-E@AAA +,Vqv=Rs +wFrn a}))a_@-=SgHDkk{\{[+>n&C3^F5__7\`]~h[cNؼur^P(L Нtgйn/n,]7SBTAAAx2 [=352^5kv^ 9DB+PMpS:q CL!%3V'[_ ?jp]/ciW 58;\;?3Urw +gYSrkpFVk_ ?DAA( p&;-[S}n[՗ z:a!}I'S-t9tw޸|⭒\5MG{С|:l|{EСO9|hl; ׽E@/V\;JbB  0I TOHq&rpQ&畾m4'$lPýsk26.\nP(  PDdkGM|+@_~ 껶YQ>Vbp_OaFGZ(e{16 + O:F-{'EŸ۾ܷ7=O]#}-.&m\Ǔ~gSH(Jޖ.qbn&ݮ@#tokN{tHJ3?3UAEr"fZ)"| TX|F?L ¬uK8Lq_ 5aˤN>ו;76;;5w &j!5k*@wi$k_Ze -QmR\x~(Bwƒ.4t`q1? gYSPز30o̷[_  B \L̥:-U8V/VWaɺU%/DunP_$!AH*8/a [51MBǹq,;.K-ѼݱU= Qlj SẺoy $rMȱgg0al{-#mo Tl88AA?Vb UHM[hbϘ'P&Wpǯ/RB>A%BA$7qt{w'A&Nf]~`ӏu'R+-kBTla ` +[) oTBd{0vsJC|N 6)cn]=7ڮ%Mt~uVB Aw؞=4dnqwWTѝ:a!+3Unslqn0%+5sg.\WZEm$ھkyo;/=L;z/|g|WmaW'Kϻc"pI}BU6(ĭ׏?BdzOy/SEҚpDM$"[Ydm ;iweJ2ϼMUAeM5Jpݷ%sI'KJ˶z>q\8/JσkYev>~˨Om߇5MYՎY a"1[ [~B N;11|=4|>u[nB6lBD~;QDj.>}yBߛY֯D\܍;; +߆޶<t +DAA!`ݕFG E \hY]\mgq.$6\TEcjy^.{sc(U2#ZJ61%:3G1<6uHDMкE?d`tFmk_^gtHX \\=6M }Ra:/ 'B 3owSXK+C/xMz|%6OvH`C=kupGg uj\:]nODjpn*e茚LBK↮vTcczP&gTq~t 鞜9ZP ""t Fi+Pbd+GhWLI  t8*r ޖ\<[XԘ&}e W/&?6#u.U[&vZ81P1[r˸t`(3eY|84UPM}a +rM%&Mx'rRR +c7d>lz:!{.%n0?޳O"\~ B7'+DAAA("gw%u{ߕ)%^Į*$bO(q.ϻѵsm)hq;Th$YVE(=ȝ10:xr9zCߨ9%: N x|mnBfJ[wuCz_e" rS}z,o噟%l6Ѳhklv๣#UүܱY;۩&t}:907z3E@BW1]' ]lH3/qLΪS gKwVac@4ɹWW1mz݃.[ ?p6~ήvHPKV}\9.,fIJGK⥻Y6=ۯmMs-=pCyA0݁ŝ3:sԿ1<%DE00Sϱa-!mxSM>b霞ρwtG_ZW5K Q#c"jlCʨ8nzzR?~<{ yЖ|ћj[H)6.n =vn=/DQ<3S&+r5Sbx~!OjriA2xLyuS_~!!g />^߅ܶ5Csv?Ç{Qsӹ18c!  ? K Bpq{6חMWOEnӉOD಴ @ vZaDPrJrTRar熭o&PfO&g_;xc U }c?998t_* +?-ǒJTÔ9>>' [Є/^UZY}lK +LYUiEw[>j?LǏ7V x04&pcbkҼsrp`x2P℅韛\V?m+((ވ19k38Vq ~m<-r"ÑxR$_35Xݍasj!'̩T]}f!L66rq,y pC<^<z|c+0=7a1s7Zg7w >{ܩÓl+͹!GMqQO&l l arl9>&|K>"Qg73a8 +$,$lJ}'$r3% J%B&a#lHB.l'LȇAa QBEѿ{f}v~-7$*AmRhQ { z 58‡ ]LH7|*h+q*wv5瀔N_2*b QAA$'U\•'sRUH#l{SѡkJ2=Lc W16|8rDud Qs2 9Gso~+ [W5lPF ]q‚qؾ'$dINVE&xwO?}k?S;5ڇsR%aXj,_AM^ hTik~.T +B!TDl6EP +aS?N_la)ّwukC'l *ׅϤL\O/ S)oh<s~ ƥ0ѣ EuϏN{rF yJ3tE +[{#"G 0ϧ$L5$tċShkLD"6vyȐϦϯׂ$"H&hƠ,_ +?MHLY-TE`*/rb2>v!Xsݿ+\CGrCUxn01tߙݠ)\"'Jh bau =b4    88bb JVW-_0=[wunl9pw>T{mCҺ㡬SHA}mvQ-q]6lǡpJvrBr(GYݶ؜q[tJVtovZw&G%ag>ᮍ|/~Ÿa; +LZOgWnx}}y[WU$O3;76;yՁf& rb E1R)Jwsք|oaPS)C!GD҅r MΨ}D8hL>&>wdrazaZژt9QXJ{].g\Sqy>~GD \<a3AA^5;.ZUKyF_X +]Wv"vеҘc}'oi"r_N H>y}锘xVnOZx)JkeԄ v$Rshp$7Iy@jP.FPc F'yK5zfPIZ9h)F =OoGJ:$DEAAAG!UցnKXHdaj=A!#9zKR۸t%j = ӖV7YC?9@tcR( ΤbF*zs&[7*2D.h;)*m*-Ca$\5CQh?ɑIHK&O5T'.,TO b_md>L *O _WnjV;8.ϭP[ +~[T)cO.au%-T }W| ߷ +\n{3~!Fhkl8bMBD1heı0$nE#Yt Mbr'P}tp1'ny'WUAL!Gr\|449  ۇp5qfaZyLm| + + RҼ|U|{p0AA$t-׎^lSIs +*r򎏫\b D+x/p IDATjFWKL<çRڽPk'=>ۯӠ} (sWݿ +ɺ@S)"yQ{OћR&w=EϐYh^pM=ktd \ܷ70\`ۧ|qCU*5LEdAAAAJqpxv-͹W㮲njZrsP><[Ea*KˠqB"xϝ+䠕}10:h_ՙ󎒼3t~4|L&<9+ hϠ +2qZHvFǏK܊6_wgs&(VGN+C$h߄ dKi; LN C\+{ O8KϠÈR]%m=I%ܜR ^I$kaSZ{JJb:ٸ'W;x^ƻ)-o{ba4a ,it3`huMކ +'r|6LSallcmPat +mbo\K>~ge1NgDz\eCfRɅ{:.dTQ6)\5NtV5xsR$,E+ U>GbuYO\>V]ÝX\ŊjC8L".Fl޺R τ=~⋣IY*SjSnT#p*1tAlt0{nP}B}6>6kE`ɵ+D Q{&My9/~  N$`4>/â-4Vo[!c+^AAAAJqpL\G}+Be`[E~N㇇d]'6w*E9LwhR7ry5ErLQC[2'pLY! Gm"B}Iۅ;w[jJVBVkUtVWm!)gRxa)|(nBϙ?B/]ӽs.oX" j*2bbGkcrgRSjbwBe1OqLJsgBXH" +"}fWZ-@z|JM=k:9慛,Y KqD/&}UsBa.r5Nyu!1bSZĨ'4Ph}C5y +xrAvcUir]N 85gιrQu|lV={ˏ%^.`OtfvյB7\!Ō   P򈺛Ķeմ2J +rQO|hrp5JWwPK?iU]R-C&Eչ)LwoD9'Z=k\P]\Ɇc;tWp>{*:q<`ls5n M,PqΎ0 .d&he@:sƿaslZ"y۪خo0QweM5֪)<|/)^kvnlVϟt‘L=]’uR}Hmz|s@PN+QYbr@98}irCn!--A seVmk\O/]/C|qbgȫyX؄ O]HgVN'xQ&4Q+u&$$&v r,D|V˖XDdR.:l<`Ӿay %~;~?y]xK$96Js-jJAmɺEʒM=k.r|95e7_Fi5:'q^Wˏ`=gQtZBGۚc>ÿÚzTz=mWH   E΍‘ B&W`Z%98LIyk3cƥ Q[N(Yh(L#U|](?p6:䴲6'O@;78l7;x\QBU;k W? +o@aO>D?V^<%ӶΏٽ[9{΄^Oe>NLؿxM kkF% ;t?sbxl_P :x Tu8Dy<CAA!ϐD ب86Z֩OWOVૣ]ܔHO'ȹApq%+nU&?_)!*LΎyrbӶFa)ADW%OLVTmI.Èbw ;>n98^6m>b_9tpQ"f;J_:'L^s5tZ\2-y5!3fGZ'|8^}OX8!/6aw{y#dF:e/GЅ n퓭Knp4DIhbr:JBMؼygO>/?8 aqҋ%4ᴅ*VS!v}ЅcMŎJ_K)ǙP',% "z%p  P|'$Yi3s +~B(d mĝy+O749c Kl G?ZqWwg-XԴB}үST + MVLI*\l{˚jTQݱA)<Oݛ[ս`B V({Q YKݽAϟA; &6a)tJBz; "p-10:dc&=fd`t7MB)҉n߱n[~:i+wQ6x! +#:/y˅A+n\(lWf znaG6a +bIFDTMNb9D… +m:Fib=J$A9}.Yʵѵ^ $p  PܐӲFX?v.yBSxAʟ8v!''ô?Z S; t9~nQ{4Cɕ ruPxw MUTʍtLZؔS."WDͦÔDTwRr,UfEdܕi"{jV4Tj5ώ͢ݧA% Uz|R{R&įMCwzߙZ\ɖ5ç?T91(?{9c;-XO]lYrbg^qv_~QiNXiF8梃^ e"JJz<StD(^AV|7tƹ޶ҳNLި+$A.@BVBM4tF.-ReFVQo]2-Z\kb*X*I)ġDRn/Z{Mwۼ^V!vRZV[)d݃oa| Ar=8x*ܶQ *zвw]*!  `@%EC%QrD ~K^(A\*R0l pW=iuhrW$=?: O5Տ|ӊ)l2IZ!ƞp+/$194컹qh|& E&r8UR;95ybJZc߼ +_rUsH + t\РLԢ:pO $(pڟ z mzyJ,kI[B1\ <$\yAA:S5`W7K:9{} Pf'*^# k nKCG3p4P +-wmp7uU3CM$)Qk\†){[՟R 0a|ro(Ta0 DžLlo[m=>ё*PѴW)yet+%{Cѫ;sMv KOsmPeuLgD>$% 2|v +}W"ߏr5Ŏ ~]z6rnxxѫp2>7ZbrDP{*ܵa +K?AߟX UkzX +IRv!*|Rk+61s^~(ċer#j8L|N2[[[aMT2]:{Nr|`BX2|^iN5?`:_^!!t"Tr&bՖ8Ӊ*> 6MIJQ0% ӿ j+f6('}rjO/Jѵ^RJ.8})z|UhYS&˚jwfQ|> +("t4/jwCY{=|& 07z;m9G.ҿۻͳ {=|6'a|l |U{fχ^M(9f&   %6¥_rXA28~8Q_C!Nں&,Am=[ *L,jV뚔sRƹͽȽ_OF1p}XaAbhr<4=sG#j#Rn4'ؾt\WHB,1%Xt1HɆk [hpFXBPro.2 weJ"vR䠱_X Z;;Oi^T/oK,`M8!B7Uk [ُZQ/|<Ɠ207z3EE MZQϸsw0۟\$c9I,Kn>6> ^q&D/]D:ĎknߠP ]\;Cȗazl'wn}7qmfh!,rd.&z&a~^jP(A6+„8oH8gV;6-4 \h{:'l_ʖhRp4 AeJS'7 [ʸ^=с&QslIB)MLZ[4~NLTn}B'pB{Q,\MMǯrCac*Ɋjsq>tqBWG-T r2O#.ǧz:$`l޺R/cݖ5e,] SRS,HAAA +g%L`wUPY2G%OuB?ڗ3m]AfֆN%Jƥ .[,.ܵar1s~]rD3Q QyvN;s7mm(|asLxw,VFIwl9=&g +)'VV ҿV^PS5r k~ir]L4=[S0ٜϣVa.L (&Tuc%ww7?(Sgq@o!$zRj/rѝao?YU3!ߦ;T←qB0TQ꾰%ՓR(M6K U* KPuu MZk-'\;m 7Bb䴺N]H"`ũtWV'׻p~Uftګui]R4Ϗ?^>Jysgw'o@ȺȑA!NURɰiBWوR B-6$Iࢆ(eMs{r汄*3C&<Ԁ&Zdv%.vڧAMn)/NR(a }Q 2)1Dr<(΄> !zxLEj.nzв@ QfR:7H   GL!*+1"Qh+J<0:QwZ +'J9_]A?(PuE$ IDATa# 19BVOB.a֙ڇVڂo:+ug{~4j=B|*1Q6J')ҿO\> +)R(tP\mk:RS-vk`smĚ0'k rm<}GzK%ym6Cx؋)'6WG&mp7mM=k(oK>1K&&GĭAZ-!4'cqBN] + Q[oome("T҅Q|=wFQ +;J/Ùس +F|&V +'QD^.v. B&;76;g7}Wd+[QNTqWE{$Fr=4'}S-q1zSUX\)z_csMt/]՛nfhI9@")P@tG-/PEBm7>eyn>ebM!$DEAAJ؉ iPgcu=07GuJ +"Jy%ږ 4jbQSMΨ=$%n[纂HBK2 d^r 7x('IXmՅcΘ@t\kC֠Jṣ#-[pW/dH&† +>;ti^B]_߼uz=Y]6Ԫy@Q4Uar~T"lZ;5rww qlQNӝ.U|MT򄌺' A?;n#l/Q*NU j %q;,nEA|i^APWH L`wzYIFWWoz0EN917w+<^>,[y]} #    %4vrlweʗ/HA,V޶%2qpB&㛒8zo>u-j3.ƥ bμI GbO>9%s$"rVi!Ȥ?1MqxtUTIF' + 9}ưT1AM Z\*[#rpgőC|9j)Iq5_Q9ݹDB5ɟWp~tڸ]8+j}V*{k#[aB. KT\6L)Ԟ<(ma)Bf!3#$o>|+N|s#h[zE'~|}, \0 j)AxRtEU +A =9#wn_OjZ)#CO|jry{ݟVA*z-Zwrߑ){J?Rƥ{:@qT);#lȧ%Zp,19T^E0E ah#^Q[ \qFx].$>ę_L55J>U  r5fxe䝋qژ!F6lc#OoLͯ7rT~$ h98j +$~'-ll:wrwkG cg;Lbx=OݝA΍ˑx#Ootjq na0`-~N[c2 2?\UHPܼk@ICun޺7aLC]h?܊սCKrl^ؖsjxnyXsrOVmYosϊɽQ6@I>OXH<+DO: +$jlh*}$vDؚU̹63Va*aӾ < +#}PO6~5 :AbRWPϫtDŽ̙l!{\LG aC:ܿ:a7:醖48RIDr BeAABz^QHU~/\UWlyZ/uټ)6p._;y~Ĺ[Xsv YOs8Ѷ B"\pKAABr׆2|vJ}_9qTUbA(_*2Gl'!jBǸa[+Kb̠kVa[`z=tfHb  ss[)CǴ2lJMG1/y>dggtu@F$<%(4vꮍcn0-TD'mivav"{A|sb:Qյ!! zh +s#(tEHHrF-pT@"spNJj} ^i{[+7#wd -n}CSrbu*O 3. T~Ɋmo +|Ԗ0nnFSgxQ=^>(MޢLr<I>qSN6Dع# aj}~\ӄJ(@ )CWQF][;Ha˴#eRzrd"@\.E"JxWV)d7bG&a/ Be@'`n[@0snhYJs_=`%cݟVS&NRE +ڞ8w w?~5[c+0'/b 3sD-Y(+CAA҄Qtbo~- +]^RpAJ82 O0.UmqBq$SJl7Զܡpa!B"ʪmѷG^CzB[j<;\l +7?+?ii,-~%nyO6;XύىD:,(d{rۺy]5 J*NA@a#[8\D +O81lND87x؋JHv6p7))gkKukSQr:)F]#c_c75n~}QKVoT8Jj{uid&*#LH + +7c9/o.vQB)xeNq0za^e)Ӝ,qCclFxTE% +$JD qc ]rCۚosLV~`-)>p,?+5ը݋y,y-Z֛W+Dx pRĹy'Cj=   Y_=iBG97|V>,a) A!۱:+elz(33 י rB ʃmZILNC-l 3o + QC&_siڜAcv=m|@:괊R1acX.ݍ}d/!OJ +',5!Ao{BC-LmG]EJ)\ɿiK !BЪ4Y]:LVi*ujaŲ2alF7/jWgJY_H j/D{ѕpgR5%FT5=Z\Bn.ϯP5%8NvVA ssd<$aظ}fGx2 Oܛ6зԱsq,EuPxXVkTRՎa DCly$ssdCDo(a,q Ŏ~@X +!9Ԥ`v*tp†% 3'-ZȀ)>Uc\4 - лϝmuok5[17/Wčή9tA)CpAʷW~;^ {[kz7,(x/ȡ J@s /dI)S(,7R 7 Ao +^~lW踅'GNfB]}#La2N1 3rx\4I   PꔵVN ?4xU =z܋,w\m+ҦUTvHPmAv 3wFrx5}&g| lٜ&WBbr:V=C=]*NkObsJ([[פBSr}/Jz0%q̍TJ-,i8b麪󧰔ε57 5ce^u5w9k6w BSjgrwB3\+ݩO5瞧RC`nĥ'F3wnmL(@^QBE-no'q+DД ++gj+ q̥0d /Y:6vV(ȧbm AP"sr\<~(C>+ + )|:- FCSmx(}ncgo^o~9x;:B'pw 7C۟׹nAHKHu)KE)z`tƷ]N(qA/=rs`:  oo5H"!*    <UkN Qj +ȗ kmV3 Wm!q b řV%A~m};q_zp O&;;L!mQ+(UߵTHɤrP9p; +͝cBRAA2Aoɐ[\@jNG=㌏ͪY@-p<tf;Yۛ_'w@䝹pq?}s9`>ڇ槴ԽQl'n߇a KkjQI1ܣcG^Exq:~ Kd%Fh]EL6L*{BglaQ&A@r,t<~'j†l8&{am$njNT.gVlRd-q8?:(r!mm}* (ע$jPW_2INQ̹'_^Q 哸 OV:$A5ly1sXCx(cA +^q.6PӤg +%2΄zj_`˶ϨsF8Fo{r{@o~yB7NAM\gK玎sT9J]&wO2|i}_ +-|XH:BmﱠpNr!  PpHuyș`RlB-JE {V%q5DbrZmuiu:( .{i|}7#x8C.ڊštف6C4΍C?2m4NL)nLsi:_SEOHixZo޺241igW +] 6 '>|;c䎒 rk*I}T|o;6r9tA9dIdϧzg O3 w+ЕQ/k㮇qADQm\j)6nċn(Q{{G|d3t5ZVףeu=`'J?\?|U,!l]rMH + j.ܫx-w]n wUU0ޘl\+5|*xEAAAAݍ8%w0qr;=GLۘ{eREt92TqB p^\rndɹQe]!;,ҁO px_KU1xL͔yȓB@2m|Zu_RѠII;:˚jR +gnf_?g@s^T*\:wP%a S_ގ?븑'38 IDATN4;$\eft|\hzq2đbs\뫝>=OB~ud"n]y΁&Գ֡v~;ƋCnrojJz:o?Yv \4mJ + Qʦj{> 'C2Z֥RaRqL ::i g6a<`^ά6jO:bI4?#?* +o9>]u~~W$Z8eM5o~+0|]Wx[C]rq"QCW +ASE~fK'{8([YY=,)Ny$ٳ}4Lb}~<&J^; g'oH&N9 "p  Pp!pW&ь*#Wh.̍T/}p]c|lIA#jlGY= +f($!a\4}Q85U[ +)Qh\0 j&#*L䬘 +t\0Z?<'}PU^fЄмݡ{{?냯zU6#d yj&_|;Z:gUQYsZ}!3*a'fDWVOh;&ForGQhJ1lo sx?sco\juuU϶7|7eQUcryy:BGɹ68 ygrGF.lDmjQU"9\GFjo;9#(&.Gwv5_T7 +ҁ=,+[9; zmYc >9I绕 e%LXa2lL>6A?tUTLHj!n~ +*W*s!Èk1:]-b +sԎ--JNXX RL/*jB h$/|nHPǗ|)>ےZ&I1R=ޢ3-UnBl<_R[؇PPT`6>*|״} T 6.^C=y<"N| hQepslԆ/߾t+)wq]]e@ߝ狊Ǻb3j/fc9KwfbWWYzr2ZEuY7^;#Vp /~>I' sG.Gn +szqi ]E57^=Okc%`s4lnեz hNՓȊbgݴU+)$DAAaL`(MVAxVt3p'N2 "p$)A Ra 6SN{Ǔ|F\V"8!)rCmš$"/ =s3˵i#2k}m3VՄR,Amsk` +#|#%=%V`BSeaxbH)`uogGjg5-HX5-^̓bhn5RߌAs/Ũpۊo);/L{ζ|`|.SW~ؽ{wFҢ8T8Fmym8obf.l9kWI**4VNp-qVjH%Gr5N |XIU#*%xo=ϱ#֛P"Pw3LRyq,yD!r)6r`RT VTɅ'0;][Xg%ȡYȱk{w-b|8D4qTV͏-< UZHRiӨ?쒴E#_]hU̅l,4aBТW]h)5.`kM24׹ơ㍧mgոo_Vî'_\\3ٜ}uMChʯbkc3f $6O(vA+v9ۆ)Ϳl$B~6?sn-m8V<  0"#Pmj?f",=ENm CQaF"7rB65" J zg(!(U01-<ܙT6q'[1DrR9σzPDω꫸vVyߏ,8>+55>JzX;<jRRš>s[ %$x=o\6%Fs~] j,-!{Ņ]ۻH8̣z/u wGoQy8hW'Q=FE]'|RJcJdc5EpWM&[.iTKU.!,bQA%bu(6l"T{K$|oLT; V(kS~5o}a*$ }Ֆ7-e+$iiv!)9}o/Y&>FmwEp]N(U O5j&jeLBLZ;R"u ,L"߉dsp8Jo*h"I{   >(3NOBa[dqc|8LJ=Kr֔w(l[x.BhQZ1ԓ"X>E.A($DA#& +])iQ x]8ڕUhwz|8*thÂ>wg!MmnDAkxԀt'Yi7"M:݅ +$ɖ%`c<,/݅ X3E6pҊZ&8抯)yĬ/;LJcY-[π1礚̘^LK +][Aj47Ouϣ:yk3KQ15M֦/d}]{AcSQ~O9#Q5EAA(2qCA-W?bq8EfND<,Dpt#U׷;[x*5ڟĴ>].džtM +ݎ;9O8]gsRWm9w:n{xBXܒ]ޚq7;9{]n6_B]]'y0MaBv {(䤴*5tI[-3Kfr 2:FKةmz\ ;jx5EAAA$H-˅1 +S<s%|w^ +8AH%i3ªj8wxe s3';NGąꓧݵ[;FbNՀmErΠ@ )Q_ݥ#ݢ+IZ-q>Bb x{kG<{|{'nj553y1rk%A'M;jCo>zg&ks"2nԧ_h{  d ?׽! 1Ɋ$=':Kx~mJ +3K=sꓭc|ո& $ +b4#W7?t?E vrx%?<3HgPN۹m7kzySB$vݨ*tL2[5r6H9>ڳr   P…$Š Cy덞rABw|nuo96{!Nv~0ߩ6E dnI2}*p V +vE6y irC5cDZx-@ uSEjip7 +~H7ҟb"7YW/S@(:}o9KUH֬_n"7sw;ޮF Ʀ +KzLnt-4YWE&GbFmU9jƧ۽(~! uSBMЏŭ`%?\ ?"<^ss$dl:}&ǡ/^N?{ƃhVWV;|&x5C9AYvl e;荰-4c%zE|}w.2Lbk-̢kWz\Fk8|: YFckڿfr+k۩S_߸X''Q/OrΚid!B r|aSw[ +/?"ʹ(NŽnx &zl)n3E1W3f/6 <5WK <ښ9{ VWa u5W3K"/l)/܊\؈ZAU5X1?;ğ    BHGD(”@4*G6oޒ(ݝސ1!Y u{eǙd8>VNp"IWELPV\A[Ki/_E3G<)4i=UtZ +ָt(>wL`~UtIA= + iq%{FRYA?"YWq?v\/v3*s &nK;XPNmrt"**F$T2V'ts&nx-l/:(Sуw`-ejGr𗄸Q1Ƴ/ETO`A‡*Z(AAAA'šVTyw\3WW_+=jv$GD%sUe5 vQVN+"5=a}goo.=':KKPQ+b^"~x![ʍ׎'I[/ 5}S?ëC~K{vXEVx)taCrD(4xUڵ}d8V5Di?*$6{[2R]%깯4'P?KATiK( Kf1U(^*bQAAA|䔦(celGnUeٲv| z$L)s)@&=5W0|۠w~7/*xmUT/ +]Aum(A xĽ5 EU<>!׆ӴQXVrwRf R,QW^1cY󄡻=oC;҄K8ϽڹH KK67.ōs,-02:X<0TQ#omUs/o!rdRحa4Lc.Ѩ\o貊釢 M;R7x'y(|a4D$@,*    =(Y :ǴKL;ҦAeLEmUlٶl$pitAR Pksڏ owԈ'oPT}H~)/;UN`O0! +4Xu{M]eWaicoA#ahp㢆nmHHy"w9tFqj{T%_6 60|_>ϯsaAv ACWXn%#]`QxA\%Tl&x2 dXTAAAA(z$# 9 i]ݍ!nQ[U?;^s_$GPFgWG65rcbe9#7W;vg)h>5o3ق$vWYI\Qwk:r*c`GzOIG (qEOH "p8l~aQw,PoUrp +.w=Ħ2 *Ӧ/\mUF|PSj8x g;9XƺzSnd*R3<|-9r˵+j0p43KSb@UQoR  XTAAAAHGDVBPXVY`J`]*X=SE)93|+uTQǢD5Ģq]{K(V;v*=3Ky[ J>ڏ3]ie|8|8B:D冹inw%AA(Џ0 Kudʡ)A† 7rv a9J1I؝ZLS.2ǞS3 l!%tdaD2FJG4(YV s?ηF{un^ +쎒8ߣD`}n=7{Qo!MzwSXllčk]WLT_5ela YES1ynG2nl^wNk;[i<A#X==zݙ{u̻[`[W$CA#"/QEY zp#K(ly.y.?rORUAt!$n .x`mᕏ= ?ӆ3c֖s)xdcm@{') .$p)^S7/ +-=;y)ɾA+nآH9J%%+" &:B Dg4Y$rb*[-ypSۮObQAAA /o&L|8.[K.;x䢍,(5CZc'`ќNÒ?Fr>ut60;"z61r;yrV 5C' IDATy,*'H Վ!d{dSf`_7;SiQjl׳oo^lǝxMB7=%ȍ ]çQ1 x#;RyP/Ԣ}yZ( F^~3^y 1~e)~ôׯ,;,v\R=Т8tHޣg>g? \Eq)& A 6ߒEG& ~|g08SIJJC%?۶*59VSaL xXa"{ld +n6Ss}򔌍b|kUGS1O;AzkjӞolި"4RqM|=96崀F^vѳ Z~.[?qPb614'ri[w>&*7+A'n#'bQAAA&jwȳ, _@o`$=8O j~B_m#9x-ka%w.+x(Im(;Z* dmnel+&O +xL}F G?^'F{O^Mt'uW:7NtƲRy5)ڴ6`yD >䋺K23.FZ *)1g1Vy@{I_j_)݊_kkuy@ɗLMw9󧟯(\h}-֕~+dfhIyݶUNOHC+1rV\ ua..xQ!ci̤*aIDZv^t ::.fy9i*-k9m~5L UD$_\WXq_ordj5G<ֽĘǮТ=6c%x;, &a?7om\鱫a_ǔd&=':Kng){[79*q C 91 󧟯]|o\+W"od /=rϵ-0e6_иuɭ%dM1jb7t>xxsণ)&[M)?bQAAAQv\u;퐪SG}ć<o>0U(78Q'ʀ}Շ7Fg۳6е||t_ɶ +P#ϼ{.rtLPF ;r"=jJ*#5V.};l;(HW\SӹI1[7ʷbf'r'J%Hc' 5R}k{B \Nx ;\3l[y$f冹]pͼ }~9_dl &a,ʜu~<]#Zîqo:rXTAAAA(zDEJnh]Ԁ)(0YTxbQy|jymڔrM+k_R٠(l_s^ + YQdqE4K)q %QՓ- { +`GIPΖC8ȖrݒYiPT*+ +[3y^mSiɱzvEAф.Y$?fc]+ni5JDׇM]WuR=r/KNߵJ,O'j>j5~)u+<#'N|$\'phw;iAgԈM((B\\Q>Z4gzqQw[n +Iaˆz~v̛)a39v~11cD% >$p]`y˸\c?UQyu]ۻw#lpv]ˑS|ʭ|m2Zq +߂$o\U Ώ%IQڸmge +i +=;dm62ĩZ-My,ȡ*~y@7t":$s=   PjB0I,P+Dv(^ +%U?(9l|!1?XմVsQ㮯]v`ќX箯][.57 +_ƅ7Cе9h0"}v34^^: __ktyFMV.jD\P&"aD\__hqT)Ģ"   B3"8dw:i~ ?_AGpNl1W6I= ;p%QBYCP*t~skm#[AIt;ySڈvGωΒVuUZxTHRl^VNHРu46UxHĢ8;ҡO~R*]WCq55wYn}YH\uؒ:ϖ_La x^ug<4Dtu% ?'(vL Eu|ΟnGb (Hnim az]c%5Mm<e,qr8 bCmUyZE yEzŌ"t:^"TP o:&leA/p;b=w;)KJTD . +e~ +z2-1+d&lj$ NxEf9ܖ$`pD oټ-O:H9'H\7L/=rxĶxp?g}Ko=z6-'*G_isrRujS-t=u +"<&ϤOht+m6Pl5h^k6u~+KCpLb klENt=n:}&B? +VD1]\6UgoW-8? D>,6   PoGF2IL,&Qm0:D%kEn4f;{G# G{£뽢UE6X[.$GV*.E}opeBrSDEP}g<+_5Nk{_5#b]]?ITOzJϭ_`zt{ p,0Fmι+V]w9-o|4#)x5.FvNzs̶ֳHv<< Eor߇5GMkMl5 +_)5Fmu kYfr[Y{0SRk]wԍPx1IO]ޣgaJkۺy hc-b-HJQH\ϟs߿pucF_!#*-/gol?{!BG4.ڶE.7JL%9D :=PwI5sAą]ۻQ=ABqcuV^[fVN𔆥6o2AeQQοi$((XĴ5-=5^~Y"& 굨̂cxĊ[ZL G] E _)U| Tͧh[2O|,l~L-fj{I< ׉UӠ{Lb    P*_oٝz["LIn6idTj}#R@?[07$7Iy4 ߡUw$;4U{SiEQ&VRxesS[] 09y$Mnb05ˆ[G3( +KD;Xok=뉢2=NbL)rCϠ +)Nbac.9AGv1ErA1"BڠJYU(E!X0_81DTL}x]o})˯ʊ*/C Iz)Jϟ'7~9kqC  +:q| G!cA.&dQV$lA3-#Џ3v>C'ĉ.Esp V0ncy` /'d53 #ԽfA~R+x?pVᖟj)\Vi _q/s0sU>x|;?u"Ȫ{򃘞O2_KG'NVJHbQAAAXhvTFv]=AknoWPb%̹yW&U:Jjwi)FL"wf¢zztUhQ0~^sĢ8g^?}摭u%CQUt;3" G#6s :fs<gE >d97 "v0}jSQ9ZwhC02Lvz][$x$.'uOq6cU#c߭;-4WBg<|cOzG\PB-jϝD q6mn +J_z䴧z.m׾cQW)""X*]Dʹwܻië#p= vT-Mžq&a':: /D=E凿*(Jwm,8כBC ?} :AFC8]'q0ix1h_E}C6=|G %Q ;]<'6]˚UѵJ&;HԊ$ZZKUAC~˅ 3E !{K,c"(H zQ۲zveZluءr=?u"B5.p_IOn"FEEAAAgTYT>_Ad䒣 z'J@;j$ +]=vX吚j܁HMu'[w ?@a}H؆Jg_JDe2W\ E*'ġ݄ n,!W2U0;=M +Bo$G!DonT}g|s&V[ǣ2[`QSZ#GйDPmb[dAvm?^V{'z[WҚh?^Bj]4&"ˈ[M*n:dEmk;AIC ,ݷjE^aW!!z槩 ڛlF]sɶw82JZCEz6=UEKk[*aDp#J_}aQ-*+f[kW5qW~3? aQ˰g~Wz8רYZ>[ߠ=W9C"uKfii~KW8AbʉM%`Q=9(c-7̵,rdɶZ}A]Xfb c} #'_Z ԫ6*iMMVB:Ho{hӽVk!AAAAQ]EWȴ?>L5nKH0MTXV)ØX9'{ M哰"Ԩ/t<<2iR\Ly#7t @VNDMgδz9QuǐG`\mEQ=hxQTsl;[9Q1KP:![*}f,} `WZI/8VsKo\4q^^9IjbP FM(ZS[ 66Y&O6B̟~ Pڠ~!3t2Y~$rC/2~G<""LV .jpN8G:r%dF]R_U(Bq[_ +*dcelKׇ|7deJ"i)gl빃:\x߬xqͳ!*iql/?$tbVc]A"ΖC Zsg { +\Fu\ր` la.Ķ ^P_Ln[W[Tt픓T/E}MؘB:bQAAAuͦBIPRF"P2Q_Ug7d8>X|]ʴ)"kT(쨨u;Co\&urs;/L=X7Ɵm9s"Z +gg!'bjOE:qN8:(rc0,WrN71i- Q[`^~4d&0ja0 +(?dSD5tBK:_kҋ:q͙W%D  _\Tok [yFgg`Kt~kˢ+(zˋy_o Bn.n\^a#%j؟og>ĎLJR:y8.sm0 IDAT.;[%{C].n dB!WA,*    Fmp;;c5j#L:Iޯ~fԊ#pT+_HYG2PZx YzuCܮB]1L;.٩/y{6xsufWG(.((07MDޠm\cqR#Dr$d9mAU{9GzO%fa(ADmF!WaWQZq[p ??-a&1V#BMRyTQ#L%o߹W*U7j6LP>9}+ i\Z ]n-o 7 Űc6۶c"9- S+'xĉ {uKfyraP#-:- + F,*    =6㹃JVbvZA@| +EV(hSLsED+!ZM!Rd[IDq 9eG6kNxi,n{vKq} Ϟ~3E"9o4Ǎ+&nW!q53{IcSD7AAGq.ԅx͔2gU[UXcZ +ebs .|'mb_~yVIoa*m$k[UQ~eqÜϭ0P\P =#X߬5>~[Tşrc6;vum=Ht1O +  @,*    =6celW&d௛ίK~VvvsoP^f[+xô)[mg^$ӄa1'yuID$W6xGs U%>%OP%zo\ ~<o ?UT|'QFv$7r"8WsEfʖR=ޒ!.vV^v/Aa ++|!S3̱*,c\>\*Lč.HgWGg +jV1x+sR\ |>+BfM7.5)cVD^A#eQ JҐ@A"/k`BP1E>1jx/-CA Ģ"   B3j-*>fwHΣ4]Gˋ9;ػێz^,UlBQ6@ 0k9cdQdBsĺkdLL'H0&aDOu-?χ=>8Esk_[t}HErηL~Vt|υ;/\ % +5?KޭR8y:$bMQ#729G.#)W T(lxFc?Vq\[o=6ycX{ `_! "hJmV@ N*JW/+MpQC'lڙBTB5 q#m%­{ph=;*kk|Q}$$5gxe❋Qw9ׯ(f6t<$4xUhv>DOɿع8R oX&\b +>~WDgQ=YS +!H96C6\,B5v7 +\ k! ʯq]߱>a {,gze?{a"Š|7 +qTdy1XTAAAA(zFyAM(bJX;aV{":Z^wEvjC}mΐ: kٳ6ꁒ<[TM)w"HL1J?;QPw_E4Njkuv^@UHhWotAk?1Ep珽Rj ȓ$VN@XC1FL8z 8.ipeSvFot |d<ڧ <ɱb>*~yGlnςEs1#mЙY\uc~ +AD0076Y"rq AAAAŋwF&t(XI%Jވ˞xwVN/O:x":2dždTn7>f٦Ѕs~{Kx(#n%S۞͘ѹJ8J5SI.1tN5#(ϵȦ#9}Y'jFn]9{~|r⮿œ +T{^z3 g.L1JA+ݘ;$5?| NiymW]p&HϿXW8bg?kPLe~ *ӹ\`E@ݥw%WT3hQsPI^u! +)u*<~sM=-B~Yv4 w5#S;~w_[L;Ht \  KP}.(1/$rcVNȻ8.tD.n8%SSZ$#=YԎ"j+X0Z΁}b[E਋YY kKɚb䫝(nW#o~|%.t+jŽέ%dM1jN    EϘdcOL)GŴ :mJQwɺb]?(5b#]ůoy%m4m{ P\W]}/"e\/!5-i}#\Ldxx[G{EWG`xF]Y7ۢ9mn%]\ÿg?ry՘XViSo"}co[1kY0ksvހFdaQe`Lh~ ݑ ;sƂk~ KPJ%KҒ~b'2[א +"o\qҼ~vo.As!2=8dݮ5)W=;i6txbv[ AAAAQgQ+1ۊ|_5cędx1R 2 +P XzjX+fWyPwu;aoi~| o +(!@yn" lwW?M|@,<$lU9q2PQDKPOJ +',Վ&A_YVm񰓌.ny6;9+'r㍧eCG(oGq$t͏!]]i~yLQ)Џ3iQu E.pK +)h\ūxкc-yts\5TlɱtR]p5woLCkQf!Qd=m8s +Px] +FI¶b5{~7orw}VsUgUֵrP4wIw}&6V76YyZȊFu蒡vwl +]Ċ7El+"pd)tȡ:C؊:2YqKTA%^Y3op̥l)I qHaJ2DŽiNY7W;{U3tϫ!LWh}M)UU4}sW!&ufJ$l>S>OpVЗw+m1CrlW$aDM$ؑIp; qݒYNP-͏uy gѪTTV# + ܢZτ*ߗc sx#ru}JvzSEnV>U27t†jߠ7\p-ʂmχcWG|j \vM +m;NRaC~&N=,)يy7{qȢ)cm,'1w!҄BxE q:Ln    EϨD4ֆw~;ُ*p(*}aL;~QqTفCP4G6V0ȣln;A󒏙;'~ƞbB4E[ }'VI;;s)ld +mLmYawI$=/eMh3~"IT$,IGnpmTq7$(qε4%Ogz`ЉS8Tm" eZІWa= ή)6 ^&;NPs b_8 +L0:/=GVS9aS{!&;x u!DgI6֚0Dt"Kc]yސ3N]n{il.S"-s{ib#f0B}M=cȋTWXOlX$2O.i#jq7 QʵJ.~MPk1ʵ(aL_0&HӮ%eY5+N#:GV~G"`~wWw|T34^^qJ*q"AAAAQA m`p^Ŭ+\TU-oe‚n20%TwugBH<_3k 2C҉W=8eWgE%x[A6͛&4Q*ar8%LtuvD|sq}<(o G7j,6"pA?a?6{?M9!jŐ0 q)a7UP9SSOU¡_Y_U2-\3y[\7Ȟs .zmJ1޾p RoN AGԱVˊBcnZ9Y`I'FS5/'`pD oQpHlsȆl1'gj^h!{\'DzhM +?t@o,LƄHտ|*S~]h),6   P|l,^.#9.Yb?d /@]}Nذ(Q#7t;X(ԝje#*j +kn|d](5ynKkJ־=+؇u7kk)5kw7m|Av/nU<|$ GIX0h۟mM#5tUQLL珛[*)} >W*lk=u}|wwe 7J'}0Fm@|u w9Z'~os[c|0%%zͧcwrcwrm<.5U܈wYvsQbLEV|<@}wQ1jTje^~d\ZGlGt̞:j?"7H֩PnB4? /ڶg3--uϿDRiq$[ BԾz_`6x:W;;|,X4'䫺hӔD8SJY]'ϟ *p9@IvƂUD]M:OHԠq,NĮ3*fj8|:6Y\0SPIB\o-.G0UWQۅ vpڬV$UW9?l0%̊pGfM%oue{oF߅8y4z,6=X\k7 Eh 8wiL Q d 0%F[LH"j w㳉d~h쉢2=NbLjUHM Sb$#D*U-B\]@F-9>[,VUIgc1V0C^Q>͊bS'r IDATҡIRn6j%=GW)jiXޞޡida+?TEWA&H܈2dDܸy%?q YaD 0a 0*𲧪Ղ^;z*"*pKPa?UaOXIb!yhο;ƂEs|h5+ +@}b 7-j~qUKPH2-2?PPgU_n3}zNHc'$! *^)Sc뚢ϯN:((OB /*Ď\ϱXTAAAA(z>&]Sl,f/o +QgmNR0ڢ68Tw<$UPf8[,6tmpT%*j)9Imx͙?\g:TQs_$W6E먟 cKQa^~Y-Ex8M7S%?qBԨ46U ;LϯY{K#8xdGJ$?ǯIPU荤S!r]x5,xQOTCk9Ӷu |k~־Wkoq;q5[$Lnv>7wʵ*+`ǽ[w>W-!&{HPl==iH ;_㿷l>5‚v\n0EhsU@t*O>&r~H*SԸoTOS~M;|89/S!b}"| O0_; B@pKʫGMD%t,cY*kCK/ZAoaY3L3{mjǯ:w<5xLS˸+dfz +/jrS%Q%I0ע >(YUҹc׳G#%YyEQPd!k# +LU(-h6>6Ԧ12U*n脍B_V<|>I'ˏ*ma혈Zj&˴*n ٷ 7RXTAAAA(zD]"&j --ã%H(Q6<#j +}&GI% `G4EUx"8k@s EWE6XuDB*wy=mg_e^JM2:cD'DKaY=5?|=j>z QϓnV?1OhG[O䣯D'2 O ^ؙ !.ڶ)tAGӇ 0-k%W.vP+DLy2x8}swW8f,h/x\!1[hNl9GxXn P_[~wQ҇It HbBz,k2?XTAAAA(zDA%,/`G +Q}s'端 zt\@_Νt3EQD(Vn6=ذ@|UcLILη.c|T0Y!d~ + Bb.5''\.VT8zJ !2useq⢐+} AAAAF* + +64^*{o=a~?fP!W^xC4"MKaƙl +&\?lHBn9B+8ƬS+'p+:cFz9ώg/]H 6h|4^iǣ +:X_Zshd/Q14{*fpYQD.>9ysP;i!\ldh a? +C,*    =gT 0GmGɑ{T 0EmhjWv"$RA/*Q1ԉ(QQx<>!(F~fľ6td7F<~>/IجsAW"p)a# t#DȣF:H11?$<6 z<?za*65%vu%lѯ\,~uj naX$/cayl!EEAAAG"8[J*f,}XLWxj[IEqJߝT(2T|P ?^[J.0Es+qGv, .=?)9< ʎ\Mm5zS黢|5/=F9o>#]\'=a+(hIccc +8ϏQ#Pgb8_,H% C,֏e7lBUn?Oªb; +G.ڎxFA笞,FI$uKf%R=D'm߶켮YM%_m&%U&b/kt_Eda;ov/]cnqFP[ '*rC    EDpnQEm 5zÔTwg,jxm}| D};^ue3i-+ƗGw#a +A ;z$YljH}G(Y&l+m`XڬMp10ę/]WpcLN>Oppq˭ + D[Ԫ$xu#>4OTJPX.j"F<t 8ln]d3ia%1 1}?/qi5 w#|?f(q]ٝ!$D;"+(D%rEnr{(l7<cbNca/Ƣc 0pXx j3qK0"a,,7l - E)"AP5o(Ws߽^UWWwﭫ:~9Hαz7`yq tՍCh*q`+(b0W١ D +LNnK*CC,G#jYJKXz< p}Xzl*7xD2wG+h(u]jhH?&ww]5~`ߖk0=VE <̇KhsfY*wҝ`dvsw_WUFCzj +Я:6Rcs|#tw\".f?ԝg?w+#17+n,*nX*p C++By~G#I˩ wXy7Bu_g_M A"Z0e?l{B\6:3Kҏ#ӆ4\Urlp᭻&b܎za\\֏曋w*Nwtx⌇NǺj2r_e|/[^>`|>@Qan\kҐ+EVvbϟǩjc78\0hU,eTEX Zb"}=nWWC:xhloBBW^]ŪqzSkCtq*ߋSTԸi6U Щ*,_#ljvR9;?w=6>٩i:h&T +hoKܹppt#ӉJ K~:񟙦CAMV7U Y`L1l^cuiy 5l98 wkK|,|΋"99ã 4\xz^g0߽H B{X#PnVT\ϒ6_zs_K׶Þ; pՌĭ?<_ŏ_o'&?m3'&{'! +#4s64z\2oB~ng1:4cVLWz] "d>5okGĢ vʹBX! \UwNȜBMqȴZ焄o\\a!_S$<wk\2|&VQ}fs7X%k*{Yx-\6 {M:sͼ5zƷhڹ qR7y~Cr^~{2DW,>q?Ȗ8[ޯ[FLWk)35{-?ZFKޘRkG p qiwNO!w SaZ8&h*p;n j"U]ǚ?g޷XƙĖ|W{i|_#u5fYՁ?~NL~>9)9 w7tAhU>`|>Q#d-|90,LJ23K-%+o_]ވ +s%TB3,LJEc{|D-%k`s2p%8 d}h,;¿9<1։42µv1ƻvQ$kguyNH۹<,<y+!"witxʞ#C~߹SrgyB-A[+*Z ضaѓu\ZZL#[F֯㫝ëp SN>`|>T @~w)+bX(! Ce'3z<yL5j/C +T-+%DUjиUlwHQ-ĥ +sJ)._K1&vL%X2]ן!XSL.O'jk5/B.ilȓ}w1z~ygJn5^:yTs|y氤V=جBL޿ .)~񣄘2d۫o+m)2P/'\Mr\fC';Z) y5UVCՕAX:XL~ u?y\PYLJ4Z[ F7ɝGv6__tĺ pέ}'Psrp8 *8yVs[׈uT ׏3<4flt uĖU |K"^;VwDpGÏMrNMs#sEHkCZ1Ə y?FyPP~T՗B se|\V]A\=`}5Q@큂X ;5OXue +[;dݮ آ)7+X *$2Hu}X6oka/T$U_-́s!T%% ӍŃ7E;(ҩ,|:.%Vu.sЏoo||≄'#tRa!f"U,~`yp5y5n4jVV|w͹ë/oWK)Cq#Cdx6_b (:>b}2΍|j`޽(5c#!c}-|fuZ.{QZXK-p!N_emܹ1R>g.1KU(y&>~'5Qh\dGb$ݬwtə? cC՚l%<熯,ݠ\);98|pbޖeyͱZE;#~91qn uṅ/Hyv nM3~y[y}8=\:}, ?Ґ#_=~qV! <$ƷQ džs!$gϓw|H+Ќm8bj|RcCI3 ^sKhP+h?dپl)g4hvgj8 c5}:fw,*w} UP 3^#Ӊ` hj_M!rj"UZUvruNH%,5~ٻ;K`=Wt7O +J$"Pq谓C*S.o4UDVQ3}!y:|y:iw;ak7򮍥Ǫɚܹ CH+;yN Dg`BTVBnRT9p5ԧ ))0g,q畵/$tmw 3(&nRJ[n^RS׿rWR@?QF; ́YFPsnH#g9|y(>[fV9F?WԹSuG- w{aeF9dfv6_?wKUd :szmahDZwݥGu92Icvvg'h*UQ7㔶RXE0{yyC>Z(SrJs/K\gj?[8eન::dW+\%՜1h UH4cLׅ::bD:,sm(ю#Ia9$/L{|XBD4s4p pkych?̦{6=y)}-/!"O^p +r@ +jW!'ć?w+})dDRn8ffwe#s[+8x(JKraH=Ze_j!-\U&v0#>D +}liX ܐBET޻-/edafMmxw~a%v?ٰP6C3&JC;'?ko|yXMuDb%R%j)>@2ΐ'y(8!C[k8ݕq/v(ء3kZˡPF8ĎCG:.*3V\AkxБP#_8Yrt>b*|8c_1cΘ b96~/]d+%6ψƅnZԞީqENub"$ %t>T!sUBH(FlhlBji,=n[AUEHS:q [ ͑UWYkj:鳇+{yaT)K% S7FR1Urp5(O*sMłoP?r… (Ȯ_Mco|*/xЏ>/5@sDD+/55~y:(c1Oi_KSi•788 j::{J,cg9nuzhƬs:Xa+srx=ܹv9ڱ!Έ^ BVTEslB3Bgd:9P}oyhծQ$7ܹU19 \Cs[䙷}m9F. ދ7eHkk׉>__XqߟiVm/N:NԞ ʃKJ|k\5 83y >}ϟe8>ѓjWPzR!!(y]C3bA!Ra);|p߽TqXŕ/!OZ{+2|8v5yaB_uDɒ76*O~o+Ǿ_5䙷/OպKzy o3:< {m-2idOҰO\]Pc92*+&dž=c c#8Sffw,5]fsBkB>ZTq^ݪ*!j6Z"MlRĎZITVg[|N͉b9^dg$kVΟ :b kGZΎKt$D/7ĵVs*ֱ: =LFlǶ + Dg`0O:w[F/vHUUpuChRHM "Z ܙ!0N!CK +A{|$yɝGם QWT/cquCQ'~OkpVV\!0(Pzŝ3wY1[!*DvE<K$'NkNsy˿k:UQD??w(Ԉm|w?-6ic{yvj(8oKfwn~ZwL!L;݄#*:OOn\o|v|'le52Fr.Wɥ3c?%z/;\& iE7weH;tѵUVǹjɒTj5N C7weHDl8aВNW`|]6|S +!I*TQNg$h8d#}5GGQXz^׎ m|"*pGtZq'pUWg 9z]iM5Sr=yąX65Uz +6g7>OkZ&$>.odBPpT{ mwyBGX**dϷ)񶧕\ l`|A9)q Ky.\|m蹗%>ɿ^VEUw_9󹗏%9/O9DgJ]*,o:>Ȑ;԰.1x䙡oo|erV(bSMC+a[ef)Ѳܼč=D%o79-NtXSL;,}Y*$A\RүG 1eȶWVRe)5buj7.Dν]2w<'iΑ;o BM0J dnsNΟ +o(,UW_G ad,ϛ(rSynyQnw/>J˳oh^Qpm|)+ZFݥGJUz95$޵3؞ݕqg$)+ *|ԽV7XaNw4$4ӨuCS<_P6Q@큂w~na% RZ4w[J OZ>rIE</+gU)ڎT$DC3o%YA#El;jGVWhxJGq +z׎?"MD*h)>\Ƿ7>O~GqWD“r:ڰ|r3Tl?OUM[냦({}ОϋppTbވuґGڳOJqHT)2"$|&ԁV3gxn}N:\<3dD y"ټ&wt?O~Cire9._zDދ;:ذ|b U@kӓgJ,̏X%bpP4#Nq SO B|6WV8},sm~ʓB05O\uCh.+wN(8V{EƐSX;n +@$pGK`)+{zrƖ~Z19ژ6}|5e.`*&)&2)og}k|߾DDDۉȩ3?~'3v{]>٦bfv}a==~%m)&|j W)Lk~Cݢ~zq,ãz-OvNgw;rh'fWl+kx{s{eVrrlֺyKUQڳ 2%_pp!3,K >#Y:T62oC^( 93ZqPmOy+1OR&~wlrXׇ:]"!}?"RMjN(,Sa#YFC[+CĽ>MӉnd3WQ%_3nNn{gW֪CD A<_9GABʾTǝ`|Oi&>&"y )Zʁ֮#W JN߷uP4\l+a'Sm\)$\aLٱ]~_6\5Щq[o)ehߵ(D =K,מ'u_pp \% +I覡7Ho__N _nRFsg94жX!H!A_3(cg8|U<>Hg9L+A_R v IDATyG ݩ>auux ;~ +#DL\psQ%VANVIY*/?J <ޚԖ+JvR(sk4RRXHGև*/?;9! +FRW1ɓ(ʘݪPRu_w|e);Gx537C[sBB9bl`}M7b},Q@큂=#o7(X$=|;=$#u},868(弰9q89@c;(&h*[ vwpryS _3;Aˀʹ`e㿱8O|>߹L9Jfpҡa=?w9} ΐFT(և_"{+!*=Pp)-DK̈e.oG +H2F2#ۨX>BV|kۇϽ|,/0@L舭2Bo=t:y-p i*I_T-?_?wkj6|I 9> +ǩiay.K_=c뽷)=Crvx'Q]Ͻ|,!":ܾk ֹV~ɱ5wc@Zg 'ںpskK8Vx<'HB,c;㼰֙Lև@ +j5:#/qic  d'I^R$ GtM*fluxdh'=r;ã9whIQ܍uߩC3=q{{~/}?̍FZD]M|`[۩fUvyHʈ7tJ!E0o ;uhn矨}Yu}hޯZ&džQ܀cGy=io|Ȅ/QoBp z~>q:X7e;W7hfϗ:wA^xlpA,YGs 0ܑ!ᆋ˳0ֈ?ҹҋ4Nq;Cu?(-"JjAZm|##d}Y3pn-Ȗپ⯜'BTP{1rk]ffweڠfݖ&t$BR~fRsx"URts[VmT K^Ntkj·[c<.sHN$ JJ 0!7[1(3> ]+9&& 7]h ά5ߴ]VFed}pꗹ5]12>Wm9s88i6Pp?CBF2 kԐdG;Z-V7H+W)g޻-m8}Oڲ`.9?v>l !SF]1 l++~Gp#*3T-=r?INY G'LgϋA\}|yIل(PmQG^7}'^v̵R4#ܰ8`Hˑ!̽DsrHDa*26KC:>BX6ׁ;Xp@sMswn0K[% ePjp/xPEK(5਍sCsdH05؏mq\9(*[l7?ΟOT'GwX +Zuutȿr`ҹԫK\ʵŭ <7LE>ƝMM'n|Ӟkuy#yД8W32mP ooW3^@YhX1q΢RoC5A +j˻59<_>Kʕ!;DW).߷qZ9B mγ7ϥ)SB +9dU`c_&rdHFY~yc:$x y2sko|f o +tz=?]e6k%pp s# 4k*xn _C- +3 DgnPg -) I8;snX!E!䍑t~bX^M +7C)`_ .O':,W!__3uU;kCx;D:O^| r4K"".fZ+c"G{Ʒ/io{}Jae$3'5g Z!*=Zr2ҹi8?w?Sv #O񖊎"Ϩȿj)(|0Y]_ = +<WH3$ͣĭ\!NADtმ}9F2c*BqW^msk@oAJ1a#Eҩ mB,0+-ϣ݋Rb߉'̜;rjp"G15&ltĶAˋa9 NJՎ~D:&|r}.N]lU*p<2d,@@ +j@ShаyZ4+^ҾVyӎ  =x[^9+O<@@ +jvJ7yhyphʎ놞˱DaSĢk< CRohcaQUE^'IuCXj|hŠkΫ_~8,5︲a)Na)81#7z rpذb-A -A[Cb1g{ RgXF&3ΎKLRu$K4V h׹n9b1 gEl +շ/{=m7>Oos~z8{CYd~~B~wZk櫯 }, uSo?FiK๗%qNLHHZGNw]|>:<ɨ˝mgdA W<2j91!!j+ldx}kU~ϧ]'6hŇ<矧}s菾ʎ/O9T;5T1HP1 1b9J,qHҍʲQ+ϓGZ874Lj(ɖꐰq[9hXK>?yn "y A@QڃH\FB*hOގ݋Rw\yl;Q3m6J*鸉pG94ǧz):B>y+Y¬B(֐F{ +97|5GFs"6<ߝ22e|!y!'Rm + QF(zn&(9tGwhF{AS*>-WVְ +,L j,\?}'xTW3O +C @ +jv 4|Ūx{|Tqkim;.wCvPjZ17Rm©{JLLB&:ڝ[U|1%pphǙgk| +!pfĆJj^vNUdvz޵Bؼ!v@VGF9pr`BTxU+dD%L1^QebTuT]ZFlHM'pg}Nlڃx +;NDQ +}&j +%.V]E@זg53K~Qnp秕ꏼsg$-#j޼ זgB\cQ9cʈãpzsk빟k_sL<}pe[OXyHМ)A[0XW~Ñkvb:2K][:qxIsiΑPC SVw 5cN̜+ܰ 2JdY ֏XGn{7 0z!*=Pp J.k^,y؅ %=|wg$w*) M)zВg'y\̶Z~-bFѓ)y@o,AJ_{r•y MA-]P㪖L9&c;[NZ=OGvvcUN̥U]~.?MRs)n: :s2m q*A[}|58bk5UZF}G'qsvdʂj*>Tvt~JJߍu]B<1ĝYViìhlj+ X΋U6ı!=B:55>h qjF +C`m[u6vM^;n3U_"shΎ:t`ynu_U_79;с(8DPzyJqw-[̓Q$p4AGbbHn2Q +Gv\K8)@v˭UEf|)|5DbC;ךj)Vb; =FysjP5nI{^|~n__/dv)A_|FŸ]O *voKbŪLQTqtR#4|[zzA^u|CCH)N +zokYia <̕u:Eݽ +ԉĭ'Vjͳ濣i9y9Vq$䚾:"N +"88z3+_@^J vaw/>J г.KҠ_]8]Z7EsgprLXR>#E:64PV␒ҹ=N^<z9aЌc5*m3BVO8xΚvrP5BFz+Oz*K?n5cW)c %yh'EY~_=""{csDHnL=.cM݈GC{ƅW^۠5k+v.+7Wsx>0n8U>{y>$=g3)gei\gm]SsĎk3ʰ*ԞWpLizeRTwwӝX 8"etݖ޻M 1ͶYdT~oMyj yܭ2yjj 2}v9;jv{;CTհrETF9)_wo31'unj H(A!ՍCآtBںUQZC59FudvKeԞVp,\6DLzd4.Γ`m߽( !CK:LC6y#{"BQ$ZbQkIIuJŝ7\9OR}DSjXחIF-5unN̑q]dcǒ?W`ZP +hf7JBnq{ vVO-v/U)c O>Nn?`*YƗ::n;HטMFNPOZj-Mn%>Py9<),4M'Vq DŐx17A_!rw-\'oy(bʷr E*J>UTm_]i$ + /r} gBe9?9ך1y ||ax.=R׊P'QsU~0~'1%n__.b w߸7i.RTE+n h}V%N"ڙ3qe|ZL֙ -c5Cf.xq*EC-xHTi;Dr4r}sX9>Ym|Ntr}q(M#q-Fվ%|,kz#f>$T 땣!*=S>im†r%Ebwx{ ++ZON+, +)Ip2_fk'^p@F!#Cd_( .u{wWNks ϾҊl}{] ?n:kY!1JઁswO/Hyrl#sƷZnV;$nơCDg%rkSUXg4資BK޻ymnR%ƌ* M۫ASSj8\{殺!Ҩ%1eR44鳇+C=\<HG3C9VJU_ >'KD; +[mc0h0KϦm*9?w?'y0𰔅˭ZN7Iw+H i 1C+8Ab%Y>V s}˭c9(3N!#p Yb<TNW3|5/~uB&E' NY~ + +:<6>`J5h7Y֑sf*y37 f>gq[2HևPGFG7ƷncI_}1|e;RPh[U זy2xkے[;PEBl\\Ədʽ•[X1hq|G Vnm0S1'(3CA +j@*8]΋SIN۱}C1+'W4ꇵbIݎL8▤D0ŸkuyVoe%tjQ_kX_X +? +KqL)4 q(mry/Ӂs&H][*HGcq RC7 ɘ_T9 -[in+ >:VVBD51XjBTP{:ɨ3R[qYlǫX+?ݳ[J 卨mTO=*)Zʋ\xǼ8 A ђ6w|g<6ɨzθ>dG^5VBBQbw!ϿmXjPB*%^-:G,Pn*vz0-AIT*lإ + Y4mStb|;2Dj 1>7ֽ$/\ªdBRw [gjDmrEF +^A3?3 px![ܰ~Z~ߋ;S|bbhx{ag:K9]],ƣ#2ٿyYSwMk.2yj|^>gJϱN _EBSb;|sT"cgvl;Gֳx99q2y9<AU9cC;+GG:Y64Z,U^4G|FY uh`|{>h!sk;:3IF<1v}y{آo G#Z_HLrȊ*Er_'Qy8]*{J+i.TQψp뜐DV_^V T!J,Ef'1Ϩ**j/NĆ2$v5ׄUN;oΫK{ƭ[YXJQo:4ܩ2NNsg eQQi)*FDY5l=?_b:moK_EE WJ+VLeɰ3/bTT2FsL(JO=xԙ!yvh۬J+ Q'W(eXJCjbye;z堄s +h8nEː)1ۢz#\ ' En/1%FԡԨzjd +Kqc4sE[FnTZjNY%T!\rj>tzߝXc|;> ɕVXJ:6Q@ + Wq;{  =.CLĢ2E_]=Z|1 j)<"[a!&LCQW/]8W˪SXz[a\-W3.PnRdhse@[ Vȃ ّWmӒJQf'B}%s-^1ADt6oڝ-Ze#RU(ЫAK*ΜBw'$l ۹\.LхGrzZu.Q6GӃ>KZlō#i 7Vgxr y풟!rz-NKWĎlˑaÖKsx8=nY ~ت=hmijX2`G=Oҭ{__hf柍cdʨ8,'CV͐* DMJNmkg\]2su,( U2Hz|r5u2!*&d)hgC* % )#DTn*oZV=9AB/?lmxĢ]Ʒy"v:~=\Dξ{#Õ!Ke&EC0^|aheX\-+:5x;',(7be{c*ҹ|ҥˑJror5IVI0ܙ!^U35 _ؑ;#֩X;|Y$䯯L/*:P$;ha ZP 1stcyѸjyc{}WFݰ+GC;! ѩ!JJe,҅e(8Nl( 'ȝp~MxuM1?w?kU{G^x#xV1_qEDH w:!.NYAj;=riNnPvRB)1nootH5Re |4Rc#ϙU!*=Pp䐩^1'dWOٻKJqʍNHyEs'reT( 'sRO*2Kk/t :Kgiʻݶ6B\K+y 5FnfKfs0ཛ׆ܮJ޻{FHhJR>{m 86"ԡ.*j+dͭ}BTAbUxUFV:,%qR=z/ϱ!^xl_zʸFXb^KJ(!Ҵu̯=?p>>gV.d' Vk/ZNZ +k~E %9[%H*EkPye`|:^(,AtzXc|1: BTP{SO8SHD!M>j%U)O=-RC& +ZBW}g+8|z !>7K.PnQ4@4yZF(SB:/!aauTkm!?΍n 'ȍMV kcaYT{ɝGv}=?w(S*T$ >o^|dLNAE*^GItI]rKnW*2xO~ͼ +>V"J~͗^;DDM5R8x( +Wm䠾ϻj)Z. _ )8|UV3wW)QyC*!㐐!-# +1C冥vMk;3rqGtp,fR6Vo 铐O!*== >5<&sx"UkpQK*u޻-^Y^ӧokς3t<|cTjW+4l$c?g }eD +BrvH1kighXp ɯaVh 5˨ JUIBZkOBTP{c9QbRspA(GR`g;z/D/KQ;R&<} @w+COTΰ 01pH!9!cs!`~Pڃ]ƊR(S%rzKZB"W}X`>sT'ye%1mg~eO2&;eXņXU.p.0gnvz,C VQ^ D; Cê^\쌃v% Ua~Pq3K3 ܐIχڝysɪ,djv+A0<ѩQK$JԬĢS C!ڪ@bQ~̃RJ"ۑ +rd`~ DGh0?@b="ٝskkF^uG齬o__-ǭ6.ݓ9<}pև:C~Ow9d9s+F\"C3X*W ~;8Fy#Gia{M y\GͭfUTP{AC Kqso__WzzX5R(3<Ņܾu]|.91Cx Oq煕jjKK&˾'62)<ãTyb[.ӎH䂋|pe3|~Y**wH6_+bɍt=P=AL,=$|]csjhNY#$|$ֹQd/5 BTP{h#ӉBV.OrM_2p~r7|-Ћ7\?0 ԃ{ +#Ty:fhcnm=~QQB;Vw {Q ϝ8.$'sw/>J{e*>8|>I {y5 xT(!*=PpĢ/<ꍙ]8^8yΟދWZy߉'c\{|DUsӉvԥ'`IÅ!mQQ'&vL%.D;%vdNkȐ- UD SbxL؉{Ѐsl'6RLCq}yYV>8:!rnu/~{VRahȃ&<&9:ɝa݋_;>G w`}Q@큂 Zu 9 j>vd +܄ULGU)!8mw*t  oKkГaK0(Q3o.KTϺ_5e\ϯAO+S +RjIH,+dmϭQ2 $DFUTp՟j E=H7~*]qǖ-{?%Q]` +RĂ zy{jiJ|VEz&Ƥo>h @S'_LU/?{8*`C+\{{;?U-р XKcZ`CA~\Dl.HP*Gѫބ~[ct^UD/ ZJ<} l`{?\r>K;t銈M`G%:[:@8) :ZUjD-٭Id0~;JTUZ%*`] ?y*HɆxۃ`fJ^gY&7uPHY-/~]0՗G[%/z{p#و#Vօ2# Dzgj%1j5HnHMdn=)QhlL 뗪fs965p +s?^RS#(.ʂ#9;hj +0m/Hȵ[Be1Mh{>Pcnt̰G~pCo=XApg;zA?Сp7KkZAoweec ++qB3ս'o5X% ~)%*`] *GT4 ToWBѓ|127tPjR'[!TO*J¥2:lԔUZb3A:?Pͭ⸑%?KBJSb+HtB?>Ch ߼\ؗ 9r{Ynq߹tiߟp+a]&KUF}-dT$A^lw/\RA?/UWMejXToS}F@q/5D/Z]j5,;?lh?QV~hG;C, ༂nݫYpۭҲMo +{^dԹ;ß{އ^Fj^9DDnHqYY}ׅ]t{8ήf?@*}i`W+"K?/JT̻%*n+XYz\yUmbX%0e%-nn{]G~[!{jfBv~T&UWNU9p염X%0e%-^{{!.ُ:p^BбGgj, kbX9SsCl]߹y{YJrn1#4jH>wED(U9)d:X=̌l,,S Y^.˽c&< )~#3#8Ε{~%G$O*Pޏ.W'XՓZ'1u9?PuZlQ4Enevkyq{-\6D1-L,1XE]b9{%"R%49|)e%Gl].ꤪZ ib%bFy sr曰VpQxC_mKW-:ya^w:?~@_1?^{X[5GHي*7*O3<Я{scYi7:տW=gG(R,DF1sĺ>Sr"ޚ ~T }^ć|\GH E +ysJ0PF5y͑BOhj!HὯ)UOUV6G +B9 +K>ԙxVJJyDJED“4>YZ+zbѥ<9Z<4&F/?#*bmj쏦6bhrp2)+b}}Y?8zX^DנǗDO:?V ,k) Auж_HZm +T (<꒓a;ޟ;key@nt;-7zW%ȃäIhv8͕g  ؔkCoo]2뽉98qZ0=(Q3/K@]*LT0iiY?#}*޾TfC~ˎ|Q_DP*5 "Ɵ\MGBbX#:KEOן Q&GOYWٱާKmzUem_ 8m?{seʲ_G}]{Bׯ}A9ɪI8ŋ?>0P@_^NV.O>ϧܩu~1[ +\ h1F#UHJ%˽ 3DdT;T~IIN l>`XACm^-yc}Ij`l_255>ùD̼,QG~HqДl~VB_dr )5X><X^7`HUb̎ue26g K'?ljk!3;P %^{Z(|IskbQZ|' ]ۇŌWlD}p\`G`C{*oAvY;v䲯M}nbA+a4vVEGf 2WKA+"xp: ^-:P:A(+YrY%%V4IURH9Α<9?F9OV +>~~3)hbMZvQf_p +rlUK]gvO^~ _ O^~6S:?~Eۄ2>mꔽYV84ol;,{a{ܯֈeEXģv᯺bM>dQ79eXńmuڧ6}ZC͜ _5nYGOzԾVYjRvm2ŶyL M?zkΎ"nY-0O +,V CԠ$ntFxI Xѫh@dAGocͩ +Ć(bqy5 .A^ ,?%cԨSuEXUrog?ߺݢ}b}KZJI)@J?V'b}Z^=0(gXe,e'})+!z~+~Qϥw%.?3 ܈}ۿ_ n'u#O;y+YW3pf}ǭ(s%'kn4pJ:LV}棍Ggv\Ur&IJ6 =*; 'fg*u-[مŲ6 6igr̃zy ~S?8R7.玈H!ᯨzyPtKn.(Cҽlvc[a~éoHCziZRV󱏳U8PdhC +"gAV=TVބV[%*`рX8?.;ouQ*2^屟_O?gweV{)B6.[;zS>l;ou}ӿD}jzd)[6_v4,Zε7?=> GiȘ4ecxY˃,Բ(.#yrT?& `JQCShe}ÛwCϯ_w^+( >dZt`E5GlXlޤI[Hˍ3eiei䱕SRu)&Yֵ%k?ilyO}MVNq4?{XL4lY_0PjNd4LOG}/;mr5QarFe>:.}N~tl6y>S&JTR'tKk{N#|[{+f֊ zz!S+T:aNBzoźi,.EjON{LS Y6Bz?gA΂PK,`Xsp7_(l_.UϬύ[iE$O(ftߔap">e?apU&>COR#mm?WԈm}c߷!%Bp:(Q3 j(,6a8寻ͻW7.~vtZ2)?#$a;Qi 7G9=hM؆3˜p4IJTښ=w +g>1d,?bj4,%_;V4܍b/e^p?ҕP!5 RTݾ0gl}ӓ'ўY}7B[+pPlKkJm,%]?XO\$98u+V`>nc]ϪK_VM?XAPf$M(o+OGѤ|E?Vo +AͻYV?As'{o +=D 8J6>֖ⷴo?+4"篨&xl>]ٔ >uFU7s#o,VFIlֽ槲c>{lÕl,ʤ3b׽fn8**N7zJ,uP S7&ŚנJYi<6.Iְp|Ïr Sݪ([I;Nc7E ^8edӠr]>?ys}Y4ȯ>zi,#ڵWX70(Xjyg]9ʲ-z u/R1휥v,A#]U0wIaz|8/r|/v:Β.4Jj +=U֖ ?fq3BVsSRue(sgvIS&$ϥ y8se%9<ǫRyiik%62 ԥ:nt&Aļ)WrAuWݪ:G)wbspa撱UΧUrCMG #~< NfٶP:w}m֪et&}E:sapP:fj>2NRFGJ?6f!=W;G_?";{uݯ~RWl|{SSr<Ħ<WFgs-2yy }s{vK4oO'?XeeC(p+7?Ř.QIYVbKƆ^0 5qchFV#M7WRu^Qhy kLJzZ[7?oQKU iOJ`U\%zIɶ%:PYG,nLep\'}^w s7UtZ}3tw=I?d6q.[ Azz88O,\|ϿE'H'& %'2rJ)J5cc]y3aڷԮbA(Q3 JnJZ?!12LF#K~RJ bu+YRaIƚ_}cqJO})CJhdN!GY;pqaUR&cNICjphÁV^>DC޶!r 7mcݤmVVX{SlFz퓛DfYiO'VD~&eÁlFנ[xm毷~I'""}^H]6D<28 6C{ +="$2>:*2:O ' *:Nm))ulO'딩'urLPփ~uЄzݧ4q^pp&}ӿ>7O X5ë>8Zu˓<87~Uo.S뙷+.I}>1rkEۇCׯczm[*RäKǢ%*`y=jdMJ)^Q|a6:|gPH/'f}C2b~hJhO'0&PY&tP)[l֪DߣJH,`(å}$"FK +Fѽ:Q+UX S] +Q ]͕BaƐI&xĮ *+T 0W00JRWc>}|:(#"t%Fs(Q3 T9.v_g4ReMx.B\% V ʅ 3Iמ dry/|ž<9Z ~y}>kzӠ3}dtf9VU~vƎ 76ox AODD.A2iԍ.(K]zpLxzLIMSS;}C'4ȡ@{OkP_f[`X9IR8=GY+1k[Cѓ)X$"Dѿ=bk;.W^'j̎򵔉E~&vZYWz`ڴRbIEp037,slXnV; ˶n~juU3MwV;79hӨhO ;ouFccq!iFv˰2y}*͢D<28"O>jJѽ*[Ks^g^5GC)ģ-=hX%}>_LB>)s׸uWkWʶfJJ m) XϺ[Zk'=69tCo}ӧA>i)k&m)סp}/Tf0q_GcPf4_`cш5JnMFFd94^ u$^.e$O'p}ӿJ,Q%s#L )U\R3E.Cd)z*Kx6PYgض<o&7ۤ>i9Re7qA@jkl.y8ߋR%*`9ӣeh?blZbp F&>T +RY}I.^O9IIgVQݥlQ+kE֫o9du>or1XߍG'9/}GYrBlZ%C +ydp0#HNѷF˭QhVhEzM8 \|k!֤)ׯ߿aUVQ!{c:G`;C7wqéK1jʃbh>ift53u0I d?JṬD)/MT ̇G/Y+][H>UgLC/T nA}7K.0}80KINK;cFpG)Wphrnz(hO`>&۳ʰiDdJ+6|GyD7'>udq#`UG}>ꬾ4iIJL7.\ЇIkX:@Ƀ#hR;FJ`7l\,G +G˛1'᦯X6-IENDB` + + + @@ -11868,6 +13881,592 @@ r PNG  + IHDR@'*UwzTXtRaw profile type exifxڥY8]97\K37,2U()##݌F9v?B}z}j/?/o?Ýϟ>|VA_P_~0wP#.P?Ǻ2~ǿ b|SH774gLu_~;aA:뿇;o_߾W?w+?/IXPωsUguc}y+K]<_ruŭջpv~=HBɯٮ/_x+,n1/b\1oWr[zN\gsp>u>;7|g +Fp#,_*" ;%oKF'^XhX">p3!ZH%p[,dgSMƜReozyK 祱D}};QRE:;4ج !CK)SFM5RkmU8ZjjZoO=Kޟ>$fyӞ<|ʃw^0ƌ3<5lgʪ5vic?vmQz[;>DKחկ}{] ] v-_w[AsR36,^9-@{vstܳa |᯽oGݹ}Z۾םܺp}wuCO ];}_{|ԌUʚƧ\+]?z"s>OQ=YVV;%QR,ޮ%h<{A+w^NF[CfHbU;w`ɽ{y\Fu<_y3ևH͹(;ȆXU!wܵgt|?UcdCz2vwmw!+T=c[]ZƷ*#{ƎaJ.o6D걼ϝ)pA0ry40\/̚^4|-{ b)ž|to(.B|u"  J;yzx7uv!r; 1%ߪX"m)yw“͝ +&)ν#7W9^x|@{#05bRY6Ts,@fL),Ջ|l'<`tl=z7$_CEhS7D:}Pޕ=bb4q5GiҢ J7׵K5V:{";s^߅nnnk̀P(eMHM賏tRl|76~d.+d|Xȭe~yx4 Ϋ:%bg"9\f14 ί<:6SgIXy[|TbWR~2wG3Jep[wit;`r1/>-`Z K8_D^V`E$Qa\:r1Pyǻ;+uӁ7{a:~ }?6W[Jb6~xaqj8n`Fv]jXAiџ8 v1zM>~kl(/X:V:2M mJy_\`R={!͂%6!>ӋDϲ/<坮1il%+?—l-:bL68:o8ƌܟ _(CCC3rϿYvf!;K,iHbBA:m)} X¦x&~+Uz}(~F<Oŗ~1[}o@"tyC0* CbR7?zs y\) wr)zYk6Yn.#6옞{\?;Õ7֫+ q/֓nöFd G d LnTaOMH% qZ*]YΑݚcTc^ CmxF);(\ V|\\o\`cm1Tf 'K5F{N G}jFCng~Ѐ;Ox#ZT&5qCcT$6ŠU|X0!"Cq,qhatH$xq[N g0\㙸a48t:1E1`;Vcj`w^f0Vr">`[6.U _9~BRxx:GzT n v kϧ<[,+h"iY0c蔀xQ=sUeTbgYцgКOxyv F_AR}%h P9ZlHD鿠?, m`/ω6 v| ,خsovDsl@S!z Q.bxG/ x@qO2f&@0(EhV YCdϱ ¼G0㶹'".à# %G8S 3k Z#p +ͽD)S909ׯ SB׸f5#N`EmJs?Dxs OR@ _ۋZE.K5 kkD^!,J05]p++7Q\*rDRe1ڱ#t |0UAPMZc DZ +wX6pmvj"`(ãL>0.\8Y +  +2asky?4qV~_& +]_2Ȁ-E_(*|Xnga.vGsU犑[0;xXh\ ?y>Z{\P#p0X$B/bkH%l\Rg_0m<zUz@vxJe̔| aͻXg +1)~fġoqȅ ~ Ϩ"\9\xUFѫgp 8b2f%qxf+k p|Z"~k$1/BF-Vx`0ѸY;~ G(ޔvz0~cCWብ'%\7pnE΃ڿ_pP?nœBovk1Ӿe dXE0}8+K$wd!Z D G֔zWdyM @<vS|t6  = q=ķJЀb0-l="m +mf_ɫH ߊ~3T| QP ]!pu>Hk8:@E;RЛ>j`ԑ凒4\~27<#uo{6 iw`o:ؼId`$"b#v#LܭD̷`ز;K: v~RM#te*oR8_t?v$WsEy~ŦҴA/4T%oVqcUXbFd@{ũ[a\r/3:C8Ag^e$0~$ [x݆Ga3=P L#&Uمta-*֝>(ahR[UV, `Xn pG8,<5wK\N|L͐M<'p xiw0S =vѸLC.Cw9ϕ|D{ R + D;PAx->[;*k!9S60 `߬k>,)BV~7b'nky>b m괲 vHXA,@MEO|C[ ۠5YI8ل*ZL)thI2>bʵM|E`Olom`Tp@)T }o, Wǁ OaEG0\m'L6GQU4d"63  scħVVP%8F}tl`x\X`pXԚK|S  lHE. v >S@^`$$&ؿ@ H.80>,ܥTLB!|z&(V,lbEy:50a7R#82;ېCͲkHk`#7:31؜gG|/,1"_αF<ߋj +c2L6:fJ#962aΉMP K +چ !KʬP?ZpKeu賧x4TOBX +Pzl| voVAQuQ{а^+>9 }<8c6n5X-/o\\R`@707r6`&k[xCŰXN:'xOtNf;^ 4#jpY!쾎ha6.ҟ9QvP;m/ L79 ;emknъq;$|/Ս  `&úL1)bVf(S#"(%/7`*&c7l5_Hp|X0-ŵR*f/YWC͎ݘ|)čGL^n fLI?:# R4lՅMFZN1 WZ6mYf:yn;.`qw vz8je8`} Cz|5V. Ռ]}sw0YzR."t+H;~l4.Ʉ->0X7:xA>K~z Ւ ô߼n[ĄN Za,a!|zjO'cʀnoaÉ!tC^*;| UƴRnւ5Ef/kȢ>e!赃exʢ̲͆`Z6>k:^"0FI>UWc 'K۲]扌 f+`PֵVMTX7LJ|Favr:eKZ!< O<::a8:Ԭ܁b`gKcX +&yZHm8a-+ʈ@(c `ؐS!bgfP`5 zGEAs&V>aZP<&c`eXw`W9`heZۭ`$B!koDGpH џ;OמFiRǁ'shf`  c5z-v`,w4qou2)n {Jq!S_ffUڇ3˓"7  8 :͖ߚm9?v̀fYOmB>iC`=$3rzTvHIY򍹄YCy8\F|ۍàdILBsѼ X\7#H(F 8J5Ƹߵ2L@a[1GA@<Ѫ#R-2x[W4~ϊtGC[#Ưasfi\KR?sH'M)bX>va+{,UyNk]YVdzvBs^\M %k~M㔪Q1}l!/vI N 3؅/ɯAz\2XydXY,$Ohae}dm1k9*w?jhr=P&Aon j^uRژP'Dy hݷⅯФqɻ!YHc5 +]Fo#c6KlK@E|j|e:I뻌,K.@Pq8T8 b89a+[ *0@N$^507ha3[ T#x oBiо=X^]PPJOxNp#0N`8Yrl/@j_&R KU9rbΣYno3;{5`j!a+q)7Œ +t<&/NNIlk5ޖQm  +؞l Xj ؗ ߏ™bªRq:fA <. :E)uPX{ć[n["XS? k `0Sx`Xz[s !I2ֱhvÙn\>+$A@ &KnYҠЏkւzi >0NT7Hs + r%B&j>= Y*?ˠx] fPL5.$䏛@x1Ys ޖg20&ԍ%E_|.xI6&>nQJxglJנU{8iX#>, ~\)IİdX<s?K;Ti2* )gbB H F%y^lyDTL|;EGF#RLϐ[d Ӂj;jees}76ުЏ? /o7bfց!t/ɲ|* Nxn 04ߠ|dmmR1fqTÂ(~xKrR]Fx$Ƚ^)6D&+>{Qˌq-o뻇8Ư~X; wX/XU@ +#˳BN FoV6w:- +qـ(L"K~U : #@忾^SeN#[>2}Ɖ{ SY?Xx% @*ޠfWH Eߌ' +:p+V0%=>cc0+JZXv_Y; j0 sc,CTN[ l :shX%FR-ֳIN643]J(w<Zi.rdS4$ 1uCzѰ֮#dE, sv)fq7Pm+k-KNB_~&XymK a\hN1,c6607;*>e =,5R̉7<v2LJ`MmJgF|j1| gsqW[;QHtH Yv[eƣK黰kS+T+"alP=簻Me+8wSߧ"bɄomIf<]0\)ƈwq mIH?aD)<>/l:!v~"Fy_82H#53ut* .P6+vv":eY72c}w:ԓNCHQ'']NsTcxcp 1Zk4.ǟ?Dlj:܂tvﳩPǜaxd;ZN _RshFR@tmZa6@G󲫙A Ȁ"`%` bA ) +/UNzTa7} xB +gSzb`1_бGa&XSA/rgѧ݄f9  dyJ@ָ݈ݸ+&C'\VfB$>lbԡ_EApJ9cڡֶ*k0+j;)%tajUv wC!ҹVfA B & +Y G A@d0&VkwCնcК< $QC H-cfYNoYLa٬}lp8nlW|f 9Jf +u,)B25hSnI BNz0c~Ū^^ŵ\t,m.bBؕ#0,e^>cmy\p9Ze=Z VɝޗD/ͷ &NsG6̚G`O` `Ew-dѵ<\?'Ymu}s1 Lɣ1DIYl}Kõy`e@lkׄ|bbje7e8fK!{YqÃmΖaAV!=:miS\`$îC0b_?YͲxJRmZ>~Wp,p beNKS +Z= pq+ +`:6k;49:W +ڣoCffL4-{68MfiyUQ n/~Oo| [_(S6|v'ih-4-W6bbKB1(G:1Iwh."6}<:Dx$&°kmvGATvUf-8vvM}1&뤍%ۦ +?FpMxyN F/e66iyCe/Wa 2Wٵoo޶a\"%-ci|ή8X ˪q(C&8TUV;}"KW*ql4.ef"BWLK;P.F@Dj8#bP1 +3Q'%!;F +SrICO=A +i ixь`Et7Xճ6߶#9XTM0QH|g ~+1ʯV$l +Na=[I3]1(LH:KWHR@&=V +З],^q=X)Ӆ͖aq\Q1Fb97 =Mݿ6BT& 2u8! JZc<,S K؝r}ci`W7_)y;ABP_+ 7Pݜ+hYc Y5Na]lЕQvYV@߮=36ͨ`}=[9]LgVi6|Eگ햷aԧ%!7(+ 0Sp g %LrniNem,MmUƀCrba倔] xO?حoj|sggx.b;hL2|L^zۉeyY')S# 8]Mo {Ѵ>T= h\$9hp #YgA,Pc߀<޷w^5dz XNlP+I0a +U(vVnT i0ikbE1 IQs?%/k[߀ڇ{,AHF HFVa`ơ2dvĜ~ޛlxK=dB;~ (<'h8Fq~?&S4̆},5sqPc+,t=ۭjxwo2`4`jԶhKK |js,1,>9s3 e Zc* x<"hșFkCUt_Ng;Ǹi5ar:#abyq %) (-Jؔ<yrg( G)~# ! l uFԩr5_ObJA7T^˩}ݘ5(@҂fx  N?meoC+O*.s8「) !#Ubp0i"j':k7mO0 ޝWN8 ym,l{9 U*2v1l;QFq*y{Y7`e<^ʪObrr2L) ΀F߶pd9H~ZM&@$X;a$h$c[7 +O08Ud7 &N f^0lU`xj>X4HO +%qޢV ʵQYBY`E7feb K`a:|}Pcrr6 Y:Eل), -,t&² z,e}dM[T0J3 zg`=8QX煌A:FxXf³UوtIPعCMOOs99O3Z L)grqnȲ!a\C / _<2b +:5t,~ڂ \C#mrgG8cyXmaQZt+P?or긠+K9%}2ֲNA0log%8x_G(A6Zb6V8Cў*,q;,(=^d%<!J̞Y59`eFtf|Më']T$wfģVzw +k-M!axQhMZ!u $fmXl]@°9LRN)Fb_rɜqf'֪et툎pZW˰`=8^6;WOnL#b1 ڐ,y*Y}=3wky}] s78Y{f,n({C!5q{1[ 0;..@6--眶3'2C1'm\58Ҡ]4@v]=j Qp-U»xѪʶE)Էݲ匟GqHig"'kvs2&@;,3$c\Y1nm=6o{lc Y/PDaJVL۱8CrP qiN2xQ Ay,,fذbLpucg: d+;z9lu0dJ^93pގ+X5N`@ft涳Ȭ<'%,>,4EE>@8y c>)y_NP̓,*98/f{m]jrm`\qǙq;) [v1+  B>Ct1tٶLwOܑPٞZO6Gj3` +Z/L_1a[g׳ue=V=m%S~^^]:%P෣8Ϙ@_]jn^ 9C$v.-f+8*EH6N> U\HmɝT \Xbǔ(%Z,|yS(>ǚbb-pweN ߞ7i >4#ivੲ[QxE9UgsFɄOҥӮfqq\,ڒӜru,-8#hL6r;ߚ>6wG0qZ},)+w +r"S&n +9OɱE~2 ݣ;b͔>{;z28MyV^uC: ]t,R72Iٞ$N83PhǗ Vu*t<_qs !3m6"L0SZ=97Ę/täS/ڏnxpS`9htTx!j u'Zp +XXZJ6ڙX~=8r+b=+h_d;>,K`D|-FHqrZxp.W˟3>E'~#$ {:?8Nl[ ,3燈*U?bAуHwNI"Lw PqXs{ C܈rƭ@- :Ι;x(u}o&A't'A8$rD-4/7 D j{žg`k9lzɡˢj7lw>z$4qR,NfRp2q} X0*,z-G]tD/(1jPYyƠpCuٽ芶;@+ao I;'S5|k6>Cj-4a}qe UWA XJSQl|l]W-Y qmIr6άTe$+lw#^19%~|;z@uFmÐ'DMڽv9U0УSʽ:ؑxb\$axGE9hͺ 9nO˙C?ϹRƝ?MzT$0 <֡z'삋D.kChlkt`U7NyG&>me)>:iٓt[-à ,AGb#DgD[wt֯R/j2 չ=rP}M ~,Dݯ-8渖0Zaf7exlҐ2"AYa71Pgn&ZM')Or +gvz<8Vy @ګ+< d-nEf}N0Z6ͦRwK@4BuP2%u2ePӄH6{Vg<lRh&c弑r;vEg2bM8UƏdSֻyO\F8#nypzSWD٧>S\PCl aT S+9];Ijr]dKg_KWaN({tBS{b)Zssvi+u,O`l7#T bAr]m4Rက'%Tν[ѹjb(,'}2_gΧehqxg@xB R?tr;ӊS-xSOuҺw93+A03p8 %o'!j%ufDXi $h[Ɖ(ׯ`CtЩ fwdtZg}a! TqAj'w9gO(*͒c5 20دA4!Q̰Ru?\gN1'tVa<*8kZB?{n),/B]?ڋ̷X=: z@ipT[2m惿9(;ؖu /H4.uSjYr]9שKHU8nX xx5#aoޗ +,wF9Z% -ɜ7Ԡ1'7(0'E^g${z}Uv(g8l@K@1 :x}Ɲ4<`9M&xm'=%hS LRrdhvyêc(= C sKVFeޏ׷K 94u"nyLס,2C6ޞˁ5LZ,7u cYD0ۜ/.6gTvڪ$P1_5 5SO>Ȉ7}U쁲=(Ôdt[]@ a_v tynd Lخ)֗\e}Og2Y7,Βvy*KϙFv34Y f)1O^Ϊ=#5AZɺ91 +ޗ2̉f[Ѩ<).:`x8#ѼO@y4~E1P)/g9]HD:(<vgdŐ5>;U Lhg>o"d&xIg;(%'LY9{MÑȵE+ ͍#g"R\ -: Y,[Ũr]ƀq x`5sS>kW(ZYp )fnؤmMANuP7, o֓JtO'I?>`]˷~VAFagd¯{f5=7X`W3EZ7+QLy<k%@ڌ/tcWu +i xt=z MOV;Lsf:cI ݡy2[)'E~A%9]αq`/Sj)FŤiu0AVy,+_Α##Pqk,/$=WSFwMnVz8nm682x9kIo۸n&}=tÍ60q-ra #(oT`:Fܓ'{Ȕ'Ի\cJQVxj7L,AsC-eh^P$DZmn +*fB&c~)GX bzC=V#+P8/}6!@% Nf{4Y3_Jq琫<&)GoZߋtTpNʿЀSq3bq{!:g۶f ٤Eo2ђT"s46m-25-v[^H3OI=2bb!ozw4R6$X7,KOk'5)<;kL97̠$P({4/`#m{unU\"}PΡjnsm-db3]Adt3Vt~ƙ8I(rƽDgm;7Zko 43!PiA8h}9Psz"g;Al'hr[*aqF˙Vp_Zh(tt#x(utpꖩ;dFZ+}9 m=Ss8ggΩONn nj|]x l@-&6CLQ{{p *klek9cESC1\yQN/LðqgP]NϙpX1PO;}@*cxl,DSr|↻< +5:Q( p slbY rfgOGj+`S<:cX, +\y+nf ̛z%ģNF,—G85hn0 [ꪷ ׊ږ!nݟ'Xl;ny$sS'y;_Pp +sGπj|;,{f<+ uBU5vm۽k,gC."lf΀rb|1\3r r>ayB⑝Iʲ=hɃۥ# +{l&i9&̡i=6BY`ROw8kԅ}!Nq茻=S y4d=grYб`PrrF,gi=9]l:yxD,Va£^r٥̆-ʸIe[=Qt;xm sVP%J ,^zu;ß0 +Ve,ET:^=n}q'%}ȉtZ=Nf[(_"Ƙ!sAZw=6Cv Ж<+3x}ۉn`oϳ=3gshP|#2Tmڶ' +-ϊ`dըu׾txWmʿ}g #` ՝%_.O/c"t^!U9؎2P?;K;Z|$(utZHKgpmC#E::th,KfjlA fѰiuv5tB#2F :# !y]H9jh)N3ucY:xJMl_v885ڎiU d$HG+ ~u1"=:9.ƾnOTsvxM\iCCPICC profilex}=H@_SR*QqP,q*Bi+`rФ!Iqq\ ~,V\uupW'E)IExwq]YF:s10 b3df! u_<ܟW) ijL7,uMKOfeI!>'7ď\]~\rXa##; x8 9[J_*hAH"2j@jH~?SɵFyTBr[tBqŶ?F.Ьm7O3p0IzEm⺭{0KH~B7[ nC`Dk3~&r + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +H΄bKGDN< pHYs  tIME H IDATx_}jX33&yiTv0X +L>K` |<XA i5p_o ( +ybJr5Т r4b߇ST:YSN:Daڱ.<ϫ,^>ulvzJoS挟^nwEDdccin$7oME?~>!Xع܌[Sq,v?M10Ƣ𗥎Ϩ.s?^r0~F%s=?r3~ +pgmm`ٽcoο'?4i ^ymZח`фF˴ 6>N.ګ)ᬨf;-™eM8x}Tuǯ!{>~qQ{^?D4bֵ{؏ڮ]o&`v."lǐrk̽n5`~%I6]nb#?0ҮQDO9 y909/vͰ7/rhV'Pqf>s߿\Γ%\pc;̽˹}r\{ޯ}rf&;kkreQyؑV1|>1} ET {qDx]oˢK/~'jM 9+O^SfҎ׺:Ǝ#ǡAuG३9|x?0fE}/^C-tۺ#z^{s 3/&7Ɇ*@L¸ڮk8'v*wlo zqg+7Dأˁ5C.g\Y1̼T>uK$"nWV&SWTj\mkwk퀞jm71{;;mשּׂ`[rIv絡_JBFH[Sr @K"<{L)u= nN,Bv?&vy/lh!cTGo䳽?z'$SWWu>NH7u4[Os a㊝Ȫ1"'"M+ Fprl+rޱuuƏ ;s^_u^H9|Pøo;ksA\Zvx^5 3 +-&P+$ܳ3 +-&P+fgkm+oQOԆ2l>"Ž'ծ:4 Q&8ߗH_buIoeo3:²^CGcԱx~% 16~Nv:{D']<%ꜮJEtjMöykJfmu dg\s~V+Ox e*>2'Te-,U=!Ox 65Z5Y^v3O豣sp`l\QU^/h&DPJ$J-ı._ur?^؂IUwr\.E`x+ͿmכMT?꙾O>'^9{-b +j;}9_R.!qnig ,t[F?Bcc8r/=$+vrsi+nѮEոE?b.7̱#Fesy,hf{^]jV8-U[$_h +QGP/.d\_ZKE&zZ(_T:~hal؇rzh^w{?'nMġґ&Ums&3q++I  .Qcc:&i*~Mumg5/p/6mx(qԦD:ΐXM+5V_-  s( uf0HdrX=ԇa:ЯdufE:zCj9kshDPJ$:oᓋ}=k᮴\qHkz7e3{A; sT:y}Rob$d]c]9q~t1˭d=pT^_ZqgsgM\^eP۸ /ǥ:+Grٮ=˹yk*Uڎ+x]o먝^YJksik95pZX\O߿4YQI^_~F)3{uo8F)2{٨:h/"6ʶEB,E|E*D'QL/<Ѵ.Zz02I}mS b=ON.y4d}A8ĭ*=HkY-?Z|BfHr([-xs⢻lc\ +jĊW~4h/׃@>ks o}V%aco73ā:jHc9y3EAlkSɃ*@DဳIտvNKΪj"*&y-g>3NSfcv3ʘˋ{վ~?‰GQ>qVLWܐ?yw<$sZIƏAQOiՎ(n1ZUԎumEVWvvrh7;.ޫՑ@;}qp = ngrqc;Y-/qĕGg_HAGIGQ"Qp\'<똉nÁo?܊,+.g~tbz?f6;hߛ+Pul!ɼ޻rFDW6J=8OQӬv$q-AQFμ8ys-ibY^U\"Z)2皌1oyI^ӎ-^1\h,r+T.}yNrDr9 mϕZWUT'*ƏPꋝ8Dk7:ianu5-Ҿg +SمXtˋR<_(g' + ALW(w߲(;iTeu:1} `2Us +'ق/enO;F,qZǏ7v4%\4Y^_%gؼ5j?MVlqJBnoo-V/Iqo0ުaRߧo`Y,vر~&2oTU&,'Wǂ?l[mHQUI|+rjsEf* wEVŵ˵:n8-k\q:y;NTm)4XB30{]Wv|VG4O/@ DS| lTʲ>u;s(@U~1êZsU #ꢡ퍥ju1F$>!NzC?\Š(Da|ʮz:sDPJd:\}k|y$ZR=WDN/&WQ*q9 W8"Eu'|:*V̥ɹmIZJeޫh?]-T2hvK@lD!]n4]oKT{"L7˭5#Rsat!o?1"gh-&-hꎣj7al};$k۩ުeҾ/ Uˤ_Z~ЦW 9&ѤH0CDju~)'cVѿAB,q<2EO|댦v .ykAe-JHl\N&޿p$~WV^V.yE z]e;̽LĈ@& TZln<:.E8*U?~hu"/g a}ߖ#w|u'}(8hK{u -ƍ2~1aon]y#dSҰyE8**Vrwӿ3dU$ߛ-Ehf$v +0YA(p/MusJw{ [ծi\`,p' +ʏVa.[=eGPcsv*&MvknN 粺 ,Uӿ'\|'qy78ю7˛4ѿnkoR4՜ns@>TA_@^}<εmi=>_DӔ9v?˽bcF07oM|u+v[AQM?>작ƹbݿ_X|U.P41vķjq#tXa1kUh7zmk0IA((p"OuzR.`_V=/`WР|$j0z\921N%> +cf]~u۷ujGQ"1DMC<.5պ0':_աܗ[{YDv.?$c&4zu]QӼuf]/*4t%zaNDDwroS#8jS u,G8D$:t5x^^z +Zyv?ѕ\kb'ӧW9dyYb>[Sn'E"=EyVEZjXe6Bhk'Zp~wMCdI 6M 8IsݦIac(o{yZtVl$ͅ*@DS`o"_&bcKrjb?M;N˭b(VG )*Pth7?*nq]^H ")b +:qc88/Ynsje|B#z־t_18ߴoPbMBtc-3^'6N.u&R˱׉:q8bg:JUs6&Z8аzq=$Ą@uk39/j/y["Rst(/z~5fGvmD~tq3G"q^x\jljq#YqXMr3_3z[ک yPt=d.JL P9F.bvuעzb%T5UsۮZtXQlsܿ_uڍ'9 ?לq1 +ꝵ5bT]4M3OMUS7Ͱq=7ATs^m#_M~ʎ6Mz;+6\\Ω 7il^Cs\UkD7F'v7/\jK;4QWpU8yuNe>k?PsS%Z^e^U7PjS%Z^e\vQgY1vTypLTA5_vscvJrvUL$gYeJ1׮S[(cƮ +D^|q{[%!ϭVE-'lUk#jjqu}mNQ7o8H_UVW%܇f޿tea}a5>$Rjvǰ"bL6xɎzPϮN&ItL8/_W ;]ܿYY~I0FE+Wt> mf>n"%N::z&rޯFS7sÒ$rAvb7k\Q[SIсF⦉!^H@gQCǏ|ZO?;p\Qok^HR u9=Cǹ/UQugEc"XXOdM7sâe-$bbvU7M;iڵyLo^_;\{*s5) MUQ3օ ~rև27 đ.kʗQ=~7|E*NyZ)el2K8/>HklgjLA۟~p oMxs=t.Il-72),0Yu*i|vMynTE}h}p]b)Q"|wgm-%;-½cIPLGqE测&"%]J~A ׮u_ym_qWC W"t,, +h=s.]u=8iWYG;`tn+v{~c?:/;%C_?Wh>+}5Ja +o}_% mǹb%j|Q&;FqUt\_TɎQcuU>W"@S7ys8 ݎVw^\$&6MsЊ\=@$/28y +P;P _G?ϋ=UDu"xyve)a"v"si-||ST-Z+V:}8DI_c޳'n{z,UZ+aMqOq$VF3"ƈpMW6b0{tD\lj͓ 7DPJd:8̥(&6+VRS8bukW_pmP0֯i3~07iSS+%+n3(kz7oM 9:0_nGnɪ2?2~tدu~b;UD ,:*|!%bY˸m_`;\߿\ΓI9؎ +Sۺ:ĉ0yB SLT^fjUs7:F献-2ԗku>/Zr6ʍVrzpn8,Jo?Oξ @_~WH)ټu?yϛN7߻Z{72?ǥc*s*FɋXuPuh%V;u:QEP]Κ06\`i˵K޿/w%pcﯪݤjg-qE'yߚAby2.q\'ybjQmvMڎZ(KsUUN] DPJ$J-EO-uo+ReqƘ\}rV? +J#{u_=""ٮ7!GqȊ[~qlgXS,s>XѨf^qaz|Qܼq;1$Xk?E޳!Wyv)}j"d.XѨflI(|kA!rul崫ˍqr8Bq9 +d~(nmVET/6޴Ω_]I`"3$i͋zX;R/C~STgu߅򾯅c1OߏdMc@h =bvbk"cl4FzmX~} f>OoIة^_= +P"Mj.`~kɯf&7ѿvNee%.p_nyNw+۾cb*q.xKF {\m""8rgc~эTӓo0fkG].?){=r~Ŧ<7\VinyC\L~ccnsEP\ry $uGv?>yݽُvgk_[g` ޿bteQ ]:MeE ]8fgkmGj\Y[s^Pӎq~t۲JaqZw,Q)͚ͷ$'7\(抔fO^t:rҕQ%W`48\7-+A(&6v" .~uwU-ؑa+ٿP[x+Ϳ s55du>171̋j +2tvKjWJu-c_a~}"yqX!bo<px3 +6flq[Sm|K*8/s +qsq.7u Y>廯A#"d2ہ#] d^q78iJ0؂+3ׇZUtS>l4 thƸ^5WN"rrjC]υ#7XyyS9{h`>tTdy`|{|GҟoO #!Ԑy:ys; EŬ' MBB Uy +{q?_ߏtݿZ[mG{BMд¢oλ(0D<>t;_4iEߜw$0U Z_YkRodI_\W3{pyA(I:_2ch''KN/9oc.۪'f˨ * ʡyڡjqi9]p"aԐz[˹foZnc`or+J"VŨ/d*'kv=-%Ed_YNI-+Rܾ֦rMj_ +~gW~R׶!K_{vڡJׂ3uRs`☦ Ş'<7׮t%rKD2b?\F|x]]OA1 Fv Ol .}lc . T dڱ.<ϫ,^~+c~Nz=Ox}Ӝsv?oL/t۫[+2~dccr3~忟+EW5ۘ}|cq/, Y|R=댟)rn0?zOȵ+m)e}탩LWܿog<EN8\=x?H臘{ܙ2b㋈\zL#7̼Bg2X87- xE83i >|9UݿC87RG]›QH5bO<W[3ݲ%-A-n#s߿{u \؎3: n?x.g3j',2_]N.;kkreQyֺؑw0>lǙqUn7s/^pqr1-X\:Gܙ]{KĴ ;~oylFGPoYĎ2#vӼ֢XYuqqDPfY"k +vWTEYc]-xjwuUWI⥮9B<ڡ7̼pz<ߚśj6DP*@L8m貱yW{vsjW眜]90_=""ùl\f""ͣ8ꤌ;r` Ps?(WV 3(O]ɮەUɸ޳Mj{^mS.آu~jK+hg݅Z +jכMV+đWvA~B">Q#U'ҍ*M j6ةM(E":OW@? +E":OY+8j^$, "M⥶ftlu;i>L?4vCoo^6HdS)Y@tERTiNWun&˶e:|?YXgyNo liݔĹED.CO}ͣ"ҋ.⢮yޱuuƏ ;s^_u8j{u#f3n[~6 +j)p}!Vx_n*/*riss*/*ris3ƶ7 +s'ojCQJs^>QWl誠˥ZLnWOq>tGoeo3:z8zxH^ÅxѸ}·?W3~?'U;5qqo{DDGƎ,qLWtU,ZS mz{Sg]b(j7ܸ枫s]}]-&Ox e*>ZBm򄷐jSe_届>ZB39[HLQֲA:yB[/>[\qײ'6jGbZMSmjk*@Dsc.ܿZO n$ԯD揗fk@Ī"8wD,᮴6zZ\vPoc\o:j*"ުriWy{QZɽ1tUky>la,&w2 +A3=`Y>l7׾knܿ޿\ة׾+nѮEոUEWYS5կ}Wp]2uFٿ!/vjog+PGG6erWu\eNuTE\qÍv-;-UkeA/_tq(Oˊ"5_tq(Oˊ"Ňa:5"Ĭ<)K +B G]}͟9?s<|qaġÌŴnNNO^|hGSqF}Akcb{<`'q2wWJ?N]57\{u#韲Hd pE*"_\WyH3 y"E-b[/fGV㴀k<'6QuvdU%saĩD)9ؑa8lF3;kkNX!eMr0_Rs#Êqp0 +DPJ$" $dT/.2siYUM+3'?~zɕ[5N_z}ڠ+co//h=`&q 'nc -7O]x_O{[rTDVchS4vZu٨ū\.3;vֱzjWb8a9^Lq^}W"kyGᰋj1_f9E.rm("w_ 4Cp:8jt.rE +<m2&EW'˽ pp̉nYXϹz8q E0chD7=_$l8buմ+c?F i.6DPuS4uW+jWqf* D__<xO7W]3~ UwDP -;jZt.2"ljsՅ>597W]@DpK<'I$F+us*ZOs OQ?B8cH~qUJ-:~.6Ǜ7u9ʧyUP5uD 2.lBL>[S_>B8F?ڇEnR]`E.I5J0moFQԐI}PpNDdDxxI)3ι3'.KJ+Z8~dPxMs͑*\r[Sv2i"nA^T[nk>8_ƏSxkKDRb\J0Yx1c"N,v"YNpvTU&,'W +ou{o\JURj8ՎkvWԐU-6^yn+-]]=W {7-v_N'eBZANqTuƎꈦq=_'jMa:F\)W_a+U].0CJq·U㨮jB0TUQt\RUS"ҟk-6!Nǹ~ +GĂlr9l~7U?;]eܿLb 1I7s.cIrsCjA*x)r$91@D!]n4ϝ9ϝV01Kb}\T۫C-2*rj.ꎣjP qo+H?ϝ9s!UˤNުebosgm-W=v:slF'-vUADju N3fjo~U /ɴo""o۟>GM¸u{\T}݋Nc% ~I,:&r+JДfKiLboP% pZ|;("7yA#-Z]nsrDD⋠Bi߷H"]<?}(8hhjc㔠|օnFدczۺۧŷ"i,oKEPr$UA-MRTyb[v4Sg7gI;/2 +P"9lw+Z7sW-h}"=[7 q*֋vbSjl.3cp&9\eu \Y;\.r} +\9;\.)\pC;t}:;I|GPc30 #>k;LT-$rBU_/"q[jk;[5BU8_ƏK|kL&XƟLubImiboP6DPJ$ +ž/&>'7L_/p."(;mcXσ^A#|\9212> +cjB"%pc"ml;b7պ0':_񣗏usG/XSpv;qUskcαq5 g[9F/XA5ՖubѾڱqڱq5 gTtl Y0'""QOUj9N|HͱUx^쁣""뉮*hms&NYQCrh%<c^2 IDATXGeq<7oMEƟ?f|-B힝[(U֮Zy;FVDd6Bhk'4-9$Wt&UU$nӤʰ1Ft.۱Zh>?|$Wt&UmH:A(h0M$yq%5 Cj˛/ť~܊jV*UQC + +1? 'w=~ܵ1v']\,on$q|#ƪ!3k7R=ͼiǑikG\r9VZtכ:N[4aS1]D܎7Nl79O6㤊=Z(}R+uog(1 .*c- gu_>-j\B^tGDDL TW_?BDqUsgNt/h9?:iĦuk+&c?"&{e +Zlk]XOu*z8j,&&\Br3_3z־vBD8T3'5*:]Yqv]n5zqv]nyziU~3]לq1 +ꝵ(*mWw-mLcפ@Dju'v<뉛,ft9M3l^^変L5Xq+N8.Pvϴ_oڡ1#=7 Tsq9,Hb!Q&V6_G5[W%R}1:YT;_XԼvi˫ޜWT[#Ok]u%Z^e^UOo^늨(qT*&j8˚Tam+e>ݸ>cQ?׺"$0JյʾkDS z&<Ę/ݦD℮2?eA?wDW oEωG% ٢SUsUA}ʭ]IzǏ ynu*j>eof޷Ǐ[5\lNQ]^髸B涫$W W*Z--3S@p̉1X'$l,D`-Kx+" $n[8 |ފUrp~geͿ~'?v,*bOhpM-I2Y[VVD@! +P"Q8N.2/'.+itusjfqXRUbKަc;1U8-:~ZI\pՍMCUeѡ+^IgQsۚo?!q9´W *XA>gs̪⨺}NJ6\}./'.޿l9a(IEQLZtibbvU7M}탩6ͮۅ :\AeH6LZt +a\X,0Tkƒyh5uVݎ䵿7(~ET[l**%l7ʡu͑E@-\ȹJu/ayTc%PّͼO<߼o兿,]E$;›*_z>-?EVx_v; +OEVx_v;}ڝF=EТY1 +pIb釼# Tv̜\\NuUsӮΩ(Av|~[BGxtqF5WD{l׸#v֝4s*1/ɼx1xe1cWAuyzݳ"y=gZەXh'DȋM?vUZT򽮻Z7_8߼x([=춇gWlsxo5N|9Uݿc\b$VF-B篏{&2j>}X8#䌳goN77D+6!QQq9j!bv7}qqBDcnqlY먈v̿."_/E]?cl^7:4m܊D"Q QDa~3[Srb:jݕCnGn1*ll7?Z?/_4SE]Ya_X0N}QC$fŨNʪ>_hAџZ>mǙr_,r[W>iWO5)g}՟?SER}N1S#zE Z7_rguV=)\p献- e}\Q=/Ű_z?[փV\fủ~vuhZ۽"<F'"TpZP+sz~}J(Vb_o$>O^|Q[e I^F\]bըSk{u^<_ul_5F\ǎ$(9{Uݿt&EP(:G/뎣mz?1֤jZ^|;ǺhO AբD&cD,!7(mN] GDD>z|b?Zrq}Ԭi'Zk\4T|3 +bYl*Վnj+95$]0KqTqsM/sຄa4Imj1.|szJp6["S oyq6d<ǵ_߶z.CzI{컽c(j' w<[е?W<ӷa"yX~\,\^1WBK\nsgI`؅~>[2>Qlx_ewUy5JwƤFSGG"e9\퉍=Rvֹܯˡ{re\ۆi}>?}ozu2(Er޹DSd o:{:r̃w_,.O)C8HU4"-7~qU,iGQ0XǏDjg0v:'ة޽?,4~6>VJu-wrͨ3Wf9pMtAܙ˭PbG]s]na8Y.\D ;cc#*zVO˪o熜?QmH#͋f gE1CvܙRuaT,k2sՙe(nüv?7"ϖ2Os jgcAfU,t]b]^97z:\Bd@DpED{oU@ >RCۦߛ儲]ny<\㺎MWA]s۵鰕TΩVJܿ&ސ8E!(cW__T~HUksگ}?-4ސ8\8wDW oapcݐ/EFP/}!ϭfK?~cqU `DM}K󪵚s0tU|;INa9տxiVV|1X7!Wsq fYbo!1UL\Y[HLu;5{y6M`Q}}~3qʹ !y,1*Ttl5)(&?~cJDqkoz){|Uk;L;! +-hw/:jUBo{/qqjkYՉ[ bܟ3)q0̵w_`*mg3en5o!9IGxYD7`tq'•4~8*6Rs~׿3]f'^NN̉nk_=͂@ߓyb[v9ku!ng@t L Se إ|兿7>v.on$?I/?;6xOƲ2:>|;(kXoww|٧OYi/?Nz<*_F{scgtO˃wS[ >g;wI-?l}\ÊoY"ßD8s [3mr qu`Dw?8|Y|Gȿޛ`ڇ]uG!fzYr[ITb?!b;;{~VXE\6Ftv >,tvȣΧ""._e#>|? Y›aDD6\ ry>u-""fm11w?ci_:V8t7N>lk~J_̵~s6peŜ¯v DCED>xqswś+3v7k~ݑ#,[ZYT +bө)rrf37D$uuŜ4qswś+vVA4sג/zjt .vlǙ3zyY7_{u @hWfDюgZjmo9FԳˋFD+0.tt2Ȥ>߷>l¯?\75L:q)K{?Kc u`Dg-[T[?~>д Ƅ/%Z%aYtoWL gz:N_dR/o~7/|iv@xsኗ>|p;fFsCҖۏ?痲aDTE;_z6OݖO}GOt B}\L ^)^?ؘ?RDY訲?jtNTϴ%Kt9qvTkj45&RB1aR.Ƞ嫎f; yQhqoPYܿSfoW_Eȡ^v5}/ud~DIu_c7v$RۼELs&o.\QתЅֱpf ]0N8^ج}ԍvN0C^t.Z`[b?e}B#z}8}AlsDv(˗rll~z16&bztFo>\QתЅֱpf ]׽#B&,"27&cZMtiNҎKdt\}ޤ絻3s)=~D/D(}+F +j'O]ފFOS8ϼ8D!ƹw? 0|TWХɔE$ өhf ]sV4}'"_-snܪ{7h1NG'D|g>_1h_ρ{y]%TF_/۱ifk:*HRTͅY)=kɲۏ?SKّr`"IoTr].RK2{yȶUz!o,qLWtU,ZES mYK̋=ow +?ž߭}?ySXR1֎{j_Qž%Ξ5Wo[#2M˹wpHw78<vޓ3K3>tօ=ۮ6sI*ڑۢcuU[m>LW 翕}HL(kJ/Oq[srS|rl3]-&Ox elz +P"9.g\˛ߞmwԐeGMc7\Hu*/Soʧ ;Sn27J7bfy{Rjh5?1FDw~yw߶8vik?:Racf:Ӯ75O+pT{j|KMHS_áO>Hߌ.ncꟶ δ7zqfc.ۿܺGn;sG]C +>uu]ok=Gw=MU[n;p|fQSZLrxn8]lȠ]imm0qة׾kn8@D#jbohk,tGu oUn>򪣊Hb_K-hD\yFu3"jp3-HW)ʭ.figQ{.ngoy}<ؑtUo#r>#nn3 yUW~x\k,-ݲcfP :ygYg4R_k-i!'*Ed'/"j'6o6>},*`D]WQv:_t3xTA,꧿nK!{7жza/YItȡk?r|>O_|H9\}^߮^'nNKussS=r#Շ)/SAuWs]ǣ|SЙߕD;;KaG]&D7{8yx;+rkhs-o>7{}*jz]Sv:;̣܈fL xAbVՃ~ۏ?#s  vӫŒu/,ZKJPŒiZNͮ:1)Ȱ+\Ym6;:1c{ ʣ6f㊌~,[IWS7P3ɶK78YW]v%3|s W +]e\N | u[8H'"2YGs{n"Yո|qER0!>C܅e;{vRo?IjΗxz_~TTS2.']vل:\-_S#GgnxMD2+/h;B +&r{Lff@?{*twYoVΗ-ΪjSv2eiM^o^teU_W7v]C]Wek|;8 >jtSk[2B[ +o.7_~(oIpuvgjFՌ%"sf0 +ٯ_&'{azi!PfV%k?hk^۪]?N>migrW=-8~IReUUg.yGzBG +oy"^Gϯf/^Ru׻<^7DXZI qnޕ]BEڏ/ښ׶*xw>!%u>9-}vReUUgfIGs t;_z6ytr+-H#6vsNMJ;tTۏ?#'TSweE,ݏq™CQJ*ZT +puMΧI$'$:-5V[SEǦ^s{Q.9v?sI:I.ϥ^ݮ7uE>~uO6NSb5m؈b|9uuT-A1' +Z|ETsFktԢPh#jF8]N*)oUesj>ϒ^1uQ]{s +Z|ETܐ ]:WT +tdW-W5H*)oU@~oZ,y$fuLêx7_0W%S#USxkuCD*wb7߻mjh+VE.,` gpQ} CGO ?DniBYC+kJ['TnxQc#$jysMG\kK8=5||Vwz+áO_DRMgU;jyX⨱ዃ1B5q-1;tӄL_)VMK(]tRƏ +P'u\S*M7A|;x?uZ +l>oٯv.J/ZOS*G +"ՕP y1"@o +[/}E)[|Q~UD,wޓ{)rW] Ր-r ƽ8㮾:+EБ͙KQٻ3+H_H0vv\!SeC*J$dH*I07d\SԆ +lfR.SgxLlˏxbL/@wc,#q>-}hZ>z<󾔮 jM lpAK|JIΧfz֘KU-Eĭ}xmQ*n<=~z o_~J.)EmxB^k}>f +arǯRFa{fGK +_#FM^CřӷM0تVW:ΪGZ䂛RQv+*D-ih38Jm6/gzzHo~k7Rf ZiM@l9wG{\*͸Dh7ke[DFv^UrwJZMs/_t_KvzpEyI~|y3"$L%㵩FOw=Wk%7q+E(h볕kGMo&`{H^qwJZMp_˂yg=$V#sEIeo'ШxI7س=st)GEIYV^vF7$_T뼤<S~#5ZPTH6a(W=Vs|O`lOO^AToժ2l#~*j*ʽr_k]V=%>Dm qIm[cZUi補z4鷮rteުU dF^j*ʽr_[0[qvdx[vYf{~M8X?alQNTv?cTpciNZ;̪P܂*%rOzpa7⻡F +[vpL;KTr-l} gw9 k-w~7߫%^K-I1Zgх63[ΘzgIҎZ*XqLrq検/rIXh^L (՜']jFo7H_νk6EtUH:vߌRVŴ}>v6әuL%\%6K |ª*k&znGk_˾!vԡ鹧SiD5 6֧>oiKinrML*iHqyc}1/Zn2x<Γߜ֫Ce3!4&t+ -ZMKskJFoq\k1ׁurYyel<ܛә ?37iLW[FLT~~'""w׳b|DU͟{^A P+ J} 1x3-.?呿5}]DvK܊vSrۂݯ7st;.{=wQwGfW9^WZq`pqޜNKEitVsicI[Ulv;/ɬz& +8#i*N;sڦV}XDDU VZ!J{a"'JDJ,NKRiK}^}">̟?Nb}NLWW|^rە6y3U"ןj7bQ.&"eieƝHU jwNM둿|;ED䗻v%ގjM_hM/޿vyuҰx*\U;|q'lfݽsY k0Qy̎wYmV#s_&gGiԌCD`Ώ\bjՇ߬p`se>S}wYmV}C"O\KP]_wI5 G _K&%pLY'rsv:ViID^ETqRT A5ӕoati|)i@ZQn;3v`[ZVMVH0MV+Ρ7[pǻc^oJΏQ»F:??@rXefuk%[:һ|6LSUJ8ݮi|ӻ1mdPnH秚OR}9Rz3No\`m#(1N$oO4Z?j8tTJyZhiPe24N't")j[&J&;jpSyK9lɼl3]QuB)d~.ln`cXk=✹xzڞ؞QZP/)X9iU'NJ /f7Qcyx KT{qj?8Uz{O4bM'FA$t!kPt_ +m?qgKT\|ufeC}X}oeS3b;8@rjV3i4jՊ<϶vT]"vTSa'bo=MkafAM.oa[unt_Oq`D? +/-,wV&oW-y=Ӿy^D׾i^O9,"$6Uxam(f*tlw?΁u93mG-;OTRJ{Ίok.`+w{~oGJHP+la.iSFfܺ+ -sFjfӎ܀܎֚6;\^|svk+e*|olYȿg]4y k~~JmVgq΍ Vj6d_j8Gu„ άVp~`]4ڹ|O*ю uǡύ Vjd.vg7wrsWisٺ T[ U8S]bE,F˯˥j(zzUgr'T=o5Δޤ!귡y9v8W-" -Zփ'=+o4,l? KXJeo}3h'Z;., W.qտ$KLmQO8?r35Dg!UJw\I +KXm'$1uW, W.q/ d^c^;Fm?MƯOۺyKf4j0K nBPTiRL_kEgZ8v.οr_=ggx &ݪ@<Ρs ggxQﭬo=;ZO>т +$-Z +&*`7 zCT5nGM[22~9SmWEZ6ߜUlr;Ƶcj js{UEazPzm-IMTś_>^ˋv * 9$""W\XN +Dκ;ƵcjMƷ[~J6_L՛VM֯9c!y[6>8_*8dR]Vl7oGTSah瞳Ώ߫Z-wocmMߎ:,Xh\VzkjGf?~@mꉣC:\lc(7|q~sӻyo)ϿN׆ӻ?kCTVTQ%.tV[}m&rW0/dx &lm-o_?|V MDI1V:Jϋ}mr IDAT-/;q|Uegֿ$miTo]&ںY$[0L + P6`+lSs{o}ozB;Q?jm=_+9?'|-'3#S8g|cCْUiKiy<һUV]8". 6sy.gHFOP5B *nP)9nG kerXkJVvD(_UibP;l܆Ua +ݎzەmnXvUM6}^(o/n+#D [ߨ[V?0TdֲSv޴gA[VHk}CVy:(;>_9ϺP{xNyQ3Kn؂ygj2]U6g찌ʪwy:U-=-=rۇۯ]8i`YͩB;=N)[nGyU߯|Y}I\fif2ȯ*^OUc3DZҭԌiPl`{MIo^[6?8mLa;ck2ԬgXT,2V_e9glmj}C"Kaj5=}ClY?N1ԺOath%<92>urʖ (31^mɣ$ʝG{?EZW/l=1˵$J=ԿEJ'*óoOm!d^HRͶk9Wk5 +ܵ.x 0CivIk,GB{w͹Rz+R)Hd 'Tvv8k]_prBJޅvq椻ivw^{tXxQN"Ż yki3iԉyy=]X14"rƙv}Jdj+R^ۖ9Og3Ixڒ"?hGHPkZRN$cTZQv47U )*~3umC0a3yFXX\T2Q_~y^7=;h}.'R, *C\YnwӨT<=3D*X"""s:sJ8=&4.A@j +&KWHEmqWWya|Ub;Ve*Μ;w<#4m̰mǐaKW IqmfΟ$_7 ~iй3o﷭LUҨ)u%޴u~lěU!gƐ]$5 tR,jB(3y(koO\|s:OrcZj{(l]7$9 *`vԙ+ՎZ-abQv Vkَ5<_Xkԝ^Ty~Fy-Gob9]xuV3 ChZvTtdZ_굠ڟ&2 cNgWV]PˍmNY7U }a>Nsz1k2:fZAÒorH݂_SӐvj2kSzR\mWUu7L[/+`Xo4{}\s_݀fBđ|43p@H(5ZI8vfB *ʶofF@tRdЂ +$X*7ZP$Q47/-}}Co9sSS""ՙ?~ ms{v=.6ݸHLݯ̸9h?kayG[6߂t.D:~M>ˉȲЯ믕{|%9D10]|y`õ""Z?9f_tI|Ac;'g|}8wMvFI}~|߫o;f(KSu_qlO}ΟZƗj44N'/v6:_7dIOwpn߽5h'""o7_|>~MP\6ݸzlG,v.FOddS'S??͟[֢p88a}{hE6gg\9c?S6q3tˣ{O2? 3иt2B'GL#x;a_';%>?x[oI&VLޮ۾wiuHN**v*)=_IFS9w[u +}C"owfx7gdloNɷ>~6Sֽܵm2W-e`nLϏNB!ӟ8ME?6x4_?՜?N|SE_Z+ovvHu0y:Qb#8/FZ1繖4[okФ8MbE'lqƼ/:1b~96a61z] ޱrc>Y͐!Yo"u|{z} w0 x陼l}>1ћ&e:Ìow+4]%UcͷqE/BgwkNʑc⌻q3kd/i^7x9r\ >Gk\Z&wtBY!Qw4'!.w}VAu:®nRszsyUVlV6|I!,(&` +8NY1tySwW S.*oG%St,;1kS9d"iegf>x"̲דwKޔ6fOnП2LY_}L<I8ô]VvfʾOׇy>KrƶN$_?՜?4rʹэ8鮓Uׇ &gLcpLs/̟j  -@ZwsWȕNJ߿8muv]9|_j? {.c==x"/xdq? \V\)J>^;{mwߖսL0Ϗm]O{{;qq7MAc0 +w0xuܿ!Yʥjf>_?`sQ-p}0v_? -@j eW+ J>pݕDxY2\[߰-Bcuuf#}?`,iRZZmGa卵THj/i??޶ٽ]OsDSMi=|,[U15[| k$vK|)7/h6󯖱TCr6lO{N/?_ H%ltz^nj~OnY*7>ms1[8~M?='xѱKk֎^lT 4TG+{~Q9"GNW>.T'/?XK^Ls|1]$&Q/?_̴ˍ85c|1}z'|1KOėC|AHP]xLΌ?Ԕ҆yGs\à1r̬%ʏ>'];1FdǗjpu7O$>F''v=ׇOHP~rc'Z>IJp" Y8UDd}._-q;P#"r'IG)⋈l^U>1Οf/η4ED C p$ނzsFh.:Jo,2)71?o]u?@eK2r,G|].ȲY&GB tX_̟Ə/@T QUI;iFtd"+5-|)nhEZ/|3(Rݲ.m .5#yw|S]/+~P9}Km4||a""n Ż>p 8hAx\X\3,hfq' s^9*.6Bl 0/v}E?3/x"_oSpġ ]?X/o+/6kg܋'mm̸1$ v|P/eܟ>0 Sė'B],s$ Vf/lVDR ̟F/T AxSvI/:9>}"P̧7mmrsYMeKm]Ԍ񥯻0*//!kON5Sܙ7M>*/* 87YM"O|;˜ H=rR1#/D$8[N9 \r&aK_~zi ̟F/ u_̺]μI aQ HPk5>=*3!OLO2<Lij?<8$0YjϟF/rg͟F/xnߐN H'8 _O>'Hn Lcc9s[F:O+auO}"9)"K4c|;zDI~4Z|a~ J>bg{[XcWgV<4R'T/:It"q> s&YH?CRLY)3c,MX~FliVO_G.L5u|{g+9?_ ɹ3o=Tp]OSQKC|A3I|+޴M.k5?hsȽǸ8C<RvwPȽr\DDT2>z{;|{/MLj3>,fWΩ#M_6p :yrwq4r|͟? '>Y;nѦ/_uM,秼b?_lK_дhAT]P6gRfE,N9>U.[V4)Y5uA#3N]z]}&4Iv|POj'F"ާFD4`$⋬RӨ6/hv,pv̛ėO"yU%gz|B{:7aӥz+fw8 \W_},iėCl̟ė'ḿR|}x`õnz=󓇘?/QOK--@OvǷdMEYZ uYi(E4@/s{J&r/r5נwnyy_sw͛8^,u6zף?"2].~ύH{ =E|>˖:e|<3?_?i/՜?h\ٞY^G/"+Ξ_ +]?_f3_5ت҂j7~5[Es>DD7#"oc/ܸI^n\T2Yy]OddS'v>+?fF":mGݴ4eK],/&OD>XOѽ'S;=m|Ac&d{:298=a6Tkт +$*pMm",>:fq-{ :oO_s>}큻ֺM6 fO(dj<}`7 zϤ)cY,hj·i?hKȅwv腒醌/KZi!Q;F9 ѩ/UߜKK\Fx.F7c;6<'O6ݸHȻoxs^ξ!N\# mΟˍtMd O܋8SoKD|Tc<}""' lT4c9+6#ٞ %ӈ%C|A#HPUvA5UL7+r]NEO˺lW8c,άuY~#R]D5Ac3;4+#ǜSM_lKėdO#Ɨܙ7j_\!/=orsB|4b|k_HZ]N.W-~: 픶_rLxor}lٟ<4,㎚ J1e&@_k1Ucu%tǹzDD§HZI$כ&B|w4b|!u̿]*!k;?0Dib2V KQlT AUKnkǷOˉQrf2ڊ^d2<wΞgki!-{ S =f̘O??޶Z]O{{۔Ǥͩ㋡wԈ/9Ɨ i;pR*F/=*/ A[PG[Q'0ќMw "oK ۿEm6$hVvkYW\$Ƭ%"2xk_lg_f/aZ%3F2C|Atmt}YKe':KC|A3HPU+|?4K""=6 jVɊ^ +;j-{ sv3nB˼]Q˲(6$dMTiRy]PSORxf"k6DSMi=|,SXj]YY6 +#ޙu|orw`-{ f}ޥhhB$_,2LG?x|O r~<:=s&p?ߔkzM('ӁLDdpH5ۯ>z}9s_MB$E7_T$МvĜX?oh|sou]pmc}RcS$$"w=oh|q_Ь?Iߛh='۾wImM06oN]qʍ%rė+1;]s۾wTqZfμ?/5?bC3ė8͊T A5*FEZ|Wsc]Wt%Mחq*Di*m#ƿAĺl{λ:s\n2i?~$?hƟODO͟7~PqrWuC'HRLXlϔ}n-^T%XK +# +;?X۞KDܶAxAl]AVtw_xԇ~Cj1;/hZIW;[+|VULZ1~X%=2ID|Iaչmp'[WQ,ό͗'\(:`pعK񉜻fV0 v,m&A67i}LgO\ -{ a[@v_`տO~k8*ݱ4I*`&Qɍ/YX9+{Ldyק|Sj^c\ F/̟3D:`%QD-~9 ,Pf3qhS l_tp!i$޻nBF}n?v-{v1u +c#zkMRƋ/Ýres[chxJ\x=axG/Ϗ2pjǛ3l^>:mi#r1"o /ɽIiAD j[*+DO'Gˮ󷒙=JDD y1-{EUÅa]4_u}C̏zeu5kxTU,[eK{,~IJ>>x\}libK_p|4V|ټZliwvc9x,gu;PmxLpu ouufr`R!}V%LDd}?lcߐ}|skcew [GIcDN3_\d_h?Sq@_w[.cWD/:FuRz?>3?0}slϕ_""r-so %yTUO-@)ž񶂈R ͢J%Xf`zz+[:S%ckGջMLfDD8u7/-$Jc%/]٢>bX TvT կ>+xz;^= EmDFI(7.""_sg1vT ol,$oD㴠8xģ^Z%J}^5:7K Fю:/I7[)n?Òq%uk) 0Gn553?d}cr̛usg qk-soDٸ _А'T AdS,X;󣾪v0(;w+Lۚ5u^{moGEDCE݂bԺ/ҪYlC! E~w|7:/ F|oFJ]o믛1Z^O_p^whAv²&}eƠǥo="=N&hHgtHo 5/spoaɵj6eKyzāSHa|ټw7n˽/7zNo\Tsksnۿ_3q-l[: ?S4_Iq}H-@K-{ fσ'e7[HBzݦ굣_n݅ ?DD6Mŗm }ܽՍ/tXM\mԚPu6w#Էg~т +$ +e"'GMsz IDATw9a]vӤO|)U&RzS.Tq\^ T/j2AúhzkG]^dK|P)p)v7 7:%t2N$}kά)P Ɨ0N%=4 j_L1 7s[v( +ZPQWc]^LQ&ߛ7f׶N׸Ox|$§I6y|i#cb*ƮS۩N5\x f_fWD|)f^{%'khf{:Rz؎_c'23ǟ$%9HI2݂Zl;b_|i4z= 63n2+hڄj?h}XЂ +$ +Y*.U& .l4qDɑ]hegF@]k}E_Ku1bҬlnG%@u⋈ -S4Fa;s_/""~O|Ae*;?$j&p z޽klvT\OnM۬3[y/]AG.#\]XN_=z' __EcKw>?cNL<""ڊg2^ [OtIHpUeu[{Ot!"l۷&J1 +.z!;߻_?a[ٙ|ymf;r|㋾fyE[ΦzÂz/GleӍ.4kB3̑f>1,vL=SFωjr[c;8J|*°ʩVJ7"1*lQ+o;g^cV$=RkiG&[ačGm'mߚt8vZ8#_x[AQN9}/E:vR9ޓf;\-_sAyڅH̔J&!tB jv'&"E7z_I$}"8⋔MT,Id1,|=Y?\(t; +iqUt^%W(wKόr ldǟWX -I?jNS`t;x%y.7s|ނ.YKSSՙ-Nl]%q>)wݾȻ=޸s+nq~9~:24%;UnN䉈. 7c ̾YolakY/>Y4m:NRKݿj* c2yw*9?;w{v~dϏN%1_1ICc-?ÿ>vDN,y:8b=ݛW>g=2⩢s{0}|clQ+5~=ˍ7lϽ3#ޱɽ>x*>>&7aG(nėdA\'FLEI•JZ|ٸ?ş [3ȚQGߧCQ~лb)[u]5K1[z~uђIZG)ZuӍNuۑ[`oSy@_I_EVaUO/~I_ާ O y*1x?Z+ +9\&{EDKa{(y;?"^\C?#_*` kY9}N|Ǘ53r翿64>TS*/ate +"^]/tNb|sg|KKrEWkBw8mf[l-_tN'XQ!/v۶uuG|ߧ!I2byND;5bb&Dz&}zSn3c[N'zzEzzRMZٙvͿEz i1X8do/adwo:s>߽@$tLK!q-ͺi "KDLoėr I\?E_gs^}TT:~ _yuk-]DR8iNBw}5uۮ^[: ?SM_tkӍDgklo}0|_NV_`#*hMB8ŗOO-@սSNe*gyU;j+;3ErfT=Sğ׷u$<qOxuufCKm&z a?|"(Iks(%jk=MTk(m]+ݦ굣fB.ˣk⌻VK/~Y.uad_yGjA~}%S*'1~0*/NQ}8p4O| \/K}ŗ&\̴D kM5,:dz{ Velhf=ė87ZPQW.2MCw9E&~vF26Ox*-2`yr~=f'wsvy~j=f/*DJvjڅesp^ RO%Tc=Ơ\;"GO/Kpkdp:'BiRJ%9Ggՙu"F*嶕H{yEt6j^* uXju~j1~lw8%V9!CG|!_/_L1 7s[SF->a-Q~v 1 -@ a.̆Fݎ*B[5s\n^ǽV~Խm>X'Ұ vw(#|ذOK,΄>^"+;3TQ~JLž&=~T_yچJ[_/Kŗ#yw͒.T%GWS C2p$+3?ylw~_0kt-MW/k^Y%u:/cI/km.&:rB|!_/뾉,̅킪wu?X;zB|!4p|HpЙ#yȿմDR W=望 JlϋtiDTS(*DyLOjc^ص\Ĥ7yv zN'HED2E|+?;~bk% e6a _/ėz/zlϕ?{ZיyT]?)^RlYVKmZI`C +6r/.XjfM3]v^d^l 3Y0Pfcȭ'Ö$&ƽP$;.׎e8z>s=WGG^Hk:vQh<-}A_З p9+P1]nr!2͜ߗr_%(d^I5 ˱#x\ǟ/u8G77Obk>'b~ê~nZ67v:ltgzq}}1]6+6dr/P f޵mQn/ ws/i F]t +N]lR/ê/pL!c lfvvA ޾ +WS_ +jmt=|hς*h +^v$^o-3뻍y}e<1s<;"r姕躉[N;ko/r6;\_=\4X^<# //鲬 >^kbp.V +t9lĀ/ 8^|}z]18MV0}*o<(7?jm¸}/z /PݭN@y֗??Ui~$% WK* P-Ik~ci [0K]?A*OC\oޒ*"@_} }/Ie+X,u~kԀ.;N_:l/ 2XB +*@0WhۺmϜߏE[4d( +{^͜7fl>BOC/祙* +RjYig'_}XB.XMlFM +Ɗӳ_XϮ}ZzI* 鋈⩦s&Hb<33p'O}A_V_tt9zI9lȠywO\CG5]B_e\`o.#mi?nOOнem߼}/y[|mhsgvE1F^oE+.Ib98EM_Q >yA_JݿFW2pk-/K?މRP{K4ߺ檻+߉~zZ +}A_ЗRP +8)\N$nX#zˋQˋHc^:kSڱdӼC=5t)O+MdiR +!苈v** /}/i@I,Ou$ +{7:obC_e\|᩿y&"c.:xrA߉^*$uD%Bi/jd v\;ˉyy³7V.Zj-"Թ5z oW흺T/ hTct;j# o/å/p +SO[gKŒS%|n,.D[QS(u?ݼ-dguxv2^_QU:BowJOyvt(!>ot=$WvRw$}?{ȷCG!T>G}A_Š'O"| _~GXGX/ 2\΃y_t>ۼ-rMWiY}\:Ύd[;P6 CvQ""D+I]c*W݃ra=Ǿ՗!2:|.}A_eՐnαΛUW.}A_K_HA("axi^˹N$8̜Z߾E}qgډo^.i"t ʋSd?[E\mksKFÒ2_؟6vqS(N_p1 //˟kQ\s(l=C_e\ + o(iإ~K1MOEDoJIZODy2mϼ}B@s1]ioct[uMc^^7_0̜ߗAR]|ee!'xr uG7*?Ds)=JzgF$RÎ̂bsX; +}A_eEG>BE[wIj`/I}G/ 2.h>Eյhyr!7絫QS\mHm4t¥A/'Ii2|{}cy zELDAwEcwF̼'O[/ zLjFԂ}Yn{!g +P w<9\뿱oEh8J[oE! [= =OG߹{t/zf9*a6'}/ȽSްS{m`\/ RdՐe^hjGlA~t'Y;mfZgK= /EuD5 jT/ C/#1ajČGfG/ˈA +*@ЄAa}#z}guk(N[s?=iNN vNmULϯri IDATPI}|zб(ep13]E_!yD)QiRP]H_c^B +*@}ޝn{Dz :g6QX Q*n@3/z4VSf{C{Rt趏۳֕s#=ՍV+Z~Y<4 Kt\jZ#З&ATvB67f \~#*6b`X,xJUr!KvO_Sasu5^}$+7N1s/AaHoyڮ|q~HUՃ DIGۗ##mhˮt񒳥smgh|BV*˯Ñ}w hjg+KO1v}٬5dgc;|\P(:ع\yxSE7_'S3?յ( +Nw>"-xI֍aQqQqoٗ.j<3I^(_4|^v=IC/02nTsRR]4R9Y<t`u0֭#"" XװwJuE'{Έi3O"A/ }A_`"ï.Ik"Cn-j:62 R+߾<:7ˋ{c-\"M_#x#0EmQaS%=K+ح} Z}1Ʀ{Ge^t^(`J<6V?}ŭ/)^ΐ)uQmV*\RjF8]}A_ @>ȫSU8KgWŏnMb0ݺT> +۷tT;m5Nյ\0Wù0Wf;Jj걮Qs4ٵ>>DDdQn~ZaaI] 뻍: +>*Pj7d.dc{xb˓a:lc`uک.nw9>B_Q֗ t_NWAJAӚiI +/Kg~$t;kRL;7 1x+ʸW so3B3u\b^ +6by4E"uӑ'">v_ H닩kdA߆qi/{'J`Wy+vGW_|v/ T8P[HSeۓdo֢pVWxHpkW?h75TcG+޾^]gbh-o!>1S/¹}w͗q?/h9Iqs 鋉P1NoR\?aSwAiAi}e}ѩg 'tT_کN}A_蘁邪8䫻^3t +n]]w:wjdwIK%EP$+9`NOxI_:p2#ac.OHehwN=/tW_DtT[_8x#ֆ+Opֆ|if̏/ ]T8z6|\ԝW{c$(0;lT>'gB<( nJ8 oxC<FKb濶KwMipוbދϟɽ,1>׋c0[_|^ S}p/N_*K7U&O췴T67 @W~}/22ܬ5:tQح;;NGg\յx +j M]R|4 gxt˽hrQDǢ_|rfnM@d}.C/;Z_i{r}A_}鍾hVn6,3N<,#N=թKs}v @qPa.*I,chvn&Y7k 9Zlajg;aEzLG,36sj/FX?KҼ]n`7mE| ׽Q/T=ezN;/ǎOCTz)/ Gbi"~HA #YuzE_}}z.8JG5QfV? +N7]xy~8~sO]uv|5sv G_G_:^Fc?y/ Tt1yh4WnH}.NuZ/ 28#Ia VduC};dc \3riW:qƍQ 8oEbu}=%ïjL4nX]߇3{bvR:ߤNC +Wގ?j^=,:wڙʑeLZ _Ǩ<]=~eAǺ7Ϥk0uRcnf.D_}A_]_t+(Jb.Y6e;Ԯfpդ{|A_}iRP +ۃ8,ƣ浈tnl[r}Xs>㥘I4՘(Ʌ(U7=pE?IagNu4YK ~XzG.SƋd«_og7c?+>7](Ut~**̜ͩ&H쿐ЗAӗ&ATvb t_ظvz/ѹW>m// //g;\畛 Yz-NLZNCG)ԫdféqf /CeJ]7i/k(.t꺰sج/}}HUՃ \CcYu-n K3eISX7VmhܺjKw'r'\7oFj*T;Y!|&\YS6Uo%}׸z{zY9X~ajۗV˕趙a|jw=5EX[xI֍\(O4;-dg Ͳ❲eVHzR'Ə8?~F-NGl={gO5ce끈HfvQyˎJ@_}A_K_*[;|HQi %NxH_Hk~ī#1PN/!9; D]@Dd~n+Zz"_t|6VY*q}_u*n es( +:tku?2Dg ώ7`yXF[>}B}1FS#}A_e8%V^8|HhOayfNDDvq˼{>uWjF8]}A_hHA(C3]{DVw⛧C/g|$HM1^=NmYz޿潱[?L "LпψW)^ +.F!?jRDDO^64XWky>:oAȞs}=Hszn8(^Z$iP91|V{;ckS,˯No*9?2"rpUΣ"}B}9V>/*/ 2 u~|?ҥ LěK_.pla/ N_w<4-iuFNa yU/%5ivg"\<avD~Pi°q [Mp͛"ds}]D޷H}@Dmv oqظ>$zr}O.]hK|.s什u,"U-iͳ2v / 2q{#ftz? //HO#UxDZ2^kqh#MW1,$/D<РƮJD(l>SNjl9NY#yiH +{LH׵diR qvJ*n~~\[]ï\+Y=/'[G_ЗnK^}A_ЗzC_}}\Eau4a8Pͬ/Ĭ/ 6 '>uxڱmqu Wpeߗ!EO'D{~nI&~iw%/~]ƊiNg)Z\#}A_}A_FO_TS}A_З~RP +M\zۓtݖ.m>Ԭ2R׊)"w?ugqT;\Iݐu5[kx>"+x} +¿/f'^Ay={}OHJHz^}A_}A_}A_З\/62 pZXu| /$԰^ƹWg3LAy\+R\}A_}A_}}!P +Ph>oPVOQM"H/[cIwK-[g36sEqsq*|k$g)ʣNuq8yT,/b // / x=usFR4xLbwf ~zfeqiiϽ|)fKrr\Da\s7q i1)r // 2TWx/~\ƒv0jd棏aN~}x~gֿ;Uo,¡^{-]"^-k.0(%yEm&Ԍ"Ǐ/  / /K)ғ8nCmρMBy.Ia/NbSu\jvnZm+rlPдvu흞w{sm_y\I/j // VG_ЗCHA/^ܾE꾣e;*a׾-(AuivHgؕ\5|};/^~e;Roܴ|yP{4)""5hVrH~g+]_a?/ / //ȷab"%WlUD27@}LGk}!`Л=Iuo>;wB/R9mϕ Ɠ#*]X RaŐL+R_7&R}A_}A_}}N֡ɷ*^~^qJ~7bg?;__q͊ϏSӮ{i[;"u6,:K$DkLߣ˯N&>v={^g>"?/ / / +P =OAiH/ab=6ƊCW&ifyc^MC?hi;=` +&L5 +vC,R߽m{PsWY?4mt.ig/ /  "X.alq'|%YhqUHj=6⛧C15v0bkZYC Id,c]ޗ! {"*P W_Lؿ]uǏ/  / / )~]贗jkkT|wCklK뻍\_J:qC99y8Num}/o/\5?oƏ/  / /K= +A ǘ/DGv5]lEw"F D/:mj4E+iNkt{ // 2jB +*@|{[=d$ty삦C1jԢy;eg*y;!fy&KqO}y~i|<Jְpfξ0#gvQs>I$.ջsq uot˃e{h޶=d2ws/ / //|/~; Q6cV1?hXyǜ K~Bۿ][!`b/ / / )BPy}RGzpeDۈI:%us: IDATIF,Ѷ:o' z[G-&˙ y]v"e/ / //<)E5|sS;7[Np2-/:K+WWru6/sVH'n.x>Ηn `U.]hfb؎ }A_}A_@_ЗRP +>¸5 +ƜfqMb~7?Ujcu5ܹ҄-¶ +A?Kid9rO秤 7$"A!" / -HӺ"=0FPvYmLFwmg/#2>:>JZ~u2|6磶l-"`׃ߚLnY oīM{Y@_}A_%)B\\l/$yqH"vSQMYB:"~fb. >6-N&C^z0(aPNO{ }A_}A_}}6C]{44?UjEA_}A_%)B76D❆|,Ύb\]`T{G{u' i~e~]ca ?lTc!>/۬ws9݃%wJ]VaʂOtq\"xAc^>! C׹\؈)/ / +)B!W*R n{ԍBq؞jy$*?ڛ2L#dC/ /K᱇LB":>K +΋k_yWAy~W}]ʜ/ '.eN| +P X<)/Tz4O{Jwb@_}Ap}Fq2/,&lۈA0zSP߹K&>ONm /0t +P D2Ʋ25^ssSggc7m}J:Hk$9!t}A_ p}+<{Vպna<Y%ۈ+t76[67vD$o@_}AT!LH +6^gFYkG kO\" +""'K""RS/  )B01^vzXtƊ-(\ +/ >Bޫ՝y|“-3F;Oh5/ p}s<E@uR7ɬO+rj^O }@_Fxa Z/筡o8l@_}aTz?¸`ORDYY\M}@_vxi!҉ȮE8%} )DDمH>' / 9tx)\Ykȇ_%#݄z率̂8DFLcC_OB_oܓ ?}Iw{r6SX-:9-d> D.Ym/^DDN|y&cSPD ).OHѩ *l;?U +NxI4E@_/>|0:`Rzi 긹7/wo>cY-nκr ŧ-Z_.8J 2zN?YRP +!Aw2]~uRw^9/""۷DR ~cU.o_|Du[//(V_Qԟo?yږu/ڡIB1lԣe&J_O+lᲒTqĢ]fY}O.t.4}աXn&r-xxtYfݩ "~w,fH,O'iLӗ3Gbm1;']!)ARz@e:}kG *WDhbkF-ch{r`cƔ/GF0lC6hX|p<#/ӿz&oHebr!~u볤ymku~t}rq\.Ssoy11d1{r` [~7b;z~uSQ6ɽEk$t?zjyw,}I>2?~莾mP{恱;寿&^J|1jHeiHe }%Zwh)y䊆Rը_!.4Gx$_!D&jMD;g;DD1\y3ҌKk""xlf_?.y+#6蒾Pi7M/kԒTKbFl=sFApYGzo,~mglc|~^ᄈ-Tg"{)+7})OjNudkg0(Qbǰ Igcq@/ )},^N$RL]"cl2e r"LYvǶj˙TIwï=w/nm't[_bƗF[ v>1-O/fA_u{i#K;]gۘ,:)e""/ohg}7Mev1sckL_1ݼ^+ #.C^itI]+nͱ_ O # fY";FDv1Zw{Vt gFc'3j_)JjHkBsƮe @`;Pj,͗.jeGHd~6TƓ6"Bm}\ݶYk .OYo~$a7i"&r-p^sWQDY>Sݸ+3~jH}S_)>zW{/՗Շ7Qǧ/뻍X nh 7p}ĥ MκHmH4x|㬞vJ$A82a6Su81mF&noĮZq<vV˴Ӭ1k8/;j }@_\LSSNϋ/UGĽw@73C,O_| p}ɃAJUg͕k\Ƕ4(5~fBmBmã}~ֲɚcdc7[W{zll?#1+'m_qOD5Z%C頰x)ݗuKqb bߌlCÛ]sMv˸q&ȗNf }A_hRP +CFmD#9k.o3ev2 iwӼ2)Lm>o{xrg=Ъ/Io"NM F;/}蝾NM4ntP%&6Y_t˟]\~Wg4.H:p2]e/ C}HS9u~ My'""?}|`;$ҭp]|^Q0zp :5&WKyM׋_}FN'(,&o[p +tU_~Sn?y*3ǎ\vR<=N_/ /@_D?.Hi?4v;wE$0&>M.9}A_)B\tv!x,:Zu("b"A͠k`"6oG}Ey0˶w\t1$6.TImCR*7~|户nX0HO`"lq:wlZ/&S$H#:ZϜCH^|%:S/ G¥k? OV̗݆A7ٸ:p6闝EƝRo}_}ynN/"MDZoAI=o /r"JGsCk%٫yحw=Y{ҎF'i!G0҈uj.FnSSywT3LIMҗQ}]}^D߈H#\Ä>/yfZIL/2iCRu-z9jiY0srk5ZEh+El~n*{#%$^E(zv@ (}.㧈-yLc_Mu}A_9}{20$ESmd-YRk4ܠcܽ˟H`C_e @ˉ)X=Qo6x#߮] 9/چ,PdQn|zwOj/7|Pjh~o̳%H0z,j +3G3GTl}A_`xEGw7WQėr1(D0wo/ 2b`Kd~,ehW=8c|3'NE6~z{dZp 0bt̲S{RP\;}T!΃)\:1^F*B[/s w4.?lTwAd ^s`td> IDATt_;wÃ.lXz/0Đ +P D@[7k U?jR"fM$Ə7D 6ؑ%{ + fEkc ׫ӕ4}Ab0/ Z6^iw{Ӣ p9+P1]nr!2͜ߗr_%( Jcn_Zc [ eiC(gr`]f ws/i$(t +N]lRB +*@t1!-̎.A4ۗ^~KAB]tM2"5IY<:v1S|*;d=W<'0ʧ)A_AtYVnkQpP tԥJᵘ. pLZݙsjqšo:巺O6Uyޡ'Ky𫵁 lݵO|gÈ-f.BY>&`XtDR7D\oICn/ `xI*[e[3L,O\puAީuTT}A_``!@SrhޫCm7gǢLt֭U2=fuNG 3oųEC/җ7(Z[4f} ^nKUMp0""xܧ#X*P ](5a}?vx(ʧ3Y}w}1f-":×kߢHWt5p΃yt':[ro\}~06tyu&Χ%N TgC/`O>7Y"kys/|1;\fu >S/}A_L_*[ Y> ]E|5|nA_.HA("iMnI:jq9-}9ڑ̓Z=Ss? =wXٷo}ECͱ*W[3~8\L:pe w/'KNG jwp5^0 + }A_`B\-DF7m$cw?پ7L^z>|beJwҺ7&~xs}9vم̵N./ #1})Oi꣘:Clcrs}A_` @sY}oHS$]ԠߪkBGba~ +^__A<tYj,1>7;^p= #s>^B_A AߺKR3_M{ }A_`8f(E˓ tH o=]:yKC%\>!k,|pklr+Iulw?/3`}ޘl?y}} $0)hD-9wRz/0 +P w<9\Xv(DÙTzí( +f?>=jo'.H'cwIޡ,}-חZCp BްS{m`\/ Ke!E-Վ؂Nvx/0" By"j]+vr'tJc\15m~{azGDgS/)z%I㮰i߱D-}gu`EuD5 jT/  TO"32bM&,=-.ßM֭U:nnp'⛧:9y.G$g~\D' &ɫdkvXi*0,9Һ~N\$̱/ 0F7apEJ;sjwE_ &0")Tz&鵫Ʌ~,U(7?j0n "=`]sm%nES!M0M_fQ1ut9S=;uYiw5%8WW,NGr3 ÷uZ3D\h$O:SN߾lC^vmu "-xI֍aQqQqoCD?G>/MS,){Y 0?#O5G.%UN#ՑSA?;*}A_FM_*[cz}`,9"""ϽЌE {TW/猘6$DFJA-R>jm쒴v,r؈-j泛2 R+߾<:7ˋ{y*t8 oī)n/~.OW*5]nW+""ob"یggy?]clwTVEk&tShc}A_@_ IR-6i"Aͥ/Fhe }RP +#.:En WnMb0ݺT> +۷tT;m5Nյ\0Wù0Wf;Jjۅ6dipܒL4Z8Wȯ˿}#Je)"""zpÙmEDӟLD/ol+eoCOP>o7#@_0ˎ~suDws0:TsэooK A_Q֗ t_N: R +/֜N;Mҗ0W}~ܥ MM7^ 剦HkȨ/4b5>ʻ?wmqé]3lэG 7ul2 \n80_ :\g'yח;[Dޘo>]_1~!JXuF7ŏDW,5k?Ԫ0Ť|A1̥҂\s}A_}I]G1# qvGW_|/ t )җUqia!Ph +'ڞ$rp>p&2`3uP;*n"y4[x7^6߼߉=Hv E+^rL}بv:U5jϔF)uvuCDD&騃ۗ##ܵN.q̥-rpB_}5"_俾~ݥn9D{38#/ݺT>} "AOSPw1c/tW_Diحw$2•'O8k S3}@ +*@e gPhu.JMgASp4[?37UٝU`}\!íU DmގKvԎQFe濶KwM.xiL5!tcX~,D(/V +#LTH͜6kq=Όj4nfyK&),U}ܓI?tM4͢!x |~}A_З>W~HAtN}A_A.'vq7;^:Ao;4_|_YB5883gRPuک>3d;Ꝗ/i'*@M,M@ЗggUix73]}@_P_*[g?.ꊄvک=>x>:o p.4HĎum+;?e-@Yf[?2G +ˋј]O.[~|/^3 +VZܒF>]T7!WW#x}9L}9vTf}o:3]v֧ީ⩃m/K݌:IAu&#-6cVHA(tvhL/öM#ױ]w /PpsSe=$*#"| QS_1) e^p.Q ,^%rY' `A_K'ˈ9}'O}C}l5`c P}QiQf]$X tC5H + W_\YC sfYrM+WWu qW:qƍQ 8oEbu}=}5 hUghxY.H!ҞT>=XFTNjL1{ 2WPi\Ƴm\vJ]Iჾ/B +*@|{]x&ˡW+oG7vV_9R jLB}$Ee3i:NAs󬥄_? HI#) E2EݯI¼c}9hbDi'B75Xk.,{F//g;\畛 Yz-NLZNCG)ԫdféqf -gwque _HݕFvUO@ӥ0@vt0[ so8 +2\D·M䫉Itʼn{RFBpv;,U0(vr +'t&&"Ķԙ}&ߞ4Xm5ת@UY YYH$Zu o-}J)* +//u Crxja F[.^k6!G^ Ml?}M}-/P {m{U`xG8 +҉ȜzowGkMA8 )V#bf'}hs8KZгj>zms~pDƞ-hj}h3-pTSXn[DD~`A֭%MfG&|_=nz^>] d<̑&Qh>zmR̵$&Зrk S*G#}R;ٳ}-} ߽6V5`207<*s `}A_ZGpFvmoڮ.EkK:פcڕɷ?j0J{Q¯3ӷ_XD-fp"dJpfdYB|(Zg@D}>/^qF_q\bɋ //gN o۽-7z}A_: RP +8m6G"_3c.R6\(TV]F0ǵgJ83㳈Ox>f^J8f_{q|mgTVÒ5{s IDATdf^|}ET!~Шl7З՗/ {"9X7}Z3¥oM?LcT"rݳ܌ҶypD,>qSK?oKڕ}_nq|NO1E{2R)UED^|4B/ lR򦚢/ @B +*@+Zo$vB:n/l*//R^fm :<ԴV͌Lv9_v.jzv(\k|vkM3}|}e/"k/Weߏ#Uf}A_}A_\7<7[Q߶]F\uW2 p:~ /$aVMvKLb / /)RWo?_7u(ܧؖK:G[cf?f|M;>|w5eEqsv-|k${XHW"j+U 9>=w/ 4+_ۇXE}ߢ/ / pǏTo$7J?_=$В׿<.]@[e=M<ڜI.Y8Ծ߾e(nۧC߬䅰}oۙj)oI~ﺖ3s׿d[ ǧDȶH};: k8>e;}A_e5Εe|i?ɴo^u seo /MdÏ}Ïp5VY;vng?.Z|Le>V|ZȒ$^g_H,u7ds3n뽳-|A +)mqe>;( U'%81y/KK^ bIkV%/ r^ 4[֣/9!@Z3voZNr-ig!̼.ё]lRҬoEow]k'/Hxmm},Kmfu|8I+5I]z?=suۘW{M9袼pKKrLVslq^zAqDv1k/ \|0l5t;bkXM- /Krq@D\it0t%68暕8kYW_]\E#9YӮ7)pݸ}U}GmNlۮ'ߞtK$.['FM56HN3%hYt~m97P6-`ϟƮqۘ|a+yhTDD,R̗zt2/K""2#b?->YjzyH 젙/P@|>ѿX +a }A_e5RZ'S jR"OOlf +m$|}N㧝}gy_3#r*N9|v:׌^ĸ.qgv5M6ot'_s}A_/5W304>gv >w=Cc}]}i /rslg4Vۡs #$sE_LdJzS=-ٳ}B̭GxK}w*Yuӷov^qJ^1uKuREJ`kV} {QNVm)ں5sПRyȚA^Č?pv-k`~7}wm-/ T}yޛ:jڲ0y,{L~?;0v""-q/KëՍw&"r?mI3\[1J?Cjxu[nvcL +P -/V@$`ID/yDߟ gՎ􌍉k+Y팣9~ hi#=`,MZ0}\Wlw,,|3E>XR +BU$`*μ]xAsUQ=> :cz/\UJiz5$9ܩLeմ / N_6wS4+\gYǝg;}^ڙsyC_mUP`@DRߥ -}BEN<.;FeN[a|E}hs(fz̓UJww~Y9o,סfd,c^},-B>A2b\p)gugUȑ$|]M:^Rnن/ H[۳>o1AM0Y7A/ TJԦ]+k봉d_ΰp2:TSٍb)KC +P k:Nu!clb7Cef`5J ᬔkN䲆Y3n:lÜ3Gq\C}L3thg)"+¤"Qȱ驰Qlsc0ˬ(u,/ R}t5Nf?r[#ׁ/ 4O_v>6tَ4˭u3~14<91їē2k5a379m9ǤbcPL}dVٳA"dJp6{_H|_ 8w+*:g&d:k +~րk'V }A_@}Y.LZ}A_ЗbD> 7/0{`_79 +P kdU^_4mmy^\*{ʆXo2䭄'K쑙ޮ;>k6ZY$}:׎O_۾Wa뀾/ L'\c)seg"RZʲ?/ Z}+;ϻ<+v+iS٘"Rj +wM<7,AZOA[WDKwW3]Ү3yt˗^btGSQUEOG/_,KR-RF+2s> 4*"㩅JlNU!͓.joAT/})SoV{k[/[{xG5 hm&g. Yy5|5Ͻe ɳ^T"*y)٭}3*Ymff=s5L1i&:ks]u͞=l}r%|<#?(! ߇fOlS/ M`Q3⮱#.NTWaXny;~L~]/W)}&ͿUD쪠Xwch痝/#-Ay~Ob݆U}\܅* @v,n"Ρ,QxGtםN;JNn+"fRŻA3>_ -lY[^W:Q*]!ޭʧY/iЯ|ivp15}Mc%n @Y8y!jz)XtUD쪮).[?TKw)"@f$iG?4dH[dԶ*ٿX*IE3m՞_3o^o_o"+/ c *bKJ/u9pe\R)HYJkפ[d}v4P>̽mIYZijCu.Yq%h׿/};yY4LX|4ϟN}%6:h9: /Ј5 O:fR9:\Y/e5K~.)%Vs0kZJ *W7<8D]i!KͱOcǼ>ko/ J_jn/sw߀o}_[mי9qeIwu};/ Az:6W*";;s. c^8Õ~,xJDp\>8R+]NyDDd 1#G%x™WNxS|V,UFlNdXp%6-.k*"h*j_@0}rKMF46;0f 5<ؒK"/  ӗx?mce L|궆/ $o&5.vuphZk7QE$|Dr{/Y!@p$@SI9&,_>م˿?&ٷ qFDfё/9H`m8+⣾6b{OHiz*,yduʲ<1]dI}ύ0$9㚑 /lˡ;NJ;~߉M՘a|~_; }}be|si)pbJ#6"+ߜgit0L&Q_|ƥ$%/ &s ߫|}c~;oо웶GJ??{Bf-־ACv"ZĴ]۵V-Dܡ=;/9hu8τA/;3OEѼ$ퟶ^~{u?_@_X{) z&PP,Vi4Z$lK>kݷ,+//\} jis|2cku0Łh-<%3U-tѳI.\3(YlվcAk i=[AJv=SB +ۙ٣{?Ni㒷i'k>SN󃣿j|-zs9Ѳ:4y8YŝgNxxmz&$?(JLĚQ$˺(u5Kh+|LPoȬ2"/ ejbVxk8^E_}A_}5 +f%ڍ>7ޱt,F3˖VT$^T? CI nHA(pmfqkR ٣f,D;{&U9(]?Jn8, ۡ5ydq_xE> dkk1כƽG|yj>?h߄ɳ/Jߌ+r]8|P_Xܯr~)/f/.oFuW*/G{~g,IM"Khkӷo޴V_G>yDgtѬI{ծ7vN  pǏNM[-hղiss.Zrfί'@ +*@l3C~^D+o!پ%PL|v?)",bXV'pjykVɹ~};1$pY!KÈA!K-g|%y}P(xgRx̛Gw } 6ف8ݷo>%#̷O+oYj|st'/ sZy @~8´ U8}>v}^I:HJw)ߟť۵98Fд2MeUk̜e]W*i_W~mZ` KJu/;t}@`V˛kՒT!A{ff43KBפ-n+ 7*eA2G"$fhgY"Ғ/Y `5RGR$3 +j`q\ Wm'PeN_nFEDdI.`݄]wMD|km}A_B `5fR;:RP +hq ߫YO=ڒ5c¼έ۾mg{[㳟RH5}}"Fс"&"lϏ uDnWe"j]5& +J/ )BC13I"슞E:6=%""ߟ g| P R9S~؞ka}A_zn](lml}D3]C!Ik{`ϏA}A_!@w!NEI׿d~" χ&ÿϧ_>Hl IDAT8L ~b /OpAaylFd\zPD }A_}C +*@q}3BLFPƯUi?b{4@}K5N-!,?HDDv~ +٦0*f[n1V- M3/+##F8hǧD4|0;W0WD?HHA [~ +w_a .HcwtX4ĽQT5M +}@_dj!} 05G+^/<,~fu^S_F_T)<u߮2Ti*bt8߳uxHDD:X9VW;ԕvƌ4SQ};鴶 }A_Зq ,>T뱈nЗi_#hm{?ڴgZa%mie%ܒeyƿat./З:Zf~:4lK +~@jyiB>YSh^ -::'wM(^LM'ǮS fooPthzy=3#HKpfhvf& |czLǭq‰.cns47\Z'ueRs{M-\'6gueq&ռFݖ*B }@_˿ ց.rwq\E ?ہ/T_Oy> 5o .#kf<~ώ*+Qu}l}`Qnt;H;+pb'; 7m[X}@_/^ +Ml6l˻^=򞣽Ħ Ckja@&>u[/ͻA%xGTT뀗 o}7/<_;[Mr2RP +d M7S3k8˲]co6TSM;5]1}10۝sRt!vɥ9J +>dX}h]@?v;MUTbKr.TE_RxOdcl[qz64z|>_qǙ^i9ut`*)ھݒwD5\A0K^tu\Aդqݒ{S{Lt{m[Bnڵ9| a8s=N—;GW +a)T)8Z7̉(gf*Th"IԳF+hbAo>v qeizSOfLl, 0~] +*'[/9iӭ]ah~c%/Kq,-wѝ SIuej;Iy~YNY[֣/ В5+a:0z1hN[|c|^•`5Nc~a]tNj}YNLܲiƕ֊4'//&qO^ 6i.?ReyGjzͲU:K{tC"abXPֶ;kQDZV  K0_|A=;̳_wc5n;?8TT{8xU;ЗQںnvx~?8M`\}%A_`[0nL 4:xƞH{F!@t :ǧTQU=utv7T + =.;?;ZwťrXHGYVb=S g"v B8qNui+\tj1?5{´;F_j&6U6"ٝF't>n:ڹS\s/˩7SS}ѕMMÿ,~W7X-'hr3'`oY_`,Z EJE_1¥R9>}!U8'vc k;\kA:Ep1*|YZD/sn"՞hˁ9kh@itjެYzS_L-J3ƃkdKfTv/[oV!@tIx^2N8fpvR)\.i-8Z.f ^l/`CKUGXGZޮ"" &]/I)YV<oPyg)Ԁ@KBD/T55n ^_\`eaM_N}rEOnV0.L{?n67CnL?8kU]1_t*+΀lqyY hzf{QtZA1 +]P0H1!keja9M* M_֯s6t&<㧣N s {_ u ?}USuL:$\'.)@Z;Z-mN_._ss/kÏb) udq‰.0sͺl\3(;OߋvyQJuT:J_֯KjjҗkjL-D25Fl[_z+tjaVXY|_ >w.;?_3}VꋮhQ[ҩa}C;lJ+uf2饋Ii@cV3꿰^RܰgGS BҼ۽. "\w08(7ße4} ]6}?ɒ:eϟĶ-h?I?Tɳם٫hwK0^ӗw/Ecsk5TeYzYSO-tv:A,67(7SoV_N};.% >}t|`HJ7AO~k"^ ǩK;pBjn\t-yZZtA{܂dTYk% 2 +݈oNK?͒jQ5iW4S5`+~OM(ߩviVGuzoLgIKmĹsS|{:}}|]8CO@4ED$tb*Ev{M_q0klOz Jg{^H>Wuf泏g+l}˚~Pߏa]eR?I<U f<.;B%Pod>_]^JlW&k`ˋkRk/gb u\5eR|)i:5T Y[ \/K&}ۂGԠo~ŷ^K/gM芙yI?z<5C_З,bn_(m^l}AtzVǯ]J:VcxciMʷI` TY sj[%ZD$Y +z +AY#e+`-ֹ~52v}m/-6o +,`}dqIeh}}I՗} g%g;d'-4\oЗv\TER Y}Iחwgta_ʤϭ7}/ڰ]Vbg_{}`YwK^?Q`H!->`N}饽\ɴ8ѿjǶiױuȚ^s"4 ~8 K-W}Qk1*f I/ĦLE_O Pr@ӪBo닮jjiv?}SMvn7טF %?""H$ RP +·qΦJH%3M̒{R]T;Ҋ{|6l,k!<VC}jJx?Qc4/}/cW`i"Q$}>ZzFKM1Nh|~􏾈+.//~`3)Yvtc,od\?Oozť@/y#oYOџRY%pgOl`[i^}҇rZ,ЩЖEC{YBKOs6wSוjmK^-H5)W8:֮iEPu[>)%:CFHA(p ;ģn62B *H9ڷkslGptvzg\N8SoVb.*tt{arv=m}_{~\7SK/~Lpux(s pDnQ5_|%wcHS@}0cU8<[}q矘κڇs[ }i gi@A>6Щ_&] #?\,f{y~9 `HC_:[_tP ?3KiV{+ ;s I @p_qGѺ٩pS=[o3KJ@o]̑I1Z0@@]YYa}Zy.|st'\cczY>S TER+0jK*tKS\{ϝy D[zR<Dę/qٟv2V0n,0}Oi3N}|N}ppm@WJ5l=>_ ]7_`U6ygTpzDf].W~m= KJ-}\;p'8}QA7 l^I/!@yNJ4__|楓Dvk594X;tP6c7+-`[3&:􍽟wfRFDSW)dzeY8^Ko<¡9N8WT j +g+fjQΕ4/\ٙvUM .._htW$t&khS 5{\ q3'/&&og^k#tiwt̷f/F :_Fo?D Yj&RgZ_֯sVݪAznO?7cOitPrz{Sc*wiR)v~y$_}p|)vz1tH8uFdic/=oʻf{ }}+ە~}2 +C%Gב+u|$cc\qKV4k?@7P_vV,JG "Q@U\K 7ᕋcw 5Ң{\nA_jZCW%n'WP Cl{E;s^OD[q }l}̤R?w굷Dkm~Ǔ'zRbN?܇|kމD^G{<ȧCq'˲VLCy~9l߹ $`ȳ^{7Vy;G{wVED?m ]񾛜_`VQ4:k8x t,HK#=2Ipi驸v6)X5]mSon:0Z/[Efc4Rs"s)v[RSED a}W:y>KT,ׇ\mұs@_+SIW4M6;Q+-Pv‰D.`nݞRw_v(/]nSK1pBݴ7./ +1/y~sTIʧn^B_ϤQ tەaNcAa~;'(iI*ArҶ݄3}~޴sh4:̏y#zy89LtWX(ʦ]t^_3ixi9NRP +ppIP1{ژ gS2>o/nAḳǣ=nEDHCBbK WKMy@_rgEv5Ecwf@KRPժif*r@c.{$۬V_SGSgG^7O9Pm݀W_?mXO? {2[[4?5}wv> ~\ S~IϸקެFHA£v IDAT(+|cb+6oEQjvo;t{SͯUDхMDܮК-kx[X5U$rɅ꧚s?JU_'}tjo kZfzv "@阠Ul\Vmxt @W_;l8*]cV#]Ԍ<ƥ055Ec Zu{ Nu\A7zRP +pRnD/Rm[AgAA.ǑofqY*0JAwM@_`mN8vj[@_iI + zPdZbNK\~Fߗ/uLGR3ŤىWJ'X@_}i\_Lp᠈jۿ \ٹUHA(|U;/(ydX ɼB RzӅK#VyEY~3DC'Ѝ(`,^RP n +&%n,`_؂H|yK --CmKd3=s\^cg1=A^ ֆ#%nJ͍Ymt[1F["bQrZ *|KfXEf^C_})?%_[gq{痥4:("|/d*W\{9gjIӬV6y:})ofG]m)hN8]!8OKWǪg目뷦±_\ -_EgvnX[9/ĦeWG" +FZ+slЗ]A$/!H;|{&kЎKc?ZwЗRi+~nmN^~鵩q-0i~ @k{]۵9&\EP>wj_#l] ^yZ_yD8_mv9RPۏ %CS @s닮z }>$o{@jeS%γ_NjVک]}TB)<54ϱ :m":|p'Wyd|^SQ)vSM Gi3*_žcUqu߳#?;[ Ÿ_uiIJUA}G n1Wž3۵٩/"RťҬ/%Êԝ F =SMN)}M;1 :tu}A_hp['q9`zYOl7 G/:q79RP4Þ뫪>T7WDK_GdM skgGvRk" WXE{R^kTAm/:דré©} cU҅:U_Z5)2y;8xZ_8]QPunOC5A7(v5)/ɐ +P ;WD^?ht9_Put^m5{EfOlvU<8F:}ҲϨe3};)(PW.npeqGکzi9L_֯M9yU_EDi}"&c=;TC7UMβN>OeW25V}qѯb"q/YhI +jh{ٿ)',UCу߾eiLJ2MM#^CNDdϿ\+;@JWP5A.6NJw6ӭvn* +F7n|hu G;+-ԉôݱscm{=\?| +P7c%oU\A7$/eo +}\\*!*o7|UUw>N^ +ݒU2iv }0{E&Ϣ//&b_HA(p3K\U%t:ˢy/E}6C*xeqjhiθ?17N3sL+ġ?_vם)?W>*.,EiVdqw`]<3cdFs}苟tHJS u7%MհXJ@;E 'ї$tSoVdv]AuӮtNsNq¥} '/*&977Q+!1)&Ϣ/ݦ/:/slI +${kҝ_|Z;ʰT)*W ʹ\5:ym::7mv_U-ww|iQ󇞉muRHbWT$'WMOvL9vNdO-0K0&m]?;عKKNtJWǢԼg_ҍ?2K-|np,nL9>4N['SP;<5cy~J5M/̨Jly˃?-HC_:S_LMO0a+ @ִͦWrhivg6Wq@Hpmhv8LJ]?w?&/-.s -,Z*{|hK/^fkEn +sݾmTJU;q3IX,X4{]oI٭%憻psʪhC:>Nj>ٹr}Kc3^}F2TdӗNFb9V5UWl tP_Зƈ /RzM;W/uq{-]oٹrLiuG>=P}U]4jՂ/5tk" )pX5&RM'YMϢWQn:1GwDR?̇m>!eG]"K}}7%5+Δ{}OkCO#׌?Xt`[xG # kK`LqiNh/ץN0#֋ 8sjjy~m8㾓SPv\SoVRmKc4(o SϾz`]η;m1]1lo$669E@ +*@i"۷ ɶ-Qٮvnkvy|՞0[Š3'*22Tom hiEoU;\!b__ɷb|vN+|*j#Νqf;F^mo3.gGb ^SED:rqt)va 5Y^ְƝoWyiį/*4 /-uP$*"m+Щiij#joK1AX#n}7^u;}R}q95Ul!tjBM746zp O;K :R7^YY~ͣ%[[mAɻA?6~֮5Ŏ>k'/PoVˬ¤_6hݖAӗV_=}Z]?R 5tC_:֟%9L38mfH<5e%k$F[[pz7W }i笃v@T$H<{yy%m-6;ȕ/@VԘN %v:;Wo}&TR +P mKA۾։e-j/>$]atGk 2tMoFM;M㛁mf>uۖRl?"^"O?ߟbn.Z3ϗ*ӶmoM;wO)/8iR K7E_:veq4V93u:}m4RMrUXso\m:-ݕQ?[@_Z/i;MG?""_>)OwB p7E3W+0=w+8̆Ծ7{2t1~_P\74EM蟭ח:/܆$UA%8o^&ج4ntiX2OX ?[/ʘ<{=U_W.~OFL0e +ho\Ҡ\qA J{C:<؅Otַ:j`9 k1q|*J=mP 5, 9 }i2}äku=~&ԊtTo&F|}ٹr =/{bN;wƯ'VDj ?jN^pV쁆[>) '/W%Mgg鋯 +N,K_}n5Z )Ғ*ŽE}t_Օ@DE/⠏_ vˎf{dvgjOPδlTY=}}]UB*rz-񛌮i=vzvP9+!60c}CƋ&moXv9l}io2f"2> [:}lZ؎ʃmUF_:S_ʠS&}F\ [vm.d\{8}crq U_tMϢے^n.>9li-%U3|Mo*]O'8'=f@?IHipWd|MS&5],_W{YpL;%W?lLr1ߎ}:Ezja D_G_箃ol%Y_d|uqv~E}=y"28E_:W_{t`i4kw +X;ovCap!EI]}l}џ>l,ghjƎ~*z\kv--;;Wϩ +P ;%D Y.6d׶$>t]ֶ}rý_'LL}i}Clֵ73 W. լَq%3ɹ.fq13' ؁κ?0~qi;mU!z]%Sk6]$}iƸXsͷ_\3vES(fb]Zf~)̙4 ^NOkH/*;kHї.lCrMB >}+˸{>cWbMꗮik_aZo|biԻz:=0}y䮁䳲qJo?wP&{ Oc:^ĴQxP9|+M|i&04{b^>V{Pp=7?,$"g#)_ ХvfvIЗCArXARP +dM+,B_׺"vDGWS5|tsYDj/cN8I^Ϻ,A韍U\`Qucxq{'y9\)zF'{.Ukv3wn:m +20~W/g%LGz ]З_+EteۘC굸^S dj!vN6>VʕZ>I!mjaY1V߲KV}~}c_[{J_L//ue\lR򺏵n/O:vi.rbS+X!g_qxG5l+~-1=RXwn=#5Tvڛ67{7s+rv~CHUD~]{ '}> 韫?Vaz\A%xsadQnt?˲=Fo͟Ķ-n{ +e=wŷJ,#<ۮ֗t|:>їӗ@l;KM 26>&"2$-,-+<]/o|wo_^?Lu6wSKaͧ/0xZdk$([η6 4^8 rA{WRPoKw5IAAִ ,hg1Ub,V}Xgݴehֵf蟝]8nĆX[^ :}U8A$[qV\{>7jiRj<̆XoUBe/ R$WҗPE89tFEnNk+//iR,TuO_tJ%U]Hd>AE;TG2̺"O f* [j-]%7:w$fyoCv:<$7 +yezL2+p8CdnQ?iR:MїnO=񍽟C_\_|HͺYE:iueg5$} Y.lNk+o{SOu//:p:Rt}}1Fc[f&xEc.6lHKSPf9VҶF޷YrHoA,z$%ǦLL?vS)K$~:sB3)a'QWJv6:^%Mt5/[z +"Fn(o/4Z{g}7_Sg_la~\vTE=&أ}U>:<$#6\73k* O:mKernpB%Yqڐ񋾠/KV\6u +Y_f\ҫ7~Ae; +d/ <2ր3k'M_Sow>0ٮ̚+muȣ/g+VmȯM\^Ka]']kPDdg]=$"/]5O~(E_ЗӗWV.HX{KE5|+onk\k ?ۢ/~u\z˫/^>lڵ}VBDBImD_fʲgbpݝ_f IDATIoA?2\ +oprCBsq p}r%5`ԫ64c͗=#zTC+CWISp_@_&쀒 *uf^˥/R?fI_VQSp_@_%UA}d^}1Ǎz܍עO.苭& UWY5M8RP +dM/_3^^lu϶pDa|L$3{d0η~smJgK15hi銊_@_YS)]t/f]ov/ .M_|D/蟝JRz˱yTAߣSPuQKr=яٹr؆v +j;Xm:yff YZ_;c+}xsqԂGHWOgm1絘$Nov<[I`p|)s0xW_t~v.k\_=µ#I +*@Ǹ; "b + Q^6}V&gf항g[bt ko>5ZOmaڢE^ui\@'cVcڅu5t+EGKxКiz1]+r{_D8seibieg Ao}rZǖ+`ֺiHܡV_Sﭯj`۝q{\‰ԗ6 l?p:Zf<_k\cfN,l?KbrLk*k˹iK{Mk [7/k-3h0虦/u"IDI +֥U%f_yi۩bY3o~UrJ݆ZMY +P 8kN yYJvWWMpЖr>})k"RKreq56_j=dbS5-8ΘŴ&<Φ*S_MDD^]6}^9ެbIf5] +mwmgvsrqH<k X|`N=ziJYlHU3KZCT/6 _@M?NǾ5沬{ߤכkdyѧg6D龝/E2v>}1A%`ʒ"J_ɻvk;U7vq\WCf#lJdKfCXv)s` /`r qOob ǎcc8Y$HJm t% |>wժ{fu]kյjǿ||T7V +;%+zkM"AnG˓KmBnGjm<$Wn͍x6/)A *9{܅SGhQikx@yٶz +{[;> ZYJ'KѥgIRm?[UV*^-?^N_t -]/DfiDM[ 5,?plԫD¿-<ۊg{>dW e2~Bʊ#&ZQr^7Ra"Ƞ߽ph ?> S%W~o/폷~ +)y$#-B)w$W-zG;E +'*0\:Y*?o>HmgTJ@ q7p9fQ\ib9\g__xJg<WƯOߏI=LEVSuI,?dV =#}ɀSK}<Ɠ$RIZO-2|Tm?StHYUW-*/tX%t]_$$4Kt^gb,I99ͶZVW + Η0e>QDWg!+;#r5`^xj/<56,#! k-&N*p]%9C29l6W,oF7F}c5 _TǩR^@tx3Z!ȸ5ۭ廬p<(ETrt`RJ[F^ʈIn(;<)\7\׷ ;L \*.ETSV`3s}~DFV@F!G9JE;>wM}yA! %/hQA7U~<9~?]^Tep$yJ"$HpbI=OV-T*1ȟ)E(*sT= +_"WЗبlU_ʐ,a~si{pfD)D u3__e/T.P3¿P,oe5=h(TrUPkwRL +I4 'eo,U2@98p(CD9/@ ΟA_p|=8"JLn"FTT<>hna=4j4ѱnX SPfzpD +0ªBz +F:N͍펛{Gh"߱>cܔո@ +@%m7*N:5,WBm¿`/|HT1?b 5P + A G&A%J}rT[Tis%)y25Y_~| OPSmda_""擡SteJ*i0%jw.GuUIUtʂ`E0e׵:HtV@͸j* 1V8ǔjT͛- L%>Q:qSdm"zAˏρepRl[ɉx تƎiI5R%Q?k%/oʕS¿?i¿2aAY"ڍ %UrT}80ߒq3Jg'$t$@%lW;KW/l{j[fzUS$*wq֯kc uӟȦ ++8*ڒ+/5ZU^1f9츹vj/`%(_m/|/+,<Rk3#),Կ9˷'}9\fɋ* q*mۻ>z9TVi8Ԏ7ꃤp +K XsI߀ЊM$` zelBe=4Zm5́6n{}mc-|\~xWS'OG/nPV)o>&"ʷFbDt+HLęR *# (/o;_7>2>5?m .<o{;/e}/bX?L>7!2:I^gRU-v3y?/~No\Rz8ŷs{6UW=w{$D{i.ݸڂ)1ɨy09o A Gs&]j>Ex֜$RUS~hJW-T2l YmۣOigރ<7YENDkNVMDTEU[p-˳;yj +SFWuTךbNJʲE@Y KvnmUMoF{]RAcZ86.)#^Em_f_Y㻯r).-r_Idq//j3.k^TAWxݸ +:ݣ4V1}x^{N'NotDz]³o֯beBh9\z* `J2U? : Ad$ؤ۶O@Dтk +<8Yk#1 JA7IzZiW5jlț#ŎjDDcA8-$Ѓ<`a7=&i蒠e&]Շ/OOkJ<=(数lmk%7#@sUSpS`l_ym$f\V*Ʀ1~8wο(>w*_%6i/Y86o,>wf*e_ӧ A Grπl!̪2|7ILߡ1h𩔪/l'Mda^Ԇd36[ԆO1OK`71=I +8g|?g}x|i{/3\Sm@B3tIn緐|m$ep"Ey{lFfJRb +DmNQSlǠ5RgIڃ΂{2%1>ӧY0>USQew5Ͼ1ɦpPR\)eosfTOT͔KP>3^x]|Uƪ`R&e}iMmySҩe>/}7i< XzhьCmCb¯VI'M +dLu6bmҷqj"GMe^?ۘrV҃k>4]K jyَY ckuʥyD *׃#JG` ޕ6QfVVT3lA7W{>z)_Uv8KkݾB+?A Igߎ'z`NYIɮ_r<y=)G""[eXUD&2nk-6=&)u\h;f= (snfxT](TrEtyM%, Jl8 dD/v_6"AOJ7IMqܕg$;*d.eNzs,V>`8%%ۍ|/͟OMLmhRU]?b,)-lۮ6̺[/d +h$&b[w-kP|5}_2xpu2}L_;llA(r& 뷛ɿR2㻾Ij/ʏ Trp<ϕھdP"*<4κ^C-6%n)ЭGR?4 &Ư?kmKDDG۽BM׳f=6ʆ{g4x%%e/BfaU%Uc//!oY.d JE5osk'/ɋ%I6L6u}^{_Ը3ذ )Cũ׵$0ߊ5Sÿӿdw5L ߢ + M2C/yf<1o0Wɂ}&e8ʹ.h5Sc$N9H\"Қt5ˆMMVRK zx5U55];@D^߬lk`#K-]Dʙq`A}ej'Vx,A"u֤5x%,a!v ,}iM:azpNk//eG|] 7GkiRsD}_z߻ޗ}>/MZ(_vC7nnM%MlZ *_jW G&HIUU_#%#Ic{aݻMi,`FA +*$;p˖8vM3cSyml9+Wnҭ-w;MEm/>s $@%R։OFOvJpIlNJG/l{j[f\?-kOsW }jCm-=5, +b IDATKvQh6-0$Cmra䟮5ŷ0O* NMp'NMS-S,,/a_|s8Yr&[K76Z4#e-O ȳEå/WtJy$!L㬨*~̼]~<_$%Dlǝch>mo͎3J_w]:k/\-UtA \H@>b1r\h0d}|rw;?'[ҶV=T |#< Z/7u<]_uZkqeRW"j|׎NY{R_J:a2M&$A<^$GE]GIh S©~R)tE$z_tYFZ :оL}ڑ>SAH݆%,^jJ_:_iRH(%۶]?J<_r/< qA1«J2A|ǙO.TG N?uEյRA'{3gMK}M#Tr$ 8Z)(eVgwzFI32B3Nt)[f̝N䜧v% ^_oߓG'+$}ͣ _z+Ꜻ%ZͧI}i?Ugwc3-\q2ˤjLnwb|CJы3}\O} mTQS*r|r"cUM'_[r;2fΟ3[_u?p-'M}n\w] cvc gxf_S}>XHPW74x1nɔ?&#.B@o+9JAZWq>c&D4pk6a>O_ȴ.}5umR[4!z=ҹ >G70J2~ +2:q3TM /<-. yHZhI[>Q]sn z6CA+ZIMf|S5T~o!㨛ҽF +Bq%N>,<|`z;\u賗a+^/$Q))m%qq)nA8SHbwyʫ}%x>+-AZ_kc!vo#R>*ī*LD;/}7w%̮= HVr|r"S )N$#E8(-됊-!SmQ}@,":*5{TlҘ{~oߥ>?(쵖 +TDX-Wevl2~J +NV-gplUASř#v +ZV0yKj3snF^PRQ{ѿ"[e鶫tُS4ז"NyK*C߃4T#|NZmǩ4L2ZcЯ4HT(d.͛v*cb< =Zr"jj|;>9>*V5}=h"zH3lʬ}ǎ:[ޥg:mX"pnCܿkT%TUQ|*9u1f;~51/{ zu-MuY(_rOODة qGcfױR T@ nh:qg +;u+K_Nnn ٤A +im/LWT=k:N[ո_6ǜccl:cQKR_`_P)dѥ`kR3I\V_"۹ZͫHG—,A ~G SU9%{{ywt̷\߾74ko|[|^Rj!V$_sLU]$Bo'%;׃uIo/}] P>D$emxP$ !gm5*/,EƵt*+;I>2z׬i24[@٩*3v{y[[}edE HA}i*KGƫ-spP]SJÜiW?5j1dly²r: v9UJׄ$Njaxooʩ5$ڃ@˾1 JV&Vږq J'<;ÿYcE/>?/Rd^sHƈv/^As[h")WUJm|x6#K)+$[T//&"z?-u&'N[yV΁Cx6M:qLٔ6L[]^>-KyJ~wzݥlA>(ȿf*qַ"35ns;]3e2q|Tǽν8ӏ2ۏt@`^xp77読jjw~nDYv)rIs/Y!\<8w% EnxVgy=ZMxtgMdE{L&]f](/ yoh]5tKZ#cߘ9EͲKQwt;uӿ9f/An 6# +B~Hj-A b }@&\~WSh)x&.bp`fͰ*>7A jW9ëX+VŲWS RE^|8$0O6!ƏYF\"o| >*e׆ wpMT5TuLy9 *9{d%ӕ)wzuSՔ^ʑj>E6sU}g}t\dʜ򩚪I6ʳ# in Ձ9گ,Y:'/Q"LYdzA,e}r|r˜~-^gZlGƛoGO(yXKW| v)+|DF +VaBk^?MR>l RLW=$e/\UkN*,gq0لT$ծngzu>u_R˧TS6\}W0WMJ7a8p(_*&g jQ^#eIYlʧlW0 +%ߢ :?NTz2^yFs֮\__̙guOgelY!cb=th%vuc\ihOZ*ZgE?xzf^_kV (޷Y +}B gƉ%u4Ыy?Ycak3yU}lUߥC ++owQv\||hb7֛>+KDoҎ37(/oOɏ‘$p33@HM Uu&Y^Wa = ݿ_>'5|Ɩd{fDZt:X,ooޛ3BKU9~S7\mf鬸wH|Pp\R,54(UV怜B=TWkNjjZ@Ĝs=m׹x-$FRk)fx03N!_ϑLvo;h0Y\m®JU-#gIDI2;mQ:[zh n(Y2LXČӾIi >\[Oμzi=KKY q7Ͽd'!SF+'a|ddC*etJm֐sᙒ*K'VDyAQ/\"SQ/c]wRZ} m3H+d0_^څtb1HH65 ew t~"kfgj3U]~kvfP&}mȃOҥ$A-{S~W_o\;m];{ =~>K551ų kaE*I"]\}ٿ\}t}k璍m)w?Eڮ&ٔJ__k±ѸBEg'k2UPuest|5 +ق_^oCn fu>7!;M7 g~},شb}>GuU\^t|>~H}KNmXAQ{_|"uZ76SIU]8[Р O9w]#(z-Ah?T`pS@Y?27N:ygrqmtteXΥE:/5NⲞoe^[ 5l%u*h5W.wD<c\ I56Wc۠ Tr$ FT3butRiD1$̷ڮ# +.UYCcl[7ӗ"-YzY;K N$E臬6z;w؃i.ٸFS:ϲLHQ57Nmv~C|W_x֒|B3 sA w^ӡ/|z.QҘL%"zndz@͸?>W2mLw D|q +*˅EȨ+î9&~ʻU׵i~5N\?WS?aPU_xU397wn*R1("AUaP5`x W.k(,6,,#bl 7vk.P* ytW~.Ngܷwr h7(ϒ>nxP:]0E +R Sd Vt9ր Y:J\c_xRU!Q7GHi96Џ/|m8u^xMshT}m90p_HG{x8t_@Vp"Կu0[ӹDmhmm;#}ɀsI|9>9rkwDbhѬ f,ʐ> |on!|νUhm"Z*g$~pj'cY +^܉3U:z+>tcP 7u<)#[>:TYX9̶+oc,ھ1&K?aZI.$rz|Bk?yt7߽Veqfv]g۱IOЅye/bDlɿ*O;ilYm^l}IخlDuj*#2Ek0^He""di4ntd(g|X_|M[1K))v\0_{'4ݍ)K4k[wqٕ+3QT ֆ2M<ئK1oǥ I >~މofMkiqNMQQՍD15T0,8uO7O} nʃzV* +kjZN7Ām'*Q[կGT0,84ڡAk*U@/i͍d Z(6ۿ:Z_1݇I!'I%[ٝjeWQc­HA gKgRPSW%g>ZN:?5ϫRM2ۢp3lgl5)SEgC6 +\ڝS5@'>!__k$;){mhWKmB _**[IJV\'Sdflg^D%9 G)۲숈3o̧Bu[v*@,Kd$*9|`\iR^nJCde>͟p jjQYHϘ%Wn|n-, q9j_*#~n&-?>>w;]qk3\ +lgÙ[~2%B.`1v\2,S_9Z_f`;>9AJoMDNMVu/Qj{ 'a /ehh^Bҿ5ݸMq-7}B]n['%9^U^A+,96ӘǻIʷq.Wyd76pV#wNzr|IKb(G215Y>tt%FZ^kƩeξA7zBPiXVi_pI/ҵpVJ675 ]1V>ϛRsi,j-O*p~]To}޼rwifn*sQ:u q-KT- ^ϡ_ld'տ]>lm_ֆS"mRyڰv5]!vD3=p/oU #gNS:+OMQ5e)LUZ)ς&gfyj>uEdfQçF}i?Ugw*N_}i*KN٭Ͷ9TAR=u.҂RR]^ꪞmيKcJU 2W~ӑ:APd"/-toHJghԙᒵ:/ʲUAO|2ԺU/x_hkgIv Շ 9sէ( +'DJ~h0a7ސCgI\Y~{Ftܱ]z[}~\Wc?}nyC[L9*1^GvRR]̿MΛ#}"{|jh'΃2K IDATnm_¯#s)yArƓ26HRR1JˁlT5(_XcsqaJR%5tVMw{$˲Ⱥ )i׃RY:K,d_I~ʁ?եKJ%{TNH^/| kw8}yr> QtEd=}-<.Y58[&%oz?c(\A +@w}EV/8#7֛b* j{zq>35YI=I@QeEwʫ$CbiVAD7QUpùodGOL״T2q'0I>+˦ի ,uE_ +jqTD2k\L.E΂2|WlCه66n]Ȕ_V6xeUUXWW,~#~m]kʲ1W ]:3CQ~V2O~\7L>?b'* ǫ[7S@ 6h55UPHzc \}Oc35K~7f*~>V5|sz'YA=`m8)pu 5ڄ g|7ǜ׮#lA׽4j3Zܕ@ Hg7kS:rx,A% HPMUpkmd{ٿCx,ח_7=T$YJs-(䨉,Uw0eNCֿ'#g>ȵϢ}[cZT[z$rg9m\Kĺ+ZGn?ExIڸ5+șeO곺=P˅_eDV첁Mr[6PWdeE%ۥ,dz戱XdEÿ䏏d)gAQ(/Ѳ:m;uDln\yqe<=gHPYVj_v +Hfj)K9R_pT3YEU 65uvB׭FGGp: cyo0? '<o]%8^} .i4l  @p7U~,L8r+/pK}#)%bʆ5F檩YYudUlE }~IvS%?$ɤmnQY}HЕ>w@p.:6U;z)eA( o>.U_h ԙ>U>^|G $%bQ=@|$6f>[x \4:VJv| DI`63BόwtkqxT:4 +6Iiu=*x©+Ц_\Rq}<@ +@<2/"'NЉIz7g˶4[?ytADi +I#h/ΛW/ OUTGdz$L-Iv "ښnI,gvT6YY27|禓Kt/ۿpr}\[eK]L]SעN%x[:u +[ޥ5oz)e mo^r۔ +w74lݴoӧJ5 +==,z. Y~ʏ6A2['Wiu0΃_>b#r9Ee׿7|f=л2zپڋUד|dsE|%>ET +2Ko?4)ɆB9.':V;J*Zz*կEccOO>, ΄TL@O_tIOVȥO>//Ҙ7/߉3W\AeuM:5xV:_'n˿/85utׯߺ3y#?F*a_δyBÆqR[_,?4nE)H^MDK/{Pikm<__K _N͕xP -jjكt>kq Oݾ#dW/HPȑܟ\lYq=nX}#}_;\VY_&GU+g{9vn7E?ak08˾$/glrT_Y*9u.oP /8~p4}ûtPԍӧ8gկK=?\/ۏO6敛֟*mq! ()KPmõ @ EN;_ˌxȴ`j:O?ki?~ Ưÿ4CRЈ\렕u>Γ(} _u.h`_WQzɃk>kƕ M~zKHPȑaLxz4"R[U 2Q3jwRYZ5gѤKg9>R\;"S^g&㓰O Ưſ̶ھ11]g~bWm;s%iQ91'/C;~ OֈmxF敛a~s^[b" OI_p]TZ_>6@q}e,, L}.~cR(fL0e45?T7opjy_OrIJd_n/$#O'_|.{Yl_%x R-Tr$ 8" +QSVgqJ W:eÈJv|n >=6'>~̳jJR,63BD*x{Od +nߍiZ~Q,>4g`/E*J:r@RY3P<~ij4?m];C%Ck#7v͆`XK& E}PP:w//`_ݯsCZ869^ՓT@!sP>\sm"[ QNy?r-=}P. A G*|Aף*MՔo̧Wp/Y_Oᑣ򪥮S% 'r g~HW*w;J{;^/hnkxUw/Po}fO/ ///O $HaR}U%2=JAsDy9i^̟O@Gݤ>( b4&+ '0}0~ ^ *.rUcNMWUYivz'^>=|[k|^|Lq-z]_o]q޽r ՖMGC6SAGqws=N}I˛?Bpl4>6گR?E`o7߁#lܡ"6]}?W¿GC[YN75s :q3H?׾Hm\Aɿ4(}c0Q3~8@f*zej_7^vy.KAC=`|xSDK +*92Tp[F*S_O(,ȎK$=ʖƗm=Z=r[&rAJ.o_k" $_ؿp۱ Ք Wtt[ٲ~)N¥DCNS"hL7u Yyz.S|#^M֝$IQ9sA<1OtDJ_jƨ63076S>ך47Xj8/kN$w,0|ekYwe9?d,}r~<簥_TrpB=r8ZܯQm>}I^M*JEn7OEOVnK_xB(eϘCp,湤2eqE/DČgHR5mJr쳘\΁NMF? W~d~Q{8`?k_7d 8[k&g ""yJ_Cw݊uɘm^^cn}~m9/_ muɘ~SmczKP|WBoߴΔ~ُKPs1)y; A GJR&+qVI[(:{|r"4,l"E勦}l6gT:Oe>~`YԿKKPLW=R!"h_zPMߧgH}/;g}I˛|p>Z /_WF6@]}Eg|ϔ%iOy>9la#ئ﷌>N9/{8_PaF7wf7{?#`7/77Ӯw۫?WcU7DD$}F/;'.=.>Gy֏NT$eѢھu\ xn}js^A~cO0?>?~vFM/-Z`u^zs]J27W@DևwSuLҾ0:e\x^7aj[$=Q7=L~@ +@*εXi]~h%͟,,u**6%1|_Lygׯh'>bٍ;iد^7v^N{GZ;ХOj9kwG> {*k܉3Λr}vnNw,ھ1z>Lpl>Bj%}y-?V=+eo]kS5-5oѹ .8DgM1|Lg&Z;tW>1M\f[㟷d*1 .)Z 9e_C*Rl[~>NE$87֛q:%i/ܚL 7ꆜhȉ. kuoWǯ k/_f|/VXǏe_|k-1۟ϴ{_ǯ +9Jr^DDs-er`>km nZN''惎);{~>Ն:s rsp˰?_[|':^ =/J??v|c_Rsv3σfV7`Kى@Do4//_kl}y/TrTHUEH=%"|Ҽ-kWzTP.qdt,~ez"ԓNiQ~?5?nĪ$ꌚoZ 8 o%ɉ靠 8h}֊札F3%W/%~*}!/+[vٿio\Mφ߲"Ngjj3ंzUMݯ)yDL녇t^yq8V Mo_kmBKHPGD^U8rge.~#uSm2ƿt|Rpp.dzp"9y="ѫKs}~Lu)MPKtc_x;&~>?_U`H|M:<׷oL__/7n&__o+/t|ߢ +6-P35:qe@Z߭RO[#ʀP8$}ъ#$z+iN\/O$?:)5ǯЋ0SEPqR߮jD7C?=ӹ oo_=WU1#F6c[\{,oMν~!쳀%}Y9Y_j?[Շ4*( W>_@ˉQ +W['Jd;ј|(^R׆+*Zos'u&c` W)eͭgDO[ڹ4h*M=4$]㏎s(;lgF^KhW7]xj.szhoL_Iazr$i !e']SG:*B`:7Do:~~5/ܚ~#%[ kg"/ }%V'H///"[_%_ɻ|/T˿ܡ//ųO^jW1/rr~f*tP4 3)o4ױ/c/z{Gb?s}{M<޹')T.:4F+Ue'NtT#1M=fW{2PC'V7`҃pHQTm]|ch^}W?_@oJmzcgW+735Y!^  K˾TI\WAuc/=__,a+y'ePO㗇x;v ^TrTp5ʧĭw~WB{OfKSDD4sг__+ K m/rv3P =~3 J /Y jXPe ǭ]ko|!N|<=~M8/"k|oJ_C7 _vUV۴<U~˛-hFA//e(±Q/8p-ٖNPH3*P$=iŷMR%MOBzz򤨾$g/.&Y[zF/v~Ƶl;?Gҫt\۬މ]z k1~]ŪI:&qz ۗ腧T"57sws͍jc<_/߁A.OQ|%{]ɣ %l>7J7;/[s!Pފ^ş?Gy$zSLI{z9?T)M]+kWPS\3L,Yn<۫Թh9\ճ +MHFT[u! MMVay_'izvCXУ5x/_vt(_*PL.|WyI}fUh>a¿ۿ̷L%̪T +&pL[6L]j +?s8rlOLl]}[J<*jY6Tմ.ݴ_|2ۺʥR_5ʉDߚIUTm5/%J,Ӷd-9'G6XJɑ'ڿ$ibȦ(6k36)*g|'H}>7ݦmRUB}-tEüe͍m:|f<~dxmwPm5-oB2戈I<|&y]mfFl7faf* //1~h4LV\ +w7@mMW@ߔbjk&ٚ*HRj(߮\zxtl뚙) %˺iEs7U>cDB C:UHjr/_;6ػNHrHt'_J_)W A[E&9.>K}=ZāO>dŴ]M* .676O >u$˻JihplP|=umNt[scjTTk͔d_@ +@J*Ey>OLQm|OVItS䟦ʞ|{HY]>aE@L-ҦNHP{ӗ>ߏ{tg-ܦ?ySObSR='W ѫL<'#anWeB'////H/ ) ++p 򩩂'0O\㮱=^Q'__B*6WzgHߣNO6Qg5S|}7MnX.[`tlum}4^Bfm %tHk%k>c[ +!D}_^ӫ____)sxІKJyIneR2yd%8ݾEJփHPȑRe}!"zm< f/*nJG'JE6mO|"YSy5_^$!2F>VI&Yb RY7/zџO%W~˿WP}N{*J{5~} +_iHۆ)y2h9"VTN$ ,6^3` #PGS!EmDI +wsNj1+긳MHQ\nPCόS̟JQ__z#{$J̤!w"H_ʹoLYqߏX٪im=[&[+|m;\߯3?kmtԏxRl +˛a#Z +4* yiyoyu% 8R\W6%(_푎 K/ozi_s@nBhgqHʇ__$ A GJAskYsBR鑎}#qsI3דcE{)Ze'e+RYٲ;XB [6;S(/Q}\.@jzʄG//7]e'dHuǝW&\+YڙGeתSD}Q+;EWّR6es#[&ݻ=TW¿df($8F>;B^D n~NPUrLAۺo@9"sىԆ{mރ)eB%|B2l* KYKmr h,hrP;M0oSv}@ +@6.(T2>"U0mVz#RMvz'~m>ҷ' +|qxOϫvɛo$Ue}9<7Ykh=H>S;CFYT4vR6~%lۦxzRHolU;Hn}.dg/U}^3O/Īc=Ϩ}~B-ؾ1 F9(f'Ȓfj~YEi_ds͍m:|&BLDs%CWg=ΝRq<^-f[^@8 +8~\55Y~__֪p^Ѿ#{nq4CW_K±8%*{EK5}kk?|fv} p *9R [#R7GEmm!hߧO>i{vivz'UeR#!f/Z5k"ܷw&Yq3^ON6BJ6|ПXC6Kq˾1Ve2{d/f*ړyLDeo_pl4KQ_K±Q?}˻HB/+t]Ͻ4EDDthLJQ_g$F3tɷס>Pr\^: +`_W?&vm?yz5N9,ҝʍ5" +/ _r/L^^oHպf\оʦ(_K>eX2xv*PT|RʶOa1W¿HPȑȀ3U#*]EIcv[*8_41_O՗7:RS4~~l2q͜eۀg^5Ko?t~hiEJCEVO _|"/o4ffVUݿ,ei_J55J-|~a=1='3nHnPขo<$8zE/+[_mts*.;t8` +rlˣ"j/5X6}7 +n:7/I1  *92tT^QGsM8>i<KJz1,Njw~t\*UM=Q:KxTEUFXI4Q=˿$i\K5E9Y > {~; /|"jtIUT_@{0.촹Mόǯ̸ Y[6\ +-bP ٺΓ^i4;gוx|k3#3m_Юg3i~ß5ey<`X(ʧ}l]HcS/P|m;KWEW,HHUCUgt|5'{ 6SLwF$UPTTFTAItvgӧASGR Վ/!2,_B{/>wjuDq57FMLIV_$#{N{o"*G'4Ӎ\ÏMqOʬwѷgH,L7WUZ"z>mCybX4Vl>eo?u /vf]׿q.,i[^%xRS^<(*eo?O8c.r6,UM5xF\o#{%1oz^4KB&M:k*eo(Cܖ}_i4^l;x=Дmgҕ+-;n\HkZbPAɃux۾ai(p:ڌ}P+Cʪ/WOU%a6σ\RY$<+Ա+{kh!AoY[dU{"%HPoc?hi(plzX` ̫fd-?"RȏwFʫceī#g@de0#VM#P5Es빧ι?V[HruUާ9}ŕ:Y㪱ْIvTeXϴw:o/R,{;~>vFMs_v4]AJ/*-BX󖥅6}kI.qxWg#k^Ɨm}7TЭnTGSi*ZtE^+R_XWlYâǎ63*v wGJ|)p)^͵[ieivԲĖeh29Kт + +7mSIZޛt:V yKj9Sxo~u~u]Fb%ܟuN92~6)yW?qy.|x +It}]Mf*v=SM-8N߽l-qznn~P }tդUWUݸ6~K?K~k4pꖽLFR{Eߵ߫wM;iwEia˚R׍dIg} z9q_mvu4Ht6Q6"w-͚h?("箣e?"ye3> Ԥ"?ZPQQ7ifY]^iN+EW-4ղ,iC/[%4Ev6]qbӖU]uvc/ySQ㧟Ye?&{~@WP62Mh]IE[@i7%4~VAʲh硓}wlswxkė>!ץDJ@2~_lgbdaoY,ic7#_W+MB*3~7 qHC~?>f>Krdwo"BuWoOFLD\т + +8wߘh;"&kL9o.}cy>9BOYM $wC t^-_˪~6O id7y& +;^⚁rM{M'f;n,f3~Q4˩™wek#zH 8 G*ha3Tk\*8XZV?oiMjMT"c2~Qc*t%vɧe;~tZMz?.'gg_Yפ˺K,3:B"ݢߐ7o$wc~$%w&8iZkEe}h&?uT GT)jW MY+\< lv6[Xz0+v%i7ѕ3YwHdo64M2~o1P $ԛg\G@bw"rܣݛy2|ZP{T GT`hOE-q9.14nI"7dv!`rzXڥ3~|BcfN,Hulq-i*>eNyһjq̌ߛiA=pkudQ]8Eք3g11ѤIxI.ԖK& ^EJꌄOm"wNzn?k$ސͳtZf oYwdߩ>ϼX$w|׵iЂ + +8ni[ϒ*h|0~ `ݓQ~v jz6Z-K m4cS??^P 4t[:VK*ctngK;~]8G79dƧHex#ג߬i4-l_󐦅^.cDufI-ZS_40xJYemAo7?o:ie3> 8呩c1~ϛOvaތߐ-Ms󍮴<2~614=>-jf{Sm`v̲aohԗe7}0cnE ݂Ԟf;~];?iAEzTf=I #?oHF V@IZOJ@[RuNeisTT9AWhUZ{}}x{ bo/xw.ubȓ/-:כT0.TΞ4]=7Wdbqt?pҧrRpI-&*RX/Gq3Wi+~nUD.^o{V2~ԟvAln|ظB%R1 kVEW}3_=޴@n;_+Ƶ|UR֟W?RZˉ^9 ߮_ӭ/ιM|&z7iot!|r~#ߴa|:=Mor*kȻmзnұ=cGSyeACpS[7zMꜛMz[o/ЖSY1yVf;:NcfI|A]ab_Mz~0|wa$F}9LjDk^vligq'ė򞿇d[x_:V"i݉dm +8߆b_HAln@MV~iQru%kdk~~~s%/zN%J /Ş[[6L̥I3KD𻟸0?9?˳ KP9I]Ox0?j$craqIjoܩaK`{mȅSV$>>~{칛Nκw|{?OnR7Io.q;rܭǏy`w棺ڕo,ca>w";SDT)_:ފ^.ӜGީUpInqm$(@o_w%0?;?/5O \."&M2wj}7i~̝Z//E=ǎJ8fmMƏ+ )3NE\N{y`~{~^;q_Ҵ֭[Gڡr$g3Mo[xu ^{'ڞO(_|uwwƞf[Kk]]17%ėգP>Zܴ+D 6IUܮN+ej m=FWe63~j#dӴ~N7ߑƙ0?QdC])c*_|3&V;|" ownXDsOGߗ]kml6;qݓdnaN Eӂj*|,Zg_ᯄ9$bm[K˼Q`r&/ߴ?u07 ͐7uJzy_ggڒ(w|1bC]v0``O&GVMNLmi3~:Q" kS6n.?o O m|1o۹wLIo=R &TTdӞäJ{ƏZ2s1[N7h?1ɑw~90?3~+i~bhAr4po7E\ :3f׋JMM5n|v?]RSé]xsL,~BmEʙ랊uSq 8ԖfXwEpny]0׾~?s'+趲}n`|ݪZ9X^Ů1c޸&3n IET%'ͳh6?޾_秾1;?Me\Paz~\l(.7۾>O7N|F[/[ t[5 `c8/WIhJR#h%kmn'y|ihyz<^)~h>s7&" ʷcO9?NM_,kg$iPK(^IΡz#>Oz<D&[vU'0?~_;?sH囱evԋ7c?_ +%62UJIp[y-қG닉5?tL2;fOs_ʑw_raE7#|&$5żFuɍ+˱Y9:)c2>Cil [&6| R^4Dqgkm;ė/8ڷgs]9[kL7-kq =?M"R[~eg|M{F奕sE9 +l]^J\̞JrѯW_GpϺ)U>>&OK~'Ihe?=oV0s׬$sn_,6[0;SMn㷏z-?ܹx~Ѫc?sϝ{"̟SuTė'ʬwp%7 NãkyW?`セ޹{ӟ 덑Hjpp9k>sen;o7{&(hgՉ^^N$ns^3μg>X7J|YZPUm>9Uo~]#ST \8v}bė7$ME +G5ܐֆ+K⋯T/foNQLe~F7qQay礯u^j^_:3Pk5wj}m%t2N$Kcvmȣ"Mn#  o3 [PgZP\/т + M>>&""?8y̹K""raqIjoW'?2vx&p;9+R?ܞ;>\?|ظ2³XnmxԖMTx"}ė!77ߐم`ݺM|2mMxν*>oc8l}\Ko>O|˟}^;̵DDQ_3עw/]ղont@p*mͰF2@7 _?N=x:b@T)"ėںaFuqP#\ 5}ώJ>Fy.KICm~NA)S +8]rRS#S­͝Z//ET +@̵D$D'7돩zxǺ+yOn/nGڅTX5Ĵݺ)OxbK_F}9lCuUV*?S}Mѭ"B|Rn 'MD/7ǻo 3tꑩ5ֺ"7#?ϻ;vJGXr8s! i. mu03[z6^7oo}5.O=MwcYOJ t2~?=~%`4>Fy&sA_.,.Imsm"]F%%D|~egmߗpQߥǿQgJR)s%񛤽Hw} hAr4PpA)wV" 9N_:Y?>2.TYD횵x="?k]ڜݖvGű+wqr3Hm!ީ-r񺈈 +ny'1tzf5:$s2?{sV]i|Aŕ2m=9|ڈ{vsW?R(*b3Z ڡ}AwUѩlx;c6dZ*,;tn~׏ _zT;R|RjC=m*hN3z?ߗ|*4u/}/_gxq"tg"W68v4o ]}3SbٮrXUΝ?#""6IRNT!W(t;\3Y߲8Z֍]S\pUٿŎ+݊/3ĕ/F_D4qxsFqokm"[D?K j*D$. d?~K~ Hܞ(Giʹ&]az'xS;9Սd\)Aç?E9MeNuLಯ]Ǫ`oc(;7J>kK{|Yُ_Vb|^E}jKS.[o\;Э&W/O$\iK]=ҜE?~lFzwW*H~>-_T G3勏4umdfv}-i./EhOt_@;5/-1,ۛ0׎"WfWM@O\7m?/ro>7bF6?_س60>w%4ŷ;iWt:}qu;ak6J8h5\wDՕoM|ӛ1?{p0-{e>y\'l\?o|1ɱ+kf>v4(NQvwͱGǟ?]+m6k( v|kM_n̉`}-Mo gvI3]Y9x;xm+[i#K"pwmv &z IDATL 1?/ÊT GqeQQq\f9rS;m"0N`ErP6z][T'EߐAКZ׫my0wOǛoFp}r仦Q6{|TS}pE7[] [L}E?/ /ݏ/+Sνca5 6d %v#zZN_/ėK|%z"vaqɹSanD[M0?Ӝ./yPw!,ewJ?8m=~)ܖ;55ǟe_dampEdzuB|!_8 _3,ɾgGĖ/$Nu }K)-@J|9,ve_J)=M#)۝2iv>I|σk\s|s cvx7כE${s=}cqfY\Oz/m?/セW?.u:5qfd_Yl R[VD$܄ 14n؂īs=w~@[PRY2w6 %s726U|yxV&* m3z^zyg|ѕp"rny]׻6v[sB|JlA} +Pv=8/,.ENܾ?Xۮ6$%?7ixsl׿3k_/ÂT Geۆ΀-Jhc2bg]w`}̉LgnH%1"y/c/dzg,kc3Tr%v]|ITuivr޴p=66۲Vsg?O{+QٹWD^STxB|9*MoR+s+3-}خ[ĥO//wLNJ55>ӺsXؚ:mM؞_B|!'=)m}[& zB>|TwܩΎ}j~׫xfmi.Z3 #_I'|meo/fB.`kph5V,$4iI/k|>śKu2E't" [Rh6R[7?x~fFdh՟#/ر'P׶Z&%H}EO%|hbKٴ޸6y=NݶqKQт +4piʷ,6"%׷7h>-u;٭^~_WePIϯ4ԏN7߉"Ը݅J"y4eۋJX|RǧGėa/"7u[& zn pvaٲZЭ;[R//LEYe⋩|MTnW?R~K0KjI|i+zޗF5I6q_/$ mMxԜ z1cf=iQXq;# o!MRƕ3t[cZn(F$Fgݯ}߉&W?.{1<(m{n~c^d%5w.E|n9 m񭐫o?H9{ͻ4q-:Ig^>ƑD|i|e^MNR=weI4 j 4ϩNՏ odX"_9 +8=>>ܩGguط੽0j=NEO\lIӔT' ۛ-$]h 5_wP|eٕF+Z.cZ若*#pR*X20]?z Z[jkG^_sԖLmEbW1i#ŵ]Ŭ7F}Y6 oQ{sn7 oWksoCuq7_/P~hi/}ߣw">I|;Nt1[Hi˷}$t+[C1,sruKz9)k:@ Bk|#R.H ]WzBėլ4|k?#>HM^ Nn\Kv5-ϼyz 55IZ?Nw8׉8 %o9*U EKS#LltӉNwIgˡ7Wt0vJ͍Ҿkj/89ѵMz? ?AERH7 .k{'."ҪJgJ!:kQtS7ҍvbm᫆55D/ė^]PӔvLj_yg|?>9\޷N=uunOd浵熙7&'15n;<4X7Rfli G<ؿ 5zn[|ѱ8C|)k|1J3e ɵeu߲>ՆJ|!T GqeDDQ+yҕG{T};%I 4mtnM6U}=|-f^8汫9\+r]VS-K% {n-؏ۃyTSvF!Tbc1/e//۠v2VEzNTɆUwmlvF%_K ov ֓_{ǃp{,'f / bnΖvMoC5}y8w*7yR=s@"__Dt{Dm-MmXi̵ {N"ْs_\I"__MMDsVL;NUsopqڈwT S9*e܇+#՜hD>=g;;j|r=.!.܍"Ѷdr{)H3*\0.υEu#yuRקL|zD|)Z|tȃOs knmva$sn_/ėƗmv5m6zGˀnH\|ՑzsF}9Qqm$lSxB|@ݍ:ޝĜ zPaR{)MyTv</ߤw}E|)j|-vou"B|)k|MTG:i4;Z%Y,Coa^Ě׉/ėт +G+]>ѭ]d83~/ks7E*$x&ϲY^_܉;ﲞ>q?~,__j֊1&I'^=/1fN,yP/K1K 6^U&Iϼ{/1S]sB|킚&8rPfډ8 /ŋ/Ȧ=w3Px-+k_T GqeWƭm\ultOd}?Wv^}3m6[nJls[S/,.%i4eZ8Bɮk؟\8?O6p%3ֆ..0/P>BpY_@|}|޶Fv ~(}ne9ApNvG%@TWyF}e~};kg02I7pe7&WN 3ɸq:Ok+X~.|ҭANEY e0LfN,)igr"AbΜYw|#_;]; Nk涊)se B9 +8SK̯)׌"2ǮJY92ֿCuQ?uPpW~~\;OeBMZ4# ėsn{+tBKI0ٞ˦2ajK3[sĥO/ ¾ 홋w"oT]f*2UHcak5a{>G~ubveάA&Mڮ;MJrN%r{dʟD6rzi{ƪ"" ZY/YN(DK7wҭ%@k] l2K4ϭ&Z[Mu$h?EıiMqm$r>玺m'/T G__k#BYn5=rPcW%RA4u~lurqN.t;e3""},\J|;*mV mBf.,9[Vkz1- c|1oܵ18w*ջï_KuU=]ũ[[~Yn\ ڴuܵ[R/gpzKodMoIaxh{-w[N0`YewlkNdiPZėnv[ͱfn;oţkI:s^iFsqڪzqm$lS'ė~"BR{):ݧ[ND7`pwi'n7ޕhmmˮ(&/KM۲hArD\pM@7&{'^=BқۀgWąߵr[y'T#$d^p@Z T@ϼ6rI {#ZP=}c0jTLp7< ^/f~Yz5?H9"P`5$aWCY\3$͏N< HŽ\/f i%cM'iiC=p@U jT*~Њ +SF% ޣNyY7$tzY-p@H)l`5+ftl@%\op%}3{T9"@ΞxZP-G VsiHb T $yHz*s@ E, H7Y\3T덴3 p_hAzT9"@% , 8$hAz5i!,  p@؄Al9c=⪏);L0df*Zn]ooD77Xy|LLO磕MWC*fa41wW_[ {?dn~_'>&?8s1^5忸7ﵻzݚ !;߬96sn^X\j{#Tb|BbI[$pI|AvNY2?"W]O彃ewew~_zT Gd;=LYMWh +?>6Huf|z KgW7upv $SDODrn_|vpJ.՟ݪ+kC|6<ɞu`a7Y]_EǍi.NIĕ1kdk~~~s%/zN%J /ŞuM2& ,/_/ėY+c.x0?j$craqIjMN3ǏH]kD. +oR&a|p߯QC:_xrG8?+OӨ?{췛T w|}K߿n܎?wvGc=N+;c͑wG~wO9秈4R t:?❮a?GyWv,?ϻ_ė'.{E;̛w:ٺ]?sNCǎJ8fmMƏߖTj;Q=S-&_;q_Ҵ֭{jK22>mnݎ|O{ƿ;QOD\[PM9x7J;-lKm*IDAT>'9ƞM+z I1?o~_VT GC݂hesӮ, 2&3_$V5s:鮔yd*ODl1*+iU yiZdQ~O?4/zؕ2W1SHmbk'<~eud~bp5auMT䮍uƵ1{t|#R}d~bpz}{wZZS3ǞyǎF̛7cc͸""セ>:%m<5?֖D㋎1Wr]y=,,]Iϝ `jKƞc׉YXm Qn@Ab`yszzl:*rxr&r{ƏZ2sq_[,D@"@WcfrMF^$̼^]/n*eNF_7U66fW0~ckw} +kJ5Ov&s1 g`RzV+g¯{*b\3*gjK3`;_-O'/趲}niUTGWn-eu]YcƼqM?f|XL3)*TvK3?I9xZ]I {Dߛm~_'>gV׋t1χw n懍+$4e%x6M~ܛ~o_%V{wGϷ~q[9?/_t+'UmӞ#i T1y-L61^3ee{ |:?n?̟O`FkǾgG✟ėe/͂Wf>G\/z3α"6x.mzDd]SwJgT,$ J|Tv% :غ_Z@Wz^$3mO`gn|3z@?\DDF7m3VM׭zx凿 +oSD* +ϼy}#A´kc2=?ȉ=__>X}3g:ARXk_7ܨNr뾵x2?h~V'[;}|L<-MėukĆ/y[P׫6Q&(l-u2ezYl޲끶7>uq?n!f>^Kir//8n3*/ė.@U=d,xRbT~:2?s~N1yZ>I*G+E%և|y/ļf%u2`ŵقfjUu{} ^ZIM3_ ӹFxl2 "{Nz 8}:v"u똇坓q>RdQЂ +-l[ɑzEjmX77©$#U&i*RvIyםم d//&?݂<<ՂE|IT`Dma eXIfMM*SIENDB` + + + +PNG + IHDRC:7zTXtRaw profile type exifxڭi&9\)8Ex!"CݹD| `j ?wG+巖V;t~?? ߿F|F|ߛ?s? 忿?>~/_ s{DJ?^m;/տ7\›=}K5e=N>y<)<w`#]|ϯ}}|%Fs6კ?|/,U7lVJySņz~r9[)z^)ooy߷^o{{}jZ[- ?m;7\ӝ>xFy:5|fy:+g૬wVacJ;~wmS/}+ Zuصk|5.잱c16e1 =kH)sHCvsVp _k~wbֳou.sg؏}!x]s>\Z++k=#Dۛ>.4=_yWϛ Z Glh>a*lic{ڱk@>oTbԾ˒uonSX3=ӞFvKޖF5o6wt7e` ػr~}j/{/G/9rYϕa¶>o~ݸgNhX 6n WAj/c3l}m?MyA`i6 ┮K2Kچ<^bŕ#%g`u{[{\CR? S%0| %>=Ƙ| te:<:@:U|) m~յU꫍+%J%ƛ֨WKx2FX89"|e=:N/4zJ8ة'!>/ݶѯaz#.OB=ӨXʻ |{{.{Oߕzr 7# J؏ܒb[g"C~5ٝt2i_~jfs޳mby->Pf{Y#,NNm>m4}ODD6"7 (_\ 0\^=ԅa|zxb|Źrг|j8OZf ȃ?\_P+jghw/b[y,.ihK0yeg|KR0b-_ DFBog?vz8s]cZ˓^Xf'*ADžמ!v0bVqJF|Yy<833 Wݴۈ>A0j?)>YZ.,dTW\dyEIZ&q4tJw(;fy'm=q1(p*z|ň> ظ.(V~<.uL0g;lLɢ*iUy,o D5BF}rSeĈÉD2Ĭ~&}Hd*0]lPra+RTל@Ml!h\{rˑ.Tm(v5ǚ,s#`λ @@ -13771,6 +16370,281 @@ B & ' '(**+ y<A PNG  + IHDR`#3iCCPICC profile(}=H@_SK8ACdATQX Ъɥ_Đ8 +?.κ: +"ƃ~{:S;q@,#J|ECBb-9]gysDHoOқ]-~ l]M.w']2$Ge no}>yj88F+PoorY bKGDC pHYs  tIME iwtEXtCommentCreated with GIMPWIDATx흿NK?o(#GA8"Kn:!JGHgdTҥ<Ba#522g]=c{'Y$x朳3 @!B!B!BH1^623iߥ_Gk?޽ aO.$⿿UHw޶~$)`K7+kJ5|5|U4yz~?-_TJ)UnwMUn+ԏ/UtR_~TJJY֊u뮎=/G7uſM}:pvnYz}=B/4Kk/YE<`ػ]Y2+ +mC[pLYᣚ ufw"b#_ dj΁>Kk(V`^WLI6&9'W^O`fQ:%E] \myn YmܬUKz +DgID|k&Y#5ZS;%óM'[>1:pO>>=a+ͧ~9@GN.6M<)t9Wy7렶x{% "uǦ#Jl>(#(puqnv[Y(!&S)v(M ϤDzf>7\h ` vSx \0N#l5%5uc8u0% '\J$W3KhJ|=q+U6PL+ٌdh^FdhNZZ T'q4xTOP)3RÒ~0F1Jnޖov55/}] ܬ߇Dq4f ma]%/64fo@,IE+ycL7[ov.oC\ފm:fIk}'=&󁍳urK.RI/4|r翠ٗB!B!B!B!B!dQY4,ůJkNJ4+T\-]e+x 嶒.!}$~`#TTU"}E5E 5|Un+;Mˉ3czKtbI?W2&JkY'd9$g+;~TE_ + qsOVV_TJS+M5iygA i}OMzo+0wݓt=N 6CWd6c;}s$(VsNhy뀉}"ᲩOǧ>$Qŝ[q}S.6>՜_w }I}TuP -pHP'6z'Ts=3s _BIN˖ؖy_uLCœi먞~\XNΛL}wԷ4g M}S>oWB!B!B!B!B!B!B0WT/~\;*8A[+iטNę$tUK\i i@-cE׺6M=m.XX{~}S)*DuPJ7?D_CR q 2Kh75. - g-M=m$N{0'd~Jje+y(K fzdaTݟ%9| 5VԐq ?rApN (׀m js2$,L =+iۘN(S$f_\P8a}\{ku-KD=sB-L2l6oU_D/m'$uع 1-p/A_hY=hƢ4%B!B!B!,+ԘBVIENDB`PNG + + IHDR`K}zTXtRaw profile type exifx՚Y)Y]`aN|43|$IH~RD,ޔa@|$Lk;`~1Mڗuu~(/Yk}|X?=cww^Wg}GIgѬbJ,{QK|^q(>ߪXmO#.J`TzvWZL䓍c+dyN6zJO٤˦N/sImsZ!ĥ91X+'z/lX1g1~?pIT}?ϫA}X3<.TK"nL& 5ʌ,gK@64z'Hy3LVCwpoc4k~UQb Y(cQCCEV5muTyZux&VLY m4iiZkzcpȃo.c)Lul9U;o4v}tSvRr[nKiZzg-? K8k1Dr8Q%p#kdŖJɞ9|DWhf3FIYowQ#y ֞g>˓!oCjd ~%8 +Iָ!KZVƾ|4 ZTR1TGl<){msuI}cU5q\j2:IYzBќKk(jdd&6cӕȘc3QK;GHhJ>.̛F9[VE!eئ8k#m-oiPd%UX];,\nVKgqy#>zK,JR e8.s<Ĩ +[;.g)Oɋx!:ӭ6C/ZGgYՀ7&4h-sU7o;Y3r(J jc͞U=Z*5,+ ; 9L:؂Rgh{FڐXԩ4;Ofʙe#3_O^.v=M1#Cy TO(s ۘ ;UKL4=,9eЯ +μgSԞ@S9å庢2+yN"[7M-wꞧv'\uNeՓ7o32&Lϕɋ6x:#P=WGU-AQdЎRB7{X@LSlR44\)#޲7s <|T>5(ȕwn̩Mb[ @ R7w:_vt +ܢ@'@lgAF"jN@S4Kac6u3‘R&t!W +%F +"Š #QiwxH+].wΔB/ +\sߊw ě꩔Y`L@}A4Xjg#ր# Ě$zq sUdmjݒG $ю@jڌ +48j#~?p*42/C‘ʷ~| +|gEW #s?2b1z}hytm+5kڽVOC8D|(H) +C-5`^93m[`TJ +!R'r*wѮ1=E!Q63eh؜DZ2%;)Gz*/%S${Gى"mJI_rPrkMLȠ bX:M9D501a6přEe虾A!ġu{L`-3|ak\6i|11TJEnh]s\ɡiylH\w"إ$lxGZϋ1{y$8.E E#J{ba)@kZl:/#G[Ӎ9x*W+eahCϺ仠2*d'_9'QS!z=ш:9EdLIn +Rϵ*s̐6ϠoPtw+~i"[Q +p7Hڕ{.0ڡ"D7o+Wy>stnbe"1WM/&wbb9_Uq7NƐjC|}' p6Z. +ڥEN#p"e>T~3p鹃.a>o9CG^xw~jc.w+eȳ_:W3J{W+51 x+@"{E;Jr[ʛ>/A]hxv.ߪ-ꆀ3zC+喇 d*ʟN &oR}7Igd/0eWO4 _ +ICh]/9f]&Lh[ I㵉>#=$hsJ0FȖBp?HCF)kSgŽPo.Og-| Zt@47OhcDh.&)PुնrsX/wm\>{i>`@(pue=gа(ɾڽrᇝ1tťLKpܼnCeFBGPaYm}3ÈMG  HK¾ER0Rv\uS|b!iPri.s!P `N(-x7ZK!Vn.5W(У`4 we0;t\ۀNxĂ&́O&K%N"\4j sC_ е +Pڀ>sɜSgDTsE" 0Žp!jO = K5 JX\07.G(o~ai[sL9_뒛T*@[=z%S#uj~.׷ćojg5,RjȮ#R|kO%MK-Pn:-s9=T>Ae><;0"a H-Pz <; +1CcD\9bZu\W8U+&^p΍Q|@4MT$ma鍆H׍08a`qY0re + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +͹VbKGDC pHYs  tIME +&tEXtCommentCreated with GIMPWIDATx흿kJǁ! $i\_w]wɟpyMtyݵR"M y]JspW2j"~@8vfm5m ?9F)L)J7vj7:㔢(J7-FMv;, vx^=t?+ŸVHVJTԿvLԫ{kQ,_D]>{ lx:M<teepM(tM-ڱdYh$MiފN/3pyij;qfDDge˘_N:UiU;&;/|lh@unRK{JeŲe+FMv;6e$ ~l/ + +] ԇʡt::R[J*RxҌPֿvlh'1P<߬s'2WE~iIp\qƜ !W^|ȯ|k1C~*B?zpMncYw~ށma@u{C{'x^| +*s3ɫsVm=(:q˫iλx]鼻_S 1i@N#iJO[DDVtTxyODvH/2;Ec~~Qvg&Ǥr#ƳgxqOOY1 ~@$yi tƏ}o)y*U—rqOPҌsQ?@ǻ2k,b?7 /!" q] +&|]f,svuY~Z*C~]B:JDDQjɁzf)_>U/3pqt}e_g$8pԤ?Cm qϽ]oM.Y~gR]>ݮ ɏ3 f!!kQfޣcB˖_Gˠqo{X,I+eȺ߄|PpvW!H(ham̹ 4+/{{A wS>uh Gה 8 Vnc[9y +jeZx9+DYJC-|`;wRi90yJpl3R 0v:T:A{CƶCEl!ucBPDnH[&XU {9r&YdD8' f8j횆2d xav{"Vfq9Àw,$m3pCe9g9j|}gi3΃fN;~g ~|ڢn.g/!rن߀ߴλSҔUKֿԍ ?g>Aw"g( MQ\\2Ⰺu&==l׍BwY ( kr^B]8ŀƱvn\NgDD'tYun#jU+~YM-}J~_kT:IENDB`gimp xcf v011`BBJ! gimp-commentCreated with GIMPicc-profile-name ICC profilegimp-image-grid(style solid) +(fgcolor (color-rgba 0 0 0 1)) +(bgcolor (color-rgba 1 1 1 1)) +(xspacing 24) +(yspacing 24) +(spacing-unit inches) +(xoffset 0) +(yoffset 0) +(offset-unit inches) +gimp-image-metadata + + 8 8 8 + 96 + 192 + 1 + 3 + 567/20 + 567/20 + 1 + 1 + +AFbPasted Layer #1!? " +    %$# b  b$4DT +P  * ) * C .       $2=? * )﨨 * C w 﨨      﨨$2=? * ) * C        $2=?+ ) +* +F<& + +    +'' # "<@?<4 # +# # +  +;M<4 # +# 﨨# +﨨  +;M<4 # +# # +  +;M<;<;# !  + ;M`10aFlower Turret.png!? " +    %$#!aMA.A:a6(//:AAO<  +  +  .  . . + . .. +. .. . .VGVVVVV.GVVVG.VGGVVGVGGVVGGG...VVGGGG...VVGGG.. GG ..... G.GG.GG GGO<  +  +  .  . . + . .. +. .. . .VGVVVVV.O<  +  +  w  﨨w w + w 﨨w﨨w +w w﨨w w wGwGGwGGGGGGGGwwwGGGGwwwGGGww GG wwwww GwGGwGG GGO<  +  +  w  﨨w w + w 﨨w﨨w +w w﨨w w wGwO<  +  +      +   +   $$$$$$$$$$$$$$$$$$$    O<  +  +      +   +   $$$$$$O=&  +   +  + + +   +  +   +     #O=&  +   +  + + +   +  +   +  o$ +    +  .  +. .. . . . + . VVVVVVGVVGGVVGVGGVVVG.VGG..VGGGG...VVGGGGG...VVGG...GGG ..... .GG.GG.G GGG f<     + .   +. . +. . +. .  .VVVGVVVVo$ +    +  w  +w 﨨w﨨w﨨 w 﨨w w + w GGGGGGGwGGwwGGGGwwwGGGGGwwwGGwwwGGG wwwww wGGwGGwG GGG f<     + w   +﨨w w +w 﨨w﨨﨨 +w w  wGo$ +    +    +     +  $$$$$$$$$$$$$$$$$$$$    f<     +    +  +  +   $$$$$$$o%#  +  +  + + + + +          f=&$   +  +  + + +  +   F: . . +.. ......VGVVVVGG.VGGVVVGVGGGG.VGGGGVG.GG"....!G.GG.G"GG$ +F: w 﨨w +ww 﨨wwwwwwGGGwGGGGGGGwGGGGGwGG"wwww!GwGGwG"GG$ +F:   + $$$$$$$$$$$$"!"$ +I=$"    +  + + + %##$ +GVVVG.VGGVVGVGGVVGGG...VVGGGG...VVGGG.. GG ..... G.GG.GG GGP=83 + . .. . .....GG ..VVGGGVV.V.GVVVVGG.VGGVGV .GGG...VVGGVVGGGVV..GVVVVGG.VG  G G.VGGVVVVG .. GG G.G..  GG.G G?GGwGGGGGGGGwwwGGGGwwwGGGww GG wwwww GwGGwGG GGP=83 + w﨨 ww w wwwwwGG wwGGGwwGGGwGGG wGGGwwwGGGGGwwGGGwG  G GwGGG ww GG GwGww  GGwG G?$$$$$$$$$$$$$    P=83 +     $$$$$$$$$$$$ $$$$$$$$$$$   $$$$$      ?   # :=;!%"          ?VGGVVVG.VGGVVGVG.VGGGGG...VVGGGG...VVGG...GGG ..... .GG.GG.G GGG ;>.=.;.< .V.. G .. G.VG GG +.VGGVVVVGG.VGGGGGV.VG...G ..VVGG.VG . .GGGwGGGGwGGGGGwwwGGGGwwwGGwwwGGG wwwww wGGwGGwG GGG ;>w=w;w< www G ww GwG GG +wGGGGwGGGGGwGwwwG wwGGwG w .$$$$$$$$$$$$$    ;>=;< $   $  +$$$$$$$$ $$$  .       |$  $  +  /@@@@b01g Pasted Layer!? " +    %$#BKgBwFFgBBBBEFyL=;;99986558666L=;;99986558666L=;;99986558666=<:;=<:;=<;<8   98   98   9=9    `30PNG + + IHDR`#3iCCPICC profile(}=HPOSEZ ␡:Yq*Bi+`?hҐ8 +.κ: +x_Rh8}BTgP5H'b.*"0T3df1 ub<ޟ+LD9̦s' #e8xfȦ#b.feC%&*FBegZg> Cm%u$$R! +]#Daǟ"L +9P +ٚũI7)/1 +mv?WZ_k7:Z.;\COdHE) }k8}4+QǻsN{~?'rb'bKGDC pHYs  tIME YytEXtCommentCreated with GIMPWIDATx흿N[Iƿ{>@H4S "6 vC !"h0rWҜ-`.s9cOz33 @!B!B!BHA?+~CfY?;ZәoP֞4"~O$'l|b VE VEJb8=bB--p mbqk|砳w}SNmͺL4}c?z~حbX]*86>K +a Xp6Q So@5FZ{uK/?,}SMGi$g}|+i1Ogv'hspͺ|z%-=8u/kؓF_B?UCӨ~ c~w)RB!B!B!B!B!dzY +K842\8Օ#ơ1`O ;6R8a'ˬcU]~vPgǶ5WnVݷ?90 TO#r8 !V<}F5j{M&amhi8 qnWZUU%2&3Im|Bn1^n +"1) 'A&{`{<9AUi R5#*e>G?ui;N0a}b; +vLZ :m~vc?m#6߇/thX]vvF4I o|U}s l?'6؎;%}Vph L׵9¥7[?O39(ո M}S߯>!B!B!B!B!B!B!*']?~xeLU lB|2C/*>u: bXJZY]h}[oVVO|#V"46ϋHU.*KU. r7ASJKc;MAZg팭-awO([q{NSqi}m>0j=L2X]+/j ]{]Cq +_,65 )@UQ!m0h9Vel˜` fRmblFvu |c =*im G_bGhmHKY̝macuֹWט;r7"`[1$_)+F۟i^%bi;o +cG % KmYux8B!B!B!;KIENDB`PNG + + IHDR`#3iCCPICC profile(}=H@_SK8ACdATQX Ъɥ_Đ8 +?.κ: +"ƃ~{:S;q@,#J|ECBb-9]gysDHoOқ]-~ l]M.w']2$Ge no}>yj88F+PoorY bKGDC pHYs  tIME =tEXtCommentCreated with GIMPW7IDATx?OIƟE"ذ .Ht\sm".()ɑHKB*N\E((-+̮wyx'`Yf @!B!B!B+jl,~w!FAoP֞"/O"$l|d hKB-hKwoWߙE}PǗC[LUsw ^69hwu_kY~RZ?л^h3?^7?KCBtn{]G 9h=K D!jTp@.We +cE&饟Th>ٕ"?y7Oл?۷~se/R]<~vA_ cxJQ _>!B!B!B!B!BY %|k,rp|W8 +㣜,/Ry$1mBT?r/HYX .틫2Ԫ빞RQ\9J5˫i/M&K EK>xhhgӭ+y{1IR+a}Ώ<,pU"D!z؅i)R[~߯kכY˧ON/ +R(FV3| 2dLk~»W?[qMB-=ѝvyqxoEfmm0^#X +%?O/-(׿<Ώ1{(L`]=Rv jP揘\ VmzVԆw_'Q83! +[zfWv),BP4Z=K&ku6лNLr)Jw\"&yQ _"W6 2x==?$L&H$T@패T *Hm fQ닍D?y +qGLr^"ئvvs0V ͲKR&|ZJYsb1A<%Xl# &MaFrr] RZI,vޢtͥR"}Ț/hmޮ~F;b,BSL`յ~\\\AoR[F!"J(-}{6hglglp mBsqm_mGV ` O0T;?Fe V$9hgtbBXsW-@qqlA7w::w WX%1B/6FQ֩0+[[_N~V|=h)3 eVZo/}S +*Jf|_~8B{cK~vBC?):b.@ڠ/4ˬ?4= }q B!B!B!8oIENDB`PNG + + IHDR`#3iCCPICC profile(}=H@_SK8ACdATQX Ъɥ_Đ8 +?.κ: +"ƃ~{:S;q@,#J|ECBb-9]gysDHoOқ]-~ l]M.w']2$Ge no}>yj88F+PoorY bKGDC pHYs  tIME  $tEXtCommentCreated with GIMPWIDATx흽nIEmGHLEHL@F +( 7rDE; ,_ ̾AwͦӷH6y>@@UުjHB!B!B!B&(-OQr0E/"a/yV e/2/g%λO%l~@(CFtz5~gA_j!#i_Hv#?FzvRߌ~WN7WS+>_Oߥ~({u4׫GMV?pyz+'db N:*u!B!B!B!B!B¿A/VLeC`a_@D0vF#닐I2i{ek۶4aM,{y +\]Wh2 +dz +ak%~Px[y;qo @R'1.^ eW:E1q{&2DP_kA w/I|O Mϰ -% #@٫;jvv$RjlК\iLL=LЌ=\>DAP*c{ +|񹞡N4>_.~Ig[2&Km5: ]urpxtoiáYG^y?H]q鈒<p~XQ?m7(!3ϋ lZFLʥmν eAs@S.&v+|iE]b y?Vk᩟L0m[SW+8@|{K$ Z fFrxAW$q:y5>*rGq"&ra>Kôl^g-C]+@DTL23i2R>#}@ y0gxW^ G1n;)e_(o~=:(X%/.4֥@v(? +DcQzif#ؗI/#X7L~zd3pqs_YOv*^1٭ ?,ߛM!B!B!B!B!,IG+E BWėʁeڻPL`0 +0v1Hk%q5R QU@B5U %Q #iU:^._Z@bBSwO!B!B!B!B!B!B!X_$]?+q"A[E7Nd}WF U@50 +$jyh }[ӫtwWEh lݯTEDd$ ICJUFҰ( Jm}R }I$=vt~W;B v?2]h}.0j=L2ND57wNwPv }a&˾^c<& +X[Cn;x{\ ^U#n;mLk;m\cQZ*z]r8wѯM -`!.O0m0)Y`8Wopta*-v#]LߴA}Җ?5Kt7K$qP}O}G[%}1"B!B!B!߫ciV}IENDB`PNG + IHDR`-zTXtRaw profile type exifxڥi7Es 1wsdaG[%!#;?_ >rV{r=|~CqW>P|j-hE3"s F 3BQS|CfE\,77W['s #r}Qۂ"BՠOT?= ӭF7kL; @@ -15484,7 +18358,34 @@ StaffBack #474711 #775f21 #af7741 -#f79f70PNG +#f79f70 + + + + + + + + + + + + + + + + + + + + + + + + + + +PNG  IHDRsRGB IDATx^OeUkff Fj3: ,Law2(i`&-$Ld#tG"e8Kln"1!pC-܅ywg~W}^׷>~lH`XgVI&M@T|)]VΏ>sÿ_OO/>ZL_ΌGG~ᖹ?-ϧ;sILҟkeGOPU+9ϯ[[_:6V g ConLo@}]ptf- tWwgg kUR+b ֳ9i~O5{P!=jڂSlK}y1?^S?yy[㯜AQݗg^QN'v$HblҗRf% [ZFP9mF_(1AlT2Lji'˯1| CKa9 0&<Ϙ# CKa9 0&<Ϙ# CKa9 0&<Ϙ# CKa8UC$ЅS48aunm!~z"F4MCtM -7l`dnQ2 G'k~#%IQ}wk|ěޗ 4I4èY_DW8JX"ؒ[6KVkE%"TrckzelGwԌJ?:)ʂ J ,VɗIb;n` diff --git a/Crawler/pge.js b/Crawler/pge.js index 0d4bd09d..59fe6846 100644 --- a/Crawler/pge.js +++ b/Crawler/pge.js @@ -1 +1 @@ -var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;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="pge.data";var REMOTE_PACKAGE_BASE="pge.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"];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"]("/","assets",true,true);Module["FS_createPath"]("/assets","Campaigns",true,true);Module["FS_createPath"]("/assets","config",true,true);Module["FS_createPath"]("/assets/config","classes",true,true);Module["FS_createPath"]("/assets/config","gfx",true,true);Module["FS_createPath"]("/assets","maps",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;i{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;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&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",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});var nodeMajor=process.versions.node.split(".")[0];if(nodeMajor<15){process.on("unhandledRejection",reason=>{throw reason})}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[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_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=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 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()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS 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="pge.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}else{if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateMemoryViews();wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={61236:()=>{window.onunload=Module._olc_OnPageUnload},61280:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(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:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname: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: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)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function initRandomFill(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")}function randomFill(view){return(randomFill=initRandomFill())(view)}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.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(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;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}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 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 UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;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)}},fsync: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)}},fsync: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+length{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module["preloadPlugins"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath: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:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode: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:(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:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(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:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(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:(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:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open: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:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts: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:(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(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(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: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(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:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(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:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.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=(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);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||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(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(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){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{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>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;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},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}};function ___syscall_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.createStream(stream,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 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}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=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}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){global.performance=require("perf_hooks").performance}_emscripten_get_now=()=>performance.now();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"}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function callUserCallback(func){if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(()=>{callUserCallback(func)},timeout)}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{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=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(()=>{finish(audio)},1e4)};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"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});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",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:2};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(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"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>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"]||(()=>{});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,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(()=>{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(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>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}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:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},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;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",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_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){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 _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(dpy,surface){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readEmAsmArgsArray}function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}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 stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}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 _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":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(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(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};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}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){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(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=event){var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings}function stringToAscii(str,buffer){for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>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.name==="ErrnoError"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx.bindVertexArray(GL.vaos[vao])}var _glBindVertexArrayOES=_glBindVertexArray;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}function _glBufferData(target,size,data,usage){if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glClear(x0){GLctx.clear(x0)}function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}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 _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 _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx.enable(x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;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 _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}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,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)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 _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}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 _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}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 isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}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.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;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)};var preloadedImages={};var preloadedAudios={};var GLctx;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){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();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}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(); +var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"]||Module["$ww"])return;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="pge.data";var REMOTE_PACKAGE_BASE="pge.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"];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"]("/","assets",true,true);Module["FS_createPath"]("/assets","Campaigns",true,true);Module["FS_createPath"]("/assets","config",true,true);Module["FS_createPath"]("/assets/config","classes",true,true);Module["FS_createPath"]("/assets/config","gfx",true,true);Module["FS_createPath"]("/assets","maps",true,true);Module["FS_createPath"]("/assets","monsters",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;i{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;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&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",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});var nodeMajor=process.versions.node.split(".")[0];if(nodeMajor<15){process.on("unhandledRejection",reason=>{throw reason})}quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow};Module["inspect"]=()=>"[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_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=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 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()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS 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="pge.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(binaryFile)){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}else{if(readAsync){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["memory"];updateMemoryViews();wasmTable=Module["asm"]["__indirect_function_table"];addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}var tempDouble;var tempI64;var ASM_CONSTS={66892:()=>{window.onunload=Module._olc_OnPageUnload},66936:($0,$1)=>{Module.olc_AspectRatio=$0/$1;Module.olc_AssumeDefaultShells=document.querySelectorAll(".emscripten").length>=3?true:false;var olc_ResizeHandler=function(){let isFullscreen=document.fullscreenElement!=null;let width=isFullscreen?window.innerWidth:Module.canvas.parentNode.clientWidth;let height=isFullscreen?window.innerHeight:Module.canvas.parentNode.clientHeight;let viewWidth=width;let viewHeight=width/Module.olc_AspectRatio;if(viewHeight>height){viewWidth=height*Module.olc_AspectRatio;viewHeight=height}viewWidth=parseInt(viewWidth);viewHeight=parseInt(viewHeight);setTimeout(function(){if(Module.olc_AssumeDefaultShells)Module.canvas.parentNode.setAttribute("style","width: 100%; height: 70vh; margin-left: auto; margin-right: auto;");Module.canvas.setAttribute("width",viewWidth);Module.canvas.setAttribute("height",viewHeight);Module.canvas.setAttribute("style",`width: ${viewWidth}px; height: ${viewHeight}px;`);Module._olc_PGE_UpdateWindowSize(viewWidth,viewHeight);Module.canvas.focus()},200)};var olc_Init=function(){if(Module.olc_AspectRatio===undefined){setTimeout(function(){Module.olc_Init()},50);return}let resizeObserver=new ResizeObserver(function(entries){Module.olc_ResizeHandler()}).observe(Module.canvas.parentNode);let mutationObserver=new MutationObserver(function(mutationsList,observer){setTimeout(function(){Module.olc_ResizeHandler()},200)}).observe(Module.canvas.parentNode,{attributes:false,childList:true,subtree:false});window.addEventListener("fullscreenchange",function(e){setTimeout(function(){Module.olc_ResizeHandler()},200)})};Module.olc_ResizeHandler=Module.olc_ResizeHandler!=undefined?Module.olc_ResizeHandler:olc_ResizeHandler;Module.olc_Init=Module.olc_Init!=undefined?Module.olc_Init:olc_Init;Module.olc_Init()}};function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(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:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname: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: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)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function initRandomFill(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");var randomFillSync=crypto_module["randomFillSync"];if(randomFillSync){return view=>crypto_module["randomFillSync"](view)}var randomBytes=crypto_module["randomBytes"];return view=>(view.set(randomBytes(view.byteLength)),view)}catch(e){}}abort("initRandomDevice")}function randomFill(view){return(randomFill=initRandomFill())(view)}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.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(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;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}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 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 UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;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)}},fsync: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)}},fsync: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+length{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module["preloadPlugins"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath: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:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode: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:(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:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(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:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(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:(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:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open: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:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts: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:(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(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(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: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(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:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(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:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.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=(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);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||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(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(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){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{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>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;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},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}};function ___syscall_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.createStream(stream,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 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function _abort(){abort("")}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=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}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){global.performance=require("perf_hooks").performance}_emscripten_get_now=()=>performance.now();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"}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function callUserCallback(func){if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(()=>{callUserCallback(func)},timeout)}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{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;URL.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};preloadPlugins.push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}var b=new Blob([byteArray],{type:Browser.getMimetype(name)});var url=URL.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=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(()=>{finish(audio)},1e4)};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"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});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",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:2};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(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"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>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"]||(()=>{});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,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(()=>{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(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>2];if(param==12321){var alphaSize=HEAP32[attribList+4>>2];EGL.contextAttributes.alpha=alphaSize>0}else if(param==12325){var depthSize=HEAP32[attribList+4>>2];EGL.contextAttributes.depth=depthSize>0}else if(param==12326){var stencilSize=HEAP32[attribList+4>>2];EGL.contextAttributes.stencil=stencilSize>0}else if(param==12337){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples>0}else if(param==12338){var samples=HEAP32[attribList+4>>2];EGL.contextAttributes.antialias=samples==1}else if(param==12544){var requestedPriority=HEAP32[attribList+4>>2];EGL.contextAttributes.lowLatency=requestedPriority!=12547}else if(param==12344){break}attribList+=8}}if((!config||!config_size)&&!numConfigs){EGL.setErrorCode(12300);return 0}if(numConfigs){HEAP32[numConfigs>>2]=1}if(config&&config_size>0){HEAP32[config>>2]=62002}EGL.setErrorCode(12288);return 1}};function _eglChooseConfig(display,attrib_list,configs,config_size,numConfigs){return EGL.chooseConfig(display,attrib_list,configs,config_size,numConfigs)}function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}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:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},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;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=canvas.getContext("webgl2",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_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){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 _eglCreateContext(display,config,hmm,contextAttribs){if(display!=62e3){EGL.setErrorCode(12296);return 0}var glesContextVersion=1;for(;;){var param=HEAP32[contextAttribs>>2];if(param==12440){glesContextVersion=HEAP32[contextAttribs+4>>2]}else if(param==12344){break}else{EGL.setErrorCode(12292);return 0}contextAttribs+=8}if(glesContextVersion<2||glesContextVersion>3){EGL.setErrorCode(12293);return 0}EGL.contextAttributes.majorVersion=glesContextVersion-1;EGL.contextAttributes.minorVersion=0;EGL.context=GL.createContext(Module["canvas"],EGL.contextAttributes);if(EGL.context!=0){EGL.setErrorCode(12288);GL.makeContextCurrent(EGL.context);Module.useWebGL=true;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});GL.makeContextCurrent(null);return 62004}else{EGL.setErrorCode(12297);return 0}}function _eglCreateWindowSurface(display,config,win,attrib_list){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(config!=62002){EGL.setErrorCode(12293);return 0}EGL.setErrorCode(12288);return 62006}function _eglDestroyContext(display,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=62004){EGL.setErrorCode(12294);return 0}GL.deleteContext(EGL.context);EGL.setErrorCode(12288);if(EGL.currentContext==context){EGL.currentContext=0}return 1}function _eglDestroySurface(display,surface){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(surface!=62006){EGL.setErrorCode(12301);return 1}if(EGL.currentReadSurface==surface){EGL.currentReadSurface=0}if(EGL.currentDrawSurface==surface){EGL.currentDrawSurface=0}EGL.setErrorCode(12288);return 1}function _eglGetDisplay(nativeDisplayType){EGL.setErrorCode(12288);return 62e3}function _eglInitialize(display,majorVersion,minorVersion){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(majorVersion){HEAP32[majorVersion>>2]=1}if(minorVersion){HEAP32[minorVersion>>2]=4}EGL.defaultDisplayInitialized=true;EGL.setErrorCode(12288);return 1}function _eglMakeCurrent(display,draw,read,context){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(context!=0&&context!=62004){EGL.setErrorCode(12294);return 0}if(read!=0&&read!=62006||draw!=0&&draw!=62006){EGL.setErrorCode(12301);return 0}GL.makeContextCurrent(context?EGL.context:null);EGL.currentContext=context;EGL.currentDrawSurface=draw;EGL.currentReadSurface=read;EGL.setErrorCode(12288);return 1}function _eglSwapBuffers(dpy,surface){if(!EGL.defaultDisplayInitialized){EGL.setErrorCode(12289)}else if(!Module.ctx){EGL.setErrorCode(12290)}else if(Module.ctx.isContextLost()){EGL.setErrorCode(12302)}else{EGL.setErrorCode(12288);return 1}return 0}function _eglSwapInterval(display,interval){if(display!=62e3){EGL.setErrorCode(12296);return 0}if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval);EGL.setErrorCode(12288);return 1}function _eglTerminate(display){if(display!=62e3){EGL.setErrorCode(12296);return 0}EGL.currentContext=0;EGL.currentReadSurface=0;EGL.currentDrawSurface=0;EGL.defaultDisplayInitialized=false;EGL.setErrorCode(12288);return 1}var readEmAsmArgsArray=[];function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readEmAsmArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readEmAsmArgsArray}function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{wasmMemory.grow(size-b.byteLength+65535>>>16);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}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 stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function registerFocusEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.focusEvent)JSEvents.focusEvent=_malloc(256);var focusEventHandlerFunc=function(e=event){var nodeName=JSEvents.getNodeNameForTarget(e.target);var id=e.target.id?e.target.id:"";var focusEvent=JSEvents.focusEvent;stringToUTF8(nodeName,focusEvent+0,128);stringToUTF8(id,focusEvent+128,128);if(getWasmTableEntry(callbackfunc)(eventTypeId,focusEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:focusEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_blur_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,12,"blur",targetThread)}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 _emscripten_set_focus_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerFocusEventCallback(target,userData,useCapture,callbackfunc,13,"focus",targetThread)}function registerKeyEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.keyEvent)JSEvents.keyEvent=_malloc(176);var keyEventHandlerFunc=function(e){var keyEventData=JSEvents.keyEvent;HEAPF64[keyEventData>>3]=e.timeStamp;var idx=keyEventData>>2;HEAP32[idx+2]=e.location;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;HEAP32[idx+7]=e.repeat;HEAP32[idx+8]=e.charCode;HEAP32[idx+9]=e.keyCode;HEAP32[idx+10]=e.which;stringToUTF8(e.key||"",keyEventData+44,32);stringToUTF8(e.code||"",keyEventData+76,32);stringToUTF8(e.char||"",keyEventData+108,32);stringToUTF8(e.locale||"",keyEventData+140,32);if(getWasmTableEntry(callbackfunc)(eventTypeId,keyEventData,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:keyEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_keydown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,2,"keydown",targetThread)}function _emscripten_set_keyup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerKeyEventCallback(target,userData,useCapture,callbackfunc,3,"keyup",targetThread)}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":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(e=event){fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(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};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread)}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread)}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread)}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){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(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread)}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread)}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){return registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread)}function registerWheelEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.wheelEvent)JSEvents.wheelEvent=_malloc(104);var wheelHandlerFunc=function(e=event){var wheelEvent=JSEvents.wheelEvent;fillMouseEventData(wheelEvent,e,target);HEAPF64[wheelEvent+72>>3]=e["deltaX"];HEAPF64[wheelEvent+80>>3]=e["deltaY"];HEAPF64[wheelEvent+88>>3]=e["deltaZ"];HEAP32[wheelEvent+96>>2]=e["deltaMode"];if(getWasmTableEntry(callbackfunc)(eventTypeId,wheelEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:wheelHandlerFunc,useCapture:useCapture};return JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_wheel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){target=findEventTarget(target);if(!target)return-4;if(typeof target.onwheel!="undefined"){return registerWheelEventCallback(target,userData,useCapture,callbackfunc,9,"wheel",targetThread)}else{return-1}}function _emscripten_set_window_title(title){setWindowTitle(UTF8ToString(title))}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings}function stringToAscii(str,buffer){for(var i=0;i>0]=str.charCodeAt(i)}HEAP8[buffer>>0]=0}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>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.name==="ErrnoError"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx.bindVertexArray(GL.vaos[vao])}var _glBindVertexArrayOES=_glBindVertexArray;function _glBlendFunc(x0,x1){GLctx.blendFunc(x0,x1)}function _glBufferData(target,size,data,usage){if(true){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glClear(x0){GLctx.clear(x0)}function _glClearColor(x0,x1,x2,x3){GLctx.clearColor(x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}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 _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 _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx.enable(x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}var _glGenVertexArraysOES=_glGenVertexArrays;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 _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}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,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)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 _glReadPixels(x,y,width,height,format,type,pixels){if(true){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}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 _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(true){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameteri(x0,x1,x2){GLctx.texParameteri(x0,x1,x2)}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 isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}return thisDate.getFullYear()}return thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+arraySum(isLeapYear(date.tm_year+1900)?MONTH_DAYS_LEAP:MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}return"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}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.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;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)};var preloadedImages={};var preloadedAudios={};var GLctx;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){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();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}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/Crawler/pge.wasm b/Crawler/pge.wasm index 165ff1fa..f4581a45 100644 Binary files a/Crawler/pge.wasm and b/Crawler/pge.wasm differ diff --git a/Crawler/safemap.cpp b/Crawler/safemap.cpp deleted file mode 100644 index b363d765..00000000 --- a/Crawler/safemap.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "safemap.h" - -safemap::initializeCompleted=false; \ No newline at end of file diff --git a/x64/Release/Crawler.exe b/x64/Release/Crawler.exe index c7bb9a61..d1f46c33 100644 Binary files a/x64/Release/Crawler.exe and b/x64/Release/Crawler.exe differ