From 28d3607acb2740b941ac605ce3723ab7b4adffa0 Mon Sep 17 00:00:00 2001 From: ZERICO2005 <71151164+ZERICO2005@users.noreply.github.com> Date: Fri, 1 Dec 2023 12:42:32 -0700 Subject: [PATCH] v0.77.1 | 2023/12/01 12:41 | Fixed some formatting and one minor bug, and transitioned the code from compiling with makefile to CMakeLists.txt --- .gitignore | 8 + CMakeLists.txt | 33 + LICENSE.txt | 21 + README.txt | 27 + Video 126p/README.txt | 1 + Video 126p/palette.txt | 1 + Video 126p/video-00.bin | 1 + Video 126p/video-01.bin | 1 + Video 126p/video-02.bin | 1 + Video 126p/video-03.bin | 1 + Video 126p/video-04.bin | Bin 0 -> 63504 bytes Video 126p/video-05.bin | Bin 0 -> 63504 bytes Video 126p/video-06.bin | Bin 0 -> 63504 bytes Video 126p/video-07.bin | Bin 0 -> 63504 bytes Video 126p/video-08.bin | Bin 0 -> 63504 bytes Video 126p/video-09.bin | Bin 0 -> 63504 bytes Video 126p/video-10.bin | Bin 0 -> 63504 bytes Video 126p/video-11.bin | 1 + Video 126p/video-12.bin | 1 + Video 126p/video-13.bin | 1 + assets/6x8 font/LICENSE.txt | 1 + assets/6x8 font/char 6x8 v3-3.png | Bin 0 -> 2133 bytes assets/6x8 font/char 6x8 v4.png | Bin 0 -> 1956 bytes assets/Mine Sweeper Text.txt | 94 ++ assets/colors.txt | 33 + assets/keypad/Collasped 0.png | Bin 0 -> 12152 bytes assets/keypad/Collasped 1.png | Bin 0 -> 22539 bytes assets/keypad/Collasped 2.png | Bin 0 -> 48163 bytes assets/keypad/Expanded 0.png | Bin 0 -> 21594 bytes assets/keypad/Expanded 1.png | Bin 0 -> 45871 bytes assets/keypad/Expanded 2.png | Bin 0 -> 100990 bytes assets/keypad/Keypad 0.png | Bin 0 -> 20780 bytes assets/keypad/Keypad 1.png | Bin 0 -> 43912 bytes assets/keypad/Keypad 2.png | Bin 0 -> 96108 bytes bin/.gitignore | 2 + build/.gitignore | 2 + icon.png | Bin 0 -> 9548 bytes lib/.gitignore | 2 + makefile | 38 + screenshot.png | Bin 0 -> 6711 bytes src/Super CSV/bin/.gitignore | 2 + src/Super CSV/input.csv | 74 ++ src/Super CSV/makefile | 10 + src/Super CSV/output.txt | 16 + src/Super CSV/src/main.c | 620 +++++++++++++ src/Text Conversion Tool/Engine.java | 253 +++++ src/Text Conversion Tool/README.txt | 1 + src/Video Convert/Engine.java | 445 +++++++++ src/Video Convert/README.txt | 1 + src/col.h | 78 ++ src/dataLoad.h | 109 +++ src/gameMenu.h | 475 ++++++++++ src/global.h | 368 ++++++++ src/int24_type.h | 120 +++ src/main.c | 155 ++++ src/menu.h | 399 ++++++++ src/mineSweeper.h | 1275 ++++++++++++++++++++++++++ src/prime2D.h | 377 ++++++++ src/prime2D_Font6x8.h | 17 + src/subMenu.h | 473 ++++++++++ src/video.h | 151 +++ src/x86render.h | 534 +++++++++++ 62 files changed, 6223 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 LICENSE.txt create mode 100644 README.txt create mode 100644 Video 126p/README.txt create mode 100644 Video 126p/palette.txt create mode 100644 Video 126p/video-00.bin create mode 100644 Video 126p/video-01.bin create mode 100644 Video 126p/video-02.bin create mode 100644 Video 126p/video-03.bin create mode 100644 Video 126p/video-04.bin create mode 100644 Video 126p/video-05.bin create mode 100644 Video 126p/video-06.bin create mode 100644 Video 126p/video-07.bin create mode 100644 Video 126p/video-08.bin create mode 100644 Video 126p/video-09.bin create mode 100644 Video 126p/video-10.bin create mode 100644 Video 126p/video-11.bin create mode 100644 Video 126p/video-12.bin create mode 100644 Video 126p/video-13.bin create mode 100644 assets/6x8 font/LICENSE.txt create mode 100644 assets/6x8 font/char 6x8 v3-3.png create mode 100644 assets/6x8 font/char 6x8 v4.png create mode 100644 assets/Mine Sweeper Text.txt create mode 100644 assets/colors.txt create mode 100644 assets/keypad/Collasped 0.png create mode 100644 assets/keypad/Collasped 1.png create mode 100644 assets/keypad/Collasped 2.png create mode 100644 assets/keypad/Expanded 0.png create mode 100644 assets/keypad/Expanded 1.png create mode 100644 assets/keypad/Expanded 2.png create mode 100644 assets/keypad/Keypad 0.png create mode 100644 assets/keypad/Keypad 1.png create mode 100644 assets/keypad/Keypad 2.png create mode 100644 bin/.gitignore create mode 100644 build/.gitignore create mode 100644 icon.png create mode 100644 lib/.gitignore create mode 100644 makefile create mode 100644 screenshot.png create mode 100644 src/Super CSV/bin/.gitignore create mode 100644 src/Super CSV/input.csv create mode 100644 src/Super CSV/makefile create mode 100644 src/Super CSV/output.txt create mode 100644 src/Super CSV/src/main.c create mode 100644 src/Text Conversion Tool/Engine.java create mode 100644 src/Text Conversion Tool/README.txt create mode 100644 src/Video Convert/Engine.java create mode 100644 src/Video Convert/README.txt create mode 100644 src/col.h create mode 100644 src/dataLoad.h create mode 100644 src/gameMenu.h create mode 100644 src/global.h create mode 100644 src/int24_type.h create mode 100644 src/main.c create mode 100644 src/menu.h create mode 100644 src/mineSweeper.h create mode 100644 src/prime2D.h create mode 100644 src/prime2D_Font6x8.h create mode 100644 src/subMenu.h create mode 100644 src/video.h create mode 100644 src/x86render.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1189f77 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +obj/ +src/gfx/*.c +src/gfx/*.h +.DS_Store +convimg.out +autotest.json +desktop.ini +.vscode \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..31e7148 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,33 @@ +cmake_minimum_required(VERSION 3.12) + +set(TOOLCHAIN_PATH "/c/msys64/mingw64") +set(BIN_PATH "${TOOLCHAIN_PATH}/bin") +set(INCLUDE_PATH "${TOOLCHAIN_PATH}/include") +set(LIB_PATH "${TOOLCHAIN_PATH}/lib") + +set(SRC_DIR "./src") + +set(PROJECT_NAME "Super-Sweeper-Windows") +project(${PROJECT_NAME}) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "./bin") + +# Compiler +set(CMAKE_C_COMPILER "gcc") +set(CMAKE_CXX_COMPILER "g++") + +# Set C and C++ standards +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +# Packages +find_package(SDL2 REQUIRED) + +file(GLOB SRC_FILES "${SRC_DIR}/*.c") +# Create an executable +add_executable(${PROJECT_NAME} ${SRC_FILES}) + +# Compiler Flags Debug(-g -O0) Release(-O3) +set(OPT_FLAG -O3) +target_compile_options(${PROJECT_NAME} PUBLIC ${OPT_FLAG} -Wall) +target_link_libraries(${PROJECT_NAME} PUBLIC SDL2 SDL2main) diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..4c10766 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 ZERICO2005 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..80a5ac7 --- /dev/null +++ b/README.txt @@ -0,0 +1,27 @@ +Super-Sweeper Windows Edition v0.77.1 +zerico2005 | 2023/12/01 + +Super-Sweeper Windows Edition is a port of Super-Sweeper for the Ti84CE. + +Controls: + Arrows: Move + WASD: Move + Enter: Enter + E: Search Tile/Enter + Q: Flag Tile + Z: Mark Tile + X: Menu + C: Auto Solver (Must be enabled in the menu) + P: Exit Application + +Super-Sweeper v0.77.0 was ported to Windows on June 3rd 2023. Super-Sweeper v0.77.1 has most of the source code unchanged apart from some formating and a minor bug fix. The source code is not too great because I coded Super Sweeper before I knew how to have multiple C files in a program. Otherwise the source code is under an MIT license. + +Also included are the programs I used to generate the menus and videos. + +Attributions: +- The 6x8 pixel font used in the program is a slightly modified version of the "even" font created by Christian Munk (CMunk), which can be found at https://fontstruct.com/fontstructions/show/275268/even_2. The "even" font is lincesed under Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0). Original License URL: https://creativecommons.org/licenses/by-sa/3.0/ + +Compiliation Setup used: + - Windows 10 64bit x86 + - MSYS2 MinGW64 + - GCC CMake Ninja \ No newline at end of file diff --git a/Video 126p/README.txt b/Video 126p/README.txt new file mode 100644 index 0000000..27f5d8e --- /dev/null +++ b/Video 126p/README.txt @@ -0,0 +1 @@ +The video player in Super-Sweeper has not been ported to windows yet. The binary files are uncompressed, and hold 6 168x126 4 bit frames each. \ No newline at end of file diff --git a/Video 126p/palette.txt b/Video 126p/palette.txt new file mode 100644 index 0000000..d1f45bb --- /dev/null +++ b/Video 126p/palette.txt @@ -0,0 +1 @@ +unsigned short palette[1260] = {/*0*/3171,12684,12687,15855,18927,25266,31608,3,22098,25269,25368,25371,28440,31509,31512/*1*/,3171,12684,12687,15855,18927,25266,31608,3,22095,22098,25269,25368,25371,28440,31509/*2*/,3171,12684,12687,15855,18927,25266,31608,3,22095,22098,25269,25368,25371,28440,31509/*3*/,3171,12684,12687,15855,18927,25266,28437,3,31608,25368,25371,28440,31509,28536,31512/*4*/,3171,12684,12687,15855,18927,25266,28437,3,31608,25368,25371,28440,31509,28539,31512/*5*/,3171,12684,12687,15855,18927,25266,28437,3,31608,22200,25371,28440,31509,28539,31512/*6*/,3171,12684,12687,15855,18927,25266,28437,3,31608,25269,25368,25371,28440,31509,28539/*7*/,3171,12684,12687,15756,15855,25266,28437,3,22098,31608,25368,25467,28440,28539,31509/*8*/,3171,12684,12687,15756,15855,25266,28437,3,22098,25269,31608,25467,28539,31509,31512/*9*/,3171,12684,12687,15756,15855,25266,28437,3,31608,25368,22200,28539,31509,31512,31611/*10*/,3171,12684,12687,15756,15855,25266,31608,3,25269,28539,25368,25371,25467,31509,31512/*11*/,3171,12684,12687,15756,15855,25266,31608,3,28539,22095,22200,25368,25371,25467,31611/*12*/,3171,12684,15855,12687,31608,28437,28539,3,19029,22200,25368,31611,25467,28440,31512/*13*/,3171,12684,15855,12585,12687,31608,28539,3,15759,25368,25269,31509,31611,25371,28440/*14*/,3171,12684,6342,15756,15855,28539,31608,3,25269,19029,25368,22200,31509,31611,25170/*15*/,3171,3174,6342,12684,15756,15855,15858,3,28437,31608,31611,22200,31509,28542,31707/*16*/,3171,3174,12684,9513,15855,15858,28437,3,31608,28539,31611,28338,31707,25371,28341/*17*/,3171,3174,12684,15756,15855,15858,28437,3,31608,28539,31611,31509,28341,31707,31512/*18*/,3171,3174,12684,15756,15855,15858,31608,3,28539,22200,25368,31611,31509,31707,28341/*19*/,3171,3174,15855,15756,15858,18927,28437,3,31608,31707,28539,31611,31509,31710,31605/*20*/,3171,3174,15855,15858,12786,18927,28437,3,31707,31608,31611,31509,28638,31710,31212/*21*/,3171,3174,15756,15855,15858,18927,31707,3,28542,31608,31611,28440,28638,31509,31710/*22*/,3171,3174,15855,15858,18927,31707,31608,3,25266,25368,31611,28638,31710,31605,28515/*23*/,3171,3174,15858,15756,18927,28437,31707,31710,25368,25371,28440,28539,28638,31611,31605/*24*/,3171,3174,15858,18927,15855,28437,31608,31707,31710,25368,28638,28440,28539,31611,31614/*25*/,3171,3174,12786,15858,18927,28437,28542,31608,31707,31710,28638,31611,22299,29568,28672/*26*/,3171,12786,15855,15858,18927,28437,28542,31608,31707,31710,31611,22095,28341,29568,28672/*27*/,12786,15858,18927,28437,28542,31608,31707,31710,22299,25368,31611,31680,31509,29568,28672/*28*/,12786,15855,15858,18927,28437,28542,31608,31707,31710,25269,28638,31680,31614,29568,28672/*29*/,12786,15855,15858,18927,28437,28542,31608,31707,31710,25269,28638,30720,31680,29568,28672/*30*/,12786,15756,15855,15858,18927,28437,28542,31608,31707,31710,28638,31680,31512,29568,28672/*31*/,12786,15756,15858,18927,28437,28542,31608,31707,31611,31710,31512,28638,31680,29568,28672/*32*/,12786,15858,15855,18927,28437,28542,31608,31707,28539,31710,31512,31680,31509,29568,28672/*33*/,12786,15858,15855,18927,28437,28542,31608,28440,31707,31710,28638,31680,31512,29568,28672/*34*/,12786,15858,15855,28542,19128,31710,31707,31611,25368,25371,25470,28638,31512,29568,28672/*35*/,12786,15858,15855,18927,28437,28542,31710,31611,31707,28638,30720,31512,31680,29568,28672/*36*/,12786,15858,18927,19128,28437,28542,31710,31611,31707,28638,31512,31680,31017,29568,28672/*37*/,12786,15855,15858,19128,28437,28542,31608,31710,25470,28638,31509,31680,25272,29568,28672/*38*/,12786,15855,19128,28437,18927,28542,31608,28539,31710,31611,31509,30720,31680,29568,28672/*39*/,12786,15858,19128,28437,28542,31608,25266,25371,31707,31710,31509,31680,28341,29568,28672/*40*/,9615,12786,15858,28437,28542,31608,31707,28440,28539,31710,31611,31680,28434,29568,28672/*41*/,9615,12786,15855,28437,28542,31608,28539,31707,31710,31680,28638,31509,28341,29568,28672/*42*/,9615,12786,15855,28437,28542,31608,25371,28539,31611,31710,31509,25263,28341,29568,28672/*43*/,9615,15855,15756,28437,28542,31608,25371,28539,31710,31707,28536,31509,28638,29568,28672/*44*/,9615,15855,28437,31608,28539,28542,19029,25371,31707,31710,28440,30720,31680,29568,28672/*45*/,9615,15855,28437,31608,28539,28542,28338,31611,28434,31710,28440,31707,31680,29568,28672/*46*/,15855,15756,28437,31608,28539,28542,28338,25371,28434,31611,31707,31680,31710,29568,28672/*47*/,15855,15756,28437,25266,31608,22200,28542,19128,25368,25371,31611,30720,31680,29568,28672/*48*/,15855,9615,15756,12687,28437,28539,31608,28542,25371,28434,31611,31707,28440,29568,28672/*49*/,15756,15855,12585,12687,28437,25266,31608,28539,28542,31611,31707,31680,31605,29568,28672/*50*/,15756,15855,12684,28437,18927,25266,31608,28539,28542,31611,31707,25269,31605,29568,28672/*51*/,15756,9615,15855,12687,28437,28338,31608,28542,31611,30720,31707,31605,25263,29568,28672/*52*/,15756,9615,15855,12687,28437,25266,28539,31608,28434,28542,31611,31680,31707,29568,28672/*53*/,3171,15756,15855,12684,28437,28539,18927,25266,31608,28434,31611,31680,31707,29568,28672/*54*/,3171,15756,15855,12585,12684,28437,18927,28539,22200,25368,31608,28434,31611,29568,28672/*55*/,3171,15756,15855,12684,28437,15759,28539,25266,25368,31608,31611,31680,31707,29568,28672/*56*/,3171,15756,15855,12684,28437,28539,25266,25368,31608,31611,30720,31680,31707,29568,28672/*57*/,15756,12585,15855,28437,28338,28539,31608,25368,25371,28542,31611,31509,31707,29568,28672/*58*/,15756,15855,12684,28437,31608,22200,28539,25371,28542,31707,31680,31605,31611,29568,28672/*59*/,15756,15855,28338,28437,31608,25266,28539,28542,31707,31509,31680,31710,31704,29568,28672/*60*/,15756,12585,15855,22200,28437,31608,28542,31611,30720,31509,31680,31707,31710,29568,28672/*61*/,9615,15756,15855,28437,18927,28338,28542,31608,28440,31611,31707,28434,31710,29568,28672/*62*/,9615,12585,15756,15855,15858,28437,28338,28542,31608,28440,31707,31509,31710,31689,31017/*63*/,9615,15855,15756,28437,28338,25266,19128,28542,31608,31611,31707,31710,31605,25467,31614/*64*/,9615,15855,15756,28437,15858,28338,25266,28542,31608,31707,31710,31509,31605,31614,31512/*65*/,9615,15756,15855,28437,15858,22200,28338,28539,31608,31611,31710,28524,31707,31605,25467/*66*/,9615,12585,15756,15855,28437,22200,28338,28539,31608,25371,31611,31710,31707,31605,28443/*67*/,9615,12687,15756,15855,19029,28437,28338,28539,31608,31611,31710,25365,28341,31509,31707/*68*/,9615,12687,15855,19029,28338,28437,28539,31608,31611,28440,31710,25167,28434,25365,31707/*69*/,9615,12687,15855,19029,28338,28437,28539,31608,31611,31710,25272,28434,31707,31509,31605/*70*/,9615,12687,15855,22200,28338,28539,31608,31611,31710,25269,28434,31707,31605,25467,31614/*71*/,9615,12687,15855,22200,28338,28539,31608,28542,31611,31710,25269,31605,31509,31707,31614/*72*/,9615,12687,15855,19029,22200,28338,28539,31608,31611,31710,31605,28341,28536,31707,25365/*73*/,9615,12687,15855,19029,22200,28338,28437,28539,31608,31611,31710,31605,31707,31614,28536/*74*/,9615,12687,15855,22200,28338,28437,28539,31608,31611,25167,25269,31710,28440,31509,31605/*75*/,9615,12687,15756,15855,22200,28338,28437,28539,31608,31611,28341,31710,31605,28443,28536/*76*/,9615,12687,15756,15855,22200,28338,28437,28539,31608,31611,28341,28440,31509,31710,28335/*77*/,9615,12687,15756,15855,22200,28338,28437,28539,31608,31611,28341,28440,31509,28434,31710/*78*/,15756,12585,12687,15855,28338,28437,28539,31608,31611,28341,28440,31509,28434,31605,31710/*79*/,12687,9615,15756,25266,28437,25167,25371,28440,31608,25263,28338,28536,28341,28434,28539/*80*/,12684,22095,9513,25266,19029,22197,15954,22200,28437,25365,25272,18930,25170,25263,28341/*81*/,9513,9516,18924,19026,22095,22098,22194,3,22197,25266,21996,18828,21999,18921,25170/*82*/,6342,6345,9414,15753,15855,18927,15852,3,12585,12783,15858,19023,19026,32768,32768/*83*/,3171,3174,6243,6342,9513,12585,12681,12684,9612,32768,32768,32768,32768,32768,32768} \ No newline at end of file diff --git a/Video 126p/video-00.bin b/Video 126p/video-00.bin new file mode 100644 index 0000000..540a3ea --- /dev/null +++ b/Video 126p/video-00.bin @@ -0,0 +1 @@ +̻IDDDDDDDDDDDDDDDD333333333333333333333333333333333̼DDDDDDDDD43333333333333333333333333333̼IDDDDDDDDDD3333333333333333333333333333̼DDDDDDDDDDD3333333333333333333333333333̼IDDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDD333333333333333333333333333̼DDDDDDDDDDDDDD33333333333333333333333333˼IDDDDDDDDDDDDDD3333333333333333333333333̻IDDDDDDDDDDDDDD3333333333333333333333333̼IDDDDDDDDDDDDDD4333333333333333333333333̼IDDDDDDDDDDDDDD433333333333333333333333̻IDDDDDDDDDDDDDD433333333333333333333333̻DDDDDDDDDDDDDDDD3333333333333333333333̻DDDDDDDDDDDDDDDD333333333333333333333̻IDDDDDDDDDDDDDDD433333333333333333333̻DDDDDDDDDDDDDDD433333333333333333333̻DDDDDDDDDDDDDD433333333333333333333̻DDDDDDDDDDDDD433333333333333333333̻DDDDDDDDDDDDDDD333333333333333333̻DDDDDDDDDDDDD43333333333333333www̻IDDDDDDDDDDDDDDDDD33333333333|wwwwww̼DDDDDDDDDDDDDDDDD33333333333wwwwwww̼DDDDDDDDDDDDDDDDD33333333333wwwwwwwww̼DDDDDDDDDDDDDDDDD33333DDD333wwwwwwwwwww̻EDDDDDDDDDDDDDDDD3333CDDD333wwwwwwwwwwwݽYUUUUDDDDDDDDDDDD3333DDDD333wwwwwwwwwwwwwݻUUDDDDDDDDDDD333CDDDD333wwwwwwwwwwwwwwwݻYUDDDDDDDDDDDDD3CDDDD433wwwwwwwwwwwwwwwwݽYUUDDDDDDDDDDDDDDCDDDD333wwwwwwwwwwwwwwwwwwݻUUUUUUEDDDDDDDDDDDDDD3CD33333wwwwwwwwwwwwwwwwwwwwwwݻjUUUUUUUEDDDDDDDDDDDDDDDD33333333wwwwwwwwwwwwwwwwwwwwwwwݻ۽jYUUUUUUEDDDDDDDDDDDDDDDDDDD33333333wwwwwwwwwwwwwwwwwwwwwwwݫjUUUUUUDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwwݪjYUUUEDDDDDDDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwwwwwwwwwݭjUUUDDDDDDDDDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwwwwwwwwݭjYUUEDDDDDDDDDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwwwwwwwwݪjUUUEDDDDDDDDDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwwwwwwwwݭjUUUEDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwݭjfUUUEDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwݭffUUUEDDDDDUDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwݭjffffUUUEDDDDTUUEDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwݪfffffUUEDDDDDTUUEDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwݭffffUUEDDDDDUUUUDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwݭffffUUEDDDDUUUUUDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwݭfffYUUUUUUUUUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwݪjffffffYUUUUUUUUUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwݭjffffffYUUUUUUUUUUUUDDDDDDDDDDD33333333333333wwwwwwwwwݪjffffffYUUUUUUUUUUUUDDDDDDDDDD433333333333333wwwwwwwwwwݭjffffffUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwݪjffffffYUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwffffffffYUUUUUUUUDDDDDDDDDDD433333333333333wwwwwwwwwwwfffffffffffUUUUUUUUEDDDDDDDDDDD433333333333333wwwwwwwwwwwjffffffffffffUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwwwwwwwwfffffffffffffffffYUUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwwwwwwwwjffffffffffffffffUUUUUUUUUUDDDDDDDDDDDDDD33333333333333wwwwwwwwwwwjffffffffffffffffUUUUUUUUUUDDDDDDDDDDDDDD33333333333333wwwwwwwwwwnjffffffffffffffUUUUUUUUUUEDDDDDDDDDDDDD4333333333333"wwwwwwwwwnfffffffffffffffYUUUUUUUUUUEDDDDDDDDDDDDDD333#2333333""wwwwwfffffffffffffUUUUUUUUUUDDDDDDDDDDDDDDD333""333#""""wwwffffffffffffYUUUUUUUUUUEDDDDDDDDDDDDDDD3#"#"333"""""wwwffffffffffffYUUUUUUUUUUUUDDDDDDDDDDDD"$3"3"2333#""""""wwfffffffffffYUUUUUUUUUUUUDDDDDDDDDDDD$""3"""233#"""""""wwfffffffffffYUUUUUUUUUUUUEDDDDDDDDDDD$""""""""33#"""""""wffffffffffYUUUUUUUUUUUDDDDDDDDDDDDD$"""""""""33""""""""fffffffffffYUUUUUUUUUUEDDDDDDDDDDDD$"""""""""""""""""""""nffffffffffffUUUUUUUUUUUUUUDDDDDDDDDDDD$""""""""""""""""""""""jfffffffffffffffYUUUUUUUUUUUUUEDDDDDDDDDDDD""""""""""""""""""""""""fffffffffffffffffUUUUUUUUUUUUUDDDDDDDDDDDDD$"""""""""""""""""""""""""jffffffffffffffffYUUUUUUUUUUUEDUDDDDDDDDD"""""""""""""""""""""""""""""""jffffffffffffffffYUUUUUUUUUUUUUEDDDDDDDD""""""""""""""""""""""""""""""""""fffffffffffffffYUUUUUUUUUUUUUDDDDDDDD$"""""""""""""""""""""""""""""""""""YUUUUUUUUUUEDDDDDD$$"""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUUUDDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUUEDDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUDDDDDD"""""""""""""""""""""""""""""""""UUUUUUUUUUUEDDDDDD"""""""""""""""""""""""""""""""""UUUUUUDDTUEDDDDDD$""""""""""""""""""""""""""""""!"UUUUUEDDDDDD$BDD""""""""""""""""""""""""""""""UUUEDDDDDDDDD$DD""""""""""""""""""""""""""""""UUUDDDDDDDDD"""""""""""""""""""""""""""""""""""!""UUUDDDDDDDDD""""D$""""""""""""""""""""""""""""!"UUEDDDDDDDDD$""B$"""""""""""""""""""""""""""""UUDDUDTEDDDD"""""""""""""""""""""""""""""EDTDDDDDD$BD$""""""""""""""""""""""""""""""""DTUE$DDDD"""""""""""""""""""""""""""""""!""DD""DDDD""DDD""""""""""""""""""""""""""UEDDTD"BDD"""""""""""""""""""""""""!"""DD"DDDDDDD""""""""""""""""""""""""""!!"""DDDD$BDDD$""""""""""""""""""""""""""""""DDDD$"BDDD$""""""""""""""""""""""""""""""DDDDDDDDDD$"""B""$"""""""""""""""""""""""""""DDDDDDDDD""D"D"""""""""""""""""""""""""""""B$"B"DD$"""BDD""""""""""""""""""""""""""D$"DD$"""BDDD$""""""""""""""""""""""""""""BDDDD""DDDDD$""""""""""""""""""""""""""""""DDUUUEDDDDDDD$""""""""""""""""""""""""""""""D$""$"BDDD"DD$""""""""""""""""""""""""""DDD$"""""""""""""""""""""""""!"""""""!"UD$"B""""""""""""""""""""""""""DDDDD$"""""""""""""""""""""""""DDDD$"""""""""""""""""""""""""""""""""""""""B"""""""""""""""""""""!""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""DDDD""""""""""""""""""""""""""""DDD$BD$"""""""""""""""""""""""""""""B"""""$""""""""""""""""""""""$""""""""""""""""""""!""""$"""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""̼DDDDDDDDDDDDDDDDD433333333333333333333333333333333̻DDDDDDDDD43333333333333333333333333333̼DDDDDDDDDD4333333333333333333333333333̼DDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDDDD33333333333333333333333333̼JDDDDDDDDDDDDDD3333333333333333333333333̻JDDDDDDDDDDDDDD3333333333333333333333333̼JDDDDDDDDDDDDDD4333333333333333333333333̻JDDDDDDDDDDDDDD433333333333333333333333̼JDDDDDDDDDDDDDDD33333333333333333333333̼DDDDDDDDDDDDDDDD3333333333333333333333̼DDDDDDDDDDDDDDDD333333333333333333333̼DDDDDDDDDDDDDDD433333333333333333333̼DDDDDDDDDDDDDDD433333333333333333333̼DDDDDDDDDDDDDD433333333333333333333̻DDDDDDDDDDDDD433333333333333333333̼DDDDDDDDDDDDDDD433333333333333333̼DDDDDDDDDDDDDD4333333333333333ww}̻JDDDDDDDDDDDDDDDDD33333333333}wwwwww̻DDDDDDDDDDDDDDDDD33333333333wwwwwww̻DDDDDDDDDDDDDDDDD33333333333wwwwwwwww̼JDDDDDDDDDDDDDDDD33333DDD333wwwwwwwwwww̼JDDDDDDDDDDDDDDDD3333CDDD333wwwwwwwwwww̻̻UUUUDDDDDDDDDDDD3333DDDD333wwwwwwwwwwwww̻UUDDDDDDDDDDDD33CDDDD433wwwwwwwwwwwwwww̻ZUDDDDDDDDDDDDD3CDDDD433wwwwwwwwwwwwwwww̻ZUUDDDDDDDDDDDDDDCDDDD333wwwwwwwwwwwwwwwwww̼UUUUUEDDDDDDDDDDDDDD3CD33333wwwwwwwwwwwwwwwwwwwwww̼kUUUUUUUEDDDDDDDDDDDDDDDD33333333wwwwwwwwwwwwwwwwwwwwwww̻kUUUUUUEDDDDDDDDDDDDDDDDDDD33333333wwwwwwwwwwwwwwwwwwwwwwwkUUUUUUDDDDDDDDDDDDDDDDDD43333333333wwwwwwwwwwwwwwwwwwwwwwwkUUUEDDDDDDDDDDDDDDDDDDD433333333333wwwwwwwwwwwwwwwwwwwwwwwkUUUDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwwkZUUUDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwwkUUUUDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwwkUUUEDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwkUUUEDDDDDDDDDDDDDDDDDDDDD433333333333wwwwwwwwwwwwwwwwwwwwwkfUUUEDDDDDUEDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwffffUUUEDDDDTUUEDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwfffffUUEDDDDDTUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwffffUUEDDDDDUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwffffUUEDDDDUUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwffffZUUUUUUUUUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwkffffffUUUUUUUUUUUUUDDDDDDDDDDDD3333333333333wwwwwwwwwwkffffffZUUUUUUUUUUUUDDDDDDDDDDD33333333333333wwwwwwwwwwwwkffffffUUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwkffffffUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwwfffffffZUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwffffffffZUUUUUUUUDDDDDDDDDDD433333333333333wwwwwwwwwwwfffffffffffUUUUUUUUEDDDDDDDDDDD433333333333333wwwwwwwwwwwkffffffffffUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwwwwwwwwfffffkffffffffffUUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwwwwwwwwkffffffffffffffffUUUUUUUUUUDDDDDDDDDDDDDD33333333333333wwwwwwwwwwwkffffffffffffffffUUUUUUUUUUDDDDDDDDDDDDDD33333333333333wwwwwwwwwwkffffffffffffffUUUUUUUUUUEDDDDDDDDDDDDD43333333333333wwwwwwwwkffffffffffffffUUUUUUUUUUEDDDDDDDDDDDDDD333#2333333#"wwwwwkffffffffffffUUUUUUUUUUDDDDDDDDDDDDDDD333"23333""""wwwkfffffffffffYUUUUUUUUUEDDDDDDDDDDDDDDD3#"#2333"""""wwwfffffffffffYUUUUUUUUUUDDDDDDDDDDDD"$3"3""333#""""""wwofffffffffYUUUUUUUUUUDDDDDDDDDDDD$""3""""33#"""""""wwffffffffffUUUUUUUUUUEDDDDDDDDDDD$""""""""33#"""""""wffffffffffUUUUUUUUUUDDDDDDDDDDDDD$"""""""""3#""""""""ffffffffffffUUUUUUUUUUEDDDDDDDDDDDD$"""""""""""""""""""""ffffffffffffUUUUUUUUUUUUUUDDDDDDDDDDDD$""""""""""""""""""""""kffffffffffffffffYUUUUUUUUUUUUUEDDDDDDDDDDDD""""""""""""""""""""""""fffffffffffffffYUUUUUUUUUUUUDDDDDDDDDDD""""""""""""""""""""""""""""kffffffffffffffffUUUUUUUUUUUDUDDDDDDDD$"""""""""""""""""""""""""""""""kffffffffffffffffUUUUUUUUUUUDDDDDDDDD""""""""""""""""""""""""""""""""""kfffffffffffffffUUUUUUUUUUUUUDDDDDDDD""""""""""""""""""""""""""""""""""""ffYUUUUUDDDDD$"""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUUEDDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUEDDDDD$"""""""""""""""""""""""""""""""""UUUUUUUUUUUEDDDDDD"""""""""""""""""""""""""""""""""UUUUUUEDDUEDDDDDDD"""""""""""""""""""""""""""""""UUUUUEDDDDDDDBDD""""""""""""""""""""""""""""""UUUUEDDDDDDDDDDD""""""""""""""""""""""""""""""UUUEDDDDDDDD"""""""""""""""""""""""""""""""""""""""UUUEDDDDDDDD""""BD""""""""""""""""""""""""""""UUUDDDDDDDDD$"""D"""""""""""""""""""""""""""""UUEDUDDDDDDD$""""""""""""""""""""""""""""""!UDTEDDDDD$"DD"""""""""""""""""""""""""""""""""DDTUDBTDD"""""""""""""""""""""""""""""""DD$"DDDD""DDD""B""""""""""""""""""""UUDDTE$"DD""""""""""""""""""""""""""!"""DD$BDDDDDD"""""""""""""""""""""""""""""""""DDDDD"BDDD$"""""""""""""""""""""""""""""DDDDDB"DDDD""""""""""""""""""""""""""""""DDDDDDDDDDD"""B$""""""""""""""""""""""""""""""BDDDDDDDD""DDD$""""""""""""""""""""""""""""!"B"BDBD$""""DD$"""""""""""""""""""""""!!""DD$"DD"""BDDDD""""""""""""""""""""""""""""""DDDDDBDDDDDD$""""""""""""""""""""""""""""""DDDUUUDDDDDDDD""""""""""""""""""""""""""""""DD$"B""DDD""DD""""""""""""""""""""""""""DDDD"""""""""""""""""""""""""!"!"""""UED"B$""""""""""""""""""""""""!DDDDD$""""""""""""""""""""""""""""DDDDD$"""""""""""""""""""""""""""""!""""""""""""B$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""B$""""""""""""""""""""""""""""DDDD$"B""""""""""""""""""""""""""!"""DD""BD"""""""""""""""""""""""""""""""""""""""""""""""!""""D$""""""""""""""""""!""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""̻JDDDDDDDDDDDDDDDD433333333333333333333333333333333̻JDDDDDDDD433333333333333333333333333333̻JDDDDDDDDDD4333333333333333333333333333̻DDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDD333333333333333333333333333̻DDDDDDDDDDDDDD33333333333333333333333333̼JDDDDDDDDDDDDDD3333333333333333333333333̼JDDDDDDDDDDDDDD3333333333333333333333333̼JDDDDDDDDDDDDDD4333333333333333333333333̼JDDDDDDDDDDDDDD433333333333333333333333̻JDDDDDDDDDDDDDDD33333333333333333333333̻DDDDDDDDDDDDDDDD3333333333333333333333̼DDDDDDDDDDDDDDDD333333333333333333333̼DDDDDDDDDDDDDDD433333333333333333333̼DDDDDDDDDDDDDDD433333333333333333333̼DDDDDDDDDDDDDDD33333333333333333333̻DDDDDDDDDDDD33333333333333333333̼JDDDDDDDDDDD433333333333333333̼JDDDDDDDDDDDD4333333333333333www̻DDDDDDDDDDDDDDDDD33333333333}wwwwww̻JDDDDDDDDDDDDDDDD33333333333wwwwwww̻JDDDDDDDDDDDDDDDD33333CDD433wwwwwwwww̼JDDDDDDDDDDDDDDDD33333DDD433wwwwwwwwwww̼˼ZDUUUDEDDDDDDDDDD3333CDDD433wwwwwwwwwww̻̼UEDDDDDDDDDD3333DDDD433wwwwwwwwwwwwww̻ZUEDDDDDDDDDDD33CDDDD333wwwwwwwwwwwwwwww̻ZUDDDDDDDDDDDDD3CDDDD333wwwwwwwwwwwwwwwww̼UUUDDDDDDDDDDDDDDCDDD4333wwwwwwwwwwwwwwwwwwww̼ZUUUUUUUUDDDDDDDDDDDDDDD3CD33333wwwwwwwwwwwwwwwwwwwwwww̼fUUUUUUUUEDDDDDDDDDDDDDDDDD33333333wwwwwwwwwwwwwwwwwwwwwwwkZUUUUUEDDDDDDDDDDDDDDDDDDDD33333333wwwwwwwwwwwwwwwwwwwwwwwkZUUUUEDDDDDDDDDDDDDDDDDDD43333333333wwwwwwwwwwwwwwwwwwwwwwwkUUUEDDDDDDDDDDDDDDDDDDDDD43333333333wwwwwwwwwwwwwwwwwwwwwwwkfZUUUDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwwkUUUUDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwwUUUEDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwUUUEDDDDDDDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwwfUUUEDDDDTEDDDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwwwkffUUUEDDDDTUUEDDDDDDDDDDDDD333333333333wwwwwwwwwwwwwwwwwwwkffffUUUDDDDDTUUEDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwkffffUUEDDDDDUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwffffUUEDDDDDUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwwffffUUUUUUUUUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwwwfkffffZUUUUUUUUUUUUDDDDDDDDDDDD4333333333333wwwwwwwwwwwwkffffffZUUUUUUUUUUUUDDDDDDDDDDDD3333333333333wwwwwwwwwwwwkffffffZUUUUUUUUUEDDDDDDDDDDD33333333333333wwwwwwwwwwwwkffffffUUUUUUUUEDDDDDDDDDDD33333333333333wwwwwwwwwwwwkffffffUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwwᄏkfffffffZUUUUUUUUEDDDDDDDDDD433333333333333wwwwwwwwwwwkfffffffffZUUUUUUUUDDDDDDDDDDDD33333333333333wwwwwwwwwwwfffffffffffZUUUUUUUUEDDDDDDDDDDDD33333333333333wwwwwwwwwwwkkffffffffffUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwwwwwwwwfffffffffffffffffZUUUUUUUUEDDDDDDDDDDDDD33333333333333wwwwwwwwwwwkffffffffffffffffZUUUUUUUUUEDDDDDDDDDDDDD33333333333333wwwwwwwwwwwfffffffffffffffffUUUUUUUUUUEDDDDDDDDDDDDD33333333333333wwwwwwwwwwkffffffffffffffUUUUUUUUUUUDDDDDDDDDDDDD43333333333333wwwwwwwkfffffffffffffUUUUUUUUUUEDDDDDDDDDDDDDD333#2333333#"wwwwkffffffffffffUUUUUUUUUEDDDDDDDDDDDDDDD33""23333""""wwwofffffffffffUUUUUUUUUUEDDDDDDDDDDDDDDD3#""2333"""""wwoffffffffffUUUUUUUUUUUDDDDDDDDDDDDD43"3""333#""""""wwofffffffffYUUUUUUUUUUDDDDDDDDDDDD$""3""""33#"""""""wofffffffffUUUUUUUUUUDDDDDDDDDDDD$""""""""33#"""""""woffffffffffYUUUUUUUUEDDDDDDDDDDDDD""""""""""3"""""""""offfffffffffUUUUUUUUUUEDDDDDDDDDDDD""""""""""""""""""""""fffffffffffffYUUUUUUUUUUUUUDDDDDDDDDDDDD"""""""""""""""""""""""fffffffffffffffffYUUUUUUUUUUUUEDDDDDDDDDDDD$""""""""""""""""""""""""ffffffffffffffffUUUUUUUUUUUUUEDDDDDDDDD"""""""""""""""""""""""""""""fffffffffffffffffUUUUUUUUUUUDUDDDDDDDD$"""""""""""""""""""""""""""""""fffffffffffffffYUUUUUUUUUUUEDDDDDDDD"""""""""""""""""""""""""""""""""""ffUUUUUUUUUDDDDDDD""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDDD""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUDDDDDD$"""""""""""""""""""""""""""""""UUUUUUUUUUUUUEDDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUEDDDDD$"""""""""""""""""""""""""""""""""UUUUUUUUUUUUDDDDDD""""""""""""""""""""""""""""""""""UUUUUUEDDUUEDDDDDD""""""""""""""""""""""""""""""!!"UUUUUUDDDDDDDDDD$""""""""""""""""""""""""""""""UUUUEDDDDDDDDDDD"""""""""""""""""""""""""""""""UUUUEDDDDDDDD""""""""""""""""""""""""""""""""""!"""UUUUEDDDDDDD$"""D$""""""""""""""""""""""""""""UUUUUDDDDDDDD"""D$""""""""""""""""""""""""""""UUUDUEDDDDDDD""""""""""""""""""""""""""""""!UUUUEDDDDD"BD"""""""""""""""""""""""""""""""""EDDTEDDED$""D"""""""""""""""""""""""""""ED$"BDDD$"DDD$"D"""""""""""""""""""""UUUDDUD"BD$"""""""""""""""""""""""""""""UED""BDDDD"""""""""""""""""""""""""""""""""DDDD""DDD$"""""""""""""""""""""""""""""""DDDDD$DDDDD"""""""""""""""""""""""""""""""DEDDDDDDDDD$""BD"""""""""""""""""""""""""""""BDDDDDDD$""DDDD""""""""""""""""""""""""""""!"""BDDDD""""BDD""""""""""""""""""""""""""""DDD"DD$""BDDDD$"""""""""""""""""""""""""""BDDDDED$"DDDDD$"""""""""""""""""""""""""""""DDDUUUDDDDD"DD$"""""""""""""""""""""""""""""DDD""$"DD$""""""""""""""""""""""""""""""""DTDD$""""""""""""""""""""""""!"""""DTDDDD""""""""""""""""""""""""DDDDDD""""""""""""""""""""""""""""""DDDDD$""""B$"""""""""""""""""""""""!"$""""""""BD"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""DDDDD""""""""""""""""""""""""""""""""DDDD"BD"""""""""""""""""""""""""BDD""""""""""""""""""""""""""""D$"""""""""""""""""""""""""$"""""""""""""""""""""""!""""""""!"""""""""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""!""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""fffffUUUUUUUDDDDDDDDDDDDDDDDDD433333333333333333333333333333333fUUUEDDDDDDDDDDDDDDD433333333333333333333333333333fVUUDDDDDDDDDDDDDDDDDD4333333333333333333333333333jfVUUDDDDDDDDDDDDDDDDDD333333333333333333333333333뾻ffUUDDDDDDDDDDDDDDDDDD333333333333333333333333333ffUUEDDDDDDDDDDDDDDDDD333333333333333333333333333fVUEDDDDDDDDDDDDDDDDDD33333333333333333333333333jfVUEDDDDDDDDDDDDDDDDDD3333333333333333333333333jfVUEDDDDDDDDDDDDDDDDDD3333333333333333333333333jfVUUDDDDDDDDDDDDDDDDDDD333333333333333333333333jfVUUDDDDDDDDDDDDDDDDDDD433333333333333333333333jfVUUUDDDDDDDDDDDDDDDDDD433333333333333333333333ffffUUUUEDDDDDDDDDDDDDDDDDD3333333333333333333333jffffUUUUEDDDDDDDDDDDDDDDDDD433333333333333333333ffffUUUEDDDDDDDDDDDDDDDDDD433333333333333333333fffVUUUUDDDDDDDDDDDDDDDDDD433333333333333333333fffffUUUUDDDDDDDDDDDDDDDDD433333333333333333333fffffUUUUEDEDDDDDDDDDDDDDDD43333333333333333333fffffUUUUUUUUUUUUDDDDDDDDDDDDD43333333333333333fffffffVUUUUeffUUUUUDDDDDDDDDDDDD433333333333333jfffffffffffffffffVUUEDDDDDDDDDDDDDDDD33333333333̻fffffffffffffffUUUEDDDDDDDDDDDDDDDD3333333D433̪jfffffffVUUUUUDDDDDDDDDDDDDDDD33333DDD433̪jjfffUUUUUUUUEDTEDTDDDDDDDDDD33333DDD433̬ffffVUUUUUUUUUUUUUUDDDDDDDDDD3333CDDD433̬jfffffVUUUUUUUUUUUUUEDDDDDDDDDD3333DDDD333̪fffffffffVUUUUUUUUUUUUUEDDDDDDDDDDDD33DDDD333̪ffffffffffUUUUUUUUUUUUUUDDDDDDDDDDDDD43DDDD333̪̬zfffffffffVUUUUUUUUUUUUUUDDDDDDDDDDDDDD4CDD3333̬̬jfffffffffUUUUUUUUUUUUUEDDDDDDDDDDDDDDD43333333zwwgffffffffVUUUUUUUUUDDDDDDDDDDDDDDDDDDDD43333333|wwwfffffffffVUUUUUUUEDDDDDDDDDDDDDDDDDDDD433333333wwwwffffffffVUUUUUUUEDDDDDDDDDDDDDDDDDDD43333333333|wwgffffffffUUUUUUEDDDDDDDDDDDDDDDDDDDD333333333333|wgffffffffUUUUUUDDDDDDDDDDDDDDDDDDDDD333333333333||wwfffffffffUUUUUUDDDDDDDDDDDDDDDDDDDDD333333333333|wwwwwwffffffffffUUUUUUDDDDDDDDDDDDDDDDDDDDD333333333333|wwwwwfffffffffffUUUUUUDDDDTEDDDDDDDDDDDDDDDD43333333333wwwwwwwwwwgffffffffffVUUUUUUDDDDUUUDDDDDDDDDDDDDD433333333333|wwwwwwwwwgfffffffffffVUUUUUUDDDDUUUEDDDDDDDDDDDDD333333333333}wwwwwwwwwwwwwffffffffffffVUUUUUDDDDDUUUUDDDDDDDDDDDDD333333333333}wwwwwwwwwwwwgffffffffffffffUUUUUEDDDDDUUUUDDDDDDDDDDDDD333333333333}wwwwwwwwwwwwffffffffffffffUUUUUUEDDDDDUUUUEDDDDDDDDDDDD333333333333wwwwwwwwwwwwgffffffffffffUUUUUUUUUUETUUUUUUEDDDDDDDDDDDD333333333333wwwwwwwwwwwwgffffffffffffUUUUUUUUUUUUUUUUUUEDDDDDDDDDDD4333333333333|wwwwwwwwwwwwfffffffffffffUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD3333333333333|wwwwwwwwwwwgffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333}wwwwwwwwwwwwffffffffffffffffUUUUUUUUUUUUUUUEDDDDDDDDDDD33333333333333}wwwwwwwwwwgfffffffffffffffffVUUUUUUUUUUUUUUEDDDDDDDDDDD33333333333333}wwwwwwwwwwffffffffffffffffffVUUUUUUUUUUUUUUEDDDDDDDDDDD33333333333333}wwwwwwwwwffffffffffffffffffVUUUUUUUUUUUUUUUDDDDDDDDDDDD33333333333333}wwwwwwwgfffffffffffffffffffUUUUUUUUUUUUUUUEDDDDDDDDDDDD33333333333333}wwwwwgffffffffffffffffffffVUUUUUUUUUUUUUUUEDDDDDDDDDDDD33333333333333}wwwwwfffffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwwffffffffffffffffffffVUUUUUUUUUUUUUUUUEDDDDDDDDDDDD33333333333333}wwwwfffffffffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDDD33333333333333wwwwgffffffffffffffffffffUUUUUUUUUUUUUUUEDDDDDDDDDDDDD43333333333333}wwwffffffffffffffffffffVUUUUUUUUUUUUUUUDDDDDDDDDDDDDDD333#2333333#"}wwwfffffffffffffffffffVUUUUUUUUUUUUUUUEDDDDDDDDDDDDDDD33""23333#"""}wwwffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDDDD33#""2333"""""}wwwffffffffffffffffffVUUUUUUUUUUUUUUUEDDDDDDDDDDDDD$3"3""333#""""""}wwwffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDD$"""""""33""""""""}wwwwwgffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD$""""""""33""""""""}wwwwwwwwwgffffffffffffffUUUUUUUUUUUUUUUUUDDDDDDDDDDDDD"""""""""""""""""""""}wwwwwwwwwwwwwwfffffffffffffVUUUUUUUUUUUUUUUUUEDDDDDDDDDDDDD""""""""""""""""""""""wwwwwwwwwwwwffffffffffffffffVUUUUUUUUUUUUUUUUUEDDDDDDDDDDDDD$"""""""""""""""""""""""wwwwwwwwfffffffffffffffffffVUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD$"""""""""""""""""""""""""wwwwwwfffffffffffffffffffVUUUUUUUUUUUUUUUUUUEDDDDDDD$B""""""""""""""""""""""""""""""wwwwwfffffffffffffffffffVUUUUUUUUUUUUUUUUEDDDDDDDD""""""""""""""""""""""""""""""""""ffffffffffffUUUUUUUUUUUUUUUEDDDDDDDD$"""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUEDDDDD$"""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDDD$""""""""""""""""""""""""""""""UUUUUUUUUUUUUUDDDDDDD$""""""""""""""""""""""""""""""UUUUUUUUUUUUUEDDDDD"D"""""""""""""""""""""""""""""""UUUUUUUUUUUUUDDDDD$""""""""""""""""""""""""""""""""""UUUUUUUDDDUUEDDDDDD""""""""""""""""""""""""""""""UUUUUUUDDDDDD$DDD""""""""""""""""""""""""""""""UUUUUUDDDDDDDDDDD""""""""""""""""""""""""""""""UUUUUDDDDDDDDDD$B""""""""""""""""""""""""""""""!""UUUUUDDDDDDDD"""BD$""""""""""""""""""""""""""""!UUUUUEDDDDDDD$""BD$""""""""""""""""""""""""""""UUUEUUEDDD$DD$""""""""""""""""""""""""""""""UUUUUEDDDDD"DD""""""""""""""""""""""""""""!"UDDDTDDTED$"B$""""""""""""""""""""""""""UDD""DDDD"BDDD$DD"""""""""""""""""""""UUUE"TU$"BD""B$""""""""""""""""""""""!"""""UUE$""DDBDD""""""""""""""""""""""""""""""""EDD$"""DDD"""""""""""""""""""""""""""""""DDDDDDDDDD""""""""""""""""""""""""""""""""""ETETEDDDDDD$"""BD"D""""""""""""""""""""""""""!""DDDDDDDD$BDDDDD"""""""""""""""""""""""!!""""""DDDD"""BDDD""""""""""""""""""""""""""DDDDDDD"""BDDDD"""""""""""""""""""""""""""""$BDDDDDD$BDDDDD""""""""""""""""""""""""""""""DDTUUDDDDDD$""""""""""""""""""""!""""""""""DDTDDD""DD"""""""""""""""""""""!""""""""!"DTUDD"""""""""""""""""""""""""""""""DTUDDDD"""""""""""""""""""""""!!DDDDDDD""""""B""""""""""""""""""""!"""DDDDDD"""""D"""""""""""""""""""""""DD$""""""BD$""""""""""""""""""""""""""""D$""""""""""""""""""""""""""""""""""DDDD"""""""""""""""""""""""""""""DDDDDD"B"""""""""""""""""""""""""""BDDD"B$D""""""""""""""""""""""""$BD"""""""""""""""""""""""""""""DD"""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""fffffUUUUUUUDDDDDDDDDDDDDDDDDD433333333333333333333333333333333fUUUUEDDDDDDDDDDDDDD433333333333333333333333333333fVUUUDDDDDDDDDDDDDDDDD4333333333333333333333333333ffUUEDDDDDDDDDDDDDDDDD333333333333333333333333333jfVUUDDDDDDDDDDDDDDDDD433333333333333333333333333fVUUDDDDDDDDDDDDDDDDDDD4333333333333333333333333ffVUEDDDDDDDDDDDDDDDDDDD333333333333333333333333jfVUUEDDDDDDDDDDDDDDDDDDD33333333333333333333333jffUUUDDDDDDDDDDDDDDDDDDDDD433333333333333333333ffVUUUDDDDDDDDDDDDDDDDDDDDDD33333333333333333333ffVUUUEDDDDDDDDDDDDDDDDDDDDD33333333333333333333jffUUUUUUDDDDDDDDDDDDDDDDDDD33333333333333333333ffffUUUUUEDDDDDDDDDDDDDDDDDD33333333333333333333ffVUUUUEDDDDDDDDDDDDDDDDDD43333333333333333333ffVUUUUEDDDDDDDDDDDDDDDDDD43333333333333333333jfffUUUUUDDDDDDDDDDDDDDDDDDD3333333333333333333jfffVUUUUUEDDDDTUEDDDDDDDDDDD433333333333333333ffffVUUUUUUUUUUUEDDDDDDDDDDDDD3333333333333333jffffVUUUUUfffUUUEDDDDDDDDDDDDD44CD33333333333ffffffffffffffffVUUUDDDDDDDDDDDDDDDD43333333333jfffffffffjffffffVUUUDDDDDDDDDDDDDDDD433333DDD43̬fjfffffffVUUUUDDDDDDDDDDDDDDDD43333CDDD43̪ffffVUUUUUUETUUUEEDDDDDDDDD43333DDDD43̬jfffUUUUUUUUUUUUUUEDDDDDDDDD4333CDDDD33̪ffffffUUUUUUUUUUUUUUDDDDDDDDDD4333CDDD433̪ffffffffffUUUUUUUUUUUUUUDDDDDDDDDDDD33DDDD333̬jffffffffffUUUUUUUUUUUUUEDDDDDDDDDDDDD3DDDD333̬ffffffffffUUUUUUUUUUUUUUEDDDDDDDDDDDDDD3D43333̪̬jffffffffffUUUUUUUUUUUUUDDDDDDDDDDDDDDDD3433333̬gfffffffffVUUUUUUUUEDDDDDDDDDDDDDDDDDDDD3333333wwwgfffffffffUUUUUUUEDDDDDDDDDDDDDDDDDDDDD43333333|wwwfffffffffUUUUUUUUDDDDDDDDDDDDDDDDDDDD4333333333|wwwffffffffVUUUUUUUDDDDDDDDDDDDDDDDDDDD43333333333||wgffffffffVUUUUUEDDDDDDDDDDDDDDDDDDDD433333333333||wfffffffffVUUUUUEDDDDDDDDDDDDDDDDDDDD433333333333wwwwwgfffffffffUUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333wwwwwgffffffffffUUUUUUDDDDDDDDDDDDDDDDDDDDDDD3333333333|wwwwwwwfffffffffffUUUUUUDDDDTUEDDDDDDDDDDDDDDD43333333333|wwwwwwwwwwffffffffffffUUUUUUDDDDUUUEDDDDDDDDDDDDD433333333333wwwwwwwwwwwwgfffffffffffVUUUUUUDDDDUUUUEDDDDDDDDDDDD433333333333}wwwwwwwwwwwwwwwffffffffffffVUUUUUDDDDDUUUUEDDDDDDDDDDDD433333333333}wwwwwwwwwwwwgffffffffffffffUUUUUUDDDDDUUUUUDDDDDDDDDDDD433333333333wwwwwwwwwwwwwgffffffffffffVUUUUUUUDDDUUUUUUUDDDDDDDDDDDD433333333333wwwwwwwwwwwwgffffffffffffUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD333333333333|wwwwwwwwwwwwgfffffffffffVUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDD333333333333|wwwwwwwwwwwwgffffffffffffVUUUUUUUUUUUUUUUUUDDDDDDDDDDDD3333333333333wwwwwwwwwwwfwffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDD43333333333333}wwwwwwwwwwfffffffffffffffffffVUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333}wwwwwwwwwgfffffffffffffffffffVUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333}wwwwwwwwwfffffffffffffffffffVUUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333}wwwwwwwwfffffffffffffffffffVUUUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333}wwwwwgfffffffffffffffffffffUUUUUUUUUUUUUUUEDDDDDDDDDDDD43333333333333}wwwwwfffffffffffffffffffffVUUUUUUUUUUUUUUUEDDDDDDDDDDDD43333333333333}wwwwgfffffffffffffffffffffUUUUUUUUUUUUUUUUUDDDDDDDDDDDD33333333333333wwwwwffffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwgffffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333}wwwffffffffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDDDD4333333333333"}wwwffffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD3"3333333333#"}wwwffffffffffffffffffVUUUUUUUUUUUUUUUUEDDDDDDDDDDDDDD#""2333333#"""}wwwffffffffffffffffffUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD""""23333""""""}wwwffffffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDDD"""""""233#""""""}wwwwwgfffffffffffffffVUUUUUUUUUUUUUUUUEDDDDDDDDDDDDD""""""""233"""""""}wwwwwwwwwwgffffffffffffffVUUUUUUUUUUUUUUUUEDDDDDDDDDDDD$""""""""""2#""""""""}}wwwwwwwwwwwwwwgffffffffffffffVUUUUUUUUUUUUUUUUEDDDDDDDDDDDD""""""""""""""""""""""}wwwwwwwwwwwgfffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD$""""""""""""""""""""""wwwwwwwwwfffffffffffffffffffUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDD$""""""""""""""""""""""""wwwwwwwgffffffffffffffffffUUUUUUUUUUUUUUUUUUEDDDDDDDDDDD""""""""""""""""""""""""""""wwwwwwfffffffffffffffffffUUUUUUUUUUUUUUUUUUUDDDDDDDDD"""""""""""""""""""""""""""""""fffffffffffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDD""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUEDD$"D"""""""""BDDDTUUUEDD""""""""""""""""UUUUUUUUUUUUUUUDDDDDD$""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUDDDDDDD$"""""""""""""""""""""""""""""""""UUUUUUUUUUUUUEDDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUUDDDDDD""""""""""""""""""""""""""""""""UUUUUUUEDTUUEDDDDDD""""""""""""""""""""""""""""""""UUUUUUUEDDDDDDDDD$$""""""""""""""""""""""""""""""!UUUUUUDDDDDDDDDDD""""""""""""""""""""""""""""""UUUUUDDDDDDDDDDDD""""""""""""""""""""""""""""""""UUUUUEDDDDDDD$D$BD"""""""""""""""""""""""""""""""UUUUUUUUEDDDD$"BDD"""""""""""""""""""""""""""""UUUUUUEDDDDDD$""""""""""""""""""""""""""""""UUUUUEDDDDDBDD""""""""""""""""""""""""""""""""UEDDDDDDDD""DD"""""""""""""""""""""""""""UED$"DDDD"BDDDDD$""""""""""""""""""""""UUUE$DDD"BD$"BD""""""""""""""""""""""!""""UUE$""BDDDD"""""""""""""""""""""""""""""""""UED$""DDDD""""""""""""""""""""""""""""""""DDDDDDDDDD"""""""BD$""""""""""""""""""""""""UUDDDDDDDD$""""DDDD"""""""""""""""""""""""""""DD"DDDDDDDBDDDDDD$""""""""""""""""""""""""!""""DDDDD"BDDDDD""""""""""""""""""""""""D$DDDDDD""BDDDD$"B""""""""""""!"""""""""""""$"DDDDDDDDDDD""""""""""""""""""""""""""""""""DDDUUEDDDDD"""""""""""""""""""""""""""""""DDTDD$""B""""""""""""""""""""""!""""""""""DDUDD""""""""""""""""""""""""""!""""""DDUDDDDDD""""""""""""""""""""""!""DDDDDDDD"""""B$"""""""""""""""""""!""""""DDDDDD"""""D$"""""""""""""""""!""""!DDD$""""""BD$""""""""""""""""""""!""""""""DDDD"""""D""""""""""""""""""""""""""DDDD$"""""""""""""""""""""""""""""!DDDDDDBD$"""""""""""""""""""""""""""BDDD$B$D""""""""""""""""""""""""$DD$"""""""""""""""""""""""""""""DD$"""""""""""""!""""!""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ZUDDDDDDDDDDDDDDDDDDD33333333333333333333333333333333DDDDDDDDDDDD433333333333333333333333333333JDDDDDDDDDDDD4333333333333333333333333333JDDDDDDDDDDDD333333333333333333333333333JDDDDDDDDDDDDD33333333333333333333333333JDDDDDDDDDDDDDD4333333333333333333333333DDDDDDDDDDDDDDD333333333333333333333333DDDDDDDDDDDDDDDD33333333333333333333333DDDDDDDDDDDDDDDDDD433333333333333333333JDDDDDDDDDDDDDDDDDD33333333333333333333JDDDDDDDDDDDDDDDDDD33333333333333333333DDDDDDDDDDDDDDDDDD33333333333333333333JDDDDDDDDDDDDDDDDDD33333333333333333333JDDDDDDDDDDDDDDDDDD43333333333333333333DDDDDDDDDDDDDDDDDD43333333333333333333JDDDDDDDDDDDDDDDDD3333333333333333333EDDUTUEDDDDDDDDDDD433333333333333333UUDDDDDDDDDDDDD3333333333333333ZUUDDDDDDDDDDDD4DDD43333333333UUDDDDDDDDDDDDDDDD43333333C33ZUUEDDDDDDDDDDDDDDD433333DDD43̻ZUUUUEDDDDDDDDDDDDDDD43333CDDD43̻jUUUUUUUUUUUUUEDDDDDDDDD43333DDDD43̼˻jUUUUUUUUUUUUUUEDDDDDDDDD43333DDDD33̻̬jffUUUUUUUUUUUUUUDDDDDDDDDD4333CDDD433̼̪ffffffffffUUUUUUUUUUUUUEDDDDDDDDDDDD33DDDD333|ffffffffffVUUUUUUUUUUUUEDDDDDDDDDDDDDD3CDD4333|ffffffffffUUUUUUUUUUUUEDDDDDDDDDDDDDDDD3DD3333gfffffffffVUUUUUUUUUUUDDDDDDDDDDDDDDDDDD3333333|wwffffffffffUUUUUUUUUDDDDDDDDDDDDDDDDDDDDD4333333|wwwffffffffffUUUUUUUEDDDDDDDDDDDDDDDDDDDDD43333333陙|wwwgfffffffffUUUUUUUEDDDDDDDDDDDDDDDDDDDD3333333333|wgffffffffVUUUUUEDDDDDDDDDDDDDDDDDDDD433333333333|wgffffffffVUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333ww|wgfffffffffVUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333wwwwwffffffffffVUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333|wwwwwgffffffffffUUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333wwwwwwwwwwwgfffffffffffUUUUUUDDDDTUEDDDDDDDDDDDDDD433333333333}wwwwwwwwwwwffffffffffffUUUUUUDDDDUUUUEDDDDDDDDDDDD433333333333wwwwwwwwwwwwwgfffffffffffVUUUUUUDDDDUUUUEDDDDDDDDDDDD433333333333}wwwwwwwwwwwwwwwffffffffffffUUUUUUDDDDDUUUUEDDDDDDDDDDDD433333333333}wwwwwwwwwwwwwffffffffffffffUUUUUUDDTEDUUUUUDDDDDDDDDDDD433333333333wwwwwwwwwwwwwgffffffffffffUUUUUUUUDTUUUUUUUUEDDDDDDDDDDD433333333333wwwwwwwwwwwwgfffffffffffVUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD333333333333|wwwwwwwwwwwwgfffffffffffVUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDD333333333333|wwwwwwwwwwwwgfffffffffffffUUUUUUUUUUUUUUUUUDDDDDDDDDDDD3333333333333}wwwwwwwwwwgfwfffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDD43333333333333}wwwwwwwwwwfffffffffffffffffffVUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333}wwwwwwwwwgffffffffffffffffffffUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333}wwwwwwwwwffffffffffffffffffffVUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333}wwwwwwwgffffffffffffffffffffVUUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333}wwwwwgfffffffffffffffffffffVUUUUUUUUUUUUUUEDDDDDDDDDDDD43333333333333}wwwwwffffffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333}wwwwgffffffffffffffffffffVUUUUUUUUUUUUUUUUUDDDDDDDDDDDD33333333333333wwwwwffffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwgffffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333}wwwffffffffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDDDD4333333333333"}wwwfffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD3"3333333333""}wwwfffffffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDDDDD#""2333333#"""}wwwffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD""""23333""""""}wwwwwfffffffffffffffVUfUUUUUUUUUUUUUUUUEDDDDDDDDDDDD"""""""333"""""""wwwwwwwwgfffffffffffffVUUUUUUUUUUDDUUUUUEDDDDDDDDDDDD$"""""""""23#"""""""wwwwwwwwwwwgffffffffffffVUUUUUUUUUUU$""BUUEDDDDDDDDDDDDD"""""""""""""""""""""}wwwwwwwwwwwgffffffffffffffffVUUUUUUUUUUUE""""BDDDDDDDDDDDDDD""""""""""""""""""""""}wwwwwwwwwwwffffffffffffffffVUUUUUUUUUUeVU$"""""DDDDDDDDDDDDD$""""""""""""""""""""""wwwwwwwgfffffffffffffffffffUUUUUUUUUUUUfUE""""""BDDDDDDDDDD$""""""""""""""""""""""""wwwwwwwfffffffffffffffffffUUUUUUUUUUUUUVUE$""""""BDDDDDD$"""""""""""""""""""""""""""wwwwwgfffffffffffffffffffUUUUUUUUUUUUUUUUE$"""""""BDDD""""""""""""""""""""""""""""""fffffffffffVUUUUUUUUUUUUUUUTEUDDUUUUUUUUUUD"""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUEDDDDDDD""""""BDDUUUUUUUUDDDDDDD$"""""""""""""UUUUUUUUUUUUUED$"""""""B""""""BDDDDDDDD""""""""""""""""""""""""""UUUUUUUUUUUUUEDDD"""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUDDDDDDDD"""""""""""""""""""""""""""""""""UUUUUUUUUUUUUDDDDDDD$"""""""""""""""""""""""""""""""UUUUUUUEDDUUDDDDDDDD""""""""""""""""""""""""""""""""UUUUUUUDDDDDDDDDDD"""""""""""""""""""""""""""""""""""UUUUUEDDDDDDDDDDD"""""""""""""""""""""""""""""""!""UUUUUDDDDDDDDDDDD$""""""""""""""""""""""""""""""""UUUUUEDDDDDDDDDDDD"""""""""""""""""""""""""""""UUUUUUUUUDDDD$B$BD"""""""""""""""""""""""""""""UUUUUUEDDDDDD$""""""""""""""""""""""""""""""UUUUUUDDDDDDD$""""""""""""""""""""""""""""!"UEDDDDDDD$BDDD$B""""""""""""""""""""""""UUUDDDDDD"DDDDDDD""""""""""""""""""""UUU$"BDD"BDDDD$"""""""""""""""""""""""""""""""UUDD""BDDDD""""""""""""""""""""""""""""""""DDD$"DDDDD"""""""""""""""""""""""""""""""""DDDDDDDDDD$$"""""BD$"""""""""""""""""""""""""!TEDDDDDDDD$""""DDDD""""""""""""""""""""""""""DD""DD"DDDDDDDDDD$""""""""""""""""""""""!BD"DDDDDDDDDDDD$"""""""""""""""!"""""""""DDDDDDDDD$DDDD$""""""""""""""""""""""""""""""$BDDTEDDDDDD$"""""""""""""""""""""""""""""""DDDDDD$BDD""""""""""""""""""""""""""""""""$BDDD""""""""""""""""""""""""""!""""""""DTUDD""""""""""""""""""""""""""!"""""""BDTDDDDDD$""""""""""""""""""""""""!""""DDDDEDDDD""""B$""""""""""""""""""""!""""""DDDDDD"""""D$""""""""""""""""!""""""""DDDD"""""BDD$"""""""""""""""""""""""""!DDDD$D$"""""""""""""""""""""""""""DDDDD$"""""""""""""""""""""""""""""!"""DDDDBD$"""""""""""""""""""""""""""DDD$"""""""""""""""""""""""""""DDDD"""""""""""""""""""!"BDD""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""""""" \ No newline at end of file diff --git a/Video 126p/video-01.bin b/Video 126p/video-01.bin new file mode 100644 index 0000000..22bfe4a --- /dev/null +++ b/Video 126p/video-01.bin @@ -0,0 +1 @@ +̼UUUUUUDDDDDDDDDDDDDDDDDD433333333333333333333333333333333̼EDDDDDDDDDDDDDD433333333333333333333333333333̼EDDDDDDDDDDDDDDDD4333333333333333333333333333̻ZDDDDDDDDDDDDDDDDD333333333333333333333333333̻ZEDDDDDDDDDDDDDDDDD33333333333333333333333333̼UDDDDDDDDDDDDDDDDDD4333333333333333333333333̼̼ZDDDDDDDDDDDDDDDDDDD333333333333333333333333̼˻UDDDDDDDDDDDDDDDDDDD33333333333333333333333̼EDDDDDDDDDDDDDDDDDDDD433333333333333333333̼EDDDDDDDDDDDDDDDDDDDDD33333333333333333333̻UDDDDDDDDDDDDDDDDDDDDD33333333333333333333̻ZUUDDDDDDDDDDDDDDDDDDD33333333333333333333̻UUEDDDDDDDDDDDDDDDDDD33333333333333333333̻ZUUEDDDDDDDDDDDDDDDDDD43333333333333333333̻UUUEDDDDDDDDDDDDDDDDDD43333333333333333333̼ZUUUDDDDDDDUDDDDDDDDDDD3333333333333333333̼UUUUEDDDTUUEDDDDDDDDDDD433333333333333333̼UUUUUUUUUUDDDDDDDDDDDD43333333333333333̼ZUUDDDDDDDDDDDDD3DDD43333333333̼ZUUDDDDDDDDDDDDDDDD43333333C33߼UUUDDDDDDDDDDDDDDDD433333DDD43ݼZUUUUEDDDDDDDDDDDDDDD43333CDDD43ݻjVUUUUUUUUUUUUEDDDDDDDDD43333DDDD43ݽjUUUUUUUUUUUUUUEDDDDDDDDD43333DDDD33ݽjUUUUUUUUUUUUUUDDDDDDDDDDD333CDDD433ݻVUUUUUUUUUUUUUEDDDDDDDDDDDD33DDDD333ݻfVUUUUUUUUUUUUUDDDDDDDDDDDDD43CDDD333ݽݽjfUUUUUUUUUUUUEDDDDDDDDDDDDDDDC3D43333ݻfffjVUUUUUUUUUUEDDDDDDDDDDDDDDDDD33333333ݪjfffjUUUUUUUUUEDDDDDDDDDDDDDDDDDDD33333333}ffffVUUUUUUUEDDDDDDDDDDDDDDDDDDDD433333333}wwffffUUUUUUUUDDDDDDDDDDDDDDDDDDDD3333333333}fffVUUUUUEDDDDDDDDDDDDDDDDDDDDD43333333333}ݪfffUUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333}w}wfffUUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333}wwwwfffUUUUUUDDDDDDDDDDDDDDDDDDDDD433333333333}wwwwfffUUUUUUDDDDDDDDDDDDDDDDDDDDDDD3333333333wwwwwwwwwjfffffUUUUUUDDDDTUEDDDDDDDDDDDDDDDD3333333333~wwwwwwwwffffjffffVUUUUUUDDDDUUUUEDDDDDDDDDDDD433333333333wwwwwwwwwwwjfffffffffVUUUUUUDDDDUUUUEDDDDDDDDDDDD433333333333~wwwwwwwwwwwwjfffffffffUUUUUUDDDDDUUUUEDDDDDDDDDDDD433333333333wwwwwwwwwwwwwjfffffffffUUUUUUDDTEDUUUUUDDDDDDDDDDDD433333333333wwwwwwwwwwwwwjffffffeUUUUUUUUDTUUUUUUUUEDDDDDDDDDDD433333333333}wwwwwwwwwwwwjffffffffVUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD333333333333}wwwwwwwwfffffffffVUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDD333333333333}wwwwwwwwfffffffffffUUUUUUUUUUUUUUUUUDDDDDDDDDDDD3333333333333wwwwwffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDD43333333333333~wwwwwfffffffffffffVUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333~wwwwwwzffffffffffffffffUUUUUUUUUUUUUEDDDDDDDDDDD43333333333333~wwwwwwwfffffffffffffffffVUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333~wwwwwwffffffffffffffffVUUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333~wwwwwffffffffffffffffffVUUUUUUUUUUUUUUEDDDDDDDDDDDD43333333333333~wwwwffffffffffffffffffffffUUUUUUUUUUUUUUUUDDDDDDDDDDDD43333333333333~wwwwffffffffffffffffffffVUUUUUUUUUUUUUUUUUDDDDDDDDDDDD33333333333333wwwwwffffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333wwwwffffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDD33333333333333~wwwffffffffffffffffffffUUUUUUUUUUUUUUUUEDDDDDDDDDDDDD4333333333333"~wwwfffffffffffffffffffVUUUUUUUUUUUUUUUUDDDDDDDDDDDDDD3"333333333#""~wwwfffffffffffffffffffUUUU$""TUUUUUUUUEDDDDDDDDDDDDDD#""2333333#"""~wwwffffffffffffffffffVUUUU"""BTUUUUUUUDDDDDDDDDDDDDD""""23333""""""~wwwwwfffffffffffffffVUUUeUU$""""TUUUUUUEDDDDDDDDDDDD"""""""333"""""""~wwwwwwwwgfffffffffffffUUUUUUfVU"""""BUUUEDDDDDDDDDDDD$"""""""""23#"""""""wwwwwwwwwwwgffffffffffffUUUUUUUUfVE""""""DDDDDDDDDDDDDDD"""""""""""""""""""""~wwwwwwwwwwwgffffffffffffffffVUUUUUUUefU$""""""BDDDDDDDDDDDDD""""""""""""""""""""""~wwwwwwwwwwwffffffffffffffffUUUUUUUUUUffU$"""""""DDDDDDDDDDDD$""""""""""""""""""""""wwwwwwwwffffffffffffffffffVUUUUUUUUUUUfVU$"""""""BDDDDDDDDD$""""""""""""""""""""""""wwwwwwwjfffffffffffffffffVUUUUUUUUUUUUfUU$""""""""BDDDDD$"""""""""""""""""""""""""""wwwwwwfffffffffffffffffffUUUUUUUUUUUUUUUUD""""""""""""D"""""""""""""""""""""""""""""jfffffffffffffUUUUUUUUUUUUUUUUUUUUUUUEDDD#""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUDDDD$"""BDUUUUUUEDDDDDB4""""""""""""""""""""""UUUUUUUUUUUUEDDDBDDD$""DDD""DTEUUUUUUDDDD$$"""""""""""""""""""UUUUUUUUUUUUEDD"""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUEDDDDDDD$""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUDDDDD$""""""""""""""""""""""""""""""""""UUUUUUUEDDUUUUDDDD$"""""""""""""""""""""""""""""""""UUUUUUUEDDDDDDDDDD$"""""""""""""""""""""""""""""""""UUUUUEDDDDDDDDDD$""""""""""""""""""""""""""""!""""UUUUEDDDDDDDDDDD$"""""""""""""""""""""""""""""""UUUUEDDDDDDDDDDDD$"""""""""""""""""""""""""""""UUUUUUUEDDDDD"DDDD"""""""""""""""""""""""""""""UUUUUUEDDDDDD$""""""""""""""""""""""""""""""""UUUUUUUDDDDDD$"""""""""""""""""""""""""""""UEDDDD$"B""DD$""""""""""""""""""""""""""UEDDD""D$"BDDDDDDD""""""""""""""""""""UUU$"DDDBDDDD"""""""""""""""""""""""""""""UED""""DDDD$""""""""""""""""""""""""""""""""UUE$"BDDDD""""""""""""""""""""""""""""""""DUDDDDDDDDD$""""""""""""""""""""""""""""""""DDDDDDDDDDD""""""BD""""""""""""""""""""""""""D$"DDD"DDBDDDDD"BD$"""""""""""""""""""""!DDDDDDDDDDDDDD$""""""""""""""""""""""""DDDDDDDDDDDDDD$"""""""""""""""!"""""""""""""DBDDTDDDDDDD$"""""""""""""""""""""""""""""""""""BD$"DD$"""""""""""""""""""""!"""""""""""$""""""""""""""""""""""""""""!""""DDDDD""""""""""""""""""""""""""!"""""""DDEDDDDDD""""""""""""""""""""""""""""""""DDDDDDDDD$"""B""""""""""""""""""""""""""""""DDDDDD$"""""""""""""""""""""""""""""""""DDDD$"""DDD"""""""""""""""""""""""""""!DDDDDD$""B$""""""""""""""""""""""""DDDDDD$"""""""""""""""""""""""""""""""BDDDD""""""""""""""""""""""""""BD"BDDD$"""""""""""""""""""""""""DDDD"B""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""!""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""!""!"""""""""""""""""""""""""""""""""""""""""""""̼YUUUUUUUUUUUUUUUU5333333333333333333333333333333̼YUUUUUUUUU333333333333333333333333333μUUUUUUUUUU533333333333333333333333333̻UUUUUUUUUUU33333333333333333333333333UUUUUUUUUUUU3333333333333333333333333μUUUUUUUUUUUUU533333333333333333333333̼UUUUUUUUUUUUUU33333333333333333333333̼YUUUUUUUUUUUUUU3333333333333333333333̻YUUUUUUUUUUUUUUU533333333333333333333̻YUUUUUUUUUUUUUUUU33333333333333333333̻YUUUUUUUUUUUUUUUU33333333333333333333̻UUUUUUUUUUUUUUUU53333333333333333333̻UUUUUUUUUUUUUUUU53333333333333333333̻UUUUUUUUUUUUUUU53333333333333333333̼UUUUUUUUUUUUUUU3333333333333333333̻YUUYUUUUUUUUUU3333333333333333333̼UUUUUUUUUUUU33333333333333333̻UUUUUUUUUUUUU3333333333333333̻YUUUUUUUUUUUUUUSUUUU333333333̻YUUUUUUUUUUUUUUUUU5333333333̻UUUUUUUUUUUUUUUUU533333SU33ݻUUUUUUUUUUUUUUUUU5333SUUU33ݽUUUUUUYUUUUUUUUUU5333UUUU33ݽUYUUUUUUUUUUU33SUUUU33ݽfffUUUUUUUUUUUUU33SUUU533ݽffffYUUUUUUUUUUUUU53UUUU333ݻkffffUUUUUUUUUUUUUU53SUU5333ݽݻffffYUUUUUUUUUUUUUUUUSUUU3333ꪪݽݻffffUUUUUUUUUUUUUUUUUUU33U53333ݽ{ffffUUUUUUUUUUUUUUUUUUUU533333333wwwwffffUUUUUUUUUUUUUUUUUUUUUU533333333wwwwgffffYUUUUUUUUUUUUUUUUUUUUUUU5333333333ꪪ}w}}wwgffffYUUUUUUUUUUUUUUUUUUUUUU533333333333}w}wwgffffUUUUUUUUUUUUUUUUUUUUUUU533333333333}www}wwfffffYUUUUUUUUUUUUUUUUUUUUUUU533333333333}wwwwwwgffffffUUUUUUUUUUUUUUUUUUUUUUUU533333333333}}wwwwwwwfffffffYUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwfffffffUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwgfffffffUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwwwffffffffUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwwffffffffUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwfffffffffYUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwgffffffffYUUUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwwfffffffffYUUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwwfffffffffUUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwgfffffffffYUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwfgfffffffffUUUUUUUUUUUUUUUUUUU3333333333333wwwwwwwwwwgfffffffffffffUUUUUUUUUUUUUUUUUU53333333333333wwwwwwwwwwffffffffffffffUUUUUUUUUUUUUUUUUU53333333333333wwwwwwwwfffffffffffffffYUUUUUUUUUUUUUUUUUU53333333333333wwwwwwwgfffffffffffffffUUUUUUUUUUUUUUUUUUU53333333333333wwwwwwffffffffffffffffYUUUUUUUUUUUUUUUUUUU53333333333333wwwwwgffffffffffffffffUUUUYUUUUUUUUUUUUUUUUUUU53333333333333wwwwwfffffffffffffffYED"BUUUUUUUUUUUUUUUUUUUUU53333333333333wwwwgfffffffffffffYD"""TYUUUUUUUUUUUUUUUUUUUU53333333333333wwwwgfffffffffffffE$"""RYUUUUUUUUUUUUUUUUUUUUU53333333333333wwwwffffffffffffE"""""UUUUUUUUUUUUUUUUUUUUUUUED333333333333wwwgfffffffffffiYD"""""TUUUUUUUUUUUUUUUUUUUEDDDD3333333333#"wwwgffffffffffiY$"""""RUUUUUUUUUUUUUUUEDTUDDDDD$""""2333"""wwwwgffffffffffYE$""""""UUUUUUUUUUUUUUUDDTEDDDDD$""""23"""""wwwwwwwwgfffffffffifYE$""""""TUUUUUUUUUUUUUEDDDDDDDDD$""2""""""""wwwwwwwwwwgfffffffffifYD"""""""RUUUUUUUUUUUUUDDDDDDDDDD$""33"""""""wwwwwwwwwwwgffffffffffffYD""""""""UUUUUUUUUUUUDDDDDDDDDDD""""""""""""wwwwwwwwwwgfffffffffffffifYD""""""""RUUUUUUUUUUDDDDDDDD$"""""""""""""""wwwwwwwwwgffffffffffffffUfYD"""""""""UUUUUUUDDDDDD$""""""""""""""""""""wwwwwwwgffffffffffffffffUD"""""""""2UUUDDDDDDDD$"""""""""""""""""""""wwwwwwwffffffffffffffYE$"""""""""""BDDDDDD$"""""""""""""""""""""""wwwwwffffffffffffUUUUD$""""""""""DDDDD$""""""""""""""""""""""""YUUUUUUUUUUUUYUUUEDD$"""""""""""""""""""""""""""""""""""""""""YUUUUUUUUUUUUUUUEDDDDDDDUYUUUEDD$""""""""""""""""""""""""""""""""""""""""""YUUUUUUUUEDDDDDDDDDDDUUDUUUUUUUUUUEDDDDDDDD""""""""""""""""YUUUUUUUUUUDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDDD$""""""""""""""""""""""""""YUUUUUUUUUUUUUUEDDDDDDD""""""""""""""""""""""""""""YUUUUUUUUUUUUUUDDDDDDD$"""""""""""""""""""""""""""YUUUUUUUUUUTUUUEDDDDDD""""""""""""""""""""""!"""""UUUUUUUUUUUETUUEDDDDD$""""""""""""""""""""""!"UUUUUUUUUUUTUUEDD$""""""""""""""""""""""""""!"YUUUUUUUUUUDDUEDDD$"""""""""""""""""""""""""""""YUUUUUUUUUUEDDDDDD""""""""""""""""""""""""""""UUUUUUUUUTUUDD$"DD"""""""""""""""""""""""""""UUUUUUDUUDDUDDDD$""""$""""""""""""""""""""UUUE$""""DTUEDDDDDDD"""""""""""""""""""""UUUDUUDDDTEDDDDDDD""""""""""""""""""UU$""DDDUUUD$""""""""""""""""""""""""""""""UUEDDTEUUDD"""$"BDD$""""""""""""!""""""""""UUUUUUUUEDD$""D"""D$""""""""""""""""""""UUUUUUUUUDD$""D"BDD$""""""""""""""""""""""EDTUUDTDDDDDDDDDDDD""""""""""""""""""""""""DDDTUDTEDDUDUUDDDD$"""""""""""""""""""UUUUUUUEDTUUUU$"$"""""""""""""""""""""""EUUUUUUUTUUUED"""""""""""""""""""""""""""""""$DDTEDUDDDTD""""""""""""""""""""""""""""""""B$""""""""""""""""""""""""!""""DUED$""""""""""""""""""""""""""""""""""""UUUUUDDD""""D$"""""""""""""""""!"""""""UUUUUUUE"""DDD$"""""""""""""""""""""""""""UUUUUE$"B$""B$""""""""""""""""""""""""""""""UUUEDDDDDD"""""""""""""""""""""!"""""!"UUUEDDDDDDDD"$""""""""""""""""""""!EDD$DDD"""""""""""""""""""""""""""""BD""BDDD"""""""""""""""""""""""""DDDDDDDDD"""""""""""""""""""""""""DDDDDDDD$""""""""""""""!"""""""DDDDDD""""!"""""!""""BD""""""""""""""""""""""""""""D""B$""""""""""""""""""""""""""""""!""""""""""""""!"""""""""""!""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""̬YUUUUUUUUUUUUUUU3333333333333333333333333333333333̬̬YUUUUUUUUU33333333333333333333333333̬YUUUUUUUUUU3333333333333333333333333̬YUUUUUUUUUU3333333333333333333333333̪UUUUUUUUUUUU333333333333333333333333̪UUUUUUUUUUUUU33333333333333333333333̬YUUUUUUUUUUUUU53333333333333333333333̬UUUUUUUUUUUUUUU3333333333333333333333̬UUUUUUUUUUUUUUUU333333333333333333333̪YUUUUUUUUUUUUUUU533333333333333333333̪UUUUUUUUUUUUUUUU33333333333333333333̬UUUUUUUUUUUUUUUU33333333333333333333̬YUUUUUUUUUUUUUU33333333333333333333̬YYUUUUUUUUUUUUU53333333333333333333̬UUUUUUUUUU53333333333333333333̪UUUUUUUUUU53333333333333333333̬YUUUUUUUUUUUUU3333333333333333̬UUUUUUUUUUUUUU333333333333333̪UUUUUUUUUUUUUUUUUU3333333333̬YUUUUUUUUUUUUUUUUU3333333333̬YUUUUUUUUUUUUUUUUU33333SUU33̪UUUUUUUUUUUUUUUUU333SUUUU33̪YUUUUUUUUUU333UUUUU33̪zwUUUUUUUUUUUU333UUUU533wzwwYUUUUUUUUUUUU53SUUUU333wwwwwwwwYUUUUUUUUUUUUU3SUUUU333ݻۻwwwwwwwwwwwYUUUUUUUUUUUUUU3SUUU5333ݻwwwwwwwwwwUUUUUUUUUUUUUUUUUUU33UU53333ݻwwwwUUUUUUUUUUUUUUUUUUUU533UU33333ݻۻwwYUUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUU3333333333wwwwwwwwwwYUUUUUUUUUUUUUUUUUUUUUUUUU3333333333wwwwwwwwwwYUUUUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwwwYUUUUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwwwYUUUUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwjYUUUUUUUUUUUUUUUUUUUUUU3333333333333~wwwwwwwwjffUUUUUUUUUUUUUUUUUUUUUUU3333333333333~wwwwwwwwwwwwwjffffUUUUUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwwwwwwjfffffUUUUUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwwwwwwffffffUUUUUUUUUUUUUUUUUUUUUUU5333333333333~wwwwwwwwwwwwjfffffUUUUUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwwzwwjfffffYUUUUUUUUUUUUUUUUUUUUUU3333333333333wwwwwwwffffffYUUUUUUUUUUUUUUUUUUUUUU3333333333333wwwwwwwffffffYUUUUUUUUUUUUUUUUUUUUU3333333333333~wwwwwwffffffYUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwfffffffUUUUUUUUUUUUUUUUUU33333333333333wwwwwwjffffffffYUUUUUUUUUUUUUUUUU533333333333333wwwwwwjfffffffffYUUUUYUUUUUUUUUUUUUUUUU533333333333333wwwwwwfffffffffffYD$"BUUUUUUUUUUUUUUUUUU533333333333333~wwwwwfffjffffffffffE$"""UYUUUUUUUUUUUUUUUUUU533333333333333~wwwwjffffffffffffffffE$"""TYUUUUUUUUUUUUUUUUUUU33333333333333~wwwfffffffffffffffD""""RUUUUUUUUUUUUUUUUUUUU33333333333333뾻~wwwwffffffffffffffYYD"""""UYUUUUUUUUUUUUUUUUUUUU33333333333333wwwwgfffffffffffffYE$"""""TUUUUUUUUUUUUUUUUUUUUUU33333333333333wwwwgfffffffffffYE""""""RUUUUUUUUUUUUUUUUUUUUUU33333333333333wwwwfffffffffffiUD"""""""UUUUUUUUUUUUUUUUUUUUUU33333333333333~wwwwfffffffffffED"""""""UUUUUUUUUUUUUUUUUUUDTDD4333#3333333"~wwwwwffffffffffE$"""""""TUUUUUUUUUUUUUUUDUUDDDD33"""33333#""~wwwwwwwwffffffffffiD$"""""""RUUUUUUUUUUUUUUDDUDDDDDD"""""23#""""~wwwwwwwwwwwgffffffffD$"""""""RUUUUUUUUUUUUUUDDDDDDDDD""""""""""""~wwwwwwwwwwwwwffgffffffffE"""""""""UUUUUUUUUUUUUEDDDDDDDDD""""""""""""wwwwwwwwwwwfffffffffffffiE"""""""""RUUUUUUUUUUUUDDDDDDDDD"""""""""""""wwwwwwwwfffffffffffffffE""""""""""UUUUUUUUUDDDDDDDD$BD""""""""""""""wwwwwwwfffffffffffffffE""""""""""BUUDUUUDDDDDDD""""""""""""""""""""wwwwwwjffffffffffffffiUD"""""""""""BDDDDDDDDD$"""""""""""""""""""""jfffffffffffffUUUUED$""""""""""BDDDDDD$"""""""""""""""""""""""YUUUUUUTUDD"""""""""""""BDDDD$""""""""""""""""""""""""UUUUUUUUUUUUUUUUUEDDDDDTYUEDDD""""""""""""""""""""""""""""""""""""""""""""YUUUUUUUUDDDDDDDDDDDUUUUUUUUUUUUUDDD""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUDDDDDDDDDDDDDD"""DDDDDDDDDD""""""""""""""""""""""YUUUUUUUUUUUUUUDDDDDDDD$"""""""""""""""""!""UUUUUUUUUUUUUUUDDDDDDDD$"""""""""""""""""""""""""YUUUUUUUUUUUUUUEDDDDDDDD$""""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDDDDD""""""""""""""""""""""""""UUUUUUUUUUDTUUEDDDDDD""""""""""""""""""""""""UUUUUUUUUUUUUUUD$B$""""""""""""""""""""""""""UUUUUUUUUUUUUUDDDD$""""""""""""""""""""""""""""!"UUUUUUUUUUUDDDDTDD""""""""""""""""""""""""""""UUUUUUUUUUUEDDDDD$"""""""""""""""""""""""""""UUUUUDDDDDUUDD$"""""B""""""""""""""""""""""""UUUD""D"BDUUDDDD$"""B"""""""""""""""""""""UUETEDDDDUUUTUEDDD""""""""""""""""""""""UD$"BDDTUUUDDD$""""""""""""""""""""""""!""UUDDTUDTEDDD$D""DD$"""""""""""""""""""""""UUUUUUDUEDD$""$"""D""""""""""!"""""""UUUUUUUUDD$""B$"DDD""""""""""""""""""""""DDTUDDDDDDDDDDDDDDD"""""""""""""""""""""""""DDTUEDUUDTUUUUDDDD"""""""""""""""""""""UUUUUUUEDTUUUE$BD$"""""""""""""""""""DUUUUUUUDTUUED"""""""""""""""""""""""""""""""DDTDDDDDDUE$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""UEDD"""""""""""""""""""""""""""""""UUUUEDD$"""D"""""""""""""""""""""""""""UUUUUEUD""BDDD$""""""""""""""""""""""""UUUUED$"D$"""""""""""""""""""""""""""""""""UUUEDDDUD$"""""""""""""""""""""!"""""""""UUUEDTTUDD$"BD""""""""""""""""""""!""DD""DD""DDD$B$""""""""""""!"""""""""""BD""BDD$BD"""""""""""""""""""""""DDDD$DDDDD"""""""""""""""""""""""""DDDDDDDDD""""""""""""""""""""""DDDDDD"$""!""""""""""""""""BD"""""""""""""""B$"""""""""""""""D"""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""!""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""!"[UUUUUUUUUUUUUUUU533333333333333333333333333333333̬[UUUUUUUUUUUU53333333333333333333333333̪UUUUUUUUUUUUUU333333333333333333333333̬UUUUUUUUUUUUUU533333333333333333333333̬UUUUUUUUUUUUUUU33333333333333333333333̬UUUUUUUUUUUUUUU33333333333333333333333̬UUUUUUUUUUUUUUU53333333333333333333333̬UUUUUUUUUUUUUUUUU333333333333333333333̬UUUUUUUUUUUUUUUUUU53333333333333333333̬UUUUUUUUUUUUUUUUUU53333333333333333333̬UUUUUUUUUUUUUUUUUUU3333333333333333333̪UUUUUUUUUUUUUUUUUUU3333333333333333333̬[UUUUUUUUUUUUUUUUUU3333333333333333333̬[UUUUUUUUUUUUUUUUU5333333333333333333̬UUUUUUUUUUUUUUUUUU333333333333333333̪[UUUUUUUUUUUUUU5333333333333333333̪[U[UUUUUUUUUUUUUU333333333333333̬[UUUUUUUUUUUUUUU33333333333333̬UUUUUUUUUUUUUUUUUUUU333333333̬[UUUUUUUUUUUUUUUUUU333333333̬[UUUUUUUUUUUUUUUUUU33333SUU3̪kVUUU[UUUUUUUUUUUUUUUUUU333SUUUU3̬kffUUUU[UUUUUUUUUUUUUUUUUU333UUUUU3̪kkfVUUUUUUUUUUUUUUUUUUUUUUU33SUUUU53̪fkfffkfffVUUUUUUUUUUUUUUUUUUUUUUUU53SUUUU53̬fffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUUU3SUUUU33̮fffffffkfffUUUUUUUUUUUUUUUUUUUUUUUUUUU3SUUU533gfffffffffVUUUUUUUUUUUUUUUUUUUUUUUUUUU3SUU5333wwwwwwwwwgfffffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUU33UU3333w~wwwwwwfffffffffVUUUUUUUUUUUUUUUUUUUUUUUUUUU533333333wwwwwwwwwwwwfffffffffVUUUUUUUUUUUUUUUUUUUUUUUUUUU533333333wwwwwwwwwwwwgfffffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUU333333333wwwwwwwwwwwwgffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwfffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333~wwwwwwwwwwwfffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333~wwwwwwwwwwwgfffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333}wwwwwwwwwwwwffffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333~wwwwwwwwwwwwwwfffffffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU53S333333333}wwwwwwwwwwwwwffffffffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwgffffffffffffffffUUUUUUUUUUUUUUUUUUUUUUUUUU533333333333鞙~wwwwwwwwwwwwwgffffffffffffffffVUUUUUUUUUUUUUUUUUUUUUUUUU533333333333~wwwwwwwwwwwwwfffffffffffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwwgffffffffffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwwgfffffffffffffVE$"DTUUUUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwffffffffffffffVD"""BUUUUUUUUUUUUUUUUUUUUUUUU533333333333}wwwwwwwwwwgffffffffffffffffVD""""UUUUUUUUUUUUUUUUUUUUUUU5333333333333}wwwwwwwwwwfffffffffffffffffU$""""UUUUUUUUUUUUUUUUUUUUUUU3333333333333}wwwwwwwwwgfffffffffffffffffE$""""RUUUUUUUUUUUUUUUUUUUUUU3333333333333}wwwwwwwgfffffffffffffffffUUE"""""RUUUUUUUUUUUUUUUUUUUUUU3333333333333}wwwwwwfffffffffffffffffffUUD""""""UUUUUUUUUUUUUUUUUUUUU53333333333333}wwwwwgfffffffffffffffffffED$""""""RUUUUUUUUUUUUUUUUUUUUU3333333333333}wwwwgffffffffffffffffffVED"""""""RUUUUUUUUUUUUUUUUUUUUU5333333333333}wwwwfffffffffffffffffffVED"""""""BUUUUUUUUUUUUUUUUUUUUU3333333333333wwwwfffffffffffffffffffVD$""""""""UUUUUUUUUUUUUUUUUUUUU3333333333333wwwwgffffffffffffffffffVD"""""""""UUUUUUUUUUUUUUUUUUUUU3333333333333wwwwffffffffffffffffffvVD"""""""""UUUUUUUUUUUUUUUUUUUUU5333333333333}wwwwfffffffffffffffffffVD"""""""""RUUUUUUUUUUUUUUUUUEDDDD333#3333333}wwwwwfffffffffffffffffffVD"""""""""RUUUUUUUUUUUUUUDUUDDDD33"""23333#"}wwwwwwwwwfffffffffffffffffffVD"""""""""2UUUUUUUUUUUUUEDUDDDDDD$""""23#"""wwwwwwwwwwwwgfffffffffffffffffffVE""""""""""UUUUUUUUUUUUUDDDDDDDDD"""""""""""wwwwwwwwwwwwwgvgffffffffffffffffUffffE""""""""""SUUUUUUUUUUUEDDDDDDDDD$""""""""""wwwwwwwwwwwwfffffffffffffffffffffVUUffffE""""""""""RUUUUUUUUUUUDDDDDDDDD""""""""""""wwwwwwwwwfffffffffffffffffffffffUUUefffVE"""""""""""SUUUUUUUDDDDDDDDDDD"""""""""""""wwwwwwwgfffffffffffffffffffffVUUUefffffVE$"""""""""""DTUUUDDDDDDD"""""""""""""""""""wwwwwwgfffffffffffffffffffffVUUUUffffVUUUED"""""""""""BDDDDDDDD$""""""""""""""""""""fffffffffffffffffffffffffffVUUUUffffVUUUUED""""""""""""BDDDDD$""""""""""""""""""""""fffffVUUUfUUUUUUUUUUUfVUUUUUUUUfffffUEDED$""""""""!""""DDDD$"""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUDTUUfffUUUEDD$"""""""""!"""""$"""""""""""""""""""""""""UUUUUUUUUUUUDDDDDDDDDDTUUUUUUUUUUUUUUUDD$""""""""!"""""""""""""""""""""""""""""""UUUUUUUUUUUUUDDDDDDDDDDDDDDDDDDTUUTUDDDDDDD"""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUDDDDDDDD""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUDDDDDDDD"""""""""""""""""UUUUUUUUUUUUUUUUEDDDDDDD$""""""""""""""""""UUUUUUUUUUUUUUUUDDDDDDDB""""""""""""""""""""UUUUUUUUUUUDDUUUDDDDDD""""""""""""""""""""""UUUUUUUUUUUUUUUUDDBD$"""""""""""""""""""""""!"UUUUUUUUUUUUUEUEDDDD"""""""""""""""""""""""""UUUUUUUUUUUUUDDDDDDD$"""""""""""""""""""""""""UUUUUUUUUUTUUEDDDDD$""""""""""""""""""""""""""UUUUUEDDDDDUUED$""""""""""""""""""""""""""""""UUUUEDBD""DUUEDDDD$B"""""""""""""""""""""""!UUUUEETEDDUUUEDUDDD$""""""""""""""""""""""UUUEDDTUUUUUDDDD""""""""""""""""""""""""""UUUUUUUEDUEDDDDD"DDD"""""""""""""""""""""""UUUUUUDDUU$""""""""B$""""""""""""""!"UUUUUUUUE$""""D$"BDD$""""""""""""""""""""UE$DTE$DDDDDDDDDDDDD"""""""""""""""""""""""""UEDUUUUUUDTUUUUDDDD$""""""""""""""""""""""UUUUUUUUEDBTUUUD"DD""""""""""""""""""""DDTUUUUEDDDDTUD$""""""""""""""""""""""""""!"""B$"DDDDDDDDD"""""""""""""""""""""""""""""""""B$"""""""""""""""""""""""""""""""""""""UUUEDDD"""""""""""""""""""""""""!"UUUUUUUED$"BDDB"""""""""""""""""""""""""UUUUUUEDD$""DDDD""""""""""""""""""""""""UUUUED$"$BD""""""""""""""""""""""""""""""""UUUUUDDUUU$""""""""""""""""""""""""""""""UUUEUEDDTDDDD"B$"""""""""""""""!"!""$"""""B$"DDD"""""""""""""""""""""""""""""DDDDDDD""DD""""""""""""""""""""""BDDDDD"DDDD$""""""""""""""""""""""""BDDDDDDD$""""""""""""!""""""""D$""DDD$""""!""""""!""""""D"""BD"""""""""""""!""""!"DD""B$"""""""""""""DD"""D""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""!"""!"""""!""""""""""""""""""!""""""""""""""""""!"""̼YUUUUUUUUUUUUUUUUUUU33333333333333333333333333333333333̼UUUUUUUUUUUUUUUU5333333333333333333333333ݪ̼UUUUUUUUUUUUUUUUUU33333333333333333333333ݪ̻YUUUUUUUUUUUUUUUUU53333333333333333333333̼UUUUUUUUUUUUUUUUUU3333333333333333333333̼UUUUUUUUUUUUUUUUUU5333333333333333333333̼˻YUUUUUUUUUUUUUUUUUU533333333333333333333̼YUUUUUUUUUUUUUUUUUUU33333333333333333333̼UUUUUUUUUUUUUUUUUUUU5333333333333333333̼UUUUUUUUUUUUUUUUUUUU5333333333333333333̻UUUUUUUUUUUUUUUUUUUUU333333333333333333̼UUUUUUUUUUUUUUUUUUUUU533333333333333333̼YUUUUUUUUUUUUUUUUUUUU533333333333333333̻YUUUUUUUUUUUUUUUUUUU533333333333333333̻UUUUUUUUUUUUUUUUUUUU33333333333333333̻UUUUUUUUUUUUUUUUUUU33333333333333333̻UUUUUUUUUUUUUUUUUUUUUUU53333333333333̻YUUUUUUUUUUUUUUU5333333333333̻YUUUUUUUUUUUUUUUUUUU33333333̼UUUUUUUUUUUUUUUUUU33333333ʼfeUUUUUUUUUUUUUUUUUU333333UUʻiVUUUUUUUUUUUUUUUUUUUUUU3333UUUU̼iffUUUUUUUUUUUUUUUUUUUUUUU333UUUUU̻ffUUUUUUUUUUUUUUUUUUUUUUUU533UUUUUfVUUUUUUUUUUUUUUUUUUUUUUUUU3SUUUU5zwzwwifUUUUUUUUUUUUUUUUUUUUUUUUUU3SUUUU3wwwwwwwwwwwwwwwwwwwifVUUUUUUUUUUUUUUUUUUUUUUUUUU3SUUU53wwwwwwwwwwwwwwwwwwwwwffUUUUUUUUUUUUUUUUUUUUUUUUUUU33UUU33wwwwwwwwwwwwwwwwwwwwwwwwwfVUUUUUUUUUUUUUUUUUUUUUUUUUUU333S533wwwwwwwwwwwwwwwwwwwwwwwwwffUUUUUUUUUUUUUUUUUUUUUUUUUUU53333333wwwwwwwwwwwwwwwwwwwwwwwwfiffUUUUUUUUUUUUUUUUUUUUUUUUUUU33333333wwwwwwwwwwwwwwwwwwwwwwwwififVUUUUUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwwwwwwwwwwwwwwwififVUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwwwwwwwiffffUUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwwwwwwiffffUUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwwwwiffffUUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwww뙙iiffffffVUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwfffffffffffUUUUUUUUUUUUUUUUUUUUUUUUUU3333333333wwwwwwwwwwwwwwwwiifffffffVUUUUUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwfffffffffVUDTUUUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwfffffffffVE""DUUUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwfffffffffVE""""UUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwifffffffffV$""""TUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwifffffffffU$""""RUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwifffffffffU$""""RUUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwifffffffffVVE""""""UUUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwwiffffffffffUUD""""""UUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwwffffffffffVED$""""""RUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwwiffffffffffVDD"""""""BUUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwffffifffffffffffVD$""""""""UUUUUUUUUUUUUUUUUUUUU333333333333wwwwwwwwwwwwifffffffffffffffffVD"""""""""UUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwwwwwwffffffffffffffffffV$"""""""""UUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwwww~wwifffffffffffffffffV$"""""""""SUUUUUUUUUUUUUUUUUUUU533333333333wwwwwwifffffffffffffffffV$"""""""""SUUUUUUUUUUUUUUUUUUUU533333333333wwwwiffffffffffffffffffV$"""""""""RUUUUUUUUUUUUUUUUUUUU533333333333wwwwffffffffffffffffffffU$"""""""""RUUUUUUUUUUUUUUUUUUUU533333333333wwwiffffffffffffffffffU$"""""""""2UUUUUUUUUUUUUUUUUEDDD43333#""333wwwiffffffffffffffffifUD""""""""""UUUUUUUUUUUUUUDUUDDDD43"""""""""wiffffffffffffffffifUD""""""""""UUUUUUUUUUUUUEDTEDDDDD$"""""""""niffffffffffffffffiffD""""""""""RUUUUUUUUUUUUDDDDDDDCD$"""""""""ifffffifffffffffffffffVeiffD""""""""""RUUUUUUUUUUUEDDDDDDDDDD$""""""""iffffffffffffffffffffffVUfifVD"""""""!"""UUUUUUUUUUUDDDDDDDDD$""""""""""fffffffffffffffffffffffUUfffffVD$""""""""""2TUUUUUEDDDDDDDDD$D""""""""""""fffffffffffffffffffffVUUefffffUUUD""""""""""""BDDDDDDDDD$""""""""""""""""""ifffffffffffffffffffffUUefffffUUUUE$""""""""""""DDDDDDD"""""""""""""""""""""fffffffffffffffffffffffVUUUfffffUEDUD$""""""""""""""DDDDD""""""""""""""""""""""UVUUVUUUUUUUUUUUUUUUUUUUUUUUUUUeffffVUDDD$"""""""!"""DDDD$""""""""""""""""""""""UUUUUUUUUUUUUUUUEDUUUUETUDDDDTUfffUUUUD""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUEDDDDDDDDDDTUUUUUUUUUUUUUEDD""""""!"""""""""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDDDDDDDD""""BDDDDDD$""""""""""""!""""""!"""""UUUUUUUUUUUUUUUUUUUDDDDDDD$"""""""""""""""""UUUUUUUUUUUUUUUUUUDDDDDDD"""""""""""""""""UUUUUUUUUUUUUUUUUUDDDDDDD""""""""""""""""""UUUUUUUUUUUUUUUUUDDDDDD$"""""""""""""""""""UUUUUUUUUUUEDDUUEDDDDDD""""""""""""""""""""UUUUUUUUUUUUUUUUEDDBD"""""""""""""""""""""""!"UUUUUUUUUUUUUUEDDDDDD$""""""""""""""""""""""!"UUUUUUUUUUUUUUDDDDDDD$"""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDD$"""""""""""""""""""""""UUUUUDDDBDDDDUEDDDD"$"B$""""""""""""""""""""UUUUUDDDDDDTUUUDDEDDD""""""""""""""""""""""UUUUUDDTUUUUDDEDDDDD"""""""""""""""""""""""UUUUUDTUUUUUUEDD$"BD"""""""""""""""""""""""UUUUUUUUDDUDBD""""BDDDD$"""""""""""""""UUUUUUUETUE"""""$"""D"""""""""""!"UUUUUUTDTD"""BDD$BDD$"""""""""""""""""""""TUE$DDEDDDDDTDDUDDDD$""""""""""""""""""""""""TUUUUUUUUUEDUUUUDDDD""""""""""""""""""""UUUUUUUUED$"DUUE$BD"""""""""""""""""""!"$""TUUEUDDDDDTD$"""""""""""""""""""""""""""""""B"""BDTDDDD$""""""""""""""""""""""""""""BDDD$""""D"""$"""""""""""""""""""!!"""TUUUEDDDDD"""$"""""""""""""""""""!""!"UUUUUUUUDD$"DDDDD""""""""""""""""""""""""UUUUUED$"D"""D$""""""""""""""""""""""""""UUUUUD""BDD$""""""""""""""""""""""""""""""UUUUUUUUUUUD"""BD$"""""""""""""""""""""EDDDUEDDDDUE$""B$"""""""""""!"""""""""$"""""""$""BD"""""""""""""""""""""""DDDDD""""""BD""""""""""""""""""""""BDDD$"BDDD"""$"""""""""""""""""DDDDDDD"""""""""""""""""D$"""B$""""""""""""!!"""""D"""""""""""""""""""""!"""""""""DDDD"""""""""""""""""""""""!""DDD$"""""""""""""""""""""""""""""""""DDDD""""""""""""""""""""""""""""""!"""""""""""""""""!"!""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""!"""""""""!""""!"""!"""""""""""""""!""""""""""""""""""""""""""""""""""""!"""""ݼ̼UUUUUUUUUUUUUUU333333333333333333333333333333333ݻ[UUUUUUUUUUUUU533333333333333333333333ݻ[UUUUUUUUUUUUUU5333333333333333333333ݻUUUUUUUUUUUUUU5333333333333333333333ݽUUUUUUUUUUUUUUU333333333333333333333ݽ[UUUUUUUUUUUUUU533333333333333333333̽[UUUUUUUUUUUUUUU53333333333333333333̻[UUUUUUUUUUUUUUUU5333333333333333333̼[UUUUUUUUUUUUUUUUU533333333333333333̼[UUUUUUUUUUUUUUUUUU33333333333333333̻[UUUUUUUUUUUUUUUUUU33333333333333333̻[UUUUUUUUUUUUUUUUUU53333333333333333̻[U[UUUUUUUUUUUUUUUU53333333333333333̼UUUUUUUUUUUUUUUUU3333333333333333̻UUU[UUUUUUUUUUU3333333333333333̻[U[UUUUUUUUUUU5333333333333333̻UUUUUUUUUUUUUUU333333333333̼UUUUUUUUUUUUUU533333333333̻UUUUUUUUUUUUUUUUUU3333333̼UUUUUUUUUUUUUUUUUU3333333̼ZUUUUUUUUUUUUUUUUU333SUUU̼̻ZUUUUUUUUUUUUUUUUU333UUUU̻ZUUUUUUUUUUUUUUU33SUUUUffkffZUUUUUUUUUUUU53UUUUUfffffffffUUUUUUUUUUUUUU3UUUUUwlfffffffZUUUUUUUUUUUUUUU3UUUUUwwlffffffffUUZUUUUUUUUUUUUUUUUUUU3UUUU5wwwwwwwwwwlffffffZUUUUUUUUUUUUUUUUUUUUUUU3SUU53wwwwwwwwwwww|wlffffffUUUUUUUUUUUUUUUUUUUUUUUUU333333wwwwwwwwwww|wwllfffffZUUUUUUUUUUUUUUUUUUUUUUUUUU333333wwwwwwwwwwffffffZUUUUUUUUUUUUUUUUUUUUUUUUU3333333wwwwwwwwwwlfffffffUUUUUUUUUUUUUUUUUUUUUUUU533333333wwwwwwwwwwwwwwwlffffffffUUUUUUUUUUUUUUUUUUUUUUUU333333333wwwwwwwwwwwwwwwwffffffffUUUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwwwwwwwwwwlffffffffffUUUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwwwwwwwwwfffffffffffUUUUUUUUUUUUUUUUUUUUUUUUUU3333333333wwwwwwwwwwwwwwwwwwlfffffffffffZE"DUUZUUUUUUUUUUUUUUUUUUUUUUUU53333333wwwwwwwwwwwwwwwffffffffffffZ$""DRZUUUUUUUUUUUUUUUUUUUUUUU333333333wwwwwwwwwwwwwwlffffffffffffZ$""""ZUUUUUUUUUUUUUUUUUUUUUUU333333333wwwwwwwwwwwwwfffffffffffffZ$""""UZUUUUUUUUUUUUUUUUUUUUUUU333333333wwwwwwwwwwwflffffffffffffffE"""""RUUUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwlffffffffffffjE"""""RUUUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwlffffffffffffjE"""""2UUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwwwwlfffffffffffffU$""""""TUUUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwwwwwwwwffffffffffffffZDE"""""""RUUUUUUUUUUUUUUUUUUU5333333333wwwwwwwwwwwwwwwwwffffffffffffffJD$"""""""BUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwllffffffffffffffJD"""""""""UUUUUUUUUUUUUUUUUUU33333333333wwwwwwwwwwwwwwwwwwlfffffffffffffffffffE$"""""""""UZUUUUUUUUUUUUUUUUUU33333333333wwwwwwwwwwwwwwwwwwlffffffffffffffffffffE""""""""""TUUUUUUUUUUUUUUUUUUUU33333333333wwwwwwwwwwwwwwwwwwwfffffffffffffffffffffE""""""""""TUUUUUUUUUUUUUUUUUUUU33333333333wwwwwwwwwwwwwwwwwwffffffffffffffffffffjE""""""""""TUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwfffffffffffffffffffE""""""""""TUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwffffffffffffffffffffE""""""""""SUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwfffffffffffffffffffffE""""""""""RUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwgffffffffffffffffffjE""""""""""RUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwffffffffffffffffffE$"""""""""2UUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwwwwwwfffffffffffffffffjfE$"""""""""2UUUUUUUUUUUUUUUUUEDDD33333#""33wwwwwwwwwwwwwwwwwffffffffffffffffffjfZ$""""""""""UUUUUUUUUUUUUDDTUEDDD43""""""""wwwwwwwwwwwwwwwwfffffffffffffffffjfZ$""""""""""SUUUUUUUUUUUUDDDDDD43#"""""""""wwwwwwwwwwfffffffffffffffffffffffffZ$""""""""""RUUUUUUUUUUUEDDDDDD4D""""""""""wwwwwwwlfffffffffffffffffffffffffZ$""""""""""2UUUUUUUUUUEDDDDDDDDDD$""3#""""wwwwwfffffffffffffffffffffffffZD"""""""""""2DTUUUUUEDDDDDDDDDDD$"""""""""wwwlfffffffffffffffffffffffffZU$""""""""""""BDUUUDDDDDDDDDD$""""""""""""ffffffffffffffffffffjfffZUZUD"""""""""""""DDDDDDDDD""""""""""""""""""lffffffffffffffffffjffZEDED$"""""""!""BDDDDD"""""""""""""""""""""fffffffffffffffffffjffUDDD$"""""""""""DDDD""""""""""""""""""""""ZUUUUZUUUUUUUUUUUUUDB$"""""""!"""DD$""""""""""""""""""""""UUUUUUUUEDDDDDUEDDDUUUUUZUD""""""""""""""""""""""""""""""""""""ZUUUUUUUUUDDDDDDDD$DDDTUUUUUUUUUUUDD$"""""""!"""""!""""""""""""""""""ZUUUUUUUUUUUEDDDDDDDDDDD"""""""""""""""""""""!""""UUUUUUUUUUUUUUUUUDDDDDDD$""""""""""""""ZUUUUUUUUUUUUUUUDDDDDDD"""""""""""""""""ZUUUUUUUUUUUUUUEDDDDDDD"""""""""""""""""UUUUUUUUUUUUUUUUUUDDDDDD$"""""""""""""""""""UUUUUUUUUUUUUUEUUEDDDDDD""""""""""""""""""""UUUUUUUUUUUUUUUUUEDD"$"""""""""""""""""""""""!UUZUUUUUUUUUUUDDDDDDD"""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDDDD$""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDDDD"""""""""""""""""""""""UUUUUEDD$BDDTUUDDDDD$"""""""""""""""""""""""UUUUUUDUDDDDUUUUUUEDD"""""""""""""""""""""""UUUUUEDDUUUUEDDDDDDD"""""""""""""""""""""""UUUUUUUUUUUUEUDDD$BDDD""""""""""""""""""""""UUUUUUUUDTUU$""""""""DD$"""""""!""""UUUUUUUUUUU$"""""D""D$"""""""""""""""UUUUUED$"DDDDDDDD$BDD$""""""""""""""""""""""DDDDDDUUUUUDDUUUUDDDD"""""""""""""""""""""""""UUUUUUUUUUUE$TUUEDDD$"""$"""""""""""""""UEDTUUUUUDD""DDDD$"""""""""""""""""""""""D"""DDDDEUDDDDD$"""""""""""""""""""""""""""""""""B""""DDDDDD"""""""""""""""""""""""""""""BDDUDD$""""BDD"""""""""""""""""""!DUUUUUTUDDD""DD""""""""""""""""""""""""TUUUUUUUD"D""DDDDD"""""""""""""""""""""""UUUUUUD"""""""""""""""""""""""""""""""""""UUUUUUEDDDDDD"B"""""""""""""""""""!""""""UUUUUUUUUUUUED$"BD$""""""""""!""""""""""EDD"DDDDD$BTED"""D""""""""""""""""""""""DD"""""""""""D"""""""""""""""""""!DBDDD$"""""BDD"""""""""""""!"!"""""BDD$"DDD$""""""""""""!"""""""""BDDDDD$""""""""""""!""!""DD""""""""""""""""""""!"""!""""!"""DD""""""""""""""""""""""""""""""""BDDDD"""""""""""""""""""""""""""""""""DDDDDD$B$"""""""""""""""""""""""""""""DDDDDD"""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""!!"""""""""""""""""""""""""""""""""""""""""""""""""""!""""""!""""""""""!"""""!""""""""""""""""""""""""""""""""""""!"""""""!"!"!"!"""! \ No newline at end of file diff --git a/Video 126p/video-02.bin b/Video 126p/video-02.bin new file mode 100644 index 0000000..f21d8f9 --- /dev/null +++ b/Video 126p/video-02.bin @@ -0,0 +1 @@ +ݻ333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwwwݽ93333DDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݻ333333CDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݽ3333333DDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݽ9333333CDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݽ3333333DDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݻ33333333DDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwݻ33333333CDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwݽ33333333DDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwݽ93333333CDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwݻ3333333CDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݻ3333333DDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwݽ9333333DDDDDDDDDDDDDDDwwwwwwwwwwwwwwwݻ3333333DDDDDDDDDDDDDDwwwwwwwwwwwwwwwݻ3333333CDDDDDDDDDDDDD|wwwwwwwwwwwwwwwwݻ33333333CDDDDDDDDDDDDwwwwwwwwwwwwwwwwݽ93333333333DDDDDDDDDDDwwwwwwwwwwwwwwwݽ933333333333DD3CDDDDDD|w|wwwwwwwwwwwwwwݽ333333333333333DDDDDDwwwwwwwwwwww3333333333333DDDD43|wwwwwwwww绻9333333333DD4333|wwwwwwwww933333333DD3333|wwwwww333333333D43333wwww33333333333333333www333333333333333333333333333333333333UU\U9333333333333333333U\UUUU3933333333333333333333\UUUUnff93333333333333333333333DDUUUUUfffff33333333333333333333333CDDUUUUUUUUUUUffff99333333333333333333333333CDD\UUUUUUUUUUUnffff3339333333333333333333333333CDDUUUUUUUUUUUUfnffff333399333333333333333333333333CDDU\UUUUUUUUUUUfffffffff93""2333333333333333333333333333CDD\UU\UUUUUUUUUUUffnfffffffffj:3""""233333333333333333333333333CDD\U\UUU\UUUUUUUUUUffffffffffffffffj:3"""""33333333333333333333333333CDDUUUUUUU\UUUUUUUUUoffffffffffffffff93"""""3933333333333333333333333333CDDUUUUUUU\UUUUofffffffffffffff9#"""""293333333333333333333333333343CDUUUUUUUUUUUUffffffffffffffffff3#"""""233333333333333333333333333DDDDDUUUUUUUUUUUoffffffffffffffffff3""""""233333333333333333333333333DDDDDUUUUUUUUUUUoffffffffffffffffff9#"""""""333333333333333333333333333DDDDDUUUUUUUUUfffffffffffffffffff933""""""""233333333333333333333333333DDDDD\UUUUUUUfffffffffffffffffffffi93#""""""""233333333333333333333333333DDDDD\\U\UUUUoffffffffffffffffffffffi:#""""""""""33333333333333333333333333DDDDD\UUUUUUoffffffffffffffffffffff9#""""""""""33333333333333333333333333DDDDD\UUUUUUUUUffffffffffffffffffffff9"""""""""""2333333333333333333333333CDDDDD\\UUUUUUUUUUfffffffffffffffffffffff3"""""""""""3333333333333333333333333DDDDDDUUUUUUUUUUUUUfffffffffffffffffffffff3"""""""""""333333333333333333333333DDDDDDDUUUUUUUUUUUUUUUofffffffffffffffffffff9"""""""""""33333333333333333333333CDDDDDDDUUUUUUUUUUUUUUUffffffffffffffffffffff9"""""""""""33333333333333333333333DDDDDDDDUUUUUUUUUUUUUUUfffffffffffffffffffff9"""""""""""3333333333333333333333CDDDDDDDDUUUUUUUUUUUUUUUffffffffffffffffffff9"""""""""""3333333333333333333333CDDDDDDDDUUUUUUUUUUUUUUUffffffffffffffffff3"""""""""""3333333333333333333333CDDDDDDDDUUUUUUUUUUUUUUUUffffffffffffffffff33"""""""""""4333333333333333333333CDDDDDDDDUUUUUUUUUUUUUUUUofffffffffffffffff933"""""""""""2333333333333333333333CDDDDDDDDUUUUUUUUUUUUUUofffffffffffffffff933#""""""""""2333333333333333333333CDDDDDDDDUUUUUUUUUUofffffffffffffffffi93#""""""""""23333333333333333333333DDDDD$"BUUUUUUUUffffffffffffffffff93#""""""""""23333333333333333333333DDDDD"""UUUUUUoffffffffffffffffffffff93#""""""""""B33333333333333333333DDDDD"""""UUUUUUfffffffffffffffffffffffff9#"""""""""""33333333333333333333DDD"""""""UUUUfffffffffffffffffffffffffif#"""""""""""433333333333333333D"""""""""""offfffffffffffffffffffffffjf#""""""""""""433333333333#""""""""""""$"""offfffffffffffffffffffffffff93#""""""""""""4333333333#"""""""""""""""""ffffffffffffffffffffffff93333#""""""""""""233333"""""""""""""""""""""nfffffffffffffffffffffffff333#""""""""""3333""""""""""""""""""""""fffffffffffffffffffffffif93""""""""""""23""""""""""""""""""""""""ff3#"""""""""!"B$""""""""""""""""""""""""3333333333333333333333393#"""""""!""""""""""""""""""""""""""93333333333333333333333333333333#""""""""""""""""""""""""""""""""933333333333333#"""""""""""33333333333#""""""""!""""3333333333333333333333#"""""""""""""""""""!"3333333333333333333333""""""""""""""""""333333333333333333333#"""""""""""""""""""993333333333333333333#"""""""""""""""""""3339333333333333333333#""""""""""""""""""""333333333333333333333""""""""""""""""""""""3333333333333333333#""""""""""""""""""""""""9333333333333333333#""""""""""""""""""""""""33333333333333333333""""""""""""""""""""""""33333333333333333"33#"""""""""""""""""""""""333333#23"33"333#"23#""""""""""""""""""""""333333""3"""23333333""""""""""""""""""""""333333#23333333#""""""""""""""""""""""""""333333333333333#""""""""""""""""""""""""""33333333#3333"""""""""""""""""""""""33333333#""3"""""""""""""""""""""!"""3333333"""3333333"""""""""""""""""""""""""33333333333333333#"#""""""""""""""""""""""3333333333333#233"""""""""""""""""""""""""33"333333333#"""""""""""""""""""""""""""""33"""3333#""""""""""!"""""""""""""""""""33#"2#"""""""""""""""""""""""""""""""!"333"33"2#"23#"""""""""""""""""""""!""2333333333""""""""""""""""""""""""""""""333333333#""""23""""""""""""""""""""""""333333#"""""""2#2#"""""""""""""""""""""""33333333333""2333#"""""""""""""""""""""""333333333333333"""""""""""""""""""""33"""""3#"""""""""""""""""""""""""""3""""33#"""""""""""""""""""""""""#"3333#""""""""""""""""""!"!"""""3""""""""""""""""""""""""""""""""""""""""""""""""33#"""""""""""""""""""""""""""!"""33""""""""""""""""""""""!"""""""""""3"""""""""""""""""""""""!""""""""""""""""""""""""""""""!""""!"""""""""""""2"""""""""""""""""!"""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""!""3"""""""""""""""""""""""""""""!"!"""""""""""!"""""""""""""""""""""!""!""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""!"""""""""""""""""""""""""!""!"!"""!!"!""""""""""""""""""!"!""";3333333333333333333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwww;3333333333333333UUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwww3333333333333333333SUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwww;3333333333333333333UUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwww;3333333333333333333SUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwww;3333333333333333333SUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwww33333333333333333333UUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwww;33333333333333333333SUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwww333333333333333333333UUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwww333333333333333333333SUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwww333333333333333333333SUUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwww3333333333333333333333UUUUUUUUUUUUUwwwwwwwwwwwwwwwwwwww;3333333333333333333333UUUUUUUUUUUUwwwwwwwwwwwwwwwwwww333333333333333333333SUUUUUUUUUUU}wwwwwwwwwwwwwwww3333333333333333333333UUUUUUUUUUUwwwwwwwwwwwwwww33333;333333333333333SUUUUUUUUUUwwwwwwwwwwwwwwww3;3333333333333333SUUUUUUUUUwww}wwwwwwwwwwww333333333333333333333UUUUUwwwwwwwwwwwww;33333333333333333333SUUU}wwwwwwwwwww;333333333333333333333533}wwwwwwwww;333333333333333333333333wwwwww33;333333333333333333333333}wwwﮪ333333333333333333333333333www;33333333333333333333333333www33333;33333333333333333333m3333333333333333333333333333333m;3333333333333333333333333333333mfff3;33333333333333333333333333333333ffff;333333333333333333333333333333333333mfffff;3)333333333333333333333333333333333333fmfffffff;3""33333333333333333333333333333333333mfffffffff;3""""333333333333333333333333333333333fffffffffff;3"""""333333333333333333333333333333333fffffffffff;""DDD233333333333333333333333333333333ffmfffffffff3""BDD233333333333333333333333333333333mffffffffffffffff;3)""BDD233333333333333333333333333333333fffffffffffffffff;)""BDDR33333333333333333333333333333333ffffffffffff3"""DDD$33333333333333333333333333333333ffffffffffff33""BDDDD$2333333333333333333333333333333Ufffffffffff33)""DDDDDDR33333333333333333333333333333SUffmfffffff3)"DDDDDDD$33333333333333333333333333333UUffffffffff;)"BDDDDDDDD53333333333333333333333333333UUmfffff;""DDDDDDDDD233333333333333333333333333UUUUffffff"BDDDDDDDDD233333333333333333333333333UUUUmffffffff;#BDDDDDDDDDD2333333333333333333333333YUUUUmffffffffff#BDDDDDDDDDD9333333333333333333333333UUUUmffffffffffff#BDDDDDDDDDD33333333333333333333333YUmffffffffffff̻BDDDDDDDDDD3333333333333333333333UUfffffffffffffff̼"DDDDDDDDDD333333333333333333333UUffffffffffffff̼"DDDDDDDDD$333333333333333333333YUUffffffffffffff̻3"DDDDDDDDD$3333333333333333333333UUUffffffffffffff̻;3)"DDDDDDDDD$3333333333333333333333UUUUffffffffffffff̻33)"DDDDDDDDD$3333333333333333333333UUUUfffffffffffffff̼333"DDDDDDDDDD9333333333333333333333UUUUfffffffffffff̼333"DDDDDDDDDD2333333333333333333333UUUUfffffffff̼333)BDDDDDDDDD233333333333333333333UUUUffffffff̻333)BDDDDDDDDD533333333333333333U"fffffff̼333"DDDDDDDDDD53333333333333333"""fffff̼33)DDDDDDDDDD5333333333333333""""fff̼33)DDDDDDDDDDR3333333333333)Y""""""f̻33)"DDDDDDDDD$33333333333"""""""̼;33"DDDDDDDDDD"933333333"""""""""""̻333"BDDDDDDDDDD"9333)"""""""""""""""̼3;333)""DDDDDDDDDDDD)""""""""""""""""""""33;3"""BDDDDDDDDDDDDD$)""""""""""""""""""""";3;3)"DDDDDDDDDAD$"""""""""""""""""""""";3;3333333333333333333333333;3"DDDDDDDDDDD"""""""""""""""""""""""""333333333333333333333393;333)DDDDDDDD$"""""""""""""""""""""""""333333333333333)""""""3333333333)""BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33333333333333333""""""""""""""DDDDDDDDDDDAD333333333333333333333"""""""""""""DDDDD333333333333333333333)"""""""""""""BDDDD33333333333333333333)"""""""""""""BDDDDDAD33333333333333333333""""""""""""""BDDDDDDDD33333333333333333333"""""""""""""""DDDDDDDDDD333333333333333333)""""""""""""""""DDDDDDDDDDD33333333333333333""""""""""""""""BDDDDDDDA3333333333333333""""""""""""""""BDDDDDDD333333333333333"""""""""""""""BDDDDDDDD333333333"""""""""""""""BDDDDDDDDDD33333)"39333"""""""""""""""DDDDDDDDDD33333333333""""BDBDD$"""DDD"""BDDDDD3333333333333)""""""""""DDDDDDDD"""DDDDDD3333333)""""""""""""""BDDDDDDDDDDDDDDDD333333)""""""""""BD""DDDDDDDDDDDDDDD333333""9333393"""BDBDDD$BDDDDDDDDDDDDDAD3393333333393""""""""""""DDDDDDDDDDDDAD333333333333)"""""""""""""BDDDDDDDDDDDDDD3#333333)""""""DDDDDDDD"""BDDDDDDDDDDDDD3#""23)"""""""DDDDDDDDDDDDDDDDDDDDDDDDDDDD93)"9#""""""""BDDDDDDDDDDDDDDDDDDDDDDDDDD93939")""""""""""""""DDDDDDDDDDDDDD333333333""")"""""""""""BDDDDDDDDDDDDD3333333"""BD""""""""""DDDDDDDDDDDDDDD333333""D$)""D"""""""""BDDDDDDDDDD33333333339)"""""D$BDDDDDDDDDDDDDDD333393333333)B"""BD"""DDDDDDDDDDDDDDD""""3""""""""""""B$"DDBDDDDDDDDDDD933"""DB$DDDDDD"DDDDDDDDDDDD"9333)BD$""""DDDDDDDDDDDDDADDD""""""""")""D$""DDDDDDDDDDDDDD"""""""""""BDDDDDDDDDDDDDDDDDDDDDDD3"D""""DDDDDDDDDDDDDDDDDDDDDDDDDDDD)""""BDDDDDDDD"DDDDDDDDDDDDDDDDDDDDD"""B""""""""""""""DDDDDDDDADDDDDDDDD""""D$)")""""""""BDDDDDDDDDADDDDDDDD"")")"""BD"""DDDDDDDDDDDDDDDDD"""""""""""""""""D"BDDDDDDDDDDD""""""B"""BD$""""""BDDDDDDDDDD)""BDDDDDDDD"""""BDDDDDDDDDD"""BDDBDDDDDDDDDDDDDDDDAADDDD"BDDDDDDDDDDDDDDDDADDDDDDDDDDDDDDDDDDDDDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"""BDDDDDDDDDDDDDDDDD""DDDDDDDDDD$BDDDDDDAADDDADDDDDDDDDDDDDADDDDDDDDDADDDDDDDDDADDDDDDDDAADDDDDDDDDDDDDDDDDDDDDDDDADDDDDDDDDDDDDADDDDDDDDDDDADDADDDDDDDDDDDADDDDDDDDADDffff̪ZUUUUUUUUUUUUUUUUU%""""""""""""""""""ffffffffffffffffff̬ZUUUUUUUUUUUUUUUUU%""""""ffffffffffffffffff̬UUUUUUUUUUUUUUUUUUUU"""""ffffffffffffffffff̪ZUUUUUUUUUUUUUUUUUUU"""""ffffffffffffffffff̬ZUUUUUUUUUUUUUUUUUUUU%"""ffffffffffffffffff̪UUUUUUUUUUUUUUUUUUUU%"""ffffffffffffffffff̪ZUUUUUUUUUUUUUUUUUUUU"""ffffffffffffffffff̪ZUUUUUUUUUUUUUUUUUU%"""fffffffffffffffffff̬UUUUUUUUUUUUUUUUUU%%UUfffffffffffffffffff̬UUUUUUUUUUUUUUUUUUUUU%ffffffffffffffffffff̪UUUUUUUUUUUUUUUUUUUU%ffffffffffffffffffff̬ZUUUUUUUUUUUUUUUUUUUUffffffffffffffffffff̪UUUUUUUUUUUUUUUUUUUUnfnfffffffffffffff̬ZUUUUUUUUUUUUUUUUUUUnfffffffffffffff̪ZUUUUUUUUUUUUUUUUUUUfffffffffffffff̬̪ZUUUUUUUUUUUUUUUUUUUffffffffffffffff̪̪ZUUUUUUUUUUUUUUUUUUUnffnffffffffffff̬ZUUUUUUUUUUUUUUUUUUfffffffffff̼̼̬ZUUUUUUUUUUUUUUUUUffffffffffUUUUUUUUUUUUUUUUUfffffffffUUUUUUUUUUUUUUUUUffffffUUUUUUUUUUUUUUUUUnfffUUUUUUUUUUUUUUUUUUUnf_ZUZUUUUUUUUUUUUUUUUUUUwwwwwwwkw_UDTUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwwww׽UU$"TZUUUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwwwwݽ_U""BERUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwݝ_E"""""UUUUUUUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwwݽ_E"""""RUUUUUUUUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwݛUE"""""RUZUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwݙ_ED"""""RUZUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwݽ_D$""""""ZUUUUUUUUUUUUUUUUUUUUUUUUUUUUww~wwww~wwwwwwwwwwݙUD$""""""UZUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwwwwwwwwwݙE$"""""""UUUZUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwwwwݝ_UUD""""""""RUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~ww~wwwwwwwݙ_UED"""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~w~wwwwwwwݛED$"""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwݽED$""""2333"UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwݻUD""""23333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwݻUD""""33333#RUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUww~wwwwwݽ_DD"233333333RUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwݝDD$23333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwݙED$23333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwwwwݝUD$23333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwݝUD$23333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwݙED$23333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU%""wwwwwwwwwwwwݙ_ED"23333333"UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU"""wwwwwwwwwwwwݙ_UD"22333333"UUUUUZUUUUUUUUUUUUUUUUUUUUUUU"""wwwwwwwwwwwwݙUUD$""2333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUU"""wwwwwwwwwwwwݙ_UDD"""2333333#UUUUUZUUUUUUUUUUUUUUUUUUUUUU""""wwwwwwwwwwwwݙ_UTE"""2333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUU""""wwwwwwwwwwݝ_ETE$""2333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUU""""wwwwwwݝ_ETU$""3333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUU"U%"wwwwwݙ_UU_"""3333333#UUUUUUUUUUUUUUUUUUUUUUUUUUUUU"UU%wwwwݝUTE""33333333#UUUUUEDEDTUUUUUUUUUUUUUUUUUUU"UU"wwwݝUUE"""3333333#UUUUEUDDDDUUUUUUUUUUUUUDDUUDT""""wݙ_UE"""3333333#UUUUUUEDUUUUUUUUUUEDDEDDDDDDD""""ݙ_UE"""2333333#"UUUUUETUUUUUUUUUDDDDDDDDDD$"""""ݙ_UUD$""3333333""UUUUUUUUUUUUUDDDDDDDDDDD$""""""ݙ_UUUE$""33333333#"UUUUUUUUUUEDDDDDDDDDDD""""""""ݝUEDDD"""333333333#BUUUUUUUUDDDDDDDDD""""""""""""EDD$"""23333333333"TUUUUTEDDDDDDDDD$""""""""""""_D$""""233333333333#BDDDDDDDDD$""""""""""""""""""_UUUUD"""""3333333333333"DDDDDDD"""""""""""""""""""""ZUUUUUUUUUUUUUUUEDTUEDUUUDTUUUD"""233333333333333""""D$"""""""""""""""""""""""UUUUUUUUUUUUUDDDDDDDDDDDDDTUUUUUUE$"""23333333333333#""""""""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDDDDDDD""BDDDDDDD""""""23333333333333333333333333333333333333#"""UZUUUUUUUUUUUUUUUUUDDDDDD$""""""""""""3333333333333333333333333333333333333333333UZUUUUUUUUUUUUUUUEDDDDDDD$""""""""""""333333331333333333333333333ZUUUUUUUUUUUUUUUUDDDDDDDD$""""""""""""333333333333333333333333333333333333333ZUUUUUUUUUUUUUUUEDDDDDDD"$""""""""""""233333333333333333333333333333333333333UUUUUUUUUTUUUUUUEDDDDD""""""""""""""""23333333333333333333333333333333333333UUUUUUUUUUUUUUUEDDDDDD""""""""""""""""2333333333333333333333333333333333333UUUUUUUUUUUUUUUEDDD"BDDD""""""""""""""23333333333333333333333333333333333UUUUUUUUUUUUUEDDDDD$"DDDD$""""""""""""2333333333333333333333333333333333UUUUUUUUUUUUUDDDDDDDDDDDD"""""""""""""233333333333333333333333333333333UUEDTUUDDTUUEDDDDDDDDDDD$"""""""""""""23333333333333333333333333333333UUE"DUDDDTUUUDDDDDD"""""""""""""""""""33333333333333333333333333333333UUEDTUUUUUUEDDDDDD"""""""""""""""""""233333333333333333333333333333333UUUUUUUUUUDD"BDDDDD""""""""""""""""""23333333333333333333333333333UUUUD"DDDD""""D""DDDD""""23""""2""""2333333333333333333333333333333DUUUDDDEDDDD$"$"B$""""""""#"""23#""33333333333333333333333333333UEUEDDTUUUUDUUDDD$""""""""""""""""33333333333333333333333333DTUUUUUUUUUTUUDD$""""""""""""""""""3#"33333333333333333333333333333UUUUUUUUUDUDDDDD$""""$"""""""2#"23#33333333333333333333333333333333333DTUUUUUDDDD$"""""2""""""""""""2""""233333333333333333333333333333333BTUUUDBDDBDD""2333333#"""""""23""#333333333333331333333333333333333BU%BDDDDDD$""""333#""""""""""""33333333333333333131333333333TUEDUUDDDDDDDD$"""""""""""23#"233333333333133333333333333UUUUUUUDDDDDDDD""""""""""""""""333333333333333333333333UUUUEDD$"""DDDDDD"""""""""""""""""23333331333333333333UUUDDD$""""DDDDD""""""""""""2"""""233333333333333333UUUUUUUEDDDUDDDD$""""""""""""#""23"333333313333333333UDDDUETDDTDD"BDD""""""""333#"23333333333331333333"DDTED$""D$"""B$"""""""""23""3333333333333133333TUDTUD"""""23#""""23#23"33""333333333333333333UUUUED""D""23""333""33333333333333313$D$BD"B$""""""""23333333333333333333"""""DDB$"""""""33333#"#23333333333333333""""""""23333#23333""""""""3333333333333313333333333"D$"""""""""""2"""""233333333333"3331333333333333331"$""""BDD""""""""23333333333333333313333333333333""""BDDDDD"""""""""""33333333#""233333313313D"""BDDDD$""""""""""2333333333333333333D$BDDDD""""""""""""""33333333333333333""""B$"""""""""""""""23333333333333333""""""""""""""""""3#23333333333333333""""""""""""""""""233333333333333333""""""#"""233333333333333333333333332##"""""23333333333333""233333333333333333333#"""""""23333#""23"""233333"""""""2333333333"""""233""""""""3333333333333"""""""""""233333333333333333333""""""""233333333#"33333333333333333323333333#"233333333333333333333333333#33333333333333#"""23333333333333333#""""""33333333333233#""""333333333333#""""3333113333333333333133333333333333333313333333333333333333333333333333333133#"2333333333333333333#233333333333333|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDDD|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwGDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwGDD|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwGDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwGDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwGDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww|wwwwwwwwwwwwwwwwwwwwwwwwwwwww||f|wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgVvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgfEdwwwwwwwwwwwwwwwwwwwwwwwwwffDDvwwwwwwwwwwwwwwwwwwwwwwwwwwwfVDDdfewwwwwwwwwwwwwwwwwwwwwwwwwgVDDDDDvww|wwwwwwwwwwwwwwwwwwwwwwwwwgVDDDDDdwwww|wwwwwwwwwwwwwwwwwwwwwwwwww|fVDDDDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwlfVDTEDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwڙlfVDDDDDDvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgfFDDDDDDvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwݙ̜ffEDDDDDDtwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgglVUDDDDDDDdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgfgfgUDDDDDDDDdwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgflffEDDDDDDDDDvwwwwwwwwwwwwwwwwwwwwwwwwwvwwwwwwwffifVEDDDDDDDDDtwwwwwwwwwwwwwwwwwwwwwwwwgvwwwwwwwffVUDDDDDDDDDDtwwwwwwwwwwwwwwwwwwwwwwwwffvwwgfffffݝlVUUEDDDDDDDDdwwwwwwwwwwwwwwwwwwwwwwwwgfvwwffffffڙfUefVEDD433CDdwwwwwwwwwwwwwwwwwwwwgfwwwwfffffffffVUfffVD433333dwwwwwwwwwwwwwwwwwwwwgfwwwwwffffffff|VeVeUfE433333dvwwwwwwwwwwgfvwwwwwwffvwwwgffffffffəWeVeUfE433333dvwwwwwwwwwfffvwwwwwgfffffffffffffffݝilfVeUfF43333CtvwwwwwwwwffffvgffwfffffffffffffffffݝlfffffF43333Cvwwwwwwwwgffffffffffffffffffffffffffݝl|feffUF43333CwwwwwwwgffffffffffffffffffffffffffffڝiwfVUUeE43333DwwgwwwwfffffffffffffffffffffffffffffڝlffVETUD33333CwvwwwwwffgffffffffffffffffffffffffffݝlffUeVfUD33333CwwwwwwwfffffffffffffffffffffffffffݝifVUUUUD433333CwwwwwwwfffffffffffffffffffffffffffݝlfUUDDDD433333Cwwwwwwffv|ffffffffffffffffffffffffffݝlfUUDDDD433333Cwwwwwwffffffffffffffffffffffffffffffݙ̙lfeVEDDD433333CwwwwwwgfffffffffffffffffffffffffffffݙəfVefEDDD433333Cwwwwwggfffffffffffffffffffffffffffffݝ̙ffeVDDDD333333Cwvgvwfffffffffffffffffffffffffffffffݝ̙feeVD4CD333333CffffffffffffUfffffffffffffffffffffffݝ̙̙ifeFDDDD333333CwwffffffffVUUfffffffffffffffffffffffݙlfƙ̙ifeEDDDD333333CwwgfffffffUfffffffffffffffffffUUUUUUڪݝ|ffvlifUEDDDD333333CvwgfffffffeffffffffffffffUUUUUUUUUUUݙfƙifUEDDDD333333CvwgfffffffffffffffffffffUUUUUUUUUUUEݝffUDDDDC333333dvgfffffffffffffffffffVUUUUUUDDDDDDDݙ|ffVVDDD3333333DDfffffffffffffffffffVUUUUUUDDDDDDDDݙlfffVDDD33333333CDffffffffffffffUUfVUUUUUEDDDDDDDDD̙fVUVUDDDD33333333DdfffffffffffUUUUUUUUUEDDDDDDDDDDD̙gVUUUDDDD4333333333DffffffffffUUUUUUUUEDDDDDDDDDDDDD̜|fVUUDDDD43333333333CdffffffffVUUUUUUUEDDDDDDDDDDDDDDwwwwwwwwwfffffvwwwwwwwwwg̙|ffVUDDDD433333333333CDffffffffUUUUUUUEDDDDDDDDDDDDDDDwwwgfffffffffffffffffffffv̙gffVUDDD43333333333333DTeffffffUUUUUUEDDDDDDDDDDDDDDDDwwwfffffffffUUUUUUUUUUUUfvwffffVUDDD43333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwgffffffffffVUUUUUUUUETUUUUUUUUUEDDDDDDD33333333333333333333333333333333333DD4CDDDDwwgffffffffffffffffffUUUUUUUUUDDDDD43333333#"""""33333333333333333333333333333333333wwwgfffffffffffffffffVUUUUUUUUDDDDDD333333""""""233333333333333333333"""""""""""""""wffffffffffffffffffffVUUUUUUUUDDDDD43333333"""2333333333333333333333333333#"""""""""ffffffffffffffffffffUUUUUUUUDDDDDDD433333333#23333333333333333333333333333#"""""""""fffffffffffffffffffUUUUUEUUEDDDDDDD433333333333333333333333333333333333333""""""""""fffffffffffffffffffUUUUUDTUEDDDDDDD433333333333333333333333333333333333333""""""""""gffffffffffffffffffUUUUUDTUEDDDDDDD4333333333333333333333333333333333333#"""""""""""wgfffffffffffffffffUUUUEDDUDDDDDDDD4333333333333333333333333333333333333""""""""""""wfffffffffffffffffUUUUUEDDDDDDDDDDD433333333333333333333333333333333333"""""""""""""ffffffeffffffffffUUUUUUDDDDDDDDDDDD433333333333333333333333333333333333"""""""""""""ffffffffffffffffVUUUUUUDDDDDDDDDDDD33333333333333333333333333333333333""""""""""""""fffffffffffffffVEDDDDUEDDDDDDDDDDDD33333333333333333333333333333333333#"""""""""""""fffffffffffffffVUUEDDDDDDDDDDDDDDD433333333233333333333333333333333#""""""""""""""""ffVUffVUUUUfffffUUEDDDDDDDDDDDDDDCD3333333#""33333333333333333#233""""""""""""""""""UeffUDDTUDUUUfVUDDDDDDDDDDDDDCDDDD33333333#""3333333333333#"""""""""3#""""""""""""""VUfffffffffffUEDDDDDDDDDDDDDDDDD3333333333#""333333333333#""""""#"""""""""""""""""""fffffffffffUUEDDDDDTUUUUDDDDDDD43333333333#""33333333333333333333"""""""""""""""""""fffffffffVUUUDDDDDTUUUDDDDDDDDDD3333333333#""333333333333333333#""""""""""""""""""""fffffVUUUETUDDDDDDDUUDDDDDD3CDDD4333333333#"""33333333333333#""#""""""""""""""""""""ffVUUETUUDDD43333CDDDDDDDDD4CDDD44333333333#""2333333333333333333#""""""""""""""""""fVUUUUUUUDDD43DDDDDDDDDDDDDDD3C333333333333#""""233333333333333333#""""""""""""""""fffVUUUfUEDDDDDDDTDDDDDDDDDD333333333333"23"333333#"!"23"333333333#""""""""""""""""fffffffffVUUUEDDDDDDDDDDDDDD4333D433333#""233333333#""""""3333333333#""""""""""""""fUUUUTUUUUUUUUEDDDDDDDDDDDDDDDDDD43333""!"""333333333#"""!33333333333#"""""""""""""UUUDDDDDUUUUEDDDDDDDDDDDDDDDDDDD433333"""2333333333""""""""3333333#"""""""""""""ffffVefUfVUUUDDDDDDDDDDDD4CDDDDD433333#""""333333333"""""""""""""23""""""""""""""ffVefffffUUUUUDDTUDDD4CDDD34333C3333333!""!23""233""""""""""""""""""""""""TUUUDDDDDDDUUEDDDDDDDD43CDDDD3333333333!"""23#""""2#"""""""""""""""eUEDDDDDDDDDDUEDDDDDDDD3CD333333333333#""""33#"""33#""""""!"""""efVEDDD4333CDDDD43C4333334333333333333""""""33"""""!"""fVUDDDDDDDDDDD43DD3333333333333333313!!""""""""""""""""DEDDDDDDDDDDDD3333DD4333333333333!"!"""""""""""""""""DDDDDDDDDDDDDDDDDDDDDDD333333333333""""""""""""""""""DDDDDDDDDDDDDDDDDDDDD33C43333333333333!23333"""""""""!""DDDEDUEDDDDDDDDDDDDD3333333333333333332333333"""""""!""DDUUUUUEDTEDDDDDDDD4333333333333333!233#"""""""!""!""DDUUUUUUDDDDDDDDDDD33333333DD4333333323#""""""""""DTUUTEDDDDDDDDDDDD4333333333333333333""#""""""UUUUDDDDDDDDDDDDDD433333333333333333!"""""!"""UDUUDDDDDDDDDDDDDD33333333333333333!"""""""DDDDDDDDDDDDDDDDDD33333333334333333!"""!""DDDDDDDDDDDDDDDD333DD4333CDD4333333!""D43DDDDDD33333333DDDDD333CDD33333#!""DDDDD4CDDDDDDDDDDDDDDD33333333333DDD33CDDDDDDDDD3C43333333233DDD33DDDDDDDDDDDD433333333DDDDDDDDDDDDDDDDD4333333333!DDDD4CDDDDDDD4DDDD3333333333DD333DDDDDDDDDDD433333333333DD33CDDDDDDDDD3333333#DDDDDDDDDDD433333333DDDDDDDDDD433333333DDDDDDDD4333333333#!"DDDDD433333333333!333"33333333313333333333333#13333333333333333333333333333!"1#3CDDDDD333333333333333333333#nffffffffffffffffffffffffffffffffffffff3333333333333333nfffffffffffffffffffffffffffffffffffffffffff33ffffffffffffffffffffffffffffffffffffffffff33nfffffffffffffffffffffffffffffffffffffffff63ݪfffffffffffffffffffffffffffffffffffffffff63ݪnffffffffffffffffffffffffffffffffffffffff63ݭffffffffffffffffffffffffffffffffffffffff63ݪnffffffffffffffffffffffffffffffffffffffff3ݪffffffffffffffffffffffffffffffffffffffff6ݭfffffffffffffffffffffffffffffffffffffffffݭfffffffffffffffffffffffffffffffffffffffffݭfffffffffffffffffffffffffffffffffffffffffݭfffffffffffffffffffffffffffffffffffffffffݽfffffffffffffffffffffffffffffffffffffffffݻoffffffffffffffffffffffffffffffffffffffffݻfffffffffffffffffffffffffffffffffffffffݽoVffffffffffffffffffffffffffffffffffݻooUefffffffffffffffffffffffffffffffݽlfUUffffffffffffffffffffffffffffffݽVV5Sffffffffffffffffffffffffffffffݻ~wVU33eoffffffffffffffffffffffffffffffݽwwVU33SfffofffffffffffffffffffffffffffffffݻywwwVU333U3effffffffffffffffffffffffffffffffffݻywwVU33333SfffffffffffffffffffffffffffffffffffݻwwwVU333333effffffffffffffffffffffffffffffffffffݽwwwwwlUU335333cffffffffffffffffffffffffffffffffffffݻywwwwww\U533333CSffffffffffffffffffffffffffffffffffffݽywwwwwwVU533333DSffffffffffffffffffffffffffffffffffffݻݽywwwVU53333CD4ffffffffffffffffffffffffffffffffffffݽݻwwwVoUU53333DD4efffffffffffffffffffffffffffffffffffݻݻݽywwU\U33333CDD4efffffffffffffffffffffffffffffffffffݻݻywwwUUV53333CDDDDefffffffffffffffffffffffffffffffffffݽݽywwwwww\UU3333DDDDDDcffffffffffffffffffffffffffffffffffUݻݻwwwwwww\UU333DDDDDDDSffffffffffffffffffffffffffffffffffUݻݛwwwwwwwUU33CDDDDDDD4ffffffffffffffffffffffffffefffffffUݻݛywwwwwwlU53CDDDDDDDD4fffffffffffffffffffffffffVeffffffVUݛwwywwwwwwwwU533DDDDDDDDD4fffffffffffffffffffffffffVUeffVUUUUݛwwwwwwwwwwwwwwwwwwo53SUUCDDDDDDD4fffffffffffffffffffffffffVUefVUUUUUݛwwwwwwwwwwwwwwwwwww53UUU5DDDDDDD4ffffffffffffffffffffUVefffVUUUUUUUUݝwwwwwwwwwwwwwwwwwUSUUUUCDDDDDD4effffffffffffffffffffUUfffffUUUUUUUݝwwwwwwwwwwwwwwwww\lVUUUUEDDDDDD4efffffffffffVUeffffffUUefffVUUUUUUUݽywwwwwwwwwwwwww\\UUUU5DDDDDD4effffffffVffUUefffffUUUUUUUUUUUUUUUݙwwwwwwwwwww\\\UUU5DDDDDDSeffffffffUUUUUeVUUfUUUUUUUUUUUUUUUUݝwwwwwwwwwww\UUUU5DDDDDDcUeffffffUUUUUUUUUUUUUUUUUUUUUUUUUUUݝwwwwwwwwwww\\\UUUUEDDDDDDeeVffffVUUUUUUUUUUUUUUUUUUUUUUUUUUUUݝwwwwwwwwwww\UUUUUEDDDDDDeeVffffVUUUUUUUUUUUUUUUUUUUUUUUUUUUUݝwwwwww|ww\UUUU5UUCDDDDDDeefefffVUoUUUUUUUUUUUUUUUUUUUUUUUUUUݝwwwwww\UU3UUU5DDDDDDDeffffffUVUUUUUUUUUUUUUUUUUUUUUUUUUywwwwww\UU3SU5CDDDDDDDeffffffUVUUUUUUUUUUUUUUUUUUUUUUUUUywwwwww\UUU33DDDDDDDDDefffffVUUfUU53UUUUUUUUUUUUUUUUUUUUUUywwwwww\UUU3CDDDDDDDDDefffffVUUUUU53UUUUUUUUUUUUUUUUUUUUUUywwwwwwwwUUUU3CDDDDDDDDDefffffVUUUUUUSUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwUUUU3CDDDDDDDDDefffffVUUUUU5UUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwUUU5CDDDDDDDDDDeUUUefUUUUUU3UUUUUUUUUUUUUUUUUUUUUUUwwwwwwwww\UU5CDDDDDDDDDDUUUUUUUUUUU53UUUUUUUUUUUUUUUUUUUUUUUywwwwwww\UU5CDDDDDDDDDDffVUUUUUUUU33SUUUUUUUUUUUUUUUUUUUUUUywwwwwwUUUU\UU5CDDDDDDDDDDefVUUUUUUU5UUUUUUUUUUUUUUUUUUUUUU33UywwwwwUUUUUU\UU5CDDDDDDDDDDSeVUUUUUUUUUUUUUUUUUUUUUUUUUUUU33333wwwwwwwwwwwwUUU5C4DDDDDDDDDcfVUUUUUUUUUUUUUUUUUUUUUUUUU53333333wwwwwwwwwwwwwwwwwUUU333DDDDDDDD4eVUUUUUUUUUUUUUUUUUUUUUUUU533333333wwwwwwwwwwwwwwwwUUU533DDDDDDDDD4SUUUUUUUUUUUUUUUUUUUUUU53333333333wwwwwwwwwwwwwww\UUU533DDDDDDDDDD3UUUUUUUUUUUUUUUUUUUU5333333333333wwwwwwwwwwwwwwUUUU333DDDDDDDDDDDSUUUUUUUUUUUUUUUUUU33333333333333wwwwwwwww\U53333DDDDDDDDDDDD4UUUUUUUUUUUUUUUUU333333333333333UU3333DDDDDDDDDDDDD4SUUUUUUUUUUUUUUU3333333333333333fffffUUUUUUUUUUUUUUUUUUUU\U533CDDDDDDDDDDDDDDDSUUUUUUUUUUU33U53333333333333333ffffUUUUUUUUUUUUUUUUUUUUUe\UUU3CDDDDDDDDD$"""BDD4UUUUUUUUUUUUUU53333333333333333ffffUUUUUUUUUUU333333333UUflUUUUUU33CDDDDDD$""""""BDD3333333333333333333333333333333ffffUUUUUUUUUUUUUUUUU53333333333333CDDDDDDDD"""""""DDDDDDDDDDDDDDDDDDDDDDDDD33333333fffUUUUUUUUUUUUUUUUUUU333333333333DDDD"""""""""""""""""DDDDDD"""""""""""""""$"BDDDDDffffUUUUUUUUUUUUUUUUUUU33333333333CDDD"""""""""""BDDDDDDD$""""""""""""""""""""""""""fUUUUUUUUUUUUUUUUUUUUUU33333333333DDDD$"""""""""BDDDDDDDDDD"""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUU33333333333DDDDD"""""""""DDDDDDDDDDDD""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUU3333333333CDDDDD$"""""""BDDDDDDDDDDDD""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUU3UU3333333333DDDDDD$"""""""BDDDDDDDDDDDD""""""""""""""""""""""""fUUUUUUUUUUUUUUUUUUU5533333333333DDDDDD$"""""""DDDDDDDDDDDDD$"""""""""""""""""""""""fVUUUUUUUUUUUUUUUUUUU533333333333DDDDDDD"""""""DDDDDDDDDDDDDD$""""""""""""""""""""""fVUUUUUUUUUUUUUUUUU3UU5333333333DDDDDDDD"""""""BDDDDDDDDDDDDDD""""""""""""""""""""""UUUUUUUUUUUUUUUUUU53SU333333333DDDDDDDDD"""""""""DDDDDDDDDDDDD""""""""""""""""""""""UUUUUUUUUUUUUUUUU3SUSU33333333CDDDDDDDD$"""""""""DDDDDDDDDDDD"""""""""""""""""""""""UUUUUUUUUUUUUUU53333333333333333CDDDDD$""""""""""BDDDDDDDDDD$"""""""""""""""""""""""VUUUUUUUUUUUUUUU33333333333C43333DDDDD""""""""""""DDD"""""""""""""""""""""""""""""""UU5SUU3333SUUUUU533333C43333333CDDDDD$""""""""""""""""""""""""""""""""""""""""""""""5SUU533S533UUU533333CDCD333334333DDDD"""""""""""""""""""""""""""""""""""""""""""""""5SUUUUUUUUUUUU333333333333CDDD43DDDDD"""""""""""""""""""""""""""""""""""""""""""""""UUVUUUUUUUUUU333C333333333DDDDDDDDDDD$"""""""""""""BDDD"""""""""""""""""""""""""""""UUUUUUUUUU5333D4C33S53333DDDDDDDDDDDD$"""""""""BDDDDDDDDD"""""""""""""""""""""""""""UUUUUUSU5333333C333S3333DDDDDDDDDDDDD$"""""""""DDDDDDDDD$"""""""""""""""""""""""""""UUUS5333533CDDDDDD433D3CDDDDDDDDDDDDD$""""""""""DDDDDDD$""""""""""""""""""""""""""""UUUSU335333DDDDD4333CD4C4CDDDDDDDDDDD"""""""""""""DDDDD$""""""""""""""""""""""""""""UUUUUUUUU5333333333333CDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUU533333333333DDDDDDDDDDDDD$"""""""""""""!""""""""""""""""""""""""""""""UU533333UUU333333333333CDDDDDDDDDDDD""""!"""""""B""""""""""""""""""""""""""""""""""5SU33333SUU333CD33333333CDDDDD4CDDDD"""""""""""""BDD$"""""""""""""""""""""""""""""""UUUUUUUUUUU333C3333333333DDCDDDCDDDD"""""""""""""BDD$"""""""""""""""""""""""""""""""UUUUUUUUUU33333333333333CDDDDDDDDDD$""""!"""""""""""""""""""""!"""""""""""""""""33333333DD33333333C4DDDDDDDDDDDDDD""""""!!"""""""!"""""""""""""""""""""""U533333CDDD4333D433333DDD43DDDDDDD$!"""""""""""""""!""""""""""""UU53333DD$BD33CDDDDDDDDDDD$BDDDDB$""""""""""""""""!"""""""""""UU33333CDDDDDDCDDDDD$BDDDDDD$""""!"""""""""""!"""""""""""""333333D333333CDDDDDDDDD"BDDDDDD$"!"""""""""""""""""""!"!333333D4333CDDDDDD3DDDDDDDDDBDDD"""""""!"""""""""""""""3333C3333333333CD334CDDDDDDDDDDD$!"""""""!"""!""""33333333333333CDDDDDDDDDDDDDDDDD$"!"""""""""""""!""33353333333333DDDD4CD""BDDDDDDDD$"!"""""""""""""!"""D433333333333D4333CD$!"DDDDDDD$""!""""""""""!"""""333333333333333333DDD$""""DDDDDDDDD$"!"""""""""!!"""333333333333333333DDDDDDDDDDDDDDDDDD"!""""""""""""""3333333333333333DDDDDDDDDBDD$DDDDDD"!""""""""""""33333333333333CDDDDDDDDDDDDDDDDD$""""""""""!""333333333333333DDDDDDDBDDDDDDDD$"""!""""""!""""3333D3333DDDDDDDDDDDDDDDDDDDDD$"""""""""333333DD333333CDDDDDDDDDDBDDDD$""""""33333333333333CDDDDDDDDD$"DDD$"""!""3333333333333CDDDDDDD$DDDD"""33333333C43333DDDD""""DDDD3D4DDDDDDDD4D4DDDDDDDDDDDD"!"""3DDDDDDDDDDDDDDDDDDDDDDDDD""!"""DDDDDD333DDDDDD"$""DD""""""D33C43333DDDDD!!""33333333CDDD""B$"""333D333DDDDDDDD$"""DDDDDDD"""""""BDD$""DD"BD$"""""""DDDDD""""!"""""BDDDDDDDDDDDDDDDD$"""""""""""!""""DDDDDDDD$""BDDDDDDDDD""""""""""wwffffffffffffffffffffffffffffffffffffffffff33333333333333333zwzffffffffffffffffffffffffffffffffffffffffffffffffff3wwffffffffffffffffffffffffffffffffffffffffffffffffff3wfffffffffffffffffffffffffffffffffffffffffffffffff3zwwwwmfffffffffffffffffffffffffffffffffffffffffffffff63wwwwwfffffffffffffffffffffffffffffffffffffffffffffff63wwwwwmffffffffffffffffffffffffffffffffffffffffffffff63zwwwwffffffffffffffffffffffffffffffffffffffffffffff63wwwfffffffffffffffffffffffffffffffffffffffffffff33ꮪzwwmffffffffffffffffffffffffffffffffffffffffffff33zwwwfffffffffffffffffffffffffffffffffffffffffff33wwwfffffffffffffffffffffffffffffffffffffffffff33zwwwmffffffffffffffffffffffffffffffffffffffffff63wwwwmfffffffffffffffffffffffffffffffffffffffffff3wzwwwfffffffffffffffffffffffffffffffffffffffffff6wwwwwwffffffffffffffffffffffffffffffffffffffffffffzzwwwwwffffffffffffffffffffffffffffffffffffffffffffzwwwwwwffffffffffffffffffffffffffffffffffffffffffffzwwwwwwfmffffffffffffffffffffffffffffffffffffffffffffzwwwwwwfmUfffffffffffffffffffffffffffffffffffffffffffwwwwwwfVUeffffffffffffffffffffffffffffffffffffffffffwwwwwwVVDTfffffffffffffffffffffffffffffffffffffffzwwwwwUU4Cffffffffffffffffffffffffffffffffffffwwwww}UU33emfmffffffffffffffffffffffffffffffffwwwwwwwmUE33SfUfmfffffffffffffffffffffffffffffffzwwwwwwwUE333D3SmfffffffffffffffffffffffffffffffzwwmUE333333mfffffffffffffffffffffffffffffffwmUE335333effmfffffffffffffffffffffffffffffffwwVUE335333SffmfffffffffffffffffffffffffffffffwwwVUE333333Sffffffffffffffffffffffffffffffffff}wUUD3333333ffffffffffffffffffffffffffffffffffffww]UUE3333333fffffffffffffffffffffffffffffffffffffwwwmUUED3333333ffffffffffffffffffffffffffffffffffffewwwwmUUD433333333effffffffffffffffffffffffffffffffffffwwwmUE4333333333cffffffffffffffffffffffffffffffffffffwwmUeE4333333333cffffffffffffffffffffffffffffffffffffwwUUE3D43333333SffffffffffffffffffffffffffffffffffffwwwVUDTUU4333333SffffffffffffffffffffffffffffffffffffwwwwwVDTUUUE3333333ffffffffffffffffffffffeffffffffffffVwwwwwwUDDUUUEU4#"23"3fVUffffffffffffffffffVUfffffffffffffwwwwwwEDDUEUEU5#3"323fefefffffffffffffffffVUfffffffffffffwwwwwUDDUUUUU5#3#323fefeffffffVffffffffffVUfffffffffffffwwwwwUDDUUUUUE#3"3"3fUffffffffUefffffffffVUeffffffUefffV|wwwwwwwwww]DDUUUUU5#""#"3fUUffffffV5SfefffffffVUefffffVUUefffwwwwwwwwww}]44UTUUT5#"3#23fffffffVUUU33SfffffffUUeffffUUUUefffwwwwwwwwww]4DTEDDU4#33#2SfefefffVUeU43SffffffVUUUfUUVUUUUUeffwwwwwwwwww]UDDTUUUU3#33#"SfffefffVT}VDDTffffffUUUUUUUUUUUUUUffwwwwwwwwwwUED3TUU4333333cfffffffVdwgDDTUffffVUUUUUUUUUUUUUUUU|wwwwwwwwww]UD3CDD3333333efffffffEd}]DDDUUefUUUUUUUUUUUUUUUUUU|wwwwwwwwww]UD33333333333effffffVDDfEDDDTUUUUUUUUUUUUUUUUUUUUU|wwwwwwwwwwwwwUED33333333333effffffVDDTDDD3SUUUUUUUUUUUUUUUUUUUUU|wwwwwwwwwwmwww]UDD33333333333effffffVEDDDD4CUUUUUUUUUUUUUUUUUUUUUU|wwwwwwwwww]wUEDD33333333333effffffVUDDDD3CUUUUUUUUUUUUUUUUUUUUUUwwwwwwwww]]UEDD33333""2"23fVUfUefVUDDD33SUUUUUUUUUUUUUUUUUUUUUUwwwwwwwww]VUDTD33333"""""2UUUVUUfVUDDD33CUUUUUUUUUUUUUUUUUUUUUUwwwwwww]UUDTE33333"3#"32UefVUUeVUDDDDDDUUUUUUUUUUUUUUUUUUUUUU|wwwwwww]UUUUUUUUDT43333323#"32VUeVUUeUUUUDTUUUUUUUUUUUUUUUUUUUUUUUU|wwwwwww]UUUUUUMDET333"23"""""2VUUUUUfVUUUEUUUUUUUUUUUUUUUUUUUUUUUUU|wwwwwww]UUEDT33333#""#""3VUUUUUfVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwEDD33333#23#"33VeUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwEDD33333#""""33VUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDUUUUUUwwwww]UUD433333""2"33VUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDTUUUUU|www]UE433333333333ffVUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDUUU|wwww]UE433333333333ffVUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD|wwwwUU433333333333cffUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDDwwwww}UUED33333333333cfVUUUUUUUUUUUUUUUUUUUDDDDDDDDDDD433|wwwwwwwwwwwwwww]UUUU433333333333UVUUUUUUUUUUUUUUTEUDDDDDDDDDDDD3333wwwwwwwwwwwww}w]ETED3333333333333UUUUUUUUUUUUUUDDDDDDDDDDDDDD333333wwwwwwwwww}wmUDDD33333333333333SUUUUUUUUUUUDDDDDDDDDDDDDD43333333wwwwwwwww]EDD33333333"""""33SUUUUUUUUUUDDDDDDDDDDD333333333333UUDD3333333#"""""""33UUUUUUUUUEDDDDDDDDD33333333333333fffUUUUUUUUUUUUUUUUUUUUU]UUD4333333#"""""""""3SUUUUUUUUEDDDDDDDD333333333333333fffUUUUUUUUUUDDDDUUDDDDUmUUUD43333#"""""""""""233DDDDDDDDDDDDDD33333333333333333ffVUUUUUUUUUDDDDDDDDDDDUefVUUUUUD43333#""""""""""""333333333333333333333333333333333ffVUUUUUUUUUUUUUEDDDDDDD33DDDD33333333#"""""""""""""""""""""""""""""""""""3333333333fffUUUUUUUUUUUUUUUUDDDDDDDDD4333333"""""""""""""""""""""""""""""""""""""""""""""""""ffVUUUUUUUUUUUUUUUUEDDDDDDDDD333333"""""""""""""""""""""""""""""""""""""""""""""""""UUVUUUUUUUUUUUUUUUUDDDDDDDDDD333333"""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUEDDDDDDDD33333333"""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUDDDDDDDDD433333333"""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUDDDDDDDDD333333333#"""""""""""""2#"""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUEDDDDDDDD333333333#"""""""""""""2#"""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUEDDDDDD4DD333333333#""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUDDDDDD333CDD3333333"""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUEDDDDD4333333333333#"""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUEDDDDDD4333333333333""""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUD333D4D43D4333333333""""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUDUUUUUED43333433DD33333333#""""""""""""""""""""""""""""""""""""""""""""""""""UUEUUUDDDDUUUUEDD333333CD33333333#""""""""""""""""""""""""""""""""""""""""""""""""""DTUDTUEDDTUUUEDDDD333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUEDDDD33DD443333333333333"""""""""""""""""""""""""""""""""""""""""""""""""""UUUUETUUDDDD433333DD4333333333333"""""""""""""""""""""""""""""""""""""""""""""""""""UUUUDDDD3CDDD3333DDD43333333333333""""""""""""""""""""""""""""""""""""""""""""""""""UUUDUUDD333C4333333333333333333333#""""""""""""""33"""""""""""""""""""""""""""""""""UUUDTUDD33333333333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""""UDUDDDDD433333333333333333333333#"""""""""""""""""""""""""""""""""""""""""""""""""""UEDDDTETUUDD433DD433333333333333""""""""""""""""""""""""""""""""""""""""""""""""""""UEDTUUUUEUUUDDDDDD43333333333333""""""""""""""""""""""""""""""""""""""""""""""""""""UUEDDDUUDTDDD4D4333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""""DUE433TUDD43333333333333333333333""""!""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUDDD33333333433333333333""""!"""""""""""""""""""""""""""""""""""""""UUUUUUUUDDDD43D433333333""33333#""""!"""""""""""""""""""""""""""""""""""""C433333333333334333333333333333"""!""""""""""""""""""!""""""""""""""""333333333333333333333333333333"""!"""""""""""""""!"""""""""""!"""D433333333333333333333333#""2""""""""""""""""""""""""!""""""""!""E43333333333333333"""""23"33#""""""""""""!""""""""""""""""43333333333333333333#""333333""""""!"""""""""""""""3333333333333333333333333#"""2"!""""""""""""!""33333333333333#333333333333#"3"""""""""""""!"""DDDDDDDDD333#"""23333333333333"""!"""""""""!"""33CD433DD433""""23333#"""33333""""!""""""""!"""""33D333DDD4333333333""""23#""""!""""""""!"!"""DD433CDDD433333333#"!""23333"""!""""""""""DD3333CDD433333333""""""""2333""""""""""""""""""!""D43333343333333333""""""""""""""""""""""""""""""DDD43C3333333333""#2"""""""""""!"""""!""""""""CD433D33333333333333"2"""333"""""""!""""!""3333333333333333333333333333"""!!""""""""""33CD3333333333333333333"3333""""!""""""""""DDD43333333#""2333333""""333""""!"""4333333333333333""233""""""""""3333333333333333"""""""""""!"""!33333333333333333333333""""""!3333333333333#"""""3333"""""""""333333333333"!"""""""""""3333333333""!" \ No newline at end of file diff --git a/Video 126p/video-03.bin b/Video 126p/video-03.bin new file mode 100644 index 0000000..54f1369 --- /dev/null +++ b/Video 126p/video-03.bin @@ -0,0 +1 @@ +fffffffffffffffffffffffffffffffffffffff3333333333333333jfffffffffffffffffffffffffffffffffffff333jfffffffffffffffffffffffffffffffffffff3333jfffffffffffffffffffffffffffffffffffff3333fffffffffffffffffffffffffffffffffffff6333ffffffffffffffffffffffffffffffffffffff333jfffffffffffffffffffffffffffffffffffff633jffffffffffffffffffffffffffffffffffff633jffffffffffffffffffffffffffffffffffff633fffffffffffffffffffffffffffffffffffff633fffffffffffffffffffffffffffffffffffff633ffffffffffffffffffffffffffffffffffffff33jfffffffffffffffffffffffffffffffffffff63jfffffffffffffffffffffffffffffffffffffff̙jfffffffffffffffffffffffffffffffffffffff̜fffffffffffffffffffffffffffffffffffffff̙ffffffffffffffffffffffffffffffffffffff̙jjjffffffffffffffffffffffffffffffffff̜fjffffffffffffffffffffffffffffffffff̙̙jVejfffffffffffffffffffffffffffffffffff̙̙jfUUjfffffffffffffffffffffffffffffffff̙̙jeUTfffffffffffffffffffffffffffffffff̙ZUEDejffffffffffffffffffffffffffffffff̙ZUE3Sjffffffffffffffffffffffffffffffff̜VU43Cjfffffffffffffffffffffffffffffffff̙VU433eUTjfffffffffffffffffffffffffffffff̙VU433333cfffffffffffffffffffffffffffffff̙VU433333Sjffffffffffffffffffffffffffffff̙UU43S3333jffffffffffffffffffffffffffffff̙ɜoUU43S3333ffffffffffffffffffffffffffffff̙jUU4333333ejfffffffffffffffffffffffffffff̜yZUU4333333Sfffffffffffffffffffffffff̙ywwoUUU43333333fjfffffffffffffffffffffffffwwywwwwoeZUUU43333333fffffffffffffffffffffffffff|wwwwwwwwݽUZUED43333333fjffffffffffffffffffffffffff|wwwwwwwwwwwwݽUVD4333333333ffffjfjfffffffffffffffffffffffffffwwwwwwwwwwwwwUeVTUE33333333efffffffffffffffffffffffffffffffffffwwwwwwwwwwwwwUUU_E3333333cfffffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwoUU_U_3333333cfffffffffffffffffffffffffffffffffffwwwwwwwwwwwwwwwUE_U4##23"3cVUeffffffffffffffffffffffffffffffff|wwwww}w_E_T5#3#323SVfeffffffffffffffffffffffffffffffffw|wwww_UT_U?#3#"23SVfeffffffVeffffffffffffffffffffffff|wwwwwwwwEDTO#3"3""3UUeffffff5SffffffffffVeffffffffffffwwwwwwwww_DD_T?#"2#"33UVfffffUU33UUfffffffffeffffffffffffw|wwwwwwwwwDDUTUUU5#33#23SUfeffff433333effffffffUffffffffefffw|wwwwwwwwwEDTEDDU4#33#"3SUfeffff4eV333effffffffUfffffffVUeffwwwwwww}VUDTUUUE3#33#""SfffffffTk333effffffffUeffffffVUeffwwwwwwwwwwVD3TUU43333333cffffffVT533efffffffVUeffffefVUUff~wwwwwwwwwݽVD43D433333333cffffffETk333SfffffffVUUUUUUUfUUUef~wwwwwwwwwݽoVE433333333333efffffVD4eF3333efffffUUUUUUUUUfUUUUU~wwwwwwwwwݽ_oUE433333333333ffffffVE433333CeffffUUUUUUUUUUUUUUUU~wwwwwwwwwݻ_oUU433333333333fffffffU433333TUUUUUUUUUUUUUUUUUUUUU~wwwwwwwww__UE433333333333fffffffV333333UUUUUUUUUUUUUUUUUUUUUU~wwwwwwwww_UUD43333"""""33UUfUUffV333333UUUUUUUUUUUUUUUUUUUUUU~wwwwwwwww_UEDD33333"""""23UUVUUefV333333UUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwU_EDD33333"3#"3"3efVUVefVD43333UUUUUUUUUUUUUUUUUUUUUU~wwwwwwwwwww_UUUUUU_ETD3333323#"3"3efVUUefVUU4CUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwww_UUUUUUVUEDD33"23""""""3TUVUUefUUUETUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwUUUEEDE3333323#""23efVUUeVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwEDD53333#23#"233eeVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwEEDE33333""""333UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwUUDE33333""""33SUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwUTE33333333333cfVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwUTE33333333333cffUUUUUUUUUUUUUUUUUUUUUUUUUUUUETUUUUwwwwwwwwwwwUTD33333333333SffVUUUUUUUUUUUUUUUUUUUUUUEUUUUDDDTUUwwwwwwww}wUUD33333333333SffVUUUUUUUUUUUUUUUUUUUUUUEUEDDDDDDDTwww_UD33333333333SffUUUUUUUUUUUUUUUUUUUUUUEDDDDDDDDDDD_UE333333333333efVUUUUUUUUUUUUUUUUUUUUUEDDDDDDDDDDD_UUD333333333333efUUUUUUUUUUUUUUUUUUUTDDDDDDDDDDD43_UUUU33333333333SfVUUUUUUUUUUUUUUUDTEDDDDDDDDDDD333UEUED333333333333SUUUUUUUUUUUUUUDDDDDDDDDDDDDD33333_UDD433333333333333UUUUUUUUUUUUEDDDDDDDDDDDDD3333333UDDD3333333#""""233UUUUUUUUUUEDDDDDDDDDDD4D433333333oUDD3333333""""""""3SUUUUUUUUEDDDDDDDDDD3333333333333ffjffffffofffjffffff_UUD4333333"""""""""23UUUUUUUUEDDDDDDDD433333333333333fffVUUUUUUUUUUUUUUUUUUUUUoUUED33333#"""""""""""33CDDDDDDDDDDDDDD3333333333333333fffUUUUUUUUEDDDDDDDDDDDTUoUUUUED33333""""""""""""233333333333333333333333333333333fffVUUUUUUUUUEDDDDDDDDDDTUUEDDDDD33333"""""""""""""""""333""""""""""""2"""3333333333fffVUUUUUUUUUUUUUUUDDDDDDDDDD433333#""""""""""""""""""""""""""""""""""""""""""""""""fffVUUUUUUUUUUUUUUUUDDDDDDDDDD33333#""""""""""""""""""""""""""""""""""""""""""""""""fffVUUUUUUUUUUUUUUUUDDDDDDDDDD33333#""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUDDDDDDDDD3333333#""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUDDDDDDDDD43333333#""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUDDDDDDDDDD33333333#""""""""""""""33""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUEDDDDDDDDD333333333""""""""""""""3"""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUDDDDDDDDD33333333#""""""""""""""""""""""""""""""""""""""""""""""""fUUUUUUUUUUUUUUUEDDDDDDD3DDD4333333#"""""""""""""""""3#"""""""""""""""""""""""""""""fUUUUUUUUUUUUUUUEDDDDD43333D3333333""""""""""""""""""3#"""""""""""""""""""""""""""""UUUUUUUUUUUUUUUEDDDDDD333333333333#"""""""""""""""""23#"""""""""""""""""""""""""""""UUUUUUUUUUUUUUUDDDDD4C333333333333""""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUUUUUUED33333C33D433333333""""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUDDDTUUUUD43333333DD33333333""""""""""""""""""""""""""""""""""""""""""""""""""TEUEDUUDDDTUUUUDD33333333433333333""""""""""""""""""""""""""""""""""""""""""""""""""DTUUUUUUUUUUUUDDDDD34333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUEDDDD33333DD433333333333#""""""""""""""""""""""""""""""""""""""""""""""""""UUUUEDDDE43DDD3333DDD4333333333333""""""""""""""""""""""""""""""""""""""""""""""""""UEUUEDDD433DDTD3DDDD43333333333333#"""""""""""""""""""""""""""""""""""""""""""""""""UUUUTUUDD33333333333333333333333333""""""""""""""2#""""""""""""""""""""""""!"""""UUUUUDUD4333333333333333333333333#"""""""""""""""""""""""""""""""""""""""""!""""""UUUUDDDDDDD4333333333333333333333"""""""""""""""""""""""""""""""""""""""""""""""""UEDDDUUUUUUUDDDDDD43333333333333""""""!"""""""""""""""""""""""""""""""""""""""""""UUUEDUUUUUUUEDDDDDD333333333333#""""""""""""""""""""""""""""""""""""""""""""""""UUUDDDTUUUDD433333333333333333""""""!"""""""""""""""""""""""""""""""""""""""""TUUUUUUUUED4333333333333333333333""""""""""""""""""""""""""""""""""""""""""UUUUUUUUUDDDD3333333333333333333""!""""""""""""""""""""""""""""""""""""""DDDDDDDDD4DDD3D4333333333#""333#""!""""""""""""""""""""""""""""""""""3333333333333333333333333333333""!"""""""""""""""""""""""""""""""""DD4333333333333333333333333#"3#""""""""""""""!""""""""""""""""""""DDDD333333333333333333#"3#23#"""""""""""""""""""""""""""""""DDDD33333333333333#""""233333#""!""""""""""""""""""""DDDD3333333333333333333333333##"!"""""!"""""""DD433333333333333333333333""""3"""""!""""!"""""DDDDDDDD333333#""3#333333333""""""""""""""!"!"""D4CDDDDDDD43#"""""""2333333323""""!""""""""!"""""333D433DDD33#""""""""3#""""3""""""!""""""""!"""333333CDDD4333333333""!""""""""""!"""""""!""""CD4333CDDD433333333"""""""""333""""""!"""""""""DD3333DDD4333333333""""""""""""!""""""""""""""""""DD333CDD43333333333""""""""""""!"""""""""""""""DDDDDD4333333333333""""""""""""""""""!""""""""DD433D333333333333333""""333"""""""""""!""""4333D43333333333333333333333"""!"!!"""""""DDDDD3333333#"""333333332333""""""!""""""DD4333333333""33333333"""2333"""!"!""D333333333333333""233#""""""""""!""333333333333333333333#"""""""!"wwwwwwwwWWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU5333333CD뻻wwwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU5{wwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwwuWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwuWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwuwUWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwwwUW3UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU{wwwwwwwwwwff3UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwff3SUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻{wwwwwwwgffD4UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻{wwwwwwwgf6DDcUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̼{{wwwww{wgf6DD4f6UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻{wwwwwwwgf6DDD3DSUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̼{wwwwwwwgf6DDDDD4UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻wwwwwwwwgf6DDDDDD4UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̼{wwwwwwwgf3DD3DDDDuWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̼{wwwwwgf3DD3DDDDuwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻{wwwwwf63DDDDDDDuwwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̼wwwwwf63DDDDDDDUWuwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻gfwwvf63DDDDDDD4UUwwwUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻wfwwff63DDDDDDDDUfwwwWUUUUUUUUUUUUUUUUUUUUUUUUUUUUU̻wgvgff63DCDDDDDDUUwwwwwwfffUUUUUUUUUUUUUUUUUUUUUUUU̼̜wgfgF3CDDCDDDDDDUUvwwwwwwffVUUUUUUUUUUUUUUUUUUUUUUU̜ygfgDdDDDDDDDDDDUUfwwwwwgffVUUUUUUUUUUUUUUUUUUUUUUUꮪ̜ygfgfffDDDDDDDDDUUfvwwwgfffUUUUUUUUUUUUUUUUUUUUUUUU̙ywfvwwwFDDDDDDDDSUefffffffVUUUUUUUUUUUUUUUUUUUUUUUU̙wgvfvgwfgDD"DD$"D4SUUffVUUUUUUUUUUUUUUUUUUUUUUUUUUUU̙wwwfwgvfwF$D"D""DDUSUefVUUUUUUUUUUUUUUUUUUUUUUUUUUUUݙywwgfwgvfwG$D$B"DDDU3UefVUUUUUUUUUUUUUUUUUUUUUUUUUUUUʜݝwwffwwwwwG$D$B"DDDUSUffVUUU4UUUUUUUUUUUUUUUUUUUUUUUUꪪ̙ݝyffdwwwwvG$""$""BDDSUffVUUEDSUUUUUUUUUUUUUUUUUUUUUUUݝgDdgvwgdG$""$"DDD5SUefV33DDD3SUUUUUUUUUUUUUUUUUUUUUʬ̜w}wwwfFwfffvF$BD$"BDDUSUffVCDCDDDSUUUUUUUUUUUUUUUUUUUUU}wwwwwwwfFvfDdgD$"""""DDU5fffVCT7DDDdUUUUUUUUUUUUUUUUUUUUU}wwwwwwffFdvwwFD$"""""B4UUfffVC{CDDdVUUUUUUUUUUUUUUUUUUUU}wwwwwwwgFDfffDD$""""BDSUefffVDFDD4fUUUUUUUUUUUUUUUUUUUU}wwwwwwwgfDDDDDD$"""""DSeffffFDskCDDDcUUUUUUUUUUUUUUUUUUUU}fwwwwwwwwgfFDDDDD$"""""DUfffffCD46DDDDdfUUUUUUUUUUUUUUUUUUU̙}wwfwwwwwwwwffFDDDDD$"""""4efffffFDDDDDDDcfffVUUUUUUUUUUUUUUUU}wwfwwwwwwwwffFDDDDD$""""B4effffffDDDDDD4ffffVUUUUUUUUUUUUUUUU}wwfwwwwwwwgffFDDDDD$""""B4effffffCDDDDDdffffffUUUUUUUUUUUU3SUwwwfwwwwwgvfffDD"BD"""""""BcffffffCDDDDDdffffffVUUUU33SUUU53SU}wwwfwwwwwwgFDfDDBB$"""""""BcffffffCDDDDDdffffffVUUU533SUUU53SUwwwgfvwwwgwwFDFDDDD$"""""""TfffffffCDDDDDdffffffffU3333SUUU3333wwfffffffwgwwgDdDDDD$"""""""dfffffffffFDcffffffffff63333SU533333}wwwfffffffwwffgDdDD"B$"""""""D3fF4ffffff4fffffffffff633333U533333wwwwwwwwwwwwwwffDdDDDD$"""""""Tffffffffffffffffffffffff33333333333wwwwwwwwwwwwwwfFDDDDDD$"""""""dffffffffffffffffffffffff33333333333wwwwwwwwwwwwwwfFDFDDDD$"""""""dffffffffffffffffffffffff33333333333wwwwwwwwwwwwgfffdfDD"B$""""""B3ffffffffffffffffffffffff33333333333wwwwwwwwwwwwwwwfffDDDDD$"""""Beffffffffffffffffffffffff33333333333wwwwwwwwwwwwwwwfFfDDDDD""""""Beffffffffffffffffffffffff33333333333wwwwwwwwwwwwwwwfFfDDDDD""""""Bcffffffffffffffffffffff6333333333333wwwwwwwwwwwwwwwffFDDDDD""""""Bcffffffffffffffffffffff3333333333333wwwwwwwwwwwwwwwffFDDDDD""""""BTfffffffffffffffffffff63333333333333}wwwwwwwwwwwwwwgfFDDDDD$"""""BTfffffffffffffffffffff33333333333333}wwwwwwwwwwwwwwwgfFDDDDD$"""""BSefffffffffffffffffff633333333333333}wwwwwwwwwwwwwwwwwfFDDDDD$"""""BTUfffffffffffffffffff633333333333C33}wwwwwwwwwwwwwwwwwwwwwff6DDDDDD"""""DSfffffffffffffffffff33333D3D33DDDD4}wwwwwwwwwwwwwwwwwwwwwwwwwfffDDDDD""""""DDSffffffffffffffff33333CDDCDDDDDDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgff6DDDDD$"""""BD4effffffffffff6333333CDDDDDDDDDDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwffDDDDDDD"""""""DDSfffffffffff3333333DDDDDDDDDDDDDDwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgfFDDDDDDD""""""""D43cfffffff6333333DDDDDDDDDDDDDDDDffffffffffffffvwwwwwgffffvwwwwwgfFDDDDDDD"""""""""BD33333333333333DDDDDDDDDDDDDDDDDDffffffffffffffffffffffffffwwwwgffFDDDDDD"""""""""""D3333333333333DDDDDDDDDDDDDDDDDDDfffffffffffff33CDDDDDDDD4fvwwffffFDDDDD$"""""""""""BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffff3333DDDDDDDDcffffffFDDDDDD"""""""""""""DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffff33333333DDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""DDDDDDDDDfffffffffffffff63333333CDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""ffffffffffffffff6333333CDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""fffffffffffffff3333333CDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""""ffffffffffffff6333D43CDDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""""cffffffffff3ff333CD33CDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""ffffffffff63cf3333333DDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""ffffffffffffff633DDDDDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""fff633cffffff6333DDDDDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""ffff3fffffff3336CDDDDDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""""fffffffffff33f33CD3DDDDDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""""ff333f3fff33333DDD3DDDDDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""""ff633633333333CDDDDDDDDDDDDDDDDDDD$"""""""""""""""""""""""""""""""""""""""""""""""""ff63333CDD4333CDDDDDDDDDDDDDDDDDDD$"""""""""""""""""""""""""""""""""""""""""""""""""3f6333c33C4333CDDDDDDDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""""""ffff33ff633CDDDDDDDDDDDDDDDDDDDD$"""""""""""""""""""""""""""""""""""""""""""""""""""fff63333DDDDDDDDDDDDDDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""""""63D33CDDDDDDDDDDDDDDDDDDDDDDD$"BD$""""""""""""""""""""""""""""""""""""""""""""""""""f63333CDDDDDDDDDDDDDDDDDDDDDDDD""$""""""""""""""""""""""""""""""""""""""""""""""""""ff6CDD4C3DDDDDDDDDDDD"DDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""""""f33333333DDDDDDDDDDDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""!63CDDD333C43DDDDDDDDDDDDDDDDDDDD"""""""!""""""""""""""""""""""""""""""""""""""""""""ffCDD4333D433CDDDDDDDDDDDDDDDDDD"""""""""""""""""""""""""""""""""""""""""""""""ff33343333CDCDDDDDDDDDDDDDDDDDD""""""""""""""""""""""""""""""""""""""""""""""3333333333DDDDDDDDDDDDDDDDDDDD$""""""!"""""""""""""""""""""""""""""""""""""""4363DDDDDDDDDDDDDDDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""""333DD4D4DDDDDDDDDDDDDDDDDDDDD"BD$""""""""""""""""""""""""""""""""""""""DDDDDDDDDDDDDDDDDDDDDDDDD"""""""""!"""""""""""""""""""""""""""""""""""""DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""""""""""""""""""""""""""""""""""""""""4DDDDDDDDDDD$DDDDDDDDDDDDDD$"""""""""""""""""""""""""""""""""""""""""DDDDDDDDDDDDDDDDDD$BDDDDDDD"""""""""""""""""""""""""""""""""""D333DDDDDDDDDDDDDDD$""BDDD""""""!"""""!"!""""""""""""""""""33333CDDDDDDDDDDDDDDDDDDDDDDDD$"!""""""""""!""""433333DDDDDDDDD""DDDDDDDDDDD$DB""""""""""!""""DDDDDDDDDDDDD$""""""DD$"DDDD$""""""""""!"""DDDDDDDDDDDDD"""!""""""D"""""""!""""!!""!""DDDDDDDDDDDDDD$"""""""""""""""""""""""""!"!DDDDDDDDDDDDDDDDDD$"""""""""""""""!DDDDDDDDDDDDDDDDDDD$""""!"""!"""""""DDDDDDDDDDDDDDDDDDD$"$"""""!""""!"""""!"""DDDDDDDDDDDDDDDDDDDDDDDD"""!""""""""""""DDDDDDDDDDDDDDDDDDDDDD$"""""""""""""""""!""!"DDDDDDDDDDDDDDDDDDDDDD$"""""""""""""""""""""DDDDDDDDDDD$DD$DDDDDDDD$"DD""""""""""""!"""""333DDDDDDD"""""D"DDDDDD"BDD"""""""!""33DD"DDDDDDDDDD$"""""""""BDD""""""!"3CDDDDDDDDDDDDD$""""""""""""""""ݽ{wwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݻwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUݽwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUݽwwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUݽwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUݻ{wwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUݻ{wwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUUݻwwwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUݽ{wwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUUݽ{wwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUUݻwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDTUUUUUUUUUUUUUUUUUUUݽ{wwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUUUUUUݽ{wwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDDUUEDUUUUUUUUUUUUUUUݽwwwwwwwwwwwwwwwwwGDDDDDDDDDDDDDDDDDDDDDDUUEDUUUUUUUUUUUUUUUݽ{wwwwwwwwwwwwwwwGwGDDDDDDDDDDDDDDDDDDDDDDUUEDUUUUUUUUUUUUUUUݻwwwwwwwwwwwwwwwGtGDDDDDDDDDDDDDDDDDDDDDDUUUDUUUUUUUUUUUUUUUݽ{wwwwwwwwwwwwwGtGtGCDDDDDDDDDDDDDDDDDDDDDUUUDUUUUUUUUUUUUUUUݻwwwwwwwwwwwwwwtgf63DDDDDDDDDDDDDDDDDDDDDUUEDUUUUUUUUUUUUUUUݽ{w{wwwwwwwwwwwvgf63DDDDDDDDDDDDDDDDDDDDDDDDDTUUUUUUUUUUUUUUݻwwwwwwwwwwwwwwgf63CDDDDDDDDDDDDDDDDDDDDDDDDTUUUUUUUUUUUUUUݻzwwwwwwwwwwwwwgf633DDDDDDDDDDDDDDDDDDDDDDDDDTUUUUUUUUUUUUUݻwwwwwwwwwwwwwff633CDDDDDDDDDDDDDDDDDDDDDDDDTUUUUUUUUUUUUU޻zwwwwwwwwwwwwff3333D3CDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUUwwwwwwwwwwwwff333333CDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUUwwwwwwwwwwwwff3333333DDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUwwwwwwwwwwwff3333333CDDDDDDDDDDDDDDDDDDDDDDDUUUUUEDTUUEwwwwwwwwwwwff33333333DDDDDDDDDDDDDDDDDDDDDDDDDDTUUUEUUDzwwwwwwwwwgf633333333twGDDDDDDDDDDDDDDDDDDDDDDDDDTUDDDDwwwwwwwwwgf633333333twwGDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDzwwwwvwwwgf633333333DtwwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwfvwgwf633333333CDwwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDzffwgff6333333333DwwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDzwfvfff3333333333DwwwGdDfffDDDDDDDDDDDDDDDDDDDDDDDzwfvf333333333333DtwwwwgfffDDDDDDDDDDDDDDDDDDDDDDDzwfv6333333333333DtwwwwwwwffDDDDDDDDDDDDDDDDDDDDDDwfvgf33333333333DfwwwwwwgffDDDDDDDDDDDDDDDDDDDDDDwfw63333333333CdvwwwwgfffDDDDDDDDDDDDDDDDDDDDDDwwvwwo3333333333CdfffgffffFDDDDDDDDDDDDDDDDDDDDDDwgwgwow6#""3""2#"CDdffffffDDDDDDDDDDDDDDDDDDDDDDDDzwwww|o?#2"2""""23DDfffffDDDDDDDDDDDDDDDDDDDDDDDDDϪzwzvwo?#2""""""23DDdfffDDDDDDDDDDDDDDDDDDDDDDDDDDgwwv?#2"""""""3DDdfFDD3CDDDDDDDDDDDDDDDDDDDDDDDzfw?#""""""""CDDdfFD433DDDDDDDDDDDDDDDDDDDDDDD鞙wwv?#"""""""2CDDff6333333DDDDDDDDDDDDDDDDDDDDDz|wwvgoo6#"""""""23DDff6333333DDDDDDDDDDDDDDDDDDDDDww|gfvgf3#"""""""23Dfff6Cw3333DDDDDDDDDDDDDDDDDDDDDwwwwgvww?3#"""""""3CDfff6s7333DDDDDDDDDDDDDDDDDDDDDzwwwwwwwwfff333"""""""3Dffff3s7333CDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwf633333"""""""3dfff63cw33333DDDDDDDDDDDDDDDDDDDDfwwwwwwwwwwff33333"""""""3dfff333333333FDDDDDDDDDDDDDDDDDDDgfwwwwwwwwwgff33333"""""""Cffff63333333cfDDDDDDDDDDDDDDDDDDDgfwwwwwwwwwfff33333"""""""Cfffff3333333ffDDDDDDDDDDDDDDDDDDDzgfwwwwwwwwwfff33333"""""""Cfffff6333333fffffffDDDDDDDDDDDDDD|gfwwwwwfvggf33#"#"""""""""C63fff6333333fffffffFDDDDDDDDDDDDDwgfwwwwgwwgff3333#"""""""""C6fcff6333333fffffffFDDD4CDDDDD433wwgfffffwgwwgvf3333#""""""""2C6fcff6333333ffffffffF3333DDDDD333gfffffffwgwwgffc633#""""""""2d6fcffff63cfffffffffff33333CDD3333wgfffffffwwfwgfcc6#2#"""""""""d63ffffff3ffffffffffff633333D43333|wwwwwffffwwwfgf3c633#""""""""2d66fffffffffffffffffffff3333333333wwwwwwwwwwwwwfgc6c633#""""""""2d6fcffffffffffffffffffff3333333333|wwwwwwwwwwwgvgc6c633#""""""""2f6fcffffffffffffffffffff3333333333|wwwwwwwwwwgfwwfff6#"#""""""""2ffffffffffffffffffffffff3333333333|wwwwwwwwwwwwwwgff6333#"""""""2ffffffffffffffffffffffff3333333333|wwwwwwwwwwwwwwgff6333""""""""2ffffffffffffffffffffffff3333333333|wwwwwwwwwwwwwwgff6333""""""""2fffffffffffffffffffffff33333333333|wwwwwwwwwwwwwwgff3333""""""""2ffffffffffffffffffffff633333333333|wwwwwwwwwwwwwwgff3333#"""""""2ffffffffffffffffffffff633333333333|wwwwwwwwwwwwwwwff33333"""""""2ffffffffffffffffffffff633333333333|wwwwwwwwwwwwwwwff33333"""""""2dffffffffffffffffffff6333333333333|wwwwwwwwwwwwwwwwgf33333"""""""2Dfffffffffffffffffff63333333333333wwwwwwwwwwwwwwwwwwwwwgf63333"""""""2Cfffffffffffffffffff63333333333333|ww|wwwwwwwwwwwwwwwwwwwwwwwwgff6333#"""""""3cffffffffffffffff6333333333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwfff3333#"""""""23fffffffffffffff33333333333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgf633333#""""""""33ffffffffffff6333333333333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwff333333"""""""""23cfffffffff333333333333333333333ffffffffwgfwwwwwwwwwwwwwfffwwwwwwgf633333#""""""""""33cff633333333333333333333333333fffffffffffffffffffffffffffvwwwwfff333333"""""""""""23333333333333333333333333333333fffffffffffff6333333333333fvwwwfff63333#"""""""""""""3333333333333333333333333333333fffffffffffff63333333333333fffffff63333#"""""""""""""2333333333333333333333333333333fffffffffffffff3333333333333333333333"""""""""""""""""""""""""""""""""""""#233333333ffffffffffffffff63333333333333333333#"""""""""""""""""""""""""""""""""""""""""""""""fffffffffffffffff6333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""ffffffffffffffff63333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""cfffffffffffffff3333333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""3cffffffffffffff33333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""ffffffffffff33f633333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""fffffffffffffff633333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""fffff333fffffff333333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""fffff333ffffff33c6333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""fffffffffffff3c63333333333333333333"""""""""""""""""""""""""""""""""""""""""""""""""ffff33c6cff63333333333333333333333#"""""""""""""""""""""""""""""""""""""""""""""""""ffff33f333333333333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""""ffff633333333333333333333333333333""""""""""""""""""""""""""""""""""""""""""""""""""cfff6333f333333333333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""fffff63cf633333333333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""ffff63333333333333333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""ff333333333333333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""""""fff63333333333333333333333333#""""""""""""""""""""""""""""""""""""""""""""""""""""""ffff333333333"""""2#"""233""2333"""""""""""""""""""""""""""""""""""""""""""""""!""3f63333333333333333333333333333#"""""""""""""""""""""""""""""""""""""""""""""3c63333333333333333333333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""ffff3333333333333333333333333333"""""""""!"""""""""""""""""""""""""""""""""""""""""ffff3333333333333333333333333333""""""""""""""""""""""""""""""""""""""""""""""63333333333333333333333333333#2#"""""""""""""""""""""""""""""""""""""""""""""333c333333333333333333333333333"""""""!"""""""""""""""""""""""""""""""""""""333333333333333333333333"""""#""""""!""""""""""""""""""""""""""""!""""""3333333333333333333333#"""""""""""""!""""""""""""""""""""""""""""""""""""3333333333333333333333333#""""3#"""""""""""""""""""""""""""""""""""""""3333333333333""""3333333333#"""""""!"""""""""""""""""""""""""""""""""""3333333333333""33333333#"23#""""""!""""""""""""""""""""""""""""""33333333333333333333""3#3#""""""""""""""""""""""""""""""""""3333333333333333333333""""33""""""!""""""""!"!"""""""3333333333333333""23333333333"3#"""""""""""!"""""3333333333333#""""""2333"2333"""""!""""!"""3333333333333#"""""!""""""3#""""""!""""!""""333333333333333"""""!"""""""""""""""!""""!""3333333333333333#""""""""""""""""""!"!"3333333333333333333"""""!"""""""""!"3333333333333333333#""""""""!""""""""""""!33333333333333333333""2""""""""""""!""""""""3333333333333333#"33333""""""""""""""!""""""""3333333333333333333333"""""""""""""""""""""""""33333333333#""""233333""""""""""!"!"""""""""""""!3333333333#"""""""2333"""""""""""""""33333333#"2333#"3""""""""""""""""""!""33333333333#"3333""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDDDDDݝ\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݙUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݙUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݝ\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݙUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݝ\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݙUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUݙUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\flFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffDTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffDDUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlff4CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlff43TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlff43CUUTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlfF333D43UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlfF333333TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlfF333333SUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUlfF333333CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwlfF33C4333TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUffF33C4333CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwffF4333333CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwfffF4333333CU\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwflfF43333333U\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwfflfffF43333333TUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwwlfffffD44333333CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwwff4dDD34333333CUUUUUUUUUUUUUUUUUUUUUUUUUUUUUww̼̬fff333334333333CU\UUeUUUUUUUUUUUUUUUUUUUUUUUUUwwww̪fnf33333333333CUlffffffUUUUUUUUUUUUUUUUUUUUUUwwwwwwww63333333333CUlffffUUUUUUUUUUUUUUUUUUUUUwwwwwln33333333333UfffUUUUUUUUUUUUUUUUUUUUUwwwlnf6#""3""2#"2UffffVUUUUUUUUUUUUUUUUUUUUUwwwnf>#3#3"33#2"TfffffVUUUUUUUUUUUUUUUUUUUUUUwwwwwwww>#3#2"33#23TUfffffFVUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwl>#3#3""2#"2UUeffff3SUUUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwln>#""3""2#"2UUefff433DDUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwnn6#333"33#22UUef6333333UUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwlfff6#333""2#23UUef63D3333UUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwwffln3#333""2#23TUef6C5333UUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwwwwlf633333#"233CUUff6Y333TUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwfff633333333333SUeff3c\333CUUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwwn檪f63333333333333SUef63363333TUUUUUUUUUUUUUUUUUUUwwwwwwwwwwwn檪ff3333333333333Teff633333333dVUUUUUUUUUUUUUUUUUUwwwwwwwwwwwLì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 ustj=D;y9r^MLD?_Av8l@~M}g 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 z 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 XcD>065#C=k=E|h8qrTCH7Ht0){C$1; literal 0 HcmV?d00001 diff --git a/Video 126p/video-08.bin b/Video 126p/video-08.bin new file mode 100644 index 0000000000000000000000000000000000000000..47448b7e5b6e567477948fd85afa1ff9d13876c2 GIT binary patch literal 63504 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 r24mB$Dicke5vpsoJ)K9L0+zrZiA}d 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 DM0^Ap literal 0 HcmV?d00001 diff --git a/Video 126p/video-11.bin b/Video 126p/video-11.bin new file mode 100644 index 0000000..3ab8883 --- /dev/null +++ b/Video 126p/video-11.bin @@ -0,0 +1 @@ +fffffffffffffffDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffffffDDDDDDDDDDDDDDDDDDDDDDDDDDADDDDDDDDDDffffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDADDDDADDDjfffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDjfffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDjffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDjfffffffffffffffffffDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDjfffffffffffffffffffffFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffffffffffffDDDDdfDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffffffffffffFDfDffDDDDDDDDDDDDDDDDDDDDDDDjffffffffffffffffffffffffffffDDDDDDDDDDDDDDDDDDDDDDjffffffffffffffffffffffffffffDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffffffffffffffffDDDDDDDDDDDDDDDDDDDDDjfffffffffffffffffffffffffffffDDDDDDDDDDDDDDDDDDDfffffffffffffffffffffffffffDffDDDDDDDDDDDDDDDDDAjfffffffffffffffffffffffFDDDdFDDDDDDDDDDDDDDDDAffffffffffffffffffffffFtwwGDDDfFDDDDDDDDDDDDAjffffffffffffffffffffFtwwwwwDdffDDDDDDDDDDDjffffffffffffffffffffDwUwwwwGdffDDDDDDDDDDDjfffffffffffffffffffFtUwwwwwwDffDDDDDDDDDDDffffffffffffffFDDffFWUGwwGwwGffDDDDDDDffffffffffffFDDDfftUUGwwGwwwdfDDADDDffffffffffffFdfffftUUGwwGwwwdfDDDDDDDDDjfffffffffffffffDfffffVUUGwwGwwwDfDFDDDDDDD_wwwwwwwwwffffffffffDfffffWUUGwwwwwwGfDFDDDDDDĎ_wwwwwwwwwffffffffffFDffffWUUuwwwwwwGfDFDDDDDDD̛YwwwwwwwwfffffffffffDDfffWUUUwwwwwwGfDFDDDD̛YwwwwwwwwffffffffffffDDfFWuwwwwwwwwGfDDADDD̛uwwwwwwwwfffffffffffffDdFWutwwwwutwGfDDDDDDDDDD̛uwwwwwwwwfffffffffffffFdftuwwwwwwwwdfDDDDDDDDD̛UwwwwwwwwfffffffffffffFDftwGtwwwwwwdfDDDDDDDDD̛UwwwwwwwwfffffffffffffFdfDWuGDDDWwffDDDDDDDDDDYuWUwwwwwwffffffffffFdDDdfFwWwwww~wfFCDDDDDAfywUUuwwwwwffffffffffFDDdffftwwwwwgeFDDDDDDdFYWUUuwwwwwfffffffffffffffffFwwwW~GvgfDDDDDDDDAj[UuUwwwwwwffffffffffffffffffDwwW^GDvwfDDDDDDDDDA[UuwwwwwwwffffffffffffffffffFDDtwGDtwGDDDDDDDDDJ̼_UwwwwwwwwffffffffffffffffffffFDVFDDDDDDDDDDDDDä_UUUwwwwwwjffffffffffffffffffffVfDDDDDDDDDDDDDF̈jFDffffffffffffffffffffUwDDDDDDDDDDDDĎjFDjffffffffffffffffffVUwDDDDDDDDDDDD̈jFDffffffffffffffffffVuwGDDDDDDDDDDĎjFDffffffffffffffffffVuwGDDDDDDDDDDĎjFDffffffffffffffffffUUwGDDDDDDDDDDDDĎjFDffffffffffffffffffUUwwDDDDDDDDDDDDDDǍjFDffffffffffffffffffUuwwDDD3DD33DDDD̈jFDfffffFDDfFdfffDfDDwwww3333D4333DDĎjFDfffffdfffFdfffDfDfwwww3333D4233DDAĎjFDjfffffFffffFdfffDfDVUUuw3DDDD42DDDDDDDDDDĎhfffffFDfffffffFffffFdfffDfDVUUuw3DDDD42DDDDDDDDADDDĎhfffffFDDDDDDffFdffffdfdfDfDVUUUw3DDDD42DDDDDDDDADADDDĎhfffffFDDDDDDfffDffffdfDfDfDfwwUw3333D42DDDDDADADDDDDDĎhfffffFDDDDDDfffFDdffdFDfDfDDwwWw3333D42333DDADDDDDDDDDĎhffffffFDDDDDffffFDffdFDdDfDfUUUw3DDDD4"""CDDDDDDADDDDDDDDD̈fffffffffffFdfDFDddfDVU^w4DDDD423CDDDDDDDADDDDDDDDDDDDD̈jffffffdfDDFDdfDVU^w4DDDD42CDDDDDDDDADDDDDDDDDDDĎffffffdfDDfDdfDVUUUw4DD43323DDD4ADDADADDDDDDDDDD̈jffffFdfDdfDdfFVUUUw44333323DDD4"DDADADDDDDDDDĎfFDDDffDdfDdfFDwwUu43#23323CDD4"""ADADDDDDDDDDĎffffffffffffffvwwUuD3333323CDD3""ADDDDDDDDDDD̈ffffffffffffffUUUUuGDD333333D33333DDDDDDDDDDDĎjfffffffffffffUUUUuwDD333333333333DDDDDDDDDDDĎfffffffffffffUUUUuwDD333333333333DDDDDDDDDDDD̈̈ffffffffffffUUUUwwDD333333333333DDDDDDDDDDĎ̈fffffVUUUeUUUUUwwGD33333333333CDDDDDDDDDDĎjffffUUUUUUUUUUwwwD33333333333CDDDDDDDDDDD̋jffffUUUUUUUUUUuwwD33333333333CDDDDDDDDDDDD̼ffZUUUUUUUUUUUwwD43333333333CDDDDDDDDDDDĎffUUUwWUUUUUUUwwD43333333333CDDDDDDDDDDDĎYuwwUUUUUUUwwD433333333333DDDDDDDDDDDDDĎYwwwUUuwwUUuwD433333"#""33DDDDDDDDDDDDDADD̈UwwWUUwwwUUuwD433333""""23CDDDDDDDDDDDDADDD̈UUUwwUUUwwwWUuwD433333"""""1CDDDDDDDDDDDDDDDDD̈UUUwWUuwwwwwUuwDD33333"""""CDDDDDDDDDDDDDDDDĎUUuwUUwwwwwwwwwDD33333""""""CDDDDDDDDDDDDDDDDDĎUUUWUuwwwDwwwwwDD33333""""""CDDDDDDDDDDDDDDDDĎUUUUUwwwGDDDwwDDD3333"""""""CDDDDDDDDDDDDDDDDĎ̼UUUUUwwwGDDDDDDDD3333"""""""3DDDDDDDDDDDDDDDDDˌUUUUuwwwGDD4DDDD3333#""""""23DDDDDDDDDDDDDDDDDܻˌUUUuwwwwGD433D433333#""""""23DDDDDDDDDDDDDDDDDDD̽̈_UUUwuwwwGD4333333333"""""""23DDDDDDDDDDDDDDDDDDDDDݽ_UUUUUUwwwwwwD4333333333"""""""23DDDDDDDDDDDDDDDDDDDDDDDDDDݽ_UUUUUUUwwwwwD4333333333"""""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDݻUUUUUUUUUwwwwD4333333333"""""""33DDDDDDDDDDDDDDDDDDDDDDDDDDDDۻUUUUUUUUUwwwwD433333"""""""""""33DDDDDDDDDDDDDDDDDDDDDDDDDDDDݻXUUUUUUUUwwwwD4333#""""""""""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݻXUUUUUUUUwwwwD4333"""""""""""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݽUUUUUUUUUwwwwD433#"""""""""""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݽUUUUUUUUwwwwD333#"""""""""""""3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݻYUUUUUUUwwwwD333#"""""""""""""3DDDfDDDDDDDDDDDDDDDDDDDDDDDDDݽUUUUUwUwwwwD333#"""""""""""""3DDdfDDDDDDDDDDDDDDDDDDDDDDDDDݽYUUUuwUwwwwD333""""""""""""""3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݽUUUuwUwwwGD333""""""""""""""3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݽUUUUUwwwGD333"""""""""""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݝUUUuwwwGD333"""""""""""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙU^UUuwwwGD333"""""""""""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݝU^UUUuwwGD333"""""""""""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݝUU^UUUuwwGD433"""""""""""""23CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݛUUUUUUUUuwwGD333"""""""""""""23CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݝYUUUUUUUuwwGD433"""""""""""""23CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݝYUUUUUUuwwwGD433"""""""""""""23CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݽݝYUUUUUUwwwwGD433"""""""""""""33CDDDDDDDDDDDDDDDDDDDDDDDDDDDDݻݝUUUUUUuwwwwwD433""""""""""""333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDݛUUUUUUuwwwwwD433""""""""""""33CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙݽYUUUUUUuwwwwwDD33""""""""""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙݽUUUUUUUwwwwwwDD33"""""2""""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙݽUUUUUUUUUUUUUUwwwwwwGD3#"""""3#"""""3DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙYUUUUUUUUUUUUUUwwwwwwGD3#""""23#""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙYUUUUUUUUUUUUUUUUuwwwwwDD3#""""233""""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙYUUUUUUUUUUUUUUUUUUwwwwwD43#""""233""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙUUUUUUUUUUUUUUUUUUUWwwwGD43#""""233""""3CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙ^UUUUUUUUUUUUUUUUUUuWuwwDD33#""""233"""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDݙ^UUUUUUUUUUUUUUUUUuwWUwwD433#""""233"""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3ݙ^UUUUUUUUUUUUUUUUuwwWUww4333""""""33"""23DDDDDDDDDDDDDDDDDDDDDDDDDDDDD433ݙ^UUUUUUUUUUUUUUUUuwwwUuG3333""""""33"""23CDDDDDDDDDDDDDDDDDDDDDDDDDD33333ݝ^UUUUUUUUUUUUUUUuwwwwUuG3333""""""33"""23CDDDDDDDDDDDDDDDDDDDDDDDDD433333ݝ^UUUUUUUUUUUUUUUwwwwwwWuG3333""""""33"""23CDDDDDDDDDDDDDDDDDDDD4DDDD333333^UUUUUUUUUUUUUUuwwwwwwWuw4333""""""2#"""33CDDDDDDDDDDDDDDDDCD433CDDD333333^UUUUUUUUUUUwUUwwwwwwwWuwDD33""""""""""332CDDDDDDDDDDDDDDDDCD3333D33333333^UUUUUUUUUUwwwwwwwwwwwWUwwD33""""""""""3#2CDDDDDDDDDDDDDDDDD43333333333333^UUUUUUUUUUwwwwwwwuwwwWUuwG43#"""""""""""3CDDDDDDDDDDDDDDDD333333333333333^UUUUUUUUUuwwwwwwwUUUwWUwwG43#"""""""""""3DDDDDDDDDDDDDDDD4333333333333333^UUUUUUUUUwwwwwwwWUUUuWuwwG43#"""""""""""3DDDDDDDDDDDDDDD43333333333333333^UUUUUUUUuwwwwwwwWUUUUUuwwG43#"""""""""""2DDDDDDDDDDDDDDD33333333333333333UUUUUUUUuwwwwwwwwWUUUUUuwwG43#"""""""""""2DDDDDDDDDDDDDD433333333333333333UUUUUUUUUUUUUUUUUUUUUEDDDDDDD"BD$"""""""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDDDDDDD$""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDD"""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDD$"""""""""""""""""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDDDDD"""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDDDD"""""""""""""""""""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDD$D""""""""""""""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDDDDDDD$D$""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDD"""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDD$""""""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDD""""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDD"""""""""\UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUDDDDDDDDDDDDD$"""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDUEDDDDDDDDD$""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUEDDUEDDDDDDDDD$""""""UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUDDDDDDDD"""""\UUUUUUUUUUUUUUUUUUUUUUUUUUDDDUUUUUUTUUDDDDDDDD"""""UUUUUUUUUUUUUUUUUUUUUUUUUEUUUUUUUUDDDDDDDD""""""\UUUUUUUUUUUUUUUUUUUUUU|EUUUUEUEDDDDDDD$"""""\UUUUUUUUUUUUUUUUUUUU|wwWTUUUDUDDDDDDDD$"""""UUUUUUUUUUUUUUUUUUU|wwwUUUDDDDDDD$""D""""""UUUUUUUUUUEDTUUUL|GwwWUU$""DDD""""""""UUUUUUUEUUUUUE|GwwUUDD$"DD""""""!\UUUUUUUUUUUUEGwwUUDUD"DD"DDD""!"\UUUUUUUUUUUUEGwwwUUDUE$BD"DDD"!"\UUUUUUUUUUUwwwwWUDUU$BD"DDD"!"\UUUUUUUUUUwwwwWUTUE$DD"""""!"UUUUUUTUUUwwwWUDUD"DD!""\UUUUUUTUUwwwWUDD"BDD""""""UUUUUUEUU\twUUDDDDDD"DD$"!"UUUUUUETU\U|wTUTUEDDD"DD""!UUUUUUETU\wwTUTUEDDD"DD""\UUUUUUEUUULDDTlvWUUTUEDDD"""""R\UUUUUUTUUUlvWUUTUEDDD"!"A%}UUUUUUUUUUUUlfwUUUUUEDDD"""!"T\}UUUUUUUUUUUUlvW\UUDDDDD$""""!!}UUUUUUUUUUUUU\UUUDDDDDDD"""""!UUUUUUUUUUUUUUUUUUUUDDDDDDD"""""R\UUUUUUUUUUUUUUUUUUUEDDDDDDD"""""!%UUUUUUUUUUUUUUUUUEDDDDDDD""""""R\UUUUUUUUUUUUUUUUUUDUUUDDDDDDDD""""""\UU\UUUUUUUUUUUUUUUDDDEDDDDDDD$""""""\UU\UUUUUUUUUUUUUUUDDDDDDBDDDD$""""""\UUUUUUUUUUUUUUUWDDDDDDDDBDD$""""""\UUUUUUUUUUUUUUUlWDDDDDDDDDDD$""""""\UU\UUUUUUUUUUUUlvwEDDDDDDDDDD$"""""""\UU\UUUUUUUUUUUUUlwwGD333D43""D$""""\UU\UUUUUUUUUUUETuwwG3333C43#""$""\UUUUUUUUUUUUUUEUlwwG3333C433""B$"!"\UUUUUUUUTUUUUUEnwG3DDDD43DD"B$!"""""UUUUUUUUUUUUUUUUTUUUUUEnwG3DDDD43DD"B$!B$""!""""\UUUUUUUUUUUUUUUUUUTUUUUUElnwG3DDDD43DD"B$"DDD$"!"!"""""""""!\UUUUUUUUUUUUUUUUUUTUTUTUUwwwG3333D43DD"DD""""D"!"!""""""""""""""!"\UUUUUUUUUUUU\UUUUUTUTUTUUUwwwG3333D43D$"DD""""D$!""""""""""!""""""!"\UUUUUUUUUUUUUUUUUTUUUTUUlnvw3DDDD433#BDD"DDDD$""!"$"""""""""""""""!"UUUUTUEUTUUl~w3DDDD433DDDD"DDDD$"$BD"""""""""""""""!""UUUUTUUUTUUlnw3DDDD43DDDDD"DDDD$"DBD$""""""""""""""""!"UUUUTTUUUUUenw3DDDD43DDDDD"DDDD$"D$"DD""""""""""""""UUUUUUDUUEUUUfnw4DDDD433DDDD"""DD$"D$"DDD"""""""""""!"UUUUUUUUUEUUUUwwgw4333C433DDD$!"D$BDD"BDD$"""""""""!"UUUUUUUUUUUUU}wgwD3333333DDD$""""DDBDD"BDDD"""""""""UUUUUUUUUUffwGD433333DDD""""DDDDDDDDDDD""""""""\UUUUUUUUUffwGD433333CDD""""DDDDDDDDDD$"""""""\UUUUUUUlfwGDD33333CD$""""DDDDDDDDDD$"""""""UUUUUlfvGDD333333D3#"""DDDDDDDDDD"""""""\UlvWDD33333333#"""DDDDDDDDD$"""""""lnwwDD33333333#"""DDDDDDDDD$"""""""fnwwDD333333333"""DDDDDDDDD"""""""lfnwwGD333333333"""DDDDDDDDD"""""fffffffnwwWD333333333"""DDDDDDDDD""""""lffffffnvwWD333333333#""DDDDDDDDD"""""""fffffffffwWD333333333"""DDDDDDDDD"""""""ffffnffffwWD33333333""""DDDDDDDDD"""""""lffwwwfff}fffwWD43333333""""DDDDDDDDD"""""""""lffwwwff}wwffwwD43333333""""BDDDDDDDD""""""""""lffwwfwwwffvwD4333333#""""BDDDDDDDDD""""""""""""lfwwfwwwgfvwD4333333#""""BDDDDDDDDD$"""""""""""lfw}wwwwfvwD4333333#"""""DDDDDDDDDD$"""""""""""lf}wwwtwwwwwDD33333333#"""DDDDDDDDDD$"""""""""""lf}}wwGDwwwwGDD33333333#"""DDDDDDDDDD$"""""""""""lfffwwwGDDDwwDDD33333333#"""DDDDDDDDDDD""""""""""""""""fffvwwwGDDDDDDD433333333#"""DDDDDDDDDDDD""""""""""""""""lfffvwwwGDD4DDDD333333333333"DDDDDDDDDDDD$"""""""""""""""lffvwwwwGD43CDD3333333333333#DDDDDDDDDDDDDD""""""""""""""fffwwwwwGD333333333333333333#DDDDDDDDDDDDDDD$"""""""""D""ffvwwwwwwD433333333333333333#DDDDDDDDDDDDDDDD""""""""DDDDfffffvwwwwwD433333333333333333#DDDDDDDDDDDDDDDDD""""""BDDDDhfflfffvwwwwD4333333333333333333DDDDDDDDDDDDDDDDDDDD$"BDDDDDhfflffnfwwwwD333333333333333333CDUUDDDDDDDDDDDDDDDDDDDDDDDDDfffffffwwwwD333333333333333333CDUUUEDDDDDDDDDDDDDDDDDDDDDDDhfffffffwwwwD333333333333333333CDUUUUDDTTEDDDDDDDDDDDDDDDDDDfffffffwwwwD333333333333333333DDUUUUUUUUEDDDDDDDDDDDDDDDDDDifffffnfwwwwD333333333333333333DTUUUUUUUDDDDDDDDTEDDDDDDDDDDfffffnfwwwwD333333333333333333DTUUUUUUEDDDDDDDDUUEDDDDDDDDDfffvwfwwwwD333333333333333333DUUUUETUEDDDDDDDTUUDDDDDDDDDDfffwwfwwwG4333333333333333333DUUUUEDUEDDDDDDDTUUDDDDDDDDDDiiffwwfwwwGD333333333333333333DUUUUDDUEDDDDDDDTUDDDDDDDDDDDffffwwwGD333333333333333333DTUUUDTUEDDDDDDDDDDDDDDDDDDDD晙ffwwwGD333333333333333333DDUUUDTUEDDDDDDDDDDDDDDDDDDDDfffwwwGD333333333333333333CDDDDDDUDDDDDDDDDDDDDDDDDDDDDfffwwwDD333333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffvwwGD333333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDffvwwGD333333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffnffvwwGD433333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDnfffffvwwwwGD433333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffvwwwwGD433333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffvwwwwwD433333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDnffffffvwwwwwD433333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffwwwwwwD43333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDiiffnfffffffwwwwwwD4333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffffffwwwwwwDD333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffffffvwwwwwwDD333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDiffffffffffffffff}wwwwwwD4333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffff}wwwwwwD433333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffffff}wgwwwwD333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDiffffffffffffffffwwgvwwGD333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3iffffffffffffffff}w}gvwwD4333333333333333DDDDDDDDDDDDDDDDDDDDDDDDD4333433iffffffffffffffff}wwwfwwD3333333333333333DDDDDDDDDDDDDDDDDDDDDDDDD3333333ffffffffffffffffwwwwwfww33333333333333333CDDDDDDDDDDDDDDDDDDDDD3DD3333333nffffffffffffwwwwwwwgwG33333333333333333CDDDDDDDDDDDDDDDDDDDD43CD3333333nfffffffffff}wwwwwwwgvG33333333333333333CDDDDDDDDDDDDDDDDD4CD33333333333nfffffffffv}wwwwwwwwgvw33333333333333333CDDDDDDDDDDDDDDDD433C33333333333nfffffffffwwwwwwwwwwwgvwD3333333333333333CDDDDDDDDDDDDDDDD433333333333333nffffffffvwwwwwwwwwwwgfwDD333333333333333CDDDDDDDDDDDDDDD4333333333333333nffffffffwwwwwwwwwwwgfwwD333333333333333CDDDDDDDDDDDDDDD3333333333333333nfffffffvwwwwwwwwwwwgvwwG433333333333333DDDDDDDDDDDDDDD43333333333333333DDDDDDDDDDDDDDDDDD43333333333""2#"""""""wDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD333333#""""""""""""""""""wDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33333#""""""""""""""""""!!wDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333"""""""""""""""""""!""""!""wwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD333333#""""""""""""""""""""""""""wwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333#""""""""""""""""""""""""""""wwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD33333#""""""""""""""""""""""""""""wwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333#"""""""""""""""""""""""""""wwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD333333333"""""""""""""""""""""""wwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD333333333"""""""""""""""""""""wwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD4333333333333"""""""""""""""""wwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3333333333333#"""""""""""""wwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433333333333333""""""""""""wwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD43333333333333#"""""""""""wwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD433D3333333333#""""""""""wwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDDDDDDCDD433333333#"""""""""wwwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDL4CDDDDDDD433333333""""""""!wwwwDDDDDDDDDDDDDDDDDDDDDDDDDLDDDDDDD433333333""""""wwwwwNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD43333333#""""""wwwwwDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3333333#""""""wwwwwwNDDDDDDDDDDDDDDDDDDDDDNNLDD333333#"""2#"""""wwwwwwwDDDDDDDDDDDDDDDDDDD43<333333UUUU=3;333""SUUU53333333,""UU33<3<,"""""""!,"""""!"""!"UUUU[D)"""""""""""""""""""""""""""""""""""[[u""""""""""""""""""""""""""""""""""[Zu""""""""""""""""""""""""""""""""""UUZG"""""""""""""""""""""""""""""""""""UUwG93""""""""""""""""""""""""""""""""""""UUUUwD33""""""""""""""""""""""""""""""""""""[UUUUuD3333""""""""""""""""""""""""""""""""""""[UUUUUyuD33333#"""""""""""""""""""""""""""""""""""UUUUUUyuD333333"""""""""""""""""""""""""""""""""""UUUUUUzwDD33333"""""""""""""""""""""""""""""""""""ݽݽ[UUUUUywGD933"""""""""""""""""""""""""""""""""""ݻUUUUUUywwD)""""")"""""""""""""""""""""""""""ݻUUUUUUUzwwG"""""""""""""""""""""""""""ݽUUUUUUUUwwwG"""""""""""""""""""""""""""ݽ[UUUUUUUwwwG)"""""""""""""""""""""""""""ݻ[UUUUUUwwwG)"""""""""""""""""""""""""""ݻ[UUUUwwwG)"""""""""""""""""""""""""""ݽݽUUUUwwwG"""""""""""""""""""""""""""""ݻݽUUUUUwwwG"""""""""""""""""""""""""""""ݽUUUUUwwwG"""""""""""""""""""""""""""""ݽ[UUUUUUwwwG"""""""""""""""""""""""""""""ݽUUUUUUUwwwGD"""""""""""""""""""""""""""""ݻUUUUUUUUzwwwGD""""""""""""""""""""""""""""""ݻ[UUUUUUUUUZwwwGD""""""""""""""""""""""""""""""m[UUUUUUUUUUUUwwwGD93"""""""""""""""""""""""""""""m[UUUUUUUUUUUUuwwuwwwGDD33"""""""""""""""""""""""""""""mU[UUUUUUUUUUUUUZUwwwuwwwGD3""""""""""""""""""""""""""""""fUUUUUUUUUUUUUUUZUUwwwwwwwGD33""""""""""""""""""""""""""""""ݽUUUUUUUUUUUUUUUUUUwwwwwwwGD9333""""""""""""""""""""""""""""""ݻUUUUUUUUUUUUUUUZUUUwwwwwwwGD333333#""""""""""""""""""""""""""""""[UUUUUUUUUUUUUUUUUUUUwwwwwwwwD9333333#""""""""""""""""""""""""""""""ݽ[UUUUUUUUUUUUUUUUUUUwwwwwwwwwD93333333#""""""""""""""""""""""""""""""ݽUUUUUUUUUUUUUUUUUUUUUwwwwwwwwwD93333333#""""""""""""""""""""""""""""""]UUUUUUUUUUUUUUUUUUUUUuwwwwwwwwwD9333333333#""""""""""""""""""""""""""""""\UUUUUUUUUUUUUUUUUUUUUvwwwwwwwwwGD9333333333#""""""""""""""""""""""""""""""VUUUUUUUUUUUUUUUUUUUUgvwwwwwwwwwGD333333333#""""""""""""""""""""""""""""""mffUUUUUUUUUUUUUUUUUUUfvwwwwwwwwwGD333333333!"""""""""""""""""""""""""""""fffVUUUUUUUUUUUUUUUUevwwwwwwwwwwG33333333!")""""""""""""""""""""""""""fffVUUUUUUUUUUUUUUUevwwwwwwwwwwG93333333!")"""""""""""""""""""""""""lffffUUUUUUUUUUUUUewwwwwwwwwwwD93333333!""""""""""""""""""""""""""ffffUUUUUUUUUUUUUewDtwwwwwwwwD9333333!")""""""""""""""""""""""""fffVUUUUUUUUUUUUewDtwwwwDDwDD333333!")"""""""""""""""""""""""fffUUUUUUUUUUUUewDwwwwDDDwDD333333!")"""""""""""""""""""""""lfffUUUUUUUUUUUuwwwwwwDDDtD9333333!"""""""""""""""""""""""ffffUUUUUUUUUUuwwwwwGDDDDD3333333"""""""""""""""""""""lfffVUUUUUUUUUuwwwwwGDDDD3333333!)"""""""""""""lffVUUUUUUUUuwwwwwGIDD93333333!)""""""""""""ffUUUUUUUUvwwwwwG3333333!""""""""""""fffVUUUffefwwwwwD93333333!""""")""lffffffffffwtwwGD93333333!)fffffffffffGDwwGD3333333!"fffffffffffwwwwDD3333333""lffffffffffwwwwGDDD3333333""lffffffffffwwwwGDtG93333333!""fffffffffffvwwwGDwD933333333!2"fffffffffffffwwGDDG33333333331"lfffffffffffffwwDDtG933333333333ffflfffffffffffffvwwDDtDD933333333333lffffffffffffffvgffwwwDDDDDD333333333333lffffffffffffffwwgwwwGDDDDD333333333333fflfffffffffffffffwwwwwDDDDDDD333333333333lfffffffffffffffffffwwwwwDDDDDDD93333313lfffffffffffvgffffvwwwwwDDDDDDD93333lffffffffUUgwwwwwfwwwwwwDDDDDDD93333)lfffffffVUUgwwwwwwwwwwwwGDDDDD9333"lfffffffVUUgwwwwwwwwwwwwwGDDDD9331fffffffffUwwwwwwwwwwwwwwwGDDD9331ffffffffffwwwwwwwwwwwwwwwGDDD933313lfffffffffvwwwwwwwwwwwwwwwwDDD9331313)lfffffffffwwwwwwwwwwwwwwwwwGDD933133133lffffffffwwwwwwwwwwwwwwwwwwwGD933333133lfffffffwwwwwwwwwwwwwwwwwwwwDD931333331333fffffffvwwwwwwwwwwwwwwwwwwwwDD9313333333"393lfffffffvwwwwwwwwwwwwwwwwwvwGDD9333333333333)"333339lfffffffffvwwwwwwwwwwwwwGDwwwwGDD9333333333333233333333333fffffffffffwwwwwwwwwwwwwGDDwwwGDDD33133333333393333333333333ffffffffffvwwwwwwwwwwwwGDDtwwwDDDD33133333313339333333333333333ffffffffffvwwwwwwwwwwwwDDDwwwwDDDD33333333133393333333333333333ffffffffffwwwwwwwwwwwwwDDtwwwwGDDD3333333313393333333333333333ffffffffffwwwwwwwwwwwwGDDwwwwwGD933133333313393333333333333333fffffffffwwwwwwwwwwwwGDDDwwwwwGD333133333313393333333333333333wwgfvwwwwwwwwwwwwwwwwGDDtwwGtwDD333333333333393333333333333333wwwwwwwwwwwwwwwwwwwwwwDDwwGDDDDD933333333333333333333333333333wwwwwwwwwwwwwwwwwwwwwwGtwwDDDDDD3333333333933333333333333333wwwwwwwwwwwwwwwwwwvwwwwwwGDDDDDD3333333333399333333333333333333wwwwwwwwwwwwwwwDwgvwwwwwwDDDDDDD9333331333333333333333333333333333333wwwwwwwwwwwwwwDtwwwwwGDwwDDDDDD333333333333133333339333333333333333333333333IDDDDwwwGDDwwwwwGDDDDDDDDDD3333333333333333133333333333333333333333333IDwwwwGDDDDDDDD99333333313313333333333333333333333333IwwwwDDDDDDDD39333331333333333333333333333333339DDDD9393333333333333333333333399393333393333333133333333333313333333333333333333333333333333333333333333333333333333333333333331333333333933333333333333333333333311339333333333333333333333333333333333333333333333333333339333333333333333333333333333933393333133333333333333333333313333333333333333333333333333333333333933333333333333333333333399333333333333331133333333333333333333331333333333333933333313333333333333313333133333333333333193333333333333333333313333933333333333333339333333333333333333333333333331333333333333339333333333933333333333333333333333333333331313333333YUUUUUUUUUUUUUUUUUEDDDUUUDUUDDDDDDDDDDDDDDD""""""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUEDTUEDDDDDDDDDDDDDDDD""""""""""""""""""""""""YUUUUUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDDDDDDDDDD$"""""""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUUEDDDDDDDDDDDDDDDDDDDDD$""""""""""""""""""""""YUUUUUUUUUUUUUUUUUUUUUeUDDDDDDDDDDDDDDDDDDDDDDDDD"D""""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUeUDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUeVEDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""""""""""""UUUUUUUUUUUUUUUUUUUUUUfVUDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""""""""""""""UUUUUUUUUUUUUUUUUUUUUUffUEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"BDDD"""""""UUUUUUUUUUUUUUUUUUUUUUffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""YUUUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""YUUUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""YUUUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""UUUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""YUUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"""""YUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""YUUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""YUUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""UUUUUUUUUUUUUUUUUUUfffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""""YUUUUUUUUUUUUUUUUUUeffUEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""UUUUUUUUUUUUUUUUUUeffUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""""""UUUUUUUUUUUUUUUUUUfffVDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$B"""""""YUUUUUUUUUUUUUUUUUfffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDB"""""""""UUUUUUUUUUUUUUUUefffVUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"""""""""""UUUUUUUUUUUUUUUUffffVUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""""""""UUUUUUUUUUUUUUUUffffVUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"""""""""""YUUUUUUUUUUUUUUeffffUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""""""YUUUUUUUUUUUUUUeffffUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""""""UUUUUUUUUefVUUeffffUUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""""""UUUUUUUUUffffVeffffVUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""""""YUUUUUUUeffffffffffVUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"""""""""UUUUUUUeffffffffffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""""""""YUUUUUUUfffffffffffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""""YUUUUUUUffffffffffffUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""""YUUUUUUeffffffffffffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$D""""""YUUUUUeffffffffffffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""XUUUUUfffffffffffffVEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD""""""gVUUUUfffffffffffffUDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$"""""xwfUUUefffffffffffffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD$""B"wwwwgUUefffffffffffffEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwUefffffffffffffVDDDDDDDDDDCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwgffffffffffffffVDDDDDDDDD4CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwgffffffffffffffUDDDDDDDDD43DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwffffffffffUUffUDDDDDDDDD3#"""BDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwgffffffffVUUeVUDDDDDDDDD3#"B""DDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwffffffffVETeUEDDDDDDDDD3""""DDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwffffffffVDDUUEDDDDDDDC333""""DDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwfffffffUDDTDDDDDDDDD3333""""DDEDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwfffffffEDDDDDDDDDDD4333""""DDEDDDDDDDDDDDDDDDDDDDDDDDDDwwwwxwwwwwgffffffEDDDDDDDDDDD4333"""DDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwxwwwwwfffffffVDDDDDDDDDDD4333!BDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwfffffffVEDDDDDDDDDD3333"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwwwwwffffffffEDDDDDD3DD43333BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwwwwwwffffffffEDDDDDD33333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwfffffffVEDDDDD433333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgwwfffffffVDDDDDD333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgfffwfffffffVDDDDD4333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwwwwwwwwgfffffffffffVEDDDD3333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwgffffffffffffEDDD43333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwwwwffffffffffffVDDD433333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwxwwwwwwwwwwwwwwwwwffffffffffefVDDD333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwwgfvgfffffffffffefEDDD333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwwwwwwwwwfffffffffffffffUfEDD4333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwwgffffffffffffffUfEDD4333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwgfwwgfffffffffffffffVfEDD3333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwwwgfgfffffffffffffffffVVDD43333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDxwwwwwwwwgffffffffffffffffffffVDD43333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgffffffffffffffffffffUDD43333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwwwgffffffffffffffffffffUDD4333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwggfffffffffffffffffffffUDD4333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwfffffffffffffffffffffffVDD4333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwfffffffffffffffffffffffVDD4333333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwfffffffffffffffffffffffVDD433333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwwfffffffffffffffffffffffUDD43333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgfffffffffffffffffffffffUDD43333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgffffffffffffffffffffffVEDDD3333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgffffffffffffffffffffffUEDDD3333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgfffffffffffffffffffffVUEDDD3333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwwgffffffffffffffffffffVUUDDDD333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwwwgfffffffffffffffffffffVEDDDDD333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwwwwwwwgfffffffffffffffffffffffVEDDDDD333333CD43333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDwffffffffffffffffffffffffffffffVUDDDD4333333DD43333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffffffffffffffffffVUDDDD43333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffffffffffffffffffVUDDD433333333333333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDfffffffffffffffffffffffffffffffVEDDD333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDffffffffffffffffffffffffffffUUUUDDD4333D43DD3333133DDDDD4CDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUUUUUUUffefffffffffffVUUUUDDDD33CDDDDD43333CD33333DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUUUUUUefffffeffffVUDDDDDDDD3DDDDDD43333CDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDeffffVUUUUUUEDDDDDDDDDCDDDDD333ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDUfffUUDDDDDDDDDDDDDDDDCDDDD3331DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD3DDDDDDD3CDDD4333CDDDDDDDDDDDDDDDDDDDDD$"DDDDDDDDDDDDDDDDDDDDDDDDDDD43333333333333333ADDDDDDDDDDDDDD333!DDDDDDDDDDDDDDDDDDDDDDDDDDD4333333333133DDDDDDDDDD43333!DDDDDDDDDDDDDDDDDDDDDDDDDDD33333333313433333DDDDDDDDDDDDDDDDDDDDDDDDDD3333333333DDDDDDDDDDDDDDDDDDDDDDD4333333333333DDDDDDDDDDDDDDDDDDDDDDD4333333333333DDDDDDDDDDDDDDDDDDDDDDDDD333333333333DDDDDDDDDDD4CD43CDD33CDD433333333333DDDDDDDDDDD43DDDD3333C43333333333333DDDDDDDD3DDDDDDDD3C333433C333333333DDDDDDD43DDDDDDDDDD433433333C33333DDDDDDDDD3DDDDD4CDD33333333333333333DDDDDDDDDDDDDDDD4CD33333333333333333DDDDDDDDDDDDDDD43333333333333333333DDDDDDDDDDDD33133313333333333333DDDDDDDDDDD333333333333333333DDDDDDDDDDD333113133333DDDDDDDDDDDDDD333333333333333DDDDDD433DDD433333333DDDDD433333333D333331DDDDDDDCDD433311D43333DDDDDDDD33DDDDD4D3313331333DDDDDDDDD333433D43DDDDDDDDD433DDDDDDDDDDDDDD4333333DDDDDDDDDDD3333333333133333DDDDDDDDDDD4333333331333333333DDDDDDDDDDDD433133333333333333333CDDD333333331333333333333333331333133333D333CD433333331343431333333333433333333331333 \ No newline at end of file diff --git a/assets/6x8 font/LICENSE.txt b/assets/6x8 font/LICENSE.txt new file mode 100644 index 0000000..00e4e50 --- /dev/null +++ b/assets/6x8 font/LICENSE.txt @@ -0,0 +1 @@ +The 6x8 pixel font used in the program is a slightly modified version of the "even" font created by Christian Munk (CMunk), which can be found at https://fontstruct.com/fontstructions/show/275268/even_2. The "even" font is lincesed under Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0). Original License URL: https://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/assets/6x8 font/char 6x8 v3-3.png b/assets/6x8 font/char 6x8 v3-3.png new file mode 100644 index 0000000000000000000000000000000000000000..ace7812ffcd9a6e5f328eeaaeafe8a914ceb7ba9 GIT binary patch literal 2133 zcmV-b2&(sqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf2kJ>gK~#8N?VX8o z(P3TPGTy$}hoE?lalbl=QCYoVhYSAxh zinEQHYi3#`YK|2jr++qdi7QwjLpeL$ba|+Ce!rb>2bdk!WCI;XU)g+#EgKwTNv8?h zU5`CRt)ugy7X7B0`>`$hx>wO@=L2N2EjU?>)!dh`Uss1QG0t>a2K$R~oKJG?L3v$= zxSy=9wTu{dKENuV!%1SS>{(+b>K?D+RycOcTD&29*1tmi9Gy4r&+;>{B5s!EF?mL| zVMi}=%CzT4<|8`*ZYUR+EtYX+m9wIYyLV3OTVZZu`(zD7{>*p!9r!hV@r0b-Lcg8p z*OOs9wms7X$D;G|+~YVmaa_%-v4|S)m*BjH0FE@JOqz3 zoAI3W7$-Y@JU)MkF&0Fo*+$I?Gi@(>bEpsY65;yn7i~sk&W&Q6-#Y8bM%`oG>7V7! zZ1!~?;qi}G;3{#YRdLa7-;6C9=N#*?@%!a8#Z z#(q1%=s3l3PD*5t8f(OQp2xeWd0ZBzRt9GPpyq!xW9{tx#V=%)3?5Z@eV%N8fwWYI>x%Ey>VynW)G$TrC} z!MWlk?s|Z3A|BMO@Zs^HSUn(uhaT^HQ9N@^^WE(;&<)1&m7Pp{NZgDpPCi*Lw#Bi? zG-Dqly~<}+dd6K|fnMCC!CO#mmTc0Zp80xBQ=I!!uKEgegDjER$VwNL&m=aY82fW9 zD$R9BrwQrT&@O%jDtTAnkx}37(POWLnxJMo@76lx$ICVo?bIqReg(!wk+=z>^EccK z`c?L$$ojn&u@>iB`gr}2e{#+T=%<_KX&b3@+5O~nahWEnIFZF>^`c)ECv1-}uFDxU zA}!i&>oku^Wf#^)pMi3Y$$Ym~6^U_%S|rmZ^(vSv=Dh~&E%sUU9oHwKZ>F6Nkd9S> zYr&=>opwvOxl|8Xb)TqE^{Orx|OjLpJhvkFi(VoXeW;nI@)jj1ki~!C2b_ z$9oyQg-)7@teWFOe-m+^G{5E=(;xD;ATIQtaP97E%f86h{=)M~>;&dEww+#qE|@u9 z6W2Rpk(W@dzp{7m&>YvTZ_C=5+oWG&rVTS$9B<8Ks+@b_ChqNN3zK^E@i@j+F@odQ z5BVqOE(ho*Q>Z+jxFa-SyNH^gUQy+=y_&D+{I_a1{~@m?*Z}7%O=zyma}hOR8#Tjm zMVIpunB$OqpVz57HK~O0ZcT7L(IWQUL##)pTILsZYtc80t+21j>X}Ktj`kJE=C>@s z$T#{km+_qU%#U>XB-VGXQR6JmHu}#ymy(8nQ@#}~DlXLUmf%k$>c17ir**VWN#_;a3h;xzI zI{wrv&>NF2xzc2}jbo9;*vFb+yy)iDI79mDE%d>Nhq~f?fLUO7@*?V8Y>ZjW%_OIw zM*DB)^cl#-$4wI25MHJlI|u!xD}eLM^2Z=v1B_;9cN zl)HXci@j7ne+li_X&1a1+{ErcMbx>WM`-Th(t5v{*SFB8=I!l2gCp;1@exG*00000 LNkvXXu0mjf2`Wq7 literal 0 HcmV?d00001 diff --git a/assets/6x8 font/char 6x8 v4.png b/assets/6x8 font/char 6x8 v4.png new file mode 100644 index 0000000000000000000000000000000000000000..0569e37957342a6245fa87efcfeb02aa25f6c1a9 GIT binary patch literal 1956 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 GFaB?N_I_Xh literal 0 HcmV?d00001 diff --git a/assets/keypad/Expanded 0.png b/assets/keypad/Expanded 0.png new file mode 100644 index 0000000000000000000000000000000000000000..307ab70a28e66c890144e1c85a94c0823c8915a6 GIT binary patch literal 21594 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

S9jkVNT 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ⅆIL=;xVehl=5T%H8+M`wP1?OlI25^@^xT*<& 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 HR|EbBu@Up2 literal 0 HcmV?d00001 diff --git a/assets/keypad/Keypad 0.png b/assets/keypad/Keypad 0.png new file mode 100644 index 0000000000000000000000000000000000000000..2a17c68127af340c92f0ae4f3b04020cf6158b05 GIT binary patch literal 20780 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 literal 0 HcmV?d00001 diff --git a/assets/keypad/Keypad 1.png b/assets/keypad/Keypad 1.png new file mode 100644 index 0000000000000000000000000000000000000000..db13d377e5d135f4bcec7fb6094edde282d6fd7d GIT binary patch literal 43912 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 literal 0 HcmV?d00001 diff --git a/assets/keypad/Keypad 2.png b/assets/keypad/Keypad 2.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7a6cf55e6d844851ed10d294a623585c6949ba GIT binary patch literal 96108 zcmeFac|6o@`#&6AQiSUYDQl%t6fH8cRzi|3TlTU`jKWxkp%ft$iL4=%Wn^E+kRpVJ zY=befFJodD%NU;XL)UWO_tpJ8-`DT={MNg_J}<^+&ht3W^Ei(8`*Tb7TJBV8s6~R@Li6(MX&>CNyyI zztdurOAy!TWIvIIdgo+k-YK2pOge>q-E<4JYmRR$=2z_I1DT@Ep!#^&(~rRtr50Vc zw&xq{v&2Ev<^y3ohB5rthPidd4{MR4K`Tc-z+){gtp!34Rc#VX{0GB_=}eDTj_9*f z)E^I?!aiJPgC0DSEm)*4@i)*|f2F8r@&EB%(8HVpmdoX#bodg_fw369^M8C7^f2s; zI!@eqm!B+g;j_fsdw+Zv^iWS*yI%9#H)(=}f2_sz(LcTmdI(!uN%t52aJLG(?eu>p z_>U`CS~7s>JCZcVcsYxoEkALW)_<(`KXCtRV_V5(cZVaN39BBBx^_nGO!JAt!^qik zyZLn*xzFbHx1SxxsfHE(6{)!ooFc`>PEYj>jM629$PCQP<&~`|}{trLk!$VJz!kI>Q8HyTm<&Sjwndr=0v{B+-MQCWu zT~jQy5TIXg z7;aQ{c+nTTqsEi{6c)j>Gc2av7?!Ag@XXTA;iro9Nv+9S82Y}kQap}gERvX~*e&EW z@@!#cFsy2!UA+-(wDx4zr2!8SiR$H4v+JVCs8xqmm5s^FWM`SYRkG*WTti3q9`Y@e zZ1T|c8V7bVuFglYl zOC{?>D~DNn;EW^nPQ8KZ7I{8@edot7C)p zq+34*k>w31g*HG&!91PKJ%=74jArcvdI*Df$2_N)Bbmu4?|10v2*vdtf=0*07k#9V z2^_Qd>YSm4uY19_5V512n$knB6w#boa(4^rc^zNdm{#KA!-T`74`DXmW+urjZ(n~T z;dAh%RrvV_dFsy?XB$P5uTlG5+pJR_?PZx&JsM}9YTbAw=32Pi{HKf{%G65HR95zm z4O{H`VjiizzkFkz7C@W+T7Q7jSD91LBw9-@7I4fheu0_Jz{M}7h0BN<-F}(Q-D{mjE#g^tbKcxyg`EdRerUaagQCOy3RL> zFt>@|rmK9Dny#H~;mRpqFn?uKA1=VxZ`*vblz+K8DX-%C3aolAj5w}!`Xg84(fB)& zr~}Voezd;9c3Phgr6uYSkGV8G{tmfRlS09eeI?4l)?&qKJs!>TqdTt36oNA#(xIj3 z`<-&xuX0iFqEKovMPVo--uddrUd^*DlC{3gheA(8^80+Rt)qU^{R|(cjK#x`iX^yP zDtON#c34>D$<8FsI0ibY(6z@NZ1+-+_>94^rE$d#ukW5{a9Hn?v2*o&jTe~(o_{{q zZCcwFZ}Y;a9h>jfw2;H7NzRvoX5CH9LOwUi84e3a@q`9O))P-rT5z|8v0l_*yO16x_*f)%gHCP)v*ukp zEq+LgA+!7G$&#K!FK<5B^`OrV7cb*<a~!Q3B=Uou*~@W#k8Z&Wme z%eSX!`CBOSV5ub5JK~Ed-oCW7#c_RQTx+&sS{xZup4yNPjBVFyvR6KaGWOCgNo`{X zp7tr#uMnII+fP(f6W>^AVL9;u>ki*vJJ7wh@ht@RI8^)~o!Tc+MhX^5ibauMm^iE1 zCV7n!X)o4MQ)J&lYi<|2gu5ygnKzS2J26QUOR@=@F=ao9xQ8U?EqO|{BtrMj^DaA`YYdAu&`g^@cqQVe%BvO6GEF+lPrQ5>KwlZ`_pXa^bug&{o+gsXzlg)tP+P^ThH5l$DD}LQt+Aw-V)?0}upWLp9IPc)TczY#qq-Hv4T>V- z_~b>9_PSf5+{=o6QB$065QV@mF)w8*K9@40bY25d7&G+cU`W7eAR3rJT1=$e0vSqTZhA zr+moD)av=@ydpWFQ1O_`Px6%(n{S>)a= z>)_6tSOy{98nwAu`Wu~HLG#wUqG0kl-av=q|!w{h*Z8}b-r8Ko{ z_TZu=kJ<8Zyp2X118nrU?vAB{E$jOl_J|QJ_2MQI3|1d{bs5>QRaYMXkcnccy6XDtT$| zSSfws8^23F+wwj-+kkDnQ+uQfm>zqzgf~2gBeLN724CiQ1@)8S%)7dFr9n4#(E-f` zK@&gqINw(p*wWlo%yr{vzE#<*rCCw2F_8V-^vwo4_=`kIk7X@Ag#A`W&^*4wFerTk z#40VRo|^$T6W<)ZGw$O$u#;kQ9g67CAr5P!gRqe<;rC3lfQ`|G19mnl#PH2V4F{h+?9W5qUaZU_Ea9J3i&{W|ly)PRu+w z&4fN}RLM2Hrk?*9Ht17}KjYSJ+b##Npv-Bk%;EP69qNZ#UvFQ`~+V1yvSC(k2q zYG5mxhkIXGn{eVjJo*`;&1iogQq3@U>M~d<8?DNIB+l zk#M%^B6Q?!_=B81X3EH}AUmU=vMH&|gnLajOq^4=l$4fMda9BUUzC20gVGpC=d`-* z4GN`x<+VUsDlUbHq4zCU$DG0@YQgdz#Mx~(N6Nw06AgaLH7cIIobGB+H0KBWb!oq& zK8}3x(S3}cgL?%}O9IO|WTlL6Y`PMDW|CL$Nk5W|amaradZb8{Xqh?ov@JA?Ku!Q)cgAo}{crY^%hb?rC3x?1jFy5>ev9!4w5;=l+)$$ZBrY29*YS59^aS zy;!8_8qPlO6u(k9iV|NdgS%BwcMxI&&~2`BA94=-$2g$)MZphHOo0Yc#8MxtQ zyzrG#lR~bO!~%lcgdDOZi9-e(hS5l5Ps|mWZV5cuvOu;?=0FH5zXV<)fY#1*O6IpQ zk7ZR6$x^HzPVg}GT)hhNUSD6Z?S=8XpF_~QLoCXyFvAS9MHns!o*$`|`No0D-%fJ-6o*MvxYm($55o>lL4Kru zkh!hz&1|`aFG{sem&pTh>4RgXz~MTPvh%9(gu@zz98{3tD^$u+*1P|J9Aajx@ooEKlj=@0I0ho4w__G8)6|c&9wYPnDK&J8-}4zM_n4v4cYbr1Q4P z!bWY}e9`69;@7jSvgD%XfQgW|RK$EP+_za=16D+m!3{0srhYpwC6RjQT~ZEXYpd7H zRJQktFkDIzqQ%HA@tl2F5VX}nJf|bAm67H6#rCPE-Kjd0PJV&ZYNr=H%z>$OW5#q+ zE1&O|n`Dcb!LK(KWE|ik-ilq*r?8`Gtk-)7oeD{pmC4zbnXn3w#>})|oGe{&GN_rn z^31kzmH2tK94#qEbi3g=qvWHEY^)Edjy5#!6(^}dq?IYt9@*fsi3BI3Uck8pENso!QgQV@}*o%%T5rP6a`8%OYq%Nj>njYIp*%hAsf-7;76Jze1`BFFR+jLGGkly*UwY3`JFb%U+jmd& zA4p`O$oiyVnklCNPsXu+dxI3RW~&AjlNEb%Dn7} zZYk8fl4q~Aud-U4JTu-{O`GNG$F9rAkv^JebsY>b8qel!0wyg4NgWf`Brz|?NN@SW z*m1{*JnvN}R3VEr=^#NAf}H_ z5q*YNjJP2C39p;kd+Ycj*KwkrDKKMH-no4KRQzD&G9b`ir1-O5ofzMom;x2lv7~86>vP0j5@igp|IXQof`KYOs2}I@|S0RZ9G}pZyA$e z$XzsjnaAcpofs6?&S3$1@%!%MB-ekv&6P%%AsxiuF)I|~u>GjZkXcZRj;iAOuFO)_ zBl56)s$VD!Hxk`~DKgzlN`KdA-sK_mExyVq(}V?{*0>!**J*K%ETJEPn! zeI2SI^=42DN8jn*LIqj4DO{w<=84S*d)>)1#p!!fjv``paAXECv$bv3T6GYvt;qsdF^IMP~p?uylrt$Ot@Q+oaPBpG{nE%9mGN_}0EW zc7rcJpF;RRu#X}DdR#km42CEcjINhSFdmH~?Cv4MvXbH2exFE7alVl;+|aBACBZ_y zHsjTJ#_0UQ$aYs(@W2K5iyVsCxxFqjhUxTbgv!b+T;+N7sggmHMdeIEd zhIyk*!z=rUl0!OPHe@A0131Rm+NOm`u{cYFja%yPx5G;0w$^pT=1@8(pU!z7Bff_` zvm%#^cUwMit2-1k1;A<-vaAAx(l72LD|%>#?(qPf)C>G@VsPugUfG7YiIr?ldUg@6 z6HZ!E?n@DUZVW}bYYZ{^S-sgYFcSb;Ot@UQo5E#h_wA09L}mG{PG&L>@(8@Zi^`a) zFLfT5z$`@4fBOJozsxbiHf~x1H+?9dFD4(xvPk(jIoN?BOZcsXt~lflzx8j%6Z3fv zf4cgNQG7bVK-pFvp>Idm)Gz6xWGd2+-w>7wN@#`I!5zCh+jvR=yYb6l$H85j9(Nv4 zDJojhCq&cuk}bR<^^+#a)`SnOHpjvYb@Wq!DI9b10aI{JYew7AK`!Fx)(L1_MUK4n z4^7;YrfJyO^~k4$;61${XK&MbFny(H+NN{>QK+u|(R`Pw+cOdQK*U|{uk(S;Yg2Hm zu1-%A93i^f9GQ!0wg>*88Ejjjga*Q}ZVj6jWRdM0a=!wLR0nt6>?KeCipgo_f(2&3 zV*fq7D{c}cN~MD+q&NCmecq&;H9}a2kKoOD3+A~v_9~Gz!c&x3fUtqfJuEc>r$Y41 zjLci|-7Zlhk%VqXJuA29PdzGim?c8|o$}Ea0o55%U9Iv<{ouh*mQIMVK&@P~=#GD; z33iI0&c)YC&q)+zx49R9&?69D+qfM$i?q1+ewRp3`paOm7DHY|F3*XSpa*32;e*|| zsjmG!ea-io1*P8wGK%k}^sRVG5Y7GQi=UOGz??}7O?ac=MB(Dz9aSvbD$RM@{Q81F zgdezZ^FGte84o}}M&;C91!+f92*1u3IK?ExzY?$%0ex!2=F^KH$AK&qDpf-|r6D)> zVKOk6@U?-u0~bFk_j{NgSwk&mTd*Z5$qbdtTkAa1nHl-G%H@nx<`GyZ?%Ab5`2f7+ z#!&&ZWA~I}i#W+#YbN0t0CffIFV6!uXr|rXP4hRTiIGjT{!F_y$gerN9JGX@-NP(o zr{1Kc!Vl;Z@bXm44V2CMHTH-c?D}dg*+O!=a%*o_EMOE*mnk-y9JYtI^q5ZR?FrkM ztvF*cLoQ*N0O+J}NU)Fs(UxVHiC_A_Y#xF63Xz#iXXFY}qsmHGPvuSQSOZMU{v00e zoqiw(AkCL>(umg-hX*_ci`C5@t(;7joh=hyrcuJ+KEm=1$@H7L3$O=$zM~PkQnI7B!oU-$8RH?YH5$XyV#(jug=doK8aIxk}NLxY4h=T5Qg` zJOB#kolb?_@k)g`Q%mlRJX6J|_=$XkAI?5aGodj8qwWy$?(N`%%PpmatthbB1 z19Hd5Eo(ci%5wpy%3PhtaleSUoXdB^u>(%&b7shNt!M~2jVlTJ;g9pHD6O(M&Zl{R zQNXp|{K#!sm8w?&B^d;u$sUmgX!in#=9>I&EEN-nZ zKIBAx&$tr(6t4j4&Y=B=B#yA45%)u%;qWwAwo%(H?lSLOdziQ8$MvqO**HKUB$5eaqc*s17swJHi6Ks%~$H2L= zFv&juZc+i71&s}jF+;q>sF{=l-ueM8M#6Vez4i{0g<>LJ!FYRyY?s6li&q11yppLO zR3ZfWRf;@r-I2hcP7=2gMT_rZ8x zXW0;+nEeUTP^V@Ux6A6`J~TI`ygf-ys^VDa$-*3vv-Z^aOuPAcrwN6IRQB2>%a?_{ zITn1xkt0<_)M+|@JTMfZ7kN>aR!(6tq2g=L^zTi6d0C%5RTA%1(tEUwER$Gto@#3p z6n?UDrl8haCuJ{^4d>-HgRe+`VJu4TyOVZL2N{lEbeFmO<}{bft=Pd<)i!d^itH#L zCi9zFZH|FWBb8+}ZhKwN(%S5ua-36*m@5C>%P#RUn7rG>r5R#gz z`vo}_SOIaulU{`(huhAl2Z6OJw>De5Hh%Pkx2HoA0MEAc99yP-Q0n00pEvOUrIo%> zhs~;28Ou?sij0aO-)C3$W9^ktW;3#8D=^>rX6|WI&#gBGT`S2+0Lv1yFkuU7&oL4@ zYWCeB13kHRZ&;+A7ACAI2+TzLoVQXsC6oS*2YY3cWzo21z>rCM=g8-f*OyG6v75w( zvZr*k#RCTXfqN?3xoFpXQ;z}nT5ok^XD6rZ?oM8qvuT~yF`=ocwa_8iAq%4YVZ&Tb@Td;FTlb=>% zH1eKI4;XZs@!ihEPw5N$(3*bOTPy3lLx0^EsdP|N;&N(UDgG6I2*{LSID%gyTGLoD z$Ap}_=z;C*6pjbBj?3-on$8d8 zp*X^DG!~3uJMEaj`%*wmXDXg0>q}G$jFp<|6-<`fBy*&uvAU&y0iM#AD4HVbJx%t4 z@Y4uD{DmI9lE5Di=L`(L0kA-Q$3mS|BGDV>CgTPp3v-GM}@{#49jr zK?+K>&tofOp82xFvMhQF1W63-Q(@WbE*~S^nNkrgAl0L)zJ|Dq#)>_bV)(KMv-?un z{vBjf9*uX?eZR>L-I3Q)Sh0Rr{fv6=w$J+8=P#WrCLg$mxmm7($V$@C`_MP&v>%Kq zweAIJ6)|Bd+p>;H_WTz7IV|OnWLum7-)08tk;*#UGp;HqIuQr$)?(O=8S*V*ZUZCL z#2dinP2(nw3#h!Gv-LsluZ--#_Z0^)qR$4_fsIx0GG?7{2b6>w0WwlWc3<2=AAp-g z0w>m6DYRA9HN+(#@D8=w=i0^5VIu8^>(2g|d!8-dtJTti&C-FpJKpukw01D+1X1t8 zM>L}A2|HhBQc%8FxGlF!2s@cJAA{xZ&)7-AbKFcb3@&Xeb~Oz~%}TSJJ*7~btNA8FYg z#Hi_DS7%H%vm`fz-2xi}6#I#Dv|JWx<)8+?xloJU&L&(;rgpo7RyqgMbL0&|+sm)T z3sm5NcW-UWcT4I8mA_8H;;SEtLm0xr$-rPDb+`5MW{y3+BxbR4^}8uL)a>gppe=TH zb#`if5mHy&>k@*rXJ6PZkaH-XN5Wd8xZ~*tZcL@NXVn>a zz#cGnyL~^kZFrLs&jC!t`Q`IQMIzOj@K+f4%o6ZLeG>}!lb`0fT$&v7FfYsn2!!gL zEM=|x#3|XjCnfumPFxbov4!&LI}Dk+%Jywb23v(>(F9u&0qj_u|kxbG68V;S!LY(c5!A% zH5Sw@M1b3g!GxOP)VevOiT)Fg{^@K8vpXtnbla_khT(^=8h&$juT8F48H;Zte0;UL zb4OKbJN;Dvdx*J4r6w|OqU!o$=)MVlO@u}v+wzSC1yvqaW7Nv1tH9Arj<-eQI)zF- zmgPf%eC@2KxK^|;DmsRqEO~5RT*U)HGCv+mo(b){X~LolvT(^3$&OzfPbO}hcmdED zf<@YQ8wR8pBA_l@jH&$mV~>QdPvC3!`0f$xlRi=>0i6VS?5fi88fA#veOg2_Y!s~1 zt}gY$>;qY^3#OYNo26^x;U#4GOw2MnFON4_NIgJ9^$3QU3*a?X4< zG}_6u-dkt$tAN9s3^J|Q_u%U2D#dKW1fCO*p>hSY`*m_(2VQ2xIzpbhZ}~i+dOf@^ z1|1Tq?K(I>z1uK$#jw6`dWLeDDaFi6U4{do-=nL@?9i!+!?UX{Z|1ymSgH1Hqqcs- z(_Ww=|6n{(()?>m2hJB@fYHg7tJ50;G7X9A@m78vGkzeCbs|jIP1o%(^GQb?^1-Qn zUxev1+4WAGyO3uDIF033-37^OBO;A=8w6t3HM&2ByWN;`VFg)*H>zG?1Q#UJqHwH} zX4aD1x?u|!^Um9^4sr|-y>!(!Yun17rp{(7eO|nuu+A28)KT^lS;=@5RGoJ^8(Pbz z#%~J5xWfWP9b;}`dVUr9SM}M+7?8KZdQe{peO^m0pYdrLNKgHPMoj$xr{0N)yt0|R zC>M4aJ2ELrgi2IPZ)Ai6HtO*>?_V`#gVZ#6UMrq*0lKapss~ZM*h2eh>K<@f)0m^QxJVdOeZK~ttc}DJU{#GG~|K1hv zb(cyfqp!SU>`>T-`Pd5IdbVw)3cs>!himZ{D#Q@&|O8{!P2RX`i5rFJ|J169{q6ZU*&?b ze2LSf1lLwI5GgZ@o|*u-y2B};320OzNhN*aW|@ont@NeAWK%bsG6Rx9c~8Xu<;p{o zK2T!Z)8@%=NPi1B{YSU?y9oBbQJC88`@0Bux7~k}4qJ~;-rJ3FOIrL&_84*N$zMFx zfBV*B#bZYHt*41YEYe#~uR{Nq{a`A-%LJadHOy@j;c@gIbMtR~+bi+=j}!in{IUP~ zVmEf3+rAGHA3c1EpsZ2anA?sY$OF0|X1@-(9|oAPKm_bK_JA?``7S2@rdONmObi@& z#Srq!U)bgnL(rM6#Vxx9v-dv)RF^NcYf^S^ExmIO8}F-~EYjDHa=9F<^JOUQG%z^= zSv9NH`O7wC?V4w2Qv8+ni{{S^N&>+q_=P`9KA+@;-?&^}Upq$B-m#^{ht2F@)Bc5t z|2QX$^z$t_dktIV#qC@d8C07dGP2ujbso6X{q?0=+r0nXe_r?RZC55iEa|`3{0lJt zg>!#hFQp?d=<#D<(ZO%D5B_)B1Oc1g!JqFxuluhbp#Sf-^UgsuV59IGM=u<4ngmGB zV7q8@YXFQow@u%2yq51DkIv#gCjP7^jO^e4@gu_nXWQhWC-IIdi$C9i7|=H@R?zTtPkKz5CQd-K=36-$6Pztsn-apH*>02ryAL1 zXP)xAf7NLOGOoCOukpk?3m(5hXWBNO0ufjvpr~_29H^j1zSnVRLE>p^P^?z3UK^DV z0mX|eM`Le37y-N*i}Uz18ly8nY**yc{FS1e=8_?KbujQqo8SNEB!?5JGmxh9!Jw|N zlYc9iP9u;nM72ouoj6bQ-yT`mrXX7ml(LZxLVj{(TGnZs{;WGmRnY5j`TFW~)Y(>P z;a)hF9;qSKd)Uaid^8f2E`>cYg`4Wc^{VT^HX9jUml&9(RT!9;ZGdHIp8lfw6k^!G zt4U@`3(Vp>Qq&TZsI(w0sK_9VuoMZgs^^Cua<1A&Jk$K~jS$pG;788nHv&E(AqN13 zMj+|xw62)UU^OocxdC*)50ZzunM@;eYEqhjpTy3{d0Gi^XdgicRsnxWzxnlzPA&Ou zP9GdAzkL3ce{&OfN)(*W9RCI>s<9gD5?n4VW&oSiI_elr=V4LbU8{b&ei=d&RTrpB zdV85n`I$`RKyy@2jq7*}b}gMQwSv{IIoBP==nT^T-KcOwE*E(fh9J>2|Lto9VBWrR z7ovN-zSlc{SqM07RsRb%v)~x<8>j`YfzBZ<3C8Pwvyce45nxWcm}d_e(b3LaE4ghhq)fi^H&4eoqIaPJ|K0HOtr~Vcc?zf^$l-)$f+6ogb&s#p63G;`kAbC6HP6Umb?JccDI$E z;80k;>0)87Q}dHU*1@s9kg0ft^V+G4-z!62-U{5`{=SvKJfGrEgRcX5u}H_Yvl`#| zv*UqAG|F$Cl1#OYW@j?>0zhf;l~PjtOYf<-0ewgnhHfh^mp5lvq-!K(IS4%s+x3E> zBe_EZ8w;4TfI1)mPpx;7g-q(?^r9^eC^svyN*Ec43B(NOUU zdl#XkpAT2!g}L`6(c_2_vR>zXF{rMnDbN=>tQR{CIg)gZKt0nD$rBCW8!avxZj|Th zh%UEvQT%uBlj?V=1MdTSU$x-NB~~U2o~vcwvdn8H=inv1wzaNrxy74KLA@dl2Gu9? zKkR8l^f~ePm_dk&SPjnqPh3!j#SAD_){?J6b-i?vgP9MfpNR6fc+Y@JnALawIH0eE zx@g$f$Ux#O_0l2Zwn=d=jl^1o@0x8p%Tgu?`5Vx@ zi0TDfTtV>FRp=PP>{pe$c1(a;XcQ`W5BhADan0miNBALH|E9-?G50<`&{42n3{KHO zFCdj2P0WTkS9q1|#hAu@DCp38I4hznPXPXltk?-)=gd$zK$> z2VEt)*Cp9+-KziqN_Ow+&Bhtf3zVG1p_$K=0Cj|5?uq^|*}W~_{!92^0y z2~U!kXMxa!eYX4G%6zf_ho@@1Cd@y^n z9RF-pq(}=WRtC&kMQKRA9qH6LPMkk}y}A?l+B*SV8Zwiw8zKGq%|w7ce&#Tuz$(~& zA>U4P@7mS1^N1-e3uv%@9b0v^f;^}uDBX?#fptl99AF?-g?yj$qn3vnAO9x2qiXuN{a9oKapbAkk zD0n5C5uIdc?scRWlSPImWi2;)>Nb~+|&?; zwzNSF2Jmrj4H`{qIw|wb5}8?hS<3F%G{MdTRUh+!ZFX+Szkg*f2$|rOpdOHMGfa7x z;k8bdvZ~|8HTvhcT<+R5!=TOz<^ku=v8QW!$;XJ^AfoI4O;{2E%|ZP&WHrOLK0wp- z;N0owE-N}UAC(wlK!`}ud=5_)OOhf`0Zq-?Hwt-ySCVs>2G3lD8)*^-uGeKJime^i=2wh}Z_li1X=JnfOOd#(%o~ z11z)5-~T??<6y8AKOZcY;pmbRGWdP8bmJPGYBsi?+CbYp`l>WbnI~ifA;`2TNB&zg>1L4gkk(aN9WA#ykydLQ z@w;tAiPqqxHeTk`khCWpAFKer>nD5F&D?5NDX3K(ZBwA#c~>v?V`_se(&s@Q9t9D& zSY%V_>^+MbP~Wx<1|IfJLCgACNSy&;>CJrX&tUaMKy(OdK_gBB-?(|~={IT`7rQNz zp)CD5+$>{H^STBFplX+Y#RL%I-rR@_jtoI57k_G30M<9xb&DPNi7SE#giw$|SZo6Q zpXIg?7qI0hAoAfS;U3~Aez*vw{Xg{&5aIB{(H;BwZU=nD=H_{{$t(OMZ~Ma#n_S1w z5(9`1fsO*tCT;PP6b(Y>|GyclEJS9eiP++DdyrCB>Rtu;UI=(I zNJ14hlh1%(nM^kzG_XYy{dJA?tNmrC39n1$6x5tjjzr-fzh%Z=Oz=X#F6oz1b4qrN z!iSL`mM%VF6jx>lGEeh&Ox_ybV@9+elyq$oJbzt8QIi@0Kgx3Z$@z>^x3eZA@o2^A zWIqX(GA<^5?=VKR?^ftJ$Wpcr0kkdX``2kq$6q?0=V-2eTezEzuyai6cHL_PEpv$O z4MJk7zfvAh@w9DX=L3@ctYuKT*n2xWH`N@qVna(#3}kec+X`x%`v#;`)g!5);#Z+o zz;}a3H-2CGXi;LT@2R&f(yHH&zIzu&WheK6QvE-UF=fcS<{Sk;jJ}N-NiLV+KPS9J zlYxzG@Ro7*ads5`7tUYcjI8l4sjm?@&LKMT(m#*&GDG(!Nc;y*u1qjnk3pn@_`p}V zY$i_4>2qEb-li?gg3@dkiBGaSQoP@eqr1!3Z~S|;e2Tw10Gr(a)!1#~+FyZZ+zjLY zz^9o;=%f8<19obp>9l$*LxS)6Ys9x67mWe9`PJKJKkuz_xYiEp zLs~vSJ~>(K<@w1uD0LDM4y> z5q`t(8moBO%`;G`dV2N#=4N_Z5e%AfZz|X(+^t`595_aF8&p48tS2J`l(E)l>UN*~ z#Zl%yBl`Rw%eqBhLLNiZu%;1ip>{j_PTW^CQg|(?xZ!1OeEsvL`z8d|?(UOIm^o#O zwE9rkn>!|V171t@at--PthT&H^lJ?Hj=9t0)tvH@BR1g6?>`UGBVuLVwp3qOc2Dtl zJ+e$^+eAxH@AmF8kji!BWgl4WZ9~2ASsn`74i|^ykk&wfwcm~A1cahrf?E_pL>U1^ zJ9XQn^Ye0TufoVs6D5Gi$Ve?kx*M^YmjYC(TdlGXv?`UjG+GOq{-5@PPK8E55IFf= zn+Ki#XT5+Jn-tRlwDL!jJil3kDxLM5GV->A(3Ing&uBAgu{@#7TJ~|T$%)N^8;`kXEkU0bb5I_j#Ev}#LWvpRA^vV( zH!`Ak3cTR;8jh`4d*tFfAo)z|E8GXUCJ5)7N%}fp#b7~J{fJV;cQ|#>htti?xm?h{ zV6nGmgA~_>Ucr7{6@Dc@0Gf*icdvR|O+~mS`%?1#})I zLcHA=rA<)_Qm?*8;#)xLki*+oeWmeLO#L7)PcBap3T64c*kvM7CKR#BvuNqtj{)H< zZ3I;D^R?RgK?<({+N>Lycub!ntqjj1ThEWXy?)agr_NF~w*?9P56xE}{cR8HCSyLG ze~C$p+W}tiiLc>nr$o^7v?WslyMx&z^H6tu@8rYp)mD03t%WY0wA5on(_JXPx`dNN zy&X=N#jb#A+q8R5lj$*<3bdKCwA_ompyS~|vf&ccYrY@moPbfAwUT>66wsZWVs8wW_zz#df$9*4?BhO-S zfR9TH@-K-pVCn~o82WW&&vDSMTg&lF;Qq}}(m|FC1&$!om$xL^fGL4$>{RNLJ??>} znY}FlL;L453Q7!_lvz&@iQcCe{sQOKrAX{WJ8_8-Pb8{3ryOY@b7!(%>LGWNe6D+L zxXZkDe`ZtH_f%fgS}_oww&=OGY~bXaa!Hv7uCMg_{Q!q zbjLz!N&0$jDd9Hu+*6<%gY~+$$wz@@=|YJOD2XHXO&!lnu#903K{?YC++@h6h5UYN zbG7vDNjbN$@ytS8{W2tVn4K#f4wpR&$h8~Z6Qp=}wL?sX0|a=xO9|f11Z(2cUZ`7c zGR33t^BMJmR+;I;O9W(|S)2-T${`WsC$Y7r*pBmE1*uAP66GV2BT&ubyw2sKBrPMmq9O`nsbn!|0^^6 z=0gFf0s&m&QK5ZlB+SZN5LQ{Dlg;RieiVs6&#~r#2`MT*OPG+TGyujl;t76wPDP|R zevl0=Y|3;_nE_T*z#`4Q8+0030x3x#>E1<9$=;vTn!-TvyTe#!(J0v zQXkyy9f!Tm9_ffY@&j}dXDNJp6MO$xc!?eA)VHx~cUdsLcuV(K)5LEExELrF~ynSUDAm5BUp7A(Y z*d1i;Ve3l{!Xl0c6L5P->n3Zxy_zHz+}tKVVr%c#J>LqxVxaE2cC&DHw|0j zmVMr`_qGwTR&MdDZlha=2G813r|+nkg&H7e%bucD6TC1{R^6i#0bs>K)2V+7t81J)ZPBK99y%7EC%^Gh7Klb}ajtt~3U z5`A|7kX(0S*hGm2MmF3ulBDRz89&3%kfhHyASVn-8{E^!r?uG#NGlH6>jG4O#p+RD z0i|y6xDxL(n{0-@M@h`hGv}fZzG3=YaEzf0p;NYsO^vYU|r(}mn1uSKGCwS1&X=t`?V=kBD zEM+O&VnlFz$-|3|Anp+CduX>o>sY^S{sbdCwYs3{`+HXEn8RLU`;`0VIM?hH3fT=4 zU0b^hMZ}G3K8ja=2XdeEpt+JgG?;F?7>hEh%VjGgT@`_)UqK}l6zD!l>oN{#2EV%)?LyC#(mY`upCc*@kIv7ef z`hD-X12+PU%Zt3>bq&Wj+a#7(q^>>=*inw34(COscGd&kb=X@Cg+rcEvBoosd{isN z-S8-zV=QGksi)ffM7DMZn+-!u@xf|v5ezh-X@xE@j{E08O)8d-h!aWjJXD5_J;anC z&W;O%+GT3n=4&=F#6tGn;rd=^#m6mA7}wa)bIw2s+k@n&pBzt}8hWyBLm0N_;)sT& z_vsyGDPIX0FP(W@u(T7VBAl9B=&;R9oh>)z1QGO)@q%5MjpjYyW*OMi$rW7;WNSBD zuB)H4!6uFY5i_{{BI61}%wl1aEyyldQ7@P`;ZdfA!(K}qr56qDS|i2mYtUs(#PN}z z9;%JIcybh;OP2}Gt}8kSQsF8Mu>o=7Ws6crWkZ)@$CD7Y>Hosp#3-IECw5)xBPtNO zu4Q+QkP=d8TU0;T*XEF++YA4yh6$zG7g1sC9Ej0z+V<5 zq+lE~#ogw$zBXRqs*;(O4(K+3?T%x~ejq`X1h*bpy7-+2O_AWY4dUvqptIu_$L!zN z(Zsp@qk>I`&r;d6<)5?HyiynSY-Lm*`>g=rB03B1sh zx#+HY?X*VU4v88`*h3mf#?8pJ7k$oBZJ7 zl%_lTx!Qj_Q-WA686L~m#5mhGxLyKI0LWA%UV<7;0Id))=<9*(kc6&50r!RY=I4Mm znOeLGD0GBk8ZQ8cG!gPd%3BxT#v9;S5ONBpViv}7 zrY0VZx@u1Nqe0)aYs&Ymtp}Ea^8?b8f}%U2qnr1{rjHfoqdy@ zhguY?JkbKyfF~yxYH*4IKZl6X#AK91osOiJhD^U7D{|ot$zbQ0 zp8OgyFR(JOths#F8Z1R<^6u^~62iD_y(%aYzq{~}BcINn^Eo{I1vU!FqMdh6f9c5K zEXRWDmL?BoQl(av_BM+o`$XoHeG92wg#@rGpz2PVzt{*aXE|hzxvL2Dk{xw=B&WES z_Nl=S^1NlRWqetHrqccM}GD>Fv6MMTR{Rl%#K~k zh`XINqHeKz-TNDD6G{Uue0xKdeBcZn`D6M3kWIhS)sP8zTAuEHba(g(BP1?d zP+sPS*k(ok?CQ%O3C!iBC5DIAKM2Sh=`3Yo^A_||rRF>?4TJpXHl^emEtu}I`wzSY z`^uDHZDvzs?{-ABGE-BS+lw>;8d@|6ejC2D(F}l^+M9K+kL+SHCHFLRw7Dsi<|w^4 z8HMg;v$$2r~LHCc9kySv#(|bPK5=XdOapR#>l@qW~s=T|Kau+B# zPYcjIR|kOL;Z8E@q$_~9DiYtmfE^(h4sI4CNXh0sglvGEj*DMy;DO zbS^FpeF-QqYMO5S;H<1k;9%wtCIxehczIk|7Wm?sdDC*R7dw=$k$mev0}wrV%h4-! z{thH9fiD3U*$Xc{LA1{QxK~}!Z|yF!j1vWVa&rV_2%&lCLN-tyqaBPq~8qO;2b z)XZMszkvJZ1bs-zA>gilBLDI|prt-4uP$ z&;t-xr0zD4E+?T!imK>klQL?S-^1yg!RkE(&6$c5FuK^=u$9i`g1d{k4InbSM$85b z;im~Z{aRbdfzzu!M>qCc%5o<4u*D5&@-W5%M9;kPo~QcPoI*!Sq{HOZV8noR)M(k4 zPkx`Jho4MFUuk%9=D~Tt}g@D=N|ENFjWQ|OHBLqVZOm-m09`KK-o=%sCz^dU(7u5 zn=1e5?{e~>_!!J$ZiQ zsZu*@{u`GLIecIJ2lKY3FJALAZ4-9?Y`Uu_Xs{NbRjdK}sDBb<{4+ZF8_mZ5Rv+1U zoRj9m81ky-2#|vQZH43aPi%>+{!XUypHKYbF8MFn;~OZ^gD$eI5Yzc9J*4DM@@Al^Ax4z%7BP-M#KHgj$0XxBZ;)KzQ-JzFvF|zD?yyutT zNbZZ;?K*0yJ0CMX5F?5*W*<LxW@e8>flL_adv62j*mFovGb!hpM%(`SGRQG5S*A8{ zYBMqM2ZMmsa*X(NQ`7_kqnn@q^9eamr7PDKJQ=fq_V{#)e>M;wUWY^u>3|WL<#@UW zd~RoOu%OljZZ4O@Ky-W#D0Vglb8doFI6A}iR0@&p;A!0Ot~Vg2d;t10TP~L?n+iq{ zYAO^jTm_#yc=)Kd9D_a(C&y~nbb^}MaY)_P?)6<|iTO$}_}s$}mm@@8v9L(*0e82? z>C_zDR2ax`5GK~Q9mjcn4}2OsG53oe5GPxL_K~wJ(yyUPsydk5fY5;>;B&w3;gnDE z|Bn&=V}$?0P6!48IWrN_1c_do5L0}X;P!2|i(7~0U-wnchjyz!kNN+_$7l1uAAtRX zQviDQZT$!Sddi{yx4GZdYWsi@g;% zgB+wKIe!BJQ()?C{S)a$Nh`Jh?28RNeB!bdXQrK{2HZL>9_a@fz?}Fp_8%=N-bXf@ zSLdC8Hn>I5Yvi|qCx8BhAgG<*0i2THLg5@JLVj)O2Us3_fj=LC0+Ldjg25H6VkFuPl00D!>Fze|F20pl>EFCRz2#ptmB@tRbe zpS<*Ah^QI6At3QISw8RJNBw-ZZDI@!RO#RkYuNJ20p>4Mi#p1^H=6Zikv0|F=rT3- zT7AoQ&Tf`)gNG<{e6pE)r+!6w{O_GKCOM{kKQT6KWiJEL;JZ8x*fo~WQ%NkJ3!JWd4q zk|*yIyd{Bvi3jB@)!X*}u=ghLP_O;}FuLi4a>|y3Q=Q5Zj_hF+rA`Y;wroXG*~3@| zokEe+iAuI4lzpACj}*!_G#F#-k}!4#V|zZ|QJu~?o%{Jc&+GU6{?GIL?_RI_bvre_ z^S!R?b6wYGdB5MERzye}%0eqi#p;(dKfk&(0*&P0s4@p5IXW~JMn-Pc-b8;yHo){T z(cF4>^rJ8Ddm;lk2X>G_l-$SX4ec?`9AZ|)?gPN^!cqNF05h#k;?!_z<|WXdKMAnZ zTwcDrmmr^3uP%N`q<4l2dFoa(kz8b$6(^Y8K_ZXuV{;Vv{pmBiUU2W#t^dJgS8HBeDjSfEny$?;ry=He1_rsjM!2B(UslKZqoXCZ&gEc7A-*gz; z`DL!QnH1WKQV}DfVHu2MHfJ`R&lw#-esG<jfQ4?xzw3xR3QR_l(vr>QttJl>#l368KO$an=~ zyJHtvOQulx@B5}*{1bK3XFg(lH+>cWI{YgL`Tt+D@NIZB&f)Qq zUko}%{O_>*|4RoBo*9+(CSYujk+Bp<6WD`B<-4pY4z)`x=6^QQ2qUkPU%6rb{hQ!_ z=`4H`7ypm%{{IXdvPEAvydU&E@V}67aEHvoblj?`Qj)*6?jK2uuZxq)vF&rhLg~%Z zKhh>&&C-xx?n}z#)}cRg7GDqNOex4HttD-KghJ-mtjX8Y*{qT2bH-!`ly<)6ZN9!| z5wJ7YayFWrbF9&&{u4-Ig>tFbo?W(g1Bb_RyD0m|7UdG-)8D>o)|L}~$$#HOe|g*7 z5772NFo6HM=9AW``Rq%BT9f0p4V-o%EJ*tGyRX2=+qn6&WZ3AIU&yNmYG{D^>j@9! zqT6K!8o-1-r=FahcgaLBqEyVdw}k@egH({bZqF^Wux|XEp4x87*asQw0GJCj2Y36d zS8U|_M}^6}P^|UqT?}YLgXqe6G{B9l5e2lT{5sMl6B;Xnv{~&qt{aSN^>uEWWr#IY z+fC5mi(2cb&7MW+h|n8@*eRY!-zQpr{%1IF+VmfGBsv0+eT8 za1Dtnc6nGSkW5{8W4SLNm#w24BrKlXJ%v11WMyJ~XAF=%tfKy6OYeA{M(x@~OAgin z{{y%!UHV6vapf!=AEbjV5jpLP0HxCFE!6#hI1&cH6jCW6{M{ZUMSFe+qDQe-v41W{ zayNjiiiQqSpEv?!))-AA+t>iC&XxvZ4?}y_DFaT0gAle8F%8@S_{Lt0uiK$@pEGtr zTN!yn+e6Hcw!^>WLo1I!3lbF_uv~G z22VJ0eN;nzjnku>3bZA~{O~wmnV+IjQb>)#l8a=>{3$J=xKzdOoet$t;sdHAfw8Qb$p`aY&kUBrwx3( z3YvaBkU`0d-K#4la(THluhE2bc+JuSc$YevqYVFEJRJyd19niJ-e+f`4{rrhYO0t0 zpl8S|Bh<1}H05zZ4gF<2N$g4zc6UGJo{F=kpS;Xtp0)9DB0(I3q6`M(L_}QYakpoi16 zR{iGk7x%S^q8w8f7VX~KT&?Y|{*k?)X|`*wOc7sY{1$5P`faF-P)ls^1q3R;u%m&g zb7ck1S}Vt2LM3VpqCY9SR4V@0PyH`I_FH|*QU`})IXJfnF_G|mk=iBD^r%s@1(NII&97HX3BFTi7ng)*+ybcj~y&{-l zRoZ=YrvYZ-hR8l2Y3aY4xK)z>qG{Y@Xaz^!-IG+8V+r%o`k@z@6%A|qqcVnFFma=c zbwAD*olB6JF}`Tc+96GkZvG@qp0T}pAH}Z_Oc2Vs+%p;D<(@D-E_+b!07U`aBpQ?7S=q!5VRslb2SCTDC?0Gll*?Un zsYli6x-0S~AG!epOCQi!Ss?gbf_fXex3F}w%zsV^Uvpe8Dzf)Yuq~!6>9m-TV6oJ5 z-#7yc`uj&YV2!6lT6I^T>xT`}9Hv(}s@2rx6z1)%i_lr>AIG12CS~)xhMFQ74IGEk z;wLKoy1JuHqSoqBRmXjs#d|JYnepRnUdi-Lulu02I8J;XmO3mHI)=IFu@xCFC^1E< zLAXvox08S*TI>KWC9aw@#9=Z28|vq<7&j{sZz7EQB^+r=i{pN)sX7mk`e1;)CiPAk z)WwgA#178)he_Lsi1$!GZlY}_;+IDq>51=+HYolsl8}01jLn_zfsY0Ixw z=a}c9=ar7g8D#|E+3N{JnfrgcK+=-g3nI5Ilk|$69~YUGm#R>`~#EfJSMJK|E8C65|mT6z|c<4tqn6 zbOyC*Pv7*E(^M~0fVt@OdVBO@n8!VR5!!@W^pug<92m22qnVGr`lufzbPKK9Z?$9| z0|^ESpOc&Ex{Q4PVgQKbA^>f2HHwx^1%YPwl{v?DAj{?=9R(!2F;3bbu~*^Zvaw+2 z-!5zNW3e9EXs&xg$>lQ^c0A^F1AIT&QC>Ff>q&D`(G;E@(DD;YrabAirX;o@ z>-JnK)L%M(CV;4ZWT*(Vrs{~<`jW+AxcMcW$FtSQDzpMymBC?1+iV&d!}{D^YV^5( zl!E;^1-RC@R4)N3gb?dBEY`V?00eN|c@?j?%i< zrBGVI-}I%)imnMEE6YK_(=k^IEMW zz1s63XjmNT&NO4Tu_+ts&U{JTb{5SR=P(ig#|>#AKTPsbr9=2LO4#%4v*nQ-(j})? z#XZjvdW6_nqjkP@yTRuzlik5FDx3Yq|0>xY`mnM0x8OezRCm`h2p2h2wo@flUyia{q3Cwn%N`fLs)b0x2uI; zyJh3u$ujoYBZBR2#2M#Z7t(m0tX+x$wZo5<)MOrf@QuF+1P>eOpHu~jtQ~F`ZTlGu zLHkUtRky}-k|fcRr?sIiEDbAVMP_ee_+pUh``@qUHNS$Q~802`OAbKeH| zkqz45oGdQh`3b$C}C(raiW7iOD*B+&hi9VCqz zsGc1w=)X$^Qh-?aTN%VX-BOo9nSZC_yMMKS2H}G8t(ekn?0}a2^PT_t_`c;BkYDOJ zwrHJzzwD)xu*${~dSSx6eDp_;w1v2GtQ)V>pdvlf5O+_tOpnKDSH(1oIe91U!AQa= zAQ%IxHyt(Jp$|tDgb_1hQwZdiesmqMKWuYY`HaptPKS5$>hl9MhzOC0cWgI8ZS)4; zX~s#s9ucI0;>&JzZoRnF;3mrJ2gbC^Z7r~CYxJFMSGGUQsEL>AB$)clM$Cm?Rk6E-64du*LK7d z9D=A!pyp`Bm0bhfY)Ezf#i19JW$lO!tq94zFl}BQ5pmVqunh}cy*dl?sdQI;kVg3d zq5*3~v&)Y_^(SHCaj&?<^AtX(Zh9+jM(no*V%$nN=n`KIs8&RL0{T5F;Iky{jxsC8 z%(41N*Nr38F{Fy+WwcR1Vhof}Mk=N^CPu+G9P)S${b1$3a|ytp5Ny*#8L7Yc%u_??q90TCyfo)E^-uyji*~4Ctlbf<C}l@h>ZP z3qL#H1J1fRE1p(GB>AD%2tI$^DebC3q18!F@n6MWNL4MlX+Bc$;c@{vb z1lWqgY8~v1PNHFs$tJ9(pE%EkL|Bb`61>?diV>Zv0l?qr8vJXPpq-<@Wm^Ehbs>4t zbX!}QzBHc`i53ZasqmMq<;%QICjY|9(*}#|fnlF99Kl)=v%_FF`cfP86)^IM6|Z4` znZgYP|p5p!~5ZJS5E8~SeE`N8Xu1fdR1V43KM@h-4sB>XNz0tu7^_A1h{6sj>%=T{LGojoln(IS@61oG%BNkw_nOXMIpsxFu8>Yp)T~^*d;P6~r%)Qzp0~G4Ra1%%aB;2!!rv^;- zfuof>YU2P@KnV~Q)Whwbl6G&KHk_)4qUipB)3;lPf!W#`G?4x55DqYvi~}sLTO5vJ zF|`>skT(k9!Ak3)iQEz+ZWL`Y;mPU1qM=$Ceq`Lxw&M{jV~_`E2^vIHS~w`Qzb8|S zM_EnD8@Hz2qFbL|6x_D#eo|7R`%X1W1Inw&t4HS2M-)FeDO#!i5)$ueFc{x<8*(}A z)Y=*B3of&m+H^liObN6(Kn(sa7Mf;&ABM0|Pem(bgC8a;@jOtk-1r?0OkzZDU;%D} z-+?f8GN76v6Fk4OqoxuxijuNQf& zM~Ipka>7rPuOox2YuZ-EZ7n;C;Qv=0XyfQNn~(m>1{W#L+5sEP3RX|Mp?n&uJxC(r zSto%@Baoeyk;_V>u{31Zwu)w7igPi+s=d@T|5v`aL=Uz99&IyWzXX2SBmcyCO47)- z%5exDI#eCit7t=0I9%>B?tLxFGKHdunHsg%gn6N$veE^*2mQ7Du3x5@bq=~l|?Ph0tjh0cfU5vid*Hvse#>)EaWhn6R{nAV; zkJ87<8U&95J8Pj{PveRtMP>38m+$E~%byT30u6$r^QUDl+mMWnFN+xC!k!FI3rG~# zA`n@my|HOo%(6F9yCwtYD=mumnfmK?P-^s60~;A%-qdpNxDfK4V9d!wH$cppdOy1akYRoTJnx#(a;`DQB5Hg1OeZ>K*_#VZ?3v&uU^tg zF;xp92>NA4aRqla&BJBTq%L&|9(8;7!?#^N)2A@OcXNO>$rnrD`0njhg9ruhzRX-!GUAn;ChV~pW_$Txy}!IBPi2Bz0VuRZL@_t(kxS(vuvPjH^h$Sj0-uRh>@n zGyEw)q;;FV3oVa>E<$GYw-x6^mWGp1l8$?p0IAudfAvmu%Ok@S*`*tfldFaC6SRIl z4xdhMX2lG`U5sy&C@OPXJ=nh{?sSig^}{POt0vp|=eMzT+?v4pz7i68g6}O#wEsZTILk+r?Oc) zfXWk%q20FR1Aj*@{U=tL%-Hy)cH1iugx~1;lt*F`&n-EWtX8EUb+vd;#5Q+n%pE`C(GA^g zkV_2`Usn*21jC0#zz?rq+Cx+J z@Qk25HLp!RdUkgFqK5lDduzp0jn$8BStx;~kP{oBc3&cDt>Pm_Yu| zE@T9%58#mg97No4)wgK*H0W4kE4s;?Zi;O=%lZ3{;ASh}5T`7O7eAOpJTUw{&|g^2 zfg54J3T#WZyVD53d{uVw?I%FwpYd2amc74@eH^+jdG&a&_N-Tbi^uU2q1&eyN|9aw z$(nZHD*cWDal3lQ-_8?kY&wh=gbti&K`CUo=nvSLT31&ha_EnoLE3Vu92EmAw$S|! zC1tzXX;oHj)bn@u*oDpNQTvaK~R5F27C2( zLxkfg<-2B4*n^{ej z7;q{mb98_}sP*!GPnA+gL)1zY-`V28^ADxSHzyK(WOIETL19YhoZx46g8RoLH^QasFI}tRM9ql1HXo|Y7OGzcIZa$iFC&EPnWwrG?(n* z+-(ZdVt>c0K&6pWCwL$V`ig-3R_@F-TCJ|hkz>UjI?`(@m%+Xg7E zFt^Cqo7t5#Hz-0p{N2TDPw){0p(Vy^S~9-;A1b$plxuK1*$aS?b>IYq6Y)1gj(*=N zf7Dvw(^^}hUkm+Z!=0S};j4o|a_`G%q><4~{L}hqEwsXv0I4blbU8)fgWrQ5z(Srp zx}YGp_KqMa=o;?S@()j(0RcVEFHdy%<#++ywBMVaQ_|U$#?#$bBJ>T!d`dY%OAl0R zfg84u$LYu}{fbWTL~jUt1ICjNJ9+o}CNuNaoeKic$;>EetkKGF zCn&~@JRJr9c)3CW^x?j@XP%f(0@9#l!qJVIUCoD;4R?GE>V(Ly1bxPKrxOJT=e!Y% z0ey~eHCTdh$6dF+E{oaT z-5q&Xi0l@!)}&W6!T(?;!HBmp;b?tVeZ`{&xB2kb*^G@pUI6Y?!o=W5*|>$1y@hb& ze5Jg6i`^*g0bPuGP-8Wm$L+UP&lK$r1Yx~3+feiwJzkI#=K>yyaj)k;KLKFHqDw0I znhOd(Ul&6Oe)S&6a%4|zkNqcWaDsdc-%3o)>9Wet2PvrRrJku^M7kbu%YT1&DIqoZ zRqY*Uy})%`s=uf}Ato29>?m&_uX7LrXkX3pwT@s!H)K{H#!0jUEc*K&!RGUA+p9#LL0U)nB^2>m=Wc?c?91h4=soq>L zUWq8VD`$EK4U>JrTjwnc0+HyiG@@_3q9lH!>q)EHG9VYQQZaW>{j2GDgY1fK@1SlP zNC;<7VE*wn&x0_8#F9$oQ-6uC8^|_OkhSB`dZDxPDD&@6__lGoL+TeQZdTy+IN1xX zeO)RVq?r(5uz+zyDExcZ{v^_L4Aa~FA_dXsGJ&m^3zZ>d6<{^yFmj%l#;`9_L+S#M zL)5951M(Db-lx0eQ!|RLD!_Tg=X*&%8)Pqd%EJC(UaE?<8@5J59G;8#Hx!U#%K^B) zgbGA`IS@N37K3CMQbJFgh!*`iZoybc4N5OU*)0|WEldd@7N12$%6M21KDr3h)i?Jt z-%;5%(S81LTFPeA9S2sWuy0Kj&K@@XcCFZe@NKXiUbPh`Jt|m)#VFTKeB_^~ zLDDBxDk`!cAXweEqzv+@U#yA_XJ|&OGLiH-fxo>61onF#{RJxZ`5yRZG}Uv1@=lN* zCL?mrYG9-E#6vI7lp_UfvamPxKBG947|XSmx%t9U`;)&N+{|78R9VTmMZiB_M2PCN zz7Xl*J)Q@|dJvxX(w?9CtHTJm+$jI&eC+=Q81|Ca3E=C86#x{$S%+U4)jl=Y*!qMUsZtY zl35$$d{BS?1pFgdg*Ao%lFd9;=%3pb>GWXFDe-Vy1bZ~G>X;+jy#n~FVd8EObOZz) z17jYD6sFEd_v`~c^WalKan8z&1sc%ChlxK!?eI^Z678Y8ATTh5HxX`s74iQ$RNjmH z?NdpEpv<8i?_?_vI)oQNV&OJw-_YrDz|^hLkJjpuib_CVI2G?EO`zz?6@}=F% zCk7P9!O0v{Rv56Ia7T&syfZWaz6^hS7xd@ZVP`L}lq#F=J2XIn9QR`+zfmOc4kiOW z2lMYQxR%=Gut9ED(H>~~rGvQlJWhZRT;rCk;Q<0%KtpU`fPy6WLHqt3{$v-BWB?n- zK*wvYC1C~%A&SmHG{EWA&mn;P%QFzFnZz1v^RJ78kWv3+17DzupWE2{=V8DY{)<8X&&=5zYX_hY z?jxpj?8di+;4gFBBmk%D~|L^~xyaL1m2t5$~9CTmXYVhO#{EPhe5AFZP6Pw%Ya_jdq zCWDEobM173|N3uRj1QnGCAaNh&L1T5FJ$x2r1UT3bwu*v53cQ(zx~Y4{lX3hW$lxH zaKS(S?H6wOXAU~Bn6?xDV4Q#c+s_R4FJBI~Z1w-vuXM!+Nye!X{eEQ7>c2mgUugf} zgFXI(V95F*ll;e5iI!g>V8>Ar18NYiU42!_Rs6M@jtKh zpIQ1Z*itAEIpwBLt{!3tV0`~n`C?%_PEIx;Azi0|v@LLd9o?EB*qyelQ(Bo6(XGln=K+S7O(PBV5T*Os*0h9?XTM7Wq< z4ib2HgKT#$1K~3YrTFL4h)2GWrxBuHgyO&MJkU`*(&vhgnH~jlAkZ&Fbbq|Og%pf<1`8T`v zSF-Y8bi#=WU@?>;avm^ffb`D&o5NtQHILH}A_?+ecsL}vycjbeXhqG4rzy|9d$89= zw(b|r-jP#?coP;OA|TlOUfY;$>b^cJ7z1eGWCwI?f@JB;dtCzgY92=cg!F}3qoCOt zlMekH7Rn^?OHrwYa+!fYq)=wXM{L2LmEWpG*c26^q zthtAA0%B0tGeU4o1JVwR90$p&4nXk>ewmObaqk&?54gTZl6j390rsVgt16lQ)Dt-| zZwTMxM1m0Q)ZUR@R{#s~&QFItcMgP2b8d6*<--a{MZNrJ%i+EJ)FR9pZ!%gq>UO(6 z%eV9jXh1gLA|aOIu$b0jn2Ku#B{MF_(j^bN`VQjvLZ9GQ6{Mh$ZoKcOl{;=oXy$7d ziN@~=w36c}VBiCgq8A}BU3w6B%@qpS)VYLZcRG~M9{a^1f#+&>5wv<9x#wOwVzw?* z^Ac!pRVY|pXPA8g_z()U4h6k|%=PqGK7vQpC*wmRS186lif5z zBuDxdmmO;yPoxGcBf9El5OpEkVAYB3@zAY^dx0wtF!rwl26YjE+x4S*L|B}cI#Gil z`6*$SDg}#HF?R(4Sm4t!o#tDi@sKZ>!ISxU5p>xf#DI{U+O(wxV=f%+92ChHA0SYJ zdIYaeg$!<^ro&H}_!TcS0Jm%`7TZZvEGOb5E?#Hl6RoR)qNLj8D8Q_V7eg<*Tt>h? zmm9ay(9BJLMdMtY;za-g2aM+@xzC5HuhBTBMm0#aryRdtQ zGZ_itm+`A}t20CEr>X=UFCz44^t;`UTxW8xq%jPjIz-2hP7JWZ!0U+2(*d~?A>{mK zGZ`R9HfsNx?#6eo&~VfIz4VeDv}eZnN7?*^_4ZVE64=wD)jO9%g~ovwV2@;ccw*f} zX!U>?EsN8g?enHxIGGxi^_DW}IBjQfk?8`kemI?CY6*8CYHm6Z=-1O3`c5Jm> z1;ec)g9hEpW9}S&$w(fpXN1O94!PSLXrO0~w?^XnkN6u=vc{}s<5 zK}^>H#+j#BLk;k=wR=2T_c#vP$lX{ekw=eMd#CZ5S!d_Gqz2sh%*#@uz0U1a`3SLj z5$fjy2JeT~jPA}Zi47W+QB}SIck)H{ypBiwp0K?@{&%K<_33e?-?a?sh6?n7DCa5x z4g#g-qqdcF-l(m?7Nqeyec(LOl4}S4kz}AeLRg#1Tqdk8>6E!_<9XlbN%IYa< zz|y8ti+w60juk~gdXk-BR%LE;lTTIODkS)$OJKugTrP&XF(9W+kek*fiEVo}@vKZh zf}79GwW$K-@e~;e!N`WyR1}dSzCb~5f=U1;SQYRH7cQ6(>q&%kUw}Xkzs^N=>*|xv zp{A~b!r}%gCJPw^p^EYDzLOr$7G(_>7ZD;Opms5^4)Smo9vRwhss2bazFd)|p7r)2 zL#>GBQmp%ffhSPVLNzfVMK@cbNn; zez>3jkrBz~WFSYDZbfHXte}fhV|$-nQQS&z@M?i`RyI)tFCYO-$r}@ZbsH9WRK+K% z-*sqf2;(-M{O}-d>ACQk2rKDrGoB^^0Bv4ZZO((BmFbDt1t3HjdaM}4vpB#FObEFx zo~_86X4*Jt2z6Pzq2k*yH(3uZyZV(t!JnpG8dHCDz#}$rw25Z_&!abTOo{7R1`_-Mg%scFU-hstq_k2t}ynMCP`GV=bjK$o#` z9>bwy|O@>`^vWWeAYqBhnk zqNDZ9KR3_hY!JKBVx%s5Px)ywfH&B?6U5GzlLgQ*Wz(c>i=R?aeiAAsbCBz84$^1m z@TU*0cmU(bE=fbAWxKe+nS5_taT+v28TU>0le>td3bD(N=b)PZoJ-)=az~cpG^k5X z-nH?1!ICk%E75wPdv)1jIYDCu+F}}tpRQtOcq~;1RJ3ZOrW@(H_2`<9O(+L*bWE#5 znXdz{cn<==xxl-P=DZ)Xvd4Fowsz$@psxfzz5}SI2KL-Alj=9-dYo?P_G3Iw595z# z=dd^^WolAw63qxY`0C5>8vwNozrqXyx*TcNU+=5?sFLpobW#*1Pt)p1jM*(SeDakt z|Ey}tGdeKh8r1nL`3>#Od5Ea~6%amE@P=dULu7I_wrNmUg5*zxHk0-iqq!r}_@x|Q z<*=AnjYC6ptNRRpEjEwO3Hu^H>{Xje3ylM>tXGA4kFMCT_d{|>kmWdP$VD-Lz2G#p zaCDn1dYfl)7y+rBB`WUR!0Qy>#^JvBcIh<7$VSDEtO>Oz)BpofY-5)D(r86%ddQB& z@$;)@qk}{Q=!|zEusroGQa8T|PqTYSb#DS+xtUg10K2v}V7%!pwujUAWwY1&uz0nKlV5*}kZ~{Qz(D+AUfEwtB z)*1nSvGF{Ov%RQ;Rl-n3x!lhqMuJ&=AbmR|`E^a+r z%zEF9e{VSYNZ?iX*8BVnciTheEbuy#Mne-@-91O$kC8dfn4AnRC3gM_M?z74*Vebk zuN60XidvJ3b2NV9@lH61vuDR}MV;zw2wz6w;wj&H)*Szm=zc=5b_~AK9?;U+?7n*_AC>$lV%$G|Em(^O0C~ZE;@lrryh?zQQT~xw)&Zy|y+*0hS~?$>JUB z@P3Po-_zswUM7!GofnrcIUXK~!lQ-yq4TAvU+Gm5qA+qW3-HhdtQK|AzlW46Y%;t1 zs)0|!+x|ST?24%--E@PYb~CbHb>qMbsy8L^itA#MHak*L_G%okqRtYas2U$NkiGx( z9~%?a=ctfdbGd@S_5e$F)D?`BO8*fn>ECC)HwBeG-DLg3)*xRT7G;#BfzOb>)oQ#X z$kM&L$$rhVNhXoWyW@?Nfi?!mwD%*Gnfr3ybL|a3Z>;Ph6Gu-KvozEwdME3MSOFj1 zuv0ZG##0ZyIMu46jH@!gGlVT&%SlPMgO&8PX2>Uo$)NYXX$-MALFQOSNN6LHGtQe- ziudrSEFQth1Fo#Zp`B*smPB>WTkaTgH7UM*cmz$$)(w+yjXi{oBKB{ZSse(GJ%WqLZCG%N{AI(WyLISIZlqcv9vOpjNIQkW^j7S zsfAA&-L`gr+d8UAb+a3ZI*m|XZQNH|+XU-1d6xh-A`C+JYhB=A>Q`HP?V)!vUba< zsj$vZbK6JOoPlRldg`du;Q1Q9x0+_^FH?HUe5D|&aCa(>Ds8Jiq$#$j_;JoropHwu zpWl0@jr=e^8aT-Tqs7+G*_EO?8wV_@M5&_mbI?F}=7J|xySK=mQ{~Ff;f>>?Nobg` z_{|{EF6PRenB(^5^5^peoQ~4X{*ssFTgygPE*_E{nVrdKqVB6~nk-%z-E#(-BH+$k|ZY;Lu`!3Lb_hYT7)> zXYU+p%ScF|2uM)mG$A?&Bi`IXf9&;XuFz~yAIH%t-!OKwy(qMFC=mcF7`QvyoNY-$ zoRtmRTSh}Ma?K93_-r`TWlvji&ds_QGb=V5A4c0_PuHMY>&Lr&8H?B)Z>M&NBqua{ zC;PtK8JHkGu0*rK7DUi&frqOdDvE4sAh^i2N{awJQT7>qJny2hiftlW0D;wFg2 z0bwi30lRHsywzRbs094N-4dUz30y#{Pbv$crge2`8k#;>+r$rdzX~@q4DQA+GhX23 z4Kt2?JjHpxIZ#gR(l19e0D;uGT+*~~#yV31Y4XKWrlV5tb~D|LOR2}dVs1nFvgB)E zmL53K)i!=TK}e zQ2M&-*CM#7+_q_Kz{trZ`AaMwyNB7Qjgv>SnSZ()YMsqtL*aOOTBaxRv;CEx9((Q& zdh^z^7d&fFzi-wn*UyH-e+c)MI3|C6Sx653>z&4GT@5@ztS1;6)I)G(ttgR8s)-*F z4wNEW+T5UwXuwH>vry;4`KSIde$C4n`_T3Fo!BU?6n~DGUxlL@Bl~K6FOjXS(hBmT z_HWwTDc(~hz7|6mn}OG`y}oM)7v|^mFdt`$cx&|FP)gZ`Pm+B5uc6+=$XELfoa-pXHE*VC#gT(ynP_jzo#} zR6)OAUC{cliF+-*xWiapv(*1Guh%OFFe>G>Q`AyXJ4*#~_b{wkz;XFngcx%dJDTS& z5%n%-#8RGI?Lpo4IG%#Tg)Em+n|&}S$F=#`ndEN*c^X(V=yi9y0wGu_S%t*rv>ES1 z+gvPO(IXQiRc^RXeRvlzC?DTF$m3KQIdOQdI;wHxN=Vnq@`kDniByN`bgk*x>C1dh zf!%nrk5;@9d(SJ*c~oVP_<92|#CFq>Hh2JU=HS z2Q(=1R?=^Ptx>gP=2%>NVtTssb!p&{)J6_8U>M&*+E8n*Is|Ayd+=}VjH%iI=wAIO ziKxVnrlBq4x(0updRgAn=Y_U z@+`MzA%x}}lqWzFpx#YcjVo2Tj&;abRq_pu+;8)62XR+8+mWhgy5Yx<9}7PIY^V6I zn|ZXpElU*k=wU9Eh)@sVkaulu z+1NM+IX0QhgB?w-e4b}ZeDB7iRS64l_q1)F01)UK#6pMI47VyrcI-E(yXYeWpbs-HcW#7%%)+pUQDFC zch}BRhki7)Z|YZA7JOFa%`9`KlY=J8=G2+s>6EZsFc0j9RQH4&Brtm(la4REUAE}Ev$jMElrKa07T1-R1|k5NIcU}ULMMl~iYne@>7i1%Xx3_E@IGW;(vSBi;zsWsX-2}M3boay@OOu=P(;g2@ z3=u%%fYH@762bX;yaV2MjKt*dbF3fcvikDGh{fu;aXxGC5p~ywFSY-iq5Z`PkZ>tm zk+<%Iz9f~9FETdnZmLgxy5E09gw08X@W5uttVfrMDj6dTUqmD%kI+ zUS(CAmkR%r^@{CbAutj0YROd}sYMDiSDEHg3`>u%2KNCyU$Xm$meE;PfQ3Xzm-PqN zL#*RH;E^)65Y22V&#j#&ax|OE*37NTNZ6^InSRtd9S~&^Rxgv%aIA00yw>njh{*!$ZxKupnmBh>x#AY5gf< z>z;bJ2=ecFS!{X5wB%5jZt~FVG*CIt7^}QLYoV@#V>Vq+z!M+Ph+IGrDec-FXbS>H zFVh@P;MkmiVv->IEDds2B{}FzNOFp97>;zgGHgvj5+#lX23Y3kkFPeaD-a%;Wy%-} z`1NebXIAkp`+!iy2P2(*3YVae`Z*yrokrWk|wPuO-h=tCMxN>6)1*9q_k35Vfal|NEIM ze$s4CGCl7@oBJQkcu0}*^(vV%j!*Y!Ejsf$&Wxm7vAyXblu`YHI79bLOZ9K48yOrr z;LoADs;%Cxqy7dn4N4`A#Yc>})Midk{{E=s`L!qoS6e22L*=kR?ew;BnZQd$zA1e& z&olaDj*{;3EX&zTzGiCR_&naBfbwL>T-Qu$nDV|HdOyanbun{SlG?o^L)LwJZ!mYr zGS+SVDZ@i|WXm2x`KyNh<2o!r<4!y7H|^YBjucWVVMP-Z#UvWuhg9>Io_ZnpJXGF4 z3Pf=PyL%2JEw&>lu5WlR?#*FFALZnU5TuT6BXj69DNh%>~-gW8{xJtq7q|m|Cmf7lx{1Z zTv}8|tW*aNnMU=-;!3!PUN~?5t*z*YBWV%@7z&o0Myx~@jRpvNQcTtrG=?uimsW>n z;{oobywcalCDNY3jfosL?#q*zJ3vRkpleUrCdxafB{S!%binwf)&|+8op?Td{+CR-So*ymRb#%WiMya%z~!VU@f*c*KkF_XeHKvD{rPe)|>BwnN51r+1u zdF51X;z-jvF4e3Y>@IA0BYy84x5)@4Zn>3FnKoj)Wr=whiA!X@e0@!+VSnKSG-yiM zu70>{=M6VE5PA!vKRm~|yfd|*cb$?nXOCAJTz($+wx;%RS9olRxg0vjq9Jc~7gK`J z0K}_@&oj+&BCl9|q$FM_wU1{qo9)862SVki5~~i_N;PlnNjih;xOM`RkWZYwtA2)f zWFJyJy4F7rSX`XygYzFka*M9{5K+H>nOQ}0uuiJg!Q^U@moSNquGSxK8~CW9gh`fq z-fHMC7Oa$7?AO|2WK)>(mS)s43KqM)yoHy5H_wan4bCN9!d7i7PY11uBA+B%P?E`9 zQWKi=Dimyy^XIU_WbyN^D@wAr9sb51m4J`rN-l7N+7UneFK)%7ga5~?P!p62lP6m; zDax$fIrDF%X*VC+ErWVjhLCH%ntzB6;R&jD?8Tz{DQsW;u_auSRcewV(}S1u?Kh^A z#}6@1pC;r`=l!{?Cb8N8wpOK!edmO24zFgw{MAB~dGki4t>yZ%y@wZ_-9fteQ|HyQ z%Ya1A=(wbcU#NGS`K7-V&gMC9CdJ6U1>7o(5W!5(IP8Dqek`&~>O`JgUm z&mJwtn{F}myV}m3lF>I}e}A-Sd4D^+ZJCnufWDeTOr%gb!hIH+X01OaJI(eJ+rNT@ zy)IiH>^a8xRhis%1@pnj>>fR>PA8@^o8HR&{nP*}#tZ|^R|Vbd*qrnkQ&>EI?voL( zUj|Nq0HdlFesQk9)EB)K&Kni*GKjArfki1eQtKff!{)R@D$Nzx<8otuO82+HL5y_P z+JFzc<#&`**~)^1@VHkWGe-*`XG$1+BPObE-{b7xgf%mDe5W3~?hdg4sJ`2~0_mTg zys4Vq8|_q4u=p=maawevmFqA5-hm98+e15AIGmC?BPE|A1%5nBNj}S1t#~U{g$opAU$>doTJYXhn%P$ZJRawc*)t*cihn# zA37NK&a~|*+{hkf8I&91*SIYt^-dYeQ_q&Ph1F-PRD%b$b`&GQir_eDa=Pv4aYxzB z4?LGU3JYGHHCLaz%2Yi)zREc7h?UTB{In1Bp%aN+Z(vGYh@&G@A&BE9dboLAJ37M)G`QjA;g z=;S3;+PMx$C5J#&uc$=5dQUn)<6V?zT4pCL&Bt%V)JN+R!Tr1I0TyGjX+}jbbsUzV z63#w-^T&t6WH-CPbiUp!jp}2+H~E|RN^C)&mECzk#|Ag<_IJ0qw)NeKDR`=BcV4La zZfKrL*oGYncf&T?_wQ>@O8r%th&UUjavOWPChxk38*ZZjKqbh9H!8e3fZg?$obF^v ziYJ%sqUnJ%7g17n&v`{IrbBbOh}m6^{DrWGE z%k*@uKfAg}dw|%I><@i+)X+dRB~ zBHi{o5q*%m`tI^zU%@15r@3FVS`eu;>@k4pB}NVm3x{dof)-1kdpf;l+Vo2ja?_vB zOJeTu;6M8~IEgtrLvwD;O?blQ^nm;na{y5i$d8z^n+EQEVGdT?XJb+Zs0=mNoKw|A z_B8W;hKufh5*Bc4Idc_b9q&{zIb>a7gcxja5!yIamz_N4Jh|J9@^izbbcw;t~mV)y=Q^pm?M+Kt68TMN&4yC3tZY;hvuaNPT zc_Ke?!`;H>Ix zATxavp*dS7%r;P$Sun5RBRLBo12IJB?^>ABEYe_8iPmNn0={eF_L&ixUr>ytK_=w0 zy7V-wt4H%Kpor5D3l`QYKpb@Xb1YwxrLq*v?qujq8-kAAeox|9s*<^8twu z#xDEsvyb{lsK*<826taxzm7rgU}AcD1U53`k3XLbgO3CMaqbNhLS2DBmpA|a{(~Fs zi-wX|*M{qlh7*46$N!JbK~rO@`D_Zy+PfcAfm?3vN68$K@{JoeGGAd_Ti@8!KU{48 z`NW?u`v1(w|AzCySqcJ4`=W=W|MiVOfOs-9toh)-ee;+99Ztgkd!7+=!x1&{DwU>hK`!>`4GKuxY%A zj6l2_P=XCwt>hTa*63n`ds%|61R{jg2hDk1tR>qS!Q{7o=GPl=rV^>Y`as=s9}stC zVpusLuQJIv)-IFo2*?H_q{#$>R!BSQ8Hb_2Iq!7Pxpn(bFmiq111gLA1-@cbDLz}a zrVf%}sRThK(^zL&b8yb%5MS&D8o{q_%hk;X5&g3cH)xEQW9>Z9(L#valc0U})W^&V z+C@#NKEB2HC7OL+lUAh-YC2MvkrzFXr^9fuy{?upm%oJs%$lD$ibx#GUwX}JlK_fs z(GirVY7A$3%~5<%52)jGog3CN{x?K1u{Xy z#Pi0SJ=YlN?8b~6Tqq+E@jwYwN9*k6M@Twc>Ev4+e%T&VB7g(eIjqK6WAG3aTyAOL zv=XK&wavax9nBu_-<6OAR};78xA1Y!2I{b3>oc=&#|Y{54o29JX9H<-VR(X|LqR+v z2E=K4e;!-TgSfy6~H0zlQu(6#780>HuZGb93T#m*)DHFl0T%cBdgf@DF}H7i_jCAn@imi_;+oY$ zrwPfK9nVU(zJ`^P9kvMry@_mSY_IPShGxWwn%y$~Q3sF@?`3EK89}G6kc|p$Purlw z?1{;XWzAcQY9SHoT`8X{;&@LT{(jog~1YFz#}IF z=QKAdKfksJC8qUfTd~)fJDM4fCBN|>g_Ntf6c8h7xEJ1fL4+BCfcytq9`;Ejctsxo ze#E8SL@P36N+hbc5+L+4Rc-(iR$dyM)F**p9=-tjo9887<9ZA2;ByB8cFYtQGlpX< zSy$Ge#M3J|CEwiF#is!a)#RhM_ZW+*@POIsx6KzU5j0Fe4vhOFxjZdH56Z4 z1ag`oR$*#bBS>XS;NtFVr3wMjqZ0JiQvE7lK;2E%A;zgtvX+hl!CpF@ZUo^8$4=x4CvooM{;TlPS{BXv6t;NdzkHTl5xURD>KMBWH?$R&X zVfsOX-I0u=N5+^+*DJQ=^KX@c65IXr)D|ac)E`k+Y|+lxi(4A@bw!Fcg_z zq!}Wj=Ma%2INgE0oke9EIeU_{kvDp030>4Bklqq~NYjbpQC zvs?R-rr%G4#6U4UEW!^9lc-?s>~?V(P{X1G_C_n4r%1x$;xxc1i?=^jpYOThg%i%r zD4D9M$$nx7hZ=WH)7#)fofiq$j6vo;7=dVdz1Yx#B&d|l*$^uv{1hyEnDSzBY`S}) z!F^^Acg9xVYVuXDlajqXCYGU^Zx>J0KPb~K&4qCMiCH^-ZWT)fCcGAL8M7<(guuC6cj`PNLN5QLntFKG!+p6r4K_#Kp2J* zkj@MP{MUX5jY&@K`QLkU&dv9I=XuU^o^w=~clNvYT5GRgSt-p<0#D0#-?TqDEp25R z$GPG*9IzY*=HVpl`)o8)s?SV3l`D9_$DdLz9dDh=Y1Z^&wUc{?EHY*33wPd>GIsOp z>ljkD<;Xm=d_&6368XI*>m6eED2$wtU##K9j&P?lY}UZ4N@$&F%{hwz1(+l|6t!fE^?)9OEv98gjudfTwH+dY82x9Bd5b;cKp6PUzQe1R>k;Jrr zIrqBhYT2#BSjt@mmbSYJIb1+*_Td~wX)y)9ZyUd7U=!dVMYG;C zy>8tCRfH-!yXgcM%O=R7<78G>4D}tU@V%V@U;yQah*+Q+oh5Q_gJ=tFZ_NokFp?3X z$r%rlo%$ORrN+i?7N!Wcsa(cZN78!zTR|a_*BY)aZ9wKdqtpKB9qym#l{u4l>6ZT{ zDp58|;)bEN@bq2(U_&S2%P|-_&$h{|0@P6w@%+nVr+~Tis0EBnrz%X#L+-hc?U4j# z2J6ikG?L3pKvWPK`;f{&9E&_~i9Fxz`aXU?QCTH9f)%3VuL6ykXqZrj;L?76QZ zQePG(F}`nFP|v2|aaVf!RpqaZ((0$|SLP)mC7iZSU_Gi{Vy`4ZufJ(sT^}u;h`;_Z zA6yuKkk`!K>N~#|d%{l*;lGJ(kcu{5fGkW6tWvLn=~B^E_H9p> z;R~_fd)O5U!@*AXd}E_<7*dk&5NSgzUp4~zDSSF#3Y9jFe7g5qtq#YI^{ZZ5gz8-S z2%t_OQ|G=m%OWWpR{|-(CdQE4`=mA}(+Te4!J`CPKa+`y2tgFN%eZFtM1nUen?N%IH z<7H!=Uh6p^9@3t-%kV?Ry^DJdKm5q85fHW%augwMS~B-?#{O7w^Nqc1VOI%{JCtyu zX=9`Z#NKs2+{0$~%K2@aIalNW@SB{C+Y7L`Gbgu3Jwdg1?|?IBWHE4moFpcLIE|j& zuE4j{8QR8T-#b_}bG4m)2N24WJ(Ww~eiE8leB94J&0N(Kfle>57>bqbaNadMbp_0t z?r7ORP7LD7eeTbShsM{Pi}mT+&LCptLfSu~yNu&1yGGxoW$j(DAY{9wg2kDc zf~O9m7MWTHC!TuwvVka>jyN}IxdG?vZ9Na|Z&q|+RWPlS#sDc0MxgZQ=h}a6&nmm& z&mo9)zaUrYF(L6Yh@+7OqlL9>RtvDgg}tEa+GasL`x}od-yg02iLGPu5lVk+vs*T0 z;6c=vUe%V;hO8bxn0gJJi%m_pZg9GTF{qxHpn)Q#1G3?M;)}h#>%l75v;XSS1Ley2 z_;Wln`OxeX(sP?@MgC{k8CVTMMta{lNpPkaXoFfz9 zQ=y7#tmdjr%m5rY?Hw{7FH=j|{FDHh>{Cx&>ZxFMUNx9X8R5<*<=t3~)zOigeJZ+; z7{%ydgh?}`x9O@ZLBC(u1{`D0kK#?sCD#*OQWY1*0%<+fvQSzHSw+5RBSySBuc54; z-h(UxGfSlF-N87?pQL3}?2x`xTQoK=8$ot_{0{lOuj`S;Sy9|L)C86Mc3yx(eS&{@ zPQyT>xv2s|ma({Yv4T9d!NL*3R*tBX4&U)>ZR1TtbAgOOvYWzdvI8S5bIA_4f)}u3u}Ju`YrVFnDjCfYVZ- zT>F*_jDULqN^DdP(a*TEhm=0g)kf4qb-b@+tameBo> zLX%OX+pGl>n0rC|+bj?UMciwpMP^9fMR%-^uwVB|K$ph3PS@MNzFz5S;To5;wArmg zpytsmcykE}ru(&;hAejo+(&m!;98*+i(glPdJWVbUn^*2q^Aq8Qm~||mY{+0?Ol7V zb`QY-k@~U_k`rfd(2!xFxQ|sJI_cOguWXskQ(n-QF`{&v&ubZ+m#68}?o}$ckxd(b z`R0cGS08j?7gmjOL5ed0E*o0SYG16#r(zi67AF(ybOf+!HmjF|!)=_e2n}w_!w-~8 zW|7y{A)uALrzX;p_D;K7r5@!r$j!#xW8I{p0QYp~7O}d#(2m+0O=TgR?av3>0yYN- z;AVT=gR_5sLJmc!c?D)Zc=@slrfpeoKy8#92mMn=B382@W~^Ebb04 zeb*~^1GjqvoR6lKegC_}%(M#J`7w{E*RA%5$G5;~THboCRb&u5B$pb04sSVrhODO1 z=-9g_De9~a&yK<%TB7kXGXHP(!Y%d3eLq}+!2VsJz8odWkqhj1Z-@xdKpZMCvF?jR zZfsB1A>+3GE!L1czaIm#YUWiiy6w&vJ;j`{U{qZ#`c8m$d3;#c(@Ps{pO3=4k7AlyDlm#}Bnsixo}f|h zVl$?+wQqBK_XdnT_$G5@uNYMPjB{fkTO7*n@yl_FT($8!1`b!E-hf5NebXYpo^XEA z7vx_e71xextS#Ejm^tvfL$r(+6#fi(T}}Np&M)t5fua-`d6`|8@)hS=YoYtcz*6C= z&a2l6w>3ONOp7w19GGBTTC>3Qucm2(O%Y@d@%GD!z0cX*R|Q&beX9Bd+}>iVvc$1H zd_ea7FJ+S>@{izeZe)pQG-!;uD=2C={%)s56+jP9GgjHxswhpQJltMY>zZF?eL95a zkoF7iOONq-?OT{EL3I$HB8uw*TZ{vXw}M$pCZ5(Fd*SA$e@p6}s#$8_c^GDIm<5*z zt$?Jyf;B6s+H$p?z8nsCP7 zh#A+B?sP0lTv8~!%eH~__4pdV_aI^sIF8z=H_$>(NFtvb|%GcTFAK0zQewP zGf;l~7C-)MR{xRreTfz3*6FT^VfLhZ(Q2wQMeCU zLj=ejB~=VT8&F8G8U&g9uE^QE3xS*c>Sf0=2dFi-G?4Ud($JQSyR% zWe$kE-e9z6l-CxlyhTL^PR}rOV>bcWxV0)GsG@laNVz~IUP>_H2}*YHr5ipYU;LJv z@|zX>V-x(hklk7;N5|kF5QfLnD_QSg|U`!W@W|-DF*xJJeeiZ%5Tt) zEe!(s_5YO3@aEpa)4L1b|0!)^i4t;ia<$DQ_wvu!HNU~U|FdMD!A$>IGS+GQY#aZz zy9_`Z9!?0w|7<&cVqyL1>HNF=3lpV}Ool}9RhSbjSRDHQ$_p@Fw&b;#dyDO(*W!+U zhkpHVSFgHizYJgk8IBfI)Q7o?io0jkY_fx-LZKtfPd`K5%#?J|a zOLtg#;7YDMYMOyeA?~l){fWl+M~d2hpZEg+u_`vM*7(zmwfX6pa7h2L)D?UG_zRZe z`P#S1uR*|4JITiR$B_1k8>uk>wVN5k=c_+U2!KECb%a}`xYwbTpYb_=lcxZ24k_6D zbShl&;qpI3j8C_`fGYj9ZyBcqPG3WW(BJ%mPhE)PrXs8Cyb?K*KMOg(&A)%;@|Y_5 z=mBQM{!hPu`34p7o}WH4Hvd7sUS;<`dLjR_&;BLHa4;4janeJ{@qVanHg0B)^+&I} zyapV-96C~Z`(W%~h>|j*`J;moHot6yGxO@v9yn!U^RK}*tsKeo-h=xNMvgEB6jBH@ zV3EBmMXw$<6&C!p16Yr%6By$~BSAt%e;Cd0TYu9|0mITB&cUC>^g=g6IL8e}%iVip z!J;pR6d2!n9B%h~+4_vz-L*(Efi=lG){@bk-m`a8>~}F!>1Ke>v*;pAN7{W9+<08< zK~@v!ZfN=?nFouQL@U6)MQUJt;+fVW81?7}inXL{u3`ZD%9eeK9QED^9JU`yNwU;@ zneHz_On!i%n2P5tCiGIgECw!$lxa?C%d%#};IK7qT%M4!uT)w=iQQ!>> zj9JPS*SqK-i%V92WIEr&;r;f?I6rn#uJg)L>Knz)$lbNj0SBMh>KyGU$-#B-WWUB7 zKk9ZxIs%S#M#i4N;&GwdCmkCEeHFT&n#j&C;&HaLu(!kKk+(PtuxC;U9f+8belUTs z2-qns7D@nokNkX?wR;e6$_GGh$Q1g-NFrsKU)5Pw5Et`$Ay_v?ja`su!Vsv&eIey9 z>w|yg_n0f0cOR(UcMeT;WHjkO(`RuH8roguo{R0d!ycMIo9G2Ads0g%r@#+1_a(;8 z$3$Yx(1ZSpRpuR-v=QhayYMa6v|HLkZLU>&k_OM2>A=9Lb06tT4-G)eM|k-p9cfRC zBC_zu5v223s!Yslk!HYy6bvLUk#S5ur%>fufoEi0(wl5FIpchD9E-}*=Gt&_w}odl zqamzBL&qNxoc8@?RphJX9EC!q~M*!Sk~k<@z*YCcqnNMsquK{JU5ifCsgXUgoDOb139yb0HAr z;xckOakkgr9{@9ggHi<0Osd$oohcSZ`TFovaWsUYHzg^iVeX2K{njG97Sj6yfCt^K zv?vCRA?Uv^`-D9x;)X6(VL$)|Zna-9{(MIc7a*fKYEIFI@Ad8V$#GKHUrxS64bhT- zX5!+)Tq`@?7kjN!PZTE~ahxAf<^uujFCt00Smm(&sktw&!>ukekZcNxmTT$umLD=u zy?o(GheI`|mXQ|$B*?Qb-X0ZoKLh<8>CX?i9L&P8_G0X#0mz%0esmOTL<~kF55}#O zY{YueY>wlDwF6nB9#~~q_bWDK0Wpv2klK%msIANINJ3M!8Rx)11#m^-^r$zET~ikNxE>U%O;LU&D{Y9p)eduQSy&PQ|~74U;f)MCSFTj<(K<#0;KA0- zjNI3Jdv)@00WS>>u}2Kx%V^8+M|^&siMA<^LmQGRv)3yzKUC?WxC~6dt~T$*d5LCI zL<>z%KRSbs-Xztle1k}gNB4MW-Z!IHE9Cq(sYySYKBbvD&njg7E`t@QUzc~apGuq( zST+flx^LBz&Pc1&x3Gpj6**EpAFv^;N&WFC&cU!cA+LyiLO8rty&iTr+=Xzfoe6LV zfIc^eE&8W|JEAs5BA(|aeT_+&4HBI+CW6t;WSxMa3H-s4=CKL^ zqk=%EYN?X3b@R03@O^V&S@2-=)abj--N^1B#zN8%My~7hm)N;`oWg*(k6CV{5JqWC zrW642ap8=PZx^=v>pZ|zCE{fvqRR=zkyQqRi?4S`QouPp~X8nB8!{%U*9qrx?I!>p9q3GvDhTW7U^+d4?X zy_=p0eAg&HGn7f%=ySpb=>X7eM~ z{&3FQ{M3yT-P`13UUC}=%|keTJk$R}H1xPb+KqqrpfKd{k@}l*VBR~ zNKd6uLb1;B%utE(LS#2HF?&7QaGw=bVo&nR6k!^TJN(Au{B8*d?lF>CpNK)gtB3Uf zg78DML1{2?^aFZozBZ6Qgske83b#?873=Gg`m+r|9t@`?kF{@_!A@JZkb6R`g7=(` z{|LP0&nh8vG}DF~&Oi%T3J042tbqJX8?B>DyqU>)j1IL?cduib`LxT zJB6(3SuEbpJm^ygR#_#X>1V%23tjtiPKXx6P#1@M3|I3)3+*$dtgC69;rlsF*Mf;; zaCgps0F+iga9hkBJKPWWbTaRzd5l*EdD&u4X<>}xu8U649JzSJ8A!qyHHU*}3#iIg zayAZhw7-5)&G+lhYejXoq18|wB_~f0Aqx@7mJ8R%7sLV0`objYtk#X=gaih(p$OB3L@; zuPMckc+0! zMzxViaJe~$BjWRPkOczRpZ*XQhE?p-l7kpJzIs^a!nKu_Ql9)eFi=am-^CmQjjy}B zc$l#yG@Zo4*Y&PesBsR~m==TJ9iRRwO(LzX1{4Sab1fB4G9(97G_7MhhDI+gLs+(m!MhJ_niU z$8DDi1aPH2)u#_w4_`UVk=-c}@;njl2CVx?%DMz+>G@TRN7*kuWyRA50>3P4sa>rcmnP)3K+9<5yy=l5{ni_j*2f);wx~ zFzpB6`|+?d3gBIY4#jNj)g6JEiA`|RblXdd+(&3S8`AE&->36r$jq{3t~@7?9M+&I zEq&h%TQ8N^>MC^JAttaO?%_6o91mujA{TT0uL&Hi#j*urO!I8$6u_%QC}SZ-eins3 z-bedDSJ6bt1_OC~a=LOM>nDY7UePjidweV}9U@QON7{ZJzJ=Hi$&Wl3Iwv=N&1Lkr z8Fne@59_&8A6I7KJm1)b^j%>S(~$4~|`(OZAU za3X@N(HxKN9)D=yK}1}~K&eGR495VH>Pw>K# zh76$ZTIoPwzhtW5j&Trw->e&qL6<-9O6Kzm1at3lAQqpQqk3S_{64VX2x-Tjr;Wqi z1lTouK=W&4@pH8wo5%ak)V#x}%7EKm1*!$$jtW!1PKv?(`+Rdes@^}lez964*GF2x zDSMKhdKOu^kD=<;L2nZCQn=owgWL>euEU*y=0^d;O^Cg$_u-_qwklAOVSd+4Cu@`k zLhC<#l|-|2whp+mXz*Trd+iFd19Mg2a2M)&TERmn%7QJm5UqYGn9~4kZ`KaQ96Qi; z85ReMvp;q+2l@G)D!?7I95LbFL(nbX;lJ;!PTT#GV95C3m07;Uk&ki-0B)q%0a719aY z1HL$U;KaraY^G;4?yvdz+a1PVeDn1;KR?`jI_&VupoDMj*;cZN@!mN9#hSferGIVk z_2CV6UtB!B=Kjz7FU;4pFM8*Q+d6j_xF!y{D9y}!*3x4X->(33V;C*TLe2IqC323>pOaVwE+ z`L0b~K6Ro$9D|>LAKc|$%4K)y!UTVuh0meNBLdqd|5hJ0=m2eje($EOee@i`1AqE9 zZo@6AL>F|MsYr20H9&5-3@IPX9buhpF zvz=0XdAeVZ{3O(lKAw@btD|TW{KNbUCBxRX)v?zd`yY#XSq#fZZT{ny5Dqh}&cmyU z_ArFIiMr3<@Srckp16|NOzN|@b=|Z%U574kk+)uSAY^x}=YhqYcf=XO!EkL(b%%o7 zV9v|ZB@%wznjY#2V;rd6t0xYjul1t^TSY7Oa^u`e7^F)3u!#vCuBwnTCzQ*66LnZQn%Py)D z+p7^~&~waGP#+-Az<3IJ;NcZ$ueFO%4aShymoB(eTd4+I(tT+FodPT%_z%gbb$`a&!@2LO{1}iDa zX+Krf$F{XOKYPA3_G$dobGFp5v7+*NB61r9E};%i_uwsDeIO_dI7mnjOmjGxcw-K! zW|=>mZ=R34yDO@{eRczS(`()VO*Z<^elyL|&DTUixW_XhQDM^G5V{V+(MD|({1v_8 zvGmtNs2ayv!e<4UJHS&*;?VloEVp3Oios6$!N8UJyeKMJ``UWZ^a!g8OPKwlqn^SN z#a+8$q(%$I#pZ$mV{KWLc}4xgbZR|>uo|R_MZ$Q(dNWtx&m^OHXf;#36Qz-zlm4=8 z%B6!1FE-YUTYI9w(eXvYa=biiQDP*y>|j$|T`;LzhQi2`GUz#JS=oWFGzspCQ38yE zR3R(sk0bQHhN+~6v&-JZ8@-Eyt1Ubl65o(shl^9B7XrPReYeCJ(2kX<7&Bi#Z|pK) zhQ8kd>-)*Xu;(LOyA71xvZKA$*_DFPfz_0XgFRJ3nfj`ck{OP}g_GWmqTA_WyRb0( z;=_k{f%)WV<_{vo!8j6JsY3(;R^5X5n&)=;O~iR&;A<1scSGCfoo}-=aFs0sRlw19 zr_wj;9vZz?V~mQwNpPYs`q0^sW0yS`h^zO{+SjwMd)0Atz6I}D3%~7} zev)?{jc=N03^<|N^jN*JpR%3%y5olt=y=f|ncqV}D026@h2oMQiKrom0D9bPV*;%RCOhg9Dv(nU{JSq<|A4_m zZ4*NU2Z&1z$M8w_969eR;|alPRoKJq6pPr^aYDC*faPDod#a*u2OtRa0~DHpz~{CC zvl%3M?hb5Gg7zl~P20)p7AyY6$Nv$V@dqaAZE|T}xYp(<)OlXatB8O2YepcA0SfzwA z#Oe?R;|z6yu#o{!ntP=qiT{Lh8mMkl9g|+-sVz*(sUz4q-7F9E50zoJ5YIB6u6qK0 zH&2Q_ciR-yWGe@uU?qXSP%T=PkfTAv88gAe*K7)@OL#vw(aRJNUwLLc zd)F~Q6#*X)_u;IQQpV=1=Zz2EaYhGKap|=-Ew`!qd5>2neHzrd#cj}9v!d03@*D6Ks?^zz=#H=7+7oY_J*5 zs)QIXiS5ffp}9ZNW-2FJJ0YG5cfY)iDjC&nk-ATZOBWaDdt?#$fCLX|Bv)d!^#Gc5 z$Gpf_0_tpXfO?`;X@9~EePX^T?g}|~+xsc!Ce-aGnCvF9j%=tD*ryUG8sid~ZmPKN zbhkl)*FAkgO05MvM69d>UQWtJi?sW=z%rT*ybf0orQACe`<;521{I_S9cNG~B~X3>>wncA7m2N4yH({l| z9HjS)xlodX+Vv^3B8=+3w+%@x?q0hNdNEyY?+Q)ki;cW_3uk2H^^D!{wA{i@0s09X zxao!pgtgOpKg7RWGbB=OJZ_X*q-Sknl^3hZzSao8Pp)grTY@ioWj2MDjFF7JW zmBQ{*SFYF7jD%UhfQe^P{ zL5f+yT_p9`uU-{EC(e>0{0ytRUd95CEJqinHd@v`zC`rrc^Qaear<_!=W~cgmQnkz zDdk+6c#U-Y#MbbV2-${p{`aYybFbsXHlpq=<>s;4t1rbZ4QfVUqRaVVn6u$!``qre zSjD@fV~`w*HxG{sd+7-o#8hsy`Iu8*EXQ{zRVzYGMGhD?)4e~nBU(;LvH+Oi&LWbX z{!lUqM6)*wHX3Mq1R4G`FfID@wk3A^>Z`rBnqS+4f0tCtg%yh)cf?^Q)rPqY&fL_p zJlH90@6xa?;25JykI`S!ZMA!V1EN^M0&ccUKoezH2`|QE(mY^|Ed|upbe$a83Ir4q zaKSKmcP3jrZq1~BRMx(3qW1H3H<#jw_EW%D1*!zPdS2}eOy_H_g*vT~UM9!u`QaJC zq|gxfN%Wq0L9bpBC8Is8I9GzmP-$F%ueVKn=LYa3Y&TO@whtFKn`Ztrlmnc&n(nDS zz(Y>324 zvAeeK;Qu1X(B;ZF8e)SROr8bfP(x6S+oncme#?pyMhvg}Xh_t1I>{zi1?{*uj&S@* zj8jN{MSmpWZeS)sM}tSPpnC8q@!%2NC;h{TRy^^1ll~$TIi57*HBu!@so=$O8?gPT zghfF<4t(v^2M@h73ZiDizG@CI0tSjKcVtX7vcQN|@92b3>Bw~3;k9cDpeX9TVT3KV z(SKl7BV&EgPEQNfcc^T0{7xpq2n<9~aFDEpQ4t{Lsf42~rIh;;-6Y!j?xXMp`Swt$ zx!+_+Q&IanfGL6?=hcaBRK?!gU4c(W0?oCNbF~{P_cxr3Ya1&7GXc|uU)F=2vsSI^ zOn@R|kXbhbFcPiNI~H#wZrzp}fEZW9V~<&7=4}1w);q}NVhVJC6kiiwR*C6eY?$Pq z9~f%L?b!{ii}A9$WsIYnkYP^>7d)PBUP?dC*4$*FUNl0##5wCH9szXimb!Mum@VuS z_l@DBL_LdAtJmK)b{hbMPA`*1!|w=v!NA!#hZ}sb=%#{Q&~J@xH%L|xCQne*#~owm z^l{RV+E9%|F%|XD$*6yaZaD(F@!h*gu3%}+JblmyCsxV?lM+`-%}ckON`U9&pq!0^ zTaXF8xqKtuYw0;G+46uwMM=6E;Ut_7V=tsAW+l}c%|lc^WB0ZhP@{+kJq6c49B~+jW$wmPr4$g+bU26Hy|Ec z$#EP4z{K+@vXK#*1iTZM_HD6bA^rQp!94voY;~-#&cn(BUO(UAkK*!O{Ho%k8GA`*ggKkeyr@Bc6%3eoPqO_GqC#l`c9O`2k20PYSMCP$b82D z;5x^BZyN7;1F-9g?~V|N)xX+vTf%rW)Ao3h1HAnG!SaVB+*K9zXITWzxTo$sriLnKaXg)eL)oxtKOG$YM5yN zer!*f+f8=NvyVebtww-EO|CKc5vw_JYZ0-=qwCvqVaT=(-g^+MHZ};f2Rcp4R74?o z7P#6N|Geln0&rdE;+F@1f=mJTAVPDGxoWpy!P_6%$Ir#BoYWJU$KQ^+Vo7f{wNc3r zg!?;PdH+|eha1y>x~p+_`+%=g-;IL#9YKoET);@WpCfv=NXcw(jVjN0tXL4MWnj?2 zz6i4zG~k)$jTNtAk<1rPC)sOMTb|1mFhfh!m%y%@q65xsVK$+tynL6WtTLE)#a*~3 z!mz}dn)g$VXQb=WhZ{cK)eSRn-Zb)UM6q5A0cgXX#rp6P(tx?Cpj0j&RB}_Vfqa&A z7Y#$u)O6IzM4EJBV2{Z!tjjtw#3KMA*4)N-mn!iAilvABdetc9(3XoR1eO31zy%+6 zXH2>Df!7*x^LU0z33>=6)E<>7&g_ z>OD-bYJU?sw67JB9oxnX!XWI`h;E?@;fwQO-&h5HdVUMGFwtKM11cU~D+o6HX+m&E zO83~#;_c30yQGCKG1G8ksVE+1OxqAJHOcSnG6RJ0+f+RVGydDG85M@k3p z5A=^2%X>E;5k#Fr-Ur8d?T>Vw^F{8?E>}bw3vU%83$L?sE^!fm)+LqRZwnIcqNE`R zCMnqEE35cao})K#yvNTujTA))$esDq-X!lWi^^szw@{mx_XOH&fmJ8(ebpCwTM1BZ zNqp8l`%SOY{sMfvVmEa@_s&!qDT7zj$b4*}ZavlAi9WW8^k?1Eife8_X&6v&KEa)g zCLE`sS@i(w5>i7nbyFf_oh>PeU&99Wa_+soTN4?KK*phdPr|~PnW_f1oBvT4b@gS& zS5z3w5iTWB+X0M65-7~|=VUgu{`r$I;7u31zt5@|$G<$qkR8JAIE$g$vL zy*u*%3Y@`qb|vr0``^NUWL^VMf&RzI`@)uN$FV;<`6T({U$@3_*|GlilK;Qw9}Xs< zIKG4RbgcpZ?vMYgzPYRgqJ*DVTF?0ZckB7t7wX}*3l>z};g6y?pf;sK4>crPF9qvD zck90jJoT?Q4F6~No?4rE{N2=71MF+ES(n0pl!iV#}aSdb+HhMBZZ9Bu%Nn3|If_r<{Op(Zhbar^0L6Y z&1*RnXD<*Meh?zXsONZmc($6tpMr9V7Gd7TP^!gyT$@cjfFK7Ushkhhk z-^e={I;)1buK;ypf&BPoVIbFGp@hKo3sXu0l(3w2fqeD>`5;Z}R}p-yVzCxk*>aoN zdeLLm$ZKk-pw`PKqdq9t$Lb>ruit|PY1hU!^6h(TjMY~!W+$MnLDU6g1)6R8?D^9e z_@c1y?M;DsV;gzqhcXfx18U`XQ1>a}Bl7@nC;ZlUsV6ZGYM=ASa&_3PN#%Dx|82u# z{$q3Q?eOQ&kY-`}ocNXcSC)D};6)|c6r(&3kH~udcmNooAD)&7Fq0_lba2od-8FV`sShXmvxEBTXo?Xxsw1!3`uGffZ%Z9KLcr4KSXjUIuuZ zWuzi9G3hIz^wV=50X3{9V<568CLs>G$9m{oxR8F{bI#J+hK-DM5uO|e=n)N~VeVhM zVLna(HTg5T@!)c$3b6M4UhgkoBBBCnyXyBy7Wl}42R7yEj7R}UMU>`esC@LvHBlhc z5nZ$=!397cX(Qr^lAMdROP`M35P_nuTlD6E7`(MZtnI;NSB8KzGzeZ7yr!(?1sm7h zW6mh@e)?K@l`A`dcNr6#IH6|5D4Z0VLjW7yhj8p@CM#c zeVWW~-%A`fYF@z}HlkN)x!}wEdJZjdF|_inMc;z2vhNT8n&t}?J00NeMXq_%#kyfC zQafjz#3;;yoJzq+jhxGGhImcbq&8z`hJ!u72i+v$hG}3Wubs?eo4W z0P&zzr(kE$)!8~xqC9Z$36~?A7Y*Ma@=gA8zFO$0)1T7}XNWTVIjBqJ>-<2*@$xV; z9qoV76T|mQmd7ZW#mv7q)8YV`7;lBnQ)tzqe)ZC3rggkdrXlwsG_yFGOhbKZbpFR1 zA0CD7E=Vo2o2|#eiyrfZtyxsftWN11>3&Sh!GqF*1T=kZjIxhr`NDBvn~(EfsV|Q@ z23q-j1Rs^^Jf}A)OtDIgM$*FHoN0)@NOD&iiGAkak!E(ma4V-aPrCK?th5ad_ik^6Le_^fzxCfTC!C^)3 zc9Edb6e6&2kjw7+cGM$$<^YhKCa4L2K(>t}#&86e8(^b5lDY|94Gq?r#nY)cXgq14 zmEsL_gAogvnTP&Zy~*2M{U>hgNSnjyYCA<_|j+d#MHxg zfX*US4MVCCbpRbL%UfG_uaszPvJ%PX*sL!Jpe#F zhKZFOB_?}xT^R=%bq$8>%TR;+fVdH4^W#A|3&C1}NYsIuQ2vMC+!q~M>_Hli-k!J| zjFgf9JVL8pjTruYm(jSvsJj-i zuL?lNXgR+NNw~fqJ<|2KoBRqT2#T+<;y+p{(8UlVB(2-z!<91cs|XV`hVu(LRXI(t zc686Sd1J(lDrvSmF#mm^OP#0#h#eorNJ;#FgK37<9I@9?K{Wl~9i-9r@W=K0mPm{F z&j~*M)>wshodTw&$qJeGK@M#PKnWrwc0Y3jFj@ntJ_vrD@Iv*~6E$+8-fFJW;KpxN;bH(o4=j~- zTChniurPwF5O!FA=7-otdMqh1(nhy6(xgxsQ#MwdjOcOLUrc;Q*GqETDO?eVz z_#sPR6%kwt6UlWtIhXsBj>DNQhUOCP3?iWs_=Ay$-4s|NDX3j~-4 zK?+bs9cvO;$HhP^+~-pz*C^VenhiQR67E>TavLUg+KfMFKV27q<%{j}KgP^RYij9Q zJRX8>YPI^^RRFIBg;LytCy<6cB6cfqfmj4jp+oHXx2;$!T(R874vTo}CklPqLB^5_ zi?~ZkccV2+z@w7Ey4g@vI0H9_%(e^L5V5Bz|Pc?seu1{qC@7H{PD5THkCNQ2b1onYF z2_T?IAi~8N-MQ&B(}{lR)c{t0z^;waM7@9B;JgsBDY1GHV z^IwvZ`Zv1syTfD}t)r4gC+_VEUuy6ce@Rh2a`wLg^Y`zw%zqE+G<3^YozHjsf#$u` z$Qw*R!*Bi@bSLMh$eAbB=egx$-|@hI**@!E-?NsrfYLZ^hnz*jx7pfoA*CbVk>x+^ z`p-fCTMHNd72#_%0SRXRqYpt9$zPy)iQ2Cge&8`01(1rd1kkWN5;C-sQ~&c8`tF~h zo_3o8W${4tbU)mRG7{CIb>-B*!Fomipy}T6h0Eg*%~WW@Y0gdD9?=f7L%p&zB=>cR z`4X$~Sn?rPJJc`%{Rfms12<5e?EMql!=(~6@{kDVY@G6cgN@HQYjuGusRmisAu zT0fc?JV)H(Oig|J@;0}dtai=I*vW1>vaiCtb&xJV#&fd%_(WO#4zz#)9BAN?T$mOb z?UDxkeYXIz&m?gXxdtH%@Ki7rQuO{#7bpP7b?+?#8$1PB64mIJJX^)1feLo(n|da9 zB~lSaE(`8sX~2FPNILBQ@uDht3kex8#;`YztI$U!zaqc)hUL_GI%tZK{su_0|?1!AQ~4^;?zAatV1q!IM;_Z z3LgT}>_JcAZA!KKF)GB7LVaMPk~+2fP};m?$B2l$J#=M zuSb`QgqLJ9UnsSixIdc01*ocj<3^h(zY_j^ALd&o+#q2PD}%4a8g;mJz?t zW!J}I08T)sB0h^8!vP%(VDD^$Z{aTd7V#F<$epwdw1Y^<-cHWOr4(AnK<8ZgxZN4B z&Jbm|)6W9^v=BDeW7?q84yrx=q8K7v+!~<6X6r5pJ++{}#*7LQskN`C)^vcu zS_`jrqIxbem5VO*fPo-sz{SX8!1YcWb?pcNg^4@|^Rs^NfJ@+D$u;0+mgF(uW^9OD zPw3nE8sy!9ym%h#?sr}yUiku4EK4gLkZ9zWq#D`mc4oMQJv8Q!s{X7uw5C(eC269L z6h)~TW@)w3cWqa?{D7CXaRkTiVY34n8K={GK%Ee`rUtqax_On8DKbFd71M0+R6zWp zQ&I-cW-%6XsH*xsC!X=e`R>JGx3C5gYG}Vy*Hsf|7@DDx>GsCTl0sz|ElwGckb%(z z+~sQ2Teo|03M)xU6{p24Mg^TxNk6zh!IkbFguAV->`nC0TM${;FWtPW0}NOibq)+r zwyeTVkGZdt);ngwcpP_eGP+pFdUubiC4YSV!wzU*Mwk)KZJ|Ph7NW{ zikJ%K;4@GT)z91%LM#^Oc6?vDS*W<{y*uc?q6BW*Z$o4s;ezL1329Jby%*$x%7&V% z(U~;3(M1X8eQ;Sk0v7X9ujyU7|Lmha!9}R8G`wB0^Fi-yqN;dN8m3? zEaB*9%!_lh!N#po5qKbHQQzzpkRX=|<7CZaE#K zX!-$#vguld6RhP541+m=B*eZ`0AUE-2wKZ)P#|2-0o&awgYqs(aViCfmcX|Ag6i!H z1}0B{t*e1{-)14e5-_6tRu|-Xf*Qd6wZURySJ?BNyz&f7Uj&8}7zEn1aN7aN>y-ap zW~|p~*7bcefImy$3&aF7QSvYe1Ugk9-P)9(^6XuwAWO*<2R-2|V>T&ytbchCX4!Q! zWg4~{^bP;CNo}yh-4phYCu4SUJz2$Y{QeN40z0GOKoD{^+p|e^k$qI8bWRxU96nCm zKUoX#T8$eHKpahg6{z#ADh|cQxEM28bzTeuCpU7DQHEU)f=YI zcHFd?V@^il!vH5XO0b%2iY_=#3`pYuh~gRJn{hHIVwySK&Gu1Y0#r6Mcl-L-K`f>` zyTB&Ji*+k`5lxT~8cbbxkbKV)DBgxA*e7!JBNe^eYcpd68{f3oi7?8wvwV2?QQw~Y z3jz}-C?|ZK))AO3g4QN%VXLm^nhzZ%1|7yR-y;PWU0F6EGke-2NwH!12sENcJIr@3 z*6wEkF=C%y(Q0)@_qNVfIa`@nK-G3lke;SIcuyRi$CNd(Ec0xAY z`t@}L;wIynGUErSvKH1})>(H~b|7es>BQGiTNOBLN_?U(s-`g21QNn8Vdq8{;*7Rz z{)wf9Sp|?2rhj>cNk%3vYjxR=Bj5^x!?Dr_JSIB8D3uagFFW|q60|V%6eQ97>@8UI zNJt^Lu|}c?2-(~qo6CeXpv{cXA)s7)fTM2 z+q301(ujfWYL{SC*Qgpbelr+F^qsCE6|a!eDxEza53IjSQy{(*SK`}x1TtTJI@$dICH8-f#v%b|%?8je z^!UB09apx`fTqutqB@I#Y&Q!NRf^FB8TuYL@8$0SYTki`Rb(0C!ewRB@4Z0rW*DAw zvym+J(F2Xl#5ve4<;)gbqR|)bLHKoH0&+3PimY}q=-9WNt&+l;6BBE%|L%Q_?UrEN z4=YM&ws8Q%-Aoh~;i=Zl8{<%)SI$-504(q<6?UUmXo-|^8S|0R>wuN|`>++ePnBJd z=DgOb2i-j)iwTm3JsoqXD?31+85NtV%wSx>T~SI>i;jRE@-}We6N3`OrS@7Ke{l&n z|8#Im5)`4#s)p?7)OZ6Nv-Wv^3Du*yA8LzFya_I%y+fEgh&k&-FIOxV;X+h?t5yUn z%K|bk=enMc9jOS1^>?;Tf`DZFJ<8t0uo!yynO+d3c@4LW*@0qcvVL(=MHLrw@xbpQ z2kuU;r;3#EW|}GI{>4FV)dt$~(Mm{6QcDs?23MP*$FM{kKp8F>wGz$R@hOaL6iSSES+7$5!gEBP4{B3}7@7O!w6_&vYlH zjr+Quh}~NqXx*MA(hWX>KbDLhTOSNBC`xa&`Rb1+YHYi60kYwBS53@}P9$sGQDPho zPOyFR&TF?TVDT(+zoxrzW#>v~mW1X|;$1pSd1`R1B$=Y?zXCoMHt~H7nINvG3a+99 zgEp2)D@WdYa!*t%h@Nvu;M#k`-na6%LEUx^t%~apr)&o=0ts2w0n$d(R&^witHp4a zPbsy-rxTLiIHjo(`Nb0Y=E6skoBVS43j9o)xSXVzsph2Js)bQ9R=0q_9h0j@>y&2Hl`;+Q4r{Ph7g z%sySg@vb&)Js8WHz?;XU^#Wbn4T>a`TyjUCKBH4*k<+o4_q9<5Xm*9XwSAF|tz&Tn zb5@dKS}$wxId;_f_VbKT_Q~Bi@rO!`fsE zYLMAme_Y^=KtoSX?EIBs)3;mrAI@sj?75BfooU* zHSHe4pD4i=#V1D7QPu6ZZxzVU%`_3YWC}4|7*AI#o|ZErgSYB-rA|=dk{{C^Kh7)# zkM5XgM*}ckqhC~q2s@(zhT!_cW(SA0!)y^(WSIBNYh)x5$9Fc6?r4fb@ank0wIzvm zL!{PxsO^L$!;%N%!h@mqIZUhs&fLG$L>59$oaSX88}+2fkpPC#<%8+h(X_*q;+hd8 z_KD>OROSvRoSf|_RIURcwfF(3Xq|xq;bQ0s;;h(d1-uGT&k{FM;D#g(Nn1FPAK9?J zL8I{~+_h>24qR?vKT5oJ1-FpM2Rj0;QW?=ZS$-P1*H`MV#ftqH$SzsU-Aqe1@_Iyh z=jm{}K4HwbtWqk~EC#{jv&F8l&XU~PP*G3m*S!>ZCA(6-SUV7Id@(a%kWeciDcErI z(!_-1FnESF(BC~ZM}jCT%B{;-UK_r^#*LMKkr46F2SsQZsfgT0YH1*nfw(A2n*8HmJ^;T2zcQ>O zrfsyX4vF#8!Kqb@z~Sf#Wlu2Vg1~*l!)3Xd;F#+mNg-NJUHB-Ig6L0*XaJFzp z>Pe+UQR;dXx{Q0c$O6dVR%@YEA3xWG3D3~2uFv63-hCFljkr%3h(7_@?JzJ_w7Kmd z38xr>-=!w1hZtS6Yr#1HUCX196^};H8>3e@pE*tZga%Q8v?)3j8IPh2fQb;nw=ySY z8rd^rZp@-?l`5&A#v#|#|AbT|m|rgfp8Cv^%C(6XpCk7s%b}(eLdD&e5N_zv-V2j9 zhh~ZprjIxmPBt1>uW@ZmWXbS2=>7^B@L#k>n-$;xH#J=OSM)9a&ls(L57_0; z&2dH(;O<-KcctXsHWjQA0ab?k*ENy168<0A2mRd{t=%8krCGR@!vlC$7NuUVX?Xw( z*Sd1%<6mbV6@JU2s#kLTd;VelNf7yH9%VgUHs8PdHC1s0=P&su4%H z5WfP59o|}pQqqy-2ME&sm0ntZ^b_lz#MZ@75vG6_Qph6d^f+ipAITzlx6(0=kA$w@`?-z202wVlB@{%PHR)4e zCvb5v%nn`2(onam4*;OBMTrA{{?q-dm1YkUfZSUvX1i`;l38#=##t2K zi;}D#4n`I{pC6J{)kyWY`1Q-6U$t>^Vs!9B)>H-XP11H(=~RYozb{7=c$VOwc+%WK z#y#NMw|Kntf!5`kC>>yQ?_4ywvlBH7mW=pb%m&@OL2XRZLUsWX&O=QyF~=JdRnrjj zaR|nUq@k7{^N~3ws0Sy%=&K1h`We3Q4kQZAxuraZ+Lqv&H~OMi zU~#r$afbAeKhqygImXS_*@L(i+FZfx!nvoNfoeJ6%N>Xl+u9)CVTF6*!?W+R?{%b* z3H;zpG*F2YBNcBC{IE2HNrDj>=AVSVigd!F2%?m?(JnZ^Skzh$0bSssagY}1!NA;i zpuCZ03NXse(Y$F(g9Ai+6?sNOWw(VXamr3WfG8Bx6_!7nt3C13`(JhDE zX&G8`bFK40I*o+;9P(E}dag~^(a;`BF?0Xg@8oIbIK-%2K5H-=J#< z>vO=2AZ3~uc8598hy<+|$8hl!^=<(;WPhtvbYjxK9-3BBEUGYq5YdEo5^(K1?U98V z=2l_9m{}|r7?N7FD2Xx&_e_d$ zF2Qf3)on?iWbKF6cGqlfw^*LBNPjZI6}Q<{XzSy+I5A3CZRM!p$h;yY+(T5{>~aak z&HFxCsm!sa*ioiC+^od0#&N6lyH`QGbwq*L(f``u(o!eXr~N?|aQP#`8Si=eh6u`P`rTb8~Y4*wB3M z(B)zvM?U4BYJO<>s93K2?fx!f0A7XBca?VbNo}Dk995?mt;wD&lMSLIAW0tnfbD7T zd^3{lKrsW4iO&q9(t60)637Y2Qg|C@hNvZw{C&yq8HD2k5fsh%wO61MrLh9C7?W{f z*_M12P=T`(=^8dOvg?s`QQ2XGCV)SZ*Lvp^CEzw#=F=5YE%DK5wrF03%kcp=0ch5_p&sNovO$wm}q4*aH z>S@?RZHWEaDxfxQ2&S$ArOyK+V>2_nf|9NZl+S0%wXU{#n64?q?C6{aOzCk6Hk57cwr7 zas`9(x4=TQbD4OxXD4rX=jfD8=>qk2=HU`Zb2Iq`h*v|~vhymrsv5}tJzC#(!PMvk z|B8bYGSf-Z@;m$845mN3et7!?k2#YWCMrsBurT*-jN4WBQ8GkvCZNS}jcP&5* z5%*O;FL^}lr;c)RSu6xhO{$h(Bfw55Z*v9Z!sV2u*^v>c#xBB(yt*aG^)Y*YmRzvS zrEz&Jr};nQt)tj1iQeEk2ZLx72oeW=x#@R)g^9s%xx;GdE!pb2i2oORJfGM) zTDm5jC3)Ak(k#(RWuO&G2%MO;uXhv@Y#!}rTnGV8f?@ z(>+ep19eM7IrGEd7-+Qnq?IWP`h}Clu1)$iN5#%G?y6heT0B3{QZFX@Te_%k#V$2{ z*S_jtXlOC2gtOmoifay$vhOhv5&gD<{pQlGab-=A?sP-b2^vMZW5ymOqh@u9huJFf zpcG$z$t7PKH}nz+C!T@KTSV@+kVj2lLro0U>`?W++e=8dQXY_pN)4x~)z>>BY(0vs zocYw0-%q;Kbc0LJqFO5}_OX(9W}@ zHAaYV+LRR(sXQPn$C2$m{#R2%7WPvU(jQ@EcZ&Gbydh`ddz@f+mrk_CyoDZDch*1&y=z8%z^{3a#9wtpkVY!Ti-j%Na;gNKGGSl`5Pk zcU@j4x_60=w1RV0l?td|`SH^79_fhX`BaEFc&1Jh1*$EnK-51Gv|~K5b{2(JdSFVK zKf;P2Ku0;g7&&&BLd{$}D*Z@w1ySg3*wd1jUU0TpimkadX|A`<|5<8r~a?b&dj^zp#OdtpbLGsD>WNmsiUD`=s^iue<5 zW^V4QRO(L5xgz!<`Jja~(og=9i*7D0Ft#re+i_c78Kr*4 zb-JRK^xOB_Q*Y`t4+e{5lC+^o8*`=fODa)CDRHF#ql0qEGzznMtO;pE}} zsZ0yFN6^uREaERHWnB8aY8zHF4b%dha5BsHx;IIZ9zdDovVgM(akViNhucb*Ru}x$ zzW`1oZ?Snns&ZEf8!aTg9B)@z7IGZyVXuE?`REceV-3VSpYdbQRd*`zRcwl~KN1F! zIgg8rbCiZ~FXJw^-E8-{>6{M1$cNb&ovivhjEg0)ff|E16lbbr15DcNGjOv)?Oj0` z2Tduz4Vh97WCcV_uB0k0A9h144>-5PyHRgb&LAXE5?X-jN``n*FfLaRts+?#OGIbAzJNUd(NF2Q4adnp_lED%&rQdg znI{qz$7-QYrsvfC)_?rxS%}hpobua$cK8^&w6N5i^8@&0zObvZHpMUajU?%Q1gORd z+a_ibJq;X!E(yyg+;5@1kH|#PR_DOeIUJo~8hG%JuM|V}p1KU`fNx+ZrH$DrQE83MDX?1|K+($X6eMouBeq?A!>od)4gY!4JDG%sNm|3mkqE zb>V!%@^+ZmPEDj->k?@nA{{k39DMx)(SWmX>F*tO1~FU>e+F`L|I~<7qdfEb1wH%v zumBgc3CJji(TVgO-#n~`1H^U%Y$Kp(dPOj9A(ywh{^}xJz3uL-M>Z3)w;-x~y}o2^ zcVCN}oS`2-;sz3@%&k!h% zMxzYIZ+vs4iqOBvVR}_^us*uvuuKB*KDlVt&K|GsZ-H(9;zNE2aDkYa0l6@muGwn@ z@j_LlfgY0x!c$S?^>yu#A^APahx1Z4ee4by+vyG&s-t_;zuV4kFRu&L?fVsJueAUH zM9;e`-B5RUc{1SW!&Z@<>o$}5ITUVD-S1yUm3Y3%af1X44ZeB+9j+uzFY3pHVf#mL z4bu;EM$gn;H6^Q%<`5Mm?OO2Ws%24*H7?{_P8Fz^q# z=E?xp40?CZM+UF}JXBjsaAWOG`QPt*%>Ek4l5;g&6B#Cz*i=cCsm()`E;b^b`vu~K zeSEEo9MTX)$3uki_>5YWuA_rG?By0~%5ulO7;Zk1L;~F6@t8eC8t1}N7!;X4ejdMR z{-h&vhaO0d-#;8x;QjO^1N+FMr4bCb$7LP?{)GoiRR^+EHNIcd78R!KIjv7nFt_E# zlyTspP{=(_xCi6Xo}d)Id$aozq)hl@1lxLI$;1+SxFZcXp~rmU539%{2F`DG25uBX z63IS3cn#p2O-kPX%ajr(c#>kEDwAh>0Pd#!eF>RXZ-}YyS1WXFBkF-| z_jKcw$LAm-YFg-0M|EgUbeYh+C&|t^f`Jn8pUi!JU?5s6`SlyPHcaee3JEPiah8a8 zmieqi&;SQolLpz%n|vq@r7nHUQ{@aKsyhXiWt87fFDa4=>gI}Q&Dd25q!+VOwKo6_ z-78ZRKh<4)k;uMeR==ibY=k zau)68Ld7=aP#4vYQQ3^4*Ra52?tkDzx*;b#ZkwWKWKd<&_Ss&lX-NV;Qc1^=KC(Ea@sh*D5C;c+6>JO->#_k6ll^vU$5Z0(OUZ=T>%jEFu@M zZbVca1uDl&cOuC;oP}&$7f&^bM^J~vZGAp#`<<>k%JAtIGsiC&`G>yX4{1-_W0O`N zF8&;1hF;%NW^=oGps+8e_eSC`RB89lmO{z322l4W{x{X&+PPQ7UEV z_DSxQ4>4cuh`r<%%NxFVrb-__JR-R?3}YMOX5J%FiHZVYDGo8e-7SA!%M2qNar}cR z5)UXsJAXhb6nLb|l@p#*nxBAf{mQSeOs^A`76rt?-0Kw{pCyWGS zrOW54csn6RCsJ|c&^O&_rIz@Q!ITw2tA+0NY{L-3YzKwKmC5Ka73QlLE}0)NsxsR7 zFd2k36cBD=*jb^F&$wJFm3-jsbs?Dv`9F_-iK|mn5i~{H-FwoDEmmdxle9LVGcQ_Y zEscU>eJfovk}w4xI_%pwlN`=TI~J9e%j8sw?sxqY54mf)raUu~BNx#PS=v#IKfe$0 z5mk}H5Qa7(_r5SWi7dqtM7J@XTM{AK$<1hQed#h?|md;3PVX zC#Ze4d>8SwS(rj#K)Yg455y&K^YBXPFvr8T$?44v}WhXuxv<@)(mk#17p*o3G_+YbGO;K&hbOY_Eg!^r-iqJI9B3#toz+<#sJ zW1M_2F7aDXZzWY(ia2?J;S)39Kzm!<`Zf#8{;rv7!ZPRx>9+6CVQ+h{+Q%wKY(61@ z!_1jgCn~w+x1nzlVaIjfGeoNKq^2RxV;WBb_#%ltFo< z6*hPYf-jzxLvWRz1-}L8R;bJbGk&Sx#^ZTQsw$0NY6nbZ>mz_L{DRBh|N8G(>?B*(p;`?M z9iQz#7tEp40siU!yfizhee;qjCHzw~au?!J1ElJomp}Xy-~aNX@b>@v$Nych|D#Q^ z$fvg6%j{lS+Xc?`M+03>{`IHdk2f^l+^zVv+u6`Pj;~$r5+k|A);~1;Rm6Y&>EJcY zQ;zk=J;Z;nFA`%=_^w@FXJ^X)A28zo*Hv8=I1#3OjlDHvFY>yM>KW@6>Ns8cA0joN AoB#j- literal 0 HcmV?d00001 diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/build/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0ca559d3b71a032fcf696a636bc4f54db326fa GIT binary patch literal 9548 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 literal 0 HcmV?d00001 diff --git a/lib/.gitignore b/lib/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/lib/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/makefile b/makefile new file mode 100644 index 0000000..dfe2cf5 --- /dev/null +++ b/makefile @@ -0,0 +1,38 @@ +# DEPRECATED +# USE CMAKELISTS.TXT INSTEAD + +#g++ main.cpp ./glad/src/glad.c -I./glad/include -o prog.exe -lmingw32 -lSDL2main -lSDL2 + +#SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp) +#OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(BIN_DIR)/%.o,$(SRC_FILES)) $(BIN_DIR)/glad.o + +#Compilier +CC = g++ +# Directories +SRC_DIR = ./src ./glad/src +OBJ_DIR = ./obj +BIN_DIR = ./bin + +# Output +BIN_OUTPUT = ./bin/Super-Sweeper-v77.exe +# Sources +SRC_FILES = ./src/main.c ./glad/src/glad.c + +# Flags +CFLAGS = -I./glad/include +LDFLAGS = -lmingw32 -lSDL2main -lSDL2 -mwindows -static-libgcc -static-libstdc++ +OBJ = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES)) + +$(BIN_OUTPUT): $(OBJ) + $(CC) $(OBJ) $(CFLAGS) -o $@ $(LDFLAGS) -O3 + +($OBJ_DIR)/%.o: %.cpp + $(CC) $(CFLAGS) -c $< -o $@ + +($OBJ_DIR)/%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +clean: + rm -f $(BIN_DIR)/* + +.PHONY: $(BIN_OUTPUT) clean \ No newline at end of file diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..25e5579671acb87fd9d8375a4a6a5efa1074bec4 GIT binary patch literal 6711 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 nz?=<$#HoKpf1 + +#include + +#include + +#include + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; + +#define menuDataSize (3+2+1+1) +#define boxDataSize (1+1+1+2+3+3+1+2) + +char fileName[] = "input.csv"; +FILE * Iptr; +FILE * Optr; +//char* input; +char input[65536]; // Should be large enough +u32 len = 0; +u32 lines = 0; +u32 textPos = 0; + +struct String { + char str[40]; // Better hope it works +}; + +struct Menu { + struct String func; + u16 boxes; + u8 rows; + u8 backI; + struct String backS; +}; +struct Menu menu[256]; +struct String header[256]; + +// Boxes +struct Box { + struct String func; + u16 text; + u8 directI; + struct String directS; + u8 color; + struct String pointer; + u8 min; + u16 max; + u8 type; +}; +struct Box box[4096]; +struct String text[4096]; + +u32 menuIndex = 0; +u32 boxIndex = 0; +u32 i = 0; +u32 j = 0; //Previous + +uint32_t sourceTextLength = 0; +uint8_t sourceText[16384]; +char lex0[] = {'0','1','2','3','4','5','6','7','8','9','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','?','<','>','|','|',' ',';','.',',','/','(',')',':','-','%','|','|','|','|','#','=','!','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; +char lex1[] = {'|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'M', 'F', '|', '|', '|', 'K', 'I', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'X', 'G', 'L', 'E', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|'}; +char lex2[] = {'|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'm', 'f', '|', '|', '|', 'k', 'i', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'x', 'g', 'l', 'e', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|'}; + +void convertAscii() { + u32 x = 0; + for (u32 t = 0; t < boxIndex; t++) { + u8 y = 0; + while (text[t].str[y] != '\0') { + if (text[t].str[y] == '\\' && text[t].str[y + 1] != '\0') { + u32 c = 0; + y++; + while (lex1[c] != text[t].str[y] && lex2[c] != text[t].str[y]) { //Finds the char in the look up tables + c++; + } + sourceText[x] = c; + x++; + } else { + u32 c = 0; + while (lex0[c] != text[t].str[y]) { //Finds the char in the look up tables + c++; + } + sourceText[x] = c; + x++; + } + y++; + } + sourceText[x] = 33; // ; + x++; + } + sourceTextLength = x; +} + +void printType(u8 type) { + if (type & 0x01) { printf("C"); } else { printf("-"); } + if (type & 0x02) { printf("F"); } else { printf("-"); } + if (type & 0x04) { printf("N"); } else { printf("-"); } + if (type & 0x08) { printf("P"); } else { printf("-"); } + if (type & 0x10) { printf("V"); } else { printf("-"); } + if (type & 0x20) { printf("D"); } else { printf("-"); } + if (type & 0x40) { printf("B"); } else { printf("-"); } + if (type & 0x80) { printf("T"); } else { printf("-"); } +} + +void printAllMenu() { + printf("\n\n"); + u32 b = 0; + for (u32 a = 0; a < menuIndex; a++) { + printf("\nHeader %d: %s : rows: %d : function: %s", a, header[a].str, menu[a].rows, menu[a].func.str); + printf("\n Type : Function : Direct : Color : Pointer : Min : Max : Text"); + for (; b < menu[a].boxes; b++) { + printf("\n "); + printType(box[b].type); + printf(" | %-10.10s | %-10.10s | 0x%02X | %-10.10s | %3d | %5d | %-20s", + box[b].func.str, box[b].directS.str, box[b].color,box[b].pointer.str, box[b].min, box[b].max, text[b].str); //73 or 93 characters + + } + printf("\n"); + } +} +void printAllText() { + printf("\n\n"); + u32 b = 0; + for (u32 a = 0; a < menuIndex; a++) { + printf("\nHeader %d: %s",a,header[a].str); + for (; b < menu[a].boxes; b++) { + printf("\n %s",text[b].str); + } + printf("\n"); + } +} + +void printHeader() { + printf("\n\n"); + for (u32 a = 0; a < menuIndex; a++) { + printf("\nHeader %2d: %s | rows: %d | function: %s", a, header[a].str, menu[a].rows, menu[a].func.str); + } +} + +char _TRUE[] = "TRUE"; +char _FALSE[] = "FALSE"; + +u8 compareString(char a[], char b[]) { + u8 k = 0; + while (k != 255) { + if (a[k] == '\0' && b[k] == '\0') { //Same Length + return 1; + } + if (a[k] == '\0' || b[k] == '\0') { //Different Length + return 0; + } + if (a[k] != b[k]) { + return 0; + } + k++; + } +} + +u32 getNumber() { + j = i; + u32 sum = 0; + u8 base = 10; + do { + i++; + if (input[i] != ',' && input[i] != '\n' && input[i] != '\0') { // Ends on comma + sum *= base; + if (input[i] >= '0' && input[i] <= '9') { // 0-9 + sum += input[i] - '0'; + } + if (input[i] >= 'A' && input[i] <= 'F') { // A-F hex + sum += input[i] - 'A' + 10; + } + if (input[i] >= 'a' && input[i] <= 'f') { // a-f hex + sum += input[i] - 'a' + 10; + } + if (input[i] == 'x') { // Change to base 16 + sum = 0; + base = 16; + } + } else { + break; + } + } while (i < len); + return sum; +} + +uint8_t backSlashes = 0; +void getText(struct String* arg) { + backSlashes = 0; + j = i; + u8 t = 0; + do { + i++; + if (input[i] != ',' && input[i] != '\n' && input[i] != '\0') { + if (input[i] == '\\') { + backSlashes++; + } + arg->str[t] = input[i]; + t++; + } else { + break; + } + } while (i < len && t < 39); + if (t == 0) { + arg->str[t] = '0'; + t++; + } + arg->str[t] = '\0'; +} + +void headerCase() { + u8 x = 0; + + for (; i < len; i++) { + + if (x == 0) { // Header text + getText(&header[menuIndex]); + x++; + } + + if (x == 1) { // Function + getText(&menu[menuIndex].func); + x++; + } + + if (x == 2) { // Back + getText(&menu[menuIndex].backS); + x++; + } + if (x == 3 || input[i] == '\n') { + i++; + break; + } + } + // for (; i < len; i++) { + // if (input[i] == '@') { + // i--; + // return; + // } + // } +} + +void boxCase() { + u8 x = 0; + + for (; i < len; i++) { + + if (x == 0) { // Box text + getText(&text[boxIndex]); + textPos += i - j - backSlashes; //+ 1; // + 1 for newline character + x++; + } + + if (x == 1) { // Function + getText(&box[boxIndex].func); + x++; + } + + if (x == 2) { // Direct + getText(&box[boxIndex].directS); + x++; + } + if (x == 3) { // Color + box[boxIndex].color = getNumber(); + x++; + } + if (x == 4) { // Pointer + getText(&box[boxIndex].pointer); + x++; + } + if (x == 5) { // Minimum + box[boxIndex].min = getNumber(); + x++; + } + if (x == 6) { // Maximum + box[boxIndex].max = getNumber(); + x++; + } + if (x == 7) { // Type + u8 t = 0; + struct String compare; + for (u8 r = 0; r < 8; r++) { + getText(&compare); + if (compareString(compare.str,_TRUE) == 1) { + t += 1 << r; + } + } + i = j; + + box[boxIndex].type = t; + x++; + } + if (x == 8 || input[i] == '\n') { + i++; + break; + } + } +} + +void convert() { + menuIndex = 0; + for (i = 0; i < len; i++) { //Skips to the start of the data + if (input[i] == '@') { + i--; + break; + } + } + u32 x = 0; + u32 y = 0; + + u32 row = 0; + for (; i < len; i++) { + if (input[i] == '\n') { + if (input[i + 1] == '@') { + menu[menuIndex].boxes = row; + headerCase(); + menuIndex++; + } else { + box[boxIndex].text = textPos; + boxCase(); + row++; + boxIndex++; + } + } + if (input[i] == '\0') { + printf("\nEOF"); + } + } + for (u8 k = 0; k < menuIndex - 1; k++) { + menu[k].rows = menu[k + 1].boxes - menu[k].boxes; + } + menu[menuIndex - 1].rows = 1; +} + +void copyText() { + lines = 1; + char w; + char * ptr = input; + printf("\n\n"); + for (u32 i = 0; i < len; i++) { + fscanf(Iptr, "%c", & w); + if (w == '\n') { + lines++; + } + * ptr = w; + //printf("%c",*ptr); + ptr++; + } + printf("\n"); +} + +void setReferances() { + for (u8 h = 0; h < menuIndex; h++) { + for (u8 m = 0; m < menuIndex; m++) { + if (compareString(header[h].str, menu[m].backS.str) == 1) { + menu[m].backI = h; + } + } + for (u8 b = 0; b < boxIndex; b++) { + if (compareString(header[h].str, box[b].directS.str) == 1) { + box[b].directI = h; + } + } + } +} + +void writeText() { + + printf("\n\nFile Output:\n"); + + if((Optr = fopen("output.txt", "w")) == NULL){ + printf("\nError"); + } + + //fprintf(Optr,"\nvoid (*menuFunction[%d])() = {%s", menuIndex, menu[0].func.str); + + //Menu Arrays + + //Initial Function + printf("\nvoid (*menuFunction[%d])() = {%s", menuIndex, menu[0].func.str); + for (u32 a = 1; a < menuIndex; a++) { + printf(",%s", menu[a].func.str); + } + printf("};");; + + //Back Direct + printf("\nuint8_t menuBack[%d] = {%d", menuIndex, menu[0].backI); + for (u32 a = 1; a < menuIndex; a++) { + printf(",%d", menu[a].backI); + } + printf("};"); + + //Box Position + printf("\nuint16_t boxIndex[%d] = {%d", (menuIndex + 1), menu[0].boxes); + for (u32 a = 1; a < menuIndex; a++) { + printf(",%d", menu[a].boxes); + } + printf(",%d", boxIndex); + printf("};"); + + //Menu Rows + printf("\nuint8_t menuRows[%d] = {%d", menuIndex, menu[0].rows); + for (u32 a = 1; a < menuIndex; a++) { + printf(",%d", menu[a].rows); + } + printf("};"); + + //Box Arrays + printf("\n"); + + //Type + printf("\nuint8_t boxType[%d] = {%d", boxIndex, box[0].type); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%d", box[a].type); + } + printf("};"); + + //Color + printf("\nuint8_t boxColor[%d] = {%d", boxIndex, box[0].color); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%d", box[a].color); + } + printf("};"); + + //Direct + printf("\nuint8_t boxDirect[%d] = {%d", boxIndex, box[0].directI); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%d", box[a].directI); + } + printf("};"); + + //Text Position + printf("\nuint16_t textIndex[%d] = {%d", (boxIndex + 1), box[0].text); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%d", box[a].text); + } + printf(",%d", sourceTextLength); + printf("};"); + + //Function + printf("\nvoid (*boxFunction[%d])() = {%s", boxIndex, box[0].func.str); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%s", box[a].func.str); + } + printf("};"); + + //Pointer + printf("\nvoid* boxPointer[%d] = {%s", boxIndex, box[0].pointer.str); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%s", box[a].pointer.str); + } + printf("};"); + + //Minimum + printf("\nuint8_t boxMin[%d] = {%d", boxIndex, box[0].min); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%d", box[a].min); + } + printf("};"); + + //Maximum + printf("\nuint16_t boxMax[%d] = {%d", boxIndex, box[0].max); + for (u32 a = 1; a < boxIndex; a++) { + printf(",%d", box[a].max); + } + printf("};"); + + //Source Text + printf("\n"); + printf("\nuint8_t sourceText[%d] = {%d", sourceTextLength, sourceText[0]); + for (u32 a = 1; a < sourceTextLength; a++) { + printf(",%d", sourceText[a]); + } + printf("};"); + + //SPRINTF!!! + + //Menu Arrays + + //Initial Function + fprintf(Optr,"\nvoid (*menuFunction[%d])() = {%s", menuIndex, menu[0].func.str); + for (u32 a = 1; a < menuIndex; a++) { + fprintf(Optr,",%s", menu[a].func.str); + } + fprintf(Optr,"};");; + + //Back Direct + fprintf(Optr,"\nuint8_t menuBack[%d] = {%d", menuIndex, menu[0].backI); + for (u32 a = 1; a < menuIndex; a++) { + fprintf(Optr,",%d", menu[a].backI); + } + fprintf(Optr,"};"); + + //Box Position + fprintf(Optr,"\nuint16_t boxIndex[%d] = {%d", (menuIndex + 1), menu[0].boxes); + for (u32 a = 1; a < menuIndex; a++) { + fprintf(Optr,",%d", menu[a].boxes); + } + fprintf(Optr,",%d", boxIndex); + fprintf(Optr,"};"); + + //Menu Rows + fprintf(Optr,"\nuint8_t menuRows[%d] = {%d", menuIndex, menu[0].rows); + for (u32 a = 1; a < menuIndex; a++) { + fprintf(Optr,",%d", menu[a].rows); + } + fprintf(Optr,"};"); + + //Box Arrays + fprintf(Optr,"\n"); + + //Type + fprintf(Optr,"\nuint8_t boxType[%d] = {%d", boxIndex, box[0].type); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%d", box[a].type); + } + fprintf(Optr,"};"); + + //Color + fprintf(Optr,"\nuint8_t boxColor[%d] = {%d", boxIndex, box[0].color); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%d", box[a].color); + } + fprintf(Optr,"};"); + + //Direct + fprintf(Optr,"\nuint8_t boxDirect[%d] = {%d", boxIndex, box[0].directI); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%d", box[a].directI); + } + fprintf(Optr,"};"); + + //Text Position + fprintf(Optr,"\nuint16_t textIndex[%d] = {%d", (boxIndex + 1), box[0].text); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%d", box[a].text); + } + fprintf(Optr,",%d", sourceTextLength); + fprintf(Optr,"};"); + + //Function + fprintf(Optr,"\nvoid (*boxFunction[%d])() = {%s", boxIndex, box[0].func.str); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%s", box[a].func.str); + } + fprintf(Optr,"};"); + + //Pointer + fprintf(Optr,"\nvoid* boxPointer[%d] = {%s", boxIndex, box[0].pointer.str); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%s", box[a].pointer.str); + } + fprintf(Optr,"};"); + + //Minimum + fprintf(Optr,"\nuint8_t boxMin[%d] = {%d", boxIndex, box[0].min); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%d", box[a].min); + } + fprintf(Optr,"};"); + + //Maximum + fprintf(Optr,"\nuint16_t boxMax[%d] = {%d", boxIndex, box[0].max); + for (u32 a = 1; a < boxIndex; a++) { + fprintf(Optr,",%d", box[a].max); + } + fprintf(Optr,"};"); + + //Source Text + fprintf(Optr,"\n"); + fprintf(Optr,"\nuint8_t sourceText[%d] = {%d", sourceTextLength, sourceText[0]); + for (u32 a = 1; a < sourceTextLength; a++) { + fprintf(Optr,",%d", sourceText[a]); + } + fprintf(Optr,"};"); + + fclose(Optr); + + printf("\n\nFinished: %d bytes\n",(menuIndex * menuDataSize + boxIndex * boxDataSize)); +} + +int main(void) { + printf("Enter CSV\n\n"); + + Iptr = fopen(fileName, "rb"); + if (Iptr == NULL) { + printf("\nError: File does not exist."); + exit(1); + } + + fseek(Iptr, 0, SEEK_END); + len = ftell(Iptr); + fseek(Iptr, 0, SEEK_SET); + + //printf("\nLength: %ld",len); + if (len <= 2) { + printf("\nError: File is too short"); + exit(1); + } + if (len > 16777216) { + printf("\nError: File is too long"); + exit(1); + } + + copyText(); + //printf("\n\nInput Length: %d", len); + convert(); + setReferances(); + convertAscii(); + //printHeader(); + printAllMenu(); + //printAllText(); + writeText(); + return 0; +} \ No newline at end of file diff --git a/src/Text Conversion Tool/Engine.java b/src/Text Conversion Tool/Engine.java new file mode 100644 index 0000000..865cfad --- /dev/null +++ b/src/Text Conversion Tool/Engine.java @@ -0,0 +1,253 @@ +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.util.Scanner; + +import javax.imageio.ImageIO; + +public class Engine { + static int resX = 112; + static int resY = 72; + static int[] value = new int[resX * resY]; + static boolean type = true; + + //Old Text + //static char[] table = {' ',';','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','.',',',':','-','?','!','%','/','(',')','>','<','m','f','x','k','g','l','r'}; + //static char[] table = {' ','0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','`','~','!','@','#','$','%','^','&','*','(',')','-','_','=','+','[','{',']','}','\\','|',';',':','\'','"',',','<','.','>','?','/'}; + + //ISO Text 0 + //static char[] table = {'0','1','2','3','4','5','6','7','8','9','|','|','|','|','|','|','|','m','f','?','>','<',':','-','%','x','k','s','l','r','!','|',' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','.',',','/','(',')'}; + //ISO Text 2 + /* + static char[] table = {'0','1','2','3','4','5','6','7','8','9','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','?','<','>','|','|', + ' ','|','.',',','/','(',')',':','-','%','|','|','|','|','#','=', + 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', + 'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f', + 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', + 'w','x','y','z','','','','','','','','','','!','','', + '|','|','|','|','|','|','|','|','\'','`','^','|','~','"','*','_', + + '','','','','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','','','|','|', + '|','|','|','|','','[',']','','|','|','','|','|','|','|','|', + '|','|','|','','','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','','|', + '|','|','','|','|','|','|','','|','|','|','','|','','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','','','|'}; + + static char[] extra = {'','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','M','F','','|','|','K','I', + 'W','D','|','|','|','|','|','|','|','','x','G','L','E','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','N','n','C','c','A','a','B','y','o','','?','!', + '|','|','|','|','|','|','|','|','`','\'','^','|','|','|','|','-', + + '0','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','','','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|', + '|','|','|','|','|','|','|','|','|','|','b','Y','','|','|','|', + + 'O'}; + */ + static char[] lex0 = {'0','1','2','3','4','5','6','7','8','9','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','?','<','>','|','|',' ',';','.',',','/','(',')',':','-','%','|','|','|','|','#','=','!','|','|','|','|','|','|','|','|','|','|','|','|','|','|','|','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; + static char[] lex1 = {'|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'M', 'F', '|', '|', '|', 'K', 'I', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'X', 'G', 'L', 'E', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|'}; + static char[] lex2 = {'|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'm', 'f', '|', '|', '|', 'k', 'i', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', 'x', 'g', 'l', 'e', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|'}; + +// static char[] chars0 = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '|', '?', '<', '>', '|', '|', ' ', '|', '.', ',', '/', '(', ')', ':', '-', '%', '|', '|', '|', '|', '#', '=', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; +// static char[] index0 = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF}; +// static char[] chars1 = {}; +// static char[] index1 = {}; + + static char[] other = {'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''}; + static int[] glyph = {120,121,122,124,125,126,120,121,122,125,120,121,122,125,120,121,122,124,125,120,121,122,125,120,121,122,124,125,126,120,121,122,125,120,121,122,125,120,121,122,124,125,120,121,122,125,123,123, 62, 88}; + static int[] letter = {112,112,112,112,112,112,113,113,113,113,114,114,114,114,115,115,115,115,115,116,116,116,116,117,117,117,117,117,117,118,118,118,118,119,119,119,119,115,115,115,115,115,116,116,116,116, 99, 99, 52, 78}; + + static int[] text = new int[65536]; + static int[] block = new int[65536]; + + public static void main(String[] args) { + + if (type) { + Scanner keyboard = new Scanner(System.in); + String input; + do { + int track = 0; + int index = 0; + System.out.println("Type Text:"); + input = keyboard.nextLine(); + int i = 0; + while (i < input.length() && i < 65536) { + char output = input.charAt(i); + int f = 0; + /*if (output == ';') { //New Line + text[index] = 33; + index++; + f = 1; + }*/ + if (output == '@') { //New Section + block[track] = index; + track++; + f = 1; + } + if (output == '\\') { + output = input.charAt(i + 1); + for (int j = 0; j < lex1.length; j++) { + if (lex1[j] == output) { + text[index] = j & 127; + index++; + f = 1; + } + } + if (f == 0) { + for (int j = 0; j < lex2.length; j++) { + if (lex2[j] == output) { + text[index] = j & 127; + index++; + f = 1; + } + } + } + i++; + } else { + for (int j = 0; j < lex0.length; j++) { + if (lex0[j] == output) { + text[index] = j & 127; + index++; + f = 1; + } + } + } + if (f == 0 && f == 1) { //Diacritics + for (int j = 0; j < other.length; j++) { + if (other[j] == output) { + text[index] = glyph[j]; + index++; + text[index] = letter[j]; + index++; + f = 1; + } + } + } + if (f == 0) { + text[index] = 32; + index++; + f = 1; + } + i++; + } + System.out.print("\n{" + text[0]); //Was * 2 + if (index > 1) { + for (int a = 1; a < index; a++) { + System.out.print("," + text[a]); //Was * 2 + } + } + System.out.println("};\n"); + System.out.println("Length: " + index); +// System.out.print("{" + block[0]); +// if (track > 1) { +// for (int a = 1; a < track; a++) { +// System.out.print("," + block[a]); +// } +// } +// System.out.println("};\n"); + } while (input.length() > 0 && false); + keyboard.close(); + + + + + + } else { + + loadImage(); + for (int i = 0; i < resX * resY; i++) { + if (value[i] == 16777215) { + value[i] = 1; + } + } + System.out.print("{"); + /* + for (int v = 0; v < resY; v += 9) { + for (int u = 0; u < resX; u += 7) { + int i = 0; + int j = 0; + for (int y = v; y < v + 4; y++) { + for (int x = u; x < u + 6; x++) { + //System.out.print(value[y * resX + x]); + j += value[y * resX + x] * (int)Math.pow(2, i); + i++; + } + } + if (v == 0 && u == 0) { + System.out.print(j); + } else { + System.out.print("," + j); + } + i = 0; + j = 0; + for (int y = v + 4; y < v + 8; y++) { + for (int x = u; x < u + 6; x++) { + //System.out.print(value[y * resX + x]); + j += value[y * resX + x] * (int)Math.pow(2, i); + i++; + } + } + System.out.print("," + j); + //System.out.print("\n"); + } + } + System.out.print("};"); + */ + + for (int v = 0; v < resY; v += 9) { + for (int u = 0; u < resX; u += 7) { + + for (int x = u; x < u + 6; x++) { + int i = 0; + int j = 0; + for (int y = v; y < v + 8; y++) { + //System.out.print(value[y * resX + x]); + j += value[y * resX + x] * (int)Math.pow(2, i); + i++; + } + if (x == 0 && v == 0) { //If first element + System.out.print(j); + } else { //General Case + System.out.print("," + j); + } + } + + } + } + System.out.print("};"); + + } + + } + + private static void loadImage() { + try { + //File file = new File("C:\\Users\\zerico\\Downloads\\Text Font 6x8 Version 0.png"); + File file = new File("C:\\Users\\zerico\\Documents\\Programming\\superSweeper\\assets\\char 6x8 v4.png"); + BufferedImage bufferedImage = ImageIO.read(file); + + for (int y = 0; y < resY; y++) { + for (int x = 0; x < resX; x++) { + value[y * resX + x] = Math.abs(bufferedImage.getRGB(x, y)) - 1; // the sample in the specified band for the pixel at the specified coordinate. + //System.out.println(Math.abs(bufferedImage.getRGB(x, y)) - 1); + } + } + + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/Text Conversion Tool/README.txt b/src/Text Conversion Tool/README.txt new file mode 100644 index 0000000..97d013e --- /dev/null +++ b/src/Text Conversion Tool/README.txt @@ -0,0 +1 @@ +Engine.java was run in Eclispe Studio. Last Modified 2023/06/30 21:56 \ No newline at end of file diff --git a/src/Video Convert/Engine.java b/src/Video Convert/Engine.java new file mode 100644 index 0000000..1f21f60 --- /dev/null +++ b/src/Video Convert/Engine.java @@ -0,0 +1,445 @@ +import java.awt.*; +import java.awt.event.*; +import java.awt.image.*; +import java.io.*; +import javax.imageio.*; +import javax.swing.*; +import java.lang.Object.*; +import java.io.OutputStream.*; + +public class Engine { + + static int pSize = 16; //Palette Size + + static int resX = 168; + static int resY = 126; + static int frames = 84; + static int[] video = new int[resX * resY * frames]; + static int[] color = new int[pSize * frames]; + static int iX = 168; + static int iY = 126; + static int[] image = new int[iX * iY * 3]; + + static int[] colorR = new int[pSize * frames]; + static int[] colorG = new int[pSize * frames]; + static int[] colorB = new int[pSize * frames]; + + static int frame = 0; + + static int[] count = new int[32769]; //32768 is null + static int[] rank = new int[pSize]; + static int[] order = new int[pSize]; + + static int limit = 3; //1: 15bit, 2: 12bit, 4: 9bit, 8: 6bit + static int[] bin = new int[pSize]; + + static String[] huffCode = {"00","010","011","10000","10001","1001","101","110000","1100010","1100011","110010","110011","11010","110110","110111","111"}; + + public static void makeColor() { + + int[] temp = new int[pSize]; + for (int i = 0; i < 32768; i++) { + count[i] = 0; + } + for (int i = 0; i < iX * iY; i++) { //Counts each color present, limit reduces the bit depth to improve results + int r = (image[3 * i] / 8) / limit * limit; //Converts to 15bit then reduces bit depth + int g = (image[3 * i + 1] / 8) / limit * limit; + int b = (image[3 * i + 2] / 8) / limit * limit; + int c = (r * 1024) + (g * 32) + b; + count[c]++; + } + + for (int j = 0; j < pSize; j++) { + temp[j] = 32768; //32768 doesn't exist + } + + temp[0] = 0; //Hard-coded black + count[0] = 65535; //pSize - 1 + + + + for (int i = 1; i < 32768; i++) { //Loops through all colors except black + if ((i == 28672 || i == 29568) && (frame >= 23 && frame <= 61)) { + i++; + } + if (count[i] != 0) { //Check that the color still exists + //int low = 65536; + for (int j = 0; j < pSize; j++) { //Runs through the leaderboard of colors + if (count[i] > count[temp[j]] && colorDistance(i,j)) { + temp[j] = i; + break; + } + } + } + } + +// if (frame >= 0 && frame <= 77) { +// temp[15] = 0; +// } + //temp[15] = 0; + if (frame >= 25 && frame <= 61) { + temp[15] = 28672; //Red + temp[14] = 29568; //Yellow + } +// if (frame >= 0 && frame <= 62) { +// temp[15] = 0; +// } +// if (frame >= 23 && frame <= 61) { +// temp[14] = 28672; //Red +// temp[13] = 29568; //Yellow +// } + + for (int i = 0; i < pSize; i++) { + int c = temp[i]; + color[i + (frame * pSize)] = c; + colorR[i + (frame * pSize)] = (c / 1024) * 8; + colorG[i + (frame * pSize)] = ((c / 32) % 32) * 8; + colorB[i + (frame * pSize)] = (c % 32) * 8; + //System.out.println(c); + } + } + + public static boolean colorDistance(int c, int d) { + float r0 = (float)((c / 1024) * 8); + float g0 = (float)(((c / 32) % 32) * 8); + float b0 = (float)((c % 32) * 8); + + float r1 = (float)((d / 1024) * 8); + float g1 = (float)(((d / 32) % 32) * 8); + float b1 = (float)((d % 32) * 8); + float distance = (float) Math.sqrt( (r1-r0)*(r1-r0) + (g1-g0)*(g1-g0) + (b1-b0)*(b1-b0) ); + if (distance < 36) { //36 + return false; + } else { + return true; + } + } + + public static void main(String[] args) { + egaColor(); + + for (frame = 0; frame < frames; frame++) { + loadImage(frame + 0); + makeColor(); + float xR = (float)iX / (float)resX; + float yR = (float)iY / (float)resY; + int oV = frame * resX * resY; + for (int y = 0; y < resY; y++) { + for (int x = 0; x < resX; x++) { + int u = (int)((float)x * xR); + int v = (int)((float)y * yR); + video[(y * resX) + x + oV] = findColor(3 * (v * iX + u)); + } + } + System.out.println("Frame: " + frame); + imageIoWrite(); + } + //huffMan(); + export(); + } + + public static void export() { + + try { + + int blocks = ((resX * resY / 2) * frames) / 65536; + if (blocks % 65536 != 0) {blocks++;} //Ceiling Function + int i = 0; + + for (int f = 0; f < blocks; f++) { + OutputStream out = new FileOutputStream("video-" + String.format("%02d", f) + ".bin"); + for (int j = 0; j < resX * resY * 6 / 2; j++) { + out.write(((video[i + 1] << 4) + video[i])); +// if (video[i + 1] > 8 && video[i] > 8) { +// System.out.println(); +// System.out.println((video[i + 1] << 4) + video[i]); +// System.out.println(video[i + 1] << 4); +// System.out.println(video[i]); +// } + i += 2; + } + out.close(); + } + + System.out.println(); + for (int f = 0; f < blocks; f++) { + System.out.println("convbin --archive --input \"C:\\Users\\zerico\\Eclispe Java\\Video Convert\\video-" + String.format("%02d", f) + ".bin\" --output \"C:\\Users\\zerico\\Documents\\FOO\\video-" + String.format("%02d", f) + ".8xv\" --iformat bin --oformat 8xv --name VOD" + String.format("%02d", f)); + } +// int blocks = ((resX * resY / 2) * frames) / 65536; +// if (blocks % 65536 != 0) {blocks++;} +// for (int f = 0; f < blocks; f++) { +// Writer out = new FileWriter("video-" + f + ".txt"); +// out.write("unsigned char data[" + (resX * resY * frames / 2 / blocks) + "] = {" + ((video[1] << 4) + video[0])); +// for (int i = 2 + f * (resX * resY * frames / blocks); i < (f + 1) *(resX * resY * frames / blocks); i += 2) { +// out.write("," + ((video[i + 1] << 4) + video[i])); +// } +// out.write("};"); +// out.close(); +// } + +// out.write("unsigned char data[" + (resX * resY * frames / 2) + "] = {" + ((video[1] << 4) + video[0])); +// for (int i = 2; i < resX * resY * frames; i += 2) { +// out.write("," + ((video[i + 1] << 4) + video[i])); +// } +// out.write("unsigned int data[" + (resX * resY * frames / 6) + "] = {" + ((video[5] << 20) + (video[4] << 16) + (video[3] << 12) + (video[2] << 8) + (video[1] << 4) + video[0])); +// for (int i = 6; i < resX * resY * frames; i += 6) { +// out.write("," + ((video[i + 5] << 20) + (video[i + 4] << 16) + (video[i + 3] << 12) + (video[i + 2] << 8) + (video[i + 1] << 4) + video[i])); +// } +// out.write("};"); + + System.out.println("\nFinished Video"); + + } catch (Exception e) { + e.getStackTrace(); + + } + for (int f = 0; f < 15; f++) { //debug start + System.out.println("convbin --archive --input \"C:\\Users\\zerico\\Eclispe Java\\Video Convert\\video-" + String.format("%02d", f) + ".bin\" --output \"C:\\Users\\zerico\\Documents\\FOO\\video-" + String.format("%02d", f) + ".8xv\" --iformat bin --oformat 8xv --name VOD" + String.format("%02d", f)); + } //debug end + try { + Writer out = new FileWriter("color.txt"); + + //out.write("unsigned short palette[" + (pSize * frames) + "] = {/*0*/" + color[0]); + out.write("unsigned short palette[" + ((pSize - 1) * frames) + "] = {/*0*/"); //If skipping black + for (int i = 1; i < pSize * frames; i++) { +// if (i % 16 == 0) { +// out.write("/*" + (i/16) + "*/"); +// } +// out.write("," + color[i]); + if (i % 16 == 0) { //If skipping black + out.write("/*" + (i/16) + "*/"); + } else { + out.write("," + color[i]); + } + } + out.write("};"); + + System.out.println("\nFinished Palette"); + + out.close(); + } catch (Exception e) { + e.getStackTrace(); + } + + } + + public static void huffMan() { + System.out.println("\nColor Count:\n"); + for (int i = 0; i < pSize; i++) { + rank[i] = 0; + order[i] = i; + } + for (int i = 0; i < resX * resY * frames; i++) { + rank[video[i]]++; + } + //bubbleSort(); + for (int i = 0; i < pSize; i++) { + System.out.println(rank[i] + " " + order[i]); + } + System.out.println("\nOriginal Bytes: " + (resX * resY * frames / 2)); + + int[] sum = new int[pSize]; + int[] node0 = new int[pSize]; + int[] node1 = new int[pSize]; + + int[][] value = new int[pSize][pSize + 1]; + + for (int i = 0; i < pSize; i++) { + value[i][pSize] = order[i]; + } + for (int i = 0; i < pSize; i++) { + value[i][pSize] = order[i]; + } +// if (rank[i] < low[]) { +// low[] = rank[i]; +// } +// System.out.println(rank[i]); + System.out.print("\nint n = " + pSize); + System.out.print("\nchar[] charArray = {" + order[0]); + for (int i = 1; i < pSize; i++) { + System.out.print("," + order[i]); + } + System.out.print("};"); + System.out.print("\nint[] charfreq = {" + rank[0]); + for (int i = 1; i < pSize; i++) { + System.out.print("," + rank[i]); + } + System.out.print("};\n\n"); + + for (int i = 0; i < huffCode.length; i++) { + //System.out.println(huffCode[i]); + bin[i] = 0; + for (int j = 0; j < huffCode[i].length(); j++) { + bin[i] = bin[i] * 2; + if (huffCode[i].charAt(j) == '1') { + bin[i]++; + } + } + } + + for (int i = 0; i < huffCode.length; i++) { + int bin = 0; + for (int j = 0; j < huffCode[i].length(); j++) { + bin = bin * 2; + if (huffCode[i].charAt(j) == '1') { + bin++; + } + } + System.out.println(bin); + } + } + + public static void bubbleSort() { + int n = pSize; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n - 1; j++) { + if (rank[j] > rank[j + 1]) { + int t = rank[j]; + int p = order[j]; + rank[j] = rank[j + 1]; + order[j] = order[j + 1]; + rank[j + 1] = t; + order[j + 1] = p; + } + } + } + } + + public static void bubSort() { + int n = pSize; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n - 1; j++) { + if (order[j] > order[j + 1]) { + int t = rank[j]; + int p = order[j]; + rank[j] = rank[j + 1]; + order[j] = order[j + 1]; + rank[j + 1] = t; + order[j + 1] = p; + } + } + } + } + + + + public static int compareColor(int c) { + float r0 = (float)((c / 1024) * 8); + float g0 = (float)(((c / 32) % 32) * 8); + float b0 = (float)((c % 32) * 8); + int best = 0; + float score = 65535; + for (int i = 0; i < 32768; i++) { + if (count[i] != 0) { + float r1 = (float)((i / 1024) * 8); + float g1 = (float)(((i / 32) % 32) * 8); + float b1 = (float)((i % 32) * 8); + float distance = (float) Math.sqrt( (r1-r0)*(r1-r0) + (g1-g0)*(g1-g0) + (b1-b0)*(b1-b0) ); + if (distance < score) { + best = i; + score = distance; + } + } + } + return best; + } + + public static int findColor(int index) { + float r0 = (float)image[index]; + float g0 = (float)image[index + 1]; + float b0 = (float)image[index + 2]; + int best = 0; + float score = 65535; + for (int i = 0; i < pSize; i++) { + float r1 = (float)colorR[frame * pSize + i]; + float g1 = (float)colorG[frame * pSize + i]; + float b1 = (float)colorB[frame * pSize + i]; + float distance = (float) Math.sqrt( (r1-r0)*(r1-r0) + (g1-g0)*(g1-g0) + (b1-b0)*(b1-b0) ); + if (distance < score) { + best = i; + score = distance; + } + } + return best; + } + + public static int colorP(int index) { + return 0; + } + + private static void loadImage(int i) { + try { + //File file = new File("E:\\Coding\\Fractal Video 0\\Frame " + (i * 5) + ".png"); + File file = new File("E:\\Youtube\\MineSweeper\\PNG Video 126p\\Frame-" + String.format("%03d", i) + ".png"); + BufferedImage bufferedImage = ImageIO.read(file); + for (int y = 0; y < iY; y++) { + for (int x = 0; x < iX; x++) { + Color c = new Color(bufferedImage.getRGB(x,y)); + image[3 * (y * iX + x)] = c.getRed(); + image[3 * (y * iX + x) + 1] = c.getGreen(); + image[3 * (y * iX + x) + 2] = c.getBlue(); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void imageIoWrite() { + try { + int e = 0; + int g = 0; + int b = 0; + + BufferedImage img; + + int oV = frame * resX * resY; + img = new BufferedImage(resX, resY, BufferedImage.TYPE_INT_RGB); + for (int y = 0; y < resY; y++) { + for (int x = 0; x < resX; x++) { + e = colorR[frame * pSize + video[oV + ((y * resX) + x)]]; + g = colorG[frame * pSize + video[oV + ((y * resX) + x)]]; + b = colorB[frame * pSize + video[oV + ((y * resX) + x)]]; + int color = (e << 16) | (g << 8) | b; + img.setRGB(x, y, color); + } + } + + if (frames > 1) { + ImageIO.write(img, "PNG", new File("E:\\Youtube\\MineSweeper\\Calculator 126p\\Frame-" + frame + ".png")); + } else { + ImageIO.write(img, "PNG", new File("E:\\Youtube\\MineSweeper\\Calculator 126p\\Frame-" + System.nanoTime() + ".png")); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void egaColor() { + int[] ega = { 0, 31744, 32736, 992, 1023, 31, 31775, 32767, 7399, 15360, 15840, 480, 495, 15, 15375, 24311 }; + //int[] ega = { 0x0000, 0x0842, 0x1084, 0x18C6, 0x2108, 0x294A, 0x318C, 0x39CE, 0x4210, 0x4A5, 0x4E93, 0xD6B5, 0xDEF7, 0xE739, 0xEF7B, 0xF7BD}; //Greyscale + for (int i = 0; i < pSize * frames; i++) { + color[i] = ega[i%pSize]; + colorR[i] = (color[i%pSize] / 1024) * 8; + colorG[i] = ((color[i%pSize] / 32) % 32) * 8; + colorB[i] = (color[i%pSize] % 32) * 8; + } +// for (int i = 0; i < pSize * frames; i++) { +// int foo = (int)(Math.random() * 32768); +// color[i] = foo; +// colorR[i] = (foo / 1024) * 8; +// colorG[i] = ((foo / 32) % 32) * 8; +// colorB[i] = (foo % 32) * 8; +// } + } + public static void printColor(int i) { + System.out.print("\n" + String.format("%05d",i)); + System.out.print(" "); + System.out.print(String.format("%03d",((i / 1024) * 8))); + System.out.print(" "); + System.out.print(String.format("%03d",(((i / 32) % 32) * 8))); + System.out.print(" "); + System.out.print(String.format("%03d",(i % 32) * 8)); + } +} diff --git a/src/Video Convert/README.txt b/src/Video Convert/README.txt new file mode 100644 index 0000000..156a1b8 --- /dev/null +++ b/src/Video Convert/README.txt @@ -0,0 +1 @@ +Engine.java was run in Eclispe Studio. Last Modifed 2023/01/28 16:33 \ No newline at end of file diff --git a/src/col.h b/src/col.h new file mode 100644 index 0000000..497a694 --- /dev/null +++ b/src/col.h @@ -0,0 +1,78 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +//#ifndef COL_H +#ifdef COL_H //Lol +#define COL_H + +#include +#include +#include + +/* +Took me long enough to make this .h file +Previously, I would use my knuckles to find the color I needed, +my first knuckle was color 1 or Red, then 2 Yellow, 3 Green, 4 Teal +5 Blue, 6 Magenta, and 7 White. Adding 8 to the number to set the Alpha Bit +*/ + +enum COLORS { + Black,Red,Yellow,Lime,Teal,Blue,Magenta,White, + Grey,Maroon,Brown,Green,Cyan,Navy,Purple,Silver +}; + +#ifdef DEVBUILD + +// If I am ever to lazy to find a color, should be fixed by release +/* +uint8_t findColor1555(uint16_t c); +uint8_t findColor888(uint8_t r, uint8_t g, uint8_t b); +uint8_t findColor565(uint16_t c); + +uint8_t findColor1555(uint16_t c) { + uint8_t r = (c & 0x7C00) >> 10; + uint8_t g = (c & 0x03E0) >> 4; + g += (c & 0x8000) ? 1 : 0; + uint8_t b = (c & 0x001F); + + u8 best = 0x00; + u16 low = 0xFFFF; + for (u8 i = 0; i < 0xF0; i++) { //Avoids temp color zone + u16 col = paletteRAM[i]; + uint8_t r0 = (col & 0x7C00) >> 10; + uint8_t g0 = (col & 0x03E0) >> 4; + g0 += (c & 0x8000) ? 1 : 0; + uint8_t b0 = (col & 0x001F); + u16 dif = (r - r0) * (r - r0) + (g - g0) * (g - g0) + (b - b0) * (b - b0); + if (dif < low) { + low = dif; + best = i; + } + } + return best; +} +uint8_t findColor888(uint8_t r, uint8_t g, uint8_t b) { + u8 i = (g & 0x04) >> 2; + r >>= 3; + g >>= 2; + b >>= 3; + return findColor1555((i << 15) + (r << 10) + (g << 5) + b); +} +uint8_t findColor565(uint16_t c) { + uint8_t r = (c & 0xF800) >> 11; + uint8_t g = (c & 0x07C0) >> 6; + uint8_t b = (c & 0x001F); + uint8_t i = (c & 0x0020) >> 5; + return findColor1555((i << 15) + (r << 10) + (g << 5) + b); +} +*/ +//WHAT? WHY IT NO WORKY!?!?!?!?!?!? :( + +#endif + +#endif /* COL_H */ diff --git a/src/dataLoad.h b/src/dataLoad.h new file mode 100644 index 0000000..b8f365e --- /dev/null +++ b/src/dataLoad.h @@ -0,0 +1,109 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef DATALOAD_H +#define DATALOAD_H + +#include +#include +#include +#include + +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // +// OUTDATED IMPORT FROM LAPTOP // + +uint8_t data[8000]; + +void loadUserData(uint8_t input) { + uint8_t prgm; + //Load AppVar + unsigned char txt[7] = "SWPDAT"; + // unsigned char num[4]; + // sprintf(num, "%03d", input); + // prgm = ti_Open(strcat(txt, num), "r"); + prgm = ti_Open(txt, "r"); + + ti_Seek(0, SEEK_SET, prgm); //Seeks to the required data + ti_Read(&data, 3, 8000, prgm); + + uint8_t* rom = data; + uint16_t* blit = 0xD44B00; // ((320 - 168) / 4) + ((240 - 126) * 80) + uint8_t b = 1; + for (uint24_t y = 0; y < 8000; y++) { //(320*200) / 8 + b = 1; + for (uint8_t x = 0; x < 8; x++) { + *blit = *rom & b ? 0xFFFF : 0x0000; + blit++; + b <<= 1; + } + rom++; + } + + ti_Close(prgm); + prgm = 0; +} + +void saveGame(void* ptr) { + ptr[0] = (uint8_t)gameMode; + ptr[1] = (uint8_t)sizeX; + ptr[2] = (uint8_t)sizeY; + ptr[3] = (uint24_t)tile; + ptr[6] = (uint24_t)chance; + ptr[9] = (uint24_t)flags; + ptr[12] = (uint24_t)score; + ptr[15] = (uint32_t)(systemTime.full - gameStartTime.full - gamePauseTime.full); + uint24_t i = 19; + uint24_t z = marX * 2 + borderIndexes; + for (uint8_t y = 0; y < sizeY; y++) { + for (uint8_t x = 0; x < sizeX; x++) { + uint8_t b = state[z] == 255 ? 3 : state[z]; + b += flag[z] == gFlag ? 4 : 0; + b += flag[z] == gQuestion ? 8 : 0; + b += board[z] == gMine ? 16 : 0; + ptr[i] = b; + i++; + z++; + } + z += borderIndexes * 2; + } +} + +void loadGame(void* ptr) { + gameMode = ptr[0]; + sizeX = ptr[1]; + sizeY = ptr[2]; + tile = ptr[3]; + chance = ptr[6]; + flags = ptr[9]; + score = ptr[12]; + gameStartTime.full = systemTime.full - ptr[15]; + + uint24_t i = 19; + uint24_t z = marX * 2 + borderIndexes; + for (uint8_t y = 0; y < sizeY; y++) { + for (uint8_t x = 0; x < sizeX; x++) { + board[z] = ptr[i] & 16 ? gMine : 0; + uint8_t b = state[z] == 255 ? 3 : state[z]; + b += flag[z] == gFlag ? 4 : 0; + b += flag[z] == gQuestion ? 8 : 0; + b += board[z] == gMine ? 16 : 0; + ptr[i] = b; + i++; + z++; + } + z += borderIndexes * 2; + } +} + +#endif /* DATALOAD_H */ \ No newline at end of file diff --git a/src/gameMenu.h b/src/gameMenu.h new file mode 100644 index 0000000..ba25301 --- /dev/null +++ b/src/gameMenu.h @@ -0,0 +1,475 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef GAMEMENU_H +#define GAMEMENU_H + +#include "prime2D.h" +#include "global.h" +#include +#include +#include "mineSweeper.h" +#include "x86render.h" + +void pause6x8(uint24_t xW, uint24_t yW, uint8_t lexicon) { + uint8_t* bitImage = (uint8_t*)char6x8 + (lexicon * 6); + uint8_t* fill = (uint8_t*)VRAM + (yW * 320 + xW); + uint8_t b = 1; + uint8_t fColor = (gColor << 4) + gColor; + for (uint8_t y = 0; y < 8; y++) { + for (uint8_t x = 0; x < 6; x++) { + *fill = *bitImage & b ? fColor : *fill; + fill += 160; + *fill = *bitImage & b ? fColor : *fill; + fill-= 159; + bitImage++; + } + bitImage -= 6; + fill += 314; // 320 - 6 + b <<= 1; + } +} + +void text6x8b4(uint24_t xW, uint24_t yW, uint8_t lexicon) { //Incompatibile with 0.70.Alpha and later + uint24_t bitImage0 = char6x8[lexicon]; + uint24_t bitImage1 = char6x8[lexicon + 1]; + uint8_t* fill0 = (uint8_t*)VRAM + (yW * 320 + xW); + uint8_t* fill1 = fill0 + 1280; + uint24_t b = 1; + uint8_t fColor = gColor << 4; + for (uint24_t y = 0; y < 8; y++) { + for (uint24_t x = 0; x < 3; x++) { + *fill0 = bitImage0 & b ? gColor : 0; + *fill1 = bitImage1 & b ? gColor : 0; + b <<= 1; + *fill0 += bitImage0 & b ? fColor : 0; + *fill1 += bitImage1 & b ? fColor : 0; + fill1++; + fill0++; + } + fill0 += 157; //320 - 6 + fill1 += 157; + } +} + +uint8_t scoreSort() { //broken + uint24_t off = gameMode * 6; + for (uint8_t i = 0; i < 6; i++) { + if (score > leaderboard[i + off]) { + for (uint8_t j = i; j < 5; j++) { + leaderboard[j + 1 + off] = leaderboard[j + off]; + } + score = leaderboard[i + off]; + return i; + } + } + return 99; //Probably Keys +} + +void fadeIn() { + uint16_t *fP = paletteRAM; //Fade in after setup + for (uint8_t k = 0; k < 32; k++) { + uint32_t flashTime = timer_Get(1); + uint8_t j = 31 - k; + for (uint16_t i = 0; i < 256; i++) { + *fP = (linear((initialPalette[i] >> 10) & 31, 31, 0, 31, j) << 10) | (linear((initialPalette[i] >> 5) & 31, 31, 0, 31, j) << 5) | (linear(initialPalette[i] & 31, 31, 0, 31, j)); + fP++; + } + fP -= 256; + while (deltaTime(timer_Get(1),flashTime) < 1536); + } +} + +void printStat(uint24_t n) { //Proprietary + if (n > 999) { + pause6x8(127, 324, ((n / 1000) % 10)); + } + if (n > 99) { + pause6x8(134, 324, ((n / 100) % 10)); + } + if (n > 9) { + pause6x8(141, 324, ((n / 10) % 10)); + } + pause6x8(148, 324, (n % 10)); +} + + +void scoreScreen() { //broken //I shall fix the sorting now that I can code insertion sort + return; + /* + uint16_t *fP = paletteRAM; //Fade in after setup + for (uint8_t k = 0; k < 32; k++) { + uint8_t j = 31 - k; + for (uint16_t i = 0; i < 256; i++) { + *fP = (linear((initialPalette[i] >> 10) & 31, 31, 0, 31, j) << 10) | (linear((initialPalette[i] >> 5) & 31, 31, 0, 31, j) << 5) | (linear(initialPalette[i] & 31, 31, 0, 31, j)); + fP++; + } + fP -= 256; + } + uint8_t name[3] = {33,33,33}; + gColor = 0; + fillRect(0,240,320,120); //Clears the screen + gColor = 7; + { + uint24_t x = 8; + uint24_t y = 248; + uint8_t i = 0; + for (uint24_t j = section[9]; j < section[10]; j++) { //Set to Win Screen text for temporary measures + if (text[j] == 146) { + x = 8; + y += 12; + if (i == 0 || i == 4) { + y += 8; + } + i++; + if (i > 0 && i < 5) { + x = 15; + } + } else { + pause6x8(x, y, text[j]); + x += 7; + } + } + } + + gColor = 7; + pause6x8(148, 268, (scoreSort() % 10)); + pause6x8(148, 280, (score % 10)); + pause6x8(148, 292, (timer % 10)); + gColor = 0; + pause6x8(50, 304, 66); + pause6x8(57, 304, 66); + pause6x8(64, 304, 66); + option = 0; + while (!(kb_Data[1] & (kb_Graph | kb_Del))) { + do { + keyPress(); + + } while(key == 0); + if (kb_Data[7] & kb_Up) { + if (name[option] == 58) { + } else { + name[option] = 33; + name[option]++; + } + gColor = 7; + fillRect(50 + (option * 7),304,6,8); + gColor = 0; + pause6x8(50 + (option * 7), 304, name[option]); + } + if (kb_Data[7] & kb_Down) { + if (name[option] == 33) { + name[option] = 58; + } else { + name[option]--; + } + gColor = 7; + fillRect(50 + (option * 7),304,6,8); + gColor = 0; + pause6x8(50 + (option * 7), 304, name[option]); + } + if (kb_Data[7] & kb_Left) { + if (option == 0) { + option = 2; + } else { + option--; + } + } + if (kb_Data[7] & kb_Right) { + if (option == 2) { + option = 0; + } else { + option++; + } + } + if ((kb_Data[6] & kb_Enter) || (kb_Data[2] & kb_Alpha)) { + break; + } + } + */ +} + +void timeDisplay(uint32_t input) { //systemTime - gameStartTime - gamePauseTime + uint32_t _1000mili = 0; + uint32_t _100mili = 0; + uint32_t _10mili = 0; + //uint32_t _1mili; + //uint32_t _100micro; + if (cleared != 0) { + _1000mili = (input / 32768); // Time to nearest second, full accuracy + _100mili = (input / 3277); // 100 mili Second, 16385/16384 ~6.104e-5 accuracy + _10mili = (input / 328); // 10 mili Second, 1025/1024 ~9.766e-4 accuracy + //_1mili = (input / 33); // 1 mili Second, 4125/4096 ~7.080e-3 accuracy + //_100micro = (input / 3); // 100 micro Second, 1875/2048 ~8.447e-2 accuracy + } + if (_1000mili > 9999) { // ~2.8 Hours + pause6x8(103, 336, ((_1000mili / 10000) % 10)); + } + if (_1000mili > 999) { // ~16.7 minutes + pause6x8(110, 336, ((_1000mili / 1000) % 10)); + } + if (_1000mili > 99) { // 100 Seconds + pause6x8(117, 336, ((_1000mili / 100) % 10)); + } + if (_1000mili > 9) { // 10 Seconds + pause6x8(124, 336, ((_1000mili / 10) % 10)); + } + pause6x8(136, 336, 34); //Decimal Point + pause6x8(131, 336, (_1000mili % 10)); // 1 Second + pause6x8(141, 336, (_100mili % 10)); // 100 MiliSeconds + pause6x8(148, 336, (_10mili % 10)); // 10 MiliSeconds +} + +void pauseScroll() { + if ((kb_Data[7] & (kb_Up | kb_Down)) && (keyReady & VERT)) { + keyReset(vERT); + gColor = 0; + pause6x8(8, 268 + (option * 12), 29); + pause6x8(141, 268 + (option * 12), 28); + if ((kb_Data[7] & kb_Up)) { + if (option == 0) { + option = 3; + } else { + option--; + } + } else { //Must be Down + if (option == 3) { + option = 0; + } else { + option++; + } + } + gColor = 7; + pause6x8(8, 268 + (option * 12), 29); + pause6x8(141, 268 + (option * 12), 28); + } +} + +void winScreen() { + if (gameFinishTime == 0) { + gameFinishTime = systemTime - gameStartTime - gamePauseTime; + } + pauseTime = systemTime; + *frameBase = (uint24_t)((size_t)WRAM); + *videoMode = 0x925; //4bit mode + gColor = 0; + fillRect(0,240,320,120); //Clears the screen + + // if (scoreSort() != 99 || 1) { //Force Debug Run + // scoreScreen(); + // } //Do not use for now please + + gColor = 7; + { + uint24_t x = 8; + uint24_t y = 248; + uint8_t i = 0; + uint24_t j = 0; + if (cheater == 1) { + j = 14; //Majic Number + for (uint8_t j = 0; j < cheatTextLength; j++) { + pause6x8(x, y, cheatText[j]); + x += 7; + } + } + for (; j < winTextLength; j++) { + if (winText[j] == 33) { + x = 8; + y += 12; + if (i == 0 || i == 4) { + y += 8; + } + i++; + if (i > 0 && i < 5) { + x = 22; + } + } else { + pause6x8(x, y, winText[j]); + x += 7; + } + } + } + + pause6x8(8, 268, 29); + pause6x8(141, 268, 28); + + option = 0; + printStat(score); + + timeDisplay(gameFinishTime); + + fadeIn(); + + while (!(kb_Data[1] & (kb_Graph | kb_Del))) { + keyPress(); + + + pauseScroll(); + + if (((kb_Data[6] & kb_Enter) || (kb_Data[2] & kb_Alpha)) && (keyReady & ALPHA)) { + keyReset(aLPHA); + if (option == 0) { //Resume + gamePauseTime += (systemTime - pauseTime); + } else if (option == 1) { //Restart + //key = 90; + status = RESTART; + } else if (option == 2) { //Main Menu + //key = 80; + status = QUIT; + } else if (option == 3) { //Quit + //key = 49; + status = FORCEQUIT; + } + *frameBase = 0xD40000; + *videoMode = 0x927; //8bit mode + break; + } + } + *frameBase = 0xD40000; + *videoMode = 0x927; //8bit mode +} + +void gameOver() { //160x120 screen due to poor coding + pauseTime = systemTime; + + uint24_t *vR = frameBase; + *vR = 0xD52C00; + *videoMode = 0x925; //4bit mode + gColor = 0; + fillRect(0,240,320,120); //Clears the screen + + gColor = 7; + { + uint24_t x = 8; + uint24_t y = 248; + uint8_t i = 0; + for (uint24_t j = 0; j < gameOverTextLength; j++) { + if (gameOverText[j] == 33) { + x = 8; + y += 12; + if (i == 0 || i == 4) { + y += 8; + } + i++; + if (i > 0 && i < 5) { + x = 22; + } + } else { + pause6x8(x, y, gameOverText[j]); + x += 7; + } + } + } + pause6x8(8, 268, 29); + pause6x8(141, 268, 28); + + + option = 0; + uint24_t clearTemp = ((sizeX) * (sizeY)) - mines - cleared + 1; + printStat(clearTemp); + + timeDisplay(systemTime - gameStartTime - gamePauseTime); + + fadeIn(); + + + while (!(kb_Data[1] & (kb_Graph | kb_Del))) { + keyPress(); + + pauseScroll(); + + if ((kb_Data[6] & kb_Enter) || (kb_Data[2] & kb_Alpha)) { + if (option == 0) { + //key = 90; + status = RESTART; + } else if (option == 1) { + //key = 80; + status = QUIT; + } else if (option == 2) { //Resume + gamePauseTime += (systemTime - pauseTime); + } else if (option == 3) { + //key = 49; + status = FORCEQUIT; + } + *vR = 0xD40000; + *videoMode = 0x927; //8bit mode + break; + } + } + *vR = 0xD40000; + *videoMode = 0x927; //8bit mode +} + +void pause() { + pauseTime = systemTime; + gColor = 0; + fillRect(0,240,320,120); //Clears the screen + + gColor = 7; + { + uint24_t x = 8; + uint24_t y = 248; + uint8_t i = 0; + for (uint24_t j = 0; j < pauseTextLength; j++) { + if (pauseText[j] == 33) { + x = 8; + y += 12; + if (i == 0 || i == 4) { + y += 8; + } + i++; + if (i > 0 && i < 5) { + x = 22; + } + } else { + pause6x8(x, y, pauseText[j]); + x += 7; + } + } + } + pause6x8(8, 268, 29); + pause6x8(141, 268, 28); + + option = 0; + uint24_t clearTemp = ((sizeX) * (sizeY)) - mines - cleared; + printStat(clearTemp); + + timeDisplay(systemTime - gameStartTime - gamePauseTime); + + *frameBase = 0xD52C00; + *videoMode = 0x925; //4bit mode + + while (!(kb_Data[1] & (kb_Graph | kb_Del))) { + keyPress(); + + pauseScroll(); + + if ((kb_Data[6] & kb_Enter) || (kb_Data[2] & kb_Alpha)) { + + if (option == 0) { //Resume + gamePauseTime += (systemTime - pauseTime); + } else if (option == 1) { + status = RESTART; + //key = 90; + } else if (option == 2) { + status = QUIT; + //key = 80; + } else if (option == 3) { + status = FORCEQUIT; + //key = 49; + } + *frameBase = 0xD40000; + *videoMode = 0x927; //8bit mode + break; + } + } + *frameBase = 0xD40000; + *videoMode = 0x927; //8bit mode +} + +#endif /* GAMEMENU_H */ \ No newline at end of file diff --git a/src/global.h b/src/global.h new file mode 100644 index 0000000..a9bc56e --- /dev/null +++ b/src/global.h @@ -0,0 +1,368 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef GLOBAL_H +#define GLOBAL_H + +//#include +#include +#include "x86render.h" //Contains the windows version of everything + +//#define VIDEO //Disables cutscene and saves a few bytes +#define DEVBUILD + +//System specification +//#define TI84CE +#define WINDOWS + +//#ifdef WINDOWS + +//#endif /* WINDOWS */ + + +typedef uint32_t uint24_t; +typedef int32_t int24_t; +typedef uint32_t u24; +typedef int32_t i24; + +typedef uint8_t u8; +typedef uint16_t u16; +//typedef uint24_t u24; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int8_t i8; +typedef int16_t i16; +//typedef int24_t i24; +typedef int32_t i32; +typedef int64_t i64; + + + +#ifdef TI84CE +void* VRAM = (void*)0xD40000; +void* WRAM = (void*)0xD52C00; +void* XRAM = (void*)0xD65800; +uint24_t* frameBase = (uint24_t*)0xE30010; +volatile uint16_t* videoMode = (uint16_t*)0xE30018; +uint16_t* paletteRAM = (uint16_t*)0xE30200; + +uint32_t* LCDTiming0 = (uint32_t*)0xE30000; //0x1F0A0338 +uint32_t* LCDTiming1 = (uint32_t*)0xE30004; //0x0402093F +uint32_t* LCDTiming2 = (uint32_t*)0xE30008; //0x00EF7802 +uint32_t* LCDTiming3 = (uint32_t*)0xE3000C; //0x00000000 + +uint32_t* lcd_CrsrImage = (uint32_t*)0xE30800; +uint32_t* lcd_CrsrCtrl = (uint32_t*)0xE30C00; +uint32_t* lcd_CrsrConfig = (uint32_t*)0xE30C04; +uint32_t* lcd_CrsrPalette0 = (uint32_t*)0xE30C08; +uint32_t* lcd_CrsrPalette1 = (uint32_t*)0xE30C0C; +uint32_t* lcd_CrsrXY = (uint32_t*)0xE30C10; +uint16_t* lcd_CrsrX = (uint16_t*)0xE30C10; +uint16_t* lcd_CrsrY = (uint16_t*)0xE30C12; +uint32_t* lcd_CrsrClip = (uint32_t*)0xE30C04; + +#endif /* TI84CE */ + +enum COLORS { //Will it be used? Or will knuckles prevail + Black,Red,Yellow,Lime,Teal,Blue,Magenta,White, + Grey,Maroon,Brown,Green,Cyan,Navy,Purple,Silver +}; + +/* +** This file is a file where I dumped all the global variables so things would not break +*/ + +uint24_t mines = 0; //U16 +int24_t flags = 54; //S16 +uint24_t cleared = 0; //U16 +uint8_t win = 1; +uint24_t flagColor = 1; +u8 cheater = 0; +u8 autoLoss = 0; + +int24_t score = 0; + +int24_t tile; + +/* Parameters */ + +#define gameModeCount 16 +uint24_t gameMode = 0; +uint24_t sizeX = 25; //Board X +uint24_t sizeY = 15; //Board Y +uint24_t chance = 54; //Refactor + +/* Parameters */ + +/* Game Backend */ + +uint16_t offPos = 0; //gameMode index +uint8_t offLen = 16; //gameMode length +uint8_t marX = 29; //Array X +uint8_t marY = 19; //Array Y +int24_t posX = -15; +int24_t posY = 6; + +uint8_t disX = 13; //Define spacing between squares +uint8_t disY = 13; +uint8_t padX = 3; +uint8_t padY = 2; +uint8_t font = 0; +uint8_t fontSize = 7; + +/* Graphical Backend */ + +/* Settings */ +u8 swapAlphaSecondBind = 0; +//Game Settings +u8 safeGuess = 2; //off,on,extra +u8 chording = 1; //off,on +u8 autoSolver = 0; //off,manual,automatic + +//Video Settings +uint24_t displayMode = 0; //Originally videoMode +u8 accessMode = 0; //Increases Readability, Disables Quake +u8 fadeEffect = 1; //off,static,dynamic //Refactor to bgEffects +u8 fpsCounter = 1; //Debug thing +u8 cursorGraphic = 0; +u8 movieIntro = 1; + +uint32_t FPS = (32768 / 1024); //Set to 0 for unlimited +uint32_t fpsT = 120; //temp value + +//Data Settings +u8 autoSaveMax = 0; + +/* Settings */ + +/* Text */ +uint8_t guideText[511] = {82,110,105,94,107,32,82,112,94,94,105,94,107,32,98,108,32,90,32,111,94,107,108,98,104,103,32,104,95,32,76,98,103,94,82,112,94,94,105,94,107,33,95,104,107,32,109,97,94,32,83,98,8,4,66,68,32,112,98,109,97,32,108,94,111,94,107,90,101,32,102,104,93,94,108,32,90,103,93,33,95,94,90,109,110,107,94,108,34,32,83,104,32,105,101,90,114,35,32,104,103,94,32,92,90,103,32,108,109,90,107,109,32,90,32,106,110,98,92,100,33,96,90,102,94,32,95,107,104,102,32,109,97,94,32,102,90,98,103,32,102,94,103,110,35,32,109,97,98,108,32,98,103,92,101,110,93,94,108,33,104,105,109,98,104,103,108,32,95,104,107,32,93,98,95,95,94,107,94,103,109,32,93,98,95,95,98,92,110,101,109,98,94,108,32,90,103,93,33,105,107,94,108,94,109,108,34,32,78,103,92,94,32,98,103,32,90,32,96,90,102,94,35,32,114,104,110,107,32,104,91,99,94,92,109,98,111,94,33,98,108,32,109,104,32,108,90,95,94,101,114,32,69,101,90,96,32,26,32,90,101,101,32,109,97,94,32,76,98,103,94,108,32,25,32,91,114,33,110,108,98,103,96,32,109,97,94,32,103,110,102,91,94,107,94,93,32,109,98,101,94,108,32,90,108,32,92,101,110,94,108,32,109,104,33,95,98,96,110,107,94,32,104,110,109,32,112,97,94,107,94,32,94,90,92,97,32,76,98,103,94,32,25,32,98,108,32,101,104,92,90,109,94,93,34,33,33,84,108,94,32,64,101,105,97,90,32,109,104,32,108,94,90,107,92,97,32,90,32,109,98,101,94,35,32,2,103,93,32,109,104,32,69,101,90,96,32,26,33,90,32,109,98,101,94,35,32,88,47,32,109,104,32,102,90,107,100,32,90,32,27,32,104,103,109,104,32,90,32,109,98,101,94,35,32,87,83,0,103,33,109,104,32,92,97,104,107,93,35,32,102,104,93,94,32,109,104,32,105,90,110,108,94,35,32,90,103,93,32,93,94,101,32,109,104,32,106,110,98,109,34,33,33,72,32,97,104,105,94,32,114,104,110,32,94,103,99,104,114,32,102,114,32,96,90,102,94,32,39,38,33}; +#define guideTextLength 511 //helpText had a naming conflict >:( + +uint8_t pauseText[84] = {79,90,110,108,94,93,39,33,81,94,108,110,102,94,32,70,90,102,94,33,81,94,108,109,90,107,109,33,76,90,98,103,32,76,94,103,110,33,68,113,98,109,32,64,105,105,101,98,92,90,109,98,104,103,33,81,94,102,90,98,103,98,103,96,32,83,98,101,94,108,39,33,83,98,102,94,32,83,90,100,94,103,39,33}; +#define pauseTextLength 84 +uint8_t gameOverText[87] = {70,90,102,94,32,78,111,94,107,48,33,81,94,108,109,90,107,109,33,76,90,98,103,32,76,94,103,110,33,81,94,108,110,102,94,32,70,90,102,94,33,68,113,98,109,32,64,105,105,101,98,92,90,109,98,104,103,33,81,94,102,90,98,103,98,103,96,32,83,98,101,94,108,39,33,83,98,102,94,32,83,90,100,94,103,39,33}; +#define gameOverTextLength 87 +uint8_t winText[81] = {70,90,102,94,32,66,104,102,105,101,94,109,94,48,33,81,94,108,110,102,94,32,70,90,102,94,33,81,94,108,109,90,107,109,33,76,90,98,103,32,76,94,103,110,33,68,113,98,109,32,64,105,105,101,98,92,90,109,98,104,103,33,82,92,104,107,94,39,33,83,98,102,94,32,83,90,100,94,103,39,33}; +#define winTextLength 81 +uint8_t cheatText[16] = {88,104,110,32,66,97,94,90,109,94,93,48,32,29,39,37}; +#define cheatTextLength 16 +/* Text */ + +/* IO Handeling */ +enum STATUS {OKAY,RESTART,QUIT,FORCEQUIT}; +uint8_t status = 0; +/* IO Handeling */ + +/* Chording/Cursor */ + +uint24_t cursorAllow = 0; + +/* Chording/Cursor */ + +/* Legacy */ +const uint8_t hiddenText[43] = { //SuperSweeper V:X.XX.X ZERICO2005 YYYY/MM/DD + 82,110,105,94,107,82,112,94,94,105,94,107,32,85,39, /* Text */ + 0,34,7,7,34,1, /* Version */ + 32,89,68,81,72,66,78,2,0,0,5,32, /* Text */ + 2,0,2,3,36, /* Year */ + 0,6,36,0,3, /* Month Day */ +}; +const uint8_t hiddenTextLength = 43; + +const uint8_t blockLimits[6] = {8,4,8,8,6,6}; //Minus 1 +// + +uint8_t category = 0; + +uint8_t names[288] = { + 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40, 66,68,25,76,68,26,83,68,30,66,71,48,40,40,40,40,40,40 +}; + +uint16_t leaderboard[96] = { + 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0, 1600,1100,700,400,0,0 +}; + +//8bit Color Pallete +//0-15 EGA, 16 Orange, 17-20 Fade +//5x5 Image and Color +//Number Colors +const uint8_t color[28] = { +/*0*/ 7, 5,11, 1,13, 9,12, 0 +/*1*/, 8,14,10, 6, 4, 2, 0, 8 +/*2*/, 7, 0, 0, 0, 0, 0, 0, 0 +/*3*/, 0, 0, 0,13 +}; + +//Outdated Text +//const uint8_t text[1311] = {50,85,74,92,92,82,76,32,60,82,87,78,66,96,78,78,89,78,91,39,32,25,33,58,87,82,80,81,93,32,66,96,78,78,89,78,91,39,32,30,33,48,85,85,32,60,88,77,78,92,39,32,26,33,50,94,92,93,88,86,39,32,109,33,59,78,74,77,78,91,75,88,74,91,77,39,32,44,33,66,78,93,93,82,87,80,92,39,32,43,33,55,78,85,89,39,32,27,33,52,97,82,93,32,54,74,86,78,39,32,45,33,64,94,82,76,84,32,54,74,86,78,39,33,54,74,86,78,32,60,88,77,78,39,32,30,33,63,91,78,92,78,93,39,32,26,33,66,82,99,78,39,32,46,33,51,82,79,79,82,76,94,85,93,98,39,32,41,33,66,93,74,91,93,32,54,74,86,78,39,32,25,33,50,94,92,93,88,86,39,32,43,33,60,74,82,87,32,60,78,87,94,39,32,45,33,63,74,93,93,78,91,87,32,66,78,85,78,76,93,82,88,87,39,32,26,33,65,74,87,77,88,86,32,60,88,77,78,39,32,27,33,66,78,85,78,76,93,32,63,91,78,92,78,93,39,32,25,33,50,94,92,93,88,86,32,54,74,86,78,39,32,43,33,60,74,82,87,32,60,78,87,94,39,32,45,33,54,74,86,78,32,60,88,77,78,39,32,30,33,66,82,99,78,32,71,39,33,66,82,99,78,32,72,39,33,60,82,87,78,32,50,88,94,87,93,39,32,25,33,63,78,91,76,78,87,93,74,80,78,39,32,41,33,66,93,74,91,93,32,54,74,86,78,39,32,26,33,60,74,82,87,32,60,78,87,94,39,32,45,33,55,82,80,81,32,66,76,88,91,78,92,39,32,44,33,1,34,33,2,34,33,3,34,33,4,34,33,5,34,33,6,34,33,54,74,86,78,32,60,88,77,78,39,32,30,33,60,74,82,87,32,60,78,87,94,39,32,45,33,66,74,79,78,32,54,94,78,92,92,82,87,80,39,33,69,82,77,78,88,32,60,88,77,78,39,33,49,74,76,84,80,91,88,94,87,77,32,52,79,79,78,76,93,92,39,33,48,76,76,78,92,92,82,75,82,85,82,93,98,32,60,88,77,78,39,33,50,88,91,77,82,87,80,32,37,48,85,89,81,74,38,39,33,60,74,97,82,86,94,86,32,53,63,66,39,33,69,78,91,92,82,88,87,39,33,60,74,82,87,32,60,78,87,94,32,45,33,66,94,89,78,91,32,66,96,78,78,89,78,91,32,82,92,32,74,32,95,78,91,92,82,88,87,32,88,79,32,60,82,87,78,66,96,78,78,89,78,91,33,79,88,91,32,93,81,78,32,67,82,8,4,50,52,32,96,82,93,81,32,92,78,95,78,91,74,85,32,86,88,77,78,92,32,74,87,77,33,79,78,74,93,94,91,78,92,34,32,67,88,32,89,85,74,98,35,32,88,87,78,32,76,74,87,32,92,93,74,91,93,32,74,32,90,94,82,76,84,33,80,74,86,78,32,79,91,88,86,32,93,81,78,32,86,74,82,87,32,86,78,87,94,35,32,93,81,82,92,32,82,87,76,85,94,77,78,92,33,88,89,93,82,88,87,92,32,79,88,91,32,77,82,79,79,78,91,78,87,93,32,77,82,79,79,82,76,94,85,93,82,78,92,32,74,87,77,33,89,91,78,92,78,93,92,34,32,62,87,76,78,32,82,87,32,74,32,80,74,86,78,35,32,98,88,94,91,32,88,75,83,78,76,93,82,95,78,33,82,92,32,93,88,32,92,74,79,78,85,98,32,53,85,74,80,32,26,32,74,85,85,32,93,81,78,32,60,82,87,78,92,32,25,32,75,98,33,94,92,82,87,80,32,93,81,78,32,87,94,86,75,78,91,78,77,32,93,82,85,78,92,32,74,92,32,76,85,94,78,92,32,93,88,33,79,82,80,94,91,78,32,88,94,93,32,96,81,78,91,78,32,78,74,76,81,32,60,82,87,78,32,25,32,82,92,32,85,88,76,74,93,78,77,34,33,33,68,92,78,32,48,85,89,81,74,32,93,88,32,92,78,74,91,76,81,32,74,32,93,82,85,78,35,32,2,87,77,32,93,88,32,53,85,74,80,32,26,33,74,32,93,82,85,78,35,32,72,47,32,93,88,32,86,74,91,84,32,74,32,27,32,88,87,93,88,32,74,32,93,82,85,78,35,32,71,67,0,87,33,93,88,32,76,81,88,91,77,35,32,86,88,77,78,32,93,88,32,89,74,94,92,78,35,32,74,87,77,32,77,78,85,32,93,88,32,90,94,82,93,34,33,33,56,32,81,88,89,78,32,98,88,94,32,78,87,83,88,98,32,86,98,32,80,74,86,78,32,39,38,33,63,74,94,92,78,77,39,33,65,78,92,94,86,78,32,54,74,86,78,33,65,78,92,93,74,91,93,33,60,74,82,87,32,60,78,87,94,33,52,97,82,93,32,48,89,89,85,82,76,74,93,82,88,87,33,65,78,86,74,82,87,82,87,80,32,67,82,85,78,92,39,33,67,82,86,78,32,67,74,84,78,87,39,33,54,74,86,78,32,62,95,78,91,109,33,65,78,92,93,74,91,93,33,60,74,82,87,32,60,78,87,94,33,65,78,92,94,86,78,32,54,74,86,78,33,52,97,82,93,32,48,89,89,85,82,76,74,93,82,88,87,33,65,78,86,74,82,87,82,87,80,32,67,82,85,78,92,39,33,67,82,86,78,32,67,74,84,78,87,39,33,54,74,86,78,32,50,88,86,89,85,78,93,78,109,33,65,78,92,94,86,78,32,54,74,86,78,33,65,78,92,93,74,91,93,33,60,74,82,87,32,60,78,87,94,33,52,97,82,93,32,48,89,89,85,82,76,74,93,82,88,87,33,66,76,88,91,78,39,33,67,82,86,78,32,67,74,84,78,87,39,33}; +//const uint24_t section[11] = {0,112,206,287,371,430,548,1059,1143,1230,1311}; + +/* Legacy */ + +uint16_t initialPalette[256] = { + /*0*/ /*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*A*/ /*B*/ /*C*/ /*D*/ /*E*/ /*F*/ +/*0*/ 0x0000,0x7C00,0x7FE0,0x03E0,0x03FF,0x001F,0x7C1F,0x7FFF,0x1CE7,0x3C00,0x3DE0,0x01E0,0x01EF,0x000F,0x3C0F,0x5EF7 +/*1*/,0x79E0,0x0210,0x0210,0x0210,0x0210,0x0210,0x1084,0x6000,0x7800,0x1400,0x0421,0x5294,0x5EE0,0x0000,0x0000,0x0000 +/*2*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*3*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*4*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*5*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*6*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*7*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*8*/,0x7800,0x1400,0x7BC0,0x14A0,0x03C0,0x00A0,0x7BDE,0x294A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*9*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*A*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*B*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*C*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*D*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*E*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +/*F*/,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* Menu fade effect */ +}; + +//const uint8_t CLICKABLE = 0b00000100; const uint8_t SELECT1 = 0b00000001; const uint8_t SELECT2 = 0b00000010; const uint8_t SELECT3 = 0b00000011; red darkRed 0grey 1grey +enum guiType {Click = 1, Scroll = 2, Dial = 4, Direct = 8, Value = 16, Dot = 32, BoolToggle = 64, Text = 128}; +enum GUITYPE { C = 1, F = 2, N = 4, P = 8, V = 16, D = 32, B = 64, T = 128}; + +/* Global */ +//Video + + + +//Graphics + +//Utilities +uint32_t seed = 0; //Used for random number generation //frameTime variable +uint32_t delta = 0; +uint32_t frameStart = 0; //When the new frame began +uint32_t clockMax = 0; +uint32_t clockTime = 0; + +uint32_t systemTime; +uint32_t pauseTime; +uint32_t gameStartTime; +uint32_t gamePauseTime; +uint32_t gameFinishTime; + + +/* Global */ + +/* Library Functions */ + + +#ifdef TI84CE +uint8_t* board = (uint8_t*)0xD5E000; +uint8_t* state = (uint8_t*)0xD5F000; +uint24_t* search = (uint24_t*)0xD60000; +uint8_t* flag = (uint8_t*)0xD62000; +#endif /* TI84CE */ + +#ifdef WINDOWS +uint8_t board[56*31]; +uint8_t state[56*31]; +uint24_t search[56*31]; +uint8_t flag[56*31]; +#endif /* WINDOWS */ + +uint24_t fadeSpeed = 0; + +const uint16_t orderPos[18] = { + 0,16,32,48,64,80,96,112,128,144,152,176,200,232,264,288,312,344 +}; +//344 + 16 for buffer reasons since this keeeps being a probelmy +const int8_t order[360] = { + -1,1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1, + -1,2,1,2,-2,1,-2,-1,2,1,2,-1,-1,-2,1,-2, + 0,2,0,1,0,-1,0,-2,-2,0,-1,0,1,0,2,0, + -2,2,2,2,-1,1,1,1,-1,-1,1,-1,-2,-2,2,-2, + 2,2,2,-2,-2,2,-2,-2,1,0,-1,0,0,1,0,-1, + -1,2,2,1,1,-2,-2,-1,1,0,-1,0,0,1,0,-1, + 1,1,1,2,-1,-1,-1,-2,-2,1,-1,1,2,-1,1,-1, + -2,1,-1,1,2,1,1,1,-2,-1,-1,-1,2,-1,1,-1, + 1,1,1,-1,-1,1,-1,-1,2,0,1,0,-1,0,-2,0, + -1,0,1,0,0,1,0,-1, + -1,1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1, -1,0,1,0,0,1,0,-1, + -1,1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1, -1,-1,1,1,-1,1,1,-1, + 0,2,0,1,0,-1,0,-2,-2,0,-1,0,1,0,2,0, -2,2,2,2,-1,1,1,1,-1,-1,1,-1,-2,-2,2,-2, + -1,1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1, -1,2,1,2,-2,1,-2,-1,2,1,2,-1,-1,-2,1,-2, + -1,0,1,0,0,1,0,-1, 2,2,2,-2,-2,2,-2,-2,1,0,-1,0,0,1,0,-1, + -1,0,1,0,0,1,0,-1, 0,2,0,1,0,-1,0,-2,-2,0,-1,0,1,0,2,0, + 0,2,0,1,0,1,0,-1,0,-1,0,-2, 2,0,1,0,1,0,-1,0,-1,0,-2,0, 1,1,1,-1,-1,1,-1,-1 +}; + +const uint8_t fontArray[40] = { + 0,0,0,1,1,2,2,2, 6,8,8,8,10,9,11,13, 8,8,10,8,10,11,13,13, 1,2,2,1,2,1,2,3, 1,1,2,1,2,1,2,2 +}; + +uint8_t bX[18] = {14,20,24,29,32,34, 34,36,40,47,54,56, 14,24,32,34,40,54}; //Plus 4 +uint8_t bY[18] = {14,14,16,19,20,22, 25,28,29,29,29,31, 14,16,20,25,29,29}; //Plus 4 +uint24_t bM[18] = {10,18,30,54,72,90, 108,136,180,240,300,3, 10,30,72,108,180,300}; +uint8_t bF[6] = {7,7,7,7,7,7}; + +///fff + + +uint8_t option = 0; + +#define RGB4bit 0x825 +#define RGB8bit 0x827 +#define RGB16bit 0x82D +#define BGR4bit 0x925 +#define BGR8bit 0x927 +#define BGR16bit 0x92D + +//Broken Functions +/* +uint8_t findColor1555(uint16_t c); +uint8_t findColor888(uint8_t r, uint8_t g, uint8_t b); +uint8_t findColor565(uint16_t c); + +uint8_t findColor1555(uint16_t c) { + i8 r = (c & 0x7C00) >> 10; + i8 g = (c & 0x03E0) >> 4; + g += (c & 0x8000) ? 1 : 0; + i8 b = (c & 0x001F); + + u8 best = 0x00; + u16 low = 0xFFFF; + for (u8 i = 0; i < 0xF0; i++) { //Avoids temp color zone + u16 col = paletteRAM[i]; + i8 r0 = (col & 0x7C00) >> 10; + i8 g0 = (col & 0x03E0) >> 4; + g0 += (c & 0x8000) ? 1 : 0; + i8 b0 = (col & 0x001F); + u16 dif = (abs(r - r0) * abs(r - r0)) + (abs(g - g0) * abs(g - g0)) + (abs(b - b0) * abs(b - b0)); + if (dif < low) { + low = dif; + best = i; + } + } + return best; +} +uint8_t findColor888(uint8_t r, uint8_t g, uint8_t b) { + u8 i = (g & 0x04) >> 2; + r >>= 3; + g >>= 2; + b >>= 3; + return findColor1555((i << 15) + (r << 10) + (g << 5) + b); +} +uint8_t findColor565(uint16_t c) { + uint8_t r = (c & 0xF800) >> 11; + uint8_t g = (c & 0x07C0) >> 6; + uint8_t b = (c & 0x001F); + uint8_t i = (c & 0x0020) >> 5; + return findColor1555((i << 15) + (r << 10) + (g << 5) + b); +} +*/ + + +//Menu stuff + + + +#endif /* GLOBAL_H */ \ No newline at end of file diff --git a/src/int24_type.h b/src/int24_type.h new file mode 100644 index 0000000..3ea731b --- /dev/null +++ b/src/int24_type.h @@ -0,0 +1,120 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef INT24_TYPE +#define INT24_TYPE + +/* +** Version 1.0.2 +** 2023/04/10 +*/ + +class uint24_t { + private: + //Stored across 3 bytes + uint8_t b0; + uint8_t b1; + uint8_t b2; + + //Conversions + uint24_t format24(uint32_t i) { //32bit to 24bit + uint24_t z; + z.b0 = i & 255; + z.b1 = (i >> 8) & 255; + z.b2 = (i >> 16) & 255; + return z; + } + uint32_t format32(uint24_t z) { //24bit to 32bit + return (z.b0) + (z.b1 << 8) + (z.b2 << 16); + } + + public: + //Constructors + uint24_t() {} + uint24_t(uint32_t i) { + b0 = i & 255; + b1 = (i >> 8) & 255; + b2 = (i >> 16) & 255; + } + operator uint32_t () { + return (b0) + (b1 << 8) + (b2 << 16); + } + + //Bitwise Not + uint24_t operator~() { + uint32_t z = (b0) + (b1 << 8) + (b2 << 16); + return format24(~z); + } + + //Debug + void print_uint24_t() { + uint32_t w = (b0) + (b1 << 8) + (b2 << 16); + printf("\n%8d | %d,%d,%d",w,b2,b1,b0); + } +}; + +class int24_t { + private: + //Stored across 3 bytes + uint8_t b0; + uint8_t b1; + uint8_t b2; + + //Conversions + int24_t format24(int32_t i) { //32bit to 24bit + int24_t z; + z.b0 = (uint32_t)(i) & 255; + z.b1 = ((uint32_t)(i) >> 8) & 255; + z.b2 = ((uint32_t)(i) >> 16) & 255; + return z; + } + int32_t format32(int24_t z) { //24bit to 32bit + int32_t w = (z.b0) + (z.b1 << 8) + (z.b2 << 16); + if (b2 & 128) { //If bit 23 is set + w |= 0xFF000000; + } + return w; + } + + public: + //Constructors + int24_t() {} + int24_t(int32_t i) { + b0 = (uint32_t)(i) & 255; + b1 = ((uint32_t)(i) >> 8) & 255; + b2 = ((uint32_t)(i) >> 16) & 255; + } + operator int32_t () { + int32_t w = (b0) + (b1 << 8) + (b2 << 16); + if (b2 & 128) { //If bit 23 is set + w |= 0xFF000000; + } + return w; + } + + //Bitwise Not + int24_t operator~() { + int32_t z = (b0) + (b1 << 8) + (b2 << 16); + return format24(~z); + } + + //Debug + void print_int24_t() { + int32_t w = (b0) + (b1 << 8) + (b2 << 16); + if (b2 & 128) { //If bit 23 is set + w |= 0xFF000000; + } + printf("\n%8d | %d,%d,%d",w,b2,b1,b0); + } + void print_uint24_t() { + uint32_t w = (b0) + (b1 << 8) + (b2 << 16); + printf("\n%8d | %d,%d,%d",w,b2,b1,b0); + } +}; + +#endif /* INT24_TYPE */ \ No newline at end of file diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..96a03dc --- /dev/null +++ b/src/main.c @@ -0,0 +1,155 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#include +//#include +//#include +#include +#include +//#include +//#include +//#include +//#include +#include +#include "prime2D.h" +#include "mineSweeper.h" +#include "menu.h" +#include "global.h" +#include "video.h" +#include +#include "x86render.h" +//#include + +/* +cd "C:\Users\erico\Documents\Programming\superSweeper" +cd "C:\Users\Eric Ross\Documents\Super-Sweeper-CE" +cd "C:\Users\\Documents\Programming\Super-Sweeper-CE" + +cd "C:\Users\ +\Documents\Programming\Super-Sweeper-CE" +*/ +//0.71.3 2023/02/16 21:58 + +/* +It is CRITICAL to fix system time, something allows it to overflow randomly,abtract it so it updates when it is read by a variable or something +*/ + +//When were these suggestions added? Only Git knows now. + +//Implement sliders and proper preset selection + +//Changed flag color to accessability mode +//Fixed percent and mines in custom and added some wack code to it +//Added video intro + +//Some asm speed up in prime2D.h, 118fps to 159fps +//Font changes too in the 0.64.0 update, brought back frame base shifter thing + +//finsih up the menu and get beack to school work +//Add europe text next + +//Add file saving and loading +//And the silver colored mine somehow (Fixed) +//Aranges variables so settings can write to them without temp arrays +//Fix the menus +//Fix the fade effect and the timers and wrist watch clocks +//Why am I using the flagCountColor variable to toggle quake mode? +//Exiting is broken in pause menus from keys being replaced + +void hidden6x8(uint24_t xW, uint24_t yW, uint8_t lexicon) { + uint8_t* bitImage = (uint8_t*)char6x8 + (lexicon * 6); + uint16_t* fill = (uint16_t*)VRAM + (yW * 320 + xW); + uint8_t b = 1; + for (uint8_t y = 0; y < 8; y++) { + for (uint8_t x = 0; x < 6; x++) { + *fill = *bitImage & b ? 16392 : *fill; + bitImage++; + fill++; + } + bitImage -= 6; + fill += 314; // 320 - 6 + + b <<= 1; + } +} + +void restore() { + *lcd_CrsrConfig = 0x00000000; + *lcd_CrsrCtrl = 0x00000000; + *LCDTiming2 = (uint32_t)(*LCDTiming2 & ~(uint32_t)0x03FF0000) | (uint32_t)(240 - 1) << 16; + *frameBase = 0xD40000; + if (darkMode) { //Reverts to normal Mode + /* + ((void(*)(void))0x384)(); + *(volatile uint8_t*)0xF80018 = 0x08; + *(volatile uint8_t*)0xF80018 = 0x44; + *(volatile uint8_t*)0xF80018 = 0x20; + *(volatile uint8_t*)0xF80008 = 0x01; + */ + } + kb_Reset(); + *videoMode = 0x92D; +} + +int main(void) { + //printf("\nStarting\n"); fflush(stdout); + initLCDcontroller(); + //printf("Ready\n"); fflush(stdout); + //timer_Enable(1, TIMER_32K, TIMER_NOINT, TIMER_UP); //Restart clock + systemTime = timer_Get(1); + #ifdef VIDEO //Toggles video player code + if (1) { //Video Player Code + *videoMode = 0x925; //4bit mode 1001 0010 0101 + gColor = 0; + fillScreen(); + uint8_t exitVideo = splashVideo(); + if (exitVideo == 1) { //If user decides to force quit program + restore(); + return 0; + } + if (exitVideo == 0) { + gColor = 0; + fillScreen(); + delay32K(32768/3); + } + } + #endif /* VIDEO */ + + *videoMode = 0x927; //8bit mode 1001 0010 0111 + + gColor = 0; + for (uint24_t y = 256; y < 400; y += 9) { + for (uint24_t x = 0; x < 144; x += 9) { + fillRect(x,y,8,8); + gColor++; + } + } + + for (u16 r = 0; r < 256; r++) { + paletteRAM[r] = initialPalette[r]; + } + + hidden6x8(2, 230, 50); + { + uint24_t xW = 10; + for (uint8_t j = 0; j < hiddenTextLength; j++) { //Change me as well + hidden6x8(xW, 230, hiddenText[j]); + xW += 7; + } + } //Hidden text + hidden6x8(312, 230, 50); + + fpsT = 32768 / FPS; //Sets fpsTemp for settings menu + fontSize = 7; + + menuLoop(); + + restore(); + terminateLCDcontroller(); + return 0; +} \ No newline at end of file diff --git a/src/menu.h b/src/menu.h new file mode 100644 index 0000000..11a3087 --- /dev/null +++ b/src/menu.h @@ -0,0 +1,399 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef MENU_H +#define MENU_H + +#include +#include "global.h" +#include "subMenu.h" +#include "x86render.h" + +/* Menu Header */ + +void fadeColor(); +void fadeSet(); +void fadeClear(); +void cursorAdjust(); + +void mineScale(); +void execute(); + +#define boxPos (offset + row) + + +/* Menu Header */ + +/* Menu Data */ + + + +// struct menuBlock { +// uint8_t type; +// uint8_t color; + +// uint8_t min; +// uint16_t max; + +// void* pointer; +// void* function; +// } +// menuBlock[64]; + + +//255 Quit, 127-254 Special Event +//128 start game, 180 random game mode, 190 main menu update fps + +//Binaries, nothing to see here, please back away now... + + + + +void blockText(uint8_t block, uint8_t y) { //Commonly used code + gColor = 0; + //uint16_t t = textIndex[boxIndex[block]]; + + uint8_t x = 20; + for (uint16_t s = textIndex[boxIndex[block]]; s < textIndex[boxIndex[block + 1]]; s++) { + if (sourceText[s] == 33) { //New Line + //text6x8(x, y, 17); //17 lolololololololololololololol + y += 24; + x = 20; + } else { + text6x8(x, y, sourceText[s]); + x += 7; + } + } +} + +#define GWI 22 //Game Width Index //Was intended to automatically enable and disable the cursor +/*void cursorAdjust() { + blockMax[GWI] = cursorAllow == 1 ? 27 : 52; + if (*blockPointer[GWI] > blockMax[GWI]) { + *blockPointer[GWI] = blockMax[GWI]; + } +}*/ + +/* Fade Effect */ +uint16_t* fColor; +uint8_t fR; +uint8_t fG; +uint8_t fB; +uint8_t fRMin; +uint8_t fGMin; +uint8_t fBMin; +uint8_t fRMax; +uint8_t fGMax; +uint8_t fBMax; +uint8_t phase = 0; +void fadeClear() { + fColor = paletteRAM; + fColor += (row + 0xF0); + *fColor = initialPalette[boxColor[row + offset]]; +} +#define darkMax 6 +void fadeSet() { + fColor = paletteRAM; + fColor += (row + 0xF0); + fR = (*fColor >> 10) & 31; + fG = (*fColor >> 5) & 31; + fB = (*fColor) & 31; + + fRMin = (fR << 1) / 5; // * 2/5 + fRMax = (fR << 3) / 5; // * 8/5 + if (fRMax < darkMax) { fRMax = darkMax;} + if (fRMax > 31) { fRMax = 31;} + + fGMin = (fG << 1) / 5; // * 2/5 + fGMax = (fG << 3) / 5; // * 8/5 + if (fGMax <= darkMax) { fGMax = darkMax;} + if (fGMax > 31) { fGMax = 31;} + + fBMin = (fB << 1) / 5; // * 2/5 + fBMax = (fB << 3) / 5; // * 8/5 + if (fBMax <= darkMax) { fBMax = darkMax;} + if (fBMax > 31) { fBMax = 31;} + // printUInt(fColor,6,16,2,56); + // printUInt(*fColor,4,16,2,64); +} +#define fadeSpeed 16383 +#define fadeSplit 8191 +#define fadeShift 5 + +// uint8_t fCycle = 0; +// uint24_t fTimer = 0; +void fadeColor() { + if (((uint24_t)systemTime & fadeSpeed) <= fadeSplit) { + phase = ((uint24_t)systemTime & fadeSplit) >> fadeShift; + } else { + phase = 255 - (((uint24_t)systemTime & fadeSplit) >> fadeShift); + } + + // printUInt(phase,2,16,2,80); + fR = linear0(fRMin,fRMax,255,phase); + fG = linear0(fGMin,fGMax,255,phase); + fB = linear0(fBMin,fBMax,255,phase); + // printUInt(fR,2,10,2,96); + // printUInt(fG,2,10,2,104); + // printUInt(fB,2,10,2,112); + + // printUInt(select,2,10,2,132); + // printUInt(number,3,10,2,140); + *fColor = ((fR << 10) | (fG << 5) | fB); +} +/* Fade Effect */ + +u16 getNumber(u16 index) { + if (boxMax[index] < 255) { + return *(uint8_t*)boxPointer[index]; + } else { + return *(uint16_t*)boxPointer[index]; + } +}; +void setNumber(u16 index, u16 value) { + if (boxMax[index] < 255) { + *(uint8_t*)boxPointer[index] = (uint8_t)value; + } else { + *(uint16_t*)boxPointer[index] = (uint16_t)value; + } +}; + +void buildMenu() { + + gColor = 15; + fillScreen(); + uint24_t j = 20; + uint8_t pColor = 0xF0; + for (row = 0; row < menuRows[sector]; row++) { + gColor = boxColor[boxPos]; + initialPalette[pColor] = initialPalette[gColor]; + paletteRAM[pColor] = initialPalette[gColor]; + gColor = pColor; + // if (select != 0) { + // gColor = blockColor[select + offSec]; + // } else { + // gColor = 16; + // } + fillRect(16, j - 4, 196, 16); + + if (boxType[boxPos] & Value) { + gColor = 0; + text6x8(202, j, 29); //>> + uint16_t value = getNumber(boxPos); + text6x8(195, 20 + (24 * row), (value % 10)); + text6x8(188, 20 + (24 * row), ((value / 10) % 10)); + if (boxMax[boxPos] < 100) { + text6x8(181, j, 28); //<< + } else { + text6x8(181, 20 + (24 * row), ((value / 100))); //Unexpected above 2599 + text6x8(174, j, 28); //<< + } + } + if (boxType[boxPos] & BoolToggle) { + gColor = row + 0xF0; + fillRect(202, j, 6, 8); + gColor = 0; + if (boxMax[boxPos] < 255) { + if (*(uint8_t*)boxPointer[boxPos] == boxMax[boxPos]) { + text6x8(202, j, 50); + } else { + text6x8(202, j, 49); + } + } else { + if (*(uint16_t*)boxPointer[boxPos] == boxMax[boxPos]) { + text6x8(202, j, 50); + } else { + text6x8(202, j, 49); + } + } + } + // if (blockType[select + offSec]) { + // gColor = 0; + // text6x8(202, j + 4, 29); //>> + // text6x8(195 - dots * 5, j + 4, 28); //<< + // uint8_t dX = 202 - dots * 5; //8bit since it will be less than 255 + // uint8_t dY = j + 7; //(j + 4) + 3 + // for (uint8_t e; e < dots; e++) { + // fillRect(dX,dY,2,2); + // dX += 5; + // } + // fillRect(201 - value * 5, j + 6 ,4,4); //Highlighted one + // } + + pColor++; + j += 24; + } + row = 0; + gColor = 0; + blockText(sector,20); + + //fillRect(247,120,30,65); //Was Green + fadeClear(); + fadeSet(); + if (menuFunction[sector] != 0) { + (*menuFunction[sector])(); + } +} + +void scroll() { + // gColor = blockColor[number]; + // fillText(16, 16 + (24 * select), 196, 16); + if (kb_Data[7] & kb_Down) { + row++; + if (row == menuRows[sector]) { + row = 0; + } + } else if (kb_Data[7] & kb_Up) { + if (row == 0) { + row = menuRows[sector]; + } + row--; + } + // gColor = 16; + // fillText(16, 16 + (24 * select), 196, 16); +} + +/* +//Unfinished +void slideReset() { + fillRect(201 - value * 5, 20 + (24 * select), 4, 4); //Clear + fillRect(202 - value * 5, 21 + (24 * select),2,2); //Reset + fillRect(201 - value * 5, yCord, 4, 4); //Highlight +} +void slideHL() { + fillRect(201 - value * 5, 20 + (24 * select), 4, 4); //Highlight +} +*/ + +void dial(uint16_t boxOffset, uint8_t boxRow) { //uint8_t src, uint8_t des + uint16_t box = boxOffset + boxRow; + uint24_t yCord = 20 + (24 * row); + u16 value = getNumber(box); + if ((kb_Data[7] & kb_Right)) { //Right + if (value == boxMax[box]) { + value = boxMin[box]; + } else { + value++; + } + } else if (kb_Data[7] & kb_Left) { //Left + if (value == boxMin[box]) { + value = boxMax[box]; + } else { + value--; + } + } + setNumber(box,value); + + if ((boxType[box] & F) && boxFunction[box] != NULL) { //Function + (*boxFunction[box])(); + } + + gColor = boxRow + 0xF0; //16 + fillRect(188, yCord, 13, 8); + if (boxMax[box] > 99) { + fillRect(181, yCord, 6, 8); + gColor = 0; + text6x8(181, yCord, ((value / 100))); //Undefined Behaviour above 2599 + } + gColor = 0; + text6x8(195, yCord, (value % 10)); + text6x8(188, yCord, ((value / 10) % 10)); +} + +void button(uint16_t box) { + (*boxFunction[box])(); +} + +void buttonToggle(uint16_t index) { + gColor = row + 0xF0; + fillRect(202, 20 + (24 * row), 6, 8); + gColor = 0; + if (boxMax[index] < 255) { + if (*(uint8_t*)boxPointer[index] == boxMax[index]) { + *(uint8_t*)boxPointer[index] = boxMin[index]; + text6x8(202, 20 + (24 * row), 49); // O + } else { + *(uint8_t*)boxPointer[index] = boxMax[index]; + text6x8(202, 20 + (24 * row), 50); // X + } + } else { + if (*(uint16_t*)boxPointer[index] == boxMax[index]) { + *(uint16_t*)boxPointer[index] = boxMin[index]; + text6x8(202, 20 + (24 * row), 49); // O + } else { + *(uint16_t*)boxPointer[index] = boxMax[index]; + text6x8(202, 20 + (24 * row), 50); // X + } + } +} + +void menuLoop() { + //Setup + buildMenu(); + //Code + + while (status == OKAY || 1 == 1) { + keyPress(); if (status != OKAY) { return; } //KeyPress + + fadeColor(); + if (kb_Data[7] & (kb_Up | kb_Down)) { + if (keyReady & VERT) { + keyReset(vERT); + fadeClear(); + scroll(); + fadeSet(); + } + } + if (kb_Data[7] & (kb_Left | kb_Right)) { + if ((keyReady & HORIZ) && (boxType[boxPos] & Value)) { + keyReset(hORIZ); + fadeClear(); + dial(offset, row); + fadeSet(); + } + } + if ((kb_Data[2] & kb_Alpha) || (kb_Data[6] & kb_Enter)) { + if ((keyReady & ALPHA) && (boxType[boxPos] & Click)) { + keyReset(aLPHA); + if (boxType[boxPos] & BoolToggle) { //Button Toggle + buttonToggle(boxPos); + } + if (boxFunction[boxPos] != NULL) { + button(boxPos); //Button + } + if (boxType[boxPos] & Direct) { //Direct + sector = boxDirect[boxPos]; + offset = boxIndex[boxDirect[boxPos]]; + row = 0; + buildMenu(); + } + } + } + if (kb_Data[1] & kb_2nd) { + if (keyReady & SECOND) { + offset = boxIndex[menuBack[sector]]; //Different order is intentional, otherwise it will summon the RAINBOW OF ULTIMATE DOOM!!! + sector = menuBack[sector]; + row = 0; + buildMenu(); + } + } + if (keyReady & OTHER) { + + } + if (keyReady & DEBUG) { + + } + if (kb_Data[1] & kb_Del) { + return; //Quit + } + }; + + //Reset +} + +#endif /* MENU_H */ \ No newline at end of file diff --git a/src/mineSweeper.h b/src/mineSweeper.h new file mode 100644 index 0000000..61a55cd --- /dev/null +++ b/src/mineSweeper.h @@ -0,0 +1,1275 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef MINESWEEPER_H +#define MINESWEEPER_H + +#include "prime2D.h" +#include "global.h" +#include +#include +#include "gameMenu.h" +#include "x86render.h" +//#include + +#define borderIndexes 2 +//Graphic numbers +#define gMine 25 +#define gFlag 26 +#define gQuestion 27 + +#define currentTime (systemTime - gameStartTime - gamePauseTime) +void gameControl(); //Temporary May 23 + +/* +//legacy +const uint8_t seg7[18] = {0b1011111,0b0000011,0b1110110,0b1110011,0b0101011,0b1111001,0b1111101,0b1000011,0b1111111,0b1111011,0b1101111,0b0111101,0b1011100,0b0110111,0b1111100,0b1101100,0b0000000,0b0100000}; +//Characters: HEX,_,- +void displaySeg7(uint24_t i, uint8_t d, uint8_t b, uint24_t x, uint24_t y) { //Number, Digits, X-2, Y-2 + //Colors: 24/25/26/27 + uint24_t pow = 1; + uint24_t z = (uint24_t)VRAM + y * 320; //Constant offset + x += ((d << 3) + d) - 9; //d * 9 - 9 == 9 * (d - 1) + for (uint8_t n = 0; n < d; n++) { //Since d was decremented + uint8_t j = (i / pow) % b; + gColor = (seg7[j] & 64) ? 24 : 25; + if (gColor ^ (z + x + (0*320+1))) { //Checks for change in color + horiz(x+1,y,6); + horiz(x+2,y+1,4); + } + gColor = (seg7[j] & 32) ? 24 : 25; + if (gColor ^ (z + x + (6*320+2))) { + horiz(x+2,y+6,4); + horiz(x+1,y+7,6); + horiz(x+2,y+8,4); + } + gColor = (seg7[j] & 16) ? 24 : 25; + if (gColor ^ (z + x + (13*320+2))) { + horiz(x+2,y+13,4); + horiz(x+1,y+14,6); + } + gColor = (seg7[j] & 8) ? 24 : 25; + if (gColor ^ (z + x + (1*320+0))) { + vert(x,y+1,6); + vert(x+1,y+2,4); + } + gColor = (seg7[j] & 4) ? 24 : 25; + if (gColor ^ (z + x + (8*320+0))) { + vert(x,y+8,6); + vert(x+1,y+9,4); + } + x += 6; + gColor = (seg7[j] & 2) ? 24 : 25; + if (gColor ^ (z + x + (8*320+0))) { + vert(x,y+2,4); + vert(x+1,y+1,6); + } + gColor = (seg7[j] & 1) ? 24 : 25; + if (gColor ^ (z + x + (8*320+0))) { + vert(x,y+9,4); + vert(x+1,y+8,6); + } + x -= 15; + pow *= b; //base + } +}*/ + +uint8_t alphaBind() { + if (swapAlphaSecondBind == 0) { + if ((kb_Data[2] & kb_Alpha)) { + return 1; + } + } else { + if ((kb_Data[1] & kb_2nd)) { + return 1; + } + } + return 0; +} +uint8_t secondBind() { + if (swapAlphaSecondBind == 0) { + if ((kb_Data[1] & kb_2nd)) { + return 1; + } + } else { + if ((kb_Data[2] & kb_Alpha)) { + return 1; + } + } + return 0; +} + +enum tileStates {sHIDDEN = 0, sCLEARED = 1, sVOID = 255}; +enum tileDrawCodes {tCLEAR = 0, tSELECT = 1, tFLAG = 2}; +enum tileFlagCodes {fBLANK = 0, fFLAG = 1, fQUESTION = 2}; + +struct dataSeg7 { + uint8_t digits; + uint24_t x; + uint24_t y; + uint8_t offC; + uint8_t onC; +}; + +struct dataSeg7 timeLCD; +struct dataSeg7 scoreLCD; +struct dataSeg7 flagLCD; + +const uint8_t seg7[18] = { + 0b1011111,0b0000011,0b1110110,0b1110011,0b0101011,0b1111001,0b1111101,0b1000011,0b1111111,0b1111011,0b1101111,0b0111101,0b1011100,0b0110111,0b1111100,0b1101100,0b0000000,0b0100000 +}; +//Characters: HEX,_,- +//void displaySeg7(uint24_t i, uint8_t d, uint8_t b, uint24_t x, uint24_t y) { //Number, Digits, X-2, Y-2 +void displaySeg7(uint24_t i, uint8_t b, struct dataSeg7* lcd) { //Number, Digits, X-2, Y-2 + //Colors: 24/25/26/27 + uint24_t x = lcd->x; + uint24_t y = lcd->y; + uint8_t d = lcd->digits; + uint8_t hi = lcd->onC; + uint8_t lo = lcd->offC; + + uint24_t pow = 1; + uint24_t z = (uint24_t)((size_t)VRAM) + y * 320; //Constant offset + x += ((d << 3) + d) - 9; //d * 9 - 9 == 9 * (d - 1) + for (uint8_t n = 0; n < d; n++) { //Since d was decremented + uint8_t j = seg7[(i / pow) % b]; + gColor = (j & 64) ? hi : lo; + if (gColor ^ (z + x + (0*320+1))) { //Checks for change in color + horiz(x+1,y,6); + horiz(x+2,y+1,4); + } + gColor = (j & 32) ? hi : lo; + if (gColor ^ (z + x + (6*320+2))) { + horiz(x+2,y+6,4); + horiz(x+1,y+7,6); + horiz(x+2,y+8,4); + } + gColor = (j & 16) ? hi : lo; + if (gColor ^ (z + x + (13*320+2))) { + horiz(x+2,y+13,4); + horiz(x+1,y+14,6); + } + gColor = (j & 8) ? hi : lo; + if (gColor ^ (z + x + (1*320+0))) { + vert(x,y+1,6); + vert(x+1,y+2,4); + } + gColor = (j & 4) ? hi : lo; + if (gColor ^ (z + x + (8*320+0))) { + vert(x,y+8,6); + vert(x+1,y+9,4); + } + x += 6; + gColor = (j & 2) ? hi : lo; + if (gColor ^ (z + x + (8*320+0))) { + vert(x,y+2,4); + vert(x+1,y+1,6); + } + gColor = (j & 1) ? hi : lo; + if (gColor ^ (z + x + (8*320+0))) { + vert(x,y+9,4); + vert(x+1,y+8,6); + } + x -= 15; + pow *= b; //base + } +} + +void buildSeg7(uint24_t input, uint8_t base, struct dataSeg7* lcd, uint8_t digits, uint24_t x, uint24_t y, +uint8_t bgC, uint8_t borC, uint8_t offC, uint8_t onC) { //Number, Digits, Base, x, y, ptr, Colors: backGround, border, off, on + gColor = borC; //27 + uint24_t u = digits * 9 + 2; + horiz(x,y,u); + horiz(x,y+18,u+1); + vert(x,y,18); + vert(x+u,y,18); + gColor = bgC; //26 + fillRect(x+1,y+1,u-1,17); + lcd->digits = digits; + lcd->x = x + 2; //Offset of where the number graphic is + lcd->y = y + 2; + lcd->offC = (accessMode == 1) ? 0x00 : offC; + lcd->onC = onC; + displaySeg7(input,base,lcd); +} + +void quake() { + if (accessMode == 0) { //Remove this + delay32K(32768/15); //Waits 32768Hz / FPS + uint24_t shake; + int8_t amount = chance / 3; + if (amount < 12) { + amount = 12; + } + if (amount > 90 || chance > 255) { + amount = 90; + } + + for (uint8_t i = 0; i < amount; i++) { + shake = 0xD40000 - (2560 * 3) - (8 * 3); + shake += 8 * (rand() % 7); + shake += 2560 * (rand() % 7); + *frameBase = shake; + delay32K(32768/20); + } + *frameBase = 0xD40000; + delay32K(32768/2); + } else { + delay32K(24576); // 0.75 seconds + } +} + +enum expressionCode { eHAPPY = 0, eSAD = 1, eNULL = 2, eCHORD = 3, eNORMAL = 4, eSHADES = 5, eXX = 6, eSLEEP = 7 }; +void expression(unsigned char e) { //Updates the smiley face + if (e < 4) { //0-3 + gColor = 2; + fillRect(156, 12, 7, 3); //y2 = 3 because of chordCheck + gColor = 0; + if (e == eHAPPY) { //Happy + horiz(157, 13, 5); + plot(156, 12); + plot(162, 12); + return; + } + if (e == eSAD) { //Sad + horiz(157, 12, 5); + plot(156, 13); + plot(162, 13); + return; + } + if (e == eNULL) { //Null + horiz(156, 13, 7); + return; + } + if (e == eCHORD) { //Chord + gColor = 2; + fillRect(156,12,7,2); + gColor = 0; + fillRect(158,12,3,3); + return; + } + } else if (e < 8) { //4-7 + gColor = 10; + plot(143,4); //Clears potential sunglasses + gColor = 2; + fillRect(156, 5, 7, 4); + gColor = 0; + if (e == eNORMAL) { //Normal + vert(157, 7, 2); + vert(161, 7, 2); + return; + } + if (e == eSHADES) { //Sunglasses + fillRect(156, 7, 7, 2); + gColor = 2; + plot(159, 8); + gColor = 0; + plot(162, 6); + plot(163, 5); + plot(156, 6); + plot(157, 5); + return; + } + if (e == eXX) { //XX + plot(156,6); + plot(156,8); + plot(157,7); + plot(158,6); + plot(158,8); + + plot(160,6); + plot(160,8); + plot(161,7); + plot(162,6); + plot(162,8); + return; + } + if (e == eSLEEP) { //Sleep + horiz(156, 8, 2); + horiz(161, 8, 2); + return; + } + } +} + +void flash() { //uint8_t x + for (uint8_t j = 0; j < 32; j++) { + uint32_t flashTime = timer_Get(1); + uint8_t i = 0; + for (uint16_t *f = paletteRAM; f < paletteRAM + 0x100; f++) { + *f = (linear0((initialPalette[i] >> 10) & 31, 31, 31, j) << 10) + (linear0((initialPalette[i] >> 5) & 31, 31, 31, j) << 5) + (linear0(initialPalette[i] & 31, 31, 31, j)); + i++; + } + while (deltaTime(timer_Get(1),flashTime) < 1536); + } +} + +void flagDraw(uint8_t symbol, uint24_t xP, uint24_t yP) { + gColor = accessMode ? 0 : color[symbol]; + symbol <<= 1; + uint16_t bitImage0 = char5x5[symbol]; + uint16_t bitImage1 = char5x5[symbol + 1]; + uint8_t* z = (uint8_t*)VRAM + (yP * 320 + xP); + for (uint24_t y = 0; y < 5; y++) { + for (uint24_t x = 0; x < 5; x++) { + if (bitImage0 & 1) { + *z = gColor; + } + z += 960; + if (bitImage1 & 1) { + *z = gColor; + } + bitImage0 >>= 1; + bitImage1 >>= 1; + z -= 959; // 960 - 1 + } + z += 315; // 320 - 5; + } +} + +/* +//Legacy, keep this function around +void flagCount() { + gColor = 15; + for (int24_t z = 15; z <= 35; z += 10) { //Flag Counter + fillRect(z, 5, 7, 7); + } + gColor = 0; + if (flags >= 100) { + flagDraw(flags / 100 % 10,17,7); + } else if (flags <= -10){ + gColor = 0; + horiz(17, 9, 5); + } + if (flags >= 10 || flags <= -10) { + flagDraw(abs(flags) / 10 % 10,27,7); + } else if (flags < 0 && flags >= -9) { + gColor = 0; + horiz(27, 9, 5); + } + flagDraw(abs(flags) % 10,37,7); +} +*/ + +//uint8_t lcdColor[20] = {0x60}; //0x70 +// flagLCD.onC = color[((plags / 100) % 10)] & 7; +// flagLCD.offC = color[((plags / 100) % 10)] | 8; + +//Slow, but its the only way to do signed flag counts for now +void flagCount() { //Add a color number mode for nostalga + uint16_t plags = abs(flags); + flagLCD.x = 11; + if (flags >= 100) { + displaySeg7((plags / 100) % 10, 10, &flagLCD); + } else if (flags <= -10){ + displaySeg7(17, 18, &flagLCD); + } else { + displaySeg7(16, 17, &flagLCD); + } + flagLCD.x = 20; + if (flags >= 10 || flags <= -10) { + displaySeg7((plags / 10) % 10, 10, &flagLCD); + } else if (flags < 0 && flags >= -9) { + displaySeg7(17, 18, &flagLCD); + } else { + displaySeg7(16, 17, &flagLCD); + } + flagLCD.x = 29; + displaySeg7(plags % 10, 10, &flagLCD); +} + +void glyph(int16_t space, uint8_t symbol) { + gColor = color[symbol]; + if (symbol == gFlag) { + if (~fontSize & 1 || fontSize == 0) { //0,1,3,5 + gColor = 22; //Changes flag pole color to be more readable + } + } + if (font == 2) { //6x8 Font + uint8_t* bitImage = (uint8_t*)char6x8 + (symbol * 6); + uint8_t* z = (uint8_t*)VRAM + ((space / marX * disY + posY + padY) * 320 + (space % marX * disX + posX + padX)); + uint8_t b = 1; + for (uint8_t y = 0; y < 8; y++) { + for (uint8_t x = 0; x < 6; x++) { + *z = *bitImage & b ? gColor : *z; + bitImage++; + z++; + } + bitImage -= 6; + z += 314; // 320 - 6 + b <<= 1; + } + + if (symbol == 26) { + gColor = flagColor; + fillRect(space % marX * disX + posX + padX, space / marX * disY + posY + padY + 1, 3, 3); + } else if (symbol == 25) { + //gColor = 7; + z -= 1918; // -320*6 + 2 + *z = 7; // 2,2 // White + z += 319; //320 - 1 + *z = 7; // 1,3 // White + } + return; + } else if (font == 1) { //5x5 Font + symbol <<= 1; + uint16_t bitImage0 = char5x5[symbol]; + uint16_t bitImage1 = char5x5[symbol + 1]; + // uint24_t z0 = VRAM + ((space / marX * disY + posY + padY) * 320 + (space % marX * disX + posX + padX)); + // uint24_t z1 = z0 + 960; + uint8_t* z = (uint8_t*)VRAM + ((space / marX * disY + posY + padY) * 320 + (space % marX * disX + posX + padX)); + for (uint24_t y = 0; y < 5; y++) { + for (uint24_t x = 0; x < 5; x++) { + if (bitImage0 & 1) { + *z = gColor; + } + z += 960; + if (bitImage1 & 1) { + *z = gColor; + } + bitImage0 >>= 1; + bitImage1 >>= 1; + z -= 959; // 960 - 1 + } + z += 315; // 320 - 5; + } + if (symbol == 52) { + gColor = flagColor; + fillRect(space % marX * disX + posX + padX, space / marX * disY + posY + padY, 2, 2); + } else if (symbol == 50) { + //gColor = 7; + z -= 1279; // -320*4 + 1 + *z = 7; // 1,1 // White + } + return; + } + //3x5 Font + uint16_t bitImage = char3x5[symbol]; + uint8_t* z = (uint8_t*)VRAM + ((space / marX * disY + posY + padY) * 320 + (space % marX * disX + posX + padX)); + for (uint24_t y = 0; y < 5; y++) { + for (uint24_t x = 0; x < 3; x++) { + if (bitImage & 1) { + *z = gColor; + } + bitImage >>= 1; + z++; + } + z += 317; // 320 - 3 + } + if (symbol == gFlag) { + gColor = flagColor; + fillRect(space % marX * disX + posX + padX, space / marX * disY + posY + padY, 2, 2); + } + return; +} + +void fillTile(int16_t space, int8_t mode) { + gColor = 15; //grey + if (state[space] == 0) { + + if (mode == tSELECT) { gColor = 16; } + fillRect(space % marX * disX + 1 + posX, space / marX * disY + 1 + posY, disX - 3, disY - 3); + if (flag[space] == 1) {glyph(space, gFlag);} else if (flag[space] == 2) {glyph(space, gQuestion);} + + } else { + + if (board[space] == gMine) { + autoLoss = 1; + gColor = mode == tCLEAR ? 0x17 : 0x01; //Dark red if mine is not highlighted, Bright red if mine is highlighted + } else { + gColor = mode == tSELECT ? 0x10 : 0x0F; + } + fillRect(space % marX * disX + posX, space / marX * disY + posY, disX - 1, disY - 1); + //fillRect(tile % marX * disX + posX, tile / marX * disY + posY, disX - 1, disY - 1); + if (board[space] > 0) { glyph(space, board[space]); } + + } +} + +uint24_t item = 0; //U16 +uint24_t max = 0; //U16 +void floodFill() { + search[item] = tile; + max++; + do { + uint24_t target = search[item]; + int24_t u; + int24_t v; + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; + v = order[offPos + i + 1]; + const uint24_t square = target + (v * marX) + u; + if (board[square] != 255 && state[square] != 1) { //If tile is not out of bounds and not cleared yet + state[square] = 1; + cleared++; + score += 12; + if (board[square] == 0) { + search[max] = square; + max++; + } + fillTile(square, 0); + if (flag[square] == 1) { + flags++; + score -= 10; + flag[square] = 0; + } + } + } + item++; + } while (search[item] != 0); +} + +/* +// Attempt at making it faster +bool mineCheck(int24_t tileM) { + if (tileM == tile) { + return true; + } + if (safeGuess == 2) { + int8_t* u = order + offPos; + int8_t* v = order + offPos + 1; + for (uint8_t i = 0; i < offLen; i += 2) { + u += 2; + v += 2; + if ((tile + (*v * marX) + *u) == tileM) { + return true; + } + } + u = order; + v = order + 1; + if (gameMode == 3 || gameMode == 9) { + for (uint8_t i = 0; i < 8; i++) { + u += 2; + v += 2; + if ((tile + (*v * marX) + *u) == tileM) { + return true; + } + } + } + + } + return false; +} +*/ + + +// Legacy +bool mineCheck(int24_t tileM) { + if (tileM == tile) { + return true; + } + if (safeGuess != 0) { + int24_t u; + int24_t v; + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; //Probably more memory effeicent than an algorithm + v = order[offPos + i + 1]; + if ((tile + (v * marX) + u) == tileM) { + return true; + } + } + if ((gameMode == 3 || gameMode == 9) && safeGuess == 2) { + for (uint8_t i = 0; i < 8; i++) { + u = order[i]; //Probably more memory effeicent than an algorithm + v = order[i + 1]; + if ((tile + (v * marX) + u) == tileM) { + return true; + } + } + } + } + return false; +} + +void mineGenerate() { + srand(seed); + uint24_t z; + for (uint24_t i = 0; i < chance; i++) { + do { + z = (((rand() % sizeY) + borderIndexes) * marX) + (rand() % sizeX) + borderIndexes; + } while (board[z] == 25 || mineCheck(z)); + board[z] = 25; + } + + for (uint8_t y = borderIndexes; y < marY - borderIndexes; y++) { + for (uint8_t x = borderIndexes; x < marX - borderIndexes; x++) { + if (board[y * marX + x] != 25) { + uint8_t count = 0; + int24_t u; + int24_t v; + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; + v = order[offPos + i + 1]; + if (board[(y + v) * marX + (x + u)] == 25) { + count++; + } + } + board[y * marX + x] = count; + } + } + } +} + + +/* +// Attempt at making it constant time O(1) +void mineGenerate() { + + srand(seed); + const uint24_t sizeZ = sizeX * sizeY; + + //fillMemory(25,flag,chance); //ASM LDIR + + uint8_t* fill = flag; //Address of flag array + for (uint24_t i = 0; i < chance; i++) { //Slower because Clang is unware of LDIR + *fill = 25; + fill++; + } + + uint8_t temp; + uint24_t swap; + + for (uint24_t i = 0; i < sizeZ; i++) { //Random Shuffle + swap = rand() % sizeZ; + temp = flag[i]; + flag[i] = flag[swap]; + flag[swap] = temp; + } + + uint8_t* aux = flag; + uint8_t* grid = board + border + (marX * border); + for (uint8_t y = 0; y < sizeY; y++) { + for (uint8_t x = 0; x < sizeX; x++) { + if (*grid != 30) { + *grid = *aux; + aux++; + } else { + printUInt(grid - board,6,16,2,72); + printUInt(*grid,4,10,2,81); + printUInt(aux - flag,6,16,2,99); + printUInt(*aux,4,10,2,108); + } + grid++; + } + grid += (border * 2); + } + + fill = flag; + for (uint24_t i = 0; i < 52*27; i++) { // Resets flag array + *fill = 0; + fill++; + } + + for (uint8_t y = border; y < marY - border; y++) { + for (uint8_t x = border; x < marX - border; x++) { + if (board[y * marX + x] != 25) { + uint8_t count = 0; + int24_t u; + int24_t v; + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; + v = order[offPos + i + 1]; + if (board[(y + v) * marX + (x + u)] == 25) { + count++; + } + } + board[y * marX + x] = count; + } + } + } +} +*/ + +void chord() { + *lcd_CrsrX = ((tile % marX) - 2) * disX + posX; + *lcd_CrsrY = ((tile / marX) - 2) * disY + posY; +} +uint8_t gridType[25]; +void cursorSetup() { + //memcpy(lcd_CrsrImage, chordImage, 1024); + //uint8_t* ci = (uint8_t*)lcd_CrsrImage; + /* //Crashes calculator and maybe broken + for (uint24_t i = 0; i < 1024; i++) { + *ci = 0b10101010; //Transparent + ci++; + } + */ + for (uint8_t i = 0; i < offLen; i += 2) { //Generates fill grid from search pattern + int8_t u = order[offPos + i]; + int8_t v = order[offPos + i + 1]; + gridType[12 + u + (v * 5)] = 0b00000011; + } + gridType[12] = 0b01; + + uint8_t dX = (disX * 5) - 1; + uint8_t dY = (disY * 5) - 1; + uint8_t* i = (uint8_t*)lcd_CrsrImage; + uint8_t v = 0; + for (uint8_t y = 0; y < dY; y++) { //Fills 2bit grid + if (y % disY == disY - 1) { + i += 16; + v += 5; + } else { + uint8_t u = 0; + for (uint8_t x = 0; x < 64; x += 4) { + uint8_t g = 0; + for (uint8_t z = 0; z < 4 && (z + x < dX); z++) { + if ((x + z) % disX != disX - 1) { + //g |= (gridType[((y / disY) * 5) + (x / disX)] << 5) >> z; + g |= (gridType[u + v] << 6) >> (z << 1); + } else { + u++; + } + } + *i |= g; + i++; + } + } + } + + *lcd_CrsrCtrl = 0x00000000; // enable cursor + *lcd_CrsrPalette0 = 0x00FFBF00; //24bit 888 BGR + *lcd_CrsrPalette1 = 0x000000FF; + // *lcd_CrsrXY = 0; // reset cursor position + chord(); + *lcd_CrsrClip = 0; // reset clipping + *lcd_CrsrConfig = 0x00000001; + *LCDTiming2 = (uint32_t)(*LCDTiming2 & ~(uint32_t)0x03FF0000) | (uint32_t)(320 - 1) << 16; //Set CPL +} + +void drawGame() { + + gColor = 17; + //gColor = findColor888(0x00,0x70,0x70); //Failed test + fillScreen(); //Cyan + if (fadeEffect > 0) { + if (fadeEffect == 1) { + uint16_t *fP = paletteRAM; + fP += 18; + for (uint24_t i = 18; i < 22; i++) { + *fP = 330; + fP++; + initialPalette[i] = 330; + } + } + for (uint24_t rY = 4; rY < 240; rY += 32) { + for (uint24_t rX = 4; rX < 320; rX += 32) { + gColor = 18; + text6x8(rX, rY, 25); + gColor = 19; + text6x8(rX + 16, rY, 26); + gColor = 20; + text6x8(rX, rY + 16, 30); + gColor = 21; + text6x8(rX + 16, rY + 16, 31); //116 inverted flag + vert(rX + 15, rY + 16, 8); + vert(rX + 22, rY + 16, 8); + } + } + } + + gColor = (15); //Fill Sqaures + for (int24_t y = 2; y < marY - 2; y++) { + for (int24_t x = 2; x < marX - 2; x++) { + fillRect(x * disX + posX + 1, y * disY + posY + 1, disX - 2, disY - 2); + } + } + /*for (uint24_t x = 5; x < 55; x += 10) { // Flag Squares + fillRect(x, 5, 9, 9); + }*/ //Don't delete me + //Shaded Lines + for (int24_t i = (disX * 2) + posX; i < disX * (marX - 2) + posX; i += disX) { + gColor = (7); + vert(i, (disY * 2) + posY, disY * (sizeY) - 1); + gColor = (0); + vert(i + disX - 2, (disY * 2) + posY, disY * (sizeY) - 1); + } + for (int24_t i = (disY * 2) + posY; i < disY * (marY - 2) + posY; i += disY) { + gColor = (7); + horiz((disX * 2) + posX, i, disX * (sizeX) - 1); + gColor = (0); + horiz((disX * 2) + posX, i + disY - 2, disX * (sizeX) - 1); + } + if (!(disX & 1)) { //% 2 + gColor = *videoMode & 2 ? 0x07 : 0x00; //Inverted Colors + vert(319, 0, 240); + } + //Border Lines + gColor = (8); + for (int24_t i = (disY * 2) - 1 + posY; i <= disY * (marY - 2) - 1 + posY; i += disY) { + horiz((disX * 2) - 1 + posX, i, disX * (sizeX) + 1); + } + for (int24_t i = (disX * 2) - 1 + posX; i <= disX * (marX - 2) - 1 + posX; i += disX) { + vert(i, (disY * 2) - 1 + posY, disY * (sizeY) + 1); + } + + /* + //UI Lines //Don't delete this + horiz(4, 4, 51); + horiz(4, 14, 51); + for (uint24_t i = 4; i < 64; i += 10) { + vert(i, 5, 9); + } + */ + /*{//Manually Draw Flag UI (Don't delete me) + uint16_t bitImage0 = char5x5[52]; + uint16_t bitImage1 = char5x5[53]; + uint16_t bitImage2 = char5x5[50]; + uint16_t bitImage3 = char5x5[51]; + uint24_t z0 = VRAM + (7 * 320) + 7; + uint24_t z1 = z0 + 960; + uint24_t z2 = VRAM + (7 * 320) + 47; + uint24_t z3 = z2 + 960; + gColor = 0; + for (uint24_t y = 0; y < 1600; y += 320) { + for (uint24_t x = 0; x < 5; x++) { + if (bitImage0 & 1) { + plotFast(z0 + y + x); + } + if (bitImage1 & 1) { + plotFast(z1 + y + x); + } + if (bitImage2 & 1) { + plotFast(z2 + y + x); + } + if (bitImage3 & 1) { + plotFast(z3 + y + x); + } + bitImage0 >>= 1; + bitImage1 >>= 1; + bitImage2 >>= 1; + bitImage3 >>= 1; + } + } + gColor = flagColor; + fillRect(7, 7, 2, 2); + gColor = 7; + plotFast(VRAM + (320 * 8) + 48); //x48 y8 + }*/ + + for (uint24_t x = 154; x <= 164; x++) { + for (uint24_t y = 5; y <= 15; y++) { + if ((x - 159) * (x - 159) + (y - 10) * (y - 10) < 36) { + gColor = 2; + plotFast(VRAM + y * 320 + x); + } + } + } + + expression(eNORMAL); + expression(eHAPPY); + + //GUI Counters + flagCount(); + /* Color numbers */ + buildSeg7(4912,18,&flagLCD,3,9,0,0x00,0x1B,0x81,0x80); //Flags 17^3 - 1 + flagLCD.digits = 1; + gColor = 0x1B; + fillRect(0,0,9,19); + fillRect(39,0,9,19); + flagCount(); + //Manual Symbol Draw + gColor = 0x00; + text6x8(2,1,gMine); + text6x8(40,1,gFlag); + gColor = 0x01; + fillRect(40,2,3,3); + gColor = 0x07; + plot(4,3); + plot(3,4); + /* Color numbers */ + + buildSeg7(104975,18,&timeLCD,4,224,0,0x00,0x1B,0x83,0x82); //Time 18^4 - 1 + buildSeg7(1889567,18,&scoreLCD,5,272,0,0x00,0x1B,0x85,0x84); //Score 18^5 - 1 + +} + +const uint8_t fontList[] = {24,16,6, 28,16,5, 35,19,4, 31,21,2, 39,27,2, 39,21,1, 39,27,0}; +void fontCheck() { //Plus 4 + uint8_t i = 7; + for (uint8_t j = 0; j < 24; j += 3) { + if (fontSize == i && (sizeX > fontList[j] || sizeY > fontList[j + 1])) { + fontSize = fontList[j + 2]; + } + i--; + } + font = fontArray[fontSize]; + disX = fontArray[fontSize + 8]; + disY = fontArray[fontSize + 16]; + padX = fontArray[fontSize + 24]; + padY = fontArray[fontSize + 32]; +} + +void resetGame() { + + //1: Board + marX = sizeX + 4; + marY = sizeY + 4; + fontSize = 7; // Resets font size to the largest available before doing the font check stuff + fontCheck(); //Fits font to screen size + + posX = 160 - (disX >> 1) * marX; //Allign game board + if (disX & 1) { //Special case of even distance X + posX -= marX >> 1; + } + posY = 21 - (disY * 2); + + for (int24_t i = 0; i < marX * marY; i++) { //Writes invalid spaces + board[i] = 255; + state[i] = 255; + search[i] = 0; + } + for (int24_t y = borderIndexes; y < marY - borderIndexes; y++) { //Clears arrays + for (int24_t x = borderIndexes; x < marX - borderIndexes; x++) { + uint24_t i = y * marX + x; + board[i] = 0; + state[i] = 0; + flag[i] = 0; + } + } + + //2: Reset + autoLoss = 0; + cheater = 0; + item = 0; //Resets the search pointer + max = 0; //Resets the search max + cleared = 0; //Resets the amount of cleared tiles + win = 1; //Enables winning again + score = 0; + gamePauseTime = systemTime; + offPos = orderPos[gameMode]; + offLen = orderPos[gameMode + 1] - orderPos[gameMode]; + if (chance > ((sizeX) * (sizeY)) / 2) { //Caps game at 50% mines + chance = ((sizeX) * (sizeY)) / 2; + } + flags = chance; + mines = chance; + tile = (marX * 7) + 7; //Initial tile + + //3: Graphics + drawGame(); + + //4: Cursor + if (cursorAllow) { + cursorSetup(); + } + + //5: Finalize + fillTile(tile, 1); //Color in select tile to show that setup is finished +} + +//8x8: 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111 ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 ,0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111 ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 ,0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111 ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 ,0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111 ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 ,0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111 ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 ,0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111, 0b11111111,0b11111111,0b11111111,0b10111111,0b11111111,0b11111111,0b11101111,0b11111111,0b11111111,0b11111011,0b11111111,0b11111111,0b11111110,0b11111111,0b11111111,0b11111111 ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 +//New Line: ,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010,0b10101010 + +uint8_t autoCheck = 0; +void autoChord() { + + if (state[tile] == 0) { + return; + } + int24_t u; + int24_t v; + uint8_t bC = 0; //Blank Count + uint8_t mC = 0; //Mine Count + uint8_t fC = 0; //Flag Count + uint24_t square; + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; + v = order[offPos + i + 1]; + square = tile + (v * marX) + u; + if (board[square] != 255) { //If tile is in bounds + if (board[square] == 25) { + mC++; + } + if (flag[square] == 1 || (board[square] == 25 && state[square] != 0)) { + fC++; + } + if (state[square] != 1 || board[square] == 25) { //== 0 + bC++; + } + } + } + + + if (fC == mC) { //Flag Chording, clears tiles + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; + v = order[offPos + i + 1]; + square = tile + (v * marX) + u; + if (board[square] != 255 && state[square] != 1 && flag[square] != 1) { //If tile is not out of bounds and not cleared yet + state[square] = 1; + //Floodfill + cleared++; + if (board[square] == 0) { + uint24_t tileAC = tile; + tile = square; + floodFill(); + tile = tileAC; + } + score += 10; + fillTile(square, tCLEAR); + autoCheck = 1; + } + } + } else if (board[tile] == mC && bC == mC) { //fC != mC //Tile Chording, places flags + for (uint8_t i = 0; i < offLen; i += 2) { + u = order[offPos + i]; + v = order[offPos + i + 1]; + square = tile + (v * marX) + u; + if (board[square] != 255 && state[square] != 1 && flag[square] != 1) { //If tile is not out of bounds and not cleared yet + flag[square] = 1; + flags--; + gColor = 15; + fillRect(square % marX * disX + 1 + posX, square / marX * disY + 1 + posY, disX - 3, disY - 3); + glyph(square, gFlag); + autoCheck = 1; + } + } + flagCount(); + } +} + +void autoSolve() { + cheater = 1; + uint24_t tileAS = tile; + for (uint8_t i = 0; i < autoSolver; i++) { //Genius Right? 1 if manual, 2 if auto haha + autoCheck = 0; + tile = marX * borderIndexes + borderIndexes; + for (uint8_t y = 0; y < sizeY; y++) { + for (uint8_t x = 0; x < sizeX; x++) { + autoChord(); + tile++; + } + tile += (borderIndexes * 2); + } + if (autoCheck != 0) { + i = 0; + } + } + tile = tileAS; +} + +uint8_t chordCheck = 0; +void gameLoop() { + //key = 99; //Prevents endless restart loop + do { + status = OKAY; + resetGame(); + gameControl(); + } while (status == RESTART); + if (status == QUIT) { + status = OKAY; + } + if (cursorAllow) { + lcd_CrsrConfig = 0x00000000; + *lcd_CrsrCtrl = 0x00000000; + *LCDTiming2 = (uint32_t)(*LCDTiming2 & ~(uint32_t)0x03FF0000) | (uint32_t)(240 - 1) << 16; + } +} + +void gameControl() { + while (status == OKAY) { + keyPress(); if (status != OKAY) { break; } + + if (cleared != 0) { //Time + displaySeg7(score,10,&scoreLCD); //Score + if (currentTime < 327680000) { // <10000 seconds or <2.78 Hours + displaySeg7(currentTime >> 15,10,&timeLCD); + } else { //Blinks after 9999 seconds + if ((uint24_t)systemTime & 16384) { + displaySeg7(104975,18,&timeLCD); //Time ---- 18^4 - 1 + } else { + displaySeg7(9999,10,&timeLCD); //Time 9999 + } + } + } else if (currentTime >= 327680000) { + displaySeg7(9999,10,&timeLCD); //Time 9999 + } + + if ((kb_Data[3] & kb_GraphVar) && cleared != 0 && keyReady & CHORD) { + keyReset(cHORD); + autoChord(); + } + + if (kb_Data[6] & kb_Power && cleared != 0 && keyReady & DEBUG && autoSolver) { + keyReset(dEBUG); + expression(eCHORD); + autoSolve(); + if (win) { + expression(eHAPPY); + } else { + expression(eSAD); + } + } + + if (cursorAllow) { + if (keyReady & CHORD) { + if ((kb_Data[3] & kb_GraphVar)) { + keyReset(cHORD); + *lcd_CrsrCtrl = 0x00000001; + expression(eCHORD); + chordCheck = 1; + } else if (chordCheck == 1) { + *lcd_CrsrCtrl = 0x00000000; + if (win) { + expression(eHAPPY); + } else { + expression(eSAD); + } + chordCheck = 0; + } + } + } + + if (kb_Data[7] && (keyReady & ARROW)) { //Checks that an arrow key was pressed + keyReset(aRROW); + + fillTile(tile, tCLEAR); //Clears Tile + + if (kb_Data[7] & kb_Up) { + if (board[tile - marX] != 255) { + tile -= marX; + } else { + tile += marX * (marY - 5); + } + } + if (kb_Data[7] & kb_Down) { + if (board[tile + marX] != 255) { + tile += marX; + } else { + tile -= marX * (marY - 5); + } + } + if (kb_Data[7] & kb_Left) { + if (board[tile - 1] != 255) { + tile--; + } else { + tile += (marX - 5); + } + } + if (kb_Data[7] & kb_Right) { + if (board[tile + 1] != 255) { + tile++; + } else { + tile -= (marX - 5); + } + } + if (cursorAllow) { + chord(); + } + + fillTile(tile, tSELECT); //Draws Tile + } + + if ((keyReady & ALPHA) && alphaBind()) { + keyReset(aLPHA); + + if (flag[tile] == fFLAG) { //Removes flag from tile and updates flag counters + flag[tile] = fBLANK; + flags++; + fillTile(tile, tSELECT); + flagCount(); + } else { + flag[tile] = fBLANK; //Clears fQUESTION to 0 + if (cleared == 0) { + // if (safeGuess == 1) { + // board[tile] = 30; + // } + // if (safeGuess == 2) { + // int24_t u; + // int24_t v; + // for (uint8_t i = 0; i < offLen; i += 2) { + // u = order[offPos + i]; + // v = order[offPos + i + 1]; + // board[tile + (v * marX) + u] = 30; + // } + // if (gameMode == 3 || gameMode == 9) { + // for (uint8_t i = 0; i < 8; i++) { + // u = order[i]; + // v = order[i + 1]; + // board[tile + (v * marX) + u] = 30; + // } + // } + // } + mineGenerate(); + gamePauseTime = 0; + gameStartTime= systemTime; + } + + if (state[tile] == sHIDDEN) { + cleared++; //Add uncleared tile to cleared counter + score += 10; + } + state[tile] = sCLEARED; + + if (board[tile] == gMine) { //If tile contains mine + + fillTile(tile, tFLAG); + //cleared--; + } else { + fillTile(tile,tSELECT); + if (board[tile] == 0) { // ZERO MINES FLOODVILLE TIME! + floodFill(); + flagCount(); + } + if (((sizeX) * (sizeY)) - mines - cleared == 0 && win) { //Win + expression(eSHADES); + *lcd_CrsrCtrl = 0x00000000; + flash(); + winScreen(); + } + } + } + + + } + + if (autoLoss == 1 && win == true) { + expression(eSAD); + *lcd_CrsrCtrl = 0x00000000; + quake(); + flash(); + gameOver(); + win = false; + } + + if (((keyReady & SECOND) && secondBind()) && state[tile] != sCLEARED) { //2nd + keyReset(sECOND); + if (flag[tile] == fFLAG) { //If there is a flag remove it + flag[tile] = fBLANK; + flags++; + } else if (flags > -99) { //I don't want to display -100 flags + flag[tile] = fFLAG; + flags--; + } + fillTile(tile, tSELECT); + flagCount(); + } + if (((keyReady & OTHER) && (kb_Data[1] & kb_Yequ)) && state[tile] != sCLEARED) { //Y= + keyReset(oTHER); + if (flag[tile] == fQUESTION) { + flag[tile] = fBLANK; + } else { + if (flag[tile] == fFLAG) { + flag[tile] = fBLANK; //Why must it be fBLANK? + flags++; + flagCount(); + } + flag[tile] = fQUESTION; + } + fillTile(tile, tSELECT); + } + if ((keyReady & OTHER) && (kb_Data[1] & kb_Mode)) { //Mode + keyReset(oTHER); + pause(); + } + + } +} + +#endif /* MINESWEEPER_H */ \ No newline at end of file diff --git a/src/prime2D.h b/src/prime2D.h new file mode 100644 index 0000000..de0d774 --- /dev/null +++ b/src/prime2D.h @@ -0,0 +1,377 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef PRIME2D_H +#define PRIME2D_H +#include "x86render.h" +#include "global.h" +#include + +#include "prime2D_Font6x8.h" + +uint8_t gColor = 0; //Graphics color + +const uint16_t char3x5[28] = { + 0x7B6F, 0x749A, 0x73E7, 0x79A7, 0x49ED, 0x79CF, 0x7BCF, 0x24A7, 0x2AAA, 0x79EF, 0x5BEF, 0x7AEF, 0x624E, 0x3B6B, 0x72CF, 0x12CF, 0x5AAD, 0,0,0,0,0,0,0,0, 0x55D5, 0x7480, 0x21A7 +}; +const uint16_t char5x5[56] = { + 22335,1011, 4292,452, 32287,993, 29215,1008, 31909,132, 31807,1008, 31807,1009, 28959,264, 14894,465, 32319,1008, 22205,949, 19314,594, 30269,933, 26173,945, 30389,561, 29885,945, 29885,949, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 32213,686, 4228,996, 8750,128 +}; + +// const uint8_t char6x8[768]; // See prime2D_Font6x8.h + +//Debugging +const uint16_t num3x5[16] = { + 0x7B6F, 0x749A, 0x73E7, 0x79A7, 0x49ED, 0x79CF, 0x7BCF, 0x24A7, 0x7AAF, 0x79EF, + 0x5BEF, 0x7BC9, 0x724F, 0x7BE4, 0x72CF, 0x12CF +}; //Used for the printInt functions +void printInt(int24_t in, uint8_t len, uint8_t base, uint24_t xC, uint24_t yC) { //integer to print, length, base 2-16 //Auto adjusts for signage + uint8_t* off = (uint8_t*)VRAM + xC + (320 * yC); + uint8_t* v = off + 320; + len <<= 2; //len * 4 + const uint24_t x2 = 5 + len; + const uint24_t jump = 317 - x2; + for (uint8_t dY = 1; dY < 6; dY++) { + for (uint24_t dX = 0; dX < x2; dX += 4) { + *v = 0; + v += 4; + } + v += jump; + } + v = off; + for (uint24_t dX = 0; dX < x2; dX++) { + *v = 0; + v++; + } + v = off + 1920; // 320 * 6 + for (uint24_t dX = 0; dX < x2; dX++) { + *v = 0; + v++; + } + + uint24_t* negSign = 961 + (uint24_t*)off; //Fills three pixels //1 + (3 * 320) + *negSign = in < 0 ? 460551 : 0; //If Negative + uint24_t j = abs(in); + uint24_t pow = 1; + for (uint24_t k = 0; k < len; k += 4) { + uint16_t bitImage = num3x5[(j / pow) % base]; + uint8_t *fill = off + 321 + len - k; + for (uint8_t y = 0; y < 5; y++) { + for (uint8_t x = 0; x < 3; x++) { + *fill = bitImage & 1 ? 7 : 0; //White if true + bitImage >>= 1; + fill++; + } + fill += 317; //320 - 3 + } + pow *= base; + } +} +void printUInt(int24_t in, uint8_t len, uint8_t base, uint24_t xC, uint24_t yC) { //integer to print, length, base 2-16 + uint8_t* off = (uint8_t*)VRAM + xC + (320 * yC); //Something about casting off to uint8_t* adds 4 more bytes + uint8_t* v = off + 320; + len <<= 2; //len * 4 + const uint24_t x2 = 1 + len; //Can optomize out "1 + " for a saving of 8 bytes + const uint24_t jump = 317 - x2; + for (uint8_t dY = 1; dY < 6; dY++) { + for (uint24_t dX = 0; dX < x2; dX += 4) { + *v = 0; + v += 4; + } + v += jump; + } + v = off; + for (uint24_t dX = 0; dX < x2; dX++) { + *v = 0; + v++; + } + v = off + 1920; // 320 * 6 + for (uint24_t dX = 0; dX < x2; dX++) { + *v = 0; + v++; + } + uint24_t pow = 1; + for (uint24_t k = 0; k < len; k += 4) { + uint16_t bitImage = num3x5[(in / pow) % base]; + uint8_t* fill = off + 317 + len - k; + for (uint8_t y = 0; y < 5; y++) { + for (uint8_t x = 0; x < 3; x++) { + *fill = bitImage & 1 ? 7 : 0; //White if true + bitImage >>= 1; + fill++; + } + fill += 317; //320 - 3 + } + pow *= base; + } +} + +/* Key Constants */ +void keyReset(uint8_t type); +const uint8_t HORIZ = 1; const uint8_t VERT = 2; const uint8_t ALPHA = 4; const uint8_t SECOND = 8; const uint8_t OTHER = 16; const uint8_t DEBUG = 32; const uint8_t ARROW = 64; const uint8_t CHORD = 128; +const uint8_t hORIZ = 0; const uint8_t vERT = 1; const uint8_t aLPHA = 2; const uint8_t sECOND = 3; const uint8_t oTHER = 4; const uint8_t dEBUG = 5; const uint8_t aRROW = 6; const uint8_t cHORD = 7; +//uint8_t key = 0; //Compatibility + +#define keyTotal 8 //Use different keyDelay values in different menus +uint32_t keyDelay[keyTotal] = {2304, 3072, 4096, 4096, 2730, 1638, 3072, 2730}; //0 Horiz, 1 Vert, 2 Alpha, 3 Second, 4 Other, 5 Debug, 6 Arrow +uint32_t keyPressTime[keyTotal] = {0,0,0,0,0,0,0,0}; + +uint8_t keyReady = 255; //1 Horiz, 2 Vert, 4 Alpha, 8 Second, 16 Other, 32 Debug, 64 Arrow +/* Key Constants */ + +//Primatives +void fillRect(uint24_t x1, uint24_t y1, uint24_t x2, uint24_t y2) { //x start, y start, x length, y length + uint8_t* v = (uint8_t*)VRAM + x1 + (y1 * 320); + const uint24_t jump = 320 - x2; + for (uint24_t dY = 0; dY < y2; dY++) { + for (uint24_t dX = 0; dX < x2; dX++) { + *v = gColor; + v++; + } + v += jump; + } +} +void horiz(uint24_t x1, uint24_t y, uint24_t x2) { //x start, y postion, x length + uint8_t* z = (uint8_t*)VRAM + (x1 + x2) + (y * 320); + for (uint8_t* fill = (uint8_t*)VRAM + x1 + (y * 320); fill < z; fill++) { + *fill = gColor; + } +} +void vert(uint24_t x, uint24_t y1, uint24_t y2) { //x postion, y start, y length + uint8_t* z = (uint8_t*)VRAM + x + ((y2 + y1) * 320); + for (uint8_t* fill = (uint8_t*)VRAM + (y1 * 320) + x; fill < z; fill += 320) { + *fill = gColor; + } +} +// void plot(uint24_t x, uint24_t y) { //x position, y position +// uint8_t* fill = (uint8_t*)VRAM + x + (y * 320); +// *fill = gColor; +// } +// void plotFast(uint8_t* z) { //Memory address +// *z = gColor; +// } + +#define plot(x,y) *((uint8_t*)VRAM + x + (y * 320)) = gColor +#define plotFast(z) *((uint8_t*)z) = gColor + +// void fillScreen() { //Fills buffer 0 +// const uint24_t g = (gColor << 16) | (gColor << 8) | gColor; +// for (uint24_t* w = (uint24_t*)VRAM; w < (uint24_t*)WRAM; w++) { //Optomized to use 24bit +// *w = g; +// } +// } + +void fillScreen() { //Fills buffer 0 + const uint8_t g = gColor; + for (uint8_t* w = (uint8_t*)VRAM; w < (uint8_t*)WRAM; w++) { //Optomized to use 24bit + *w = g; + } +} + +//Text Engine +void text6x8(uint24_t xW, uint24_t yW, uint8_t lexicon) { //x position, y position, letter index + uint8_t* bitImage = (uint8_t*)char6x8 + (lexicon * 6); + uint8_t* fill = (uint8_t*)VRAM + (yW * 320 + xW); + uint8_t b = 1; + for (uint8_t y = 0; y < 8; y++) { + for (uint8_t x = 0; x < 6; x++) { + *fill = *bitImage & b ? gColor : *fill; + bitImage++; + fill++; + } + bitImage -= 6; + fill += 314; // 320 - 6 + b <<= 1; + } +} + +void fillText(uint24_t x1, uint24_t y1, uint24_t x2, uint24_t y2) { //x start, y start, x length, y length //fillRect() that does not overwrite text + uint8_t* v = (uint8_t*)VRAM + x1 + (y1 * 320); + const uint24_t jump = 320 - x2; + for (uint24_t dY = 0; dY < y2; dY++) { + for (uint24_t dX = 0; dX < x2; dX++) { + *v = *v ? gColor : 0; + v++; + } + v += jump; + } +} + +/* Utilities */ +void quitGame() { //Placeholder + //key = 99; + status = FORCEQUIT; +} +uint8_t linear(uint8_t y0, uint8_t y1, uint8_t x0, uint8_t x1, uint8_t x) { //Linear Interpolation algorithm + return ((y0 * (x1 - x)) + (y1 * (x - x0))) / (x1 - x0); +} +uint8_t linear0(uint8_t y0, uint8_t y1, uint8_t x1, uint8_t x) { //x0 = 0, Optomized Linear Interpolation algorithm + return ((y0 * (x1 - x)) + (y1 * x)) / x1; +} +void shiftScreen() { //Moves the frame base around + uint8_t change = 0; + if (DEBUG & keyReady) { + keyReset(dEBUG); + if (kb_Data[4] & kb_8) { //Up + *frameBase -= 2560; + change = 1; + } + if (kb_Data[4] & kb_2) { //Down + *frameBase += 2560; + change = 1; + } + if (kb_Data[5] & kb_6) { //Right + *frameBase += 8; + change = 1; + } + if (kb_Data[3] & kb_4) { //Left + *frameBase -= 8; + change = 1; + } + if (kb_Data[4] & kb_5) { //Reset + *frameBase = 0xD40000; + change = 1; + } + if (change) { + printUInt(*frameBase,6,16,56,2); + } + } +} +/* Utilities */ + +/* Keyboard */ + +uint32_t deltaTime(uint32_t current, uint32_t previous) { //Calculates delta time through overflows + if (current >= previous) { + return current - previous; + } + return ~(previous - current) + 1; //16777215 - () +} + +void delay32K(uint32_t delay) { //32768hz, overflow resiliant + uint32_t start = timer_Get(1); + while (deltaTime(timer_Get(1), start) < delay); +} + +void keyReset(uint8_t type) { + keyReady = keyReady & ~(1 << type); + keyPressTime[type] = timer_Get(1); + //recentKeyPress +} + +void keyPress() { //Makes the game run at a constant FPS + + uint24_t frameDelta = 0; //stores the time between frames + uint24_t frameTime = 0; //stores timer_Get(1) + do { + frameTime = timer_Get(1); //frameTime and seed are the same so I only need to call timer_Get(1) once + if (frameTime >= frameStart) { + frameDelta = frameTime - frameStart; + } else { //Overflow case + frameDelta = (~(frameStart - frameTime)) + 1; + } + } while (frameDelta < FPS); + + systemTime = frameTime; + + if (fpsCounter) { + if (frameDelta > clockMax) { clockMax = frameDelta; } //Tracks the highest frame time + if (deltaTime(timer_Get(1), clockTime) > (32768 / 6)) { //Displays the highest frame time every 32768/FPS seconds + printUInt(clockMax, 5, 10, 2, 22); //Displays frame time + printUInt(32768 / clockMax, 3, 10, 2, 31); //Displays FPS + clockMax = 0; + clockTime = timer_Get(1); + } + } + + shiftScreen(); + + frameStart = timer_Get(1); + for (uint8_t i = 0; i < keyTotal; i++) { + if ((deltaTime(frameStart, keyPressTime[i])) >= keyDelay[i]) { + keyReady = keyReady | (1 << i); //Turns on a bit + } + } + kb_Scan(); + + seed = timer_Get(1); //temporary soultion + if (kb_Data[1] & (kb_Graph | kb_Del)) { //temporary soultion + status = FORCEQUIT; + } + + return; +} +/* Keyboard */ + + + +/* +void QfillRect(uint24_t x1, uint24_t y1, uint24_t x2, uint8_t y2) { + if (x1 >= 320) { + printUInt(x1,8,10,200,100); printUInt(y1,8,10,200,109); printUInt(x2,8,10,200,118); printUInt(y2,3,10,200,127); + delay32K(65536); + return; + } + if (y1 >= 480) { + printUInt(x1,8,10,200,100); printUInt(y1,8,10,200,109); printUInt(x2,8,10,200,118); printUInt(y2,3,10,200,127); + delay32K(65536); + return; + } + if (x1 + x2 >= 320) { + printUInt(x1,8,10,200,100); printUInt(y1,8,10,200,109); printUInt(x2,8,10,200,118); printUInt(y2,3,10,200,127); + delay32K(65536); + return; + } + if (y1 + y2 >= 480) { + printUInt(x1,8,10,200,100); printUInt(y1,8,10,200,109); printUInt(x2,8,10,200,118); printUInt(y2,3,10,200,127); + delay32K(65536); + return; + } + fillRect(x1,y1,x2,y2); +} +void Qhoriz(uint24_t x1, uint24_t y, uint24_t x2) { + if (x1 >= 320) { + printUInt(x1,8,10,200,140); printUInt(y,8,10,200,149); printUInt(x2,8,10,200,158); + delay32K(65536); + return; + } + if (y >= 480) { + printUInt(x1,8,10,200,140); printUInt(y,8,10,200,149); printUInt(x2,8,10,200,158); + delay32K(65536); + return; + } + if (x1 + x2 >= 320) { + printUInt(x1,8,10,200,140); printUInt(y,8,10,200,149); printUInt(x2,8,10,200,158); + delay32K(65536); + return; + } + horiz(x1,y,x2); +} +void Qvert(uint24_t x, uint24_t y1, uint24_t y2) { + if (x >= 320) { + printUInt(x,8,10,200,170); printUInt(y1,8,10,200,179); printUInt(y2,8,10,200,188); + delay32K(65536); + return; + } + if (y1 >= 480) { + printUInt(x,8,10,200,170); printUInt(y1,8,10,200,179); printUInt(y2,8,10,200,188); + delay32K(65536); + return; + } + if (y1 + y2 >= 480) { + printUInt(x,8,10,200,170); printUInt(y1,8,10,200,179); printUInt(y2,8,10,200,188); + delay32K(65536); + return; + } + vert(x,y1,y2); +} +*/ + +#endif /* PRIME2D_H */ \ No newline at end of file diff --git a/src/prime2D_Font6x8.h b/src/prime2D_Font6x8.h new file mode 100644 index 0000000..3a87218 --- /dev/null +++ b/src/prime2D_Font6x8.h @@ -0,0 +1,17 @@ +/* +** The 6x8 pixel font used in the program is a slightly modified version +** of the "even" font created by Christian Munk (CMunk), which can be +** found at https://fontstruct.com/fontstructions/show/275268/even_2. +** The "even" font is lincesed under Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +** Original License URL: https://creativecommons.org/licenses/by-sa/3.0/ +*/ + +#ifndef PRIME2D_FONT6X8_H +#define PRIME2D_FONT6X8_H +#include + +const uint8_t char6x8[768] = { + 126,255,145,137,255,126,0,132,254,255,128,0,198,231,177,153,207,198,98,235,137,137,255,118,48,44,35,255,255,32,111,239,137,137,251,115,126,255,137,137,251,114,3,3,225,249,31,7,118,255,137,137,255,118,78,223,145,145,255,126,6,255,0,255,129,255,6,255,0,6,255,0,6,255,0,230,145,142,6,255,0,137,137,118,6,255,0,15,8,255,6,255,0,111,137,241,6,255,0,126,137,241,6,255,0,17,249,23,6,255,0,118,137,118,6,255,0,142,145,126,241,143,0,255,129,255,241,143,0,134,255,128,241,143,0,0,241,143,241,143,0,137,137,118,241,143,0,15,8,255,90,52,122,126,60,90,14,74,74,126,64,64,6,7,209,217,15,6,16,40,68,16,40,68,68,40,16,68,40,16,12,142,234,254,255,188,165,203,133,129,195,165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,192,0,0,0,0,160,96,0,0,224,240,24,12,7,3,0,126,255,129,129,0,0,129,129,255,126,0,0,0,102,102,0,0,0,24,24,24,24,0,66,37,18,72,164,66,68,40,16,16,40,68,42,124,38,100,62,84,96,96,126,126,120,120,63,32,32,168,112,32,228,60,39,228,60,39,102,102,102,102,102,102,0,6,223,223,6,0,24,36,66,66,36,24,24,60,126,126,60,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,252,39,39,252,240,255,255,137,137,255,118,126,255,129,129,230,103,255,255,129,129,255,126,255,255,137,137,235,227,255,255,9,9,11,3,126,255,129,145,118,247,255,255,8,8,255,255,0,129,255,255,129,0,96,224,128,128,255,127,255,255,24,60,231,195,255,255,128,128,224,224,255,14,28,28,14,255,255,14,28,56,112,255,126,255,129,129,255,126,255,255,17,17,31,14,30,63,97,225,191,158,255,255,49,113,223,142,102,239,137,137,251,114,3,1,255,255,1,3,127,255,128,128,255,127,15,63,224,224,63,15,255,112,56,56,112,255,227,247,28,28,247,227,3,15,248,248,15,3,227,243,153,141,231,227,96,244,148,148,124,248,255,127,132,132,252,120,120,252,132,132,204,72,120,252,132,132,127,255,120,252,148,148,220,88,16,254,255,17,19,2,24,188,164,164,248,124,255,255,8,8,248,240,0,136,251,251,128,0,128,136,251,123,0,0,255,255,16,56,236,196,0,129,255,255,128,0,252,248,4,248,4,248,252,248,4,4,252,248,120,252,132,132,252,120,252,248,36,36,60,24,24,60,36,36,248,252,252,248,4,4,28,24,72,220,148,164,236,72,0,4,126,255,132,64,124,252,128,128,124,252,28,124,192,192,124,28,60,124,128,124,128,124,196,236,56,56,236,196,140,188,224,96,60,12,204,236,164,148,220,204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +}; + +#endif /* PRIME2D_FONT6X8_H */ \ No newline at end of file diff --git a/src/subMenu.h b/src/subMenu.h new file mode 100644 index 0000000..257272f --- /dev/null +++ b/src/subMenu.h @@ -0,0 +1,473 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifndef SUBMENU_H +#define SUBMENU_H + +#include +#include "global.h" +#include "menu.h" +#include "x86render.h" + +/* Declarations */ + +#define boxPos (offset + row) + +//Main Menu +void modeSet(); +void randomMode(); +void quickPreset() {}; +void quickSize() {}; +void quickSkill() {}; + +//General Purpose +void drawPattern(); +void swapPrimaries(); +//Custom Game +void perCent(); +void mineCent(); +void boardCent(); + +void custom_SizePercent(); +void custom_Mines(); + +//Settings +void settingsMenu(); +void videoUpdate(); +void fpsUpdate(); +void accessSet(); + +void versionText(); +void testGraphic(); + +void buildMenu(); + +//Things +void leadChange(); +void gameStart(); +//What? +void helpText(); +void buildPattern(); + +/* Declarations */ + + +uint24_t presetT = 5; +uint24_t sizeT = 4; +uint24_t difficT = 3; +uint24_t percent = 14; +uint24_t scoreT = 0; + +uint8_t row = 0; +uint8_t offset = 0; //offset +uint8_t sector = 0; + +void (*menuFunction[11])() = {0,buildPattern,buildPattern,buildPattern,leadChange,versionText,0,testGraphic,0,helpText,quitGame}; +uint8_t menuBack[11] = {10,0,0,0,0,0,5,5,5,0,0}; +uint16_t boxIndex[12] = {0,8,16,21,28,37,43,47,54,59,60,60}; +uint8_t menuRows[11] = {8,8,5,7,9,6,4,7,5,1,1}; + +uint8_t boxType[60] = {9,9,9,9,9,9,9,9,0,22,4,4,4,1,9,9,22,1,9,9,9,22,22,22,22,22,9,9,0,0,0,0,0,0,0,22,9,65,9,9,9,0,9,52,65,52,9,54,65,52,65,65,22,9,21,1,1,1,9,9}; +uint8_t boxColor[60] = {5,11,9,12,6,2,1,8,5,8,8,8,8,7,8,8,10,14,7,8,8,8,8,8,9,8,1,8,5,8,8,8,8,8,8,10,8,1,8,8,8,7,8,9,8,8,8,11,8,8,8,12,5,8,8,8,8,9,8,8}; +uint8_t boxDirect[60] = {1,1,2,3,4,5,9,0,0,0,0,0,0,0,3,0,0,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,0,0,0,0,0,5,0,0,0,0,0,0,5,0,0,0,0,5,0}; +uint16_t textIndex[61] = {0,23,41,54,64,79,91,99,112,124,137,147,155,169,183,193,206,227,242,256,271,284,297,305,313,327,341,355,368,383,386,389,392,395,398,401,414,427,446,460,475,491,500,512,526,535,547,556,567,586,605,628,647,659,668,684,701,719,734,743,755}; +void (*boxFunction[60])() = {modeSet,modeSet,0,0,0,0,0,quitGame,0,drawPattern,0,0,0,gameStart,0,0,drawPattern,randomMode,0,0,0,drawPattern,boardCent,boardCent,mineCent,perCent,gameStart,0,0,0,0,0,0,0,0,leadChange,0,swapPrimaries,0,0,0,0,0,0,0,0,0,videoUpdate,accessSet,0,0,0,fpsUpdate,0,0,0,0,0,0,0}; +void* boxPointer[60] = {0,0,0,0,0,0,0,0,0,&gameMode,0,0,0,0,0,0,&gameMode,&gameMode,0,0,0,&gameMode,&sizeX,&sizeY,&chance,&percent,0,0,0,0,0,0,0,0,0,&gameMode,0,&swapAlphaSecondBind,0,0,0,0,0,&safeGuess,&chording,&autoSolver,0,&displayMode,&accessMode,&fadeEffect,&cursorGraphic,&movieIntro,&fpsT,0,&autoSaveMax,0,0,0,0,0}; +uint8_t boxMin[60] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0}; +uint16_t boxMax[60] = {0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,16,52,27,702,50,0,0,0,0,0,0,0,0,0,16,0,1,0,0,0,0,0,2,1,2,0,3,1,2,1,1,1080,0,3,0,0,0,0,0}; + +uint8_t sourceText[755] = {66,101,90,108,108,98,92,32,76,98,103,94,82,112,94,94,105,94,107,39,32,25,33,74,103,98,96,97,109,32,82,112,94,94,105,94,107,39,32,30,33,64,101,101,32,76,104,93,94,108,39,32,26,33,66,110,108,109,104,102,39,32,48,33,75,94,90,93,94,107,91,104,90,107,93,39,32,44,33,82,94,109,109,98,103,96,108,39,32,43,33,71,94,101,105,39,32,27,33,68,113,98,109,32,70,90,102,94,39,32,45,33,80,110,98,92,100,32,70,90,102,94,39,33,70,90,102,94,32,76,104,93,94,39,32,30,33,79,107,94,108,94,109,39,32,26,33,82,98,115,94,39,32,46,33,67,98,95,95,98,92,110,101,109,114,39,32,41,33,82,109,90,107,109,32,70,90,102,94,39,32,25,33,66,110,108,109,104,102,39,32,43,33,76,90,98,103,32,76,94,103,110,39,32,45,33,79,90,109,109,94,107,103,32,82,94,101,94,92,109,98,104,103,39,32,26,33,81,90,103,93,104,102,32,76,104,93,94,39,32,27,33,80,110,98,92,100,32,70,90,102,94,39,32,25,33,66,110,108,109,104,102,32,70,90,102,94,39,32,43,33,76,90,98,103,32,76,94,103,110,39,32,45,33,70,90,102,94,32,76,104,93,94,39,32,30,33,82,98,115,94,32,87,39,33,82,98,115,94,32,88,39,33,76,98,103,94,32,66,104,110,103,109,39,32,25,33,79,94,107,92,94,103,109,90,96,94,39,32,41,33,82,109,90,107,109,32,70,90,102,94,39,32,26,33,76,90,98,103,32,76,94,103,110,39,32,45,33,71,98,96,97,32,82,92,104,107,94,108,39,32,44,33,1,34,33,2,34,33,3,34,33,4,34,33,5,34,33,6,34,33,70,90,102,94,32,76,104,93,94,39,32,30,33,76,90,98,103,32,76,94,103,110,39,32,45,33,82,112,90,105,32,64,101,105,97,90,32,90,103,93,32,2,103,93,33,70,90,102,94,32,82,94,109,109,98,103,96,108,33,85,98,93,94,104,32,82,94,109,109,98,103,96,108,33,67,90,109,90,32,76,90,103,90,96,94,102,94,103,109,33,85,94,107,108,98,104,103,39,33,76,90,98,103,32,76,94,103,110,32,45,33,82,90,95,94,32,70,110,94,108,108,98,103,96,33,66,97,104,107,93,98,103,96,33,64,110,109,104,32,82,104,101,111,94,107,33,81,94,109,110,107,103,32,45,33,85,98,93,94,104,32,76,104,93,94,33,64,92,92,94,108,108,98,91,98,101,98,109,114,32,76,104,93,94,33,65,90,92,100,96,107,104,110,103,93,32,68,95,95,94,92,109,108,33,66,110,107,108,104,107,32,70,107,90,105,97,98,92,32,37,64,101,105,97,90,38,33,68,103,90,91,101,94,32,76,104,111,98,94,32,72,103,109,107,104,33,76,90,113,98,102,110,102,32,69,79,82,33,81,94,109,110,107,103,32,45,33,64,110,109,104,32,82,90,111,94,32,66,104,110,103,109,33,66,101,94,90,107,32,64,110,109,104,32,82,90,111,94,108,33,66,101,94,90,107,32,75,94,90,93,94,107,91,104,90,107,93,33,66,101,94,90,107,32,64,101,101,32,67,90,109,90,33,81,94,109,110,107,103,32,45,33,76,90,98,103,32,76,94,103,110,32,45,33}; + +/* Main Menu */ + +void modeSet() { + gameMode = row; //It does the job +} +void randomMode() { + srand(seed); + gameMode = rand() % (gameModeCount + 1); + gColor = 0xF0; + fillRect(188, 20+(0*24), 14, 8); //Clears characters + gColor = Black; + text6x8(195, 20+(0*24), (gameMode % 10)); + text6x8(188, 20+(0*24), ((gameMode / 10) % 10)); + drawPattern(); +} + +/* Main Menu */ + +/* General Purpose */ + +void gameStart() { + gameLoop(); + row = 0; + if (status != FORCEQUIT) { + buildMenu(); + } +} + +void drawPattern() { + gColor = 15; + for (int24_t y = 0; y < 65; y += 13) { + for (int24_t x = 0; x < 65; x += 13) { + if (!(x == 26 && y == 26)) { + fillRect(240 + x, 18 + y, 10, 10); + } + } + } + + offPos = orderPos[gameMode]; + offLen = orderPos[gameMode + 1] - orderPos[gameMode]; + gColor = 16; + int24_t u; + int24_t v; + for (int24_t i = 0; i < offLen; i += 2) { + u = order[offPos + i] * 13; //Probably more memory effeicent than an algorithm + v = order[offPos + i + 1] * 13; + uint8_t *fillR = (uint8_t*)VRAM + ((44 * 320) + 266 + (320 * v) + u); + if (*fillR == 0) { //Draws a 3 if 2 is already there + fillRect(266 + u, 44 + v , 10, 10); + gColor = 0; + text6x8(268 + u, 45 + v, 3); //3 + gColor = 16; + } else if (*fillR == 16) { //draws a two if a repeat is detected + fillRect(266 + u, 44 + v , 10, 10); + gColor = 0; + text6x8(268 + u, 45 + v, 2); //2 + gColor = 16; + } else { + fillRect(266 + u, 44 + v , 10, 10); + } + } +} + +void buildPattern() { //Draws it too + for (int24_t i = 239; i < 304; i += 13) { + gColor = (7); + vert(i, 17, 64); + gColor = (0); + vert(i + 11, 17, 64); + } + for (int24_t i = 17; i < 82; i += 13) { + gColor = (7); + horiz(239, i, 64); + gColor = (0); + horiz(239, i + 11, 64); + } + for (int24_t i = 16; i < 94; i += 13) { + gColor = (8); + horiz(238, i, 66); + } + for (int24_t i = 238; i < 316; i += 13) { + gColor = (8); + vert(i, 16, 66); + } + gColor = 1; //Draws the mine in the middle + fillRect(266, 44, 10, 10); + gColor = 0; + text6x8(268,45,25); + gColor = 7; + plotFast(VRAM + ((320 * 47) + 270)); + plotFast(VRAM + ((320 * 48) + 269)); + drawPattern(); +} + +/* General Purpose */ + +/* Custom Game Menu */ + +/* +uint24_t getPercent(uint24_t amountMines) { + uint24_t sizeZ = sizeX * sizeY; + uint24_t output = (amountMines * 200) / sizeZ; + output = output / 2 + output % 2; //Rounding + return output; +} +uint24_t getMines(uint24_t amountPercent) { + uint24_t sizeZ = sizeX * sizeY; + uint24_t output = (sizeZ * amountPercent) / 50; + output = output / 2 + output % 2; //Rounding + return output; +} +void setMines(uint24_t mines0) { + chance = mines0; + uint24_t yCord = 20 + (24 * 3); + gColor = 0xF3; + fillRect(181, yCord, 20, 8); + gColor = 0x00; + text6x8(195, yCord, (chance % 10)); + text6x8(188, yCord, ((chance / 10) % 10)); + text6x8(181, yCord, ((chance / 100))); //Unexpected above 2599 +} +void setPercent(uint24_t percent0) { + percent = percent0; + uint24_t yCord = 20 + (24 * 4); + gColor = 0xF4; + fillRect(181, yCord, 20, 8); + gColor = 0x00; + text6x8(195, yCord, (percent % 10)); + text6x8(188, yCord, ((percent / 10) % 10)); + text6x8(181, yCord, ((percent / 100))); //Unexpected above 2599 +} + +void custom_SizePercent() { + uint24_t chance0 = getMines(percent); + printUInt(chance0,6,10,2,100); + if (chance0 < 8) { + setMines(8); + setPercent(getPercent(8)); + } else if (chance0 > 702) { + setMines(702); + setPercent(getPercent(702)); + } else { + setPercent(chance0); + } +} + +void custom_Mines() { + uint24_t percent0 = getPercent(chance); + printUInt(percent0,6,10,2,109); + if (percent0 < 5) { + setPercent(5); + setMines(getMines(5)); + } else if (percent0 > 50) { + setPercent(50); + setMines(getMines(50)); + } else { + setMines(percent0); + } +} +*/ + +void boardCent() { + uint24_t sizeZ = sizeX * sizeY; + uint8_t w = 0; + if (chance > sizeZ / 2) { // Overflow + chance = (sizeZ) / 2; // Floor Division + w = 1; + } else if (chance < (sizeZ) / 20) { // Underflow + chance = sizeZ % 20 ? (sizeZ / 20) + 1 : sizeZ / 20; // Ceiling Division + w = 1; + } + percent = (chance * 100) / (sizeZ); + //Manual percent draw + uint24_t yCord = 20 + (24 * 4); + + gColor = 0xF4; + fillRect(181, yCord, 20, 8); + gColor = 0; + text6x8(195, yCord, (percent % 10)); + text6x8(188, yCord, ((percent / 10) % 10)); + text6x8(181, yCord, ((percent / 100))); //DEBUG + + + if (w) { + yCord -= 24; + + gColor = 0xF3; + fillRect(181, yCord, 20, 8); + gColor = 0; + text6x8(195, yCord, (chance % 10)); + text6x8(188, yCord, ((chance / 10) % 10)); + text6x8(181, yCord, ((chance / 100))); //Unexpected above 2599 + } +} + +void perCent() { + chance = (sizeX * sizeY * percent) / 100; + uint24_t yCord = 20 + (24 * 3); + + gColor = 0xF3; + fillRect(181, yCord, 20, 8); + gColor = 0; + text6x8(195, yCord, (chance % 10)); + text6x8(188, yCord, ((chance / 10) % 10)); + text6x8(181, yCord, ((chance / 100))); //Unexpected above 2599 +} + +void mineCent() { + uint24_t sizeZ = sizeX * sizeY; + if (chance > sizeZ / 2) { // Overflow + chance = sizeZ % 20 ? (sizeZ / 20) + 1 : sizeZ / 20; // Ceiling Division + } else if (chance < (sizeZ) / 20) { // Underflow + chance = (sizeZ) / 2; // Floor Division + } + percent = (chance * 100) / (sizeZ); + + + //Manual percent draw + uint24_t yCord = 20 + (24 * 4); + gColor = 0xF4; + fillRect(188, yCord, 13, 8); + fillRect(181, yCord, 6, 8); //DEBUG + gColor = 0; + text6x8(195, yCord, (percent % 10)); + text6x8(188, yCord, ((percent / 10) % 10)); + text6x8(181, yCord, ((percent / 100))); //DEBUG +} + + +/* Custom Game Menu */ + +/* Leaderboard */ + +void leadChange() { + { + int24_t m = 0; + uint8_t gameMod = 0; //using gameMode may be unsafe at this time, alas gameMod + for (int24_t y = 44; y <= 16 + ((7) * 24); y += 24) { + int24_t x = 20; + gColor = m + 0xF1; //0xF0 + 1 + fillRect(41, 44 + (24 * m), 48, 8); + gColor = 0; + text6x8(x + 21, y, names[m * 3 + (gameMod * 18)]); + text6x8(x + 28, y, names[m * 3 + 1 + (gameMod * 18)]); + text6x8(x + 35, y, names[m * 3 + 2 + (gameMod * 18)]); + text6x8(x + 49, y, ((leaderboard[m + (gameMod * 6)] / 1000) % 10)); + text6x8(x + 56, y, ((leaderboard[m + (gameMod * 6)] / 100) % 10)); + text6x8(x + 63, y, ((leaderboard[m + (gameMod * 6)] / 10) % 10)); + text6x8(x + 70, y, (leaderboard[m + (gameMod * 6)] % 10)); + m++; + } + } +} + +/* Leaderboard */ + + +/* Settings Interface */ +void fadeClear(); +void fadeSet(); +void swapPrimaries() { + if (boxColor[boxPos] == Red) { + boxColor[boxPos] = Blue; + } else { + boxColor[boxPos] = Red; + } + fadeClear(); + fadeSet(); +} + +void versionText() { + uint24_t x = 83; + for (uint8_t j = 15; j < 21; j++) { + text6x8(x, 116, hiddenText[j]); + x += 7; + } + x = 139; + for (uint8_t j = 33; j < 43; j++) { + text6x8(x, 116, hiddenText[j]); + x += 7; + } +} + +#define testGY 17 //Man this looks bad +void testGraphic() { + gColor = Grey; // Grey + horiz(217,testGY,98); + horiz(217,testGY+13,98); + vert(217,testGY+1,12); + vert(314,testGY+1,12); + gColor = 0x1C; + fillRect(218,testGY+1,96,12); + gColor = Black; + text6x8(220,testGY+3,gMine); + text6x8(228,testGY+3,gFlag); + gColor = White; + plot(222,testGY+5); + plot(221,testGY+6); + gColor = Red; + fillRect(228,testGY+4,4,3); + uint24_t x = 236; + for (uint8_t i = 0; i < 10; i++) { + gColor = color[i]; + text6x8(x,testGY+3,i); + x += i > 1 ? 8 : 7; + } +} + +void accessSet() { + //Placeholder +} + +void settingsMenu() { //Places Hidden Text and draws test palette + //Deprecated +} + +void videoUpdate() { //Requires an Update + + #ifdef TI84CE + if (displayMode & 2 && darkMode == 0) { + darkMode = 1; + ((void(*)(void))0x384)(); + *(volatile uint8_t*)0xF80018 = 0x08; + *(volatile uint8_t*)0xF80018 = 0x44; + *(volatile uint8_t*)0xF80018 = 0x21; + *(volatile uint8_t*)0xF80008 = 0x01; + } else if (displayMode < 2 && darkMode == 1) { + darkMode = 0; + ((void(*)(void))0x384)(); + *(volatile uint8_t*)0xF80018 = 0x08; + *(volatile uint8_t*)0xF80018 = 0x44; + *(volatile uint8_t*)0xF80018 = 0x20; + *(volatile uint8_t*)0xF80008 = 0x01; + } + #endif /* TI84CE */ + + #ifdef WINDOWS + if (displayMode & 2 && darkMode == 0) { + darkMode = 1; + } else if (displayMode < 2 && darkMode == 1) { + darkMode = 0; + } + #endif /* WINDOWS */ + + if (displayMode & 1) { + *videoMode = 0x827; + } else { + *videoMode = 0x927; + } + gColor = 0xF0; + fillRect(195, 20, 6, 8); + gColor = 0; + text6x8(195, 20, displayMode); + delay32K(7936); //10240 - 2304 + keyReset(hORIZ); +} + +/* Settings Interface*/ + +/* Functions */ + +void fpsUpdate() { + FPS = 32768 / fpsT; +} + +/* Functions */ + +/* Help */ +void helpText() { + gColor = 0x0B; //Dark green + fillRect(12,40,296,184); + gColor = 0; + uint24_t x = 16; + uint8_t y = 44; + for (uint16_t j = 0; j < guideTextLength; j++) { + if (guideText[j] == 33) { //New Line + x = 16; + y += 12; + } else { + text6x8(x, y, guideText[j]); + x += 7; + } + } +} + +/* Help */ + +#endif /* SUBMENU_H */ \ No newline at end of file diff --git a/src/video.h b/src/video.h new file mode 100644 index 0000000..a33396b --- /dev/null +++ b/src/video.h @@ -0,0 +1,151 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +#ifdef VIDEO +#ifndef VIDEO_H +#define VIDEO_H + +#include +#include +#include + +// Hard coded palette +const uint16_t palette[1260] = { + /*0*/3171,12684,12687,15855,18927,25266,31608,3,22098,25269,25368,25371,28440,31509,31512/*1*/,3171,12684,12687,15855,18927,25266,31608,3,22095,22098,25269,25368,25371,28440,31509/*2*/,3171,12684,12687,15855,18927,25266,31608,3,22095,22098,25269,25368,25371,28440,31509/*3*/,3171,12684,12687,15855,18927,25266,28437,3,31608,25368,25371,28440,31509,28536,31512/*4*/,3171,12684,12687,15855,18927,25266,28437,3,31608,25368,25371,28440,31509,28539,31512/*5*/,3171,12684,12687,15855,18927,25266,28437,3,31608,22200,25371,28440,31509,28539,31512/*6*/,3171,12684,12687,15855,18927,25266,28437,3,31608,25269,25368,25371,28440,31509,28539/*7*/,3171,12684,12687,15756,15855,25266,28437,3,22098,31608,25368,25467,28440,28539,31509/*8*/,3171,12684,12687,15756,15855,25266,28437,3,22098,25269,31608,25467,28539,31509,31512/*9*/,3171,12684,12687,15756,15855,25266,28437,3,31608,25368,22200,28539,31509,31512,31611/*10*/,3171,12684,12687,15756,15855,25266,31608,3,25269,28539,25368,25371,25467,31509,31512/*11*/,3171,12684,12687,15756,15855,25266,31608,3,28539,22095,22200,25368,25371,25467,31611/*12*/,3171,12684,15855,12687,31608,28437,28539,3,19029,22200,25368,31611,25467,28440,31512/*13*/,3171,12684,15855,12585,12687,31608,28539,3,15759,25368,25269,31509,31611,25371,28440/*14*/,3171,12684,6342,15756,15855,28539,31608,3,25269,19029,25368,22200,31509,31611,25170/*15*/,3171,3174,6342,12684,15756,15855,15858,3,28437,31608,31611,22200,31509,28542,31707/*16*/,3171,3174,12684,9513,15855,15858,28437,3,31608,28539,31611,28338,31707,25371,28341/*17*/,3171,3174,12684,15756,15855,15858,28437,3,31608,28539,31611,31509,28341,31707,31512/*18*/,3171,3174,12684,15756,15855,15858,31608,3,28539,22200,25368,31611,31509,31707,28341/*19*/,3171,3174,15855,15756,15858,18927,28437,3,31608,31707,28539,31611,31509,31710,31605/*20*/,3171,3174,15855,15858,12786,18927,28437,3,31707,31608,31611,31509,28638,31710,31212/*21*/,3171,3174,15756,15855,15858,18927,31707,3,28542,31608,31611,28440,28638,31509,31710/*22*/,3171,3174,15855,15858,18927,31707,31608,3,25266,25368,31611,28638,31710,31605,28515/*23*/,3171,3174,15858,15756,18927,28437,31707,31710,25368,25371,28440,28539,28638,31611,31605/*24*/,3171,3174,15858,18927,15855,28437,31608,31707,31710,25368,28638,28440,28539,31611,31614/*25*/,3171,3174,12786,15858,18927,28437,28542,31608,31707,31710,28638,31611,22299,29568,28672/*26*/,3171,12786,15855,15858,18927,28437,28542,31608,31707,31710,31611,22095,28341,29568,28672/*27*/,12786,15858,18927,28437,28542,31608,31707,31710,22299,25368,31611,31680,31509,29568,28672/*28*/,12786,15855,15858,18927,28437,28542,31608,31707,31710,25269,28638,31680,31614,29568,28672/*29*/,12786,15855,15858,18927,28437,28542,31608,31707,31710,25269,28638,30720,31680,29568,28672/*30*/,12786,15756,15855,15858,18927,28437,28542,31608,31707,31710,28638,31680,31512,29568,28672/*31*/,12786,15756,15858,18927,28437,28542,31608,31707,31611,31710,31512,28638,31680,29568,28672/*32*/,12786,15858,15855,18927,28437,28542,31608,31707,28539,31710,31512,31680,31509,29568,28672/*33*/,12786,15858,15855,18927,28437,28542,31608,28440,31707,31710,28638,31680,31512,29568,28672/*34*/,12786,15858,15855,28542,19128,31710,31707,31611,25368,25371,25470,28638,31512,29568,28672/*35*/,12786,15858,15855,18927,28437,28542,31710,31611,31707,28638,30720,31512,31680,29568,28672/*36*/,12786,15858,18927,19128,28437,28542,31710,31611,31707,28638,31512,31680,31017,29568,28672/*37*/,12786,15855,15858,19128,28437,28542,31608,31710,25470,28638,31509,31680,25272,29568,28672/*38*/,12786,15855,19128,28437,18927,28542,31608,28539,31710,31611,31509,30720,31680,29568,28672/*39*/,12786,15858,19128,28437,28542,31608,25266,25371,31707,31710,31509,31680,28341,29568,28672/*40*/,9615,12786,15858,28437,28542,31608,31707,28440,28539,31710,31611,31680,28434,29568,28672/*41*/,9615,12786,15855,28437,28542,31608,28539,31707,31710,31680,28638,31509,28341,29568,28672/*42*/,9615,12786,15855,28437,28542,31608,25371,28539,31611,31710,31509,25263,28341,29568,28672/*43*/,9615,15855,15756,28437,28542,31608,25371,28539,31710,31707,28536,31509,28638,29568,28672/*44*/,9615,15855,28437,31608,28539,28542,19029,25371,31707,31710,28440,30720,31680,29568,28672/*45*/,9615,15855,28437,31608,28539,28542,28338,31611,28434,31710,28440,31707,31680,29568,28672/*46*/,15855,15756,28437,31608,28539,28542,28338,25371,28434,31611,31707,31680,31710,29568,28672/*47*/,15855,15756,28437,25266,31608,22200,28542,19128,25368,25371,31611,30720,31680,29568,28672/*48*/,15855,9615,15756,12687,28437,28539,31608,28542,25371,28434,31611,31707,28440,29568,28672/*49*/,15756,15855,12585,12687,28437,25266,31608,28539,28542,31611,31707,31680,31605,29568,28672/*50*/,15756,15855,12684,28437,18927,25266,31608,28539,28542,31611,31707,25269,31605,29568,28672/*51*/,15756,9615,15855,12687,28437,28338,31608,28542,31611,30720,31707,31605,25263,29568,28672/*52*/,15756,9615,15855,12687,28437,25266,28539,31608,28434,28542,31611,31680,31707,29568,28672/*53*/,3171,15756,15855,12684,28437,28539,18927,25266,31608,28434,31611,31680,31707,29568,28672/*54*/,3171,15756,15855,12585,12684,28437,18927,28539,22200,25368,31608,28434,31611,29568,28672/*55*/,3171,15756,15855,12684,28437,15759,28539,25266,25368,31608,31611,31680,31707,29568,28672/*56*/,3171,15756,15855,12684,28437,28539,25266,25368,31608,31611,30720,31680,31707,29568,28672/*57*/,15756,12585,15855,28437,28338,28539,31608,25368,25371,28542,31611,31509,31707,29568,28672/*58*/,15756,15855,12684,28437,31608,22200,28539,25371,28542,31707,31680,31605,31611,29568,28672/*59*/,15756,15855,28338,28437,31608,25266,28539,28542,31707,31509,31680,31710,31704,29568,28672/*60*/,15756,12585,15855,22200,28437,31608,28542,31611,30720,31509,31680,31707,31710,29568,28672/*61*/,9615,15756,15855,28437,18927,28338,28542,31608,28440,31611,31707,28434,31710,29568,28672/*62*/,9615,12585,15756,15855,15858,28437,28338,28542,31608,28440,31707,31509,31710,31689,31017/*63*/,9615,15855,15756,28437,28338,25266,19128,28542,31608,31611,31707,31710,31605,25467,31614/*64*/,9615,15855,15756,28437,15858,28338,25266,28542,31608,31707,31710,31509,31605,31614,31512/*65*/,9615,15756,15855,28437,15858,22200,28338,28539,31608,31611,31710,28524,31707,31605,25467/*66*/,9615,12585,15756,15855,28437,22200,28338,28539,31608,25371,31611,31710,31707,31605,28443/*67*/,9615,12687,15756,15855,19029,28437,28338,28539,31608,31611,31710,25365,28341,31509,31707/*68*/,9615,12687,15855,19029,28338,28437,28539,31608,31611,28440,31710,25167,28434,25365,31707/*69*/,9615,12687,15855,19029,28338,28437,28539,31608,31611,31710,25272,28434,31707,31509,31605/*70*/,9615,12687,15855,22200,28338,28539,31608,31611,31710,25269,28434,31707,31605,25467,31614/*71*/,9615,12687,15855,22200,28338,28539,31608,28542,31611,31710,25269,31605,31509,31707,31614/*72*/,9615,12687,15855,19029,22200,28338,28539,31608,31611,31710,31605,28341,28536,31707,25365/*73*/,9615,12687,15855,19029,22200,28338,28437,28539,31608,31611,31710,31605,31707,31614,28536/*74*/,9615,12687,15855,22200,28338,28437,28539,31608,31611,25167,25269,31710,28440,31509,31605/*75*/,9615,12687,15756,15855,22200,28338,28437,28539,31608,31611,28341,31710,31605,28443,28536/*76*/,9615,12687,15756,15855,22200,28338,28437,28539,31608,31611,28341,28440,31509,31710,28335/*77*/,9615,12687,15756,15855,22200,28338,28437,28539,31608,31611,28341,28440,31509,28434,31710/*78*/,15756,12585,12687,15855,28338,28437,28539,31608,31611,28341,28440,31509,28434,31605,31710/*79*/,12687,9615,15756,25266,28437,25167,25371,28440,31608,25263,28338,28536,28341,28434,28539/*80*/,12684,22095,9513,25266,19029,22197,15954,22200,28437,25365,25272,18930,25170,25263,28341/*81*/,9513,9516,18924,19026,22095,22098,22194,3,22197,25266,21996,18828,21999,18921,25170/*82*/,6342,6345,9414,15753,15855,18927,15852,3,12585,12783,15858,19023,19026,32768,32768/*83*/,3171,3174,6243,6342,9513,12585,12681,12684,9612,32768,32768,32768,32768,32768,32768 +}; +uint24_t data[3528]; + +void cycle(); +void cycleFast(); +void loadFrame(unsigned int b, unsigned int f); +unsigned int block = 0; +uint8_t prgm; +uint24_t* rom; +uint24_t* blit; +uint24_t* pDAT = palette; //Change to 24bit +uint24_t slide = 0; + +uint24_t splashTimer; + +void splash32K() { //32768hz, overflow resiliant + while (deltaTime(timer_Get(1), splashTimer) < (32768/12)); + splashTimer = timer_Get(1); +} + +uint8_t splashVideo() { + *paletteRAM = 0; + *frameBase = 0xD49600; + pDAT = (void *)((uint8_t *)pDAT + 0); + + //cycle(); + + while (1) { + + kb_Scan(); //Scans Keys + if (kb_Data[1] & kb_Del) { + return 1; //Quit + } //Force Quit + if ((kb_Data[6] & kb_Enter) || (kb_Data[1] & kb_2nd) || (kb_Data[2] & kb_Alpha) || (kb_Data[7])) { + *frameBase = VRAM; + return 2; //Quit + } //Skip Cutscene + + //Load AppVar + unsigned char txt[6] = "VOD"; + unsigned char num[3]; + sprintf(num, "%02d", block); + prgm = ti_Open(strcat(txt, num), "r"); + + uint24_t offSET = 0; // where in the data block to search + + for (uint8_t frame = 0; frame < 6; frame++) { // 6 frames per block + + ti_Seek(offSET, SEEK_SET, prgm); //Seeks to the required data + ti_Read(&data, 3, 10584, prgm); + rom = &data; + blit = frame & 1 ? 0xD423C6 : 0xD4B9C6; // ((320 - 168) / 4) + ((240 - 126) * 80) + + for (uint8_t y = 0; y < 126; y++) { + for (uint8_t x = 0; x < 28; x++) { + *blit = *rom; + blit++; + rom++; + } + blit = (void *)((uint8_t *)blit + 76); // (320 - 144) / 2 Bytes + } + + *frameBase = frame & 1 ? 0xD40000 : 0xD49600; + cycleFast(); + offSET += 10584; + slide++; + splash32K(); //Forces 12FPS + if (slide == 84) { + ti_Close(prgm); + prgm = 0; + *frameBase = VRAM; + return 0; + } + } + + block++; + ti_Close(prgm); + } + + prgm = 0; + *frameBase = VRAM; + //*videoMode = 0x92D; //16 bit + return 0; //Quits program +} + +void cycle() { + uint24_t* pRAM = paletteRAM; //Change to 24bit + pRAM = (void *)((uint8_t *)pRAM + 2); + for (uint8_t z = 0; z < 10; z++) { //Change to 24bit + *pRAM = *pDAT; + pDAT++; + pRAM++; + } +} + +void cycleFast() { // Unrolling the loop + uint24_t* pRAM = 0xE30202; //paletteRAM + 2 + *pRAM = *pDAT; /*0*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*1*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*2*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*3*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*4*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*5*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*6*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*7*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*8*/ + pDAT++; + pRAM++; + *pRAM = *pDAT; /*9*/ + pDAT++; + pRAM++; +} + + +#endif /* VIDEO_H */ +#endif /* VIDEO */ \ No newline at end of file diff --git a/src/x86render.h b/src/x86render.h new file mode 100644 index 0000000..a2f1f81 --- /dev/null +++ b/src/x86render.h @@ -0,0 +1,534 @@ +/* +** Author: zerico2005 (2023) +** Project: Super-Sweeper-0.77.1 +** License: MIT License +** A copy of the MIT License should be included with +** this project. If not, see https://opensource.org/license/MIT +*/ + +//#include "global.h" +#ifndef X86RENDER_H +#define X86RENDER_H + +#include +//#include +#define SDL_MAIN_HANDLED +#include +#include +#include +#include +#include +#include +#include + +typedef uint32_t uint24_t; +typedef int32_t int24_t; +typedef uint32_t u24; +typedef int32_t i24; + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int8_t i8; +typedef int16_t i16; +typedef int32_t i32; +typedef int64_t i64; + +/* Pointers */ + +uint8_t _VRAM[153600]; +void* VRAM = _VRAM + 0; +void* WRAM = _VRAM + 76800; +void* XRAM = _VRAM + 153600; + +uint32_t _frameBase = 0xD40000; +uint32_t* frameBase = &_frameBase; + +uint16_t _paletteRAM[256]; +uint16_t* paletteRAM = _paletteRAM; + +volatile uint16_t _videoMode = 0x92D; +volatile uint16_t* videoMode = &_videoMode; + +uint32_t _LCDTiming0 = 0x1F0A0338; +uint32_t* LCDTiming0 = &_LCDTiming0; +uint32_t _LCDTiming1 = 0x0402093F; +uint32_t* LCDTiming1 = &_LCDTiming1; +uint32_t _LCDTiming2 = 0x00EF7802; +uint32_t* LCDTiming2 = &_LCDTiming2; +uint32_t _LCDTiming3 = 0x00000000; +uint32_t* LCDTiming3 = &_LCDTiming3; + +uint32_t _lcd_CrsrImage; +uint32_t* lcd_CrsrImage = &_lcd_CrsrImage; +uint32_t _lcd_CrsrCtrl; +uint32_t* lcd_CrsrCtrl = &_lcd_CrsrCtrl; +uint32_t _lcd_CrsrConfig; +uint32_t* lcd_CrsrConfig = &_lcd_CrsrConfig; +uint32_t _lcd_CrsrPalette0; +uint32_t* lcd_CrsrPalette0 = &_lcd_CrsrPalette0; +uint32_t _lcd_CrsrPalette1; +uint32_t* lcd_CrsrPalette1 = &_lcd_CrsrPalette1; +uint32_t _lcd_CrsrXY; +uint32_t* const lcd_CrsrXY = &_lcd_CrsrXY; +uint16_t* lcd_CrsrX = (uint16_t*)lcd_CrsrXY; +uint16_t* lcd_CrsrY = (uint16_t*)((uint8_t*)lcd_CrsrXY + 2); +uint32_t _lcd_CrsrClip; +uint32_t* lcd_CrsrClip = &_lcd_CrsrClip; + +/* Pointers */ + +SDL_Event event; +SDL_Renderer *renderer; +SDL_Window *window; +SDL_Texture* texture; +SDL_Texture* buffer; + +#define resX 320 +#define resY 240 +int32_t pitch = resX * 3; + +uint8_t videoCopy[153600]; +uint16_t color16[256]; +uint8_t colorR[256]; +uint8_t colorG[256]; +uint8_t colorB[256]; +uint8_t scale = 2; + +#define keyBindSelection keyBind2 + +struct bound { + uint8_t x0; + uint8_t y0; + uint8_t x1; + uint8_t y1; +}; +struct bound expandedPos[56] = { + {1,1,4,2},{6,1,4,2},{11,1,4,2},{16,1,4,2},{21,1,4,2}, //F1-F5 + {19,4,3,3},{19,10,3,3},{16,7,3,3},{22,7,3,3},//Orthagonal UDLR + {22,4,3,3},{16,10,3,3},{16,4,3,3},{22,10,3,3},//Diagonal Shift Clockwise + {1,5,4,3},{6,5,4,3},{11,5,4,3}, //2nd + {1,9,4,3},{6,9,4,3},{11,9,4,3}, //Alpha + {1,14,4,2},{6,14,4,2},{11,14,4,2},{16,14,4,2},{21,14,4,2}, + {1,17,4,2},{6,17,4,2},{11,17,4,2},{16,17,4,2},{21,17,4,2}, + {1,20,4,2},{6,20,4,2},{11,20,4,2},{16,20,4,2},{21,20,4,2}, + + {1,23,4,2},{6,24,4,2},{11,24,4,2},{16,24,4,2},{21,23,4,2}, + {1,26,4,2},{6,27,4,2},{11,27,4,2},{16,27,4,2},{21,26,4,2}, + {1,29,4,2},{6,30,4,2},{11,30,4,2},{16,30,4,2},{21,29,4,2}, + {1,32,4,2},{6,33,4,2},{11,33,4,2},{16,33,4,2},{21,32,4,2}, + {1,35,4,2},{1,36,4,1} //On +}; + +void outputVRAM(); +void initLCDcontroller(); +void copyFrame(); +int terminateLCDcontroller(); +void displayFrame(); + +/* Replacement File IO */ +uint8_t ti_Open(const char* name, const char* mode) { + return 0; +} +uint8_t ti_Close(uint8_t handle) { + return 0; +} +uint8_t ti_Seek(int offset, unsigned int origin, uint8_t handle) { + return 0; +} +size_t ti_Read(void *data, size_t size, size_t count, uint8_t handle) { + return 0; +} +/* Replacement File IO */ + +/* Replacement Libary Functions */ + +uint24_t timer_Get(uint8_t timer) { + outputVRAM(); + double c = ( (double)clock() ) / ( (double)CLOCKS_PER_SEC ); //Time in seconds + c *= 32768.0; + uint32_t t = ((uint32_t)c) % 16777216; + uint24_t g = t; + return g; +} + +const uint8_t* KEYS; +int KEYCOUNT; +enum keyCode { + KB_Graph , KB_Trace , KB_Zoom , KB_Window , KB_Yequ , KB_2nd , KB_Mode , KB_Del , + KB_Sto = 9, KB_Ln , KB_Log , KB_Square , KB_Recip , KB_Math , KB_Alpha , + KB_0 , KB_1 , KB_4 , KB_7 , KB_Comma , KB_Sin , KB_Apps , KB_GraphVar , + KB_DecPnt , KB_2 , KB_5 , KB_8 , KB_LParen , KB_Cos , KB_Prgm , KB_Stat , + KB_Chs , KB_3 , KB_6 , KB_9 , KB_RParen , KB_Tan , KB_Vars , + KB_Enter = 40 , KB_Add , KB_Sub , KB_Mul , KB_Div , KB_Power , KB_Clear , + KB_Down = 48 , KB_Left , KB_Right , KB_Up +}; + +uint8_t kb_Data[8]; + +enum keyBit { + kb_Graph = 1 , kb_Trace = 2 , kb_Zoom = 4 , kb_Window = 8 , kb_Yequ = 16 , kb_2nd = 32 , kb_Mode = 64 , kb_Del = 128 , + kb_Sto = 2 , kb_Ln = 4 , kb_Log = 8 , kb_Square = 16, kb_Recip = 32 , kb_Math = 64 , kb_Alpha = 128 , + kb_0 = 1 , kb_1 = 2 , kb_4 = 4 , kb_7 = 8 , kb_Comma = 16 , kb_Sin = 32 , kb_Apps = 64 , kb_GraphVar = 128 , + kb_DecPnt = 1 , kb_2 = 2 , kb_5 = 4 , kb_8 = 8 , kb_LParen = 16, kb_Cos = 32 , kb_Prgm = 64 , kb_Stat = 128 , + kb_Chs = 1 , kb_3 = 2 , kb_6 = 4 , kb_9 = 8 , kb_RParen = 16, kb_Tan = 32 , kb_Vars = 64 , + kb_Enter = 1 , kb_Add = 2 , kb_Sub = 4 , kb_Mul = 8 , kb_Div = 16 , kb_Power = 32 , kb_Clear = 64 , + kb_Down = 1 , kb_Left = 2 , kb_Right = 4 , kb_Up = 8 +}; + +void setKey(uint8_t k) { + if (k >= 64) { //Out of Bounds + return; + } + uint8_t bit = 1 << (k % 8); + uint8_t off = k / 8; + kb_Data[off + 1] |= (bit); //+1 otherwise down becomes enter +} +void resetKey(uint8_t k) { + if (k >= 64) { //Out of Bounds + return; + } + uint8_t bit = 1 << (k % 8); + uint8_t off = k / 8; + kb_Data[off + 1] &= ~(bit); +} + +struct keyBind { + uint32_t SDL; + uint8_t CE; +}; + +struct keyBind keyBind0[] = { + /* Alpha Letters */ + {SDLK_a,KB_Math},{SDLK_b,KB_Apps},{SDLK_c,KB_Prgm},{SDLK_d,KB_Recip},{SDLK_e,KB_Sin}, + {SDLK_f,KB_Cos},{SDLK_g,KB_Tan},{SDLK_h,KB_Power},{SDLK_i,KB_Square},{SDLK_j,KB_Comma}, + {SDLK_k,KB_LParen},{SDLK_l,KB_RParen},{SDLK_m,KB_Div},{SDLK_n,KB_Log},{SDLK_o,KB_7}, + {SDLK_p,KB_8},{SDLK_q,KB_9},{SDLK_r,KB_Mul},{SDLK_s,KB_Ln},{SDLK_t,KB_4},{SDLK_u,KB_5}, + {SDLK_v,KB_6},{SDLK_w,KB_Sub},{SDLK_x,KB_Sto},{SDLK_y,KB_1},{SDLK_z,KB_2}, + /* Numbers */ + {SDLK_0,KB_0},{SDLK_1,KB_1},{SDLK_2,KB_2},{SDLK_3,KB_3},{SDLK_4,KB_4}, + {SDLK_5,KB_5},{SDLK_6,KB_6},{SDLK_7,KB_7},{SDLK_8,KB_8},{SDLK_9,KB_9}, + /* Keypad Numbers */ + {SDLK_KP_0,KB_0},{SDLK_KP_1,KB_1},{SDLK_KP_2,KB_2},{SDLK_KP_3,KB_3},{SDLK_KP_4,KB_4}, + {SDLK_KP_5,KB_5},{SDLK_KP_6,KB_6},{SDLK_KP_7,KB_7},{SDLK_KP_8,KB_8},{SDLK_KP_9,KB_9}, + /* Function */ + {SDLK_F1,KB_Yequ},{SDLK_F2,KB_Window},{SDLK_F3,KB_Zoom},{SDLK_F4,KB_Trace},{SDLK_F5,KB_Graph}, + /* Other */ + {SDLK_RETURN,KB_Enter},{SDLK_BACKSPACE,KB_Del},{SDLK_DELETE,KB_Del},{SDLK_CAPSLOCK,KB_Alpha},{SDLK_LSHIFT,KB_2nd}, + {SDLK_COMMA,KB_Comma},{SDLK_COLON,KB_DecPnt},{SDLK_SEMICOLON,KB_DecPnt},{SDLK_QUESTION,KB_Chs},{SDLK_CLEAR,KB_Clear}, + {SDLK_UNDERSCORE,KB_0},{SDLK_SPACE,KB_0},{SDLK_QUOTEDBL,KB_Add},{SDLK_QUOTE,KB_Add},{SDLK_PERIOD,KB_DecPnt}, + /* Math */ + {SDLK_PLUS,KB_Add},{SDLK_MINUS,KB_Sub},{SDLK_ASTERISK,KB_Mul}, + {SDLK_SLASH,KB_Div},{SDLK_CARET,KB_Power},{SDLK_EQUALS,KB_Enter}, + /* Parathesis */ + {SDLK_LEFTPAREN,KB_LParen},{SDLK_RIGHTPAREN,KB_RParen},{SDLK_LEFTBRACKET,KB_Mul},{SDLK_RIGHTBRACKET,KB_Div}, + /* Arrows */ + {SDLK_UP,KB_Up},{SDLK_DOWN,KB_Down},{SDLK_LEFT,KB_Left},{SDLK_RIGHT,KB_Right}, + /* Arbitrary */ + {SDLK_AT,KB_GraphVar},{SDLK_HASH,KB_Stat},{SDLK_DOLLAR,KB_Vars}, + {SDLK_ESCAPE,KB_Clear},{SDLK_HOME,KB_Mode},{SDLK_BACKQUOTE,KB_Mode},{SDLK_BACKQUOTE,KB_Mode} +}; + +struct keyBind keyBind1[] = { + /* Alpha Letters */ + {SDL_SCANCODE_A,KB_Math},{SDL_SCANCODE_B,KB_Apps},{SDL_SCANCODE_C,KB_Prgm},{SDL_SCANCODE_D,KB_Recip},{SDL_SCANCODE_E,KB_Sin}, + {SDL_SCANCODE_F,KB_Cos},{SDL_SCANCODE_G,KB_Tan},{SDL_SCANCODE_H,KB_Power},{SDL_SCANCODE_I,KB_Square},{SDL_SCANCODE_J,KB_Comma}, + {SDL_SCANCODE_K,KB_LParen},{SDL_SCANCODE_L,KB_RParen},{SDL_SCANCODE_M,KB_Div},{SDL_SCANCODE_N,KB_Log},{SDL_SCANCODE_O,KB_7}, + {SDL_SCANCODE_P,KB_8},{SDL_SCANCODE_Q,KB_9},{SDL_SCANCODE_R,KB_Mul},{SDL_SCANCODE_S,KB_Ln},{SDL_SCANCODE_T,KB_4},{SDL_SCANCODE_U,KB_5}, + {SDL_SCANCODE_V,KB_6},{SDL_SCANCODE_W,KB_Sub},{SDL_SCANCODE_X,KB_Sto},{SDL_SCANCODE_Y,KB_1},{SDL_SCANCODE_Z,KB_2}, + /* Numbers */ + {SDL_SCANCODE_0,KB_0},{SDL_SCANCODE_1,KB_1},{SDL_SCANCODE_2,KB_2},{SDL_SCANCODE_3,KB_3},{SDL_SCANCODE_4,KB_4}, + {SDL_SCANCODE_5,KB_5},{SDL_SCANCODE_6,KB_6},{SDL_SCANCODE_7,KB_7},{SDL_SCANCODE_8,KB_8},{SDL_SCANCODE_9,KB_9}, + /* Keypad Numbers */ + {SDL_SCANCODE_KP_0,KB_0},{SDL_SCANCODE_KP_1,KB_1},{SDL_SCANCODE_KP_2,KB_2},{SDL_SCANCODE_KP_3,KB_3},{SDL_SCANCODE_KP_4,KB_4}, + {SDL_SCANCODE_KP_5,KB_5},{SDL_SCANCODE_KP_6,KB_6},{SDL_SCANCODE_KP_7,KB_7},{SDL_SCANCODE_KP_8,KB_8},{SDL_SCANCODE_KP_9,KB_9}, + /* Function */ + {SDL_SCANCODE_F1,KB_Yequ},{SDL_SCANCODE_F2,KB_Window},{SDL_SCANCODE_F3,KB_Zoom},{SDL_SCANCODE_F4,KB_Trace},{SDL_SCANCODE_F5,KB_Graph}, + /* Other */ + {SDL_SCANCODE_RETURN,KB_Enter},{SDL_SCANCODE_BACKSPACE,KB_Del},{SDL_SCANCODE_DELETE,KB_Del},{SDL_SCANCODE_CAPSLOCK,KB_Alpha},{SDL_SCANCODE_LSHIFT,KB_2nd}, + {SDL_SCANCODE_COMMA,KB_Comma},{SDL_SCANCODE_SEMICOLON,KB_DecPnt}, + {SDL_SCANCODE_SPACE,KB_0},{SDL_SCANCODE_APOSTROPHE,KB_Add},{SDL_SCANCODE_PERIOD,KB_DecPnt}, + /* Math */ + {SDL_SCANCODE_EQUALS,KB_Enter},{SDL_SCANCODE_KP_ENTER,KB_Enter}, + {SDL_SCANCODE_KP_PLUS,KB_Add},{SDL_SCANCODE_KP_MINUS,KB_Sub},{SDL_SCANCODE_KP_MULTIPLY,KB_Mul},{SDL_SCANCODE_KP_DIVIDE,KB_Div},{SDL_SCANCODE_KP_DECIMAL,KB_DecPnt}, + /* Parathesis */ + {SDL_SCANCODE_LEFTBRACKET,KB_Mul},{SDL_SCANCODE_RIGHTBRACKET,KB_Div}, + /* Arrows */ + {SDL_SCANCODE_UP,KB_Up},{SDL_SCANCODE_DOWN,KB_Down},{SDL_SCANCODE_LEFT,KB_Left},{SDL_SCANCODE_RIGHT,KB_Right}, + /* Arbitrary */ + {SDL_SCANCODE_ESCAPE,KB_Clear},{SDL_SCANCODE_HOME,KB_Mode},{SDL_SCANCODE_GRAVE,KB_Mode} +}; +struct keyBind keyBind2[] = { //WASD + /* Keypad Numbers */ + {SDL_SCANCODE_KP_0,KB_0},{SDL_SCANCODE_KP_1,KB_1},{SDL_SCANCODE_KP_2,KB_2},{SDL_SCANCODE_KP_3,KB_3},{SDL_SCANCODE_KP_4,KB_4}, + {SDL_SCANCODE_KP_5,KB_5},{SDL_SCANCODE_KP_6,KB_6},{SDL_SCANCODE_KP_7,KB_7},{SDL_SCANCODE_KP_8,KB_8},{SDL_SCANCODE_KP_9,KB_9}, + /* Arrows */ + {SDL_SCANCODE_W,KB_Up},{SDL_SCANCODE_S,KB_Down},{SDL_SCANCODE_A,KB_Left},{SDL_SCANCODE_D,KB_Right}, + {SDL_SCANCODE_UP,KB_Up},{SDL_SCANCODE_DOWN,KB_Down},{SDL_SCANCODE_LEFT,KB_Left},{SDL_SCANCODE_RIGHT,KB_Right}, + /* Primary */ + {SDL_SCANCODE_E,KB_Alpha},{SDL_SCANCODE_Q,KB_2nd},{SDL_SCANCODE_RETURN,KB_Enter}, + /* Other */ + {SDL_SCANCODE_Z,KB_Yequ}, + {SDL_SCANCODE_LSHIFT,KB_GraphVar}, + {SDL_SCANCODE_X,KB_Mode}, + {SDL_SCANCODE_C,KB_Power}, + {SDL_SCANCODE_P,KB_Del}, +}; + +void kb_Reset() { + for (uint8_t i = 0; i < 7; i++) { + kb_Data[i] = 0; + } +} + + + +/* Replacement Libary Functions */ +uint8_t tempKey[56]; //Allows for the same key to be binded to more than one thing +void kb_Scan() { + SDL_PollEvent(&event); + KEYS = SDL_GetKeyboardState(&KEYCOUNT); + uint32_t length = sizeof(keyBindSelection)/sizeof(keyBindSelection[0]); + for (uint32_t i = 0; i < length; i++) { + if (KEYS[keyBindSelection[i].SDL] == 1) { + //printf("%s\n",SDL_GetKeyName(keyBindSelection[i].SDL)); + //printf("%d %d,",q,keyBindSelection[i].CE); fflush(stdout); + setKey(keyBindSelection[i].CE); + tempKey[keyBindSelection[i].CE] = 1; + } + } + for (uint8_t i = 0; i < 56; i++) { + if (tempKey[i] == 0) { + resetKey(i); + } + tempKey[i] = 0; + } +} + +void panFrame() { + uint32_t lcdBase = 0xD00000 | (*frameBase & 0x7FFF8); + if (lcdBase > 0xD65800 || lcdBase < 0xD40000 - (resX * resY)) { + for (u32 r = 0; r < 153600; r++) { + videoCopy[r] = 0x00; + } + return; + } + if (lcdBase == 0xD40000) { //Fast Case + for (u32 r = 0; r < 153600; r++) { + videoCopy[r] = _VRAM[r]; + } + } else if (lcdBase < 0xD40000) { //Above + u32 dif = 0xD40000 - lcdBase; + for (u32 r = 0; r < dif; r++) { + videoCopy[r] = 0x00; + } + for (u32 r = 0; r < 153600 - dif; r++) { + if (r + dif >= 0 && r + dif < 153600 - 1) { + videoCopy[r + dif] = _VRAM[r]; + } else { + videoCopy[r + dif] = 0x00; + } + } + } else if (lcdBase > 0xD40000) { //Below + u32 dif = lcdBase - 0xD40000; + for (u32 r = 0; r < 153600 - dif; r++) { + if (r + dif >= 0 && r + dif < 153600 - 1) { + videoCopy[r] = _VRAM[r + dif]; + } else { + videoCopy[r] = 0x00; + } + } + for (u32 r = 153600 - dif; r < 153600; r++) { + videoCopy[r] = 0x00; + } + } +} + +void outputVRAM() { + if (SDL_PollEvent(&event) && event.type == SDL_QUIT) { + exit(0); + } + + //printf("%X,%X,%X\n",*frameBase,0xD40000,dif); fflush(stdout); + panFrame(); + + for (u16 s = 0; s < 256; s++) { + color16[s] = _paletteRAM[s]; + } + + displayFrame(); +} + +void initLCDcontroller() { + SDL_Init(SDL_INIT_VIDEO); + window = SDL_CreateWindow("Super-Sweeper Windows Edition", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, resX * scale, resY * scale,0); + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0); + SDL_RenderClear(renderer); + buffer = SDL_CreateTexture(renderer,SDL_PIXELFORMAT_RGB24,SDL_TEXTUREACCESS_STREAMING, resX * scale, resY * scale); +} +//#define videoCopyArray uint8_t c = ((uint8_t*)VRAM)[z] +#define videoCopyArray uint8_t c = videoCopy[z] + +void blit16bpp(uint8_t* data) { + return; //Real time conversion will be painful +} +void blit8bpp(uint8_t* data) { + if (scale == 1) { + uint32_t w = 0; + uint32_t z = 0; + for (uint32_t y = 0; y < resY; y++) { + for (uint32_t x = 0; x < resX; x++) { + videoCopyArray; + data[w] = colorR[c]; w++; + data[w] = colorG[c]; w++; + data[w] = colorB[c]; w++; + z++; + } + } + } else { + uint32_t w = 0; + uint32_t z = 0; + for (uint32_t y = 0; y < resY; y++) { + for (uint8_t v = 0; v < scale; v++) { + for (uint32_t x = 0; x < resX; x++) { + videoCopyArray; + for (uint8_t u = 0; u < scale; u++) { + data[w] = colorR[c]; w++; + data[w] = colorG[c]; w++; + data[w] = colorB[c]; w++; + } + z++; + } + z -= 320; + } + z += 320; + } + } +} +void blit4bpp(uint8_t* data) { + if (scale == 1) { + uint32_t w = 0; + uint32_t z = 0; + for (uint32_t y = 0; y < resY; y++) { + for (uint32_t x = 0; x < resX / 2; x++) { + videoCopyArray; + data[w] = colorR[c & 15]; w++; + data[w] = colorG[c & 15]; w++; + data[w] = colorB[c & 15]; w++; + data[w] = colorR[(c >> 4) & 15]; w++; + data[w] = colorG[(c >> 4) & 15]; w++; + data[w] = colorB[(c >> 4) & 15]; w++; + z++; + } + } + } else { + uint32_t w = 0; + uint32_t z = 0; + for (uint32_t y = 0; y < resY; y++) { + for (uint8_t v = 0; v < scale; v++) { + for (uint32_t x = 0; x < resX / 2; x++) { + videoCopyArray; + for (uint8_t u = 0; u < scale; u++) { + data[w] = colorR[c & 15]; w++; + data[w] = colorG[c & 15]; w++; + data[w] = colorB[c & 15]; w++; + data[w] = colorR[(c >> 4) & 15]; w++; + data[w] = colorG[(c >> 4) & 15]; w++; + data[w] = colorB[(c >> 4) & 15]; w++; + } + z++; + } + z -= 160; + } + z += 160; + } + } +} + +uint8_t darkMode = 0; +void copyFrame(uint8_t* data) { + if (data == NULL) { + printf("ERROR | Buffer Pointer is Void \n"); fflush(stdout); + } + + if (_videoMode & 0x100) { + //Converts 1555 to 888 Color + for (uint32_t i = 0; i < 256; i++) { + uint16_t col = paletteRAM[i]; + colorB[i] = (col & 31) << 3; + col >>= 5; + colorG[i] = col & 1024 ? 4 : 0; + colorG[i] += (col & 31) << 3; + col >>= 5; + colorR[i] = (col & 31) << 3; + } + //Scales color (Otherwise white is 248,252,248) + for (uint32_t i = 0; i < 256; i++) { //Magic Numbers: 35,84 Floor 32,64 Round + colorB[i] += (colorB[i] / 32); + colorG[i] += (colorG[i] / 64); + colorR[i] += (colorR[i] / 32); + } + } else { + //Converts 1555 to 888 Color + for (uint32_t i = 0; i < 256; i++) { + uint16_t col = paletteRAM[i]; + colorR[i] = (col & 31) << 3; + col >>= 5; + colorG[i] = col & 1024 ? 4 : 0; + colorG[i] += (col & 31) << 3; + col >>= 5; + colorB[i] = (col & 31) << 3; + } + //Scales color (Otherwise white is 248,252,248) + for (uint32_t i = 0; i < 256; i++) { //Magic Numbers: 35,84 Floor 32,64 Round + colorR[i] += (colorB[i] / 32); + colorG[i] += (colorG[i] / 64); + colorB[i] += (colorR[i] / 32); + } + } + if (darkMode) { + for (uint32_t i = 0; i < 256; i++) { + colorB[i] ^= 0xFF; + colorG[i] ^= 0xFF; + colorR[i] ^= 0xFF; + } + } + if ((*videoMode & 0xF) == 0x5) { + blit4bpp(data); + } + if ((*videoMode & 0xF) == 0x7) { + blit8bpp(data); + } + if ((*videoMode & 0xF) == 0xD) { + blit16bpp(data); + } +} + +int terminateLCDcontroller() { + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); + return EXIT_SUCCESS; +} + +void displayFrame() { + if (SDL_PollEvent(&event) && event.type == SDL_QUIT) { + terminateLCDcontroller(); + exit(0); + } + + uint8_t *frame = NULL; + + SDL_LockTexture(buffer,NULL,(void **) &frame,&pitch); + + copyFrame(frame); + + SDL_UnlockTexture(buffer); + SDL_RenderCopy(renderer, buffer, NULL, NULL); + + SDL_RenderPresent(renderer); +} + +#endif /* X86RENDER_H */ \ No newline at end of file