diff --git a/Makefile b/Makefile index 8e433d0..50dd0df 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ OBJ_DIRECTORY = ./.obj/ CC = cc -FLAGS = -c -Wall -Wextra -Werror -g +FLAGS = -c -Wall -Wextra -Werror -g -no-pie INCLUDES = ./headers/so_long.h diff --git a/collectible_utils.c b/collectible_utils.c index dd3c2e9..de47b9c 100644 --- a/collectible_utils.c +++ b/collectible_utils.c @@ -6,7 +6,7 @@ /* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/03 03:24:55 by jbadaire #+# #+# */ -/* Updated: 2023/10/10 19:35:28 by jbadaire ### ########.fr */ +/* Updated: 2023/10/12 08:57:08 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,20 +19,18 @@ t_collectible *load_collectibles(t_world *world) { pos_x = 0; pos_y = 0; - collectible = malloc(sizeof (t_collectible)); - if(!collectible) - return (NULL); + collectible = NULL; while (world->map[pos_y]) { while (world->map[pos_y] && pos_x < (int) ft_strlen(world->map[0])) { if (world->map[pos_y][pos_x] == 'C') { t_location location; - location.x = ++pos_x; - location.y = ++pos_y; - if(!collectible->location) + location.x = pos_x; + location.y = pos_y; + if(!collectible) collectible = create_collectible(location); else - collectible->next = create_collectible(location); + collectible->next = create_collectible(location); } pos_x++; } @@ -52,60 +50,54 @@ t_collectible *create_collectible(t_location location) if(!collectible) return (NULL); - collectible->location = create_location(location.x, location.y); + collectible->location = location; collectible->collected = 0; + collectible->is_set = _true; collectible->next = NULL; return (collectible); } -int count_collectibles(t_collectible *collectibles, t_boolean o_uncollected, t_boolean o_collected) +int count_collectibles(t_collectible collectibles, t_boolean o_uncollected, t_boolean o_collected) { - t_collectible *copy; int count; count = 0; - copy = collectibles; - - if (!copy) - return (0); - while (copy) + while (collectibles.is_set) { - if(o_uncollected && !copy->collected) + if(o_uncollected && !collectibles.collected) count++; - if(o_collected && copy->collected) + if(o_collected && collectibles.collected) count++; - copy = copy->next; + if(collectibles.next != NULL) + collectibles = *collectibles.next; + else + break; } return (count); } -t_collectible *get_collectible_at(t_world *world, t_location *location) +t_collectible *get_collectible_at(t_world world, t_location location) { - t_collectible *copy; - copy = world->player->collectibles; - while (copy) + while (world.player.collectibles) { - if(loc_equals(location, copy->location)) - return copy; - copy = copy->next; + if(loc_equals(location, world.player.collectibles->location)) + return (world.player.collectibles); + world.player.collectibles = world.player.collectibles->next; } return (NULL); } - +#include "stdio.h" void update_collectible(t_collectible *collectibles, t_location location, t_boolean collected) { - t_collectible *copy; - - copy = collectibles; - while (copy->next) + while (collectibles) { - if(copy->location->x == location.x && copy->location->y == location.y) { - copy->collected = collected; + if(loc_equals(collectibles->location, location)) { + collectibles->collected = collected; break; } - copy = copy->next; + collectibles = collectibles->next; } } \ No newline at end of file diff --git a/frees.c b/frees.c index c67f2c7..1e45511 100644 --- a/frees.c +++ b/frees.c @@ -6,65 +6,47 @@ /* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/03 10:21:10 by jbadaire #+# #+# */ -/* Updated: 2023/10/10 14:58:36 by jbadaire ### ########.fr */ +/* Updated: 2023/10/12 19:51:21 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" void free_map(t_world *world) { - int length_y; + int index; - length_y = 0; - while (world->length_y < length_y) { - free(world->map[length_y]); - length_y++; + index = 0; + while (world->map && world->map[index]) { + free(world->map[index]); + index++; } - free(world->map); + free((world->map)); } -void free_collectibles(t_list **collectibles) { - t_list *list; - t_list *copy; - - list = *collectibles; - copy = list; - while (copy->next) - { - if(copy->next == NULL) { - free(list->content); - copy = list; - } - copy = copy->next; - - } - free(list->content); - free(list); +void free_textures(t_game *game) +{ + t_textures *textures = &game->textures; + if(textures->wall.is_set) + mlx_destroy_image(game->mlx, game->textures.wall.texture); + if(textures->player.is_set) + mlx_destroy_image(game->mlx, game->textures.player.texture); + if(textures->collectible.is_set) + mlx_destroy_image(game->mlx, game->textures.collectible.texture); + if(textures->grass.is_set) + mlx_destroy_image(game->mlx, game->textures.grass.texture); + if(textures->exit.is_set) + mlx_destroy_image(game->mlx, game->textures.exit.texture); } -void free_textures(t_textures *textures) +void free_collectibles(t_collectible *collectible) { - if(textures == NULL) return; - if(textures->wall != NULL) - { - free(textures->wall->texture); - free(textures->wall); - } - if(textures->player != NULL) - { - free(textures->player->texture); - free(textures->player); - } - if(textures->collectible != NULL) - { - free(textures->collectible->texture); - free(textures->collectible); - } - if(textures->grass != NULL) + t_collectible *copy; + + while (collectible != NULL) { - free(textures->grass->texture); - free(textures->grass); + copy = collectible; + collectible = collectible->next; + free(copy); } - free(textures); } \ No newline at end of file diff --git a/graphics_utils.c b/graphics_utils.c index 9e775fa..3046db4 100644 --- a/graphics_utils.c +++ b/graphics_utils.c @@ -6,48 +6,35 @@ /* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/03 12:56:12 by jbadaire #+# #+# */ -/* Updated: 2023/10/10 15:20:11 by jbadaire ### ########.fr */ +/* Updated: 2023/10/12 08:56:07 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" -#include "minilibx-linux/mlx.h" -t_textures *load_textures(void *mlx) +t_textures load_textures(void *mlx) { - t_textures *textures; + t_textures textures; - textures = malloc(sizeof (t_textures)); - if(!textures) - return (NULL); - - textures->wall = load_texture(mlx, '1', "./textures/wall.xpm"); - textures->grass = load_texture(mlx, '0', "./textures/grass.xpm"); - textures->player = load_texture(mlx, 'P', "./textures/player.xpm"); - textures->collectible = load_texture(mlx, 'C', "./textures/collectible.xpm"); - textures->exit = load_texture(mlx, 'E', "./textures/exit.xpm"); - - if (textures->wall == NULL || textures->grass == NULL || textures->exit == NULL) - return (NULL); - if (textures->collectible == NULL || textures->player == NULL) - return (NULL); + textures.wall = load_texture(mlx, '1', "./textures/wall.xpm"); + textures.grass = load_texture(mlx, '0', "./textures/grass.xpm"); + textures.player = load_texture(mlx, 'P', "./textures/player.xpm"); + textures.collectible = load_texture(mlx, 'C', "./textures/collectible.xpm"); + textures.exit = load_texture(mlx, 'E', "./textures/exit.xpm"); return (textures); } -t_texture *load_texture(void *mlx, char character, char *path) +t_texture load_texture(void *mlx, char character, char *path) { int img_width; int img_height; - t_texture *texture; - - texture = malloc(sizeof(t_texture)); - if(!texture) - return (NULL); + t_texture texture; - texture->character = character; - texture->texture = mlx_xpm_file_to_image(mlx, path, &img_width, &img_height); + texture.character = character; + texture.texture = mlx_xpm_file_to_image(mlx, path, &img_width, &img_height); + texture.is_set = _true; return (texture); } @@ -71,3 +58,16 @@ void draw_type(void *mlx, void *mlx_window, t_world *world, t_texture texture) } } +void draw_collectibles(t_game game) +{ + t_location loc; + void *texture; + + texture = game.textures.collectible.texture; + while (game.world.player.collectibles) + { + loc = game.world.player.collectibles->location; + mlx_put_image_to_window(game.mlx, game.window, texture, loc.x * 128, loc.y * 128); + game.world.player.collectibles = game.world.player.collectibles->next; + } +} \ No newline at end of file diff --git a/libft/ft_strtrim.c b/libft/ft_strtrim.c index e2c37b6..3b368a7 100644 --- a/libft/ft_strtrim.c +++ b/libft/ft_strtrim.c @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ft_strtrim.c :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: jbadaire +#+ +:+ +#+ */ +/* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2023/01/11 10:08:19 by jbadaire #+# #+# */ -/* Updated: 2023/01/17 17:50:54 by jbadaire ### ########lyon.fr */ +/* Created: 2023/10/03 16:00:38 by jbadaire #+# #+# */ +/* Updated: 2023/10/03 16:00:38 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libft/libft.h b/libft/libft.h index 66497a0..0e09188 100644 --- a/libft/libft.h +++ b/libft/libft.h @@ -18,7 +18,7 @@ # include "unistd.h" # ifndef BUFFER_SIZE -# define BUFFER_SIZE 4 +# define BUFFER_SIZE 50 # endif int ft_isalpha(int c); diff --git a/location_utils.c b/location_utils.c index 1009021..73eebd2 100644 --- a/location_utils.c +++ b/location_utils.c @@ -12,20 +12,10 @@ #include "so_long.h" -t_location *create_location(int x, int y) +t_boolean loc_equals(t_location loc_1, t_location loc_2) { - t_location *location; - - location = malloc(sizeof (t_location)); - if(!location) - return (NULL); - - location->x = x; - location->y = y; - return (location); -} - -t_boolean loc_equals(t_location *loc_1, t_location *loc_2) -{ - return loc_1->x == loc_2->x && loc_1->y == loc_2->y; + if(loc_1.x == loc_2.x && loc_1.y == loc_2.y) + return (_true); + else + return (_false); } \ No newline at end of file diff --git a/main.c b/main.c index c8ae1df..087b616 100644 --- a/main.c +++ b/main.c @@ -6,81 +6,64 @@ /* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/02 16:19:55 by jbadaire #+# #+# */ -/* Updated: 2023/10/10 19:06:42 by jbadaire ### ########.fr */ +/* Updated: 2023/10/12 20:02:26 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" -#include "stdio.h" -#include "minilibx-linux/mlx.h" #include - int main(int argc, char *argv[]) { - int value; - t_world *world; - - world = malloc(sizeof(t_world)); - if(!world) - return (0); + void *mlx; + void *window; + int value; + t_textures textures; + t_game game; - value = handle_launch_error(argc, argv, world); + value = handle_launch_error(argc, argv, &game.world); if(value == -1) return (0); - t_location p_pos = find_element(world, 'P'); - t_location *start_location = create_location(p_pos.x, p_pos.y); - t_collectible *collectibles_list = load_collectibles(world); + game.world.exit = find_element(game.world, 'E'); + game.world.player = init_player(find_element(game.world, 'P'), load_collectibles(&game.world)); - t_player *player = init_player(start_location, collectibles_list); - world->player = player; - - if(!is_valid_map(world)) + if(!is_valid_map(game.world)) { ft_putstr_fd("Veuillez verifier votre map (rectangle, collectibles, sortie, ect..)", 1); - free_map(world); + free_map(&game.world); return (-1); } - void *mlx; - mlx = mlx_init(); if(!mlx) { return (0); } - t_textures *textures; textures = load_textures(mlx); - if(textures == NULL) - return (0); - - t_game *game; - - game = malloc(sizeof (t_game)); - if(!game) - return (0); - - game->mlx = mlx; - game->world = world; - game->textures = textures; - printf("\nPOS Y %d\n", game->world->player->location->y); - printf("\nPOS X %d\n", game->world->player->location->x); - - void *window = mlx_new_window(mlx, 128 * ft_strlen(world->map[0]), 128 * world->length_y, "Xe'Burger"); - game->window = window; + game.mlx = mlx; + game.textures = textures; - draw_type(mlx, window, world, *textures->wall); - draw_type(mlx, window, world, *textures->grass); - draw_type(mlx, window, world, *textures->player); - draw_type(mlx, window, world, *textures->collectible); - draw_type(mlx, window, world, *textures->exit); + window = mlx_new_window(mlx, 128 * ft_strlen(game.world.map[0]), 128 * game.world.length_y, "Xe'Burger"); + game.window = window; + draw_type(mlx, window, &game.world, textures.wall); + draw_type(mlx, window, &game.world, textures.grass); + draw_type(mlx, window, &game.world, textures.player); + draw_type(mlx, window, &game.world, textures.exit); + draw_collectibles(game); - mlx_hook(window, 2, (1L<<0), on_player_move, game); + mlx_hook(window, 2, (1L<<0), on_player_move, &game); mlx_loop(mlx); + free_map(&game.world); + free_textures(&game); + free_collectibles(game.world.player.collectibles); + mlx_destroy_window(mlx, window); + mlx_destroy_display(mlx); + free(mlx); + return 0; } diff --git a/maps_utils.c b/maps_utils.c index bc54ab1..7eed109 100644 --- a/maps_utils.c +++ b/maps_utils.c @@ -17,11 +17,17 @@ t_world *load_map(int fd, char *path, t_world *world) int index; int y; char *s; + char *tmp; index = 0; y = 0; - while (get_next_line(fd) != NULL) + tmp = get_next_line(fd); + while (tmp != NULL) + { + free(tmp); + tmp = get_next_line(fd); index++; + } world->map = malloc((index + 1) * sizeof(char *)); if (!world->map) return (world); @@ -30,15 +36,17 @@ t_world *load_map(int fd, char *path, t_world *world) fd = open(path, O_RDONLY); while (y <= index) { s = get_next_line(fd); - if(s != NULL) + if(s != NULL) { world->map[y] = ft_strtrim(s, "\n"); + free(s); + } y++; } return (world->length_y = index, world); } -t_boolean is_valid_map(t_world *world) +t_boolean is_valid_map(t_world world) { t_location start_loc; t_location exit_loc; @@ -69,4 +77,13 @@ void is_solvable(t_world *world, int x, int y) } return ; -} \ No newline at end of file +} + +t_boolean is_inside_world(int y, int x, t_world world) +{ + if(y < 0 || y > world.length_y) + return (_false); + if(x < 0 || x > (int) ft_strlen(world.map[0])) + return (_false); + return (_true); +} diff --git a/player.c b/player.c index 7567a6c..eb1a792 100644 --- a/player.c +++ b/player.c @@ -6,39 +6,37 @@ /* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/03 10:22:53 by jbadaire #+# #+# */ -/* Updated: 2023/10/10 19:59:55 by jbadaire ### ########.fr */ +/* Updated: 2023/10/12 11:09:13 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ #include "so_long.h" -#include "stdio.h" -#include "minilibx-linux/mlx.h" -t_player *init_player(t_location *location, t_collectible *collectibles) +t_player init_player(t_location location, t_collectible *collectibles) { - t_player *player; + t_player player; - player = malloc(sizeof (t_player)); - if(!player) - return (NULL); + location.x--; + location.y--; + player.location.x = location.x; + player.location.y = location.y; - location->x--; - location->y--; - player->location = location; - player->collectibles = collectibles; + player.collectibles = collectibles; + player.movements = 0; return (player); } - -t_boolean is_inside_world(int y, int x, t_world *world) +void update_graphics(t_game *game) { - if(y < 0 || y > world->length_y) - return (_false); - if(x < 0 || x > (int) ft_strlen(world->map[0])) - return (_false); - return (_true); -} + t_location location; + void *texture; + location = game->world.player.location; + texture = game->textures.player.texture; + game->world.player.movements = game->world.player.movements + 1; + + mlx_put_image_to_window(game->mlx,game->window,texture,location.x * 128,location.y * 128); +} int on_player_move(int keycode, t_game *game) { @@ -47,58 +45,47 @@ int on_player_move(int keycode, t_game *game) //a = 97 //d = 100 - if(!can_move(keycode, game->world)) + if(!can_move(keycode, *game)) + return -1; + + if(keycode != 119 && keycode != 115 && keycode != 97 && keycode != 100) return -1; mlx_put_image_to_window(game->mlx, game->window, - game->textures->grass->texture, - game->world->player->location->x * 128, - game->world->player->location->y * 128); + game->textures.grass.texture, + game->world.player.location.x * 128, + game->world.player.location.y * 128); if(keycode == 119) - game->world->player->location->y -= 1; + game->world.player.location.y -= 1; else if(keycode == 115) - game->world->player->location->y += 1; + game->world.player.location.y += 1; else if(keycode == 97) - game->world->player->location->x -= 1; - else if(keycode == 100) - game->world->player->location->x += 1; - else { - mlx_put_image_to_window(game->mlx, - game->window, - game->textures->player->texture, - game->world->player->location->x * 128, - game->world->player->location->y * 128); - return (-1); + game->world.player.location.x -= 1; + else game->world.player.location.x += 1; - } - - printf("\n-> KEYCODE: %d", keycode); - printf("\nPLAYER: \n -> POS Y: %d", game->world->player->location->y); - printf("\nPLAYER: \n -> POS X: %d\n ",game->world->player->location->x); - - mlx_put_image_to_window(game->mlx, - game->window, - game->textures->player->texture, - game->world->player->location->x * 128, - game->world->player->location->y * 128); + update_graphics(game); + t_collectible *collectible = get_collectible_at(game->world, game->world.player.location); + if (collectible != NULL && !collectible->collected){ + update_collectible(collectible, game->world.player.location, _true); + } return 0; } -t_boolean can_move(int code, t_world *world) +t_boolean can_move(int code, t_game game) { char **map; int y; int x; - map = world->map; - y = world->player->location->y; - x = world->player->location->x; + map = game.world.map; + y = game.world.player.location.y; + x = game.world.player.location.x; if(code == 119) y--; else if(code == 115) @@ -107,26 +94,29 @@ t_boolean can_move(int code, t_world *world) x--; else if(code == 100) x++; - if(!is_inside_world(y, x, world)) + if(!is_inside_world(y, x, game.world)) return (_false); - return (is_solid(map[y][x], world->player)); + return (!is_solid(map[y][x], game)); } -t_boolean is_solid(char c, t_player *player) +t_boolean is_solid(char c, t_game game) { - t_player *copy; - copy = player; + if(!c) return (_true); - while (copy->collectibles) + while (game.world.player.collectibles) { - if(c == 'E' && !copy->collectibles->collected) - return (_true); - copy->collectibles = copy->collectibles->next; + if(c == 'E') {\ + if (!game.world.player.collectibles->collected) + return (_true); + else + mlx_loop_end(game.mlx); + } + game.world.player.collectibles = game.world.player.collectibles->next; } - if(c != '1') + if(c == '1') return (_true); return _false; } diff --git a/so_long.h b/so_long.h index 903ca11..9f456eb 100644 --- a/so_long.h +++ b/so_long.h @@ -6,7 +6,7 @@ /* By: jbadaire +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/10/02 17:59:52 by jbadaire #+# #+# */ -/* Updated: 2023/10/10 17:30:30 by jbadaire ### ########.fr */ +/* Updated: 2023/10/12 17:14:35 by jbadaire ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,99 +16,114 @@ # define SO_LONG_H # include "libft/libft.h" -# include "stdlib.h" +# include "minilibx-linux/mlx.h" -typedef struct s_location { +# include +typedef struct s_location { int x; int y; } t_location; typedef struct s_collectible { - t_location *location; + t_location location; int collected; + t_boolean is_set; struct s_collectible *next; } t_collectible; typedef struct s_player { - t_location *location; + t_location location; t_collectible *collectibles; + int movements; } t_player; typedef struct s_world { char **map; int length_y; - t_player *player; + t_location exit; + t_player player; } t_world; typedef struct s_texture { char character; void *texture; + t_boolean is_set; } t_texture; typedef struct s_textures { - struct s_texture *wall; - struct s_texture *grass; - struct s_texture *collectible; - struct s_texture *player; - struct s_texture *exit; + struct s_texture wall; + struct s_texture grass; + struct s_texture collectible; + struct s_texture player; + struct s_texture exit; } t_textures; typedef struct s_game { - struct s_textures *textures; - struct s_world *world; + struct s_textures textures; + struct s_world world; void *mlx; void *window; } t_game; -int handle_launch_error(int argc, char *argv[], t_world *world); +// ** UTILS ** // +t_boolean loc_equals(t_location loc_1, t_location loc_2); + +// ** MAP ** // t_world *load_map(int fd, char *path, t_world *world); +t_location find_element(t_world world, char type); +void is_solvable(t_world *world, int x, int y); +t_boolean is_valid_map(t_world world); +int count_element(t_world world, char type); + + +// ** MATHS ** // t_boolean is_horizontal_rectangle(t_world world); t_boolean is_vertical_rectangle(t_world world); t_boolean is_rectangle(t_world world); t_boolean is_closed(t_world world); -t_boolean is_valid_map(t_world *world); -t_boolean is_inside_world(int y, int x, t_world *world); - +t_boolean is_inside_world(int y, int x, t_world world); -t_player *init_player(t_location *location, t_collectible *collectibles); +// ** COLLECTIBLES ** // +t_collectible *get_collectible_at(t_world world, t_location location); +void update_collectible(t_collectible *collectibles, t_location location, t_boolean collected); +void draw_collectibles(t_game game); t_collectible *load_collectibles(t_world *world); t_collectible *create_collectible(t_location location); -int count_collectibles(t_collectible *collectibles, t_boolean o_uncollected, t_boolean o_collected); +int count_collectibles(t_collectible collectibles, t_boolean o_uncollected, t_boolean o_collected); -void update_collectible(t_collectible *collectibles, t_location location, t_boolean collected); -void free_collectibles(t_list **collectibles); -t_boolean is_solid(char c, t_player *player); -t_boolean can_move(int code, t_world *world); +// ** TEXTURES ** // +t_textures load_textures(void *mlx); +t_texture load_texture(void *mlx, char character, char *path); +void draw_type(void *mlx, void *mlx_window, t_world *world, t_texture texture); -void is_solvable(t_world *world, int x, int y); -t_world *clone(t_world world); -int count_element(t_world world, char type); -t_textures *load_textures(void *mlx); -t_texture *load_texture(void *mlx, char character, char *path); -void free_textures(t_textures *textures); -void draw_type(void *mlx, void *mlx_window, t_world *world, t_texture texture); +// ** PLAYER ** // int on_player_move(int keycode, t_game *world); +t_boolean is_solid(char c, t_game player); +t_boolean can_move(int code, t_game world); +t_player init_player(t_location location, t_collectible *collectibles); + + +// ** FREES ** // void free_map(t_world *world); -t_location find_element(t_world *world, char type); +void free_textures(t_game *game); +void free_collectibles(t_collectible *collectible); -t_boolean loc_equals(t_location *loc_1, t_location *loc_2); -t_location *create_location(int x, int y); -t_collectible *get_collectible_at(t_world *world, t_location *location); +int handle_launch_error(int argc, char *argv[], t_world *world); #endif diff --git a/textures/collectible.xpm b/textures/collectible.xpm index 089f7d9..fd46c11 100644 --- a/textures/collectible.xpm +++ b/textures/collectible.xpm @@ -1,265 +1,363 @@ /* XPM */ -static char *result[] = { +static char *tacos1697095725[] = { /* columns rows colors chars-per-pixel */ -"128 128 131 2 ", -" c #150000", -". c #1E0502", -"X c #250602", -"o c #260B04", -"O c #2A0B04", -"+ c #370B04", -"@ c #390E07", -"# c #261606", -"$ c #2D1006", -"% c #221907", -"& c #271C08", -"* c #341607", -"= c #361308", -"- c #381308", -"; c #2F1411", -": c #301611", -"> c #252C0A", -", c #292D0B", -"< c #29350D", -"1 c #2A3B0E", -"2 c #3E2824", -"3 c #411712", -"4 c #4E280D", -"5 c #542C0E", -"6 c #5B2D0E", -"7 c #5A310F", -"8 c #5D3310", -"9 c #5B3C11", -"0 c #663611", -"q c #643811", -"w c #6D3F13", -"e c #753217", -"r c #7F351A", -"t c #402423", -"y c #402824", -"u c #4E2822", -"i c #27420F", -"p c #2B4310", -"a c #2E6717", -"s c #2F6E19", -"d c #3D6418", -"f c #2E741A", -"g c #2F791B", -"h c #327C1C", -"j c #367921", -"k c #554212", -"l c #524C14", -"z c #485E17", -"x c #734314", -"c c #7C4916", -"v c #446218", -"b c #416919", -"n c #544240", -"m c #594541", -"M c #66534F", -"N c #635151", -"B c #873A1C", -"V c #8D3C1D", -"C c #903E1D", -"Z c #B2261A", -"A c #C4291D", -"S c #C92C1E", -"D c #D32B1F", -"F c #D82C1F", -"G c #DB2D20", -"H c #EB3022", -"J c #FF3325", -"K c #96401F", -"L c #8B541A", -"P c #975D1C", -"I c #9A5F1D", -"U c #A2651F", -"Y c #A7691F", -"T c #9F4522", -"R c #84572C", -"E c #855B34", -"W c #A14623", -"Q c #A54823", -"! c #A84924", -"~ c #A76920", -"^ c #AA6B20", -"/ c #B77423", -"( c #BB7724", -") c #BD7824", -"_ c #C17B25", -"` c #857674", -"' c #867876", -"] c #887A77", -"[ c #2F871E", -"{ c #2F8A1E", -"} c #31861E", -"| c #31891E", -" . c #318E20", -".. c #329421", -"X. c #339D23", -"o. c #33A224", -"O. c #34AB26", -"+. c #34B027", -"@. c #35B528", -"#. c #35BD29", -"$. c #36C42B", -"%. c #37CD2D", -"&. c #37D12E", -"*. c #38D42F", -"=. c #38D730", -"-. c #39DC31", -";. c #CA8127", -":. c #CE8428", -">. c #D38729", -",. c #D88C2A", -"<. c #DF912C", -"1. c #ED9B2F", -"2. c #EF9D30", -"3. c #F39F30", -"4. c #EDA034", -"5. c #EDA73B", -"6. c #EDAA3E", -"7. c #F5A131", -"8. c #FBA532", -"9. c #8D807D", -"0. c #EDAF44", -"q. c #ECB247", -"w. c #ECB449", -"e. c #ECB94E", -"r. c #ECBE53", -"t. c #ECC055", -"y. c #ECC55B", -"u. c #ECC85E", -"i. c #ECCA60", -"p. c #978B88", -"a. c None", +"128 128 229 2 ", +" c #777316", +". c #AB1611", +"X c #B81D18", +"o c #8D3800", +"O c #933C09", +"+ c #8D3611", +"@ c #8F3B14", +"# c #973C15", +"$ c #BA2219", +"% c #C31D1B", +"& c #C91E1E", +"* c #D2241F", +"= c #CD2422", +"- c #D22323", +"; c #DB2828", +": c #D03828", +"> c #EB2C2B", +", c #F32F2F", +"< c #E93736", +"1 c #FE3333", +"2 c #9B4317", +"3 c #A4441D", +"4 c #A7481F", +"5 c #AA4C21", +"6 c #AC5223", +"7 c #B25326", +"8 c #BD5327", +"9 c #B55628", +"0 c #AD722A", +"q c #DB671D", +"w c #CF4C2C", +"e c #CA572A", +"r c #EF512F", +"t c #FC4532", +"y c #CD7432", +"u c #D27530", +"i c #E66F30", +"p c #EF514A", +"a c #72960F", +"s c #759A0E", +"d c #799E0F", +"f c #668517", +"g c #6F8D1D", +"h c #729613", +"j c #759A13", +"k c #799E13", +"l c #769918", +"z c #7C9E19", +"x c #7CA30E", +"c c #7DA313", +"v c #7DA218", +"b c #778F22", +"n c #759F22", +"m c #73A623", +"M c #78A723", +"N c #7BAC24", +"B c #7FB025", +"V c #9E9215", +"C c #85AF04", +"Z c #86AD0E", +"A c #84B106", +"S c #86B20C", +"D c #8AB30E", +"F c #80A713", +"G c #84AC12", +"H c #88AF14", +"J c #86AA1A", +"K c #9DAD17", +"L c #87B411", +"P c #8BB312", +"I c #8DB916", +"U c #8DB51A", +"Y c #8EBC19", +"T c #93B215", +"R c #9DB214", +"E c #90BA17", +"W c #91B61C", +"Q c #9BB31B", +"! c #91BE1B", +"~ c #A5AC16", +"^ c #ACA819", +"/ c #B6A718", +"( c #A8B419", +") c #B7B217", +"_ c #939428", +"` c #B6862F", +"' c #86A922", +"] c #97A72C", +"[ c #85B525", +"{ c #88B726", +"} c #8CBB26", +"| c #92BB24", +" . c #95BA28", +".. c #9CBE35", +"X. c #A9AC23", +"o. c #B8AA29", +"O. c #A6B525", +"+. c #B5BB2A", +"@. c #B4AE3A", +"#. c #DA820C", +"$. c #DA890C", +"%. c #DB8A0D", +"&. c #DB9804", +"*. c #D89B19", +"=. c #E78C0E", +"-. c #E99F00", +";. c #F58D13", +":. c #E39312", +">. c #E89E16", +",. c #E69919", +"<. c #F3931B", +"1. c #C9A518", +"2. c #D5AF18", +"3. c #DCAF19", +"4. c #C6B318", +"5. c #D9B217", +"6. c #EDA506", +"7. c #EEAB07", +"8. c #ECA50D", +"9. c #F1AD07", +"0. c #F3B407", +"q. c #F6BB07", +"w. c #F2B709", +"e. c #EBA416", +"r. c #EEA914", +"t. c #E9AA19", +"y. c #EEAC19", +"u. c #F0AD1A", +"i. c #EAB913", +"p. c #F1B11E", +"a. c #F0B81F", +"s. c #F9BB1D", +"d. c #CE8D31", +"f. c #F69626", +"g. c #EC8635", +"h. c #EB9930", +"j. c #F79639", +"k. c #C8AA2D", +"l. c #CEAF33", +"z. c #D7A637", +"x. c #ECAC25", +"c. c #F3AA23", +"v. c #F2B423", +"b. c #F4BA25", +"n. c #F2B32D", +"m. c #F6BE29", +"M. c #E8A63C", +"N. c #F4A538", +"B. c #F3B937", +"V. c #93C11D", +"C. c #96C322", +"Z. c #99C624", +"A. c #9CC927", +"S. c #96C428", +"D. c #98C528", +"F. c #9ECB29", +"G. c #9EC03C", +"H. c #A7C72A", +"J. c #B5C428", +"K. c #D8C518", +"L. c #FAC407", +"P. c #FFCE07", +"I. c #F7CA0C", +"U. c #E6C414", +"Y. c #FBC412", +"T. c #C4C527", +"R. c #F9C128", +"E. c #F8C22C", +"W. c #F4C433", +"Q. c #F8C532", +"!. c #F8C63D", +"~. c #F7C939", +"^. c #F9CC3D", +"/. c #ADB951", +"(. c #ED9841", +"). c #F69944", +"_. c #F89945", +"`. c #D4AD49", +"'. c #D7B74F", +"]. c #E8A844", +"[. c #F6A84A", +"{. c #F4BE44", +"}. c #F8AC52", +"|. c #E7B753", +" X c #F2B354", +".X c #F5B76A", +"XX c #A5C448", +"oX c #ABC957", +"OX c #B0CD5E", +"+X c #B4CE67", +"@X c #B5D16C", +"#X c #BBD376", +"$X c #D7C84C", +"%X c #EDC04F", +"&X c #F9CD42", +"*X c #F5C34B", +"=X c #F9CA4B", +"-X c #FAD245", +";X c #E6C955", +":X c #F6C955", +">X c #F9CE55", +",X c #F4CA5A", +".,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.<.I X o o o o o o X 2 ", -": o o o o o o o o $ * * * * * * * * * * * * * * * * * * * * * * * $ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $ * * * * * * * * * * * * * * * $ * * * * * * * $ * * * * * * * * * * * * * * * * * * * * * * * * * * $ o o o o o o o X y ", -": o o o o o o o o o o o o . o o . o o o X . o o o . . o o X X o o o o . o o o . o o o o o . o . o o o . o o X . . o o o . o o o . o o o o o . o o o . o o o . o o o o o o o . o o o o o o o . o o o o . X o o o o . o o o . . o o o o . o o o o o o o o o o o 2 ", -": X o o o o o o o o o o o o o o o o o o o o o o o # o o o o o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X 2 ", -": o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ; o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X y ", -": o o o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o y ", -": X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X y ", -": o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X y ", -": o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o 2 ", -"; X o o X o o X o o . o o o o o . X X o o o o o o o o X . o o o o o o o o o o . o o o . o o o o o X o o . o o o X o o o . o o o o o . o o . o . o o o o o o o . o o o o o X o . o X # . X o o o o o . o o o o o o . o o o X o . o o X o o o o X o X o o X o . 2 ", -"- - @ @ @ @ @ @ @ @ @ @ @ @ = @ @ @ @ @ @ @ + + - @ @ @ = - @ @ @ @ @ @ @ @ @ @ : @ @ @ @ @ @ @ @ @ @ @ - + - + - @ @ @ @ @ @ @ @ @ = @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ = @ @ @ @ @ @ @ = @ @ @ @ + - @ @ @ @ @ @ @ @ @ @ @ - @ @ @ @ @ @ @ = = @ @ = @ + - + - + u ", -"G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H S ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J G ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J G ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J G ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J D ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J G ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J D ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J D ", -"H J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J G ", -"A G G D D G D D F F D F D D F D D D F D D F D D D D D D D D D D G D G G D G D D D D D D D D D D D D D D D D D D F F D F D D F F G G D D G G D G D D G G D G D D F D D F D D F D D F D D D D D D D G S G D D D F F F D F F F D F D G D D G D D G D D G G D G D Z ", -"o o $ o o o O o O O o o O o O O o o O O o O o o O o O O O O O O o X O o o o o X o o O O O O O O O O O o O O O O O o o o O o O o o o o o O $ o o O o o o X o o o O O o O o o O O o O O o o o O O o O O o O O O O o o o o o o o O o o o o $ $ o o o o O o X o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o X o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o ", -"o o X o o o o . o o . o o o o . o o o o o o o . o o . o o $ o o o o o o X o o o . # o o o o o . o o o o o o o . o o . o o o o o o o X o o o o X o o o X o X # . o o o o . o o o o o o o o o o o o o o o o o o . o o o . o o o o o o . o o o o o o o o X o o . o ", -"= - = - - - - * - - * - - - - - - - * * - - - - - - * - - - - - - - = - - - - - - - * - - - - * - - * - - - - * - - * - - - - - * - - - * * - - - - - - - - = = - - - * * - - - - - * - - - - - * - - - - - * - - - - - - - - - - - - - = - - - - - - - - * * * ", -"T W T T T T W T Q T T T T T T K T T T W W Q K W Q Q K W K W Q K T T W T T T T T T T T T T T W T T T T T T T W T W T T T W W W K T T T T T T T W W T T T T T T T T T T W W K Q W W K Q K Q K T T W T T T T T T T W Q K W K W K Q T T T T T T T W T T T T W T W V ", -"T W ! Q ! ! Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! C ", -"T W Q Q Q Q T Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q W W Q Q Q Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q Q Q Q ! V ", -"T W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q W Q Q Q T Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! V ", -"T W Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! V ", -"T Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q W Q Q Q W Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q W ! Q W Q Q Q W Q Q Q Q Q Q Q Q T Q Q Q Q Q Q Q Q W Q W ! Q Q Q Q Q Q Q Q Q W Q Q Q Q Q W Q Q Q Q Q Q W ! Q Q Q Q ! V ", -"T Q Q Q Q Q Q Q Q Q Q W W Q ! ! W Q ! Q W Q ! ! Q Q Q Q Q Q Q W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! W ! Q Q Q Q Q Q Q Q Q Q Q Q Q ! Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! Q W Q Q Q W ! ! W Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q W Q Q ! V ", -"T Q Q Q T Q Q Q W Q W ! ! W ! W Q Q Q Q ! Q W Q Q Q Q Q Q W Q Q T Q Q Q Q T Q Q Q Q W Q Q Q W Q W ! Q W W ! Q W Q Q Q Q Q Q Q Q Q Q Q Q Q W ! W Q Q W Q Q Q Q W Q Q Q Q Q Q Q Q Q Q T Q W Q Q W ! W ! W W Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q ! W Q Q Q Q ! ! ! V ", -"T Q Q Q Q Q Q Q ! ! ! ! ! ! W ! ! ! Q ! Q ! Q Q ! ! Q ! ! ! ! ! ! ! ! Q ! ! Q Q Q ! ! ! ! ! ! Q Q ! ! Q ! ! ! W Q Q ! Q Q Q Q Q Q Q Q Q Q ! ! Q ! ! ! ! Q ! ! ! ! Q ! ! ! Q ! Q Q Q ! ! ! ! ! Q ! ! ! ! ! ! Q ! ! Q ! Q Q Q ! Q Q ! ! Q ! Q ! Q ! Q Q ! ! ! ! V ", -"r B B B B B B B B B B B V V B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B V B B B B B B B B B B B B B B B V B B B B B B B B B B B B B B B B B B B B B B B B B V V B B B B B B B B B B B B B B B B B B B B B B B V B B B B B B B B B B B B B B B e ", -"o o . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X # . o o o o o o o . o o o o o o o o o o X # . o o o o o # o o o o o o o o o o o . o o o o # . o o o o o o o ", -"o o # o o o o o o o o o o o o o . # o o o o o o o o . # o o o o # o o . o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o . . o o # X o o o o X o o o o o o o o o o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X # o o o o o o o o o o o o o o o o o o o o o o o o o o o X # o o o o o o o o o o o o ; o o o o o o o o o o o o o o o o o o o o o o o o o o o o # o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o $ o o o o o o o o o O O o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o O o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o O o o o o o o o o o o ", -"o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o O o o o o O o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o $ o ", -"o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o $ o o o o o o o o o o O o O o o o O o o o o o o o O o o o o o o o o O o o o o o o o o o o o o o o o o ", -"o o o o o o o o o o O o O o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o O o o o X o o o o o o o o o o o o O o O o o o o o o ", -"o X O o o o O O X X X O X X X X O X X O o o X o X X X X o X X X O X X o o o O O O X X X X o X X X X X X o o X o X o X o O X X O O O o X X X X O X X X X o o X X X X X X X X X X o X X o O X X X o o X X X X X X o o O X O X o X o o X X o o X X X X o o o o X X ", -"< < < 1 1 1 < 1 1 1 1 1 1 1 1 1 1 1 < 1 1 1 1 1 1 1 1 1 1 1 1 1 < 1 1 1 1 1 < 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 < 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 < 1 1 1 1 1 1 1 < 1 < 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 , ", -"#.&.&.%.%.%.&.&.%.%.&.%.&.&.%.%.&.%.&.%.%.%.&.&.%.%.%.&.%.&.%.%.%.&.%.&.%.%.%.&.%.%.%.%.&.&.%.%.%.&.&.%.%.%.&.&.%.%.%.%.%.%.%.%.&.%.%.&.%.%.&.%.&.&.%.%.&.%.&.&.%.%.&.%.&.&.%.&.%.%.&.&.%.%.%.%.&.&.%.&.&.&.&.%.&.%.&.%.%.&.&.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.=.O.", -"#.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.O.", -"#.=.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.$.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.$.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.O.", -"#.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.O.", -"#.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.O.", -"#.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.O.", -"#.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.$.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.O.", -"#.&.%.%.%.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.&.%.&.%.%.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.O.", -"$.=.=.&.&.&.&.&.&.%.%.%.%.%.%.%.%.%.&.*.*.*.*.&.&.&.*.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*.&.&.*.&.&.*.*.&.&.&.*.*.*.*.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.&.=.&.=.%.*.&.&.%.%.%.%.%.%.$.%.%.%.%.%.%.%.%.%.%.%.&.&.&.=.=.%.=.=.&.=.&.=.&.=.&.=.=.=.O.", -"h } } } } } } } } #.%.%.%.%.%.%.%.%.X. .j [ .j } } } O.&.%.%.%.%.%.%.&.%.%.%.%.%.%.%.%.%.+. .j } | } } } } } } } } } } } } | | $.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%... . .j . .h .h +.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.O.} } } } } } } } | } .h . .h .} j ", -": X X X X X X X X X.&.%.%.%.%.%.%.=.1 X X X X X X X X a *.%.%.%.%.%.%.$.%.%.%.%.%.%.%.%.=. .X X X X X X X X X X X X X X X X X # @.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., X X X X X X X X .&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.g X X X X X X X X X o X X X X X X X t ", -": X o o X o o o O X.&.%.%.%.%.%.%.%.1 X o o o o o o X s *.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*.j X X O o o o o o o o o o o o o o X & #.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., X o o o o o o X } =.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.=.h X o o o o o o o O o X o o o o o X t ", -": o o o O o o o X X.&.%.%.%.%.%.%.=.p X o o o o o o X s *.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*. .X o o o o o o o o o o o o o o o o & @.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., X o o o o o X X } &.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*.h X X o o o o o o O o O o o o o o X y ", -": o o o o o o o O X.*.%.%.%.%.%.%.&.p X o o o O o o X s *.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*.[ X o o o o o o o o o o o o o o o o & #.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., X O O o o o o X } =.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.=.h X o o o o o o o o o o o o o o o X y ", -": X o o o o o O o X.*.%.%.%.%.%.%.=.p X o o o o o o X s *.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*.[ X o o O o o o O o o o o o o o o X & #.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., O o o o o o o X } =.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.f X o o o o o o o o o o o o o o o X y ", -"* o o o o o o o X X.&.%.%.%.%.%.%.%.1 X o o o o o o X s *.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.*.h X o o o o O o o o o o o o o o o X & #.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., X o o o o o o X } &.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.=.h X X o O o o o o o o o o o o o o X 2 ", -": o o o o o o O o X.&.%.%.%.%.%.%.=.p X o o o o o o X s *.%.%.%.%.%.%.%.%.%.%.%.%.%.%.&.*. .X o o o o O o o o o o o o O o o o & @.&.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%.%., X o o o o o o X .=.%.%.%.%.%.&.$.%.%.%.%.%.%.%.&.&.g X o o o o o o o o o o o o o o o X y ", -": X o o o O o o o X.&.%.%.%.%.%.%.&.p X o o o o o o X a *.&.&.%.&.&.%.&.%.%.%.%.%.%.%.%.=.} X o o o o o o o o o o o o o o o o & #.&.%.&.%.%.%.%.%.%.%.%.%.%.&.$.%.%., X o o o o o o X } &.&.&.&.%.%.$.&.%.%.%.%.%.%.%.%.=.g X X o o o o o o o o o o o o o o o 2 ", -": o o o o o o o o o.-.=.=.&.=.=.&.=.1 X . . . o . . . s -.*.&.&.&.&.&.&.=.&.=.=.=.&.&.=.-.} . . . X . . X . . . . . . o . . X % #.=.&.&.=.&.=.=.=.&.=.=.=.&.=.=.*.&.> . X . . X X . . | -.&.&.&.%.=.=.&.=.&.&.=.&.=.=.&.-.g . X X . . . X . X o o o o o o o o y ", -": X o o o o o o X a .} } } } h } [ l 0 q q q q q q q z } } } } } } } } } } } h h } } } } d 0 q q q q q q q q q q q q q q q q 9 h } .j } h .h } } h } } } .} } } k q q q q q q q 0 b | } } } } } } } h . .h } } } } [ v 0 0 q q q q q q 4 o o o o o o o o 2 ", -": o o o o o o o o X X o X X X X X . ^ 8.3.3.3.3.2.7.8.c . X X X X X X X X X X X X X X X . 6 3.3.3.3.3.3.3.3.3.7.3.3.3.7.3.3.7.>.O X X X X X X X X X X X X X X X X X ( 8.3.3.2.7.2.2.7.0 X X X X X X X X X X X X X X X o . w 8.3.2.7.2.7.3.8.^ . o o o o o o X 2 ", -": o o o o o o o o o o o o o o o o . ^ 7.2.1.1.1.1.1.7.c . o o o o o o o o o o o o o O o X 8 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.:.+ o o o o O o o X o o o o o o o o . / 7.1.1.1.1.1.1.7.0 . o o o o O o o O o o o o o o o . x 7.1.1.1.1.1.1.7.~ . o o o o o o o 2 ", -": o o o o o o o O o o o O o o o o . ^ 7.1.1.1.1.1.1.7.c . X o o o O O o o o o o o o o o . 7 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.:.$ X o o o o o o o o o o o o o o o X / 3.1.1.1.1.1.1.7.q . o o o o o o o X o o o o o o o x 7.1.1.1.1.1.1.7.~ . o o o o o o X 2 ", -": o o o o o O o o o o o o o o o o . ~ 7.1.1.2.1.1.1.7.c X o o o o o o o o o o o o o o o . 8 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.:.$ o o o o o o o o O o o o o o o o . / 7.1.1.1.1.1.1.2.q . o O o o o o o o o o o o o o o . x 7.1.1.1.1.1.1.7.Y . o o o o o o X 2 ", -"* o o o o O o o o o o o o o o o o . ^ 7.1.1.1.1.2.1.7.c . o o o o o o o o o o o o o o o . 8 2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.:.$ o o o o o o o o o o o o o o o o o / 7.1.1.1.1.1.1.7.q . o o o o o o o o o O o o o o o . x 7.1.1.1.1.1.1.7.~ X o o o o o o X y ", -"; o o o o o o o o O o o o o o o o . ~ 7.1.1.1.1.1.1.7.c . o o o o o o o o o o o o o o o . 7 3.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.7.:.$ o o o o o o o o o o o o o o o o o / 7.2.1.1.1.2.1.3.q . o o o o o o o o o o o o o o o . x 7.1.1.1.1.1.2.7.~ . o o o o o o o y ", -"; o o o o o o o o O o o o o o o o . ^ 7.1.1.1.1.1.1.7.c . o o o o o o o o o o o o o o o . 7 2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.:.$ X o o o o o o o o o o o o o o o . / 3.1.1.1.1.1.1.3.0 . o o o o o o O o o o o o o o o . x 7.2.1.1.1.1.2.7.~ . o o o o o o o y ", -": o o o o o o o o o o o o o o o o . ~ 7.1.1.1.1.1.1.7.c . o o o o o o o o o o o o o O o . 7 3.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.2.:.$ o o o o o o o o o o o o o o o o . / 7.1.1.1.1.1.1.3.0 . o o o o o o o o o o o o o o o . x 3.1.1.1.1.1.2.3.~ X o o o o o o X y ", -": X o o o o o o o X . . . . . . Y 7.1.1.1.1.1.1.7.x . . . . . . . . . . . . . . . 5 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.;.o . . . . . . . . . . . . . . X . . / 3.1.2.1.1.1.1.3.8 . . . . . . X X . . . X . . . w 3.2.1.1.1.2.2.7.~ . o o o o o o o y ", -": o o o o o o o o 8 x w w w w x x q ;.4.1.1.1.1.1.1.7.U w x w w x w w x x w w w x x w w q L 7.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.,.x w w w x x w w w w w w w w w w w w _ 2.1.1.1.1.1.1.3.P q w w w w w w w w w w w w w w w q ~ 3.1.1.2.1.1.1.7.~ . o o o o o o X y ", -"; X o o o o o o o ) 8.7.7.7.7.7.7.7.2.1.1.1.1.2.1.1.1.2.7.7.7.7.7.3.3.7.4.7.7.7.7.7.7.7.7.2.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.3.7.7.3.7.7.7.4.7.7.7.7.7.7.7.3.7.7.3.1.1.1.1.1.1.1.1.3.7.7.7.3.7.7.3.3.7.7.3.3.7.7.3.3.3.2.1.1.1.1.1.1.1.7.~ . o o o o o o X y ", -": o o o o o o o o ( 7.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.2.1.1.1.1.2.2.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.2.2.2.1.1.2.1.1.1.2.2.1.1.2.1.1.1.1.1.1.1.1.7.Y . o o o o o o o 2 ", -": o o o o o o o o ( 2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.2.1.1.1.2.2.1.1.2.2.1.1.2.2.1.1.2.1.1.1.1.1.1.1.1.7.~ X o o o o o o X 2 ", -": o o o o o o o o / 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.3.~ . o o o o o o X y ", -": o o o o o o X o / 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.7.~ . o o o o o o o y ", -": o o o o o o o o / 3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.7.~ . o o o o o o X 2 ", -"; o o o o o o o o ) 3.1.1.1.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.2.1.1.1.1.2.1.1.1.1.1.1.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1.1.1.1.1.2.7.~ . o o o o o o X 2 ", -": o o o o o o o o ( 7.2.2.2.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.2.2.1.2.2.2.2.1.1.2.1.1.1.1.1.1.2.2.1.2.2.1.2.1.2.2.1.2.2.2.2.1.1.2.1.1.1.2.1.2.1.1.1.1.2.1.1.2.2.1.2.2.2.2.2.1.1.2.2.1.1.2.2.1.2.1.1.2.1.1.1.1.2.1.1.2.2.1.2.1.1.2.1.1.2.~ X o o o o o o X 2 ", -"; o o o o o o X X ) 8.7.7.7.3.3.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.3.7.3.7.7.7.7.3.3.7.3.7.3.3.3.3.3.3.3.7.7.3.7.3.3.7.7.7.3.7.7.3.7.7.7.3.7.7.3.7.3.3.3.3.7.7.7.3.3.7.3.7.3.7.3.3.7.7.7.7.7.3.7.3.7.7.3.7.7.3.7.7.3.7.7.7.8.~ . o o o o o o o 2 ", -"] ] ] ] ] ] ] ] ` R L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L E ' ] ] ] ] ] ] ` p.", -"a.a.a.a.a.a.a.a.a.n . . . . . . . . . . . . . . . . . . . . . . . . . . . . X . . . . . . . . . . . . . . . . . . . . . . . X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X . . . . . . N a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o o o o o o o o o o o # o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o X o o o o o o o o o o o o o o o o o o o o o o o X o o o o o o o o o o o o o o o o o o o o o M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o # o o o o o o o o o o o o o M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o X M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o o o o o o o O o O O o o o o o o o o O o o o o o o o o o o o o $ O o o o o o o O o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o O O o o o o o o o o O o o o o o o o o o o o o o o M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o # o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o O o o o o O o o o o # o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o O o o o o o o o o o o # o o o o o o o o o $ o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o o o o o o O o O o o o o X M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o o o o o o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o O o o $ o o o o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o O o o M a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.m o o o o o o o o o O o o o o o o o o o o o o o o o o o o o o o o o $ o o O o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o $ o O O o o o o o o o # o o o O o o o o o o o o o o o o M a.a.a.a.a.a.a.a.a." +"P P P A @XhXeX3XjXjX6XS L P P P P P P P P P H D P P P P P P P P P P P P P P P P P P P P h P P P P P P P P P P P P P P P P D D D T V.I P P P P P P ! I L P P P P P P P P P P P P P P P P P P P L P I L P P P P L V.V.Y V.P P P P P P P P P P P P P P P P P P P P ", +"P D ..wXyX|.;.[.dXhX@XS P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P k h P P P P P P P P P P P P P P P H P P H V.C.Y P P P P P I V.V.P P P P P P P P P P P T P P P P P P P P P I V.I P P P P P C.V.V.V.P P P P P P P P P P P P P P P P P P P P ", +"P A 7XjXjX.X;.N.6X..L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P h l P P P P P P P P P P P P P P P P P P P I Z.P P P P P P E Z.! P P P P P P P P P P P P P P P P P P P S V.V.V.V.P P P P P Y I L P P P P P P P P P P P P P P P P P P P P P ", +"P D G.9XpXfX.XuXjX3XZ P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D P P G c P P P P P P P P P P P P P P P P P P P P V.S P P P P P P C.I S P P P P P P P P P P P P P L P P P P L Y Y V.V.D P P P P P P P D P P P P P P P P P P P P P P P P P P P P ", +"P P D A wXjXgXgXjXfXW P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P D H D P P P P P P P P P P P P P P P P P P P P P P P P P P P P I P P P P P P P P P P P L P P / ^ Z D S L I I L I P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P wXjXyX7XgXwXL P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P L P ~ ~ <.h.( Q S P P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P .#X..P W T D P P H P P P P P P P P P P P P P I P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P G P P P P P P P P P P P P P P I L *.<.N.[.[.].P P P P P P P P P P P P P P P P P H T P P P P P P P P P P P P P P H P ", +"P P P L L S D P D H P P P D P P P P P P P P P P P P P V.P P D T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H l P P P P P P P P P P P P P P P S R h.rXeXM.k.I D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P T P P P P P P P P P P P I V.C.L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L j h P P P P P P P P P P P P P P P L O.[..Xj.*.D P P P P P P P P P P P P P P P P P P P P P P P P P D P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P D V.V.I P P P P P P P P P P P P P P P P P P P P P W L P P P P P P P P P P P P P P P P P h c P P P P P P P P P P P P P P P P T k./ *.,.T P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P I Y L P P P P P P P P P P L L P P P P P P P P P H P P P P P P P P P P P P P P P P P P v G P P P P P P P P P P P P P P P P P D V.P Q P P P P P P P P P P P P P P P P P P P P P P P P P P Z d H H D P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P I L P P P P P P P P P P P L I P P P T P P P P P P P P E P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L S V.I P P P P P P P P L D P P P P P P P P P P P P P P P P c k a s x P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P P I V.V.Y I P P P P P P P P P P ! E I D P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P V.C.V.S D P P P P P P L F c H P P P P P P P P P P P P P P H a s x c P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P V.V.C.Y D P P P P P P P P ! ! V.C.P P P P P P P P P P P P P P P P P P P P L I L P P P P P P P S Y C.L D P P P P P P P s d s a Z P P P P P P P P P P P P P P c P H P P P P P P P ", +"P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L V.Y I P P H P P P P P P P ! V.E V.P P P P P P P P P P P P P P P P P P P L V.I ! P P P P P P P P I Y L L P P P P P P P c s j j P P P P P P P P P P P P P P P D D D T P P P P P P ", +"P P P P P k P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P E P P P P P P P P P P P P P P P P P P P P Y Z.V.! C.D P P P P P P P P P P Y P P P P P P P P H P D P P P P P P P P P P P P P P P P P P P P P P P P P ", +"H P P P J l L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P Y ! ! I P P P P P P P P P P P P P P P P P P P T D P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"c P P P h h G D P P P L I I L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P D I V.P P P P P P P P ", +"k P P P H h P P P P P Y V.Y V.P T P P P D T P P P P P P P P P P P P P P P P P P P P P P P P P P P P D x H P P P P P P P P P P P P P 1./ L L P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P H D P P P P P P P P P P V.C.P P P P P P P P ", +"c P P P P G P P P P P V.V.V.V.I D P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P D P P d j c s P P P P P P P P P P ~ ~ <.,.O.X.L P P P P P P P P P P P P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P C.V.P P P P P P P P ", +"P P P P P P P P P P P I V.L L P P P P P P P P P P P P P P P P P P P P P k P P P P P P P P P P P P P j j s j P P P P P P P P L R <.<.f.j.[.[.W P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ! I P P P P P P P P ", +"C.P P P P P P P P P P L I L P P P P P P P P P P P P P P P P P P P D D c h H P P P P P P P P P P P P G c H P P P P P P P P S P D / f.aXeX[.z.T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"V.P P P P P P P P P P L C.I L P P P P P P P P P P P P P P P P I V.P P l h G P P P P P P P P T P P P P P P P P P P P P P S S D L o.}.5X}.*.P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"L P P P P P P P P P P Y V.V.L P P P P P P P P P P P P P P P I C.C.P P P h L P P P P P P P H P P P P P P P P P P P P P P @X9X .A ) ].z.;.f.R L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P T C.Y L P P P P P P P P P P P P P P P P ! V.L P P H P D G G P P P D P P P P P P P P P P P P D A P dXjXoXP L L P ~ / T P P P P P P P H T P P P P P P P P P P P T D P P P P P P P P P P P P P P P P P P P T P P P P P P P P I V.L P P P P P ", +"P P P P P P P P P P P P Y Y L P P P P P P P P P P P P P P P P P Y P P P P P c z k T P P P P P P P P P P P P P P S ..7X9X4X8X9XdXyXY P L L D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P I V.P P P L s v ", +"P P P P P P P P P P P P P P P P P P P P P P P P Z S D P P P P P P P P P P P c h c P P P P P P P P P P P P P P P D 7XjXjX[.;.qXjXdX} S P T P P P P P P P P P P P P P P P P P P P P P P P P P P P P L ! P P P P P P H P P P P P P P P P P P P P P C.V.S P H h s j ", +"P P P P P P P P P P P P P P P P P P P P P P P P c v P P P P P P P P P P P P P k H P P P P P P P P P P P P P P P P .7X9X5X[.rXfXXXP P P P P P P P P P P P P P P P P P P D H P P P P P P P P P P P P Z.P P P P P P P P P P P P P P P P P P P P H V.V.P P P j c c ", +"P P P P P P P P P P P P P P P P P P P P P P P v k c D P P P P P P P P P P P P H H P P P P P P P P P P P P P P P P D C XXjXgXhXjXXXD P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P | ! E D P P P P P P P P P P P P P P P P P P P I I P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P h c T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D G.pX+XXX#X .D P P P P P P P P P P P P P P P P P P P P P P P P P P P H P P P I Z.E P P P P P P P P P P P P P P P T P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P c J P P P P P P P P P P P P P L P P P P P P P P P P D P P P P P P P D D I H P D P P P P P P P P P P D P P P P P P P P T P P P P P P P P P E P P P P I P D P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T H P P P P P P c H P P P P P P P P P P P G F H P P P P P P P P H P P P P P P P P P D V.P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L P ! S P L P P P P P P P P P P P P P P c h L P P P P P P P P P P d k a h H P P P P P P D I D P P P P P P P P ! V.E H P P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L L ! C.L I L S L P P P P P P P P P P P P k h L P P P P P P P P P P F j j s H P P P P P P V.! V.V.P P P P P P P I Z.E P P P P P P P P P P P P H c k G P P P P P P P P P P P P P P P P P ", +"T P P P P P P P P P P H P P T D P P P P P P P P P P P P P P P P P P P P P L C.V.C.C.Y V.L L P P P P P P P P P P P c v P P P P P P P P P P P D c P P P T P P P P L ! V.V.V.P P P P P P P P ! E P P P P P P P P P P P P a s j a D P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L L I L S P P P P V.C.C.Y V.V.L I P P P P P P L P L P P G G P P P P P P P P P P P P P P P P P P P P P P I ! Y S P P P P P P P P T P P P P P P P P P P P P P d k k d P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P C.P L P P P P P ! ! ! I ! L P P P P P P I ! I D P P P P P P P P P P P P P P P P P P P P P P P P P L L L L P P P P P P P P P P P P P P P P P P P P P P P P L P P L P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P D P P P P P P P T P P P P V.C.Y P P P P P P P P P S P P P P P P P P V.! ! V.P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P H T P P P P P P P P P P P P I C.I P P P P P P P P P P P P P P P P P P V.V.V.V.P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L I P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ! I P P P P P P P P P P P P P P P P P P I P P P P P P P P P P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L V.! ! V.P P P P P P P P P P P P P P P ", +"P P P L P P P P P P T D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L P I V.Y I P P L L P P P P C.F.F.D.E P P P P P P P P P P P P T P P P P P H P P P P P P P P P P P P D V.! C.V.P P P P P P P P P T D P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P ! V.V.V.D.F.A.S.C.A.| E I P Y V.F.S.V.P P P P P P P P P P P P P P P P P P P P P P D T P P P P P P P I ! I I P P P P P P P P P P P P P P P ", +"P L L V.I D P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P P T V.Y S.F.H.S.m m m [ } F.Z.V.Z.D.m S.E P P P P P P P P P P P P P P P P P P P P P P H D P P P P P P P H P P P P P P P P P P P P P P P P P ", +"P P Y V.Y P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P I I P P P P P P P | ! I P I O.X.k.+.F.F.C.m m m m [ F.F.F.B m N D.P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D T P P P P P P P P P P P P P P P P P ", +"P P I Z.Y P P P P P P P P P P P P H T P P P D P P P P P P P P P P P P P P P P P P P P P L C.V.Y V.! I P P P C.F.H.F.k.].).).)._.H.F.A.[ m N M m S.F.F.S.M v A.L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P L C.I P P P P P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P P P P P L C.V.A.F.F.A.I W o.+.F.S.F.F.F.H.T.E.I.I.K.} ' ) ) N m B F.F.+.y u d.d.K P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H P P P P ", +"P P P P P P T D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P I Y F.F.S.Z.A.].).H.[ m B F.F.S.I.P.L.I.P.K.U.P.P.I.' m C.h.1 1 1 1 1 1 i K P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P V.F.Z.m M d.g.k.A.N m m N B Q P.q.6.7.9.L.I.L.L.P.U.m d., 1 , > , 1 1 1 r ^ C.I I P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D T P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P H H P P P P P P P P P P P P P P L Q z.M.A.} _ : - 1 1 t d.m m m m M I.q.7.6.7.9.9.6.7.9.L.T r , & X & & & - > 1 1 o.V.Y L L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P c c P P P P P P P P P P P P P T z.).g.g.J.A.e - - ; > , , i M m ( U.I.P.w.8.7.7.7.7.&.#.&.V * % . X X : > ; & - , r ( Z.A.Y P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D d G G P ", +"P P P L P P P P P P P P P P P P P P P P P P P H P P c h c P P P P P P P H P P P I O.j._.).g.g.k.A.X.- - * & & , 1 r X.P.P.0.7.7.8.8.u.n.M.|.|.,X X}.].d.y $ : w k.O.o.o.i k.H.F.D.P P P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P a j d h P ", +"P P P R P P P P P P P P P P P P P P P P P P D T P D H h c P P P P P P P T P P P X.)._._.g.g.g.z.F.} : * - ; & & , 1 c.P.0.6.6.c.{.,X2X2X>X>X>X>X>XX2X2X2X2X;X@.J ' M m m { D.P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P P P P T Z G P P D ", +"~ *.*.;.z.z.+.S P P P P P P P P P P P P P P Y P P P P P P P P P P P P P P P T (._._.).s.9.w.U.Z.m m l : - - < & & ; t Q.>X2X2X&XQ.R.E.R.E.E.E.E.Q.Q.Q.Q.!.=X2X2X2X2X,X_ f m B F.! P P P P P P P P H P P P P P P P P P P P P P D P P D P P P P P P P P P P P P P ", +"~ <.j.qX.X}.`.Z.I P P P P P P P P P P P P P ! ! P P P P P P P P P P P P P P z._._._.g.L.9.0.7.q.4.| m 0 = - > ; : & _.XQ.E.R.R.E.Q.~.^.&XQ.Q.!.-X-X-X&X!.=X2X2X2X2X`.g [ F.! P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"S k.}.aX.Xk.( V.P P P P P P P P P P P P P I Z.V.D P P P P P P P P P P P P O._._._.g.N.0.L.P.P.q.9.0.i.5.- = - : e X2X1X!.E.E.E.Q.~.&X-X-X^.b.a.a.b.-X-X-X-X-X-X&X:X2X2X2X;X .D.H.I P P P P P P P P P P P P P P P D T P T P P P P P P P P P P P P P P P P P P P ", +"L l. XN.f.*.L L L P P P P P P P P P P P P L V.V.P P P P P P P P P P P P P z._.).g.g.b.9.P.P.P.P.P.L.L.0.q - X w ,X2X>XW.E.E.Q.~.-X-X-X-X-XW.a.a.b.^.-X-X-X-X-X-X-X^.~.>X2X2X2X@.{ F.C.I P P P P P P P P I P P P P P P P P H P P P P P P P P P P P P P P P P P P ", +"S O.O.^ ,.1.L L P P P P P P P P P P P P P D P Y P P P P P P P P P P P P W )._.).g.g.q.q.P.P.P.P.P.P.P.L.8.X e ,X2X:XQ.E.E.~.-X-X-X-X-X-X-X&XW.^.-X-X-X-X-X-X-X-X-X-X-XE.=X2X2X2X/.Z.H.! P P P P P P P I V.P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"V.V.V.S P P P P P P P P P P P P P P P P P P D H P P P P P P P P P P P P k.).M.l.l.x.0.q.P.P.P.P.P.P.L.q.&.0 ,X2X>XE.E.Q.&X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XQ.E.~.XQ.E.Q.-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XQ.E.v.c.*X1X1X$XW P P P P P P P ! C.P P P P P P P P P P P P P P P P P P P L L ! P P P P P ", +"P V.Y P P P P P P P P P P P P P P P P P P P H F P P P P P P P P P P P Q M.F.F.} [ } F.F.F.J.i.q.q.q.7.&.%X2X1XQ.E.Q.-X-X-X-X-Xm.a.W.&X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-XE.E.6.6.e.>X2X2X;XY P P P P P P P V.I P P P P P P P P P P P P P P P P P P I V.V.L P P P P ", +"P D L P P P P P P P P P P P P P P P P P D P F h P P P P P P P P P P T o.].F.} m m m N D.F.F.F.K.0.7.&.M.2X2XW.E.E.&X-X-X-X-X^.a.a.~.-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X~.E.E.m.p.E.R.-X2X2X;XC.I P P P P L P P P P P P P P P P P P P P P P P P P P P C.V.D P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P j h P V.I Y P P P P P P I z.).k. .m m m m m Z.F.F.F.H.J.X.2X2X^.E.E.E.-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X&XE.E.E.E.E.E.E.E.=X2X2X;X! P P P P P P P P P P P P P P P P P P P P P P P P P P V.V.S S L L P ", +"P P P P P P P P P P P P P P P P P P P P P P F F V.C.V.V.L P P I Z.F.F.H.l.g.z.{ M m m m m B } C.{ v '.2X%XE.E.E.E.-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X-X~.E.E.E.E.E.E.m.m.m.m.~.2X2X;XP P P P P P P P P P P P P P P P P P P P P P P P P L S D P | I I P ", +"P L P P P P D T P P P P P P P P P P P P P T G H V.V.! E P P I A.F.F.} S.F.+.g.+.F.S.m m m m m m m _ 2X>Xp.E.E.E.E.^.-X-X-X-X-X-X-X-X-X-X-X-X&XW.a.a.b.^.-X-X^.Q.E.E.E.m.v.u.u.u.u.u.u.u.m.X$X .H P P P P P P P P P P P P P P P P P P P P L XXsXf.qXiXU P ", +"D ! V.Y P P P P P P H P P P P P P P P P P P P P P P P P P P ! H.F.[ m m m m m m [ m m m m } [ f '.2X*Xu.u.u.p.E.E.E.E.E.E.E.E.E.Q.E.E.Q.E.R.6.6.6.6.a.E.E.m.a.p.u.u.u.y.u.u.u.u.u.r.r.r.u.u.u.u.u.B.=X$XO.P P P P P P P P P P P P P P D P P P P S 6XgXaX7XoXP P ", +"P P V.V.P P P P P P P P P P P P P P P P P P P P P P P P P P P ! F.H.J. .m m m m m B B m m B S.b ,X2Xn.y.u.u.u.b.E.E.E.E.E.E.E.E.E.E.E.E.E.E.p.8.p.E.E.E.v.u.u.u.8.8.e.r.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.v.B.+.P P P P P P P P P L P P P W D P P P L | XXpXXXS L P ", +"P P Y V.H P P P P P P P P P P P P P P P P P P P P P P P P I ! | J z.[.l.} m m m N F.F.{ N S.F.@.2X,Xy.p.u.u.u.u.m.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.b.p.y.u.u.8.-.-.6.8.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.y.t.Q P H G j c Z P P P L P P 9XpX .D P P H P L Y P P P P ", +"P P S P P P P P P P P P P P P P P P P P P P P P P P P P Y F.F.F.F.l.l.H.' m m _ ] H.D.{ S.S.M '.1X*Xp.y.u.u.u.u.u.v.E.E.E.R.E.E.E.E.E.E.E.E.E.E.m.p.u.u.u.u.u.8.6.-.6.r.u.u.u.u.u.u.u.u.u.y.p.u.u.u.y.2.T P P s k a h c P P U L A XXjXjX3XS L P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P A.F.[ m m B { N m _ 8 9 9 0 _ m n g g 2X2Xn.y.y.u.u.u.u.u.u.p.m.E.E.E.E.E.b.a.Q.E.R.b.p.u.u.u.u.u.u.u.u.r.8.y.u.u.u.u.y.u.u.u.u.y.t.4.) ( R P P P P P L h k c L P P L G.OXoXgXhX@X} L P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P I F. .m m m m m m m 0 6 9 9 9 9 0 f @.2X:Xu.u.u.u.u.u.u.u.u.u.u.p.b.m.m.y.-.8.b.p.y.u.u.u.u.r.e.e.>.>.:.:.:.>.e.y.y.p.y.3.4.) R P P P P P P P P P P P P H P P P P P W dXjXpX}.h.0XgXtXP P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P F.F.m m m m m m _ 7 9 5 O O 6 7 2 2 '.2X*Xu.u.u.u.u.u.u.u.u.u.u.u.u.u.u.r.6.r.y.y.e.>.=.$.#.#.#.#.#.#.:.>.t.y.y.2.4.~ P H P P P P P P P P P P P P P P P P P P P P D P 3XgXeX;.;.eXjXdXW D P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P C.A.S.M m ' _ 0 9 9 9 2 o o o 7 2 6 2X2Xv.u.u.u.y.6.-.8.u.u.u.u.u.u.u.u.u.u.e.:.#.#.#.#.#.q $.%.:.e.y.y.t.4.~ P P P P D P P P P P P P P P P P P P P P P P P P P P P P W yXgX|.qX6X@XXXS P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P | A.H.0 9 7 9 9 9 9 5 # # 5 5 + d.2X;Xu.u.u.r.-.-.-.8.u.u.u.u.u.u.u.u.>.$.#.#.#.#.#.#.#.:.8.u.y.2.) T P P P T P P P H P P P P P P P P P P P P P P P P P P P P P P S oXjXjXdXjXdXP S P P D P P P P D P ", +"P P P P P P P P T P P P P P P P P P D T P P P P P P P P P L H ` 5 9 9 9 9 9 9 9 9 9 6 @ + |..u.y.2.) T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D G.pX9XyXjXfX! P P P P P c P D P P ", +"P P P P P P P D P P P P P P P P P P P H P P P P P P P P P L X.g.3 6 9 9 9 9 7 6 9 6 5 + 6 2X.#.#.#.#.#.%.>.r.t.4.R P P P P P P V.P P P P P P P P P P P P P P P P P P P P P P P ! ! ! ! P P P P P P P P D Z C S D P P P P h j j s P P ", +"P P P P P P P L G P P P P P P P P P P P P P P P H T H P P P (.).u 5 9 9 9 6 o o o 5 + # ;X2Xc.u.u.u.u.u.u.u.u.u.u.r.%.$.$.q #.%.e.u.2.) P P P P P P P P Z.Z.P P P P P P P P D H P P P P L P P P P P P P P C.V.V.V.S P P P P P P P P P P P P P P P D Z c H P P P ", +"P P P P P P H v c P P P P P P P P P P P P P P P P P P P P W _.(.7 3 5 7 9 9 # o # # + ` 2X*Xy.y.u.u.u.u.u.u.u.u.>.$.#.#.%.:.r.y.4.( P P P P P P P P P P ! V.P P P P P P P P P P P P P P P P P P P P P P D Y Y I T P P P P P P P P P P P P I I S L P P P P P P P ", +"P P P P P P c h k P D T P P P P P P P P P P P P P P P P P X.).5 # O o O 3 5 5 3 3 + + |.2Xn.u.y.u.u.u.u.u.u.y.:.q $.$.>.y.y.4.T D I S P P P P P P P P P I ! P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P E ! V.! I P P P P P P P P ", +"P P P P P P H h G P P P P P P P P P P P P P P P P P P P P X.u 3 # o o o # 3 3 3 2 + 0 2X*Xu.u.u.u.u.u.u.u.e.#.#.$.>.r.t.) P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P P P ! C.V.V.E P P P P P P P P ", +"P P P P P P P k P P P P P P P P P P P P T P P P P P P P H K y 3 3 # o O 3 3 3 5 # + |.2Xn.u.u.u.u.u.u.u.:.#.:.e.u.2.( D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ! E E P P P P P P P P P ", +"P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P d.3 5 3 3 3 3 3 5 # + ` 2XB.u.u.u.u.u.u.e.:.>.y.y.4.~ D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P X.y 3 3 3 3 3 3 # + 0 2X*Xu.u.u.u.u.u.u.y.u.3.) T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P J P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P o.y 5 3 5 3 # 3 `.2X{.u.u.u.u.u.u.u.3.4.R P P T D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T o.0 ` d.'.,X|.n.u.u.u.y.3.1.) T P Z P P P P P P P P P P P D E c G ! P P P P P P P P P P P P P P P P P P L L P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P ", +"P L P P P L L P P P P P P P P P P P P P P P P P P v L P P P P P P P P P ..O.) ) 4.O.( E P P P P P P P P P P P P P P P P P P P c k G T P P P P P V.I I S P P P P P P P P P ! P D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P L L P I L L P P P P P P P P P P P P P P P P P H k v P P P P P P P P P D I I V.V.V.Z.P P P P P P P P P P P P P P P P P P P P c h c P P P P S V.V.V.V.P P P P P P P P I ! V.V.Y P P P P P P P P P P P P P P P P P P P P P P P D Z c T P P P P P P P P P P P T P ", +"P L L ! ! I I P P P P P P P P P P P P P P P P W F h v C.P I P P P P P P P P P L V.L I P P P P P P P P P P P P P P P P P P P D c l P P P P I P V.V.I Y Y P P P P P P P I V.V.V.! D P P P P P P P P P P P P P P P P P P P P P P G c c P P P P P P P P P P P P P P ", +"P P L C.V.V.V.P P P P P T P P P P P P P P P P P S k U V.V.! D P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P T H c P P V.V.V.V.E H x J P P P P P P P P L ! I P P P P P P P P P P P P P P P P P P P P P P P P P c h k P P P P P P P P P P P P P P ", +"P L L C.Y ! ! D P P P P D P P P P P P P P P P P P H Y Y V.W P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P V.V.V.V.E k l F P P P P P P P P P L P P H P P P P P P P P P P P P P P P P P P P P P P P P h L P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D P P P P I I P P c l L P P P P P P P P P P L P G j D P P P P P P P P P P P P P P P P P P P P P D c P P P P P P P P P P I E L P P ", +"P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P c P P P P P P P P P P P D L k h c L P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P E Y C.! Y P ", +"P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L XX..x /.@XL L P P P P P P P P P P D T P P P P P P P P P P P P P P P P P P I V.C.C.E L ", +"P P S P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T D P P P H P P P P P P P P P P P P P P P P P P P P P L dXdX3XjXgX} S P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ! P L I P ", +"P C.D I P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P S G.iXuX.XaX7XD P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H P P P P P L P ", +"C.V.V.V.P P P P P P P P P P P P P P P L L L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D P P P P P P P P P P P P H T P P P P P P P P P P P P P P P P P ..gXjX X;.5X@XW P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"V.V.! Y P P P P S H P P P P P P P I ! ! Y L P P P P P P P P P P P P P P P P P P H P P P P P P P P P H T P P P P P P P P P P P P P D P P P P P P P P P P P P P P P P P Y 9XsXsX8XdXjX..D P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P ", +"Y P P P P P P P P P P P P P P P L V.Y V.C.P P P P P P P P P P P P P P P P P P P T D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H D P P P P P P P P P P S yXjX6XoX#XW S P P P P P P P P P P H T P P P P P P P P P P P P P P P P P P P P P P P P ", +"S P P P P P P P P P P P P P P P P ! V.Y Y L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D P P P P P P P P P P P P P P P P P D T P P P P P P P P P P D XX3X} S S D D P P P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P P D P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P D S P D P P T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D Y P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P V.Y L P P P P P P P P P P P P P P P P P P P P P P P P D T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L Y V.V.P P P P P P P P P P P P P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P I Y C.P P P P P P P P P P L I L P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P T P P P P P P P P H P P P P P P P P P P P P P P P P P T P P P P P P L P C.! P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P Y V.V.C.I P P P P P P Y V.I L P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P H j P P P P P P P P P P P P P P P P H P P P P P P P P I V.D P P P P P P P P P P P P P P P P P H P P P P P P T D P H P P P P P P P P P P P P P L I V.Y V.L P P P P P V.Y V.C.I P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P H v j G D T P P P P P P D D D P P P P P P P P P P P P P L L P P P P P P P P P P P P P P P P P P T D P P P P P P P P P P P P P P P P P P P P P P P P P L L P P P P P P Y V.V.V.L L P P P P P P P P P P P P P P P P P ", +"P P D L P H P P P P P P P P P P P P P P P P P k h Z D P P P P P D Z oX9XW S P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P L P P P P P P P P P P P P P P P P P P P P P ", +"P P P s s x c D P P P P P P P P P P P P P P P P l H D P P P P P P D 9XjXXX| P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P a j d h T P D H P P P P P P P P P P P P T P H P P P P P D D.yX0X[.rXdX| D P P P P P P P P P P P P P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H D P P P P P P P P ", +"P D P c c G c P P P P P P P P P P P P P P P D P P P P P P P P P D.tXuXN.0X@XI P P P P P P P P P P P P P P P P T P P P P P T P P P P P P P P P P P P P P P P P P P P G Z k L H P P P P P P P D T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P D P T P P P P P P P P P P P P P P P P P P P P P P W OXjXfXgXW P P P P P P P P P P P P P P P P P P P P P P P P P P P P P I Y P P P P P P P P P P P P P c x h s F P P P P P P P P H T H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P T D P H T P P P P P P P P P P P P P P P ..#X+X9XU D D P c c P P P P P P P P P P P P P P P P P H P P P P P I V.! D P P P P P P P P P P P T Z a h a H P P P P P P P P P D P P P P P P P P H T D P P P P P P P P P P P P P D P P P P P P ", +"P P P P P P P P P P P P P P P P P D P P P P P P P P P P P P P P P P Z S L L P P F k c P P P P P P P P P P P P P P P P P P P P P P P ! V.! D P P P P P P P P P P P P D G P H P P P P P P P P P P D P P P P P P P P P P P P P P P P P P P P P P T P H P P P T P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H h c P P P P P P P P P D P P P P P P P P P P P P P P C.L P P L L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P j J D P P P P P P P P H P P P P P P P P P P P P P L Y I P P ~ ^ L D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P P P P D H D P P P P P H D P P P P P P P P P P P P P P P P P P P W P *.<.T W P P P P P P P P P P P P P P P P L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P D H P P P P P P P P P P P P P P P P P P P P P P P P P T *.,.f.f.M.].( P P P P P P P P P P P P P P I L P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P 1.<..XeX}.[.O.P P P P P P P P P P P P P S Y I P P D P P P P P P P P P P P P P P P H D P P P P P P P P P P P P P P P D ", +"P P P P P P P P P P P P P P P P P P P D T P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T D P P P P P P P P P P P P P P P P H Q N.qXqXh.( P P P P P P P P P P P P P P I V.V.H c T P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P ", +"I Y P S P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P T P P P P P P P P P P P P P P P P P P P P P P P P P X.[.[.<.<.~ L P P P P P P P P P P P P P P Z.V.G l P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P ", +"Y V.L P P P P P P P P P P P P P P H P P P P P P P P H P P P P P P P P P P P P P P P P P T H P P P P P P P P P P P P P P P P P D P P P P P P O.T ^ ,.~ L P P P P P P P P P P P P P P ! Y a j G P P P P P P P P P P P P P P P P D P P P P P P T D P P P P P P P P ", +"C.C.P P P P P P D P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P H P P P P P P P P P P P P P P P P P P P P P P P P P P L Y c l P P P P P P P P P H P P P P P P P T H P P P P P P P P P P P P P P P ", +"V.V.P P P P P P T P P P P P P P P P P P P P P P P P P P P P P D L P S P P P P P P P P P P P P P P P P P P P P D D P P P P P P P P P P P P P P P P P P P P P P H P P P P P P P P P P P P P c P P P P P P P P D T P P P P P P P P P P P P P P H P P P P P P P P P " }; diff --git a/utils.c b/utils.c index 1926ca0..7a70855 100644 --- a/utils.c +++ b/utils.c @@ -12,7 +12,8 @@ #include "so_long.h" -t_location find_element(t_world *world, char type) { +t_location find_element(t_world world, char type) +{ int pos_x; int pos_y; t_location location; @@ -21,9 +22,9 @@ t_location find_element(t_world *world, char type) { pos_y = 0; location.x = -1; location.y = -1; - while (world->map[pos_y]) { - while (pos_x < (int) ft_strlen(world->map[0])) { - if (world->map[pos_y][pos_x] == type) { + while (world.map[pos_y]) { + while (pos_x < (int) ft_strlen(world.map[0])) { + if (world.map[pos_y][pos_x] == type) { location.x = ++pos_x; location.y = ++pos_y; return (location); @@ -56,26 +57,4 @@ int count_element(t_world world, char type) pos_y++; } return (count); -} - -t_world *clone(t_world world) { - t_world *clone; - int index; - char **content; - - clone = malloc(sizeof(t_world)); - if(!clone) - return (NULL); - clone->length_y = world.length_y; - index = 0; - content = malloc(sizeof(char *) * clone->length_y); - if(!content) - return (NULL); - - while (index < clone->length_y) { - content[index] = ft_strdup(world.map[index]); - index++; - } - clone->map = content; - return (clone); } \ No newline at end of file