From ff5d715a4eefffbc4c612704d247fede0d743218 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Tue, 27 Jan 2026 18:24:30 +0100 Subject: [PATCH 1/3] add tournament data model --- requirements.txt | Bin 228 -> 218 bytes src/ezgg_lan_manager/types/Game.py | 39 +++ src/ezgg_lan_manager/types/Match.py | 133 ++++++++ src/ezgg_lan_manager/types/Participant.py | 20 ++ src/ezgg_lan_manager/types/Tournament.py | 319 +++++++++++++++++++ src/ezgg_lan_manager/types/TournamentBase.py | 51 +++ testing/unittests/TournamentDomainTests.py | 66 ++++ 7 files changed, 628 insertions(+) create mode 100644 src/ezgg_lan_manager/types/Game.py create mode 100644 src/ezgg_lan_manager/types/Match.py create mode 100644 src/ezgg_lan_manager/types/Participant.py create mode 100644 src/ezgg_lan_manager/types/Tournament.py create mode 100644 src/ezgg_lan_manager/types/TournamentBase.py create mode 100644 testing/unittests/TournamentDomainTests.py diff --git a/requirements.txt b/requirements.txt index 2a749b4f5ef783a7645599d1596d7db63e3b2a89..d2dea2e3f934aebec47d8fe918599e0abf17e341 100644 GIT binary patch delta 11 ScmaFDc#CmD9HY_1%xVA|galUr delta 21 ccmcb`_=Isn9Je8Z9)l4>5koSA*~Iv207H%i!2kdN diff --git a/src/ezgg_lan_manager/types/Game.py b/src/ezgg_lan_manager/types/Game.py new file mode 100644 index 0000000..1f70f91 --- /dev/null +++ b/src/ezgg_lan_manager/types/Game.py @@ -0,0 +1,39 @@ +from typing import Optional + +from src.ezgg_lan_manager.types.TournamentBase import TournamentError + + +class Game: + def __init__(self, id_: tuple[int, int], match_id: int, game_number: int, winner_id: Optional[int], score: Optional[tuple[int, int]], game_done: bool) -> None: + self._id = id_ + self._match_id = match_id + self._game_number = game_number + self._winner_id = winner_id + self._score = score + self._done = game_done + + @property + def id(self) -> tuple[int, int]: + return self._id + + @property + def is_done(self) -> bool: + return self._done + + @property + def winner(self) -> Optional[int]: + return self._winner_id + + @property + def number(self) -> int: + return self._game_number + + + def finish(self, winner_id: int, score: tuple[int, int], force: bool = False) -> None: + """ NEVER call this outside Match or a Testsuite """ + if self._done and not force: + raise TournamentError("Game is already finished") + + self._winner_id = winner_id + self._score = score + self._done = True diff --git a/src/ezgg_lan_manager/types/Match.py b/src/ezgg_lan_manager/types/Match.py new file mode 100644 index 0000000..409d00e --- /dev/null +++ b/src/ezgg_lan_manager/types/Match.py @@ -0,0 +1,133 @@ +from collections import Counter + +from math import ceil +from typing import Literal, Optional, Callable + +from src.ezgg_lan_manager.types.Game import Game +from src.ezgg_lan_manager.types.TournamentBase import MatchStatus, TournamentError, Bracket + + +class MatchParticipant: + def __init__(self, participant_id: int, slot_number: Literal[1, 2]) -> None: + self._participant_id = participant_id + if slot_number not in (1, 2): + raise TournamentError("Invalid slot number") + self.slot_number = slot_number + + @property + def participant_id(self) -> int: + return self._participant_id + + +class Match: + def __init__(self, + match_id: int, + tournament_id: int, + round_number: int, + bracket: Bracket, + best_of: int, + status: MatchStatus, + next_match_win_lose_ids: tuple[Optional[int], Optional[int]], + match_has_ended_callback: Callable) -> None: + self._match_id = match_id + self._tournament_id = tournament_id + self._round_number = round_number + self._bracket = bracket + self._best_of = best_of + self._status = status + self._next_match_win_id = next_match_win_lose_ids[0] + self._next_match_lose_id = next_match_win_lose_ids[1] + self._match_has_ended_callback = match_has_ended_callback + + self._participants: list[MatchParticipant] = [] + self._games: tuple[Game] = self._prepare_games() + + def _prepare_games(self) -> tuple[Game]: + games = [] + for game_number in range(1, self._best_of + 1): + game_id = (self._match_id, game_number) + games.append(Game(game_id, self._match_id, game_number, None, None, False)) + return tuple(games) + + @property + def status(self) -> MatchStatus: + if self._status == MatchStatus.COMPLETED: + return self._status + return self._status if self.is_fully_seeded else MatchStatus.WAITING + + @status.setter + def status(self, new_status: MatchStatus) -> None: + if new_status in (MatchStatus.COMPLETED, MatchStatus.PENDING) and not self.is_fully_seeded: + raise TournamentError("Can't complete/pend match that is not fully seeded") + if self._status == MatchStatus.COMPLETED and new_status != MatchStatus.CANCELED: + raise TournamentError("Can't change COMPLETED match back to another active status") + self._status = new_status + + @property + def games(self) -> tuple[Game]: + return self._games + + @property + def winner(self) -> Optional[int]: + wins_needed = ceil(self._best_of / 2) + counts = Counter(game.winner for game in self._games if game.is_done) + + for participant_id, wins in counts.items(): + if wins >= wins_needed: + return participant_id + + return None + + @property + def is_fully_seeded(self) -> bool: + slots = {p.slot_number for p in self._participants} + return slots == {1, 2} + + @property + def match_id(self) -> int: + return self._match_id + + @property + def participants(self) -> list[MatchParticipant]: + return self._participants + + @property + def next_match_win_id(self) -> Optional[int]: + return self._next_match_win_id + + @property + def next_match_lose_id(self) -> Optional[int]: + return self._next_match_lose_id + + def assign_participant(self, participant_id: int, slot: Literal[1, 2]) -> None: + new_participant = MatchParticipant(participant_id, slot) + if len(self._participants) < 2 and not any(p.participant_id == participant_id for p in self._participants): + if len(self._participants) == 1 and self._participants[-1].slot_number == new_participant.slot_number: + raise TournamentError(f"Match with ID {self._match_id} encountered slot collision") + self._participants.append(new_participant) + return + raise TournamentError(f"Match with ID {self._match_id} already has the maximum number of participants") + + def check_completion(self) -> None: + winner = self.winner + if winner is not None: + self._match_has_ended_callback(self) + self._status = MatchStatus.COMPLETED + + def report_game_result(self, game_number: int, winner_id: int, score: tuple[int, int]) -> None: + if winner_id not in {p.participant_id for p in self._participants}: + raise TournamentError("Winner is not a participant of this match") + + self._games[game_number - 1].finish(winner_id, score) + + self.check_completion() + + def cancel(self) -> None: + self._status = MatchStatus.CANCELED + + def __repr__(self) -> str: + participants = ", ".join( + f"{p.participant_id} (slot {p.slot_number})" for p in self._participants + ) + return (f"") diff --git a/src/ezgg_lan_manager/types/Participant.py b/src/ezgg_lan_manager/types/Participant.py new file mode 100644 index 0000000..4ac1bc1 --- /dev/null +++ b/src/ezgg_lan_manager/types/Participant.py @@ -0,0 +1,20 @@ +from src.ezgg_lan_manager.types.TournamentBase import ParticipantType + + +class Participant: + def __init__(self, id_: int, display_name: str, participant_type: ParticipantType) -> None: + self._id = id_ + self._participant_type = participant_type + self._display_name = display_name + + @property + def id(self) -> int: + return self._id + + @property + def participant_type(self) -> ParticipantType: + return self._participant_type + + @property + def display_name(self) -> str: + return self._display_name diff --git a/src/ezgg_lan_manager/types/Tournament.py b/src/ezgg_lan_manager/types/Tournament.py new file mode 100644 index 0000000..f83ebe3 --- /dev/null +++ b/src/ezgg_lan_manager/types/Tournament.py @@ -0,0 +1,319 @@ +import uuid +from datetime import datetime +from typing import Optional +from math import ceil, log2 + +from src.ezgg_lan_manager.types.Match import Match +from src.ezgg_lan_manager.types.Participant import Participant +from src.ezgg_lan_manager.types.TournamentBase import GameTitle, TournamentFormat, TournamentStatus, TournamentError, Bracket, MatchStatus + + +class Tournament: + def __init__(self, + id_: int, + name: str, + game_title: GameTitle, + format_: TournamentFormat, + start_time: datetime, + status: TournamentStatus, + participants: list[Participant], + matches: Optional[tuple[Match]], + rounds: list[list[Match]]) -> None: + self._id = id_ + self._name = name + self._game_title = game_title + self._format = format_ + self._start_time = start_time + self._status = status + self._participants = participants + self._matches = matches + self._rounds = rounds + + @property + def id(self) -> int: + return self._id + + @property + def name(self) -> str: + return self._name + + @property + def game_title(self) -> GameTitle: + return self._game_title + + @property + def format(self) -> TournamentFormat: + return self._format + + @property + def start_time(self) -> datetime: + return self._start_time + + @property + def status(self) -> TournamentStatus: + return self._status + + @status.setter + def status(self, new_status: TournamentStatus) -> None: + if new_status == TournamentStatus.OPEN and self._status == TournamentStatus.CLOSED and self._matches is not None: + # Deletes all tournament preparation ! + self._matches = None + self._status = new_status + + + @property + def participants(self) -> list[Participant]: + return self._participants + + @property + def matches(self) -> list[Match]: + return self._matches if self._matches else [] + + def add_participant(self, participant: Participant) -> None: + if participant.id in (p.id for p in self._participants): + raise TournamentError(f"Participant with ID {participant.id} already registered for tournament") + self._participants.append(participant) + + + def match_has_ended_callback(self, match: Match) -> None: + if self._matches is None: + return + + winner = match.winner + next_match = next((m for m in self._matches if m.match_id == match.next_match_win_id), None) + if next_match is not None: + try: + next_match.assign_participant(winner, 1) + except TournamentError: + next_match.assign_participant(winner, 2) + else: # No next match = final round + pass + + if match.next_match_lose_id is not None: + loser = next(p for p in match.participants if p.participant_id != winner) + next_match = next((m for m in self._matches if m.match_id == match.next_match_lose_id), None) + if next_match is not None: + try: + next_match.assign_participant(loser.participant_id, 1) + except TournamentError: + next_match.assign_participant(loser.participant_id, 2) + else: # No next match = final round + pass + + def start(self) -> None: + """ This builds the tournament tree and sets it to ONGOING """ + + def parse_format(fmt: TournamentFormat) -> tuple[str, int]: + if fmt.name.startswith("SINGLE_ELIMINATION"): + bracket = "SINGLE" + elif fmt.name.startswith("DOUBLE_ELIMINATION"): + bracket = "DOUBLE" + else: + raise TournamentError(f"Unsupported tournament format: {fmt}") + + if fmt.name.endswith("_BO_1"): + bo = 1 + elif fmt.name.endswith("_BO_3"): + bo = 3 + elif fmt.name.endswith("_BO_5"): + bo = 5 + else: + raise TournamentError(f"Unsupported best-of in format: {fmt}") + + return bracket, bo + + if len(self._participants) < 2: + raise TournamentError("Cannot start tournament: not enough participants") + + bracket_type, best_of = parse_format(self._format) + num_participants = len(self.participants) + match_id_counter = 1 + + if bracket_type == "SINGLE": + # --- single-elimination as before --- + num_rounds = ceil(log2(num_participants)) + rounds: list[list[Match]] = [] + + for round_number in range(1, num_rounds + 1): + num_matches = 2 ** (num_rounds - round_number) + round_matches = [] + for _ in range(num_matches): + match = Match( + match_id=match_id_counter, + tournament_id=self._id, + round_number=round_number, + bracket=Bracket.UPPER if round_number != num_rounds else Bracket.FINAL, + best_of=best_of, + status=MatchStatus.WAITING, + next_match_win_lose_ids=(None, None), + match_has_ended_callback=self.match_has_ended_callback + ) + round_matches.append(match) + match_id_counter += 1 + rounds.append(round_matches) + + # Link winner IDs + for i in range(len(rounds) - 1): + current_round = rounds[i] + next_round = rounds[i + 1] + for idx, match in enumerate(current_round): + next_match = next_round[idx // 2] + match._next_match_win_id = next_match.match_id + + # Assign participants to first round + participant_iter = iter(self.participants) + first_round = rounds[0] + for match in first_round: + try: + p1 = next(participant_iter) + match.assign_participant(p1.id, 1) + except StopIteration: + continue + try: + p2 = next(participant_iter) + match.assign_participant(p2.id, 2) + except StopIteration: + if not match.is_fully_seeded: # Auto-Bye + for game in match.games: + match.report_game_result(game.number, p1.id, (1, 0)) + continue + + if match.is_fully_seeded: + match.status = MatchStatus.PENDING + + + # Flatten all rounds + self._matches = [m for round_matches in rounds for m in round_matches] + + elif bracket_type == "DOUBLE": + # --- double-elimination bracket generation --- + # ToDo: Rounds are not correctly persisted into self._rounds here. What data structure to use? + # ToDo: Bye-Handling not done + # Implementation Notice: Do not implement yet! + num_rounds_upper = ceil(log2(num_participants)) + upper_rounds: list[list[Match]] = [] + for round_number in range(1, num_rounds_upper + 1): + num_matches = 2 ** (num_rounds_upper - round_number) + round_matches = [] + for _ in range(num_matches): + match = Match( + match_id=match_id_counter, + tournament_id=self._id, + round_number=round_number, + bracket=Bracket.UPPER, + best_of=best_of, + status=MatchStatus.WAITING, + next_match_win_lose_ids=(None, None), # will fill later + match_has_ended_callback=self.match_has_ended_callback + ) + round_matches.append(match) + match_id_counter += 1 + upper_rounds.append(round_matches) + + # Lower bracket (Losers) + # Double-elim lower bracket has roughly (2*num_rounds_upper - 2) rounds + num_rounds_lower = 2 * (num_rounds_upper - 1) + lower_rounds: list[list[Match]] = [] + for round_number in range(1, num_rounds_lower + 1): + num_matches = 2 ** (num_rounds_lower - round_number - 1) if round_number != 1 else 2 ** (num_rounds_upper - 1) + round_matches = [] + for _ in range(num_matches): + match = Match( + match_id=match_id_counter, + tournament_id=self._id, + round_number=round_number, + bracket=Bracket.LOWER, + best_of=best_of, + status=MatchStatus.WAITING, + next_match_win_lose_ids=(None, None), + match_has_ended_callback=self.match_has_ended_callback + ) + round_matches.append(match) + match_id_counter += 1 + lower_rounds.append(round_matches) + + # Link upper bracket winners to next upper-round matches + for i in range(len(upper_rounds) - 1): + for idx, match in enumerate(upper_rounds[i]): + next_match = upper_rounds[i + 1][idx // 2] + match._next_match_win_id = next_match.match_id + + # Link upper bracket losers to lower bracket first rounds + lower_round1 = lower_rounds[0] if lower_rounds else [] + for idx, match in enumerate(upper_rounds[0]): + if idx < len(lower_round1): + match._next_match_lose_id = lower_round1[idx].match_id + + # Link lower bracket winners to next lower-round matches + for i in range(len(lower_rounds) - 1): + for idx, match in enumerate(lower_rounds[i]): + next_match = lower_rounds[i + 1][idx // 2] + match._next_match_win_id = next_match.match_id + + # Final match + final_match = Match( + match_id=match_id_counter, + tournament_id=self._id, + round_number=max(num_rounds_upper, num_rounds_lower) + 1, + bracket=Bracket.FINAL, + best_of=best_of, + status=MatchStatus.WAITING, + next_match_win_lose_ids=(None, None), + match_has_ended_callback=self.match_has_ended_callback + ) + match_id_counter += 1 + + # Last upper winner and last lower winner feed into final + if upper_rounds: + upper_last = upper_rounds[-1][0] + upper_last._next_match_win_id = final_match.match_id + if lower_rounds: + lower_last = lower_rounds[-1][0] + lower_last._next_match_win_id = final_match.match_id + + # Flatten all matches + self._matches = [m for round_matches in upper_rounds + lower_rounds for m in round_matches] + [final_match] + + # Assign participants to first upper round + participant_iter = iter(self._participants) + first_upper = upper_rounds[0] + for match in first_upper: + try: + p1 = next(participant_iter) + match.assign_participant(p1.id, 1) + except StopIteration: + continue + try: + p2 = next(participant_iter) + match.assign_participant(p2.id, 2) + except StopIteration: + if not match.is_fully_seeded: # Auto-Bye + for game in match.games: + match.report_game_result(game.number, p1.id, (1, 0)) + match.check_completion() + continue + + if match.is_fully_seeded: + match.status = MatchStatus.PENDING + + else: + raise TournamentError(f"Unknown bracket type: {bracket_type}") + + self._status = TournamentStatus.ONGOING + for match in self._matches: + match.check_completion() + + +def generate_new_tournament(name: str, game_title: GameTitle, format_: TournamentFormat, start_time: datetime, initial_status: TournamentStatus = TournamentStatus.CLOSED) -> Tournament: + id_ = uuid.uuid4().int + return Tournament( + id_, + name, + game_title, + format_, + start_time, + initial_status, + list(), + None, + list() + ) diff --git a/src/ezgg_lan_manager/types/TournamentBase.py b/src/ezgg_lan_manager/types/TournamentBase.py new file mode 100644 index 0000000..5b79e23 --- /dev/null +++ b/src/ezgg_lan_manager/types/TournamentBase.py @@ -0,0 +1,51 @@ +from dataclasses import dataclass +from enum import Enum + + +@dataclass +class GameTitle: + name: str + description: str + web_link: str + + +class TournamentFormat(Enum): + SINGLE_ELIMINATION_BO_1 = 1 + SINGLE_ELIMINATION_BO_3 = 2 + SINGLE_ELIMINATION_BO_5 = 3 + DOUBLE_ELIMINATION_BO_1 = 4 + DOUBLE_ELIMINATION_BO_3 = 5 + DOUBLE_ELIMINATION_BO_5 = 6 + + +class TournamentStatus(Enum): + CLOSED = 1 + OPEN = 2 + COMPLETED = 3 + CANCELED = 4 + INVITE_ONLY = 5 # For Show-matches + ONGOING = 6 + + +class TournamentError(Exception): + def __init__(self, message: str) -> None: + super().__init__(message) + + +class ParticipantType(Enum): + PLAYER = 1 + TEAM = 2 # ToDo: Teams are not yet supported + + +class Bracket(Enum): + UPPER = 1 + LOWER = 2 + FINAL = 3 + + +class MatchStatus(Enum): + WAITING = 1 # Participants incomplete + PENDING = 2 # Match is ready to be played + DELAYED = 3 # Same as PENDING, but with flag for UI + COMPLETED = 4 # Match has been played + CANCELED = 5 # Match got canceled, "bye" for followup \ No newline at end of file diff --git a/testing/unittests/TournamentDomainTests.py b/testing/unittests/TournamentDomainTests.py new file mode 100644 index 0000000..bf9518a --- /dev/null +++ b/testing/unittests/TournamentDomainTests.py @@ -0,0 +1,66 @@ +import unittest +from datetime import datetime + +from src.ezgg_lan_manager.types.TournamentBase import ParticipantType +from src.ezgg_lan_manager.types.Tournament import generate_new_tournament, GameTitle, TournamentFormat, TournamentStatus, TournamentError, Participant, MatchStatus + + +class TournamentDomainTests(unittest.TestCase): + def setUp(self): + # Generic Tournament config + self.name = "Tetris 1vs1" + self.game_title = GameTitle("Tetris99", "Some Description", "https://de.wikipedia.org/wiki/Tetris_99") + self.format_ = TournamentFormat.SINGLE_ELIMINATION_BO_3 + self.start_time = datetime(year=2100, month=6, day=23, hour=16, minute=30, second=0) + self.initial_status = TournamentStatus.CLOSED + + # Generic Participants + self.participant_a = Participant(1, "CoolUserName", ParticipantType.PLAYER) + self.participant_b = Participant(2, "CrazyUserName", ParticipantType.PLAYER) + self.participant_c = Participant(3, "FunnyUserName", ParticipantType.PLAYER) + + def test_tournament_without_participants_can_not_be_started(self) -> None: + tournament_under_test = generate_new_tournament(self.name, self.game_title, self.format_, self.start_time, self.initial_status) + with self.assertRaises(TournamentError): + tournament_under_test.start() + + def test_adding_the_same_participant_twice_leads_to_exception(self) -> None: + tournament_under_test = generate_new_tournament(self.name, self.game_title, self.format_, self.start_time, self.initial_status) + tournament_under_test.add_participant(self.participant_a) + with self.assertRaises(TournamentError): + tournament_under_test.add_participant(self.participant_a) + + def test_single_elimination_bo3_tournament_gets_generated_correctly(self) -> None: + tournament_under_test = generate_new_tournament(self.name, self.game_title, self.format_, self.start_time, self.initial_status) + + tournament_under_test.add_participant(self.participant_a) + tournament_under_test.add_participant(self.participant_b) + tournament_under_test.add_participant(self.participant_c) + tournament_under_test.start() + + # Assert Tournament was switched to ONGOING + self.assertEqual(TournamentStatus.ONGOING, tournament_under_test.status) + + matches_in_tournament = sorted(tournament_under_test.matches, key=lambda m: m.match_id) + + # First match + fm = matches_in_tournament[0] + self.assertEqual(fm.status, MatchStatus.PENDING) + self.assertEqual(fm.participants[0].participant_id, self.participant_a.id) + self.assertEqual(fm.participants[0].slot_number, 1) + self.assertEqual(fm.participants[1].participant_id, self.participant_b.id) + self.assertEqual(fm.participants[1].slot_number, 2) + + # Second match (Bye) + sm = matches_in_tournament[1] + self.assertEqual(sm.status, MatchStatus.COMPLETED) + self.assertEqual(sm.participants[0].participant_id, self.participant_c.id) + self.assertEqual(sm.participants[0].slot_number, 1) + self.assertEqual(sm.participants[0].participant_id, sm.winner) + + # Third match (Final) + sm = matches_in_tournament[2] + self.assertEqual(sm.status, MatchStatus.WAITING) + self.assertEqual(sm.participants[0].participant_id, self.participant_c.id) + self.assertEqual(sm.participants[0].slot_number, 1) + self.assertIsNone(sm.winner) \ No newline at end of file From 54df84a7dabc380dd72c42406e0d7d0d9d77373e Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Tue, 3 Feb 2026 23:00:58 +0000 Subject: [PATCH 2/3] Add Tournaments UI (#32) Co-authored-by: David Rodenkirchen Reviewed-on: https://git.ezgg-ev.de/Vereins-IT/ezgg-lan-manager/pulls/32 --- sql/tournament_patch.sql | 144 ++++++++++ src/EzggLanManager.py | 14 +- src/ezgg_lan_manager/__init__.py | 6 +- .../assets/img/games/darts.png | Bin 0 -> 78046 bytes .../assets/img/games/dota2.png | Bin 0 -> 23132 bytes .../assets/img/games/golfit.png | Bin 0 -> 14270 bytes .../assets/img/games/jenga.png | Bin 0 -> 6335 bytes .../assets/img/games/neoee.png | Bin 0 -> 66876 bytes src/ezgg_lan_manager/assets/img/games/rl.png | Bin 0 -> 65051 bytes .../assets/img/games/teeworlds.png | Bin 0 -> 61484 bytes .../assets/img/games/tetris.png | Bin 0 -> 17172 bytes .../assets/img/games/wikinger_schach.png | Bin 0 -> 45386 bytes .../assets/img/games/worms.png | Bin 0 -> 10076 bytes .../components/TournamentDetailsInfoRow.py | 35 +++ .../components/TournamentPageRow.py | 60 +++++ .../pages/ManageTournamentsPage.py | 117 ++++++-- .../pages/TournamentDetailsPage.py | 252 ++++++++++++++++++ .../pages/TournamentRulesPage.py | 52 ++++ src/ezgg_lan_manager/pages/TournamentsPage.py | 52 +++- src/ezgg_lan_manager/pages/__init__.py | 2 + .../services/DatabaseService.py | 180 +++++++++++++ .../services/TournamentService.py | 72 +++++ src/ezgg_lan_manager/types/DateUtil.py | 15 ++ src/ezgg_lan_manager/types/Match.py | 33 ++- src/ezgg_lan_manager/types/Participant.py | 7 +- src/ezgg_lan_manager/types/Tournament.py | 61 ++++- src/ezgg_lan_manager/types/TournamentBase.py | 38 ++- testing/unittests/TournamentDomainTests.py | 32 ++- 28 files changed, 1116 insertions(+), 56 deletions(-) create mode 100644 sql/tournament_patch.sql create mode 100644 src/ezgg_lan_manager/assets/img/games/darts.png create mode 100644 src/ezgg_lan_manager/assets/img/games/dota2.png create mode 100644 src/ezgg_lan_manager/assets/img/games/golfit.png create mode 100644 src/ezgg_lan_manager/assets/img/games/jenga.png create mode 100644 src/ezgg_lan_manager/assets/img/games/neoee.png create mode 100644 src/ezgg_lan_manager/assets/img/games/rl.png create mode 100644 src/ezgg_lan_manager/assets/img/games/teeworlds.png create mode 100644 src/ezgg_lan_manager/assets/img/games/tetris.png create mode 100644 src/ezgg_lan_manager/assets/img/games/wikinger_schach.png create mode 100644 src/ezgg_lan_manager/assets/img/games/worms.png create mode 100644 src/ezgg_lan_manager/components/TournamentDetailsInfoRow.py create mode 100644 src/ezgg_lan_manager/components/TournamentPageRow.py create mode 100644 src/ezgg_lan_manager/pages/TournamentDetailsPage.py create mode 100644 src/ezgg_lan_manager/pages/TournamentRulesPage.py create mode 100644 src/ezgg_lan_manager/services/TournamentService.py create mode 100644 src/ezgg_lan_manager/types/DateUtil.py diff --git a/sql/tournament_patch.sql b/sql/tournament_patch.sql new file mode 100644 index 0000000..1d56421 --- /dev/null +++ b/sql/tournament_patch.sql @@ -0,0 +1,144 @@ +-- Apply this patch after using create_database.sql to extend the schema to support tournaments from version 0.2.0 +-- WARNING: Executing this on a post 0.2.0 database will delete all data related to tournaments !!! + +DROP TABLE IF EXISTS `game_titles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `game_titles` ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(255) NOT NULL, + description TEXT NOT NULL, + web_link VARCHAR(512) NOT NULL, + image_name VARCHAR(255) NOT NULL, + UNIQUE KEY uq_game_title_name (name) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + + +DROP TABLE IF EXISTS `tournaments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tournaments` ( + id INT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(255) NOT NULL, + description TEXT NOT NULL, + game_title_id INT NOT NULL, + format VARCHAR(20) NOT NULL, -- SE_BO1, DE_BO3, ... + start_time DATETIME NOT NULL, + status VARCHAR(20) NOT NULL, -- OPEN, CLOSED, ONGOING, ... + max_participants INT NOT NULL, + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT fk_tournament_game + FOREIGN KEY (game_title_id) + REFERENCES game_titles(id) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +CREATE INDEX idx_tournaments_game_title + ON tournaments(game_title_id); + +DROP TABLE IF EXISTS `tournament_participants`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tournament_participants` ( + id INT AUTO_INCREMENT PRIMARY KEY, + tournament_id INT NOT NULL, + user_id INT NOT NULL, + participant_type VARCHAR(10) NOT NULL DEFAULT 'PLAYER', + seed INT NULL, + joined_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + + UNIQUE KEY uq_tournament_user (tournament_id, user_id), + + CONSTRAINT fk_tp_tournament + FOREIGN KEY (tournament_id) + REFERENCES tournaments(id) + ON DELETE CASCADE, + + CONSTRAINT fk_tp_user + FOREIGN KEY (user_id) + REFERENCES users(user_id) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +CREATE INDEX idx_tp_tournament + ON tournament_participants(tournament_id); +CREATE INDEX idx_tp_user + ON tournament_participants(user_id); + +DROP TABLE IF EXISTS `tournament_rounds`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tournament_rounds` ( + id INT AUTO_INCREMENT PRIMARY KEY, + tournament_id INT NOT NULL, + bracket VARCHAR(10) NOT NULL, -- UPPER, LOWER, FINAL + round_index INT NOT NULL, + + UNIQUE KEY uq_round (tournament_id, bracket, round_index), + + CONSTRAINT fk_round_tournament + FOREIGN KEY (tournament_id) + REFERENCES tournaments(id) + ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +CREATE INDEX idx_rounds_tournament + ON tournament_rounds(tournament_id); + +DROP TABLE IF EXISTS `matches`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `matches` ( + id INT AUTO_INCREMENT PRIMARY KEY, + tournament_id INT NOT NULL, + round_id INT NOT NULL, + match_index INT NOT NULL, + status VARCHAR(15) NOT NULL, -- WAITING, PENDING, COMPLETED, ... + best_of INT NOT NULL, -- 1, 3, 5 + scheduled_time DATETIME NULL, + completed_at DATETIME NULL, + + UNIQUE KEY uq_match (round_id, match_index), + + CONSTRAINT fk_match_tournament + FOREIGN KEY (tournament_id) + REFERENCES tournaments(id) + ON DELETE CASCADE, + + CONSTRAINT fk_match_round + FOREIGN KEY (round_id) + REFERENCES tournament_rounds(id) + ON DELETE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +CREATE INDEX idx_matches_tournament + ON matches(tournament_id); + +CREATE INDEX idx_matches_round + ON matches(round_id); + +DROP TABLE IF EXISTS `match_participants`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `match_participants` ( + match_id INT NOT NULL, + participant_id INT NOT NULL, + score INT NULL, + is_winner TINYINT(1) NULL, + + PRIMARY KEY (match_id, participant_id), + + CONSTRAINT fk_mp_match + FOREIGN KEY (match_id) + REFERENCES matches(id) + ON DELETE CASCADE, + + CONSTRAINT fk_mp_participant + FOREIGN KEY (participant_id) + REFERENCES tournament_participants(id) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +/*!40101 SET character_set_client = @saved_cs_client */; diff --git a/src/EzggLanManager.py b/src/EzggLanManager.py index 26a2589..c4d060b 100644 --- a/src/EzggLanManager.py +++ b/src/EzggLanManager.py @@ -30,7 +30,7 @@ if __name__ == "__main__": corner_radius_large=0, font=Font(from_root("src/ezgg_lan_manager/assets/fonts/joystix.otf")) ) - default_attachments = [LocalData()] + default_attachments: list = [LocalData()] default_attachments.extend(init_services()) lan_info = default_attachments[3].get_lan_info() @@ -161,6 +161,16 @@ if __name__ == "__main__": name="DbErrorPage", url_segment="db-error", build=pages.DbErrorPage, + ), + ComponentPage( + name="TournamentDetailsPage", + url_segment="tournament", + build=pages.TournamentDetailsPage, + ), + ComponentPage( + name="TournamentRulesPage", + url_segment="tournament-rules", + build=pages.TournamentRulesPage, ) ], theme=theme, @@ -188,5 +198,5 @@ if __name__ == "__main__": sys.exit(app.run_as_web_server( host="0.0.0.0", - port=8000, + port=8001, )) diff --git a/src/ezgg_lan_manager/__init__.py b/src/ezgg_lan_manager/__init__.py index a53851c..f781029 100644 --- a/src/ezgg_lan_manager/__init__.py +++ b/src/ezgg_lan_manager/__init__.py @@ -13,11 +13,12 @@ from src.ezgg_lan_manager.services.NewsService import NewsService from src.ezgg_lan_manager.services.ReceiptPrintingService import ReceiptPrintingService from src.ezgg_lan_manager.services.SeatingService import SeatingService from src.ezgg_lan_manager.services.TicketingService import TicketingService +from src.ezgg_lan_manager.services.TournamentService import TournamentService from src.ezgg_lan_manager.services.UserService import UserService from src.ezgg_lan_manager.types import * # Inits services in the correct order -def init_services() -> tuple[AccountingService, CateringService, ConfigurationService, DatabaseService, MailingService, NewsService, SeatingService, TicketingService, UserService, LocalDataService, ReceiptPrintingService]: +def init_services() -> tuple[AccountingService, CateringService, ConfigurationService, DatabaseService, MailingService, NewsService, SeatingService, TicketingService, UserService, LocalDataService, ReceiptPrintingService, TournamentService]: logging.basicConfig(level=logging.DEBUG) configuration_service = ConfigurationService(from_root("config.toml")) db_service = DatabaseService(configuration_service.get_database_configuration()) @@ -30,6 +31,7 @@ def init_services() -> tuple[AccountingService, CateringService, ConfigurationSe receipt_printing_service = ReceiptPrintingService(seating_service, configuration_service.get_receipt_printing_configuration(), configuration_service.DEV_MODE_ACTIVE) catering_service = CateringService(db_service, accounting_service, user_service, receipt_printing_service) local_data_service = LocalDataService() + tournament_service = TournamentService(db_service, user_service) - return accounting_service, catering_service, configuration_service, db_service, mailing_service, news_service, seating_service, ticketing_service, user_service, local_data_service, receipt_printing_service + return accounting_service, catering_service, configuration_service, db_service, mailing_service, news_service, seating_service, ticketing_service, user_service, local_data_service, receipt_printing_service, tournament_service diff --git a/src/ezgg_lan_manager/assets/img/games/darts.png b/src/ezgg_lan_manager/assets/img/games/darts.png new file mode 100644 index 0000000000000000000000000000000000000000..6ced577000cb3853d2a48f749c282de030332931 GIT binary patch literal 78046 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�=e;YEV8A;U4emBgW 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 Jud)^q{{v-d`6>Va literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/assets/img/games/jenga.png b/src/ezgg_lan_manager/assets/img/games/jenga.png new file mode 100644 index 0000000000000000000000000000000000000000..72646c9a61b39d7693235ec5c4565a9b71c17c9d GIT binary patch literal 6335 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 Dn6aNv literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/assets/img/games/neoee.png b/src/ezgg_lan_manager/assets/img/games/neoee.png new file mode 100644 index 0000000000000000000000000000000000000000..573df8b696eb863e5a4637c1d2e3dfa83a87ce25 GIT binary patch literal 66876 zcmV(qK<~eaP)1^@s67{VYS002ksdQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+NGUomh3u@UH@woH3X4jI~WNTyIm>QR(j#j_nms`@#PQg{{8cwU&Ecw zujils*Z0Cde*OCU8<8(P{Qms@+RC5T|Mm6o_Z$3vd-+rTPjA%bpKpwR{6G zR9U^1`J5-l?+MS%ug_C{7x4Ihxt{m@!CxO=$P4^)Kfl&LZ^nZByLI~epUxF+FE#z! z7yZMo{Qal!@4tTi^KPa1=OxcSEpqw$_ka8KE98Ir#`E{*#Q*%ssr~s={Kv1e2xRNRxkf)?C3n(o}T#k zwS@Dr{hrtPw8kf|z)NG`%>qC2-~RXd@BYBvx3jsT57GW_WHJ`rIuT1wYApU z+hczK&D=|`z4hMTm(P58=a-*;dBOXRIG&M4zD5~!w9&^qF`t=co@LhAW}okh>sjE( zDyy!x`g*_cVM<^6@>jn4wXc8g#?eQyY9C8e*fOJKim2*|Nb|2E&SQFcy`Jc z*1va+uh#n4TLj@GyJu`zyi#Dtt6P9UNB8V*A*JZfxo3A5>vH5GvwOCJJH`&CFT}jV zUwe1O-;TO-|6lud)$|Yh7XM#&?sDt?n>+Wf`}Xg4Z5f8<*|DD&x~TVq_wkxHHvS`4 z{p;`7KYd~FVXJb#4P#fNLYKdVOo8(x04LS}V`U zLbUnLU^L?5Uv4Ac^~=u;54SPW9Tv`+I|g$C(bu|vV*A^A_W5GW&z@z(oztI>S~2c- zmKDFsC*?PdRd@V|iR13L{A^)AVqx2mh#KqKi#vPRhv@rorSBrTj@r1wc#k!D`^p}z zu=@G?o;C|VR_=$-+o^}zuKpxm8~Dr4VHAw3rzbS_hLuR{_cz%-%=Ymm-Uog@{U|szDMd`;u1>Aj|f%Y?*#GDdB-Q^FS0sU z_*l?#_w}(lPx&^%XMHm*fQ-9N_4}5Lh1>bwfze=9`F!a9Yo*UJU%xN?)|q8W*y>z+ zW8O9KdZJr7yRut|eSc4$a}w1mySVG~&XnJrp1Q9%)=Hz^aX~2>tJHDKk?LG5=<}@o z!oF$^Df6H7>HqNi^?!Q-9P@cL0KsS1`h~RbwD!k3vhDc)bVqlI*Zgq6u&|i7&xYZC zZPu~yd%`M#d5-U?1ZQ>;i+<R3`Yo;YTOm&jXg#}v`Tyt1wt2cMp254k;TBsR^Ke|H(VVF=h@7;nc2 za_90eri|Z((6V7Kues-5AVI!rSi4~qv-Rf#D*LVg{2JdnZ-rw_e!~mXdPaT$shLu! zVC22Nu!kNvaRclK7Z|MIhSf~)clM`rZsCb3y?hUVBT&Lb-U)i&qul%9rM>L=joJ2x zKhE5*hW+F(i~)0r6JHx_2<|Ze5Mbr$U^1+k4XSr&0Bjj^=$He*=2JRcr}JhPJGg)m zuTmJuu@|tp!gyHfv09L2OCE{Pec%3u7ueFpP0M!Zd`q}KF5Raf~5I9cVAY*5~@*xyIA!p5RUfqJL6wU zbKk4o1gATdClZb3h3j#5*chLzbF!CT+*jnO>~GQ`S;6leGZ|A4=bKqPp$vGmnZ_>uQ(>{lh!4wyyh7nim` zfe&LX#5h83V%>>x1LcBO&AP{%Tl+-6onJrI`^QDgZk3zBnur`%!2xcTEpwG1>8!9F z9H_|rI=Ii;wg{k&4&^>ZTL=Of3o3Bx1&|XFpaz!|aCgFY;R+|77qO(k#e8dipO+Wf z%ynW!>wq$s-+GR<1?~mASl)geTv3O&W6qT@Q@o76k*ABm^Q`aO!-u`k_GBD-fO?(S z0_|rBNA8>3U4k@k1U9r05`KP5k>2;IA5nwA&wB0j`ri#~VFkqDK$IK#868*VLdHn# zBf22`5LT@e4C2F0J8N{JsWAtF#nM)AE^aw4R0E^jyd9AlcR+9zLJ6_Sa5Tf31PL@` z;C43HI5x1uwr25V6RAreD(;EXVJqmLv_7^J;qw$i9Qn_rfWJqBS3_Ka<1h?h_2>9hO?Ba!QTEut${O$LuZ^9?0GH?X8 z38?&%JSGzc3N8Q=#`+Qo`2KoukjV!^5CVUP|FJ)NKs2s;V^+Hms5bA-+Ce9<`Ai7X zONQoJ!}~6R?20d3g_VfN!^r~dud=)t#T~Cr;KtHeKum>DG(htF&e=Pt1@c2oAFL5X zGTIOhHzXJj?pWx=A&3Kj$x0yPyK`szi4$|j4n2dev&0{`%Y`H_bDfaOWmM$C2W6?@ zkhdGZ!XW|jMx^Cl+Ot_GO!P%jK|Sk-b8(GYu>2C35nYpunky1>LL(f z9;2Ca7d_gD+TnuyFj5r0@eztOC0(w|M&Q@?c^6{j1Cbcm${>QmcLs!JK@{Rg6ot+{ z@zxA@BZ>I#4?zs6z_!(r|0|wL@Hbu%SyeCLyKpE_wu3PpGPOT~wk%`u(HX!7uE4vA z*Qx{fAN97lN^maAkFXFhi=cPiT6E_}<^GG11>99&AdMG7`nEgn{&rX#Yc$LKRa|tz z1jJ4jCddbkL2^kI0qzV`&!iz)zse}bW#y0qdpJo>GxmiVA$z)#C zm_SI>!oyz>k}gu;1nQ3)n~QL;h#v|1PgsU=R%{l)53I=wh6sWuoD0^z)_ui~%dF54 zNMz%F0*WQQUuEysjee{sFI2|8+$Q2@0hghUHL%hhZ6fQ;817Xt!-(GAco%@J7ePwi zHB&Wcjxh^Tt8&Q@k7}r%-!Hy_YcJGxSFWhWi=BYLuJL}zDo~)~m#Bp$_7JJ}+UyDJ zX24DoYtSHQ4~SG@b0Ch?vwr+M>S&=Bhq40Yi1lp%f)xO`N+9G{yaG*IxoZR>2H)YZ zAD5CN7NtgPCU)}0^5+_`;g9zT1#Wi}<^XQ?K8BG~s+g2eU6JFs86b;v0x-coRC|8F z3uO2OkwOv3Nd~A_ZuH(-fMV@4fV41%+X#&zacK`>mAHmtC-6hOUX{UE>xi=x_0bGHE%uuBOXQ=t<9X;Q zS`XD8N?s4N>jQ#$!IFU`RvQPs2tOG32aVc9dzCcwpe=bzO(+EPqM{ZhLS*5FL3()8 z){H=x>afy6=J%F_yK&3BNh_PT;fHot1%U7TnULK@B=!xb2XbJ+tpJH&-E09QzhW_hHC~K4$jD3? z4WcJYoADmPP($bxt)>Zzbel=S0pm z7dH!qK;xUKYZEm2<`qGr(u~o;lo=FDYHyS!9ySaBFbeuiz7aJd1>oEfRK#~M@iT0g zb-X}~hS93dPIS$D2rTT)GP3i7YHJAE-CpiI4X%~2^Tr8*B8-C6rm4pTLZC9=gk~j> z;G?fNfzHJuGh(a$I)fQ z_%NW>;Lj>R54?u!BcP%%*nb3afLXry@^g(3_Rh+%@b7~|;G^d2zz&vEm$=Q85|lqk z0N}K{hczg7?sF5+f=9DY`CzpR@G?7!?f{sOI2#7YJtUFb5I0x)J|X|jT{@an1HA(U zsDXZ7T*d_&^~F05Rv(&{p2qI3m;XDTSpaDSH7Nap$Xnd&&>`%*i+}G zfiFPmE+O1SbR~kJ4&Kgfs(K)PILiV5`)NuLxB_7D63|Aic-ZH9thGMm-OOJvCbto& zz_f(wuJ<|d0L_Vt*XCX(Hi1>)(S1w02`1?NcXMYA@sX05y9ul`f^z7XrWl3DLdYxf zQvS*nJyk}7!1p2xfM+;{nJx*5P{jloQ<%%J09SZ)r8AL!cC z>!*r;PL9Mh*=s^Xgoy~kAdFO$9_9&bUGvUoePJ=&4{;IBLi_?nYl4eBq9%j_Ah|c; zk^O_}y$|{ht^VdIODHCyhKhC+gNmdO5|j@OKIs{v2H}^hVrTZpAJbkZ+YdL+IpLWL z*PMV-W3d73MEEVHf71H-YA5JN(=q5pj2BhJAJLN@rLf7o7q*W{q9DM;fR$eWGAL${ zJI);dAGK_MI#H6C0I*>40jVE6&%&P+gm5YIGGpFs$0qz`v(~CV?bNves2um)g0U$3y{K9{fdj#C`#S=wjsMP8-DnmkMzv&r`$-mdJcFD&WPl z>${WZ7)Pi7`MsMk4M+&xVm}_L$%ycZ>Ty;fkl_QUiyLQOkW*ka1A+rQ1tZgD*Gqv5 z5skZi=4uZ@q2cGK;zNa^CvhbTARas|X9v*DM1Synv*{ZE2S#CmA3w|9UCPH# z?BOCHf%qdj02~JJSyWuSVw*=^wO4vl&_tj!Uh=^NqA?op@$f*u#P5O`lq3aad*H(G zbfTaq8e6l1a$tZFu8P`XD?)*B8zZr9_<2mc5hjKXZ0r_3NHl_&9Wa1W3#hdrjyzR` zL?9}l8>1r+xh~8XX~sSk_1cZkSYUATstEj)2!ks*p1Y|ksNL-vxCK<fpQ#NZ6m#6M=I2FK~}wFNaG(nsXen;Im% zvI{XpvpV=rDR?TTLpUvfArI3iLHw1vnKQq0|-d@>>d%5WiZ*hXCcm>gE%M+ zbD2$g{($JqfWfl30 zbv)o)VHvSd^Cs9<_N3@~v8zH*MxAl{tm1@J@I!YrTW@`v;tk)2e3SvMXLbrpJk71Ro03tA2f+m&?mweESreSf1`+{^D zOcBe~BZ{8+d{`m4?U^I*fmPqAx3G4zYDk1xsb7S9`T_Q9BK-Dz3=QS2PSe3#32yI)OFsn=)D%bY# zGdH}L0BM#4(E{|C5}XxyL}ek;_-NQ$CQ?8)VA*&vzI@Mtrz9ezRb#RnL|nuvf+ti1 z&In(^FyHNYfag2QY$YP+TM4uFa;GO(G2tHf$>-GTHZuoZTp$-rnj1#FVJ2Iqz2P|} zTNVRDfgowroR%gF*e6SW&&p*HPtpq2(;qkK^rK> z-&v|Khz$?emY~H5*vp&}u^U=5=SjbxbYw$}#X!7kC@cbh-}_*G28vm0~X>B4M@ncM`11G5B|YMfv& zT%nrlg5e`oQ#0R3MCEOuGB5*dOajZj!fIIj3mx*MibNW~N{85E{%`m2##|W81RsI1 zLGtB8eBh(3@~SuC0nQhdN6&Zhme~|PoEW3*SRL4^EJ4^}nT9X|;QZ8>%@lWr)f+h$ zd;U$F5J`!J>=K)`5yw_sC>QLW!JE@Qu)f{^h%{uTY*xV~?nFd?zemoRBjJ zW|*%Tev|+B$VyoD>=pcg4dRJb8kT0}E@hRcTo-5XFl}K7NDXL(p9hw<#I}z$k%ws8 zEBS-7hklB1@PC+GK~IN<6f)%r%@I;RQI|JE?+%0h`$pI!yTRdm`ik2GCV_Jy3-f@`*pcO(1d8ViAB-Hr+DwY+P+VKK zu&}N%E@DO{j1P3a6h;HT0mIS$E|PmYB-28{UIkI&CW7QOp#!lAW{hwh$SB(m#2Y~J ziTyj^+tXwD!w`W3k3GMhqNP!m)ch$IK;sai%^+eM0@HkGcf1`VE0Ao zh2P4@nPK?1{g+r=v)0;qD;GbS_}GLa8@JOLwK zJVW(w%6}-=KJ)zCB?yP4;8nZ`9G~&#*7`X`N9xaZz@d1w-m5wnWNXvBe#l<~BrL;9 z){1k}cv{G)GZ2hWitg`L&q4d1bN{HFsSd%|!O6)|S`CZSBlVK?|F=$_F_%z=qQ~@W zekKT6h?fO+iU=Jz$oTH$aT1ijM!C82D!BY0Wdm%`%mFXruBYr4w?3il8YY?8@J2{F zCHz=70{?}`qCKGI*v*|5A?f2L7R2YYn2DW3< z8kAX_opG97Evj!;0~N%i#|*~}Jdqstoan*9rmNh39>+_U9C!`SZNQZb)c6_a7D@W6kMXQR zVi6l37jV@T_~)s3Yc=!V&Gmt8f$K0Cm>U$&gNzFDY;|P=$FY`?ahxR20wR04V8abV zWzV?Z<$)n?@mU%a;5`O{1;n84f&%QrX4$Z}18<)WZnXt+;e$jh#D2o4%YV=8?1ReHGJSC5eG5H%J(S)9h&`jy}^X?Y>0Y*SS=DFdLp6_3#-B6bPO5lZt5OZMXh-4St$|MXJZItfEBmxi$q_gVg zX%hmMkn&+&zz9|aP1_LkXwDZ3!v#!2?1YiuuexJY81W5Zn4@}<0}r~R#T%!Lxh3uC zsuBHz5?jfv-N@~UKot8EAL9tL6Rs~e^hCX<+@B3Gik`jPvL$(?zIy$Y&h5zM>+YY1M*9Rdh`bc2K_B6go^d~1U@6SQOH^UMe1 zt0oQ~lZP+>Z;uFD)l5UhV)qCjgh67!EMsGZ-kJ@O0nyyv4CyJT4}x+v54S25C3}b* zo_We*RmL@zlL}vV>}3$UYuN({5>MpEy+I0opvNnC5Qn>+6Kbp7 z;n5#)*pk)zz4I@X$69+X0l_iNK@52zY8C@PED%v)-4|LFZ^;N{bifiT5T7R!Pctr` zCD+ju&;xrX18UQB)d$?V_z%8g9-M& zETZD$fU0f*9YhZ8bZL2Y-5FK)pvpa`uao!{qbK?V204f42i!M`3+0vu0YLs0Js^Tu z6HuWw*4m;{H5{vekkf?h)9x}+H6Es$#bDc`BKkvy^v^yPE01CIZwlk~)W`q{aZMoR zJ*t+_ami>xrM8oT!ZHa?(C64tfwq+0#rKBcA+uJutD)3}uYJXX%zl!FEK%8(ToU$6 z+)YwcCC^-EH8LUu4#X0u!@d$4zMV{|{K^DA$_KMXR6`Y5+Ynwh_(^zm zW>wtOk}ck_M)sWBj#Yv^HJB<;gcL-TV)T#o!6pZf4DcM$5?TZ1!RwF6WJAHIh&>`~sL0GU!ynXY)T>s#QP%QXisRysSXZ7bmIP>yzDE@gK1_FGm zeiqMYfavIeLXPuk$A)4WEoW1#M9SflcN@f7Jk3%`S-Mm+1aMxsbB-^U)KfEQu0 z7$eS#mE3?~B#upwTz0=k+}6J?3!~gXxKSF&yl)@?8VF6GpO&_tBHOC&fgk{%x$b(W za|&dw`-S|pyp&z_&<$YsuoEbSyIX6cV8uiqD`6p-r%Mc4_L<_ge0$hnf;zr0PfJ=i zF$pOI%?R9Bn>l&_z#JkZOd-lu7ct-T4RHCQOJ0=pwAP;&ewI~RAe&J;3ndZ)>k;qb zIq9o=C-LWCFUINw)h2vuzKU#?xz#PlY{Wm-m#|`kv z8^UaB7#=h%IoQLz1Pt?o1_IC5YrVz_Cb1S&m-Y0ni~>G62Zo9$3NJplZM904ZC zK=s=9einjZr3#Xau(HCrRCWdP>3t4s!#ypABl9{)F*sPvm3}#HjB7_zV^A!Q`jY9q zXz5y+3%zB#6QBx#gCe{88W~ZqTLz5+hCRLRUFJqRjE(!K6GP8z!8W_`#9tB(HC5K! z(m0cZAVJFULv@xFE7I?gtC~PXtza2f#zwos5sT&~O%D(?*vKNEI^}}c>av2N*gAb$ z#4>Mynp=?|2f0@*Uf`p3i1H8NtAj=?x&5wIw#46Ar-?%wW^m>PnYJtq?nVUNN+eUQ zx0Q8-Zx+AAH|qbgKc~(q4iw2c6%(v(#_edkX|4jp0JQvU?}%O=x4RL zngu~<(tV)8{At6L`M~!^Z-Q~fRthc;UD z$R%C(IZce7eV*bW{13`n5DoFfqsdO+P&FOaTfGw3<^ei5iNxc!9 zS_>uwUuZ4ygYR2g+n=7VU$56=tHpb|=E}ISQMePdJ)s-hI0PLY(+MH$fyH!v%6$iN z6-OQzO$4*~QVOT?y|mAYz#V^Qbj_k;Oe@&R0lZbh89oD7_T3xNC1p6S9TW}f2i(MN za?C<9vvPA0?fc0QMQ$3S&k$Yf^(wp3gXfj3ALdL$ExI;QB~Jj-hV*7@q!Bj&1b(@2HP(WSn%8`s`7rs8N5NY{RfyGCpoU^oWMjqI z=2Ka{2WqT9Klcu&eW_V+iDp|DoJFT%PnVZ2@IPV=!hJ`y;^Y=9G%nlpWra#S)v=bf z1G@aJiKF#JiUN@bO7qr>td(rxe2spMC6H!krcvYbjQSoe$guI{sY_ zN#IsI<^u*jR>A(DR1neEjxko}wNk3v9oyj7FknOgS~n+07I*{DR%8}B43Q#z>MSuX z6>OIqR;{9uP1Zk_P-m+~#!1N#Q?MVk9E*zh-($szB}FY~v^G%+4Ps+*g7IHD-cna-&Ii#$@&!;7uO&b~ke@Ve|+1@Mn<`Uo17AQZmiU`LtyCt~Xse5=*daQ-UW3(+Rgi?&5J;>cL>}CLy5xbMf2|G8w-L8lxB*tBgx`C(yiN%r3O$_8g91Osp+B%4 z^zb~Izv461mP&Adjm7-m{X{~)jnKpm2q}RDc*5Zc;|0dXq97o-0@k$Mwo&+__foz{ z__wEoW+>*7E4YFh$@9BatjU7^=h9gTfc#N+~Nc9^UYcY^Q)@zbC8DgoGPF9#n!E);(nLL zx5C9v4c?pk-Na7gMMJ9~p@3p2+YKeMxRclg=$@PnE^ND0;3v%BIG$8bRPkt>PNXO0&G}K!-EF&#;IuBM$)iX)DQx9X+RME1QPlCa@4_Hepyk zvaS9uHenw6@HJxk9^5_b5y!OI8ua25+gjJNXRyN3E-dcMj`Q2ri_?qk$+h)9P|l8m zy-(KYR1xR0>~n%EKrD#^`x1o-#Tzh%xPX&4zKStrq%PDMEc);Q!XO0Ebe)IH9wDNc zVFa*EWQl3C%ONRS+J_|Mju%4hl;yGM)>$jf`&-S?+466G-q{2Ac)^6FkHH?GdtYW> zTJ&fTiT|X}+LianmCqN$0&>^;*PIqt46Bcl$E7I$U%%^~HdtH@W{B($DWPi65@%U) zgl5@0F19gYVh;SgW7OhO$K0Wj?0q7n!Z54N4i~|F>-w*mMZq6gv?Dl5yq&6dsk zvBB`C)UYk9b4D=W$W?CKXkItbq$X}PTg_}SvHYaq0f2FU7qP9&);;dnj+7Ho*a^F+ z?+GFTdw@i|Ab2N35TWDUE)?VnXxVM1sGa*Z4+!yKYi%Fq(t}0jJ=uX<`AmeZ#j)4( zq_|E^EuV1@yAy4KA9u5i3p!|BtE~#Gyp7#ZR>Z?=5p=hvngGwrj&xN##omQvO(qD6 z4@BfYTD*bI6Q*f4rkNjakR%|IcnpKLcT^~w^A@|`%N7b}ZrBVtw2T0LL1uD>nXL(b z`4XNoAkbf^R>Yup%ha%rKE_YfDPE~7p|wJjZq`%w zUhwSuK9kH5`MG)&P{Rq;1RN?9UT(7JxD~O4h$P>U7prWEbG0tMX&q- zirapw8Hyua?A*7%&t6%iNh0`v#mW+yxRHcig)@7&ji$qE!*$NYEH&NT!n*r8cLQcR zlgJ}nVyp=$OYcHHy|=zuz=z?*7%IlJZ907|6SU;KtJ1=mL?S5F=QZzQ0~8>SFFV7skKe_7Lr_d{!* zoNYxN)*IsS5HnPJfrAEnLziO+&OwGft>#%Q;0oPFcJl-XL@o$z!}deTZKV{hA3}a< zqbM?D_o$umIQM~#voFXqzIxk+0O1OrNuikF9EAA`V4OCTTMW;B5%wN)M9~6Rm?xAZ zdF%*qfQ!SXXDjbyPVYO+;j@Ge9YLZe|9YGR zmTl6uCJeG!b+Hh~1yDkn-{zs>vUbYy8wfgd(lI!tLB!2FW{Z>fKYrW*8*O70PzRtd zLhgXDd+`4*1eQk&te?GMlK*axGoOBnKyC-P427>XsR3w6=FQCRHzyI5ex34ccLZ>> zN5bz)Z?|gOKlkvM_ru*^2p~aaSXi}BpR_If7RlS-Jx}@7e5`^ZW(9UpEgK8yexF*u z=cKSqRar9ztnuPEAg|2ezw`74tbHLSu(WJb7G}uC+gMMW*GEV*ix@UPt zw{{XiVJ%=j*^Bws%LMB=(uV*MnyY8Nwy@@tbZ9XCm=Rc}rGsbrusBF`{2utWeS)ti z2NT_oBq&59Ym;Wf8=-|D6MXPqP$Vv`DN?fY$oRpRrA|+IL5xuDlc@6u0G)BcAg4)R z1nUB-JeiHQq)pHK=c%)`FYHd(qg5NX`8o_3Mv~cv_ADD5W4hpthaX$n&F+Cy_$!2y z^;3d;g!SjOS=s(6z(GTd?U#HW78TfPHwf8w!spZ6ZBa(4%SI#{dz+-lB1D@t_^UH; z9#6(l@YZOeRkt-`1-W4J@{Y+vHBc0Kv*I~{w(G)^Tukq)QWe}U+SY`2dbs~=Z`!iw zgaGrt4(-TSv?K0y$QPstI5s=rxQ=ALCVMa+%qm;#=}By}#4F5GZ6VvNNWKK2 z9^1xyzr_^Gq)nAt$A#oq#lBV#J8UUnF&2+a$K7Dpt^QbN$=9iRX>8c3Ya{qNFa^Cy z$a%mIhk(K91omOM&90{g2nLU>AXi=mN4)#EUK{^aIK)CGwj1LGtzR&rW%nn{vvvro1s{)fk50+i9)LOJ%g!SkfB0dj=xy7} zhp=F|K8yZfpqHl`kddU=AbQ%KjLfr?a-&Z@JpQKWjGiuk3aW+~V2?_-y%p2KxOiU} zS$*p=pR_l$sG%@FPmpcmg_C4E*)3Qij#=hO@ITXLc68WEcED0))7I4yo$TjEv4wVe zgiI_c6rHB;yUSWe!;l3oO&NtVaTZNcsSJQ!~1Cjv7{&B`Xo zj7n}xmN=r?MpzyecjM}v_#Rg(iBJ3V~0@SJBqrXPySX^ZS@kGCd zVA&3M^T3?IXLbf!56DPC2s-cQI4b+qRZ_Tbuq~BnHgCK3Y|Ncp?dc0ODuAc+L@)DL z){PUN!8n^>P1mk|+N@?UGXr47Po5v&mvH3dPXjIF!+M2mJsdyw$&sG>(7<9B@r&FA z3V|R?M%%^}3=_$M_kmoWi3kt-;zHrIfV*?{9%p|v7Y60>*gP0LOvJ&UDqV3vth2?5 z=;jopUTvs!-dllI?q>aR4-yQ=6(~w?{LBeuE1K?wcoD#r2MUXJSbmp*Oi#0dLjp3c zWM+hIG5-id15P@M1D2;!rb6Ie=UCk)m zGT9m&VHJ~SbJl_F;klI6129r62rTKcY7zx`a%+HfL^pX>!cV{4zAfu{shhcO=U*iV z|5JjM<**y4RIyfILn4Uc%4xm11$)75G<|Nf?#@&rK)2*nA=|RgDHX8foI@BA zTi-uEz&?(vH``l|`^%fKrTcS!80_eSbAl2UWO#JwhyY${ z`s^@)#~Sdu`SAQ&)d$^yfqqs!6-)ErpN>nhvaWgPc*c@(H!V6^1d24_Z%$jWd(ke) z3?PHf0PDu^<9au1;o0JnAF+n{;`437Afnd3jXki?f?!*`M>HGfycAeYMZkHUxren> zbDwey7GpZ+3pBp^W9OF@m(FQ%YL-QLl~7nLG0cL#`Fb8XA(VT8r?X`zO+WsVGcr0XkzhUVr1Yjhv^=bWX+X|3Z zV}wZEoA*J&8+VsuvY?LyF6$_XOp-mQpQWPP;wf%XpTjqtBe;#aKv%J$1#19Cr%g=| zMAnnYfN#9RQuk`Y>>RH;R3bQPGk@P*-&IJ7!^U?-blWOM>H(c*@+)=WKaM^&JBx|~; zlh~|an%xtZW*K<1QtNhJ(wY0Tk2qX*89hzm_ZuX4#@fIqH|);OWHo=sUed&5aoH5p zvmJHz5x%bp8L$MRfPr0Hz=wZ?6tlAiVHX(?Z0Zc5g`~$~cCH@VEOXZqG7oR$&KP8Yg1&!-kS+)FJa&l& z&qD7XVp~}a@wbaO564}4VuJo~>KM*}F{8pRaNkz&-`vnW?K`r5qgnCVQCWzIFl-5E zmVJS8#t7cV^zqjt3@ zkuA`%Y9;VL;q&ETAbF-!0BR?2mJ} zptqP2=Ff62wZO%S=93I^0OeO#Dcl%scShP z$*KfTGmfx&9CP8c8G;L7Z}}XA9XoWAqWwOyg!{6!IbvfVITvE03(L3K1m1|~0-d3$ zQY2)Dvt{oWDEpj4g9Yc?nZHMjU2&MpeW9sr^>3n+6LM!n8B73Tk6+w#h@*-W`|uEZ z)ChTCeesCsOs4BTqaHT$0sRrO^OPz9(0;P$$;m zc{@ar+lCK(p#rkU^O~m{r$`D>7h}v$AaWEd><(G+m>RH@PfxQ@)b7a(T?Wf`JRWPC z=lbj&2#*Eo0ELc)N!f{8oiOP>;_*Zit1+QAPK|69e_i&YTOiU${1IZC5$!s*XU*9V z+kWO7dTS|(kXY?m^W5Bt6Xs+22`3G1S(ceD#{lqla51x;gwrt*490nPAuv2 z_|KyU$*YYdJsl0zgk5tT5yHalN^Y@q=q!rON$j?>WiDs(Vg1qh#FX9r0_MF~23on;lrkY{jj##zr9%!h^tSWPUfj>a-(`ODRzx3P_oR)`4g3(4 zKwGrPt7F+A3bz#lC1YWlbmAfpy$E1qHZhMWS{o&rMo$;D45PbMj1IluENg%w7z+?) zxRy;Uo)|m6p*S;8DKIPwB2s_#OkoMZi9aSc9deMyWe0@`z_I*RF6cYkv{C<#z9(2Y zA)`uGJ|JPA`iNyCN^`)zx$a;MOT8RVVKpV|?cmY-3{N>LG{-Vq2@C|Hp%3N=dVjW7 z#F0b!5K2OZ7S%53f=9OZcsKL_4&jZRgC^_|NjyD6CK7=mud_MqLLw;G%R*eU)?nG1 zl`lxx&^(>zYID~d-NS(()XB--L*(rv!ukCm`-=!a&FYQh+*CzQdSL#Lf%I)h06L|m zIvX(Q?ar=(T8vjfvtA+eZ?|)(MvOE)@AwCxhy4ad&;Z?h7BR~G{hU4A2yHAuaf%%u zUhnP<0gr0+F~}J7LV|0*kK6ItEO=YP^*XHv6gNfVSRWj)!SAI}Rwi~?yq~w60E%!% zou<=WstiPm1Wxay4l~6O$naCoP{9n0g83b4?3(wXBTd(0DHDp z+!^~U<8?-i#=`3?D;}*U%jRxdhY+o&qp*X3j$So~AAwgwy2s`*oFUzIx8eR5#168K z8sL4qla2WR(=_Oq4=th~oz8NH)KuuLhon!$2L>8=mYN9K~m|0mzjlfm|6Nv*yzBnf)VepkQ&II}Iu6D`NCnVw`ji?t6!yJvARjAd8_B=bD|Ij8N`gL#;L zs1i*e{&uif|MgK5Qh^Zql=iaP3kJoSHV{=O{&G)4te zq=-`Iw%E9DChY0}4IbaD5HtWm$BNJ6;I(#iI5Raa>l0tDhaFRCB**kwR{$fm;WQBZ zE~E^|Qe|>hJ3H;z+IHxA`7EgDk6CuReusYXL`&qb`EjPs!U9I|!56rQ0#|b1A2Bkv zunP#6-{F~y!$lmN z!}5Xl@N1k4*8l?fAgc<#ZzH(?nZ@^EwSdjhf%a_OR*rit;OX0b&Ji;}dD{DlC&a1n z5r-|Oa?<7*V`lafF?L}$OBE9FbITL0pCT|=1ydXp1J7e0l%(BRDeQ&W8fXz<&;3K5 zeb`HFK&@pK+**P547_YXmiX6SaZX<2qgpK7vO2q(F~pnq_&G3i!tq`S4^9il>=Wi3!(k@F(t+hUfiu~TUV~e~Q@(w!)Gi!rU_kaj zU~V?01`j%g^L7qfP{FS_(Z1|-B(+(+bf_m{G9aNvN5kq#6ra`Z(_>P+f&d+cr*J4V z$GPW|_k|cXCsTJh#dAH5L9=i_l!no|>zQQ(bF5y+C}6x_@<}zOCQgs<=_jpu!z`Oe zlo9utmyPP>hO-juu}P;|f2W@o-9hlk$Pm!rONeMoJ|E(l> zLI`?hdv?YCSflLhZezx4G9ZlGoI~;4#k$Vn0_T397s>W<2|%rtz^rfC(E+T@1eODi z2|&Xhvgk~-W>q{Em8HLgEW1^<&0$E0@hcMSy>)P0J+nUO7{|=a%*yC!4mp z*rpS_YbK4Ry~gY!LhnqPK7?|tasqTiA*O+wyshMo`YkRiqX4kOR10Pxd_p*Le^U=l zw2A{3K8`#I$LJH0Y08pgiov5s<8tT2SuN}|O+S0;sEEZToKy9>^LmK6cgKi59Nlsl zX5*;k(*BuEW4KWhJiU5~VD#^@URrakS}~-asdNRBT{r`8v{>4p3;&@$UxLPiKm7yP zzj&Dm5UfC-`kaJYpa!$yRyxC44Q=Ibu(gYB60$k`D?2CZ8VNQfD&pxl%6)5lo$GFd z^#`XjEwd)lnl4hia3(U#JojU?NB43`@%enqRBNCWvQcvfo0I1bFJS|3%{5DPN0-hn z%|Rrd{pa{{^!MhRerm6TP8D4Pw8={L%@cmY&+hX5=}5Q@87S40j@|(f%3TfXn<|zg zQUg5QzK8@vQmQ;{U>eogqbiAgU(0t+`Q)U;Wr8l$)8#12q=&l{#28l{Z;-J|#|0@nUqbZv*wdE!u@pxd1nS)&DvGG;*^1h_$tk~T;1iFA+! z7Q$#HBg&vJGrq=UG`pXzuIzK7^kO)5yWky8TCz(NL7UCh`iTc^Xz8s<`>vq6?!Je2 zXz=XMMvRwh+u<5cpD>aeuhaNksFWz?7`z~N^4M$}i1u>f?5x#e29baislhde7uP*D zGxhP7K9@eti(7zFz8iLf33S<)AUw_6e}@${7V|{)!r>tOj!z;R5GJ^A z9thCy$MOT=D!8XY*E5E_;s5YMz87lPZUG*h3RrFY35};z#KA)a>h3o)m&W^M37y8lj=! z#G~b7osCdt&zrMrD#r758kqU5&#GTokdubeHb1}#*lU}C>yJD`9u6Y_;!VP}?n0@t zCOMSrnpmDc6FrR;G3(W*=)-O54G~pde6y)-S_WeOL~{&`*wbE0_VBJ@0 z>h;Qx9A&oT$v247AtK+zy^OK`XGsC_F6KoUn9!x53Y=F# zwGeZAuI#vo2L7rm!s3Ax{!A-3f?wI+`H|4wd5|fLv&{Js+ujMa%h*Yf`F&il`W_`& z$`QO3O6mvTaFHL47$0|m=w7bd_0e+9hB0A_PE>e`0DKH9v@5|sNUE`vUO!7zLj)Ds zv-{5vw*txh6mvGr3N>(hrB7*Yx@)x4ln`sx8Am)W9lWjc!%{pJVT_?crYN<3v*rw) z2Ph+I5+u*=UCXWgU``Xm(_Q&Dwh&bOp1kCXN1T()Ok381o#g!i#JsJ!7En$&8QO8P zb0fS-tx~sKYveb%F1J^C*1+E`NXl2WC9L&8Z(J)E-q!w^Q@(?llXIiBYPUB6KE6i; zS5yX9r{hZGFDAp+o^LQrP->bnFt@tD8(SV|Sj+3eB&nG#lKPLZYvk9%)IQ;+)s|`< z=FNRg{w9bh*nK{y%*6M&j~jK#8&#Al;2{|rkW6^K>N(eD! z6yPz^sh`HGvb9TG@_kc0N&e6>w+#2x8%lzB_IfsgPw=v^EQOOeE5~ifl~3# zu!!G6RPu%BR$SZNP$(HvDaNoS*#4P6998Lezly-)pPIQZ`=Ba_syD<%_tmJFsiiq2 zM=jRf-u0VL9?285(?s+Tqv^hGPH1Il9sA@PV5kR<-e1HQtppqy1See7~c<>Oe!^>6s9VXn|05n?Hvsm7;JCeZg|1H?HvSqzUTXER{G z&>n~69>}nGta5C0pWJDP;?}o~*F8ASnQ4J zvgw6)BfkVl^3Hc0ULv|qxL-ujgNfx0fkkt3XGP6F0uB|g&j^J$e1lL@|mQ*NIr@ge3 z6yGU4n9k}%;u2R}h-bUaQ}y5BNxw2&9fOfw5c^DAC4qe{YXe$=SB#{>_+5e1;8 z=?r926m9W!o}+G_e91I_%z1W3_yHC1=~Em}H^L0nI!X3YJ>vLtpNeL(#uxmXfW5kgFLBXY%Z#qeN+Giu)#@=61;6wyjJ99}HtK}Wq&cT0%?D!D#DV{(AKK2iJ4H{U3*X0y)19eXUp*9fM3xoTiz7PZi;5(Ef`uCph2JZIn*_QYB z5STSi{tT|xo*xmKJS;yVF=;Ev15NC0nT$;BjX_KvwhkYWn!v#Lg*+ULOsqjJB*q|f zOFIFwi?&~6B$lQEWLlgGED8={APY-rFDHJekW5i zpsKj!KOsKu1jsC0TpWPR%K8q>H85f06ayZ2K$c@9O-g zAs_1h#{F;7|El}n!XHu!3P5pt6W71YlMxpn`>TAQslAD%De&)0R&E|M7E=xoqZx+@ z7b6FV-H4Hwm5YawmyHJm;$-7wGvNgN2b7GRvx||P3Ft4V4{#>S4;)TjR(2k<4;?lh zR#rw1UQ=#H9y2pmMjm5!E>1HJE_Nd}-v5A5a4n{UsZZlqER$enB(|=fFY66tBcd|A5XiiI8BXbb5gPr-`W&A}r zP()cqfQ*fa<-bytZH!#ZJ`@DVmAc3377&@Wj6`Sy`Ca|B>@ovj9IT^Fgf9Uw--l@VCZCU4UXvAR`xhCv|&!8v(Mv zOd|P9^WWJDAKl5+$i+z9$OZHP%EHD4WMKocu&cAN16g>1EZp=gtU#9kkheFrH1qs_ zlm4soknsPb$)zowKg##~JLw-iN)6=rkGp@|+F1VGl}Jeb?i4^HlYdmf*~krK`nR1Q zSpUc}u`seT2Yrkl|8&=XrCa_VT!D+rgoB3@WXj0H{a5>O@USx)vvC@II2S9gi7_W9 zH!J8L-N*?fV*bJ72Uj2N`8QW2G=Db~?SHq$-2(JiD|`^f$il|>Uxe}e zlQ8CgR+#y(G2>q~=4bxDal-$%z<&%fAA0{t`xv}F#zN+Q4~GBb?8DywKR^F$i~m21 zAR+nRLjFhm{x4nsOV|I1f&Y>4|9aQ|()B-L;D03izuxu#8C`JywVVRkeawQ~KNd@q z$BwNZ3oU44IVo|lIj~2tH*LvPw2u^62WcH=Ffb9JgaR6zZ^Uc?^QIcwz{S?F;6G_srZs?6XQyYG(XixQdnAvF#)0Xa&UMDd#{K=Mfm!#SQ;Qx`%IN>okIxPE z)tHybnw=KdA1{G>f?Etj?32d}E8%;uj#H>igO9}LIlcRK+qcGzUkKGzsIi@*aT89z zA~wRnAQC(DC-_G%Mh~tKvNqnJbKBPJc!U}+y^fyc?ge~LTYy7y9f$VdwW=u`k!^)4 zzsU;t;fKs7uCortgxBo2p(})%&fMDWmd4*fl~Hz0`26_Iom2j|V||9sA&wIzD%oR@ zU%&DGK)SiWG!!nGN9n-IhQs)2W28}`yRW$sKh{l=+hSem@C0G9s7dHcLC?9BvS zE)dIRcx(WV+}K?QR(uQh3!f_qBYrpkj# zE$$KAW1nPHAQr)49)bme3Vx+sv8Kz;d7gcP0Z;xLy1yJ_^=y9W%1QSeB#=m%5V;t@ zv+d6TQ+SK`<#FM_>hKlb_^TcG8Mwu`_oafL;N(pO*WEL>&ufb%BX;LEo!wv3U8xZ+ z&kTdERSV?@7adHc`$UU9&%8Gj>wOLU)s=s`tRYUi(uM5!y=|DQW3D!Bo}R8mrDoyx zo$RiEg9FwAwD6x4JU7SFe*XE*d3itxmhtw`W#3Z8eRAv7a?f_6UvHe`4{db_A!r8ObY50x8y6LR9#Hu{z)MWkNd^=UKLyu76`+>i9K&^%@~@DR?x zd}+bnJGKl;G9zO|BAFe&c#6T#VmHm|w0m0TN7ajclR#Z^_S85y_6z49fy0Umj@Oo! zKO}V%H=dmo0P$bqUAOf#?`+FrjC~1MI-<-hGe*c2=ahKXD}h$qOD9yDUIt1}tzQ1N z`??lP>)1Nh>lP7+IFCR%_|0-G4()d|=#L_+|15Y+)-9mFc~yZifh&DFvupayS+W#0k{}@Fve(4QJoIO!y#_ z@e6!LkMwSEu{0PMDUj*V{bY+r!x1o|^dt(o7)X z2?JCZIfl?sFeF5Dl6ekdRnZ_tauY=X{wUzId+n&f&PXN*<7aO{&WfL{$-#;+L{O?X zgU1Cv*K86>!WXxkacUu~p7QltPN;J;TGVyf^Sx!8!Dmy$SGX-j_#i=lM!=Qc$hh|! z(7ml_IKEHm>gbBWsp-zrZmDq3(5P!QvMnYoe5zY$GE@HU@e=3 z@WPwit`7F zdr*$lC^2s3D0vfXD9Y>sy zgI<=^t6R8@<^(8bE9~vhZbmuUmvormH<9~jaWHc1k@+r7=*>Gkcmt_Jy5)f+$`Lh8 zCcn#6%Ptqv9=uZx-svtwH#RP_%$Mq}R^^egT{hp}w+$yS4|IQ^Gl|z8h)gY7mx^_b z`q;naS3PrWM#0z6wRACvXlV4{^sfH4{Ao^<_}x$F%cTAWw9j;e#gPsK^6?aS^{FU% zS;+*pbi_Q~eSI{%W60+2A8`2)Zjgai60Z6Mz6q5kMfJBp^RFXbOTFEz8fOb%7?TI!9fK@nr20(;daF|%_ zMucSPT|F^Y0zv=e#{zBiwq9|3)) zq!ialqN3;cc!m@4Ctodla;{7w$20o1o=<>V3bRdM8)^%;oh%42Z=c*gab_t>XlS?q zv!+BHoGK;uYl;OYB1Moonmo(RD?k@<66+WW*!-RSo29;*=%qpVs3{y`!8H>$^K=z6 zJdpFzU_Wd{ZI`uEw)G+#(x*94GOxXk6Oo~R{Wh@QyeQJU3^_PJ_8~mGM`XsGp1v`k zI&+JNdR8N{7H}V*OF!lfZ;`CwuERAtkYN@kkptXj&-g1A|Ko#2}a0jA+18s7tn z)`N~ZM32N!xV>1vC0!KlwQE`ZJm57@0=uV?z=TRP8e)N4g5!XIRQs8R*9*mbzJWv# z7b-1NOET$*B8>`JHXDA($bI!T$c*B3`MY3uJf{g+oZzgBq)G1=(g|WRvJ$91oZ%V( zB>e6c@ANBoF)pz@+>6Gs9Gn~T<$B|yu0+kT6M052PeXxk7~raChtLg@Wv!kk(2zY(iDxXrk(QB?#hZ`!{K6Y^pz$$4 z*wX!)2Y){Sul|@0n(CMxEERvuF)3u?pR(OC#Ro-})?n!LA-1zfkOM9Je*AO|L#Z9Q zA)5!{_&o>QUl*$kRkZy!v`sscluaIx4@ix`V}eF42@kkP{&5dC)ZlWEWcXe!WavuE zdm>+x8S-?c)$q_!D#^sD>T_{dRNi1M+DaPu7rDh1&90h2%D> z?NnT}pd2EHLbj_{9)-fE%I8MX_Pq(pQs{pjxh|z9Kd#&(CtliK_*#XSg|>|O^A>ld z4lR$ebw+H2mMk(ZUs94i2!PU!3kgx`0)8qs1PXEiXpq`gaONTHic6=9I%!KQhs(>V zekvCc779m+f;RId{G2Qk2g3cBo>R!=$5TAkuD^0ehMl^#$y6uW4@p%4mIG1`(ekpjP?>okg8I8BIRQFA+n)KYN0eY+J&p;s@iCLdg0|cjv>f zSK!{yN9=i!O8nA?b};xXb$``rnB>hP=o^2RfQ!Eqv?UREQvdMsY7RE+zK-E|#u@S~ zNb^v7ujo+{V-GTC$FmN2Qme5yA%surJ3`a?BRpV;IRs~p7&twYbwWOya0IN>Z|8DyiMH-(-_Seu^D-!yNHy}L_;D74;$>_Lpp&#pN;TNC>IqhruQulEz{FCcQVp<-SVk|-+&Gk<8u6*vc5pwypxyoI3MuiLVr~$cH6J- zEtmC9lC%$Uizd7_>7b?TB%MOxR}e~!e|s}L%M?sUAi%3xkDGJQc&wfQ;Qmx0U+glE zPJ|z$L(5<Z=*z$Iggg_FC5MHn-&A}Z3L~*bZ&F($H0v@?A?R$X&VmI6?4ngTl3Y+ z`33fet@~JkC(71~M}5gGB!2?bmj`5JNVQWBNuTOqi>6I~_`bbwZ^@s&d5Wrl;J)Dg zfUFq~JtnYp&V)tPBwxeOgN6j8kcjVQ($uikg)HKA4d*!*j!$6*$OE2)jn8J*_W%y- z3|KPpL;a+^*eiPBRS9946NjjR^R8n)$~so-F=W+>1ed)Go@on~I3ZYh=Tf1zlLDDw zdBmcW$bK@_=Oq2}TLmY(CyZ{5k_60%mY|kJg@>%AAP@ST1p)#jh&N&Q9xeUBUmHvN zT$ocYQN;UV_qVLnZ{FD+?@GQux?jJo`q7@YaUD!Xaqb{nE9OMYeCHf4-eb>@>Q{WE z6_y)@;6ZBQd&x*4JlOqNwJRfeIo#IlJAJ^JRFGhyxQn?Z`+Y(IUQ;}b(in&LNli{I z`G-8)>73rsuRcP*ec~AkF~?|VR!+`%_|tyUVVwd~p=e0CjP%c?{pF>*Y|)6!+{+}; zZCE{=UCCYM?RD%B<5aLY@M2s=g6CK=XFw@Rqjj$A1@m@cG_1k%!Ir#O^9wxvWM{g2eC#YfhpsN7uNDNn`CFzJ84d zKF8EwFf^Z)(aMb`d!NHC3YOAN;Av7nUbi5EBq{cCCNUip%BPyKN4JEJ#;zP1?K?8o zS1zt9TMgfb2PO49DJ-)DzDz4Vlp4H%*2@S@Fgo6kUVW~%Lz`5{D{@&do75#}RkrT0 zx(A4_v-hMtcK!Artm!l*pXk;vz`dcI66NjrDzB)(eB`HZ$#(G zoclEjBWi&oHSKziYfVUxnqO`nm8kf=q=XB8JodvUm_Tc4vD!ayHa2lRn7Bvtm1Sl? zL0Y2O5DSe|-9NY2E#Na%{iKqo#=`LY}2=kDb+=l1-=tL5i!(Rwn9@ME5z(IBIJ#|_2Ixix-&DXPgBaDwB*QRz1+ zyQ2bC)numMgzfkEr?zp!*&#!AGd`!ibfmC9FSt8NZ~w6Fl%w~OWs@}-uXJB}NqNVw zT3p;lJovs^Nv)xIuh<#0@ldn#a(HrHbl>77b2o$k&Y6MzEiCE%i5iDk9rtcN` zs?n*Zt#BJjD~`5%zRiBG?%i>S`OB|wN5d?+K7Zt2(#cPJ?p7tDWn_Ylk{2pkVOv<_ zGewNkB%S+na%5; zL!y>Tv=nZH+5G~ZAx&$5Sh>YQ+3a=C8-bgezSaWU(YpWDPytYRkNWl~9sVX6i}7;#Wb7-C$*-7kdSQA6Mv4sCS}kq;b1Qu+f)3#+?0`B| z=a6ub_}T;})?p3Mwi#yOGjZ4gsr?@R<+J_P%*BJ)*G^o=O3YfFg+3o<$rrw8tQJze ze%awg-uU+2MFHx^xQcyOoMgsRn(w7KK7U&8Uy~ojULTQ z+C-YJ{#YUBpsmEaYmd4whBpDl(s=W8UVR0bFuD0#y2W9~KM!7;_N?dchGHN9S#xj> zPFLFcvNXp08}}gw(|uZbO`6?Ov)(UhXwNVGQra5HqKYCjONv-bV zWAkw5{oTi#eOGCtY5d#rBZIk?reM>^_<^d>M|cQ?OeK>HYYOi$N!2Lm9xI|LRPTyC z5jE1X_%7aPfC%EBEONAf-#Fqr$yyJQiT>|r^d4pb)xOCZqz2VQ&$?kRi^!dg?Kv$aA=1~6mY+P+UxE(W#Am%4n5Z3PUtuxX6L`c zrpS5XA6w8LO#D1F&8N~J!qfdUJGn(RHbXuS-oHr3C#^e{Ds-XLypCHd>_|MxkuIji z=zM(tEqKfR9scguGjJruI$-0G=2>mg=UQgl;Gx9kt-l2J+bhJWdvZZrYhi92m2@e) z+ER@x|LNv_E5*Vmc7o}iE@1TO#>QCTW+YmsXmtRn%5jy2;c@=kGnf|hE5iHnFCWaP z1){wBf_L~^n6Ih3C10~MduM$j)0740vqwx2?Y13S9d%SHB?mv~Yq&W@ijGC{=2 zI1n2!?d$iMwG5;4E^J$y>y=^Pvb1S{Zf$xhRW|i-Re%*Fy(pVXys9-EDUEe+nL4EH znB<^wP|;G9=MS`@uQCU&3zu8oTs)1OTMzrGTDQ-28Tgi7m6c073@gI<1P7x13I4^d zrcpwU0U>}`Dhiv%BL(>6ihff}C$`?Z5C%l(7j0XfFIvYeY#iDd-!a&f`E9nKNmEPL zo^fc$X03W=b-?;`mq;u4l`Wh^=`#=(cS7r%Z2NO6U5^SZb`E9?vMSRT;mPWzJ8D~W%fmmZ zvdnG<1fECEr+2V^4vQe=>t0OL|=g2LV{!=f@eO-(+gFi(zfTv(CvHJQeN zgsZ1(C$FtT5kZwX0(i`F705U$L~;vCbt7>Uz+IW2W})R#EDNHeiu_b4O@1QUn7n0> za|IwQIUF^XXOM^#kl7Cx)|Z!MvS}{(5i?dQR~82R)JLHX??(a!Z5>0MOnf^fkB=X)k8Ifa#kGLs8sOB{U%A}3BYD1x= zrIvJ~(m3@P6@9D)!->|F7EW4bGU>1#?Pe`MwCBTz=R;R|{MccT-A2ipN`DgY$ZYkc z``tE@e}=8;2=Z5vFX3dPZ;`aFV67mPE;J1{o#UO)Du5>o%U|@PKhDqDFZvvlKO_^3 z5x;DxRl5|)GEcy>_~QQll5^#M|BnAvmnPocm-iPhQC&Jn?x*jGP4>5Vtv*x*bD5%i zDsfmD9GZDLF)?ut4vQ@mfE8nDaF2{~lGtLbS8`1SN1i&ycwTIcr%c{40`@(}HZP@ErGmEk` zF3wLBM{(ow3X_KQ1o3WlOFF1Hq(jMgZD<}CW_r44%TamhZ3k|j3=F6f0l9UBX79Gm zR4`|W47D^$pN-MS-kkS{?U?ZV+$D>)hR~_tHxj)s$JxJSk!;WYAiEXp5h6Sb-tq`d zh4SDI$lq~1Op8zQ3T#q<`s&=N}N`ph#taeNy&cC0P%jQ`iUtUVNr^y zhJhK7F5nHkU%N7T8~paL<70s5Ea9F8GoH0A6(o!&SFfTBkmG~ZW=)>OsjNUG+{3|_ zGPBam`Z!>1MuZVk!ZuZ9E0dgtafFuc%z`GW96?26WVkvkZuk3w>Jy|LwZw^AoDGs{t_(Gp4!&>6Bdg1khN>DRh{d94{(N zNx*o*0A3*3%laJSnoofMn^@M+BP~K`MWw0?nJ(;C7cF}c{fSC9K}IAPq#1+|1*+rT zvEbhS%1ut^q=^T8mB)Np2LodOvcB#~=2g6L0)M_xk8%lVA zG%{9GfvV1ei}8rT-S(GIqT@1j5LD!>x=bGn>|}z>9HL9txI<{^-n6MEBV$7w6gVSA z(#OIZVDbtlI?hXQH@7+NVeQ;yUHwQfYD~KOMn@q|7hB$R5$Zyjf0 zSzVq)zue#E;0%r!sKJxcg*tYQq_L(dUCKOt$80en%Cs^aCB0_0liFmTxFUa~r<2Vl zQmO~0A4#3>=472;?H3>lz7Ap8>uK2NuWXOE;$|(=qVx!-^U&YBob;r-L zq>ac(ULZ~0by=NouTPUeD!4Rauc#=MW^=aL(AGPGTe8+R+WTL70Z8}8v@UBnBrCZd zzsjVUg0gXsDe=(xk(#^hcf_vD$|-^f&K5ne}|v z?}+*3<T}c>eCWBWZVH5_#X|EpbtjWepKh%aAg8`)i>L0~(1UBDyudfgb zFt6(a2S>8)RCL63P__dinm=CQK>OP?>Nc>?2n;N7W}13ik6=o*0=oODv$w|zRIZ}O zRXK1bCVOe=E#+~opS(4jb1`~k0?Lsb-$Y~PcnW=-0(%L?8rcg^qj*ml6jKr#B}1Zt zqlW-FV??rWT#aN+74-dKN(OgF5^z1T$gEK$JsZexNVG}**#Oo`->xX$hg zg;Zt@mY4)v&)U@XSf3hfNR}z|aaY3kpcAzSbm$bXi>d8ZVB07)?WYDv%Sg&-@N`Q( z85!K;=9)TzNtsFBP0{R7F-iY?HIMNVEE{yY`tD0J=4_Zeh6#b!3NKl$+7``W*~I@#3RyUZsD;l34j^l%EDz?o#WVqKopXX_3w5FSgA``^_X# zuHriJVLb)5-xMWW#c&uusYnw-rnV99wGO+GoJ>32&aLU7)hyXvo8qvvodY{l1thIi zYoq{9xba$;Y!fndbe|isYIP(~8t?g}u%x=(^rvb<3Ur-hgKd`6i%UIgRZm@!B*r*m zho;j#7CtAYsnQWfN&a+eYsp!&bcW%tPS=lV306*iwi3R}PaQ)4osWmFtp_K9Egt5$ zAlyNhE9u9op}atOrWu}SDw`j~Nnt5#`y-2l*!)y2zCP74sUNa?$epEAGYO>*t+j9xPH?vRLnh;!0sNh$-WO*xDpALLS6M}cPMKdWnk9B2JT{ROvAqxW#A_uK1uR7BhDBj}z@w^&J&{pm=LO&Mv`o#$=ti60K!+ z8Y$1LF)VGAhZ1|0QNO>?+I<@<_gwtRx&sXtZMgBq$nVuJc)oFdKP~xtK$q|Bk5jpC z{+bOdP9$t#kTA@yC!(T@@Gd|R?uhH-lmtd`TKKD?8?Et0;37Mcb&neIozE zX6nSZn(qik6K{467l!wr2puNGVs6skVx#Nyx*SOnd0khmJx;@4`Da6U`7%V}^2~YZ zMs@HJjkq|~DgU?)%r;qJ&GLpwN6o6yn7})C?TO zk21|RI$epb{I;PZZTx`$X#DYJg+C{(jhScC>*b+}@?J~Bt0w-L@w{3D&q3=`l~l93 zUp$(n0%ec%w4G#wCZH%w(S#HKk9QuD>1WvvdlmxXYRKo2TDw5m!2}%~N&iyB9^DFd z)A4v*u`KgLGIBbzQ&!G1x4;?9P>AmdQWA+3f(@);O_EF3^|f-?UI~V--|kIIdJPc8 z%#gDVKu$3C&%}Fc?)=?t*Xg}d_tfsT3Lc)esq%D{&K7E)NlQFKrt$J9fPkV{r%=-X z6n|AFH&9VhBARJwLpHC6xb!#}6H?%?N4%@!gOP66?(=bR;onR{nK%$h0}2i;+x-WIhUv3 zDDE=-7qM-~-UBI)iww=}md?n&p|6snj0H!q$`FijXhMdwO^VA#02L0IIa?)V(si;+ zKpL!Tc*+YX5A9jnCh_qZaIIyQ{}(f5N#Zu&TYCnz+G|i{l~uGN;&V zqB~oKJsn3yO9w|QFOnQ1ga5M^+!gGIVKE!w&&P>O;E~7Q=*Had5H+Ag|0nC% zjx5+|*jgPCayyb(N)#8M9N750=7}=W$n<&LP&5)wtkzl?4PeJiu4~e&c6n-G5k(y; zalEBVsi$RyeF1HvLgQ{P1ScmY%ts$#|6mg8YXeqWDtmpC7)R>#2z*PG__>OBO_wis zC}k#nl7m@tOacdz1y^7e3rP&Qq-77!B*$k&$unrav*L5+hIprzgvB|(9??g_I(6>1X4U zy5KOSp*Z^P+b(^{=sml@%URQ+*)rHVWUA>%DbZH>;xgj}I6Xu;`Q4i#oP zEtXP(TPdUxLK{32 zplE0aO8x~*CwaEcm#I%WRSWDo$t@HzfA|CU9}&m}nEf7cm!{S7zbsazvyRCqx~m?! z3Jo-zR#&ZN`E6R!W+Enr;@40ih-U{us`$x?)>0JPm6$q;|HLfPG<6haj^f3pWwKEC zg?TamD{vE&*8B51w z%@`d1*f*lz>2V4@p2<7tj~~tMb;#6tEBt+?sx@6`eKF6`=!ab@CIP}uA=9y{qI0h* z_oL73rX95<-ymsG5xQ(tB2q9$H%gu;H3(h?of4fO51q*+T3vbod=5ux(3s7Y<_ORm zx@7@5&XJtbBlBZeF3|atv1=00F7JYO7*i>8?{3=Z$6R<#WAu*ljIASC6wR`NVoC## zwq~VDqDEl@T@lHQZjvmkIykzdN~AEXl#;MMA08T$Cgm+CP(nsxly zwM0b~0|O1)+NaW`&$B<=WYzIq==Vfp9p3kg7rBRfI^ZJx!9;pREEr0iLugcEU}&ia zO*F5=wRk3VV@WOXPVmOVRB89h%FskmTm-zK1a%zW3?K{|5}#IBQo*u|C6tmx@TQrp zkTeGBg=PGG#wrEeWl6)yGAJAgV#P-WKEzA#5{TSDuB*jY|=aSN2zs7ScHK!wC*5ov!6xlKGCY#sB&Nwx&IlA^xZB97wX zk%%E2bjF5WnG%JLcJWFvasApV?!5=Y9!81bDdmD5W#xT|rley%%bub{{kHB!-Q*+^ zV)>&;Y7Hs6qAbecaCu9@!!kMv9LS>hKQlov!6xb&^_ksxVrGPSuJr^xK$iJsVOo%n z{^E-gIhR1-o=)-}Jc3z{eRBVeXt9CZ@wBS|X0Ca1wOb#5UC10!6-48#XX~SBMLgE|@QNP*TX~Y$2ESFXc|Vld`5JS|fbrVS_cHp{hVr=i zDSa7FQMzSb0DK&@TbF>0Fxs?G2LqJk#WLm1y86YLnnC zix%AAd=|BbwPx+wg@TUm(frJG>?Scvc0VK(2@f;jIth9*UwE;T-x9w0Eg|Tj7<48lg zY#rPhgaE_r)Y!}4Lb)7186h|CTnF|oohLWNo&B>>k2!2-YjPY!=vRL>N}DylpFF{r z5<-G>$SG+kQNgzeaWMd=E2vRi&6ivpVPy;{0=M)ZQ z7JM8D2{kZx`umAu%uk`{Y_)Z*un)MrWc1@J&X0hhjShLeeE}>) zn|<`Gb2i+%rWw+(in5tCfKQ=>pXyi;#0$el+W`T}C?^gmR!qg=Z}Ui1zv-isJ&812 zqe~foCL`&pw6Q^L=~DBMLTMBZiS}bacxPk+6KW_Js1O2Ba|=Z+VPx54R273h@#)C0 z5I8w&PIg`8YMM%Z!c>$sKGHK{1duXJFc@JnwdZ8W-_8{(ebaDcv1cowAZ3D^&oYT& z?IWo|9a;e^iRF%?gs`MuVEQN>;!FX;#4mm2%Qh(j*naLGpysck6=A z;t|Bnb+NqZsgXyO>*Jxx6k%QaY8yCyq~VFh7OJa+B7p}8Z`OB7MsHOsojNfIx*ECI za?!Ur;`vix;yLzzy1KAGxl~DG{o%w_T%_A`aRt^q13~G)SHbbLvWpqoPD*Hdzl&=d{ z%UH523^XF>g9=?tOxBj#k*@p6(92N3XkFVig&pFX4@O24ohHM~mDh`se43zn;7yCs4G5a) z!Shqy$5AUcm=DYpNK}hS^*y}C2m7LvKLesfOtH+v$I2$TW>m z=s%{!ft6-7Znnm~!k_7SSd8kiMzikF_-5Fa4e*i!{PbYdfqjtiM&!BN47h?{L%2EU z19(Ue8*!4*Xc>2Eb2Vl;?pz*vx^KsQW3n#Rf_97xA9s2eZVt5c6}~+{MUPq4YO`m| zRls%Y;5roMHQ!&xoqN}nVSRo@)!{0t!N3N5A^$@(NuGa6ARFVz2_W>hCH;fe11+rr zrJ`XPai1B zeu~>mq{4<0AZWKh0X+D4i6ySW@owJgU3o6km$M|X5Mio=h0xC-ShVDqS+Zs^4v?z3ui6zG{l6vFj zP~P~?u6R@`H4wG`&aWU1B4f)~fi<(5nwY$mQSdY09ipV3iCme?ex8si!V-TnSE=hCNBZNNH>mQB*bKQ1e)C%Gx0N z|9E@T7|YZ1y6^XH|Lv}ItE#K2tGDUtp5|=i49OuW4M~fRC|Z&Y27(sL0jx+C;w45B z8-ax+b~eNxB*1dwATeYFwjf85Em^i{?F$qw6h(@ZhU6@qt!H}g>RN8y^}oGaKHTbI zi%}wuB>Gd`D&V62sC(*ppZ7fHIft{;GHxEvOY*$aOcu+ukdaZZm~L$H%Dmw*p~VuI zTT6EBfV0k$%;)83I4W+P-cg^dDwK7QR!o|j7!eBMu@ItrvLxL(ITEuIkPT0`vA3cP z-_9&jz0G4$+~+{@JkRQyq6g~;&bWv{#K#eA2!U3bwzYMZrHUd?I#R||YoSDBbvraP z&XLdN?Z_miL9lEi!^W{0rBFqu@ItU`99`rpFjOj*i;`|x(w{9E)fHlY%%!p>tt_Ku z6*i?12O$a@BlB6!&fTN(g3Qd+3Kn(XcszHPYAJu#7Ej!4pZWw$}wx=HDUthY!XYcLv%*ICc%iU4_la1rhi=>B8fiyjmB0^JTc$?rw zMj*rc9wO`z+FkGJt)dg3Klc#-?0dhPANgzF$tS=4d%4P0lwFd|Tejwwvo6rv9B{L2 zIi06Wvy??AV;n)bfH|DSS^v6z$Dh zyz}NBAGI}^)TXz+%`f+Q963i^F4%5s=1t3$fY9;8-_=^Hwbl=&^iEls3Ez*bu@7K? zuLTeG;8zLg2*z0i@~xED2le?BMZsb*S9AkbwT&Ao8K9R`u4U*vy{4rQ zD&hL=`O`(WC!*ksSx5ixbxf{t;eAs+_!k_1>o5H(?|S_E=&JVaZ!l0(ihjX!ufD;5 z6as6h;ofx4U!2Wqk;trd?fjb8wvVlk5$XVM&k;iAoKIbdD=o88=!8;fx$jq=5V5K- zNBeNOi~WXYxoww-TMM?QGdAzd`M{%R_?ax_WdYp~$Pp}~#HA^VcFIH7Z;nT|Z^OoR z!}`XkvXLfJ%=;PR^*&ecOycAFlNrgG(P<<%r;GMtS$ed|i^Onrc9+kMC+vF9&KN4{%@i8~g{uSl`wWDc{B|GCnBRxKC5miX?tHC?Ex*T-8M-0HuVB zF|ICE5VAC-t!ftYc4so37T(h@>vnDbVB8N8ou}N%6W+{H?nF=1>vgK8alHBFIC=H8 z@xy!j<@v>ek!^`>gP1P4eD82Nn#|_-AemPT_r}YOWlP}&<9XGRb$V^%sjXnrNN#az zW6Y!P2|Uwlc!`uB`@jAtxZ0A(OCQjqC{z=y3yP1FVeZ2XX z-_I{Kj^**(Z@+ejCp$S;Ym0S}YH5+J#aWN-cX|HK9&BwvwE!tFS;DxJvu6~Qme?c{ z2WL)?Vrm#Cnx%+==seZ3)Jj0K80W}BU_C|(1ootPzi*Ztq?E)}I>~)pBqvAZ{afVQ zmQTOkCjSpqFIJX~sh6nWWEzPnGDaYZxO&JKQA#PArlx76?iE=rqRA$c8QsEAH?2vt z#O1NjHZZ6iwN^C1+(&xR;fzV?p%8 zlylDh+%NF>Cx3;o`=i`VJmTs#zJ6Bo&N{GhG@Wz%PWXTlqnn#+TvG~T1H&T0E-E&S z=J3oJ!P;nT{>HU&@AmDnUSH2Ib_RK{5qU5pPji;a5Ymi8ADIsa*+Y-)rl;6U{;FB z?HEKKcpQNg5+x#d+v+sYLaT^T5hEl0B5Bf8${1?7F&Z?PQMZ+3o+R2zN#g>2>sS|H zvxGZgCDjqmVkXB+lcz;RVCFqxGP9c|PbNr{nM4PzWUDntE}%Uex~K=z@cUIu{^qUu zH%6TvdeeQL_k8F#d9BFsR&aPV@=HIp%VKPFIm=%8B0v4>Kg+?b+x+#m<%!E%{Pfdj z__tY-FSW@ZspoUKvzFiJWzxB(?L?)D0Ganb60wNrkugE|q4)LLy_?4$%1r*@w&H#J z`}MQ;4%Ii^I}%rx6^~elSvq8rXLrYwYOUz!H$L)Se(Kd*Tw0WDWf_M+Q(D%g&Id{` zUmNBwgr>N4!_w)9QHWwq2)Wklv9Am|3Zxd4nc?*;(YGSmxw0yiRAv+-&0@*9rpB}l zx2=_fK+NMw#S%g!&N-o!x_wgJniDqv{t&!+J1qWJ1+WM6Z0;{&J_s=B)m8{%(-DRd z9u)$FT=`Kr+p2CitBPEQwLy9~=p|K_5K=?v7I~r-#{}xC(aOkG2rtG zCUs5!@Mw8zI`!mPu478ac zD8bd>upx4N*%BMiqHfw9t+VFl0ojdv{MCC$^GnA|^B$9m*R{gd4QnxyCWfOT%Sck! zan7>8S2G+YdS_d{mZmfUqL5e>SO_>SYqq=#U8!|fD5|RBthJc7=9SutG{Q#wavE>i zG>tIE?4JPa{^)3YGW;(8)B*OO%iRM&yAQCwLT*RcI8n1cCInF^lmz8$Er-4AFwx9M zUB1xka$p4gM1xj%0m3>uN8@SHTC1ws<{^-1t-N<+)}aokytlEeYngCrl)q{OSEXQ5 zHEflQO@jys3C2hwLT9Ob(a%1BA*rg0EXxj00On3^l!sqSfXS+= z;sd_w_Z$2!(DlTfKwLYK+MXAJLP~-F6TB5gp2{L+zmu`dQ<6-fwML~HYb5Q_v^ljt z>U>F?)Epcwvg1k1aF}}!ax!nWh0yxut+D8I@`X~|aE{nm^6Ao@?{xCxqL*h)TZ!SI z*I3(Xo#~^q+x)`Ol*jHJwjYdAuzh;)`*O(tRFO`o!gmnDS?c=h@&1^0s%fj|)$cs_ z&PSf))f+GJzTo*frI^Tw5v!qay4B&XwG3`fdE|XNyxB{cjT=T$@j~TkLZBxE(*Q3C z89og_J({W$+!_(jIB5wBS&pZTUs7#JWC&0CrW|lr4Z>X>#E~Do%PLr zxOZ>dO|pF4&3V(VED!1sNs5%~RmDSEt7tTw-{yrp!vksC(8E)=Em@-2k5YA-wl0j( zwUoS8*660NgE-Q?I7)ciu zkCrW0l%y;&eM<_g7WjwHj9xJYhJ)<2vm5-zbiu>>2ZBitiU0s007*naRL#d?j0^^y z8~qXgI+UEIw%fGsEUEc*yqjWp1>&cZy6j8G=%4-&l@feLz;)Y_)-A=dVY6xB3wL<; zM#0!f>>^Oqj$tolRyKUtNY3|C4zq+%mvnBt*yyo%Q zf^V!^E?7tEJlj6%;3GfLva<_y=E` z2r+&+@eaHrs4v&XCPuop<$RM+=LvHmsk9_$4{O80q;d3H>kIE4IsqXS%jJ@$ag0W5 zBx#Ni%)O_-ENdgX*_sRVCzIoTk!wc1UXX#q^&y|1mt3ALct=sBZ4P&f9{=j*UH%gs zU+ix9|9Nq}nIPq>G|SWUIxm>n(Pm+|7$eye5A*T1=Di`ZDe#@B1QN0NrTOw(ryJc_ zSJ8av0$+OlkVkLNdAg0*%^|PUQ_fh=<3-BL!gC|GtVPci7g-B7ToN)8wQ3|x@x;Zf zUQbOnuBtW-LSl0L$spt-ZQVSP7v|pRZ13+Y&#Bj58UGiP$(+$pc8c!siLT+b7)fU} z=esFyY!1|ZZTUK-D658%N*Sh#RtwMuL|~~_e))3Rl9w$Tb~rq;wje0Oa^Du3M-_a73ykJVo(+*fjA+|f zu&eMQFC(agrg0=%t(*;$lu`#uTGm6v#P}8wo_&=73l9M8Yg@riv|(RXxGHrbB#02B zxc>-JB3Staq%z_(G)90CG;+nT7$HckLx)J{^|~$+wD%sPxSJXTsgQGFo?L;IR7kva z4Na@ogix#vd&}J5i2hVl1zKYk5AX7GLNdE~$d#((eOfZYNE0HEbrNQ=MG?;+`U)4NPzs=t3k2;IvgAXEBmM)zLjgZ)rj!!6o zPZe!k@hXGh5eSsEmL%20h^kw5Vnhjn>lCK+0fED0nL%ku@Bu9e)9GYz`qZ!;uB*>x z35TtxIGk}MI{LdKe%55%eDe-pSCu@2V|F|q53FObHXH?8l^Y>XY3iCR?=&tjDyvGD zmBj%%DM&k#(zCd=U@N4^Oq08sclJhWP1!P7k>5`2@0BDb`}$Ku{@L0lx6*{ZG3XFU)0Em(h!An2LTd%7rZFwEbhUwJq*!rU zZ>NHt6qoz&5u?%Qk7V`#Bx`G5P1C%qOW4dAru7JAax4P$Vf*j-Yl2ZrB0{V3xXs{VKb>#0Ei3@kB-(y!%=KKRgx5GkrjuB zKbhAbDUk^mcl%KkRrEUrpox zC*AChDEo&tfG!X~5F$$t^B6b~f?Gy$T^a5WnN=;evgoR|_^>($eUR9eu96AEe)`g| z%WoDLuSQQ;R+V%iNE>2ju`G2|nB$g5g2dO5I>{2l-E+JA{=F%izw+tv_t_u`nz2au zyh-(BUe$70Rc!B$>d9oTwE?LDc~^1v{AjkbI}AQ7$Z|o^$zFu;MepQ(Rnwm?c=UL| z*R2nFZ@55mIOpk|ozd;P2g_c7qcdklFF3(4DVU}ydl4RuD>JyvITkpvOVk|@kq{!m zZ)w5YF6WmzX<&9d-d6E=R8Eh!ls&qzK5&ac-+kiT&fx!abt6=uhyfcTd(JuL%LUi> zt3Qk3UTrCBOC{lGQDSOG=eXpY58&F>(z1*kM8Sa+R64~d6M9nqkr?=6H~3#Ildtcu zs@=~S`~x#8AG<_cKU} zKdmG3{vb2}Ax#P16P!bxXoy0LVzp*xQX(??NaZ630eo2_e4s0!6^dIz6Ji^;CbKy^ zol(>6b~^KAZ3cruwRf<%ytUbNHqt4pAdw2A^$f)^ky2=>lMZ)ehg(U9*Is;s%hzx5 zx9{#v29<^N%~4$o_Ihi4T6xmRIQ+T&y#-rmM>Yv+0d8$H%Jwc_%HG)7<$Y)gZiN+eg+S zh~=`BN*3k(c(K*%ZSLb^hY%IPPusTK85H`qua>(Pc1G;Hhd0h&;LY9;<1DA0rN7bP zrdl#CCtTSc4UTT@P1Z*n!)0!a><@Tx!}q@Ba6IR5!c*67@#<*6OL%e_>E#{fjU|-{ zcZ6Wp*5p1=`f|8$AIm0c{7!y`+Hn|VUNFY^~QKtsf2!S=(;dghSw!r z5)~iTg1Ehv-95FIb*18EC3tbYr|+1^(}NxprOAHrSNZEz!)d8`ImtLm8`>sETOUr_ z7-DKDWWv}>vV+4J>szCTgy3aul6Oq!^`Ic@&#Q%S!4p-&Vp22c7pm9k?qR*cbDiJ^ zQn=k-p|H(-_sW^x&z|4mU~31fBzeJlwkkw( z|3p$J0K1H*0CKU z^P?$?^e!DFojZ5OYQBV1Tix0=pbWEK!S7qo=K6>iiWC_f_v(r>iQu5FxlosU*Jy*E zm72WM3s6MqV+p36G?nz0-q_}0q#$10)x?zz#;AUJe0rp|LD zWU{qbT2a-GC{~t2!9rVw0nv1E{y9Zl7#&V)4S6bjZ=?6z6KDC1N_n_#xs<15Mq<4q zcb1R~?yU{^{MGB^FC6ou{eC|>F&1mX+u3?>;hfNHN z<&ra6Vat}?BH^%`GhVb97wO2z(l!_+jkPOTl@1|@6M(fRfU8(}>Nb2ij6VMR0$4ct zh0Z`5PL?xQdT!N#&ww;|+O~BCofIiJ6p^uwjG|>o#A`z-H73m@Zj$x!zVxCe7iKrT~=xCK>_QoCFf9;5OA03ag+Co}Lib8*3?+(ul zhJ0zzAK76JlcTY@d7BTPf1014%(yaJx(lh+&U&1yC|k$P7&(f8Mb$uKS*u$@@B|?7 z-k;cM(42hE_cw{^lS=l-0+{?`^k4V656{Z^*b2e&lXsS-e{WgWYe8@e$)1ha{qcf>8I%qVmONHj z9=48tYY}Zt^iE(~fvp^&h1dpC)UhF6Ni~-`30yk6_QrcJ^Gj<(hTT5NsS&fa4$J5$ zVnbeNj`|6=RbX~B<9#ub4TnAI77&585uYBcF`0~cWI3x%(|S`?FrGAzpWWb^kobOA z-|F|cE+lbL^XO#3Q*ERx6-RZ&u&LPemNW#~l`u3SrQ`v_ljVJ1ia$vO`y&DN6-3&D z+=)9mBE48W)Z&C0ZdWeIvIzlUjH#UW934+(S=s)wY>+x3A~-l4)9dx?ySK-Z2p2A< zOlO`!Kl#MwI=}hC8~m5gzdU~D@w}w9o-{8)Q54O_`e->CjjYg$w)Moot?9fZIFvx` z5h$zDKH^$-GsByOQRBxh^J9hP-mu`ME9b;dr3x~^LEF;*{1?a19vpHpz}=1Y(X?Jt z2@;}K|IXyuZ#s`?Jg22Fp5k8P~bFOL0A_Ss{)Cvxk z4IS(8G3faTaDos5wHhGTCnwbXEXn&l*nOf^{AnMN{C@!KE!JKLoJQ7;keobB1mS?R zZEaq)4k;wl`J8G2{T^(L5<(P+z|HeJqnrB^|7YjRhV{{ChTyf|dy&6aRdy>1FnLbd zEJ-9w=X~$zXqs+r4#|?_h4sd_cRu6Y+8E{wHu66IMrV9>Hsgv;i{GwGc7kOqMuHM#O^X^YriHUG zU0BKn5>JJY5JMsWsgzZ#s6wl?5}J6gQ1UTb&rKr0TSwV&MGMx8j8teuzr!pDjBUv$ z4cc39mi%DB`6Qu^Sk}Agr{4O%N4Ezw1>nwfHP9L5JK*Zp?Lf30{haT2e4|LS_* z00W@u7j!}(SSKD5=)OP=LF5Q&5e$_QQzd1tL?kg9fv3n|v@xibr4W_mZz#|TFR=S)6HFsAvt}n^LO(?d{L)_#2{_pokGgYt>Rp4gcN}^ zhQr-0eqBi>!6A;1t9N%h-KGnl>!$gwe#RGHyURBn&0C2`+r^UE^oaAzIm6n?-wCa{ z9Hsv07)2IccvOI{8)uRs+Fwh*}|3j4IJ0{caF$eiVz@|BuLqa!^y zVlrJgC1t^KiMNhNZ7aJ3ouiX|@PxMguce5u#~4+NqUdzG)>>&VCi?z{)ZR$nR z60~a_!>(koK2%!p@RhTpU;O$Vek3Z>eSI}~d`2=s1WADfykaD2p-i=$X{h}B{h zdQmRfiILz}_YK=vloGsJHCzauA`*>|q6X9h$76c}rjjqm%J>IpDZUmw*dGS6x4_nu zG!w7_ao^7XkR`-ZC!rFl*4h)|Dq%-324*2(Y@jz^)SFsnAwkU*1Eo|FMY4e~0-1ji+ZMp9Qi=mD{GL$a;rVPL`n{p9mL*Ad z!1`#to=lFjG&3}1%b*KICTQy8^r5qBziR~YrHcRlsV)BbqeEUuI-~dYdz7cwxYfy# zTG1>kM&2VtqzQps1YBe32+u+Zwkk`y)@N}>4C+CTH*!Tjo3lCW8oC+R&z&8q+qcFK ztqu6yqXmyBgUJ)d8fLwm+gES#Zr4&0@ma#PWzENepktjQQAR>cR=b?$e*d*RQLauO z(B->74$1nq)D&Mqvc9!|IaIUDq4 zgspSu*0^+r&n+xZk20*a3>!x_ov|Jr3m0%Hyfj}To#PS_qf-qkrnYKy2mv94KLOa{ z1YEPPpeVk!73?c+5N}nmvk7({nA~Xq#ANk=ahs?X2)YQ25Wxu{LRHstKBsW0EUax% zL{6;@k3^tq0zP`CO0pGNx+vK}={drjBGN;qW1`!_TkAx4Wjby@fbw@{nh$u#x_7!p zBt2Am8^jWbNEfWHL};w?2CbkY1C!vnNx(RXS=8+rRTxmFBx*mO&yrr>JOg46+Ko=m zPZk9i@|3IPf(t}gE}>H>LI7OLY~FJ5e4mTE`X|=9NUiDQ87?@s@;-;w(n~e53hZ3p zXGf>#B4>YD(o+eCwk8Q4RW;-yAZ;Mmny3`AmthwbXOe`wb;HHFW$GhsPqTk>UcGy< zsMy^dy)5@*@~zvuH2(oa* zjVis4=za;AWRN*jQloT*)GdlSiXfa1>7rb&E0u^SscfJMg0jJGclx~<=#;1jN-C*h z97@EG3#!w-e(V~ipz1WN@?TrDiS#9-4DXA-p0WJ;m6KnsD9iW*Pr zTTsR@omazi=ku4+3{|Ae`vo&C@a>YsJDRqkv6e&WxOQ{OpKk(NK~SNPRaKg39eGwD zgqX0hF~4)t+}}7Ea^DXrwO_d(`?XZGz6G+g3E|UAv?941A@kTih;@i(QL@3u6i5X4 zq9}Z|bjk$>N+T8MguW5fF;Wv))0RRTavzaIG0Zz%5T=WgbG%OoZj&eyf`k}eM!8)) zifEQA$+qYrbqP@;TZlTMjEd6t7j;9Y)7c1-zEDg8)XrLBQ}xT)3@U+6yJXs!EYaso z5~f=5&W$0z_1G1Dz26?aAGPL6!XB|i1~bw1Jt zE==e2JBGt~!|>jeUYc-p<`gd>(f1}?nJn2flKo_rG}i(}VyF=eB6PII8cnGrrL(lb zvY0udbEwTOzrX&z(er~f_L`bq6$vqtT2Gd0j)KLy7M%oc>>cxn^_+Xlj!BR?XGx7g z2vMC>t?9{?nI z5OE+^q-?2_?zOF>ZDAGzc@9ZJ9V5$TH7heApn`K|Haj-KLf%=+iE@cl7Ns1{8VGB| z=0kYV25-+vB_;?lM+k#!dkDMcno8>=I0#i;)`ivy9{gf9&pMr6M}W%Gl zG}z^o#t6Ed-e2C_;72+ccckXRt8efFXLtC?i>f`_*3+3Tc~_BPr9iBAxY;^3QpM4D$;H}pBXQh0 zEcq7eMCxRWQK9R)lp#3MtRT@V_ad<}0c>NS$`b1JF7DxNcXjDKhJiIdO&hr}m% zS$ur-PlXtZ_!ap0e-ZckB=eCU0`U|4MEVh0_rrXT1NfUCT+jZue>bikc=LTTGWix| z@$Y_E^23kG<*DzV@sodEq)hL@{udns;!Lr{U!O3@Srj>z!fh_zg^ztQE@N^pE@pHW$HiNGQT)@-1!1&gA~O(pRmk_khd zB&fp~PkE1@*5orwVg$c*^_Yj|F1gYon;?nEkOV5CgVaEw&{7bMVo@0O2Zr%QSbl7T z`}X(Y`TQpZeEg)H`X9x|`55p8`Gcbv{|@-|kH3Wn&99R3PCTaw{5DEI3nqhj9>Q~c z_m|V=kJd%+yNKWWu~G4f_4U9vUW9M?n~HPaEO`9Xs>p5-c^1dB-@ngO|J^wlE+qcQ zaQLu5z2a%!qZLajI3<;$tZIBT2vmJ|G|L8SYpG0=J?{h3H`0Js0VyIH+bU4H*X@4^ zFjA`>go_9!2scDng>arITksWv1ufa?)F^W438n8WLqrxv zSHYq3t`i~EK58GK36ALfs>gDUwDjaNi*OEU9H~}d6wx*q7hGPJB}SU-K%RB44Yh$rhG}+zgU}#caXjRWnbr%#fs6`|7LXQNKSrUKhN2w3HupnC-A? zxsQXh+qQ+YNU+uuv~Hy2AVjW*$lX#f-Iuse+$MheKly=n1&F`%2P)GKJ<#wUeS)wK zlAj{wI|%$XhEp^=ixZ=#KA8i2{5<74HUI!107*naRK~OIKYj2j`tf!7SxBGxE3|L@ z?Aeu);)j4A?>jb3?!3e5EQA1Tg!HIbTY+}i43Ab#)SP=oR|-%j8lnPOF0lVm($gLSoD$BMVcnimVr7b zq)b^?2Cp?rNOB=CE72y=dzADnyvGHPj*(P@(}q?Eq-{~lDM!K6DveYcXCvFzBI=Tv zaQv&|Be`5s{EhLv+)T4BGBe}Zd^~cYVL0j|qniWQkm5OH`Wz;CmBH>!&cFK}KlH;B zuKfQlhQyDrUnxF%?$F)5an$_a52N@V6#HoYHHN=NB}P9Q4MPO4;Kn~7LL5c$k9XJe zuYUsZt{wW0eRZG#$jiDD~Er_oFmZw$pNpMa#O@nP}q?Dv-iZOe+}a{mKbETa+^efufTy(Q$zYuOZCmNV+eQWH;D8 ze~)*(Z=Zki-%Qy%X@zc{&=k`L0QX(%_UKj@mJ~>z5Mn$bcvpkkU@eg-rNkJe2?ikq+DMcZ5EM=Z zy4~(fz?+T-pE>8sl~?W9dw0&tISUX$ z1c4d@9tLcKNe8fpiMFuKvH5Ku+ed91u#E@jh$wu>u?aE=fdB=R)h%^P-L1}P_YPIN z^2&4m7h5{u|G%*B>Y_%~8dcw#>kIGqyyV)TbV2UIu;MYlwZgG$$LO+%_3iy^cxu2! zkqen-*j&Srm;MGP_uj$gr3GGK3nJfO)g+cB!Ll&IqEHT|uZfx#4;PBgTVKH$|0YHc zevZmN?BepXZ8jGg&o#`u4ykR(JqxQ)*oA|N!N$T34Eb07AHI6$j|jebFXbakSlz5) z=U7t%qL&n8+YPx9m{^h9t#+&ASPmvH@B=##rZ^!LOGf0UJsBMzz^NpoM>iU=>vcIh zwyso=Q|J%T6u0~;|5iMWfBIvrnt1^oUP;uNzqe>Mn^jt^4sSs6fggF+e^9CJI4*D9 zL3SbV=${hY_XLgi+{B0q3J-}!Qd;ReQy?*Dwozcn`7x`RrSpy($&UUs%b!@vPN2%G zknUrc{3e8z=UG~pLXR9p-0gR3fm0s$g?)}A2qcW0f~A^GrRU+L879~0)Z}@RXC1B7 z0$Qy?BTmi3XPWyQ6{G@4E}+L{6UFX+YkD))Q&#RTxsCY&}Fh} z%Ho!3mX1N~z!D8?6cX(yvatXY$Q44NF7T3^(w@V-B1<{>g~L4h&IKO7@(~8rqjVP% zIv8vv@hc^IHObI%so4@U1qlkLYnWVgn0aVFGy9hivjMH$+1M(VDKlhobw+WKkx5yJ z)RrclDEkgNf?7#HZcz@3q~g(a9kQy6HxW>t9wWGF)5*b&?>MPxT;s3+OdwcBB9SN* z5jGM@j-0s)ivc0yEb%sy*40FBeOc4r^)NB5)<}f+-s*GhEzdU5UL;!VHh{R{Jg$lo zZrp#U{omDdIKy8<-96W#eXh-$16N%V{`eJ}_^at@PW<^@Oq}Rd&%wCokY%sJ>Jsd@8CVdC3bor;0tcLX3lxTf1|VG zGI;+#vi4^W@wdm1wqNc38VFVWS}FcqpJ?=JLip!I@V`D?t~p>?FdRL1bgaBLd5#FD zVEZ|tHVI!zJAA#HkGnkvzcWZ%uN)0yEV|`FANV4!NQzc=MIp z!;jZpN_CrR*`nqvYD!YI489hqOrQgs1Cb2an-;W9J-P`%V1?!N@PxpHLs5ytU z_K+7lFe-*j#%aO!wc$UG*Jw^wCHVkJ+E2`@x33L9->@iGZ5kDy@^~4qQKpzEla@TPe$Hf8AO{gy zni3T$XE7|LnmAWD+M=Qy+>(p%Erc+XbV0>}Ot}n4C5q!6#upcfkDTE(6`SuZ<=rbZ z*|qg*5M6pv@P+lW^v6o9at-4(LD6lq&B@4gN(GH?2~s2ID#0SqDkQ^PlV=8#6a-SD zYzyT%IF7_}ENn+%X^oB&l2(E`*=B4Z;!V+y_-Ef|@y%1Dw}o3O%Kyx21G`}74?K2U zn62S}`J2~}eftZv7rVuu86h_~U^jf?KvAu`=-GgdlGG{=g=do+MQx(Y{7fjGyzAli zE9NqP>diOuqjtjJ(2=5s<#)-j6=uSqGhIYw<=WR6KI(3bscnpF~+5}xal#tBN{K6w-oL?cSey?k0BpIT118O%hS4t<^Hm$erA*Lcc3KlFrJSElP3 z>QxJWRluNR;nf|Yz`?i*G469Va8_>EL{sxz65m0W9Yix=6xi5l!7LC?mzk^h42CI{ zUdl|8oQWPwwlnZ85_C#@+2LFStIuZR;97|J6Gw zo$6LsYn*cp$*UyMM$5@ZCLdKwc7~T0T(Bi9CQ3XII-Kbzj2)a$Z^&^vQOXgW@%4(w z*Y2IKYiw@<5htXbt*a+_YWGv@-?WLD<-YuVjCtc|IGQb${FSl0f#Im{R?8LLZntHv zR>iihM6L{TSKKW$d76vDA^6QHHb3N1E_OilMV_c$%BsOG?#tk}+>7{X@e|0KEx4|U zx|aoSmR~p-C+(|v|I&Tz4658FA8suVzxYLhG{t($TZn(-d7Kxw7%vOfO2PGK=G(7- z(M93O&13Yg-pKKG#I{t@EDR=e*?n{#=gU8BUo*^Lu?M|m1({Q-teApr-vYB^VLVyl zfDdt|@!Wv^LJ$A&9L@bF({+Q$d8(VL4Jp#X$_gcVZoidNR&c?3xbc#3z9zxW@GP*( zHuLiXRv~F6hUmeA?M=NHPA-B|25lfoz>=_GjmuQC)SoJI(r6l0pT(rWE)2^jIy8=V znEcLHIfsZLkC5?J!iR~1?8oTYAeS-F`#yIfwk9d;REKU5v%Wiw7uoL&EZcH&C&LN<3qzw5BHiU zSieOvcSHtqe&YO1oDMwldmra*nU-&oMsG02Sb3h4BnkCuInIm1Q%V*6eoxh_RRFCN zT>-r~O4eGATV$Es?^1r-Cph}ZKk_<%A6Ws*s@=Y4aC2xZfP1$ckc^fT8&kz$r{HDR z8gBc)3IoYD1pAxLjjzMGcq7(uh-@~A-}4@Z@4KF{kH3xtsK5Ht`QZy@tk#+)@{(Cj zm0X;yFX4-i@8VTQ=5fz1F}(kXzWQ<@-;>3hc}7!Ty_VLZ!_1mhGd_9XomP{fq!_O>fTey_Qipsms-f6q;r!=n~2_Wm(sJA9l!UAFxgP%v@fX^ z26xA0d}7yQ+T)bHm2KQw+|ed0iq0IULG07b__Iav7-ybo$VVn3*VXwmV`?y#cnxLL3w4hIo*% z0Y?wW;s~9Tluh@{BGb!VUad9nY%eV}$C_bZ2qBXsDOD=vc_Dd98hJySCaP2_v9f9| zGeFoDcj39O(uST5-*+j`?Ew8HHs||zTtX^u4vls1#78`eWy$)@aKVm@Th^=~zi-(U zu=WQHqPY@DQsZn?P#f_Y(A<|*W_cRWI-SvL=cI9?m%4MmY$fiI5v#UO zGCH%+wkFnwy%gxBG(C%MUr=tR$h9G7T88>eoo*$=YWh6$MHB>6lOBt&=B@k+-uq zYr~uR{efRD1pw~y^0G5F-smWce{&^|C7C#7EBEEbP|x$!vTX+iM?;r8daz{RgfjYZ zKO6Pl%C+_kUIA-0jO4xBc1k+W7}9yk(wySw_giqW#nyhoxkJTMPfF(Nl4!V&v@=64 zhavegB9Z`{G2v4CV|A74Jbth)C<)BeboX1KJz#z}3M>gV9- zgu?c8tTPweqce=LOJ!`&CXKs{5_D0J=PtgZ&^3#tvqRMUkoCQkc5LAOQ@r^5&oF*^ zz+gFMh;;Q=b#nN@gS2k{Bv1eItJwM8TX^ETkG8+GaWWh)1)M@5&2vSkgV@C_1t8T1 z-`_YYC}oI}7HS%4&48Fh$@Rckk|bCbSLB-MM$Hcb3o0I?z#=h%x+}o7v8F?o-2k~5 zv0h3)+&43&cW!d{|5Im{Ar6i(vvuL6#VZHGXRdSwW?rb7?Q-q6BdPsc9fp zf-#c9vWpe1e+J0GVBk5fWh|SYHB0<7fWB1NC7%V`;xV9GWI6FD!hoITRL92Xzv5bw zl0>Hz?i_u6FDC@t?!hk2Ej!_!&sNxTyJY`qi?atDMu!x9-@sVG`{qWxsyX21uODUl zwfCVW9?Nr{G@2*Vgu@tT30X?9Dq3@F4xZ~$)i9k5 zG-Zo9mu#TOTui!1l3&$2)p>sr^OEm^5woG6LxPc2bk7UfJXAEQQMNP?O&Xsg*MF}nYXvRqfe}*N@#^AoZ!zMGGnJ_D)7)6ca=%RI-oko*YOf*qr8uP-cAsF|Y@LBh z=vqbTv4@Wr7wIS&8vLI}gCBH++$1UxhYGSyCh4HB7STHjhe$_QZhH)VE6G3#h?@8dI3d2 zkVDrmF+94Aw{Ih|9*^W}w^K}~IQKtJ@W(GhUi#@y^zGxgRM$ z#}l>siF+E-j40ok@i`%sNgsvjf5Dh zR&gz2&mx`cF}rDs?*5a*)&01j;a9sYkCF7D;&S(LGHOXUr|d9exlFEU)K3V(sNLa) zxt#AO87~%!b7UD##JHJawA6>%DoBRf&Nlzz?ZOgP`~C~_l7a~g{SrjB+ftRC6s-=}r* z%gp@U|Dw+iu*Nd%Tkqt3NdA28WLs_D8ulEAU~Pkr6o~l&*PWQ_yyTA0YfkSD53E_m z-+uOZ^A1{wzkV;`KBP@pp=GauJaI!fC z3-jQi5XvPla?0frB8!I>YFTS0q(uW*nyH2Tz@YU?)3iI^W1SQn9SDmf9iCoSW50$Q zgiB55`ju;IJTgidf9OM*sWd7 zwAo}}g~lk@X`0Pj&Bf!G6Fs!aFmaIylyod)3v_Lifp0-ck+~9~ZNb8b6RPmm>|J6e zSDa2IrAwO3wT5ioI>Caiv06i#BTaba3=b^zlIyyX>t>6=W8IX~S*8xzlq}ox&$E=N z_`a|mm!1_+&oqG)RuX0DM2bSX*>;sjO`(eYvn4uv7y8HquHFV$oEI)wL(W!mPQC3? zJ_`i@`ZyoFa$Ws_xroO8MJ_yfq~Ppez~pqe+Ojy$gu^ul1L&SQEyz3Xf)j>hJ$P|3-xOjjwRiXu57ETbMl5Vf#0J)V}@6o5Bab z_(uNp+H=W2{%BsH98HlcNJE4fB8nW_wp`!EcS$N9!;(io(>0?%pwcE7#eVpW5|_F9-B<&6?2T-+^?;4$Qy2f^zGlL@T4B5Bx|0 zg)Pa2AYNfji08&;$#df;+XhE53~YL?>yqR+WANp@&$K@<)(Gv;VsvWA+Vu?2l^Q+E8^${<%^jq@X~cg@7!}1c;Gs z%MmCi)ky_nU;9jsBvnhm)mMbvu$4m_>YV8;&^mf9 z9@|t4*Z=h4_Vn3)ySj0GsII?|13!2MFFxnu{w;s@c=P=Z?pN>SbG3k}tG4*x-Ppj( z3f#TRRANK^w)b{F6^#lut__c^s&cgKpkB0@Z+qpibkF|I%Rls;`bTa$mwzm&xH`;- z1|w5Ukzz~@k=uye9*ss6y5bgsRD(u9np250s-8l+g7R1yLcw{p0%?`09*($Z%M5I& zv$Qv1qezC>wi`$gT2Lx-9BH{A5_GWwX7lY5Ud1yRMT#XmCewWlk+c*>V5Ehy6}jt> zC`ppWxV|E5_{3EYR)q+r3Er@s^v}<5@k|Kosx0q~SyyqD`9qpU1 z+#Vhc2FZyCr-a4GaiHwbOLNL`41sS`XoL`^WK7=0#5LPW2TJ9u4jZ2cM0+sWiAf&cYfZMBh4#6`9roW z+od)K7tbDzsDGxx8@;$)dfo-$y<3}Dfg(K7qtcH#{h2%3FTCPhpRv&IeDB`&y5D|L zcycl%%?z_)h3+Mr>JOhj-FyBge_nci#a7=Mjyh||#TbY#(po_v>)ahi8A+CTX<_R) zL)sR?64(lYF`rJB6IC53QhxKmX%-#D`o-gIb@fG|-cTbx-N8zF;7`)PU=;;n24#(@jH0~aTDDGm5tnWE z3l37BT!-E353av(Q`lcqXLPW|SYR=1(X{Tq0r!Tx8F6dNh_=Xq_CH()VHggdjhAHC zF2u@EeA}1?WKv)okOKNh`w&j);b&KwB7iJ|tRP5oyf}_YG__NjOD4*Eb$lw^{lM z+%wbgIcJh*TuHs=fNL=gxHs%1=cA}5O*>rw{6=`r8%p7=M$&3&W_I{&_;2=GceM0M zfZejI0CZtc#^3@u%0124rY9BhmqIZAEH0B&Q(2Cgh+~7ah$F$O14AzKUA|sxgiq~1 zo|Kka%%AL085R_aIph0#oIf+p0x&sMCAnfPPi$=3rtR{8Wxy+lV^R2n5>%c2#A zRnVMG)0A?l)UzxC$1ce8K01Z-*Li!x64hpf;;yH-(UC0N@nHMBxgJN4ja_e!PQRei zarss!0~Eu%zQg;sPI07BVsy#2@Ci!-gZN`Se9tA^^>5eO1@C_4^TPRcA-!f9@2Z>l ziSH4_IpxK6#@sSb{QWn{U-Uh<2+YTrTV+2A=ls3reGN%S9VPFxhu5ott3_NqJ{enEnHa!2b zaQTXL-hvJ2}Ueug!w#YdOh?w$t^b48T0xR_HLNX8ZtvrY&Y^I4em z={bg(=WXWEc+j3*@Of>c#7Gp0TRN0nXZ$M z)!@|^@<3ML3?iIC4nu8ihSuvb$p!Nfv%?G)6K16%UH>X}X;4a%uU}WEed=V1r+)Ev zj_-MklMJfs>zu53*!2oLbsxVSXStt)e`*1S{o0-u+e@wX#uFPW+;MasmQ$>H!2G}8 z&6~GRamrUTrm7^eC@8x$UB%YGp=VpTw$YZ9*m({`Q3wM{uiVUXm{F2~)U_EMZgbuR zYr}_Mc1ig8KYG6X;SC{=S8WDsE3_O%o)xCLVk3+&u%r$0S@YpXh2%R%@b3oe0Ek5p zT`Vg@i2_7oWRY05jZkPL6aqT~caTvXA20V^homsLSDzo=`>LzM+un5rf4+H)hsFYy z0*fLmD7V{P#ELx)ANvvk*8=;#6a$h+5Bc1M&FZTRJJ3Aw?t~p5u1og(D#)Zj^DAwd z;NolZHPqU+#R(xeQ7V-Xpk2kt_ic>9lOEj&oYuf~_O+YSrc?Xo)5rVrScmbhp;(C0 zk`svjT#woFXLw?Dnbvff;aG*r>z@}sy6;H)<&6rqXKNOEY}N&nM$@%$4=b#buwv|# z=P>NS1)J(e3&Gm5OQ}0#+P4sv#FaqV%Gc99el=&Fdij(`>GUyZmRPhb3ifi2YayFH z*?3uM;sGojx!jAEuDWEVyr&u9R6X=;owIR{p9@3s>>5r+akZoplv$tNf11fH+XLDo zf=-HOTe#2Lz>%_xXDOQJZw?pJcyy`f5!;fQrI13ctlA3;lu}4RX02d8vjR+%BjXHf zeS_V(hU3dz{Qdo0pB0GZgvP;Trqcq;mZD>TQ*&*Z<_K-9wn6<2VLf8m>~|gZDxCcS zbrM_k5Mlr#$3Yi@)Nw7Og+_r<$U-1(msr}Q-6VBuWzK5Ik1uoX&yR8WFvaU;1oxlj z64zqUuT&T$OaR6Eze@XMFT-IElDl#EgH16nCg(5DP57OE2>`*azv)?Ah-T*w6^7w+ zRb(W<$7qY6f8F^B`+D!XqWO#O-^XH-B$OR%z8P>f%QA8sofP=P7&MOG$34GG?D_6F~LKNeb%n3(nsLD^7`=L-Fw=XOi#kLO}-I= zLTgfuJ8Ling1lVz8MPy}YyscGpD5FvC^OtY&$X_?(=amyblYvmSM9Z>y0vzAB)`nh zpz7dQARpStO9Mr_;ZVA8jD3$7&i9tjT5bZXtH_Fl3T(2<1SkC=lS_Sj&FN*mdaMBv z*;Nil+!W7UlW~0B_eRSJCedVpprXn!U11dG0k1k zNcX?SXnp>rq>jTvxm+rqHF_692(+e%2Bcd13AU5R6l#g#x)gi&>}>e6pYLw3KDmfm z>`*~$n(eqbV4_|X$*uMEjNfe`&htL_J`zeVqq^`pA z0F$i9k!t}}+oF`@l+MnvYN1Ch%h3fgPg782bxkyr(4LJv>bb@YQ|!)wl7>>R&4wtW zX)BznM^0r+0?0_B`*gJtx!4TM@bwQFJ28aZc-YT7sQ3b>8vf zoE`TG-n}Yf=Zea@{jrw~+uyw|r`eP=o8EsRz;=o^+(LH#`OK*mwikwH11zP8x^_b9 z0*Rl>Zaknh)v=N=i`nJ6;r(|#(4Oe@IdOQAnHa?8X`bHO=KKrRaGwj=`jF)-HuCWH zwP9aq8kRswgAzDpfny5jBRDfL5f=4I1;-+{1P%sINaRSMuoGpWSY?h)BPTx$s9o> zG2^0Msdqu_W{$|b+i7`8=Jx7Cz@{SzNWhMEumvfD9>L*wbdf| zPuUbZxli5#?Ak?g{W-*dQG!D26|YpO-CXBxj!HeL;-Pk6pt<09M?Scvra$2ap>yyI zo7YYv>H+an3vAz5<3u{7eD3-D{L~y!Ju`|)NoygbAJx(Qtfee^-JX}jz4nb_;VdJ+oku3;Z!=NG=1{R3~8CWFC8jAvD zSl$bnZnNVAk1lW&5(7%C zJhg;C$Y(u0N-j~PkWw;|E*$C*F(l$T=GJ|lzx%}#?SGmshZKfRnj^XMPM;fZ9KcS) z9#k))&BkA)0oDvUFsOjn7uJ6v`S4;h?I%6)ef$j z2^)c6XoGPbvLa=W7r1GGEtH_!%}D9iv=uOnGeEDHGZv6#*jgZ6kJxCOV#P2Esa8nk zkrue6avT|skFN@oe!G3a;*jbnN1$k-{3jfiYwr_~r}$I{bKh zKshgnw8lX;3x4Zz+4|}c_4ub4|IH6Exb3f4ckBJhZpU-m7u?KsPke*-ed%ur|4TX8 zfnCU*JCVlV%4d@|W5AM}aA9OqOiFF#rhq)Bkqa_>S?goA%_r!v8h-lgKWv|SbdKQg z9Alj!DuQ4jXvQ!x%2=nff%GkuwNisy3MbL1SYQtfENe(G2qnoKMeIpNz9Jgs%#_PS zQ`1l_L#bNEE{~zSiI(LzJKCy%?O^*Z!mEocPJiDhL#ee7;$fBU)Dx@(ugAtQL zKzE?Vo0ry0>|nq-bTK^CNtnRUm6{4KzI6CMwj7Z>jD7LDh}cW{CntDCqwKaGOm%b zn&%zKHQgco$yH(N$VnY`+bj%5Bug2qBE{Hp%vxLIR>@Tefn_NP1_z8IP)1;xqM$Gu zH%>BJ7f5NyEJGFuOvA&TC{y0D8U_QfFyu*&FhZkc7ARZ01{|Yt3XLrUrYJB7`ccHm zWlc9nCOI|+$JPXn!LxIGTaaSGFwTgiB9@BfUSHV2xXq{{koL;?uHyn*StQz!4u-`F z4p|Bi3N0j3N*o82AY;YdOrQ~-!YFVog%ASmI1X6$!9rQTNHvcOivxkn-SeGv^B`f& zwKy|7p77;&)8cK|_*mRPe&9HNJ=5S@nc%#!Mh#ceQ|eb-5oJJ{U%h^AF(!%g(rksL zs>?_Stci&*Cv5Jc{vxM&d833+KJKxrwLF@PQr0*&M?OSTzxyp{_7Lz>Dr~}>9r3n_ zfFIh>3)o7RVM=t0eQ z4|s0rh#;89D&>h`m;!@1W0Ve%Cc-ACA|x``^hPi!h|(1yU}5J-r@*!}+S7Dw0VEk1 z1-3_~R|q7wB+?qU?2#!O84D~V0|ZHL0K*Il>5vqVrYS|5APp!(+_~Y;}D;`Gto#c4{0ChZ39d-}iEE(Q(^b zGeJKUY*)6LFDyn{tXM>+Bhq9b6Jb`4FQHIKq!G}pTJ3{p`%~SFYFJ{fJ>Rxg=L=K( z@z0P;}`VO$p-b0mFp?D$I-~1KtpF7^(xV6DaM^JYp z1Ax-`^yT+=vg#*qh8Bn}ug&^+GPS8st{?i_&b`f|d8JLWWdKK51Pg+=rRWd3u-zyA zgXi;*R?#ClQ4blXm|_Ek&={{p5i~MwO~(pn=;R{K=qcu^Feeja zrvt9!Sf|@XIHQWGwp#ah zs5zAOYH#uYrP%{{eR7GgL0*T{1!axcGUnZ19u65ZHk}SE45^;&V=eS>97sqIZqD*( zgeOxVPQb0gFh$r7{TvcOBm;)Bgg=n1iWSVI)Xxst(u*NeHW4n^KECf#_XHw=D5hd1 zEM+~Mc!-xOd{rV@hKgIJu;Q4Drx~7Gqf-pW9zWu|{=^UY{fF}P>n}fS)XU~)`R4s# z*ItKUk`l+59<}2?e%00C!O14mmO>_((2>R+6buSg&ME3{iS>b}8zZGLfk&=v3N106 z99Nbqg|TRl41r(3^QYO`I?{AoO=xbTeAABB^00B?tXLgh7G21<&VV!ZX7sVUSkJv& zINy)|=q=9+@1Chp_bsLai^D8YFh(l>?iRWL7l4P`3~+rdeMZe`lDE7X@!8hY5Z-Dp z?_{j%Ge`s#T=IGVlT}J#8T;bR+~WoMX{j)ZRidflyF z)GevCOO|DM0pm8ti@;`c0|t8_&Io%Vl1wInI3U4H2G0P&u_iIh;6Q@G#z|~27>K}l z!8Tryj5k>pwxrh9T6$mJ>wbH!_vVk+lH2CP%)j%8&Oi0Xt6Oz%)p_UEtvcuTbuklB ztHldp096k;<6^Gu;sx8Licnf#yEfjQLcHe!=ZID>c62a3+2+pvmeSZR+{weHsIj8Y z3DOC;aIN#Rjxd5kxXYK5b(O z=xSxGCdf7de7+8jh9k+2Ui@J=c+Zy9aG8Y9zmVz}YLSDxB z5?^ZBK1hvLB*U*xmlkgyRflPL{7bX~`qGav_qUJm^|+|BwwppcLEe-8ij}SG;t=LH z{)U7x2Ehgjl8b=XvH_rJ5oRhPmflTj;H8~aUPH?rB{MTxY~8%xc|8T~Jr4BbNW5n| z#rHjiyZ#&OlPYq6{8GL=PVD@b2q+}R) z0W@MJQ>LBjkQId?m_@1tei*|KV@fb}@h0b<=YCtfsqGTy*mK8Ox2BhxV~bL$E<3w3 z+DOqMeZxDQ*}aF0TeF#PmuYiiM$mn1yvp!?%quQ+hVv%V$0~flO6h2J;$#?0)CZ3i z*PiHO@#1dERRgCh$9TDfiYl~OfFT={!+=;VqB2=ykpYYHWU?tDT`+AKwi^WKBL!Mt z+3Q0B5^+1Q5|(KgcqzjZF(a}{fRR88Z8E-w?P~~CX0}nL5|lASm5KIrVx?BZ`@nGu zxADj*&!d0gd8{Ydyr^jGUAwG}OwVDC{{5fPb#j4#BX9!nGEr zbnC$>LamE1oVAGzol?qoXRVl-!nO_5G>CgXdP-+(rh-|YLz6Wc`4p%kI#0nD`C=VN zY`7NfKE9I~;=xr0SWBMZ)E9TNakS27MWfjJ{)?SgXKM5Xab|{2R=I4WQ)esmf~jp_ zpowq$@Ax>2LzJ@h2rH%G-Eb+5o!eMU7x6idwtNB>C6T5izqr-l^=UTq0_jp6bKpV_ zB}`6fhJ3v#Cm7ZcVg^Nvlv)rp!3)YV82zhv^Jq`b{OX?9i?O{YYm5AlkL^2~f?+bOOK&6@qZW$`vMrFwFkvL9H!NZkbsP~fGdWE%?Q=raQKyFL)P0urUr7n_ zdAPv7jePx*-o1;~w{vMe&DFo$#gBgaXz|B>BfNazDrev7C7g)a_@y%4lVeqE^rDGe zVrxO!#%gMG^kQEcwYI`6WpXB{XU$PQmd8mvaFzI`Ub# zmG^?%#{cRtv}65=3f(ispmZq2R;laPB^P^WX`_=!(hmSY--143b2_54@n|P)+msxS={l)jaR&chZ zlHBu^t2ol0W%t(}Ay#j=w#43q3jO&+#iW2rT@ow#h+ht3|M*t^&nI^{>t8rf9O%d= ztq`V$Yvk*J0L_qrOCF`b4=N~9b9H)W=Q#4NcQ`+I__^YLxPG(q8{0;X7U)iDfswP# zxg}kUJ@cHEb9 z-wF-uju#FUlc|kP*>VX>b+Xc;ddVi|n76mM-1UokVG4Q|!8wcL!wOQfbsC0Z-~JJn zoth?F3u5H5i35`rlmMxPUOJgT#A0CTigX^Njo}(d3u(eoOg*tpi2o^uD=4jr#!&cceNP^!WC=Q^eLU*J5dA{Hl;sMp6irzpwI%wd^2 zSOjyniDkseC0mgA^1R5OZ3$$BT*et`bCQzU z^)hxl7{XD_@_24WvFj(D%>Cs+ORBo8*P*OSR`1zc{KVVVIo`5XPF=W^{cSnYNgGqv z&<>1|{^c=xUKuJnegN&A&I7p|Uz#klqFm9gLAO#UVnn{CBZXx!l8JNtz~{M#ONe-m zuD^PK@6T0g=dW0te7GD^-!snp3pKQ=$K%B+LW-nEC}W27etUVJeDc43keM$(&JS#h z)yrBbUABVZx!Kw|OWKk%ah))2P$}2Q5>TJ3p--35%MFSr%7}+vDy~a*I`wkI;B3HL zP3Ys8T~Au2;p(PtE>GBOX-|d8F2^Xhr5M#s>YB#zfl< zbDoPZH6~n180i#d12hShS)cskR$e=I8OKLv=^dV>KO0ANWtmYCDXDOT!i>eJPkOW; zA4hxk1zKuV>k*mpHI-oC@S&pFnTIu9&e0VeG~RVSzKB?%RVgJEbAd*--jpqElzkM6 z$+AZyR7{_oVR?_kug+V{f$>?|PfT-BQV{0j)T=ISkVFUxiffK(ksAqDbiV8bTgQ#d&&TH?RKW zUzp%ET3&sMbN}vn?({&kqhliMRFf;{D&_;K0q? zSC}kbcJUf#uCJ9T!yswtBvUqltrMvRZn=gWox(m&)V1hsNBDO|hwPR&Z>UgKaa4Zh-7@jULT5M`*MXfMPk5?x%Q6=`s z{^ANd=NvXA4<`gq?;qpRN~moF61pYN>srMBUfhP}q-bx6(Q1S&)&;GaBp;Jh?T~Wl zqx%A>G-?=>l}5vr=svUv6E9{ESOy}dL&C(A5m^xtHw9H&Q5dh#En<`pjnRAX2<3)n zzM!`UZ?F2r<^7jAcUcjML_oboCznaG7MC_P#e^pDwH7*(8EW+qqY+?~eA1qzk%)0L zf|~E48yX=J%>=`e=utpYlf)7Ud?P`kDrpNMO2b7u1ibpaN4b%M1gxbhu5%tpJ;?P9 zKrQ2<6#*v)67k4(l1%&X?!$+R*PRwTJH2hoK&=YyJWDwMG8qHM$vm?EU%8Hc!tQP^ zb0d8NnzaNa*CT^tKt(s@>z#QX`jcyM|8xxoYq9RUowtAeiQ+?xI-FPP5j{c3L?fV3 zYcLT-@e1gjK%@~J&7~WI@7Tb;_kD=+J^##K&y19B)S?h43!BzB2X&p!@$q6dpK-j= z@rHeHut6^847n8^ohI2*AWF%k6(c1KOioglcc+S8sU1tKBPwZ~jipBdzC1ZqysV=Q z)~|9J$s{6a;|fWnJPPAeYSp0wv(zNCbUTlAFXyYVSw@~Y$g)NlyF5ai50TOg|D5t{ zafz-& z=2Zs6=9d|SYL;2*5|n(S&!@4+i3H5m;gU<7k+(173!nc3p5_APrk)1zL+6iMKE^** zA+K$Kw^iT@%_1Aq+54^wc==oZnOPR2(T<=EjYd;_5`l>#V3sNk0s=@~RJge9IPuD!@7&ntXt&o1M(zd(>hzvd75&_s>vO@q-$F;}Xx zwC1AAC}t`QO<)ia)u1tMr^1n38>4M0W@ED$g&H3eajw<%usaN^#7u*9B6U=`JaOv@ z{>S~iC$kr|a-6XX%S^40%z6t+cg`}R38TWZ%e?i2xAE-py`X=O_b#91)$?1j{^php z{cf$e#H%+MzKIk#c_+kUw^`;#D+EtR7gH^4p!(#G(W^(}t8A=yX^0I9FCp;VbS#QY zi;jdvDih=6vJ}t$(K>!}(FZsMgj9eAA?wg+fw>3B+`GjRClWWT?M&Y>b*)jHY9Y2F?MEYc-rMseV>9FKqg zy}XP~L;{<)W0FS@5+U%I!s7q|pT~y+#>Ys6J6WFoVHbS~kMpW!76(3BfZqD>%Tdp^ zC#js*PxOiPGyzj_RhesER_)+XILh>!i+nflJSWt zuWMplb2ZlrG$LWUjem1GjRPCrnH^lVoXNExVQjdU(zE#jli*f(A_o7OHz{SzphQYU zSuG@iXCD<<6R&{z9S#^HxUCv?S5Wh#Natu5YN`Ji66btF1k1iB3TNFk}#16;3;TNoobG^qD<{-nb+NYu+zf>9=9 z1bUPq-3Vz5B%QuSm!@b@A%-ULw8(a=#3%MnET87kFRRUauut*$l`h*ccYKGIX9`Zb zP9ozXjKHr((R8B}Mp&AL6cM5dwML!P(F63R5Gu(xyu^B+l-uKZdKK)PiW?9k`;T4;1@E_cbU=l$J z=$w}oU5)zwSE=0c7~T)=j$R3?Q50!b0;N(YBZidCmFqUhZ$q7zFKE9iilS1E@wqRP z$#rmIVwR`f0v8KdteQ2N1}F=(BoR5xm>?o(s()LhS|dDY)PtAHw{q|wTGx26TLWyK zBjOUO18g2X!mGN=ei>-Km$TU51*B@E)|CkDZ*g_o9CHG@uuc-J4g_||XIK@OZOkzk z8{_3o!yL~3x>$9TGT2I*A0ABbQ)@A`c#QgNJCRxevK@3&AT$j$S4Mi|E6)R0!!UFb ztE$8ojgg*n2`h72#UvRwP)b9FHi85iX+n_#VnhU*)Rm51m!xY)Ss$Ffd0(Sp-v_<1 z`^gR!jC=?y45BWu6R=45uIEopcpk#@h#HY)N;PBBB|>6~!R0<9HP4R6i6sn_)F5Gl znFv&v4n&wH@GUgmM=3!V)#})_SIC`_aNWtG#K2IY$~WHxsuc^#Y{ocrdx~t*#7L`T2zi~bfXucRj}jX8^~PDS0Qqg5^F!2kFC;4?RxVDrM5F>FEsRxjeIt zIIhZ|#X^Zb25M5ED-9V5Ow-2?4Kx%nJ-{|J60(6Exd5412D38%ng}(o30%chO?hO? z&}677sr0#$XPtP3*jztEtHF4ISJX_B?wCu)(~UHdfkKXGBqlAHi9kd$@^lCyNk#g4 zMfV$JVOdg;424fcCuXP7e1Y_3Q_oP;5Ly*!jA8(O7@;H3?NVfzqt!4~$zRaKIp%f^ zs)65SM!t!PY=m?l!I;+9Y~qBjBV(^nI(D)%6!cmuI$^YTR_s(a(O_j}hSv3UX7D+M zq!-{Wc7y8gKU0(o`w(n=X$(G6) ze9908eMsI$o#}|!?&9H`L97tChF^) zzK?~nEy`wO_yjhqB8OF)PN%N01(d}c$K|ZQPqJu6^Rt6u*%IQu6=~Du$*S*JqDA;7 zA-WMD8dajCKnkrHFr>r~f+&%rl)7oQaN+fN0dOw^)jY^T{&$?~jFSoFC`}ZFRLW_Y zUmTQoD`3!WkEU;4>8$)~i z?+8BmwPJ7@E(Va_e3AXL2Zq8Fh!bEw1Hru%-h^hkl)ShZtc!r-psM@O^fb}tzBeQE z?rln7if2IC^HNFQrVsdQ$z4eeps@7@e_k;?B43d63r+=yeV{f%lrJD)hxl7=Pqu^6 z3jWF_|C$LDF0QQRSrV~8UQq~D7KR!dm5E?0r%>zI?28DdM8$t)Ay+y8G!9Zm@r^rFD z6+-fbXueMxpmuOe{4pNm>Vb)%a5usH+X4Nlr{+a9{7f{ETR@4Tkbic+6MtDp&s~Y2 z+!yfc0mUqG;C3RmVgb!SaWe1mc_O}Fr~vxLc_(cidz(JX?Xn$MTSPcNNAe7+qk!tz zwI+hy>aCGzb#q#lUjXCRJi*Yw=775a`t?2rwaq{uuvIw`q}8mBNB!<>dF3$<%5 z!haINt>CY24pagWA(HKJo+zKrSD+^u&3!v-vy0{drb}yr-D82U;>gdH(y? zsKS?c$==2t^*`D^A+P>4=6rN8*^iO=CHfU*Brl*igkm>mqNFGa#ob7@z1;;k2jo%+ z;-IFA7^|kR`-buc8+Sx^gWLvc^&9+&(+(~GaSsosPc_era+J99<9PiJ;qq2o`jP>Y z2yRE61Z`|=L6ukvgBuZS$&1r`hb&00!r-ni7&Fbm1dfBxBpy2lJa!d=12f-uY`dbXth6A3;Be)1c9xk=N&=p%kJh&xHCyUSF^> zkn_1=%sYf8L^1rmC@$q_LKNlc?f)x#R;f3qaR1-hoZeT6qI8rJ#rc|<1;^0df}fLT z2yt&jDB$MkSM1atgJ>IYW_$~+Io7ux^UZzB7u3Qj_%x(*J9*LnmcHzsZ@Ybdd<&=5 z-?tiDIK?aFXbXsU6!OjA=ErWGhIarFJBYZwx!>vbj#6Ub{pNSaEq)&W{;d$wh2z`Z z{Ii_3vv$_b+F3hmXYH(=wX=5C&e~Z!YiI4O{r_nH4p9*+EZ-2dv;Y7A07*qoM6N<$ Eg1yU8>;M1& literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/assets/img/games/rl.png b/src/ezgg_lan_manager/assets/img/games/rl.png new file mode 100644 index 0000000000000000000000000000000000000000..349f589be29922c3133f6082161afeb0fb377b3e GIT binary patch literal 65051 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 literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/assets/img/games/tetris.png b/src/ezgg_lan_manager/assets/img/games/tetris.png new file mode 100644 index 0000000000000000000000000000000000000000..01162b0648561b2cf73fcb24378d20b054516a77 GIT binary patch literal 17172 zcmXvW2|U!#cXk(xa;!V|kqD)toUyc0a#Q4pLMXSD+irv

mYS6_H#ea&P5|azs?h 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

#7$mRT&Ly7)PmeN$Y!KSYuhQ%MxF z6-pxb;R0x!W`FLu)uUk7%n_%LU^TKhlO*{H%3!`d%>D}_O!!3|?YTdgb$eoK9}Z{4 z-G?DlSc;uuL9l5>zxH+n{ZsYTqZ*7=uU^s6CFa0f&FwPyJ?eDeiCjCsYlHMW5oOb% z-CYAaD9s|K>_z1^^&Vw86+quQdpkG#t)?*HG-U-Ynz2K&(I{d0c9om_YFC1bV2(XF zv1I+I{-1&0(BtH*1<$4wpRxkZ?46jq&j}rP4uiSxg@1lkpF+TEdq&QDxxa_NJ?d$R zq*mKM51*a9=b$Qa6NRmijUv&v&s2BT{=SIaH=ygT^<(OUKonzHg^67=-vJWtuZ}*y z*4PxWXr3lEAbHRTHFQ7u`W$CV{pLp;hda8BFj)Mi7iQ8o6(*yf3lBJ5(YTjNA49wt zS0jIO;eNe;4{SElo^h<{IK$ztokY#Bt0kM+vY*7TD1()M8>g880vb%U$C4V9chGI> zYVVbiG+*qVuc!i-M!4qQ-`-7ktLEE(*rE4pOoY%5^(03YB1?XC!%Llno4eVTyG^}L z^Au89|FZf>k)uG4qwJe{1o2}hqln`Ll% zRvU%mU~!|aE<`06!n7Vy8|yn!)MHW`T-t{y@%zkj3n)$xyu&5%RZvNg2@uEtt4-cH z@;#`#XrS)f4EVNkaV>kslXQ(-Kqa)u(w6SUSq8bN{;Oa_ zk4z0wuIWJ7K7U9+c8>O=Ns~??yBzqMZ=2>3V~8>5MmmCn&!nR=a^`+3fX&Ze&%t9L z-`%7K#b{(C)BCw~ty?OuuSe9`ph`N7li#yyCFSoXS4jTnH7^>csru>-0bs!Z7e^u8 zWUATzm~W4rG7-a0ZC6(hB98TZ|3gF6H)F$S=^9cEl;I&mphVxsl-!K_^;a7Ry?`*j zTR%^OfZB(wMpm?i)ND*?rbra8DI?`Wc3LjHUS3{tt*oH~qCvbwxZ)h4W>~m!`zRZ7 zk7%W$@*Dxg<2Vu{BsD{?Q03pUTYEUT$%8mx6gN%@R$?NC%MLCZfSG6=90%g+Ve0Gw zIGZC*o7_fitT>eH{%Hzc+4>>wgM~6Kq+s^cDo7%&>^QWKOlt zkZ_VZZ8*0WmOstgY(f<*f9qX9xNZ(a;6nBVQngpIdDzcN5aIp!*+)s z((w-A4x)_D^AZS`Qnf)_dT47cMmVm#rZe?#{m;sJIzWt&X;)`8Qq+Pv7*T|Yg9Bd_ z1G-p#|DE$^0%QvsVKu@{Ll><#o3EK;iEiCSs?E?-CB10yK8`2+YcI(bBT9B2hHuB4 z9n6Z43RrWT<3m`Ao~9x?6&?$Yn6EEJq`S0D9QVJ10PIzahHh_e}nmr z;u|4DS@KjeoJw)v-GUIj)=dhEOJ9K@edLRA%P1*Sa(+CWGaM$o=XoEUY3M^tT1xlv z0)~C{p=Yb&o7rd?+IBpyQn`qJ5pourjGqd<^2DqYIQcvG&RF=F2s0`q5jx)Q>cpou z4*1(&-Iy&5=YO4n06?^TQ&Z@IJ#SmR`&C{lin~wG5+myBJ4ZQH!L5a(*1*;*Gfv_} z_;~u0V=*8}z40?f%+}1&@#C3r!Ga+~iTz)_YQPb6O_beydyRoYZ@XqPBXjkksa&W z?Qt7^CW&KaP$f8GXySpg(!Udp0@?I%VIZ{xH}Z$I+>{~s(hN^QX1dhM6a8M%9?=R` zv@t^24q{SmLJ4n-v89{89K4__MJ;1M(!sh*v!2m{U|(N*2&U73Gmu}jqI9$N>NP3= z^Q()Ld*XZx+jgbRhqtMYyp|)~EaJt`HfR|VOC>RkW23EK*)c5IPi(+Wn1KQOs5!3j z+SY$Q^h>}x@=3YB6j=-@U#8!@?t0DnPszBE4pn^M!}t{fg&;e zxR9+s*{v$D)Uw&z6#ydet@2mRvMSjOdw1^%ZRuuIfTPIN^uBp(0T9Tx%0%q@rFzK7 z#(evo@uzNR)U1KaB`0#K{uQ_hc7H`IQnP~QUn#H_HZG(aPBp60pp44WYS@$Cv$y^} zf+wfJ=rRH_Bd?#GZ7FhG$YpI0h9;CvT<(`z(G1F#+Ixo`?StpCl6S|2m@9Vyc3cuI zwmfEP2$jKBeQ0uB*z}WH#iN)ub*pu%Yi0d3C->DV7D-U2&(>qx*st(E8G+OFPv4{R z;O3I(XXm`J$t4>*_YrzO!jF?^^?|}tF-zZ~cmM(jx||=F|6W?FyqI73fqUzXSDO@& z@b_Vkj(nT2^XT;;SzCRh3|`;sF!c-ErR+3pwBN~QhwJ~1(e&n_%ll6WhDrn$Y}1h>oWJ?-}&=a2h*sucvA*pxY zLq$>%yr)k%`i^X{;d#`C4%_xasXz0Lg?bs-G8H{ z7jLvb`21J3c7os@vmbyGOPg9tVS<8B2!-YUAPw`gPSUmSde-hS5#eRm35z1?Ff5v= z2AGHWg0JJMentLYKG@=2@^-0w5M^$E0_6__1?pea_q)_u>#OoWg42nxE|_4G9&OnH(Bc$o5PuHLOx`PJ(-maBf6;S;rl%U-EH5>J@Bvwu&< zfl^b-UFi~0S7q%>wy@`2wKJeU9pQXDEzGN#633jRe&5&Se4$P6t%W&wmnvll-6%m( z0XZq37PkI>031&GLU1QOR*cpS$e1fsUpzzT#xqaz{YOD3?}1jE!T|T%zPAtnkYV%K zCVl7x6!htTf*!GCtB!c%6Z{Py`;^8Dyu^B22&W@$X9Yj@$o(hBp_0M}9c39gZTJUN z5I}zK^Lm?Z=z6!(r0{R=nc-3mp0r~w?zzR9v_oRhM3+y!6}(zk(>w`) z?eO|{7VrrEvu7{z#)|JG23&RSuW_fgAapVT(1Q2*m2vxPt~ZW$&uZJo*L?baEpO;f zNa7^XWa@HJUbf9c#17af>Ha58GAOw?@# zrtZt{@9ZglhXI$2)eE6{y`0i+9An4=fM4ER`>ig@fo`Sup?ffL50;5Sr+Ub2;Kc4Y?A~9x)bzLd&>P(VtUQM zg2k_Ril5q@vb)A-;RT3uxvy!M{zF2KlQ2F1Ia<$K)LUh}1tu2rx3`w>#tuo9Of&zN zyHf8+)w)hKRVP1cAI?1o^=n=;zuXAw+?BOi_e@}~uPL5xJrJ_6l~ zfR~at#eZloEbL>&Z)rcbAFxx7|A9e~-=}}VJwu?xX-j|*K3SkQvAFL)sd7xe zTgSZ_42+xNzY_fqrX#JH>mBTqu)${d9zbQRujizA)56tO2bU%W?D5F&sE^g0K(lB*DZ+vLWbxe26y{&&_7V zgg>BvHd#Xv9h8ZKmwaEkq#1_vwt-wxQ8O%#_)JRctgl#hckU(y_&QA&u?Rsw_8b$bj0$AmN_ zne@iH{LJiOaEc0cg+W+UIfd-iYPi1rHd&nv(+72BU-Ib50p(NxDo0^7P-#8dg1_(` z?9its}()}47Sde|*v6eM2wVCV9{sRcBQKs}cQ zRA(~OkIhrXv6mOY(MX)*!9QvU9EZZ;0{iw?N*f({?D~ucXd? zaU~>4@+h0s(#-hW3IV2#j1e&T0rrIMobqfrU@77STT$I$Q&m>pg}k1T=Kh6x2qQcS zCYz_{I@DA$H)H0ARxZkSpTIU9$rleUeYA_K7$iL2?Zu1_`zp|(cKT||fm6747*=|) z^M>Ojtb0}|%WK>)Dbw)-C5zgv?}Kr&>UMG1qsRV(;XGgPFRrbBqP`CwTQUS%KBT}N z)l|cf>k`C$&`H^$3d6096OURBgbczIO3%(rR4s&!s$&flIR(^Pnjl|*x$k-Y;`$4wO$tBM#U@?Ud2o${oZev*&l570rsja2Zu!^K$O#0%YwLKREhW z`Bu|`*la=CW3Y!_0s6j?AuK&hb&4;4IprQZC1XTJ3}sOpMVZG{_uD?(vxsOnPDa8x zIoSStL^Z)x`GTnjc`*)apNnNAMi%tJsd_9ZSKyY+(E zka|No?#Y8ohxyZfSEEQR-sL*w7UE}`WMP8%2(gcF0{8ROUQrMvfZ2HcI}wOdj5Twf z`q!M^a?236gG~NmBsRm$V0FB7GiHfs6-vM5|5pcK{LjRj=J=`)sO_AvO+1x$s8!UP zuV2{mZOHPktm6l;kx*pbM?BF9QYQt%NTQlJeALDDobkDu>U1GdpUcXVH=5+r4z~L9 z#Or)8vTB6gQ+ei$QV+|FmoD_rTROr1a}Tikvd*i?)7o$!tzR-kH*850mB*9xP36I* z=~QvPiLGvYl48^+?=M$NUyOcFbDw%UHvfgv&O!9noA3;yj~}^-B;|qgiR;ON%0cfb z$st{ERsOliNYtQqZPVUMN5bc8jYr`159}0_G|KUnb*=YJnL6m%h_E$x9gpb-ZvZxt zN*D%How?xwOC7b>F5R`hkK5TC`2oTZc3`~KZwUr!w#s)cVKn7QBpoalHwtKfpyzG& zq@B%|AG{MenaHHTI989jU*YIQ!`hYkKx(N^SJY=YddYh&dKe4=`bSlzOv%pLzY*|l zPmVb?5)c~$gXswmER)|1`i4!(;91dFV6C=XwbNpsO3MnHm+$iVi4!I3WJ*__nO^>7 z=jttVGA*3BxdK7gSzmtoZ`0xIL8XqVCQo9`FZ|PMf6CwC{v?>@6K?KT^7r46-G;AJ z1n!vuWKmI;^9!!iXtGE5<>*Ff1n#&<)&!q~RF99aHz z^ZEXum7g)K``KC^(@&8`_o1S)MDmSqUJU5`*rw32l|3bskZzcSo-=`+;0WMNtJscD z()^>I27yG{LAAd zd~x{||1?P4^zezQC&diHjFOhdGl>V=Lu$4L0`(k4d>0w9G+(I=yM>P7f8HQ!*svTj zj8d-orhiB0R)YKRTwdJ80M`j0<`fK^nk`FrER$kyQNd&xaF4-24b_Z)@L+;2I$*=@ z$#3=R%1o7UWKhSmoaesS*%&#EbzwILX+-ZG^sCJ(CCOPBrs>N<)nK&lN}H#c4v zr~1Bk_MMwGt)}r}Cf=FSt)xQlFwnqU-bvDX>?=(f6>fpXE1;p%3Ct*GkfFto?~?JdBDQ8UFhwx4k@PKc2t82`SdQ4N{QaE!*RTY>^=#jL zzq&l1f_WxFh6NA;mT|@uN2i(Wwo|`ezrzbs-|w~di<}v{3nEh5QHwgD@ga5!9w;2R zH2uPXFQl>;!f-PKDVVsH#<2m1h%;cnTpGN$9f1v8Y*K$BZ|hHwvba>;%$`!^(5Jpn zbWZHnDgT(k5`C)<+2Z%`GQ7-hO)!6)pmXHN`2=0dPZO*8=lH=`%60jIiGuPgQa{$% zmV+r73#%z0T2%a!nPy^Ho|{#z{ofjED22QSh?kgdYF9Kw*_Eb$LR4cwOZ=s{#=w5W6%}1DhbYM3WwxMyVfG@&Ei_iJE24bipUXbuZF;Qgs&w zjI#xFBZsyYR|#Q3da$KTJSvSr+Q-KE`Br$NWeBXx1fyA)!HHbz1F#D!>7AYFbjN`JlC~@=9s= zQWU<9&A{F``#PY`t1X;0IL9fU_89rzDCHz#Y#$~qe(c8`hb@Eg@E4-X!)VpQ(Bdj8TQMNPEMgxbZ|V9fvI|d@z^w zG7^2AZE##-(TD>+a2|tQv^sI8f4eC5I`CHUk{h-KsqHhyt@HZArDqRsm`y7G{tX{J zjzlgRKBK~0?}l{nabfOjgVvsl@c0wyPyK%ZX6RxAv=Qmd!kDh|gEkeo(}$)0JQU~q zee`5nRLcd(lr;5O@UQCfRMe2DlNJ5De$SSD4F2N6`ZO@!6U+%_t=oDlL$|#z)p#`P zcjuEfVc$jRC3WW}a*_Uw^~j`m<{vkv)C#%UBOj#^Mh8n81{~h4o4tP}sCTW!fXlrm z_~Dc(E*D;*3uJ|SiMeg9GG3E572Bawwc&ao?Lcnk+QNDIC`nhbKUHiqLRmcv&kAM- z#GkAU1ZBx=H=gZ@gsr6Ru~OBFM;=>{l_W;(U-09TZ@4NS5YVA1Iat~sT6-yB>yEws zJ6JCyBZkxuXI+7`#;39>td)doPkKj@s?N=PI>1|XqOcl$=C96ep#(|ScLO4=H(qCK zGu|I}NU|s)2^F15;NA|`8hfzstX^Pp()`_wC6$w@e`0S9j7)yQs)ZZ!U~Y%jYDWcp zWt-8uV4s6}^Dp(@MFaWl@5j^PBxhH-+3#13p*Yk1s`XVCKAu|_$oeD1oN8p@7~xQ6 z@?yAQeNf}J(}nNVT9%fHwqc|d+ literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/assets/img/games/wikinger_schach.png b/src/ezgg_lan_manager/assets/img/games/wikinger_schach.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0ed4ed54eb6cb68e887040d36445d4e2280c37 GIT binary patch literal 45386 zcmV*fKv2JlP)EX>4Tx04R}tk-tmBKpe$i(~2UM4i*t{$WWc^q9Ts93Pq?8YK2xEOfLNeO&XFE z7e~Rh;NXwNs)LKOt`4q(Aov5sKR}!mU8KbCC509-9vt`K-Mz=%J3wewnP!C&fTr7K zCY2O(`Bky^6#{}7LI@F=S;m|srQtii?h)YYU7Tn6pZjwRs0E7w0g*Vt4AUmwAfDN@ z4bJ<-QC5~!;&b8&lP*a7$aTfzH_j!O1)do-vzd9~D6v@TVx@~&+0=-qiDRm!Q@)V% zSmnIMS*zAr`=0!T;ex)h%ypWhNMR96kRU=q9TikzBTlPMiiHgACw=@Qu3sXTLaquJ zITlcZ2HEw4|H1EWt>V=bb>jVfs16O*-Uuy!hpQJZB zTI>jjYy%h99ZlH-E_Z<8Cqp)6R|?V;ibdf4jJ_!k4Bi6$YhG{deVjf3S?Vf%0~{Oz z<0Z;o_jz|;cW?imY4`U76|r)Gl7fLW00006VoOIv0M!8b0RC7;+!6o)010qNS#tmY z3ljhU3ljkVnw%H_000McNliru>H-561sxTnDU<*J02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{03ZNKL_t(|+U&i1kYrh2-}m{QbM7PaW>xiT>gLSO&MdtQ ztA*X=jn_uDWjn%HNX7~XVUPkWt!#x~tg%BO$zfzm%Iy60GA7inS_SF-+%ahs-O9!hUH81va1TplByieolvbgl69=(Ug9t2 zI@|vIl0;X>bf(2zXWOp^1pU18|De)lrg~Oqx_v~R4$n2;zVc1qs5ig*ts1`jJ9Y7m zU#HFcepy%NuK{G8k*wohigNX-KauIqtAVAWLRQBB<`s2W9Rox0>Yx2VAycWhnhMH_ z{jw@&szuQ-+5DwnufpR`G2i|ob}rxMa926}M?XbhR&Sq*)N4Rl1Iaq>v1oPn_Jz*g zIoH|tRHUBie7mG%rbjn(T}-FbnzAaIt)cMv=eg1IoVmz!XRBKEZ5Djf;otueMqhH4 zQR1Mtv=4tV?QDiVe(f>U+1sIBgUA|4)^YEU7-gMS<%LmIo}0*YXStl6EtylXYS&g3 zGM((`OwWo;clPtLnu^p_Sr=vX1(i-`MW#EmyPA;l@Spz1-)&!hg>Ys{*DjGPA=?_0 z2E+0LzcVC66g4$#Fj)i1I_{0yrYfp()lC8N{jw67?vy}P?w4grv0Tp1RwWe-9hl+! zWalV5`GcRHN_Dn9ol4!6)!F;1>bslw{3PyeZ=+i__#VVsMykjgruZiwqrb(ER3(&i z*4>*mkgVgLNJy&TW}WGg(zG5#Vr5lOZ_NSr^Rk)@8jrWX`rLf~56?-e5=5pucXW0( zt;%Zti@*3?ivKGJkO@ziPBS1u4f_K9y@J+@r`h1Ni_j(Z@c(`jA4 zs?8dU`KOxS`goQ8-T$lF{+s`0#f4i{Nmb12a#eB+B~Mj$XTK2TX-QSgW?D3qRdm&- z+F$%d@~`*`{9=K6B^Z!A!AnHi4x5bVKlb}jQh{r} zoriDxGY{oI{|`u>KacL;;ovX*Wfs5m;i{ZdSA%{GnMz%<_l4c$Rauv1RZKDQ=Oip8>kO*(5{Jo zp8n$~W;*CZCNkZjtO}h~m#+QL-(znv;xH|l?aaCI!Y&857TkIFyIG$5(0nSBojW=^ zI{?H0Dn~kz*-CfvYVFCZe_vnS(B_~1684cV!5{9gURy*&u@S6-?;B!bNe=gDKlA~r zx;%cJpRZe)>umdIR%bSw9S;B=zdk@`!+Ssa+0mfj(Xr+7?z!vuR~zeDn?DL5p{yq> zZH0)`gN|eP{};l6Os7&0Q?*6iY*l5RGp}GmRaUCA?TWG-{rum4XzR>2I=zpZpMH*H zqhOp_a z;3G7L`w%?Nr9@GzkMzq1+w~*~w8aVH`+l49U4I&?5}8hSW;#Cx6OrjoQI+*%D)mg2 zfk_$WbgEa423BP`nTqV_OpDoUR#a3_9?>p!v7eXg(rKNMygou_S`0$4`SuYfQC5S- zqWS`;$mw)i59bz>s)YSKXT@_=P!}{zPF=t9+2*%CKstSZc4v=l>==y`VvLx!L5mZx zd4hxg{4dZq7w0mXUZ|KHXFK|;Pxk2w=qRf~b+%oW6#nXE?SAt&a9{E!!lEXz2`+W? zeu?%yCbekjv56u04n4U^a_L3-C$Cj9m3pS_+lQ9)gnE@tRaEF~80tHMgRsm0R=)p( zbG4O~#kU42SXuLlCx8OiG=WGeON%h#*2sE^W(FEpki7j!v0Tjga{ z)mudgbmhEEtMbC~|Na5&qG919X<{%NBdi7_u@Duv=+OI0;>F9{`ICQ&{>mkFRWV^} zUQYI*D$DAq;{!!a1yxzDK#!vSiSH#IE|L33u&hxWb~3^_gKkbpou%&s+VyDb$+kvx zms;dke`WQC(+e`4);iN|nND_8XWKHJ?yO3lV*as@RipR5AA9*C?XSNd_hn!5{d)Vx z_sgmK<<+(X!*!VK4B#@^(V4ET3f39P>#4MvP*mlsWaD+Av-$Q>w(*C>F;9>)pNiDe ziR@G*>``6_i&y6T`#wl}dW)p*7;SA3q7XtL@k;D^Jf3*_5ZQhJsrPBV?c3<7ev19F znwKlBM_CnBS=3cI{Cg@=msCYqyj-=v`YXtTZ-o5?u~n>zI2DX>q>|v<4r3JQB59gp ztswVpqmMpHdu#TSC(G*WY^Ft3QXl!34E6+NefSH%TkU9W@jbvZ?4*V-uSpLQD{8qnJy>nGolp@oe z<5FQo#8Q>@{Kx)JOc!uP0VZN%AjXI&Xy?(k#Uv@(cc?(OSP%|c(&;w!%NOw<`P94i z$m{8J04A!kE~>JYsnqhrKQy2JmH(cTfBfqh{fTcF$l-IBsUP`DZhqzpw}0$Ms7lIL zsc@?!P+gZbYan@D#nC7Hep!{%>9nSr3>-oExsGFhKuJ?iMQYXAc3DwOC$b|`sbxCZ zIsL-=d8hO^dcIk&Yxa7-x~-8Ho`0d-`RE1aK(Yv?O2q)pQ^H9S*+h zfBEceu0xqsRUEy(sZ4ej|M2f1QHgzo-34ZL2)A3()L=8{H4;Jqqeus?@x-n}Lr;v6 z%G)0XMD? ztL4uXP*!Cz`F!qart|If3R?ro>m(zo3*PfX*l+%F;`LkARE7@37R)J!n`^n8oxMA$ z3;#^XQ&nU#JvSiJ9Dwfj#j1J#Z(+*&vGp8{9jOH5#sOxW6BZuv1`Uv;kt8+rL5R^~ zQ9>I?zWgikzxMw!{^7s5DsajH_{x&@+-KDP#`}?zQ^Mtabl&3imEF2%cGKJm7%R;4J5CZDC&3si`_Bvcl~FCimCDfY{%EK7=`>D!9I3$^>{pCO3}@zx&U_94cA&U@4uLCWe8DeG7R$!j;7{qpu+1NS{lx;3Hu zAO34#=aUr!;dlffCDmCSIva>g&y^*`Otm;6(+j}oOuwD{%v1CJ_kR!jMGs&s_^!nw zw0CO6M`G85210DHPDyjYjRiX~xQ!gO2A3Ex2JIWn+uuR_-~SE=Kl7VaRh9MR)0baf z{KBu2KKKv@k6#8%;?NO@3`-^-S(3!kH7!YENxUM59i~&_d`X-y>H2^?w2gWBDhJ>B zog{mEByan2`n`ReMof%|DymA1kvz*FD!ywl8p-cFjk)v^Wd&PJRhHFC`C1J222+s> z>jkz3lGjJ%TYqlPT2kA?gAWrI4b5Nu?k~OXX7xQsDf(UcczrAdKboI8YLg!QY${SW zKldJ_Q{rKZN+dnAHEyhPjoZNup1M=U=oLMDeYcMY$C*f)CYvU1zjuf=7*`j z?*}M8`cLNdkN+$#ACsKO*m$I1^zeufTTCx#VnM>d$MhbIK-&^-&A}Q%h=7nZr&m3fDjR9Nw>zh)M8SwHbK-3U=tuV9u_T* z0cf-hNDxwiq;H9xVe_qLng5Od33=g@oc@ddHpSOJf_uyTjQ@=(n_vGRF1P4@jkSVN z0|9IZ#M=v~J3{AiID`cC5!bf3J|g23Gjb%V#J)pL=^!fab(4qez{<| ze@L_m&DHCKC!d6>tSP9EEF#N_wb{uUNM1it-sarg7#q z`ni&7epKRYR^_>)$4#h?cdaXn6|7Wc-Tl;068Al(Q}W!=?$0rO7>4GW2F4jtl~_0U z!v~cMtoyP@`N-^@tTr6@CJg*Xd}q<3{1AskmI&D(ff0Z3cB<} z?Fh>yarY4E113)}oe*k|S@zI$q`8ocJ#yGXFo^e93AnDu#2y<#LPQP3x*>}~*Y#L2 zWI*V8QUrPaS*nt9DpKFkftZ%5)bnbMCI7m_S|a~19Z9O9H-Wt-@DKrUIf;7oOW#KO zk&mL^_al|gbn+@GeSJi<%5;#2(+_+}_vug0-MJ@_vZT9nKzcGKA;TdwZAWSou%Nxi zrU_|`Xcvc!q!&a4Nfhgbu87@AAu4^}BNIzsH@J~Qykq{@RpPA$Bo=Pf=+Z+vA(TJ} zq}~$u=fuuKfVkp1OfFzOi2)zNkhz#ZI9y;Y*kDnKNRmSE&{?cYL4>aBNU{Qwgm&4| z?d-9!wTXZJY071_4P4lQ`H7V;?U8(b9cv(Y%|}I9i_2In53n&}O(2E<%O3N{Tks$J zAo0xUx$3N}D366!BEzOrcXW1^sysKHN`3g>{#W=rHSY8V$;b|+k48FYNUQ^Eu~yJ% zh*ps_LF*plz{ZFgK}QY~6r%=@!JV2At2-=r56JVBFb~K$!);{DpWnfzj`U=KndI0$ zpt(W4($))1(<51i3WVJyGLG0Bj5C-BMiZj;#JWdZLW~MQhSEzTl3LVS5CPvKSVHg7 zrbB`<8jX-qfxdEy?$VvdbT%)C%|Y+V3_Hi|jK8h>ffWeZC6Iit9B4A?zMi343%LX+8 zV;r%K1NrJ4oX8=!sIjOR)LHzknz>iZn>HyDgOh;q9o?cQMnO_bwlyY`1Z^Vyq8s>? z7!e=ASmIK#O(flRq+>f|J-W((=rI^n67UA=lc7r!Afl)ayoenq#I7CM(;A`kjIjuT zw)41yed1G(!(@)gbmz$5)-3`vQ(3x(}bpAO$ zC+k=P$vqLHjZGE-=JNy6G+C)dJ-%Pkc0KM(9-)8FKjQHJ`58SbX^y1z!}gbT(f;(0 z(sdD2q}amIAN1&_Iq~gnm#qSTyQ|>16ZK7L?1{q zLo}X9z={DMpbt0^(4N>VNJlB@i7}!eS;BI;!0#O*%MR}xeELabGToV}7IVs)s;pn# zwK)|hcY`BV%K6_#Nct6Ah|`v5}O{p!Hp7BKw6J=(C_U-hT9ub530Kp?|i{C%QsgN)nmvKUTFr`a-(!`)a2p%MX*mtN4B-Vfdms?1b9#23~ zAMnc#6BVmqM;XQ#Y?eaP5tl95IK#CINH?evkP$AomDkO*K$K?(pq`4y-4W$^WL}TfqBHj?K8x*c> zPo5=s@9|{FWQ?gUvArE5F(~GL`xZ-ED9kYasbo9%ThG8j)Mro40grOOjdoWkU#&&<8~0(2~tl z-1H4Jf9BGYq6+mtS6yU&4;;Ah$V;}4Vl=`UmQHD~c&5j)&qX)goB-G%7U`7u1 zme`kf=?`k;U>9(r9Zn4SrlCGzc)9azZEPOzi!3tTDOb++ z>%EEBKypuo$aKfp1mgsZvU_-l)GdAJv8tHX(|1dJ-(aJVWn-N9nts1Oi67(y`nyW zrN?N4J(1y2*gF`6U>hm*{sP*DEFW6TJ}AZ*oJkzT`)+YV4FXEs4^v{)4 zXDQ+E)-&_=8~-Ct9L%t9dk6jUkZ`cTJ$Q!d`hq!-ZjDxs^#f?s3~J%Jtco>9vIdfS z>mp|fY7N#1w+;_rz8DBg4MYJkN@CnF_1Y_mLQE~sUcJrxp1Hx3@A(v5-@||QWpuB{ zO}Ajf5>gAs;>Ic3_J~os#uH{WF$%`z9GF0#fRjjjSQBGJ#}3IX*(im442i`}Qu;+t zcc37FP6bU<`o2fo9%F`51R&ci=v7H=iWwP16sLl-De?4#Fv{q<(#ckCs6MoiI~O?nyjvePLX27^PjoQt>r!sp1zNdJa>ihXoI(W>BB6d zAv<}Jm}f}SV&-%DgMjH4=*S^if=d)1JZ%(`t%PC|VlX&T;=z)bB*erbGN@W@w1`P? zV}sd9Q3vDg4Rj?ClhlD7vIxas)sQ3!k|u=E<1&Y~J>Dy>$cgtEv~CG)ho&hkI%JYy zjKSASj2(0-l7lgV%~OJjm}O5;MdwQhie!!uJQ5apB5!GzQE#!^eQjGL|UyttIwg zA8C|ueK`Qqre(PZWG96)C&$E)phmFMf*Uq zF(I`neHRd8NK#8sj~OMX1`=Zl9T;(B+0Zt|DEiwT{`|oWps8uMo zVQD6Cf8%*U_qwr3ta=kh&$bJ(Qb_#u>pWf(PFZfD{ATD_w}-95F^* zmST*-0BQr)Lhy?5o@gS`2;shyG(IrCW9e>O=HmH_+_-Yc6F0B%?`=Q8mw(yAOvKPN zJz~db*J2c0zXTN)eu>Xv>!H(hizP-Q#w1`I8hhMmFhR0S%Z;k$AR0zVO4l7AW{k;3 z|G$~XT8y>^l6xv12cHTkl7g0mdF@1U=|5lMx5AL;A#U z|68YoHehb|!!&U+#~KIu2nZPK(c2BrT)BmFkrJz0^4KkL-#>4LZcZvR-2BeF1*NI z@SL$DPPq}Mk{pNf+vlI7yVH`pL6z$d8+s8C&*+R}`+*65cS$^~VFDT(*zJg2OC(^d z#i??6c842_1wu<3IuLM^5pF#Gob2!jP}VDR4J7we)MZs9!p9Sv;nfc!vA$=2en|1~ zhV21Dq#DF5l1u*qS77qoIW$=^cUa9 zPSp;8fZ}d9_$(tlbP`iIq*JsBBvx?F5IZ6E0#T7nnQSCTVTjS=I)k%9cA}s+0lE(L zy3mLK03ZNKL_t(PU!c9GU9{L}fQan3SdGL{f+@G@YCl*Fj5BPW@$%y@v7-(5B{{?a znY=3ZB?U9_{N88JBT0_2DWV>u3&P$V3L7zgjxOhj_ryENj~0S%r^;rfkTWPcxxgPdI@5}F%Ui-=W^E^6eUM*AL@4Azj67*eBLy?UD~%^@ZM2?1jaf*@H+Z{-JHZ8tEL$&O6# zP7tqG=o(1wji}1{HvKs_%3x(jh;bNWxOVLtrs=>7FYfPSbB9InYUq4NRK>?Y5&<&+ z(AB-0+`7Iqlpb1m_bJY zI~k!(Br!rZaj@(NhX=5~K)N2AN1XG-zN6b)5*m*-gUL}=PB3rSBpHqA4{8*TD>6)y z^U9OYu_K;Mo8!c+6ur<}un4K7jDSZkzC^cwz+`KL?R#|Y(LBKzpo^HOh#7oLd|eMD zutZoyp1yp86i6}jsziw>gU}7bx%DDk1IaxfG97l-OVXTp1XKqpEc1F5lecy{J<7!PwV!3r)*u~zV+1Y;qwh>vu;HO;iL2Lsg3^!krpdlio6ge@1T!^)&yVD{EOKk2CXE7PrGZUIT zg+@8Nxkm~(Rn!FH&3&GI=>oz4f`jG*oDSs&Q3>iflN5M*e&hT(2mup>=#{W+ArXQK z(kZyXsq!(byU%9}kQBG7(tBQ$XFn!0MsstV8Q-VMQUb%1ut>@TrjwU%q2l=`I=sR@T6TNcc zq$@f*I@#Y!}c(h$@3anpdO=go6gtg4h&u{|4^N z2#A=IV_Y#po52;$iQ%wbaIn9Ro8(-0@>#BTb57Y20VN7}(ZNO_z;lmXbRDJ(i0L6jp1Xbv%<%i8fHM~L0TsoKCd`XTwVv`_ z1Iaxf$K&dw90F(n#A1x0>pCvpxx+)JPGQ8+2gUnU7bHe{WH1X_Wimk{qHyiu+I z=uV7+(ZR1(WGJcp3M6}t+;7KxboUxpUY=p|6e|vu1Q9`9#CSins@3DHP+i>R+G0*& z4S`{A95kR}QH5k<6DaC+n|BQ)uZ_}1q&8^=t5&MU2&(uH*(!1h90z?%7w;M?hp1>A z_S6*_9w;J=T*hsBu3w!YF%U%2Wc9?|%4;>T7-KOeK@vyOdy>tB$;KAvo;c5ko;t^q z7hmEtH?DDbeV4HvVYdq;c;fy7trwWqV~ZS_nNupxlKGgf3M!&G&c5Jo_h)Cea{!uwu%fx~@|Xo3+T z^bw-0b_*OjO5x6ur!McHqQkC&E4u<1p0@|wRTliyDdFMMbPC*QNJ7LkJt51`PMMt8#GOdlf9fTkIR6~Ev4hcd45$-=a@_un1_U9f zVxmD9>d)1bP*m3ei9?cJMt_rHF8& zx=DZY4w8biDJHX+(U8*9fc6lUOQiSYrwf|v2mI30Pmxk>{UmNz=bE|K><_X(EQ z?yym8B2h3w(a;jFAL6?ntAaV16Cc?oE}-4(FcOIp=$$1H85Ie2XfU1S!ZR1y(U!vH zgL%CjCY+-cf<}U2Fuzua#DSwhQ4FF=={9(=zR8Q1ui^GAuIrIBVv>NdLwWepY)*z9 zRJO=qbD#=3w97M%bFG$SUpkc%m3m zUEL&rH<7~R>=3xJw~G`LgkcI+?9dre0>%x>&aBAM+Vbn4KF3WwXRITtATdQmnL0-m zd*1)}C%^~HXoRW|n+|i>U`2^1EZtrphtn3^S0!qT*!ln%5vRP$dWpbJ)Zro;X(cmnk%(+K9%CHp`51_CARWC%g2oj$B6y8- z07g(@XpI_J2wb>$8QPW*BQAn*DF#b4g26%)FloXI&%DGZ+a0DZL82Sn&gcMxVtCLd zJRRpe@%)RV))AIH+5|`k=lZx+paOX!^j$}2m7sRWg7TDnoTK!_KJxVQFH^~!T$5wI z!s*~5A9NsG?U8ncp`>#N4jD!Q7&s3r3eNERmu3VH**GO8pbL2Z$}WKx3|JX<>XX&i zU@EY>zd}|T58Et+0XzaL00{xF@op9)9A_ahMu>_ZSVaI5;PUJS z@%k<7Mn(`rh!CB@Md%L}Bw0#q;UiaGW}=V?cx0H|HN*3IQ4r;faeUkvt}d z7xexN_vS6qA|>lOY!h)YlG))V4K^V$mZZqoIJLp8XRq+em8;}fECz=R8*;7Qi&+6k zlvVde0FA?U7BYg~b?+NiPfJAh)ouv|4-E`a)aK)7g(uO45 z>Kd+HzJj$DF%I!P&I)22$*Bo)qTmzHJj>O7&KWx*0!kpFgCf=_s39U0)?iJ-ufO~> zeX}5W=mcRISX^7uwE;7Bm>8fAbW2Z+5$gg~pd;k)bWTdXFM)x^_5N{y$K{3j1HnMYlS&*t=a)= zkx5Rnkz*8E@z_%ZyRTII-YYM1pBv#tS6!n)*ycqCK8A=yr9qfj$03p5KK~5VEqKK> z9df6mLx@E}k}8Idxacv#;p^46U@+{@#t~(;q_Hol2ul6G+lgD z${l54W<|(ilsqaQzwin#>{Z;ZTTUgL!{o0F*<9y)@+4*C($!9;Ai3v> zRscIHh^w+9thkZYNAPi$!io!#;|bPb(9M`ZbT)ia52?GVVg#PQF~i@!Ly}u!n$iVN zW-VrS$zxByKtm)q?%2Iu@8&mHH5dk`F*``TIFl4Sf4I-bpS!^5cAPlG2< zJY9gtuD(ETT9WALhXxG>iDs$+)&WVCVTuLn$<04&1;f=h}svoZr1knHC&` zmfk=nc5oAm5gP|_*wIdSsu3bsiJY;Hk6pXK3!i!c$Czjg5-iQFhI+R_ixFnJL7rw9 zm$SUG%d^#GCRl6~f(D|Iq3z4v?8B)Xb38{pP-N)f43*pPJrz3)_Zdq>=tF}gU=jza zEa(s{{VJ<+*3t(*%p3l)F5^kpi@f zgU^Ow>2)X(l+|pDz{OiT1Hou52?1SnJbLL0g2gfHI}=d+>W1yjk)o7gn@kyIfD#eB zD!EO`o#B16^V~XrgKV^cCPHR~QQgvB-zPYWoSI-yY;gX$7ubs}S(?)mi9=m-T&^Um zWfn9ZXCHpm7S2pcuLFn}5o`oq5wsE&PauRasCp$G%0Iy3$w{$^8#+QEQ1>k%gkxZm zd<`UPAbE{MMOl~g8Z#OXot5C}SNsTa1R#Q9K;p5-NR&8mB@$6%2Le$eMs#={9kLn= zT)tYt?mkunxQwUIU*hHYE+@wuEMrT*l8{FNMh&?pv^s!Cs)kgD^2!@IE=wkolB)2# z*Pn-*4VgEP0i!_LE@5{8+S6RQ%`?}ovSHGpg)M;UU3G{WL@cPmiW{bL)v#gmKBZ>DRFalGjcYwM&v? z9wdY?07hKp_hv=5GHh{46ijq5C`d?GQ@@?)@y#}nn31tscA7)>uH8VIK({yNqgQ5} z9&KW@C#o_shD3)lKrMq|v$DFuhZd?eD|XZf!3^FWXR-}0_lJD!*%z>_quX!M#t_Ci z(JHQ0p8E7t?8cUfNifFYR0i)>6+{en#pfKic&!~WDgkFLAq-{P(GcH}U~M2=&9U>o z6$2~1O-~$3Br|~Ck?j61?_`Kr+<3BHdTStgja}$8L($`D*Qj?Fe^goV6yaESCPWZ3 z*f6dpW(O`-j`bE%U}P<~W5<>2*TKSPZrr98!`M0YyE%RANfXQFs6bU&hMr{{w&0Yg zDA0=%L`YXeZod-65hC}w5uaRM;X-wVt;q&`2XO&~OR3IZ=G@L@PTCyLFz@15S`oz{ zK|ZGwBTOa;1$#i{gPwFXXsF)_!a0J@d*PdX$R60A=ROHaMscQ zHnG#fH-48g=>!V^{Oiq9|#g-MvWjE+dAhOtTb z?Mp9m=b&cm|6}jXgDgwW^3LD;E$5tj&%K#9Gpp)mS9MFGB_wF=V$tG3$Y$|?Fklt| z!-R(ckC<`T6GKcm#^W%K@rVca8ko z?U{L(vwX|^@tt$?Rw4g6njn3@h>EVt%*yP0>zwDj@AE$I^IX~`t{lxXOa9<9Pq2!f z0!`3D6I-H$w5t;%(iuW)t-*)2`cxz9ZQvd-`kx(ROn}pY!rG6eU!5i-)1{c4=vCK5 zr43_^s06yoX4~=a7D&z+m>eE1^6_rkb|v-vK{}6-ZpA*tB=Q=_5FJc+gDZSIvk>Ub zf%-O~5KZu~YYcyO`-orv&|?V*Ov=Q`F|=U& zjx7i{e(N)zBsMMM%Ojq-b(1@;W|9r?3Y1R-u8n7Mbsf^^I>w0ZMzn}PFPrZwGR+x? zSf$q>)Bkrl^0RdVb@nr*^J}%qLScKhKyt2*84lA^wbzJjJdLXmZ~@92)osT4;jfG}I`iFj3=OWReegwn=OBtXR%;lhGa2AuoRM|wfPvKs~nox5@~57eR6f%xY1F`rQUReZeK}kj=_6S_1>?^==Aq}SCOSk#rreyUSEX( zSd{?Hg@BIB*yFubeH)E)oPSs+9~3>0Emv^9=^a$N=F;yUUx zNFr1>tB-pKS`lK`9@TZ-?bHaOQo9C$C;=mypkm4n0Vk&GBx z7VRCJYH4Ggmg$s1$J8bzVX0s@76J9z+90C(@w5Wn?a4$XXGEt2ECxerdHPnUZX4$H zDvfJNrq)Ij+6$HQsnyvK+x4wW|NG5xFZ9}x1V~!v=%CP|P%7185R%DrOjDp3HJP=k z{n1J8Pm#lPZ|fevtw_$tnKCQq@u*}57|X%VC9;eA#GtqsEU17)&8letNq(*(xIhwE zDF`8=R3vs%d4gb~qLQTe)SZmpNlR3nZ6iH7c_!?NF>xemRSy~>xt!@fRM*a^jmqHc zgtY(C0g(orKn!UFt3`oI<6{*->r^>-*Q|jf#F)akx{AY-sw5TftwLh#E0#3&l}=V4 zx^ZzJ(lpH(2t_!lSBX^aUauMtIFx*wX|t_J&Pz!$UCfz|qU9Hw5NKOZG=|#MSTkUd zml!)pW<*LS^(To}P)cuD2c!v)mGsnaINPL^*lo+IH2u)suih95Kr5Bht-^YG6Y2e^ zyD3Rpfm<)u1yZGQcC|#1aL>l>rsgATEFUJrrglv(ui=(RB-f^>^}Yi&r! zC-u8JDgH-5>2A?6aVS*?c!YAa6{Br|Mg+c8@V25;2lgo^AJeCudv3Jwa+Vj6eF;#fR=zl(cQzyOjA2W1;&A z%zlBeUn1;(RPO-4xwYF@2cFpZ&W6r5QqBNxQ%CXz>;pt3y$2oftK_U;?j`fF3lQtS zHu^w}K22>xz-mKHpbqYyoZs!)wl?RWznK9evOEVIeqIxGM6xXP#TbT z?Glj;MFpI=n(3_EMp0}llJj*AWptfEfdbmrQ!Q(jCv&t;grinA)d?bJi*5>{gf%!w zmje@HBsZ3!DH!X50TvbFy}FBZudi=tbzh|+Fr-)&eW~Jv-V%H)?$pg$E)R@sws3JLmC$+TZ9fIhdJAj z@GX#>tFs^(9H}g)A`pV3FbboDYqMs*ke_4oSLkbdb*dOVdasnj}T9V_@FY zxDI6ciH6_wHBqT*=$f4~!n1Q;I|GQgmhJaGtGy(@Hzi7yNaAc%jEE$asf)>f)`vip zG`4PoUyo{|1W*YWH`|}h3T2a|jWJ@aO*V>6lRRl9g=xj^zkP)x-R@8jaKU2`9AJh; z>L|Bo3nb^GrIE#K#zGEdq01q;D8vVx3oM(8HnwR*Dv>-ZshS!c4W$_oqTaZfZK@VR zU_yyi10*_PNZ_Hno3f3GxQ(IP!i{H={79+-lt==p5NSHsHIVh^dU)v_%+`b_5fOFv zE1pejg7i9&6fL3Ymkq<3EcVf_tCbji;(*rN%bBjEuRM$~i1M`FBM~yCk#2;ox+n{+ zk~F{Z^*s}!Y-fMl+H8U3{G1q%E=?JgF&Fcyp5vR0?Bzgv*}_sEk}@~-~o`qh|&H&yTd~y8tS%&5SXt{Xnl*39F(BN zGBCrgx@ZaA>VF%-ssf`dty|%O!xPYADD40vW<9d)$HUT@C9m6wko-gLKN8})3h7DJ z`#-pr#YKlAU`V?`#H5?i=yh;d&!2$8M~B+@ zcR5p|#5?c-jZKC~oooB1hGYE?-|0DeQnuHG^nYjVAsgd8#A{Tt zu1xOXIJ#dU#&z;tFNVASXK#W`>^K)spd}HtO{}RyLle^oe30cBt%;&B$|62Zk3w*3 z-xj|)Ap)|&aP8o~JzF3-2PiTttBTR?Y&v_%-~3*d61jVH74eFy4P<%ADBmNBV71^w zLlf%MqKKo34O-h|4Il>ZJxY>>qz)}XNhin(IPui9TH-Uj*IDRHa(uc;+tMS{q|q^RqnyzlObqAY;k^tj}Gxr*Hsc+8MTga@SVn_=Q&&qC=qhev_4S# zG(K))K*w|=w_VbmiK*@ATa-<~*ZrKx=3dNZ>!Uhn`rdficcWvCtjXbZL6xj_#pX!k!T$YoM?j_JsXY{T@)+XkB8AXL^%(mQCDGem29;``w&P0owg7(&q1b zT}qU*K(PLGxfs%jxfh+O&JC^GR!+=nT<;F`Jc&hN%Pl>!1(I`gj*gDX8PmmVn$)d_ zA`3X4zUcK|I{lsxeT3G+wfS=lf+hA=fgW>ArIbtP7u1+O`OwpPA&*6Am z+oPbO;!3flpTT#~m2*^N&RCeUW%oVa@rlb4*0>Y$B=OI2wQf1xFAUx>@O@WzOxCfcDN#hzal+~)|$2=n!R4ad`^eK4ja zwiA^8F>qK#l0TVE2=;~0tfhW^F;REa{G}d09Uf`by|XJrVFexruDpl`DtsEzkOJNF z!{Yj|76~zN+TR6b6sZ+oR^HSJ)dw%PGo$-&40i(^-#MvP0n zMM*+!qFclcCSoHzn(fs@IJW3LIUi)cuUDp1eN4{y+L(Ccp+!(6ppz&EkMeY84BIMq z2o1h*WOwdR+Mx}12NXst+j7WV{Sb(zZpH_lXtQ;PgX=K|PBXpQS`0w=HYp)+cUQgs zq*J$O#MG_tjermL)$Z!6uz_BYCRnT<_X;6}jTIV@m8!eYRU;d zi@}TC93w*v1`aZ6_3m|9Be4}^IV;=ag-m7gH)k7`3sCG46fyJ-+{il*fBXK{I+}FzA9|-rR~Rni`@^+{Ik{eS_iwp) zC4SRTaP!NZo|d&vm+*U4${gg7#S_HKr|ea%ANa0peJRtZmab7M4Npe@h#4^~7MqS| zxI!@0*bj>LTd<5DeLml}417V@B1P83D|ot*TU=cHGas za39hB8lK^_AXq>lWZJ~>FrSo_O9swq#fg#-x*FzbDDUSBQl5k?Jwp2+=w2YGQDm%vZ(IP%%|mIW6lS!vAEhYW=jr>wJg1k=0f}T ziRB^+?;`qPuHQM))d4bZ>zWVDH-D+imP~}qTWh6zwN~DqnP2yFdw=KuND*Ns8F3kn z4PpB#^LbX>4mh|&b#l9cPLIXYUmuD^Ao-B$>jw&Z2Rk!0u9H#3{?1fwlWp=Q=5@Gc zjpa?V0b89wi4?sxmc-NvHgtbSPm?euuQY~bP^^`)n~0Th_98xgL=1>;PhWijYo5re z`B@4XJIA{_1>kRf`}lZqz3xL>cu^GNq{J^JDN3V|UVp63p;lI5Ft%e9z^2`b{21u_ z=Rxw1Ffc^3_l>yNgU|QLzO29uCPFvs6ZBr8gWP0%oAG1jQ=7z7!Z@0_&qfM*`a0iu zrtdRT(hik^p?!JC@+;BDhoc<^Z!ndt*Sz{Ot6Y7B^LrmWTrN^1|{ND@EHhd zrj?V6CABm>oz$!sG;Ni#*ZI3&E>FP`;>yW0%*5t)P6ajpX!6=4+4hd|N?{eydM45k2cQ0Fx0xlT)YUu|!A-bkbdhuCo@>whh4BSRNR*qx5T0s@|hLk`e1L5e#TnG-W!!`>? zjHk1g>LqtSe|dvc>Bgzs$M4GY@uv5V?mvcM_of04L3Nz)ieG#H<9Vd%k#7f&BC2mU4(TAa+Xv53s$?X#`?c~AI9`<@x+VttGa@;qG+v-5NqQ5?NMGHj>+v`^%hdR0YF}4359TE6S$l3*6 z@HcD6Olt*+eZ;z5F0P!4x0GwX7~2ZTU7uDtJ2-osj39BG!Ka(5cYsh%Rnx2@enp9_ zQ5UP*^FedY%DnMAZ3_yB$N()r0jE&55E%TW*0>)sv5~0OB^!Y!3iZiM#e`T@ltJWB zqH>}Yf^7%HRD5niY;g0-8Cb}%eHtdO3 zAa5YiL{sKpMF0Cu)Z;GLmWPW99~1zlLOn+xhp94mF3WKxMkK+`GAGbYCN6hokB&TlEE6oiLGIIB8%vl*nFX> zGb`vNO@-((7L(w$Fj#!WF3jua@svNsn7G(#A3X8-|D+KH7g>tF*P3=R&GvLT51jj4yNyTe;$QCI7KYud2z zWC3K%-IZXabTt?tdjs0_MPNb{4}gi>U-#ZQF{ZV4JsVeSTt-!y;+6?%oZE$~^+UEbY zV@d0~MQ80~aTI%IGFc-KJ}-e%aK7^b!k+uvTPH+15FU}9(9uXTE`T`P&U2yR``C^5 z)XG0>n)=W4dhQj=8`?TJTB(*P-FBnQ0v5PN$<)HT_@lGjgSXsBir4VBBJ!>V)CW_c zJJT=J@`A2OwNbp3=G163Vo3a=d8SOvVBH5YMu9M^l9*v8H2^k&ESna53mcW|FE1Jm z!fgE_4bC6pm;{q1VB}3M*g}hF*je8%UZVn5BI*W3-S6@k=xuv!wfE_NhOG1iPiXeV z9+zfl5nsFf9cB9_a3`?bCg9|pP$r`hjZ5>P7H0}6$Z~(D=haj_B!mPpafcL;0;jhK=w`I?N{-fUl&Jrf$a&AB=a{ZqGCOu5RUqIq3& zTabcv5)8%R=s2@vo8G^N`;PY646*lez^sQsq13xAm)Xym4n zty-Cx9fsA}X;S%_SG0S-VW4=IuIU8odxU*g|<|3o~TOwk?r_fN=O-C2h#btpH_ zB{j9RsNId#!U*D<&mps(-!%8XgM+)rF`r-8u67oblS4^*I|}xo%_5g2--&Dv-?>o7a1|F}vq>Zuc4sxt538;OlL z6yKXDct;iZ`j?<05e6(iOgpCp+E@iECjCMWhH{hkL(nMl&u;DHx?1$gre~n)HWnj zy=OGtNnm*RHlTE!c-kKBuET5HPH>8+2UxTH_1Q>aE- zA%`)8;UOV=vstL&=xqX-&d0B3g7#j6cs?xzfy_Ai z?(~m`O*4q>O0_DKr&755o!@!2Hi^Bwx^ekX*j)+SD}SrrG3W7mvsF?IWKu^kfgj*t zLK@IYua1^S902m1;Gw|K5jDEM9_20pgQvd!t|${--c1zvkQVYqRFR2)%#MUDSbjk7Y^YTW zeQ%!X_^NW8@zUO0Qy~Q_W~B z(IAt)$E8qr)S8>XkM8P=rv^z#-d6hDF@zPi)fs#{OH1g^%;WBbc)2C_1mFa!>^bB$ z=;gZH84b>O^>^#A8P<(Ua1f!c(R)_tPZ=d*>QDDGczD8KNdlCyesOBD^g-#S*C?b% z&R-JsLP&+%+T3p;az5mY@1uBp86VynF}QgBwIcaO9B&2^9YGqmvkw|CU-Z#lA(MO= z<{mz@ni1dHNm$kXO2FOLComS5xc9wQ-S0Rh49*H`0B&FBz5=cY4uGyE+4_fvGi=(L zLo~|xZIdmfJ^xE`MLck5W09CEbZsAc&sv0 zHMTNYTeys}5(+GmCw9sftkR^D%ggt$rBq1;wsAZpm-SZj#+vp9;gQpHA6{CD)1C;{ zXjG?@wKns9S^E7g%W<__=7fX*hSX-#jpW*m=tDj9+TRxP<*8r=9|x#2LQkN1QGPd~ z_nSp?JZ-!0cWe$FhqirZx?ZP@edz92-rfA7V~KEDxYjw*c!KV_&L^YDeoHEHzwW@J zc7rXwEfwD8gsO9B{r05-)6ds7V$}hQV#EXp6XU~Tu`TmI|D66BSA%j6qIhq3*2kKs zuOS=&a>)^-!WB!A4EFBH(HT6kUX_#x88}^Z;Nl%Zi%G})t8~LaCr(*wJHka64fs07Ww@Ge}&MKNm(Uo z`*Q#~KL4L;`=<^{%r{bdslNZ)`4-Hr+vp>G-jz`kQE5LHI8!8sM|5x|>TAf?tI#%{ zi@|eQ-~HeB^^+aUb7;OPG|ai>ISs__w$zYh9ZkF&HgY9(Wbb@R-|PijPke*zlOMu& zZEpvGw+;$Iu4!yIwSR;?<;Wy50R2@55@ONQYRTW-1SewHT9EBe6olJ3jlYoVCHvk- zZg+)d=;HJFi~O(gC&ijI3D5?BG;7#&BmW#^^nzv(S@bu>trOUyjXUJD9@PV&}75A**D#V?0a{W*6Kdl;|}0BpF!Tg$0`*ZAhc74 zh#sA}W1x*uk{EZLz2YzD!Ogt9boO~dX%aqU{F*?0DF6EG`5ka^fHlv`2_t4y`YS%l zXqqobnSowY9FDWMlsa)ExQAOn-fuc&Tn^P50R2=%W6&3(tAUk8%g8h!MP=h=JTZkt zPC1Lrf54{6a*e5O)WT8H0F!E=ghW3|9R^$kQnrbkR8;DYU0+MCmr)GUbo8x(E2An8 z=`Wta`v^#0Ue~tg5)Z$*7gdiN-17xbdO3K+t@H*2>vgXv*?{u@_qbi2sY4fcbiCt= zmZ>Yz;6ItdLN6qIMt2*&kD1|^vp>_~zHS+QaFx`0zuNX*NKvg9z{OBD(C>_Pg`2QS zz$Qe_@nlAdHq=x>&v3=k`qn6946EFk2flQ%;sQ25--HK&j3yc)O43Lz`_2O#gCbiE zO8I!kCwq*S-T%lRs||wr1dO!5Y43mbIEHOk3YO7Y_mT9$dry-z14 zYkrv3E)RNXv2PP%`je%^R@u*Ym@CC9`sGL;4ZsNt158pz_d}2h1Vw&-+s~lQ z^f~}DZ~W%VA!hcxNc%Qd|7EKby`}H%+T@U#*569;Uw(i;W}BaDioM(Ql&&Tl#*`iA zEwNOaOnabo2t4rhqi^<4Sb^8kMlT^Yab0H^!}I)8@}ARhRh_l&tQTvE3$nKXD@k0t z_Y2&W&b{66#1`~))zJ}XK$eGLK-OBqmv5Ct6t%c5xobAHTznb8NBwh&np9=}ZxB5+ ze8MVpvYF+Tff_7(x82Pc))pC;CHC$KLC?(7GL#r;p2jp07i$Qk6zR%k;umY=J)Y?* zKIz<_LVD}8h~vMD(yh&Rbar|8V&%sAFY@?}?z>g*HYf3N~ymZWLN`v#q!XhA!!>Y`h`}ob?Bmr#TZV{l}Vg|SHSn8`yJq+ zP$O}Ry{rg_u`Y?VbZ~im_Oyd_l~KY&!LH)4N3Ovhjy30fX76A5xC`3D zpMUNt71Hv0Iuc|0n+0-8;PQ5|A{CokvYM!Qs3(eO$4iPbo})lw^Yz8*(sbevsprlQbb8;k-1fN2vK02Zs#Ik4 zJ$8i>H2N|Mov^R&c>`RpzFVmNrPfg1GShn4Y9>z2zYeN=~B@Y9g1MYtI9+>q7iXl zI{Y_W{ro1ac#7C~tCtXn71$={mcyA~i;?S|cu)@}SO``NQlU`0QixrO@8;Ro=^JIy zNb#<&ShtCdi_7m&3|H_>S+(=iKPTCQ2tLo4TXYJW#3c~Ke1j)h5*1PII^}(Zt{}p@ zG7H~Cx?NA~+erTY{wVO-Kd7-ND9$cGizYw%XO4t!i*4^4&6Y0javN`#*;o~3j9cl`b*hUal#88D!$BC-)jEV@ih)>yfvP9}?Uv_y}fR*4~t^+vz*H)xLFWYN2J z@9{@~*WS}Eq|MAmiC56?j>p-K>WbTBeu3dd0T zNk<1*TlmnXQcxVC;l5tYG3}8gSS=mh3$k}kPlJeoH&HtuyBp~%LSuOsn%c%4tUV&> z33zZ!xv&DE<7Bh9MU{U0hHe%E&952W{uuOrmny^Vi3Hl8`6VBzDDqenA)%&C1 zxBX1^Db^X)D-`Vp6HWq^LxQASlf)G35Vr9785SK|otp*805B!aP#y zd)Jenhd93MrkU_QFKCt?4IdHG7w`adDQX6Z>>N#ApFR3(fe-jP(w_b^mx=ALsY?TI zHpwz&C=K_1-!Zb;NH(!i7=aFC%|8~N*1ne zrL&)qSFm6LvNTNof(}MPW2z|x6 z>lbcW;1`>6upy7a!j`SqkA)qwiJ>EPL0KfaceiD$aAjZvE~z4vupEBp_1mRa>!S)U z?+N$W?|(Ino4Fqoz5K5EDwA^_Z`~BZ%l>8Z!?2MUGeVX~bq-PU#p*83Qc&~Zf8|si zHvQsJzcvD&pS|wga^noyJ2?vkF;n^H_{1tyXyi92aPIFU2lq3#CL|@qo$?#}z?Yct z6P1*Adz(B0VCDf;E(U>&0Qj1$Z?Q;Ekh@JdDTu zy81H~R~)~FFHK3k56>48TwH8NU6zbu(0y@9DZXLVAwv}m_DF;Z$c57Dn3|Rh%{}>I zVCiSJlk+85rA4lELp6f&tZGn!+-|`VT>swQ-u_VEr()C$dT~jkdASF5*`;o&O0EPP zxVb!r-ALqowiWY$Zw-)+8p)Gn_xOtcbI&(0y8iX}%Q?WM;o;BL+pcE6pxC1X@}cQ1 z_94HtesNQ9W?Ds8fu*I=;7lZ4wlc4b?y%LO5kze<-byZuqBbY;(KYxmp_ghfvr>qD zH}S7a=tPNCn0r!V%UdU{>93hH%x~SE&zn+S|LzoB{4QWdynZ`b!ph62A>3$ivS{<# zm_~^@&6wV|yex1ACqsF~*`{m*LeX?u6pUgcnwSE^aGD$u--)u@zYDSAy%l(OYtx-M(qUpJ9Q6Ieia~ zf*tLT{ca7c3Dp%S6-12!WbHUh`4k=0;gORbR?UJSjYKJ_84Lw)(2{n)7YZNGoCy7%xYDiB;4umv-B}yBX|Fm$;bd(G=;Gq9-;1D~xuLG8yvHQ&@qOzMruJ$mh z#pHbM_5D5RKHB&?$?Cm_fiIUTK>+Tdwd z&}@}cGBApM%?(?`qmv)wMlR*D`hf|q!`7qO&XWG#4xS`FVVPVs3gJ zbJXAmu0mQF zX(5#n;CIpW@(q2-TX{Ek$P8!Ufw7-&+4a9_ZW5gwq1NWF%=7$g(2TWaHTOs=2dXKg zy6fDDZdmkK^$GIYYPBLb6Hb6_a7^egWrXx4h#XXGEyerwwt$n^sU1O=p|!rm z-CEzv|6dDm8aS8v=?uSzeh2Ca6%!JBOK)!vBOnQ4UICN(F6QGoGx`qPqebpJk;+zY9)-vQM6rM}(rC~;j$cW7kgcw) z;I9EpHF<`OR!MN}r1F~m(S0{*f}D6~AZXYIQ+j!eeF#tnnh32sLE`oHxoQIxxCsbG zmJlZv-yc>AQ;f1W!W2fK+q#OWE^s32*tWo1rHzl2$?RzIt!p$FT?A*=|ceTpna1ehY-+@5UDM|78bGBQ77`ZpL{P@|oS3^6~~I zd)Fr&nXm{j&@of_F88&%RWAIrdf7~RINDrb(wNE7;S|*~Wta?TkySl}jLaV}8b3RO zR|kp_!imC>SIQSB+7T6_rJ-d9H71(FOLxb#w{rYS7vUXGVgC-L2Zt0p$Q$t|TMK9g z!(Ljc;mSa7&G67Cp3%#_^_~Q>L?TT(#lTn1Wx>8>J|L5X7+9?;a9?~2y%wPsYo?s% zcdPw8aS$2>8w`6+G3RURfSbJ{8=gu$jo%@6Ks-Np!6DG`m2aFNbRW#VUrXXB6mLL{ zj*~&dF`>#UW&23iBKF^XOV*dP`%@)tf%m;>uAXmh7k8cUkAay1^WO~+3z~4?#mL@5 zM$SILk*s(~%ZE;?nph!BVG$oNVok`>;HT&(pPl=sT$J15>E_m(KM4MoC6rrhY_w`s zTN6Yy!Bh?BTwZsUfAm`T0{^2kr1lR_aeI1`v1~L?AKSj+L*x(MaVlr@ELL#f@aXX9 zCpw@{g$p@!rE{{Ln8=bBs%UQwM9L@l-~6sQa<}szn!W{6M||_gbQbWjEcG^oUs!%{ zI=%`FLA^nPAHRDX`SEv9FaIC2(A`@CNZb>av`pW-h7R}5P$hzn7HGCLib?KP?|HGx zadz=R2u+QoMYz$7642OE3opUPPlb*&fQ$mB?_w%pqrF7{17BGU) z1h(6dA}HyS(SD#Dy)WB1gP6*DWMinqN88QEh!vGYb{U8BHADI;bNR^##lP};dm}Uzq8J#R7xT^MW#(U+=f@qCEdm3x+JkQB zNb*6-7f;{ar74r6zGMz~aR?(Fb0x$a3@%ZOy3W>0*#TFqi2y+%M~-|!+`vbxtvNt&3((?U z=v0l|((}7TV!>^Zek_zYm)ojTKvk*Hn!*Ykq!=|>{D#_00(7&rtp(g?r zxwA;16yhD7Kh7WU7_Hb=H)|Yk?~H!CxZ~!;(R~w;up{mq*Q!nDv={$Lrff_N)S!*w z1#p@x)1WP6?+%#ZH$GR^TFvW2n#!|#p4ZinSXSe*-ORvo2;jL|0uCvEo zZ>64f6_b`3=_%IJuaC^Da^C_>dOUtec9pd`4t$|H`lQ$L{`_D>mR=xAibTBv;HLzY z26o24sjH)_``ARFCAa*5Qg;6P_hPizU&2<>0!b9fg2$rWGimRX0$B_zgdMVkj-ECm zvS}A`#7NqXsL*->6cp1iB3W4xMue*2)0I|SWFNV}V^nBXb2W^_lPPquWzz+_8vkH; z8S@o@`{ zLE4cOb0kjc)l%uN7B_*|Glp=S6T$DQtMY~NfY{2XyB~6o#>fQzVN?{0?myK2#C4Y1 z2Ktb(TA|0zESD+#SeR3jYiYe$AvA3&jTJe4%_^cBZ&KU(`?hTHA6Vr796sJs<)c2t zH%$byUowjQiRR3LrY9kz*Txu?xcG7lKY2QAc&Obu!RMHQM=f|1HzM~-r?uuB!IWJL z>|FZsR~p3%3?)J-`z`2;d_E6OXMuehbsH}QD-lYgwkXiXIy-#N2~H&c*(UsPzFM*`BtdgudVhl$4~KQ@-PObn^Q6Bp|+CTd1y*Qe>51i%w9+%!c)(Z+v& zO>J+Ctf!lwi0B4JD55)%!*tV@DIG0+nuA#uc7ouOR*$Oge?I1`SsOkLGI3$=B1{+kiro) z3W;Dl(X-vELID_U`rl;#QQz{t$oGHdwVZ7ndmVilI$ay$5K$nT(A$LW&t-oX@%p$6 zj&NqkaA8Tm){i{+$Y)-zE)FEh4=0lb{&ur09NX zSNb92>)CmG5D2bh-%Sx$G!@soe7~1)gdwV2M zcJGT>dWj9l*oZd9q=}$8p`R}qUhJ!g0)~`UgEW_(6-ad~i>8%2Z+ssM8P~DphFzWD zE|s`xDMVxuD=sFbF{nfIL{{9rcCKQ+%VM!aRf$b#Yl?2O^rgZnv4*z0qh^;H6VG7& zvFlD6+M8>qqMI#ShfxzD(Eb&cX=x%96at&{cO#&E&5f$--4k?F&)i#kCwVtyoml7_ zi%NTm?aS(5;kar&GBfDOuC`y`WU}F|Y5;I+Qp?1ga9qF{h@x)?=W6};!rUz4*%w`O2evD*VfG5IUGMk9<1r6d6&l-KE;idm=(hJs zuy;QCJBj`Z_$9ajf+iPj6){?~Hu&#{SRUFTmB~tIRJ(o`W~#Krw!;siT|FzUA6Kc7 za4HD!92@7njN|wKcBC%D3j^u=MpK`J+HWxPXHkeG^t09IqY^exCW~Cw`kr;)R^N%W z)i(~nkfhn`D!}qk5x=0KsSs|uk{>fR2;TV&&=x{-hL~lES^cPsv1xaBi4w*}mGa6W z=Sb&X1dn+^kt{evrMpU1v~{+8Ota3~a*~AX%0kdyFL$+Mr3ZrkN2e`15F)1atnmh# zl5rpc#o<7*sh}rOAO`xVQk^Qrm2Y`-;QB>np~BPYppV7PBQN z7g$X}fd(~$eF3@jL-bJ{MoHQ|O%K+Ht97-NhT1x;+{3D>1AEck)52>8T>kaqhGqX_ z4RM0QNkIaaZ~jQl#fniu%t7SV3YUH~lE`wHr>&@H7a2KMdg^Pz!$drO>d$}%3xvWYWFkU!Six*igKd{<1! z++&0Cd#^$Lw)YRmXW10lVP_U}tA+7qUCBs2#t3@TQQh`tkywRT8SBn9V+Ebl6?r1e zd_b+?O!QUYR7P`aBU!n*9hr*PEC5Xv5Q{%dGLXZcg&Omte~;A&4`yL;7=K$k1AIE2 zQa(D@^dj3N8*T89jG9Qty+|hhuui|G&HiBRx9T2Fd$m8UV>8e-kC3GsfZkVbQ~ab~{m&UAh|B0R7n8k!amF*>h+r6<5wJ z@eyE4dI8J;dHY9tL)EK6nti5oQqs{obym_nJO$x))*_ zal%zujVXDsjTF4L)hZM5x66fd>8y*-F6 zjBYiWO0n(tVLyzwrwqqu7IA|ZMYy=hfd@l}4>F`Rfa)>Oee3^oJr{ETZa=FS6jEa;{st>ZuCL|@twG51B z!rx}URri0OfE5$k5mMogPXN#_Xv83;ut)mR@QqKwwL9ydRxUNe)M7GcrM);R;NBUQ zi>h`pNO}(_K;UwmkpHCBh|%5~$Ari|9I}=Q>X3xQsRo$$jDVG3qx5f%LV28JBu)Gr z@1M)%ICcieYG_FWsfjFzp}VO?m0DZIWoKOo`{8U$5K}BPq*zbOm1y< z7EBs9I#b(ySHd159}9~dt%h4L=LluG`cgM;R5agNz6?9eVj{Uh z^?VsyICJAIn3Y1jKZeM*kU!cAxTBkh3sv8#bv5|ySGCyt?#arbCT~nAMt9YRU7lJJ zR7RW&S+~M?>^%%?AYc+d|Ecfjz)IwZCP!XjJ6dD`g^0%{lP=7`C>t?!-E6arkC*gYI1x=5VD34uKb45o|;tXC{VI2`1h zkMkut6V>w5&33UXf^VdU_J;It&i`)68jxiyrs0wcu7lJFGj^VlVl0zrF(NHN_N~;P zEQ($(V`>eJFWS4)ms{BgX?zyD|DA_ng}n42*WTB)xV-VwwtO99luyHh`~70p$C*I^ zjStlWD$MTm7zIkK5t@vVX5|e5%p!OgMh{~(Xhq^UXEIve&cRM6cbSuNS~HSrICHl< zf)e&b>bKU2M3fzbSB?J$T>({ zjEa``7J;@`PB>3&Tm_hfg(?qZmBb2H3^qw>>O78@D`R6)3kQc+oojr+mUW{aaY<9q zUEoL@7-0I`sk3c%4$sUpAQL;ghQcLUgN;;)DX7S(ap21@i{L;f>IfIF_yggW&IT9; z#80Z!7LRl4%e^#6zxBMdcXSNoQY0e;-wa%ejI1|cQyqu~Z$YxJML zVv4P>_%c&{FJhjB22;sKUs$Aj@5e~RHnnr})g|W#>jW?8x#{oSFf;<$7>ZNUlFmJ7 zj887=?%-R+O^YICn@v(hXbqa!1z#0O`95-GgT@MOqY28A8r?~34Z_Cj;de3h4G3JK zb~+b$E}cQ5)v9Nj${@X<G2cu}QP2NSw%i`4okIw=)vU(dPn;RSR%OLULaScl zqTVM;wWHgevqG{MAcZ#v&zkGbI&Q9Nb}R)EcJu!1;5fqYbF#v0wxa~HZn^bBslEg; zZOg@p1^PydFCXuL-9x?j|F{^d4lp78;>6|bXM(irVIYk8S>8o-5(iF5o#Sr;e<4JK zLbolG^BO^|fu#ht-4&h_S>(p3PcM&TVM&Rxv_sfvmwo)~g=jG(ZPW7p?oEtCB7d~H z2uig6;PB0N1uz&Iu8{U`feBvp)`39XbuO+ZN+q=5xy}~lPMtqRPE+}tA~TJxkjw~l zwo!teo_3)86J%w=5-Kr6RBi9j7#`soBdzMmGAqMLE_h9ciw4{R0$NW45I9(9E)>b6je5#b1oJqvy^led!ME;NyWPU?lkv!2kS- zC9Ii$!j-7e=Z_s|C2!jLev`jRtiBDp-9pQhgV~ym&m#H>xY$8lJ4sNH`%bJx`#wDs zP^zy8P1c4~;!QZB`OdPPGmdfK4+<`mh9Y|?oDH^|t!po*4k{vGRlU6B# z@-CgDOqdd0CO`n4_UzD9^B2do=UNNB=?-nOo2sb+p zVRJdiMfX_%qfSaTG~K2LMy_g%oxU-I?h0l?4WLHOf9Zp`7s|`n!<(N#b#FJT{{K$y zFgJglB3GdtvAM?G^aa1Ipnm#E3&PTIJQV$lUp4{G z`hq9PQJ68(v%U$&c)Nn+lZ(Bm5-3|v{h^PjHZPVq5E&6$vPK}Db7 z&{(NC;eT+sdL5-4}9S23R!?Z zQI;}pNiI(%7%NXvwrub2l8oMQbLW85G?%1sJPwwk$u1vEY_jQG8b>ae%P}-ttzV;? zK}2C4P%~PiK6>zka4)D(UOqN6a}82`&xmt#PN)BHXbjz9J@4U6o_9 z%#%j_PcAfq$pg)x$Gf}rVZR`6Z#s5P^%EadEKhIDf76MX>j$;`MI(CwFiHM)>2Nwn z=b6+LZT9HDaO4g4MaP`=;_UutYpyTUh9feP<#bN4u4&Ns>tPTE%dNmuSPoqek^L}ALk$D)|lCcIkULn5ZLYe!OfU>fnQov-Deo!1k zi?h8Y+Pg6rx-rq%$Y%x3@sgMPi3k-BiI0;r4kbkiJ@}GYHrC8HmoM3^HWrIDlG-0zohR%Jm08G>Q&hpfL8)Dg9i;qqbxGiJViks_( z1WwTJ$2X+FWS1eI6noGgQzb~YYc@otVl+tvm0;sojLsp4?b6Jpvgu1vW~AMbO;frM zB$eT7Q>ZmJYEj$UL7gLto2+96Ke^WQajwi52UBc#9pQ#oyCQne@WKve>tYnrA9$Va zA@1t9a{+fnuvW&T)j%I2GRJPk0rTIkGtAD<+% zxn2GFbtP zON`vj^V}9aeQ(_|hK7R=g^~`ZWC@^-_RigfJUBjXkE$GB2(|WuN*cs&z)PMSx2$^( z67>8@Q5LqWXb_Z|G~csf(CF9qKL_KQs}0=k^-5OLk9#4JVc+(-sKpU7FaDY8xi^=5 zn%g{2Hr)tqv2%NrY~HD_&tm8cnNoaN4$S<#ZqE#r*Rh z-@{G-!j$x$`ma!)nA;<|;DrzPi5;V}DUi9q6@D|T*NT>ni_ps5%5!zv7Vj^mTa}D8 zuQ}~1H2hT`bRV;;&@u{Z}prls89H zrH&@HSc2Z~>MY{p>NWo4Z1#?0tl0;xXecl%j)><%snZ?7^~*8<=sDBO`rZ+&I_4d! zvY&n3g_#aWn7C46vMtl&HsK4J$0HdXgy?XSlk3y4lC?35F&c*Ztm);mHE16zO7s^QQGngEi8YY(k$ad&k zFbY-j#zw)FgvPCq_E=l`9fU9L7awkyUaL=|{g7UWJ@>KD#kT&bu{=44&&Xm&!heQ0W-&E%>d0gZ(l=72nY3a#%AG^?j^N`{(L0L= z)&#oJ-i9f~)0rJ{CL>-_6ai^SsT0+1lz<|*B-Xog@T1PYMs3>FJl~RVR*&mDd-FNa zIvIP}iVZ)kq0RKah>b<@)JLR^W`YZ=8Ydw-A=1KY%&9w*zbiQ(*EF=4AS5e$L}Vq4 zj%9j&+=7r@t8g;~FDY(*wGJrPkYw4YAa4zjbse%=M#rzB8TR$@tAuX!5RwQQTwbN0 zCL|nBrSMy$u~sm$GM>aCi8JihCNSDWCA*zH)lT@J`!5iB$homc#2nc+@2U%_iH&O> zPri{unekpYOf|(D4UT9*H!`o$%c>-AFJqlqV+}uhUmbR~m1=pa>Tm$$x}J95$(32# z$S>xak^|EYg_*z&7C7wzz-8-7GPk-gd+=Z;bb5uz18k&$Iq&u~@IT2j8Qgg~JIH8* zj2Cr|f#x7dZH?G=#)pbeu<}>+`5U$SKhgo%P?JpgcyfBmjCKWz2xlU;SpcjeFXfV2 zj|(reP*H=fWWNm*i!!thO`LdqFc0-cC=ZMldb2x@6O0Z+R2;wg)A}eHTg@;4x%d`V zis#XoP<>AjZYKAPdhiXywlL^0(z;ixkz7Q5mxpY+buc}3PvkVhXzlyjxV3e*Xtt(E zU88>%{y4l7w-?b}!6NWo@S4RvbTeiWt0L8HztTf=9c^n1;Z z)8hx)X}S^cVI^Y5su)(k=@#(8z^A9V`sb!%G(^MeH(N8pmP~w39gj7n1so($*d#Q= zp}LQBLx;{;{j((}Cj*OGgQ;;!PRVk1nC zGSn&;K8e-;oEgEvm=+7l5*1OsMe$GAg=mspn2m%3{lT6%`S=o1LFaOSmlt8i6u$`m zMrLJYL@*XfNV*{hc?)01mOOmu2P4U4b4JK)WTrg86T*hU8l|&Z~MWw>mv!IC3NtjQVJdTMR<1xuhnwW zsr|p2uEH(q@9FN+vC^>!NOyO4N_QhE-3tOzOLt01V<5S7Bi)VC(&2)%bieEO_q_WL z-2FUv=FGV>XJ*tAAvW*k$Mk(T4%~|GTI?90S!R|e5}*|7mOq0A%(p&yrKpzv3RQxgZ|i8S5B!uVcx*Z>+fI1c!`@sR4|6Sfx> zSxXzH&z3Vhg&qjI*8gQuAvz93{n*hq-^kS_6hjINIy`c zV?77OrxFLdjz?K>Q33MjXkulk6P}9}@`xM2k)HczkaBVd*#nO3bvWu;HwCV4gtb=I z(_#buY_>ZE35UL(0AnI4m3UeKCi#d!q<02JPP1~CzDI$~e@uF<_OJpn#+bF^(20yE z@LqeltfX-Ydti@Z%@6FvY>-K!d~VHhW8HO;WZwNcXvLyP4UDCo!c-=!bYKY)DE#J& zlY|LLh=KG{OmsDpzo*AD0|Tg}nc5moPctIBlm2I)&gQDf4A_3HiQQ(337sd2>zk!K z$_vL1lRweMN>A3Bj<_WU$=y3}ESHc3IMnM+%sh=$hOAc!>9X)`6DRaKV|~=gOxlu+ z67ynHAWpIGedH_5)v@u=xij<|usbDwFSpO(H&0RZZc1SDA0JQ;=rUFWy`lZQ}RGPC3;o)&IAb z0k-*oL5>dC4ts(P^zF^xHiI|1a5)T*0ua|o*souv^#VrdB^5bY1Ynr>^B-hqeYu{w zq%(>6F0sYC=jXHg=8fxCI!trj{W`dTRt%XL^k-Zo3eNCM-tPTc7Ht{;sl!*x`il-2 zY@7aW?T`Kz1rNo03Y;Kh2&8xvn@ApnBp~R*;lN{`qGEb$(0qS)GC#f)b+QA>aDppS zPl5x{zW_%>9Og3vK0r*k3qbKN^cD9=vl;}b^BL&ufRV@FkG9l0>~N^-6LS$rU&GwLz0 zBlQX5 z^9-nykuN-}l1KpDnuM^0krw8R&Plg38II!B<-BEwGgS^cHAp2_vg6_0w6!v3+@!xS zaWj4?sDklqErVjfN^Wj$lQwT%PSfNc(L}t7jp*rV1=-&_Ko-WwDn7G@mCx%afW|32oBB9 za4Wq9bPho#4#F)GQhi3&$Zl+Y&I(`MLz*%1451x;6G!+vlpA1=1ZJ{rak}3TA}0L< zn;s64u6yszsz2lJc6&$yin_kr&;-ydDUq*-4>#U+y)RDUfGix6P^n5L`jDzVsiR8q zkqof+G|BW_L$&Dg$fifA(e5OR4g%X(GNK9ci%@@LC4QeRa3)IE#c5S#6YOZD&F$$MH#Ym_TDZOH0j&uV zleq*&nQjc~e0sdh!hBvZ!9;3d?mAvQP=wFU_<_Ei-(TvtJK~{u9)auoKQ)1s0lswz z%5{o9eOWpvKPX?d-D5pGz9Zzc_=iAI6E)a*Qkf%UaK2`N*wlN~ztZt{F&`|7C@7Hx zvun8l1(i5-m08SgQGBAAj%>gB9w~%%D%^0DXxf*u#ZrP5g>}=Eg<)k4 z6q7b4=x8ivc#phF{wJtmNt4nQP4`gpEsaAe?xwi`61B`IhY+N#L(d+Y~f(Kw9Fzd zoV_S=wpVWt!@RIbaA}I%!P+yMcz9!W(X40?NP8FbO16#)fH!?`Q2COL7Pf)!{Pt8iPh)0DBBE1|~kmwj4ZnXh3DZm@>WKUm$j!$Pb=fJc$GQh=gvHl#?B zk?+5I7cUSKo~?_@YsB=d1$^-Lsu-T*6^c#AvsDf2UWH=eEQ@A?=|rbIzOX4)I#(|E zs12CtWkD3@6TooPgtwf6$*LD9d7-7n2U<0ogYL$0@W1Pg4l}xB0Xj(GcvwKU4slw- zBd((FDThNU$Zu$xxY>|(I9AC(8mjS=ir>(FL-w zXq7dz=rYTsWa>4V&VMIz{@e*!yGEwqARTwXgQJzZ)%*QqWH*Zx(?6=_@nwz%H{~)muFos=tQ}4!j2BJU{Z_{>M?X^RySz{cXEbJM6%~>}m^%zlX zczkVBul+G-+9T>$@LDBOJ0IL{&a@9kE_HCl^OsZ#? zh5o#2&FRtdjMGdbVY<(wHU_#=>gm*@IneBwqq8pc#?2PkbCk$Jp__S1M4{;2J9y5v zgND;fhxRAR1?>>wnTko=-5*T!c78~UYN|)kM55l&5{SZD9Dv>)O4YW;MI{{I#q7Hnh>Z?x1HwKfDbq1^> z7GGkI1i#!EZ2(doEYB&TY&%ehejc{Zu*-4T#^IuE=C&*V*;qvnVnuR#;`p5F1gSwY zGEU!+<8gk&-Ch2f?p*9?d)vyVG{k~tg2QVIe3nzuA9FhuD+>?ek!3Zrei zq@?s)&a(F~N5>YY%MNE$<)Rizjg<6a};~I}%jr=>9ARWwG z&Do`2ExIMr1IQ>p4zPyB26y^U5%a?oCgNi1E!sLLoJnwc1o)ip#T0XtVgSL53<8Lg zr+AlBQhPA~S@9PBWCj4nyc3JQ?d@OhdPIm6s$}PQ9n4OLMH)TPEpKW7xd(Hw9fdRt zKHCKLDD@$oRwkZ7J9ncOr9KMLaM>bNh>Iyhi{JLmOnOZ8=hq|*6F60)+F@JaL$UIbl9xM@iB0DYXie6 zTQ=~cY=)hPD~`OH64u%nSQ{SFn{Y1VBZ%xvjWW4vVPUNpll~DfB@Y8XlP9&;FA~mO zdNvfcKcrFHvw5+6Eh#K}$l4cef+MGq=+e-FhiZNJFCmeAFJk(t5336h0PyVz?*YJn zIvay`KiuofK!fSjCU-D=v*#Wxe`= z;wt}p#)(v@hxB{kGspb2&AyyCxPqc3xQulZb zI`^|LpX{GgKLJ7K9J`LQJ3?u`sAp< zrZ>%vCs&*W+aPA4uT@+vBU|Z;FDR%E^(y}8Z;`DIi->mvDIbYW*V4On*wF#x5GRu4FCAz4 zm~V4+s|d=)iF>-7IUQjc$cPgI}WY0 zu(ms&hzz9)C4$dc3mox}5<=vm8)6aDGX0!B35Mct*3f1?F~fd5r}OIYnlYmM>c9Z^ z;LghkyG@mm2E};&ooKsB-FY$AP^Ybc@&&6qti$^WAd|$B3fXQNkyzR+d%DYx;?EwO9a;0VAZ3-_Q&c6eN^7^?W z+Qf%*?Bs)6O$OUMS_aK_f5#&YP7=F*pdzq>pE5ahfVRVin@~PZsuHPF^xNA|x@Mqh zg<$DlwY#V3ICGmVgJb2h>ioeN$DHXGLigDJV$#wBUPnmKQ8ZRItr34SPG5kcW%I~( z)yd7auwbvji?w&0>^Jh-_!iZMU(&fjau9W0b+$L?$dfcox>m~9H~VLos)zULH-AWLGG;lgCMKx4M$Oa|BQ zPILG93kEBBy4kyb21Nt9WxEx|p>q_IieJLozlh6t_lj!_^AO{aM5@wmY!sUvk{fcm zmwBtN1=!kxR(skw4fJP#?koQq-v)^rKK4TaLU=W;|A^1Khb+quIAtStPQUG zny{-8nPB{FS`ESbbsF*AvNjUha#o`XzVC^qA{;GP6-RHCT|4AFlj?^sJ*=9IR}jcp zAbD-3n7XWQ8$0bnsgjt_t=enW25R!`=lWx8zI(a+-cWEQA&1Uv=p}jd%Af0q=rQ7~ zv4Q#TsN_6|U4)Gs4VE+=BNrLj)C{kugz231xdbUT6sQsg zrzYtRgAuv?rKz9r0j36CY9tqW8gn*3NDq5uO{M1dBHbA{H{TEbX4i?F+#lBxrM7!U zbyPq#@b=1&r}7WR=7feJ3r;W1Yg2Y1_A!ijY!tbK!I@;VWCS0KS?d(cDzPmd+vb1I z0PsM1wI|UIJ&K2|ljj%=ib5+}fopuhT_%%mPY?Q@Q33B1YO%xOh~r0xN@=!}fE<4e zQ)NM8nd-VMJFbf5NVYNzwf=*lwQVc%_~;MJC7O0 zV#(*DNz}yFl;P4Fv{#U~;(Wb1wYHJd2Fp;Wmh4Q~C=!ObVTXnae*QK_EZ`RB8}9M= z{CBz~O|fr;=ELZH(lrrEAA9FHDU}7meWH@R0c*;)2uXhD&jr{Q(SE}XUHwhf_xVhU zdGOuWsr&;TtlA%)aa8&giAs>>8Q$soEHU%&DUmLP@($|NM~?EZt7iu(E9S$=W26Wp@unc!Vxzk3^!lfk#T zIEkIS+-Xgp+w7xqqf~o7K^>!(>t*dKFS(q*S7oWpgBVdzGG%|X*$c6p0nrL}JG&j^ zMgRE96b|n3!_A;*7&)HbeoLOs4uShj8?W-`2lT=96^s8^pRQ6XGJWV`_);@||GgGx zDY6OJ&j`a|$HZQ?+;Zg9$L13mtkUuzDr)#6P8xdG|WhxWLXjghV2oT=F0ABMu?;*HvYN@^~7^c(mg!^WZpX!JL6Ay z;W%FO6w`NkobjmtFQ|4LFxA@rntdnr6@wM$M8zy2b{ybX6=M$mmf82~G@9UBY*hP( zIonqGTv;-Wk->!V+}=5@^cu{AnC#Ge{~d5c$W|EXD|T16wPC~2EPcs#=gdL z7?r2Bui4Mhdo{(!-l95z(n_hJ$nsRUl5<790YneBQj)SxZ z_!Z2mYZE)~|YM)Rhic zOLsbmbe5JeJ9Sp_AzJS^tm`*Hm(iW97@fnHBUlhl(5AvIU zBZ0upW+`+k@LKACwJ5q*)MxhI_P4vK2EP?mKqJeX)|8MzPZxvegKm#=VjkB-Vk((& zEMSU0jZx`MV!A;kwX@J>2Uk=4fRrGz$j7YMLW$bKtDC#pQOb5!+sas$ z)gqZz(^($_G@^Q8M~VL@vbvKV$u(*wgBy*#zcHP6OIRR{EQb26L_XW*xM2;c>v;LV zXU7PYtUlX{H;nELcb9F(Bp=`$Q*UdHJmlLa?f%(PG6bE1>)mGQZu8<`-*z8Wr`!S+ zz~fx3%1HhNmW2n3lO%m(5&PPRPnR5D~UKM?P@5$yNv-m&d3bq&- zvhJLJ8y#497m1yRZC8m}JIRP+8P(1c{8>dr4&%9TsVA}58SDWDwr$*p)j9v-agc_5 z^^aK2!|=ox=>VD(NVc_nL^L+Cav8=U#UhKmO>rWeB*<8d2#y3slTbsmK6)reB( z0J<|E15THP3~VyKIt+S-h>aAx_#ucT)aP>xYFrYkAn(LEsKm@8j-gF9P7w_dK_=;a zGzD|ukrwXl(F94ntT`=|r)%qJ^+=SM0oWk=4FS!s};J|}6Y(ce8#cPSWY9gn+j~o!g z*k5_tUN-Ya`Re=_^1Z-fvbQ=W2fO|HmDbqli=@=IgL;9+=1ZSu^38cmSo~D99}EJ*MC?pstByMgU^~tnW5(%~0q+y3=ts<$|z!w0)I(u#(`SiI+Hd(l)F(iuTTax2i!y3#VCBqL;o|j<74Os=MDuu1AVNt zac$CqFMt3dNXMEb#IcGz%?aTE^JL1_f2wYV6)%I*-wm*XklSEwDaK6+Z10c+(KuG4 z1rL#2<;#=5l^5|M*5Y!0h+Y!rx&lmU+Z-7D{Av=DUUQ~Z<^cP8k0}c-Qjx0fa(Gwc zBUSPFeQ<0{K^|4-1KEk_j)+{#W_tGa+TNEog@6``r}+{+N7WF={1O#4XsdXB}G z>8zQUk3F!KlB(=_wcl*k3NO^FDpV5H4AnpCBW&t+#B2ON1BR{p8%2X-Fud}h zKYVt6%sA}J%fpezc}Kn42DF5A{7MF3JbbWZ{B7|bn(StL^p)*Ruju>FZ>G3T{>z)7 z1CCEPnLdpfuLs^nw!06IyMH&9ZJ?x%NXMkbbbOf_uiMUQr9nuqsVHfa?D#SlhANO< z4$Yi!{!*!55wTt`M}-vjdC<~lvRmH*OZgIINnW#(mXlQj2~4G6?eyHKwV-yXiUN1G z!=V`@hV^1mwfN9pp1GpBQhqe(%G~f2&F8$nZkgV^`18MvAz(U|^ZopG{C13H;9vCP zwd=(7$c4fVgT0doBBuVl6akuVC_@r4yw-Wt1N-CccbuFP^f@ujp}P8gd{akLJj*fk zdIBOql>2J`V9Q2>LB)@zJ$fT#IvskDq+tS6L)!xzcFXuP;9Y+f=^o zXdMa)%6hzAn5y0+eHyd~|9f!Shb}`QW1Pwon%?sffbM|QU5CH7#H!EEGPUHFuFAVU zF@gWn+Z+@#YB%I-x4nqrw$>QWVcp7~Ic;dc>AaqT^2wS{OFmK{W~>!})mfRrXPY$K z8WoOQK&gjyme`S~y|(mzQ3N?ZK54jy5*pa$ONU7F6;|`Fb==S%PdXipQ%g=per9{B(EfiR)%ssgv@vEr?%sqnJ1BC-4u(n(wf7 zx0+U??=k&ASw5+8$R!?6nxP;?uZZo0r9sOUiaVO>?)C`X0fAUCpu@C@Er}yXx5kp^ zH7fh7LkjCWmC)B5N6E$;;YuXDtidDYo=M$nGzu~aBVjEaLR#4vESR#*Z2#HvHHGu2 zJJ$iu*8;A>%Yf&ntT*>xnc!2Ka){n}>q$#04mm|2=LUlaAG6nFPi&vCCN&lwOE!wD z58Fil$0Z6m`C_MS3?8{pp1KJ#rg4giAcp94yHb^rO&Y&<*$`H;t`&ai-+$}|>@4mrzw<7aSiE8oLr$Gr!*)|4jDUEsdPQ9P_>ae{&1-F5JI7U z@+$oZYxvBKL(iJY$b;D@gX7mIa7i)}qT}9lf|72lUW1!4ir@ZN|Ojn>^ z`5604HIP)Dhtn--l*-Vmgfu`}%VhdH=D#1YnM!ATj;kVfMG z8W>4pUqH6njNVDvCLwd)mcBZ=F+gdgk zR>PPi@Exbchy8c0lk*0NFaF!N{+6cTq2fgX`bFsHVG)`V{7)lo-#$H2Qmyq=2VEIX zhn(8%;c`8>impl`TAqd|DQ^FWAoLRY!ET-*v-Pj`rK@vxyJMf)HJ=0S=5On7rWZmQ z@CIa;7WW1rjb2JRY5Foo2F*N^N9!>dyyJ9@NuqOcMLJs*NJ~hguGoERp|Lzum_La; zg(=4Q1Q}xVKuiL6?M`oQ>v$t1gx}UI3(K8mGVW3QzQymlJ$MG!hEPeKDLv~49v0r( zcU@lzuOHlQejQsyPP+CD;6R8c9v|E$XWG)*>;HICcwz&j9+;j-EeNiyIxYuEb0_U6 zqZIm2C8aU4OB}b;3|2=w~%O z;v1Wr#Z_LU7C+zWv-MZiQ*R}DWl1#iIJ{^vm~KiNYwP7I`_dFwt0!LaPUgy!uVjC@ zKzG1Z*645Of|@A}kz0H;ZUk4ymFZ2R#j|?H37u4g=A&~6Wyk~9gZ?O0=e=mR!LHA0 z0H&Xhkl@`Pk%kcL&bF!BKuO6e4n%|0S?GP%bF#(b16R=RuBYoWSE_p)sCbE7^SKrPH7zdgY!- z*g?=%l-awmO3mHJ(-)BJ3rqG3?65vfxL#e8?)K|o^alFfk6HAS7IY-x2JhUT1xa1m zpPilD?>sI4OYsFy#gAM*@S;&XHy1t+Slk^xKQy1txIYWOf@2K50#Wlyi-Zl+)HvrW zM9FS}Qpj*+NTVA%Pd3e^;}~H!jT4g;Llc5SL|uFowfLKH70cq1nMgm7J@%NPqJ46C zIr>||AD<5=isdkH;0uz`=eJ{i&q6^=o#(iZEP)Hj4?Ln3ugHJ;N?8!vqnmc2O}544 zO}!V-Fa3D8XY9W2_lS*)@DNgu>)MlUaA+toFhZ}1YbSw=76lJu6qd3|Y^_M=ns~S< z2NZ^D^FbMq`&HotHVt~xuZz^E?NOE5fc_e%%RoHkZyw_twk;T?au}F>J)8N_LLSez zTu{l=s+-Wlo7aIqnI!!K5cKN3M3J} zb@ev#`YHYne;*;8V_0vD8BMlvY8vgg2#RV&BO9lvX++6yKJ^PqS(1bEl`}qC(l!Pa zXq&rhF)rHMuOq3^KJ2~Xo+w`_=i>M;_wSMS>$k2KT*1haS8^dpRL`MOS6PzYccttGWU~*b8~63V zXgq-kd;JSZ^5}JG+=h>y0;=}G`rM8rAO)oR3SE{&Q6oV_v7W{wK@A55H$5-!AaLOM zwxTO+;ds4A>A72TEBX20c~k0cN9tPX*a=^RbmOA(y?Di|liKQc*E4of&xOeXUmaZ5 zicdTOP&`_@hIYM0A8$y5&+G5%pO?Dg+xvhpY-Qt~q!ewhcME?*{_Y|4G90b#Af!_I z5j>hfvYo)~-H;op{pY)% zQjyiq^T|RspUVSUMJQ%&aXbr57i5xBKSJm^0iIGiv`-iUmU>Wn1|4_q`=J9`(D(Gb9FL*s71UQ<$F)zQ$pA!s=3l7j zlCZ#J6VBJjLi8qe^gW(E9Upt4Q%v1?h|h35_7&c8T_Wavcl9hh>#i?VzOYG%krZ@a z$hICUD~qHpF>Bxm-i-3IN1H8x(fqn>;Dc69;%XDC%R%y0GIhlKdHB720y zZ|`RoJm7|GOHDTi--itCZ?A`*9W7;-gmPb?dmrM#v0K<|8`Ei=US@BI2Xc4NP4ea0 zFk`Ud1A*GWv>2Y;hr%8$M&;3#=Lh)N)!Y7skcSU9Jyg%6XEU0CCr@|Fh(Hj?k=Guu zf%x#hTk+Sv*SE);oGa`5#$4`K*U!CEPo$bplevZW939W(U1SSmAcE-Z7ZDSjMK(=& zR!Y)KownLF5xvTdU@U7{#%Lb9dS7;<*l@Y1t+DDyoHf65%8rYflcD5?y~5rhsk6UB z+#6Oy!dFSQQiy8()NSRE7{I;tp6jvsdEbIk^5O{@hbs`zF|I|V1GioSiWP;7Os2&n z7ADN(-HATzlBCC*O(~9&wM6kJ+>l;dnX%(`NA+eaYpwsj>-N{_qtuiAnYq+O^nT^t z-`KsmkRL`(h4v?h2kX_Bv~?!Af+0y_fEJ3O>h}9K&BuYRsQYvBm<1&$8IQS)aY|84 zy|sq*XVt_)Xey$;VtqCpGg%uS!n^HwiNG+;Q|GP+HsxrshtQDy>J6snEzQ;7J@k-M zjmrlK-|MCjf88lA8$&7>VA8s zxw^Uq#3c*w*$kIy%% z&o?K}hBv>HLvXD}wPN?8o-4lBJ0{X%^q&5*V{*=(S=|$r;Cbou7{lJLib5+ruULZ=bZ?*D*ynljfCYf6dvdc47w?*j|2M0=%(e_|P2@PZq8 z^%RlAI5(JSO|c?ZCj3%%k6YqOI{nJnY7d=+JOWusqv+i}&ScVBK^SM(>g`&--8c~h zjH;qTj!$6a8~Yj%zNn~e%ko?69t~~T$vN-<`Q(i_-^490SUeal*AcC{yR}#gZ9uv$ zqnoWwlE4bBtq83*bfOhLt z|4Wy=WEwDU^y0-LGZwoig%g;0Ztmi(0Ov|u_0ibd`uT^bA2Y0Vh}j2_ZKgW*X63`k zMslN@J4)1Q+&-IYZc#yzg~B~gAEVtVK1rx}B39-?cKO?{f7B8JCsNm$zR}~yo)*Ta zi|GirIN80C3KFhLdy#(e`im(C^T6r*fayERa1!$2D^&1HvY~-oUAA2ny;MpfdF89N zm=HYuMpI+tm!f#Uoca$5 zwZFl4#_okW^a^e4uwu9IJYKl=9}e*fDdI&OGe_hL>wVnvfSX(k;NPpkTGhuhB13j@ YmCSVk{#Hyg0L1ULf`&Xy)-vq>0EX2|b^rhX literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/assets/img/games/worms.png b/src/ezgg_lan_manager/assets/img/games/worms.png new file mode 100644 index 0000000000000000000000000000000000000000..b55138871d50de699d4dac81641842287a9a06aa GIT binary patch literal 10076 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 literal 0 HcmV?d00001 diff --git a/src/ezgg_lan_manager/components/TournamentDetailsInfoRow.py b/src/ezgg_lan_manager/components/TournamentDetailsInfoRow.py new file mode 100644 index 0000000..8f3a77f --- /dev/null +++ b/src/ezgg_lan_manager/components/TournamentDetailsInfoRow.py @@ -0,0 +1,35 @@ +from typing import Optional + +from rio import Component, Row, Text, TextStyle, Color + + +class TournamentDetailsInfoRow(Component): + key: str + value: str + key_color: Optional[Color] = None + value_color: Optional[Color] = None + + + def build(self) -> Component: + return Row( + Text( + text=self.key, + style=TextStyle( + fill=self.key_color if self.key_color is not None else self.session.theme.background_color, + font_size=1 + ), + margin_bottom=0.5, + align_x=0 + ), + Text( + text=self.value, + style=TextStyle( + fill=self.value_color if self.value_color is not None else self.session.theme.background_color, + font_size=1 + ), + margin_bottom=0.5, + align_x=1 + ), + margin_left=4, + margin_right=4 + ) diff --git a/src/ezgg_lan_manager/components/TournamentPageRow.py b/src/ezgg_lan_manager/components/TournamentPageRow.py new file mode 100644 index 0000000..2b17bee --- /dev/null +++ b/src/ezgg_lan_manager/components/TournamentPageRow.py @@ -0,0 +1,60 @@ +from typing import Literal, Callable + +from rio import Component, PointerEventListener, Rectangle, Image, Text, Tooltip, TextStyle, Color, Icon, Row, PointerEvent + +from from_root import from_root + +from src.ezgg_lan_manager.types.TournamentBase import TournamentStatus + + +class TournamentPageRow(Component): + tournament_id: int + tournament_name: str + game_image_name: str + current_participants: int + max_participants: int + tournament_status: TournamentStatus + clicked_cb: Callable + + def handle_click(self, _: PointerEvent) -> None: + self.clicked_cb(self.tournament_id) + + def determine_tournament_status_icon_color_and_text(self) -> tuple[str, Literal["success", "warning", "danger"], str]: + if self.tournament_status == TournamentStatus.OPEN: + return "material/lock_open", "success", "Anmeldung geöffnet" + elif self.tournament_status == TournamentStatus.CLOSED: + return "material/lock", "danger", "Anmeldung geschlossen" + elif self.tournament_status == TournamentStatus.ONGOING: + return "material/autoplay", "warning", "Turnier läuft" + elif self.tournament_status == TournamentStatus.COMPLETED: + return "material/check_circle", "success", "Turnier beendet" + elif self.tournament_status == TournamentStatus.CANCELED: + return "material/cancel", "danger", "Turnier abgesagt" + elif self.tournament_status == TournamentStatus.INVITE_ONLY: + return "material/person_cancel", "warning", "Teilnahme nur per Einladung" + else: + raise RuntimeError(f"Unknown tournament status: {str(self.tournament_status)}") + + def build(self) -> Component: + icon_name, color, text = self.determine_tournament_status_icon_color_and_text() + return PointerEventListener( + content=Rectangle( + content=Row( + Image(image=from_root(f"src/ezgg_lan_manager/assets/img/games/{self.game_image_name}")), + Text(self.tournament_name, style=TextStyle(fill=self.session.theme.background_color, font_size=1)), + Text(f"{self.current_participants}/{self.max_participants}", style=TextStyle(fill=self.session.theme.background_color, font_size=1), justify="right", margin_right=0.5), + Tooltip(anchor=Icon(icon_name, min_width=1, min_height=1, fill=color), position="top", + tip=Text(text, style=TextStyle(fill=self.session.theme.background_color, font_size=0.7))), + proportions=[1, 4, 1, 1], + margin=.5 + ), + fill=self.session.theme.hud_color, + margin=1, + margin_bottom=0, + stroke_color=Color.TRANSPARENT, + stroke_width=0.2, + hover_stroke_color=self.session.theme.background_color, + cursor="pointer" + ), + on_press=self.handle_click + ) diff --git a/src/ezgg_lan_manager/pages/ManageTournamentsPage.py b/src/ezgg_lan_manager/pages/ManageTournamentsPage.py index 9755ef6..b4dceb4 100644 --- a/src/ezgg_lan_manager/pages/ManageTournamentsPage.py +++ b/src/ezgg_lan_manager/pages/ManageTournamentsPage.py @@ -1,32 +1,117 @@ import logging +from datetime import datetime +from typing import Optional -from rio import Column, Component, event, TextStyle, Text, Spacer +from from_root import from_root +from rio import Column, Component, event, TextStyle, Text, Spacer, Row, Image, Tooltip, IconButton, Popup, Rectangle, Dropdown, ThemeContextSwitcher, Button -from src.ezgg_lan_manager import ConfigurationService +from src.ezgg_lan_manager import ConfigurationService, TournamentService, UserService from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox +from src.ezgg_lan_manager.types.DateUtil import weekday_to_display_text +from src.ezgg_lan_manager.types.Participant import Participant +from src.ezgg_lan_manager.types.Tournament import Tournament +from src.ezgg_lan_manager.types.TournamentBase import TournamentStatus logger = logging.getLogger(__name__.split(".")[-1]) class ManageTournamentsPage(Component): + tournaments: list[Tournament] = [] + remove_participant_popup_open: bool = False + cancel_options: dict[str, Optional[Participant]] = {"": None} + tournament_id_selected_for_participant_removal: Optional[int] = None + participant_selected_for_removal: Optional[Participant] = None + @event.on_populate async def on_populate(self) -> None: + self.tournaments = await self.session[TournamentService].get_tournaments() await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turnier Verwaltung") + async def on_start_pressed(self, tournament_id: int) -> None: + logger.info(f"Starting tournament with ID {tournament_id}") + await self.session[TournamentService].start_tournament(tournament_id) + + async def on_cancel_pressed(self, tournament_id: int) -> None: + logger.info(f"Canceling tournament with ID {tournament_id}") + await self.session[TournamentService].cancel_tournament(tournament_id) + + async def on_remove_participant_pressed(self, tournament_id: int) -> None: + tournament = await self.session[TournamentService].get_tournament_by_id(tournament_id) + if tournament is None: + return + users = await self.session[UserService].get_all_users() + try: + self.cancel_options = {next(filter(lambda u: u.user_id == p.id, users)).user_name: p for p in tournament.participants} + except StopIteration as e: + logger.error(f"Error trying to find user for participant: {e}") + self.tournament_id_selected_for_participant_removal = tournament_id + self.remove_participant_popup_open = True + + async def on_remove_participant_confirm_pressed(self) -> None: + if self.participant_selected_for_removal is not None and self.tournament_id_selected_for_participant_removal is not None: + logger.info(f"Removing participant with ID {self.participant_selected_for_removal.id} from tournament with ID {self.tournament_id_selected_for_participant_removal}") + await self.session[TournamentService].unregister_user_from_tournament(self.participant_selected_for_removal.id, self.tournament_id_selected_for_participant_removal) + await self.on_remove_participant_cancel_pressed() + + async def on_remove_participant_cancel_pressed(self) -> None: + self.tournament_id_selected_for_participant_removal = None + self.participant_selected_for_removal = None + self.remove_participant_popup_open = False + def build(self) -> Component: - return Column( - MainViewContentBox( - Column( - Text( - text="Turnier Verwaltung", - style=TextStyle( - fill=self.session.theme.background_color, - font_size=1.2 - ), - margin_top=2, - margin_bottom=2, - align_x=0.5 - ) + tournament_rows = [] + for tournament in self.tournaments: + start_time_color = self.session.theme.background_color + if tournament.start_time < datetime.now() and tournament.status == TournamentStatus.OPEN: + start_time_color = self.session.theme.warning_color + + tournament_rows.append( + Row( + Image(image=from_root(f"src/ezgg_lan_manager/assets/img/games/{tournament.game_title.image_name}"), min_width=1.5, margin_right=1), + Text(tournament.name, style=TextStyle(fill=self.session.theme.background_color, font_size=0.8), justify="left", margin_right=1.5), + Text(f"{weekday_to_display_text(tournament.start_time.weekday())[:2]}.{tournament.start_time.strftime('%H:%M')} Uhr", style=TextStyle(fill=start_time_color, font_size=0.8), justify="left", margin_right=1), + Spacer(), + Tooltip(anchor=IconButton("material/play_arrow", min_size=2, margin_right=0.5, on_press=lambda: self.on_start_pressed(tournament.id)), tip="Starten"), + Tooltip(anchor=IconButton("material/cancel_schedule_send", min_size=2, margin_right=0.5, on_press=lambda: self.on_cancel_pressed(tournament.id)), tip="Absagen"), + Tooltip(anchor=IconButton("material/person_cancel", min_size=2, on_press=lambda: self.on_remove_participant_pressed(tournament.id)), tip="Spieler entfernen"), + margin=1 ) + ) + + return Column( + Popup( + anchor=MainViewContentBox( + Column( + Text( + text="Turnier Verwaltung", + style=TextStyle( + fill=self.session.theme.background_color, + font_size=1.2 + ), + margin_top=2, + margin_bottom=2, + align_x=0.5 + ), + *tournament_rows + ) + ), + content=Rectangle( + content=Row( + ThemeContextSwitcher( + content=Dropdown(options=self.cancel_options, min_width=20, selected_value=self.bind().participant_selected_for_removal), color=self.session.theme.hud_color + ), + Button(content="REMOVE", shape="rectangle", grow_x=False, on_press=self.on_remove_participant_confirm_pressed), + Button(content="CANCEL", shape="rectangle", grow_x=False, on_press=self.on_remove_participant_cancel_pressed), + margin=0.5 + ), + min_width=30, + min_height=4, + fill=self.session.theme.primary_color, + margin_top=3.5, + stroke_width=0.3, + stroke_color=self.session.theme.neutral_color, + ), + is_open=self.remove_participant_popup_open, + color="none" ), Spacer() - ) + ) diff --git a/src/ezgg_lan_manager/pages/TournamentDetailsPage.py b/src/ezgg_lan_manager/pages/TournamentDetailsPage.py new file mode 100644 index 0000000..042d907 --- /dev/null +++ b/src/ezgg_lan_manager/pages/TournamentDetailsPage.py @@ -0,0 +1,252 @@ +from typing import Optional, Union, Literal + +from from_root import from_root +from rio import Column, Component, event, TextStyle, Text, Row, Image, Spacer, ProgressCircle, Button, Checkbox, ThemeContextSwitcher, Link, Revealer, PointerEventListener, \ + PointerEvent, Rectangle, Color + +from src.ezgg_lan_manager import ConfigurationService, TournamentService, UserService +from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox +from src.ezgg_lan_manager.components.TournamentDetailsInfoRow import TournamentDetailsInfoRow +from src.ezgg_lan_manager.types.DateUtil import weekday_to_display_text +from src.ezgg_lan_manager.types.Participant import Participant +from src.ezgg_lan_manager.types.SessionStorage import SessionStorage +from src.ezgg_lan_manager.types.Tournament import Tournament +from src.ezgg_lan_manager.types.TournamentBase import TournamentStatus, tournament_status_to_display_text, tournament_format_to_display_texts +from src.ezgg_lan_manager.types.User import User + + +class TournamentDetailsPage(Component): + tournament: Optional[Union[Tournament, str]] = None + rules_accepted: bool = False + user: Optional[User] = None + loading: bool = False + participant_revealer_open: bool = False + current_tournament_user_list: list[User] = [] # ToDo: Integrate Teams + + # State for message above register button + message: str = "" + is_success: bool = False + + @event.on_populate + async def on_populate(self) -> None: + try: + tournament_id = int(self.session.active_page_url.query_string.split("id=")[-1]) + except (ValueError, AttributeError, TypeError): + tournament_id = None + if tournament_id is not None: + self.tournament = await self.session[TournamentService].get_tournament_by_id(tournament_id) + if self.tournament is not None: + await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - {self.tournament.name}") + self.current_tournament_user_list = await self.session[TournamentService].get_users_from_participant_list(self.tournament.participants) + else: + await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turniere") + + self.user = await self.session[UserService].get_user(self.session[SessionStorage].user_id) + + self.loading_done() + + def open_close_participant_revealer(self, _: PointerEvent) -> None: + self.participant_revealer_open = not self.participant_revealer_open + + async def register_pressed(self) -> None: + self.loading = True + if not self.user: + return + + try: + await self.session[TournamentService].register_user_for_tournament(self.user.user_id, self.tournament.id) + self.is_success = True + self.message = f"Erfolgreich angemeldet!" + except Exception as e: + self.is_success = False + self.message = f"Fehler: {e}" + self.loading = False + await self.on_populate() + + async def unregister_pressed(self) -> None: + self.loading = True + if not self.user: + return + + try: + await self.session[TournamentService].unregister_user_from_tournament(self.user.user_id, self.tournament.id) + self.is_success = True + self.message = f"Erfolgreich abgemeldet!" + except Exception as e: + self.is_success = False + self.message = f"Fehler: {e}" + self.loading = False + await self.on_populate() + + async def tree_button_clicked(self) -> None: + pass # ToDo: Implement tournament tree view + + def loading_done(self) -> None: + if self.tournament is None: + self.tournament = "Turnier konnte nicht gefunden werden" + self.session[SessionStorage].subscribe_to_logged_in_or_out_event(str(self.__class__), self.on_populate) + + def build(self) -> Component: + if self.tournament is None: + content = Column( + ProgressCircle( + color="secondary", + align_x=0.5, + margin_top=0, + margin_bottom=0 + ), + min_height=10 + ) + elif isinstance(self.tournament, str): + content = Row( + Text( + text=self.tournament, + style=TextStyle( + fill=self.session.theme.background_color, + font_size=1 + ), + margin_top=2, + margin_bottom=2, + align_x=0.5 + ) + ) + else: + tournament_status_color = self.session.theme.background_color + tree_button = Spacer(grow_x=False, grow_y=False) + if self.tournament.status == TournamentStatus.OPEN: + tournament_status_color = self.session.theme.success_color + elif self.tournament.status == TournamentStatus.CLOSED: + tournament_status_color = self.session.theme.danger_color + elif self.tournament.status == TournamentStatus.ONGOING or self.tournament.status == TournamentStatus.COMPLETED: + tournament_status_color = self.session.theme.warning_color + tree_button = Button( + content="Turnierbaum anzeigen", + shape="rectangle", + style="minor", + color="hud", + margin_left=4, + margin_right=4, + margin_top=1, + on_press=self.tree_button_clicked + ) + + # ToDo: Integrate Teams logic + ids_of_participants = [p.id for p in self.tournament.participants] + color_key: Literal["hud", "danger"] = "hud" + on_press_function = self.register_pressed + if self.user and self.user.user_id in ids_of_participants: # User already registered for tournament + button_text = "Abmelden" + button_sensitive_hook = True # User has already accepted the rules previously + color_key = "danger" + on_press_function = self.unregister_pressed + elif self.user and self.user.user_id not in ids_of_participants: + button_text = "Anmelden" + button_sensitive_hook = self.rules_accepted + else: + # This should NEVER happen + button_text = "Anmelden" + button_sensitive_hook = False + + if self.tournament.status != TournamentStatus.OPEN or self.tournament.is_full: + button_sensitive_hook = False # Override button controls if tournament is not open anymore or full + + if self.user: + accept_rules_row = Row( + ThemeContextSwitcher(content=Checkbox(is_on=self.bind().rules_accepted, margin_left=4), color=self.session.theme.hud_color), + Text("Ich akzeptiere die ", margin_left=1, style=TextStyle(fill=self.session.theme.background_color, font_size=0.8), overflow="nowrap", justify="right"), + Link(Text("Turnierregeln", margin_right=4, style=TextStyle(fill=self.session.theme.background_color, font_size=0.8, italic=True), overflow="nowrap", justify="left"), "./tournament-rules", open_in_new_tab=True) + ) + button = Button( + content=button_text, + shape="rectangle", + style="major", + color=color_key, + margin_left=2, + margin_right=2, + is_sensitive=button_sensitive_hook, + on_press=on_press_function, + is_loading=self.loading + ) + else: + # No UI here if user not logged in + accept_rules_row, button = Spacer(), Spacer() + + + + content = Column( + Row( + Image(image=from_root(f"src/ezgg_lan_manager/assets/img/games/{self.tournament.game_title.image_name}"), margin_right=1), + Text( + text=self.tournament.name, + style=TextStyle( + fill=self.session.theme.background_color, + font_size=1.2 + ), + margin_top=1, + margin_bottom=1, + align_x=0.5 + ), + margin_right=6, + margin_left=6 + ), + Spacer(min_height=1), + TournamentDetailsInfoRow("Status", tournament_status_to_display_text(self.tournament.status), value_color=tournament_status_color), + TournamentDetailsInfoRow("Startzeit", f"{weekday_to_display_text(self.tournament.start_time.weekday())}, {self.tournament.start_time.strftime('%H:%M')} Uhr"), + TournamentDetailsInfoRow("Format", tournament_format_to_display_texts(self.tournament.format)[0]), + TournamentDetailsInfoRow("Best of", tournament_format_to_display_texts(self.tournament.format)[1]), + PointerEventListener( + content=Rectangle( + content=TournamentDetailsInfoRow( + "Teilnehmer ▴" if self.participant_revealer_open else "Teilnehmer ▾", + f"{len(self.tournament.participants)} / {self.tournament.max_participants}", + value_color=self.session.theme.danger_color if self.tournament.is_full else self.session.theme.background_color, + key_color=self.session.theme.secondary_color + ), + fill=Color.TRANSPARENT, + cursor="pointer" + ), + on_press=self.open_close_participant_revealer + ), + Revealer( + header=None, + content=Text( + "\n".join([u.user_name for u in self.current_tournament_user_list]), # ToDo: Integrate Teams + style=TextStyle(fill=self.session.theme.background_color) + ), + is_open=self.participant_revealer_open, + margin_left=4, + margin_right=4 + ), + tree_button, + Row( + Text( + text="Info", + style=TextStyle( + fill=self.session.theme.background_color, + font_size=1.2 + ), + margin_top=1, + margin_bottom=1, + align_x=0.5 + ) + ), + # FixMe: Use rio.Markdown with correct TextStyle instead to allow basic text formatting from DB-side. + Text(self.tournament.description, margin_left=2, margin_right=2, style=TextStyle(fill=self.session.theme.background_color, font_size=1), overflow="wrap"), + Spacer(min_height=2), + accept_rules_row, + Spacer(min_height=0.5), + Text(self.message, margin_left=2, margin_right=2, style=TextStyle(fill=self.session.theme.success_color if self.is_success else self.session.theme.danger_color, font_size=1), overflow="wrap", justify="center"), + Spacer(min_height=0.5), + button + ) + + return Column( + MainViewContentBox( + Column( + Spacer(min_height=1), + content, + Spacer(min_height=1) + ) + ), + align_y=0 + ) diff --git a/src/ezgg_lan_manager/pages/TournamentRulesPage.py b/src/ezgg_lan_manager/pages/TournamentRulesPage.py new file mode 100644 index 0000000..9be50aa --- /dev/null +++ b/src/ezgg_lan_manager/pages/TournamentRulesPage.py @@ -0,0 +1,52 @@ +from rio import Column, Component, event, TextStyle, Text, Spacer + +from src.ezgg_lan_manager import ConfigurationService +from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox + +RULES: list[str] = [ + "Den Anweisungen der Turnierleitung ist stets Folge zu leisten.", + "Teilnehmer müssen aktiv dafür sorgen, dass Spiele ohne Verzögerungen stattfinden.", + "Unvollständige Teams werden ggf. zum Turnierstart entfernt.", + "Verzögerungen und Ausfälle sind er Turnierleitung sofort zu melden.", + "Jeder Spieler erstellt Screenshots am Rundenende zur Ergebnisdokumentation.", + "Der Verlierer trägt das Ergebnis ein, der Gewinner überprüft es.", + "Bei fehlendem oder falschem Ergebnis, ist sofort die Turnierorganisation zu informieren.", + "Von 02:00–11:00 Uhr besteht keine Spielpflicht", + "Täuschung, Falschangaben sowie Bugusing und Cheaten führen zur sofortigen Disqualifikation." +] + +class TournamentRulesPage(Component): + @event.on_populate + async def on_populate(self) -> None: + await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turnierregeln") + + def build(self) -> Component: + return Column( + MainViewContentBox( + Column( + Text( + text="Turnierregeln", + style=TextStyle( + fill=self.session.theme.background_color, + font_size=1.2 + ), + margin_top=2, + margin_bottom=2, + align_x=0.5 + ), + *[Text( + f"{idx + 1}. {rule}", + style=TextStyle( + fill=self.session.theme.background_color, + font_size=0.9 + ), + margin_bottom=0.8, + margin_left=1, + margin_right=1, + overflow="wrap" + ) for idx, rule in enumerate(RULES)], + Spacer(min_height=1) + ) + ), + Spacer(grow_y=True) + ) diff --git a/src/ezgg_lan_manager/pages/TournamentsPage.py b/src/ezgg_lan_manager/pages/TournamentsPage.py index 41973de..7875305 100644 --- a/src/ezgg_lan_manager/pages/TournamentsPage.py +++ b/src/ezgg_lan_manager/pages/TournamentsPage.py @@ -1,15 +1,50 @@ -from rio import Column, Component, event, TextStyle, Text +from rio import Column, Component, event, TextStyle, Text, Spacer, ProgressCircle -from src.ezgg_lan_manager import ConfigurationService +from src.ezgg_lan_manager import ConfigurationService, TournamentService from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox +from src.ezgg_lan_manager.components.TournamentPageRow import TournamentPageRow +from src.ezgg_lan_manager.types.Tournament import Tournament class TournamentsPage(Component): + tournament_data: list[Tournament] = [] + @event.on_populate async def on_populate(self) -> None: + self.tournament_data = await self.session[TournamentService].get_tournaments() await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turniere") + def tournament_clicked(self, tournament_id: int) -> None: + self.session.navigate_to(f"tournament?id={tournament_id}") + def build(self) -> Component: + tournament_page_rows = [] + for tournament in self.tournament_data: + tournament_page_rows.append( + TournamentPageRow( + tournament.id, + tournament.name, + tournament.game_title.image_name, + len(tournament.participants), + tournament.max_participants, + tournament.status, + self.tournament_clicked + ) + ) + + if len(self.tournament_data) == 0: + content = [Column( + ProgressCircle( + color="secondary", + align_x=0.5, + margin_top=0, + margin_bottom=0 + ), + min_height=10 + )] + else: + content = tournament_page_rows + return Column( MainViewContentBox( Column( @@ -20,18 +55,11 @@ class TournamentsPage(Component): font_size=1.2 ), margin_top=2, - margin_bottom=0, + margin_bottom=2, align_x=0.5 ), - Text( - text="Aktuell ist noch kein Turnierplan hinterlegt.", - style=TextStyle( - fill=self.session.theme.background_color, - font_size=0.9 - ), - margin=1, - overflow="wrap" - ) + *content, + Spacer(min_height=1) ) ), align_y=0 diff --git a/src/ezgg_lan_manager/pages/__init__.py b/src/ezgg_lan_manager/pages/__init__.py index deee520..d20bffc 100644 --- a/src/ezgg_lan_manager/pages/__init__.py +++ b/src/ezgg_lan_manager/pages/__init__.py @@ -20,3 +20,5 @@ from .ManageUsersPage import ManageUsersPage from .ManageCateringPage import ManageCateringPage from .ManageTournamentsPage import ManageTournamentsPage from .OverviewPage import OverviewPage +from .TournamentDetailsPage import TournamentDetailsPage +from .TournamentRulesPage import TournamentRulesPage diff --git a/src/ezgg_lan_manager/services/DatabaseService.py b/src/ezgg_lan_manager/services/DatabaseService.py index 351f58b..ccbbfc1 100644 --- a/src/ezgg_lan_manager/services/DatabaseService.py +++ b/src/ezgg_lan_manager/services/DatabaseService.py @@ -1,6 +1,7 @@ import logging from datetime import date, datetime +from pprint import pprint from typing import Optional from decimal import Decimal @@ -11,8 +12,11 @@ from src.ezgg_lan_manager.types.CateringMenuItem import CateringMenuItem, Cateri from src.ezgg_lan_manager.types.CateringOrder import CateringMenuItemsWithAmount, CateringOrderStatus from src.ezgg_lan_manager.types.ConfigurationTypes import DatabaseConfiguration from src.ezgg_lan_manager.types.News import News +from src.ezgg_lan_manager.types.Participant import Participant from src.ezgg_lan_manager.types.Seat import Seat from src.ezgg_lan_manager.types.Ticket import Ticket +from src.ezgg_lan_manager.types.Tournament import Tournament +from src.ezgg_lan_manager.types.TournamentBase import GameTitle, TournamentFormat, TournamentStatus, ParticipantType from src.ezgg_lan_manager.types.Transaction import Transaction from src.ezgg_lan_manager.types.User import User @@ -81,6 +85,54 @@ class DatabaseService: last_updated_at=data[11] ) + @staticmethod + def _parse_tournament_format(format_as_string: str) -> TournamentFormat: + if format_as_string == "SE_BO_1": + return TournamentFormat.SINGLE_ELIMINATION_BO_1 + elif format_as_string == "SE_BO_3": + return TournamentFormat.SINGLE_ELIMINATION_BO_3 + elif format_as_string == "SE_BO_5": + return TournamentFormat.SINGLE_ELIMINATION_BO_5 + elif format_as_string == "DE_BO_1": + return TournamentFormat.DOUBLE_ELIMINATION_BO_1 + elif format_as_string == "DE_BO_3": + return TournamentFormat.DOUBLE_ELIMINATION_BO_3 + elif format_as_string == "DE_BO_5": + return TournamentFormat.DOUBLE_ELIMINATION_BO_5 + elif format_as_string == "FFA": + return TournamentFormat.FFA + else: + # If this happens, database is FUBAR + raise RuntimeError(f"Unknown TournamentFormat: {format_as_string}") + + @staticmethod + def _parse_tournament_status(status_as_string: str) -> TournamentStatus: + if status_as_string == "CLOSED": + return TournamentStatus.CLOSED + elif status_as_string == "OPEN": + return TournamentStatus.OPEN + elif status_as_string == "COMPLETED": + return TournamentStatus.COMPLETED + elif status_as_string == "CANCELED": + return TournamentStatus.CANCELED + elif status_as_string == "INVITE_ONLY": + return TournamentStatus.INVITE_ONLY + elif status_as_string == "ONGOING": + return TournamentStatus.ONGOING + else: + # If this happens, database is FUBAR + raise RuntimeError(f"Unknown TournamentStatus: {status_as_string}") + + @staticmethod + def _parse_participant_type(participant_type_as_string: str) -> ParticipantType: + if participant_type_as_string == "PLAYER": + return ParticipantType.PLAYER + elif participant_type_as_string == "TEAM": + return ParticipantType.TEAM + else: + # If this happens, database is FUBAR + raise RuntimeError(f"Unknown ParticipantType: {participant_type_as_string}") + async def get_user_by_name(self, user_name: str) -> Optional[User]: async with self._connection_pool.acquire() as conn: async with conn.cursor(aiomysql.Cursor) as cursor: @@ -787,3 +839,131 @@ class DatabaseService: return await self.remove_profile_picture(user_id) except Exception as e: logger.warning(f"Error deleting user profile picture: {e}") + + async def get_all_tournaments(self) -> list[Tournament]: + logger.info(f"Polling Tournaments...") + async with self._connection_pool.acquire() as conn: + async with conn.cursor(aiomysql.DictCursor) as cursor: + try: + await cursor.execute( + """ + SELECT + /* ======================= + Tournament + ======================= */ + t.id AS tournament_id, + t.name AS tournament_name, + t.description AS tournament_description, + t.format AS tournament_format, + t.start_time, + t.status AS tournament_status, + t.max_participants, + t.created_at, + + /* ======================= + Game Title + ======================= */ + gt.id AS game_title_id, + gt.name AS game_title_name, + gt.description AS game_title_description, + gt.web_link AS game_title_web_link, + gt.image_name AS game_title_image_name, + + /* ======================= + Tournament Participant + ======================= */ + tp.id AS participant_id, + tp.user_id, + tp.participant_type, + tp.seed, + tp.joined_at + + FROM tournaments t + JOIN game_titles gt + ON gt.id = t.game_title_id + + LEFT JOIN tournament_participants tp + ON tp.tournament_id = t.id + + ORDER BY + t.id, + tp.seed IS NULL, + tp.seed; + + """ + ) + await conn.commit() + except aiomysql.InterfaceError: + pool_init_result = await self.init_db_pool() + if not pool_init_result: + raise NoDatabaseConnectionError + return await self.get_all_tournaments() + except Exception as e: + logger.warning(f"Error getting tournaments: {e}") + + tournaments = [] + current_tournament: Optional[Tournament] = None + for row in await cursor.fetchall(): + if current_tournament is None or current_tournament.id != row["tournament_id"]: + if current_tournament is not None: + tournaments.append(current_tournament) + current_tournament = Tournament( + id_=row["tournament_id"], + name=row["tournament_name"], + description=row["tournament_description"], + game_title=GameTitle( + name=row["game_title_name"], + description=row["game_title_description"], + web_link=row["game_title_web_link"], + image_name=row["game_title_image_name"] + ), + format_=self._parse_tournament_format(row["tournament_format"]), + start_time=row["start_time"], + status=self._parse_tournament_status(row["tournament_status"]), + participants=[Participant(id_=row["user_id"], participant_type=self._parse_participant_type(row["participant_type"]))] if row["user_id"] is not None else [], + matches=None, # ToDo: Implement + rounds=[], # ToDo: Implement + max_participants=row["max_participants"] + ) + else: + current_tournament.add_participant( + Participant(id_=row["user_id"], participant_type=self._parse_participant_type(row["participant_type"])) + ) + else: + tournaments.append(current_tournament) + + return tournaments + + async def add_participant_to_tournament(self, participant: Participant, tournament: Tournament) -> None: + async with self._connection_pool.acquire() as conn: + async with conn.cursor(aiomysql.Cursor) as cursor: + try: + await cursor.execute( + "INSERT INTO tournament_participants (tournament_id, user_id, participant_type) VALUES (%s, %s, %s);", + (tournament.id, participant.id, participant.participant_type.name) + ) + await conn.commit() + except aiomysql.InterfaceError: + pool_init_result = await self.init_db_pool() + if not pool_init_result: + raise NoDatabaseConnectionError + return await self.add_participant_to_tournament(participant, tournament) + except Exception as e: + logger.warning(f"Error adding participant to tournament: {e}") + + async def remove_participant_from_tournament(self, participant: Participant, tournament: Tournament) -> None: + async with self._connection_pool.acquire() as conn: + async with conn.cursor(aiomysql.Cursor) as cursor: + try: + await cursor.execute( + "DELETE FROM tournament_participants WHERE (tournament_id = %s AND user_id = %s);", + (tournament.id, participant.id) + ) + await conn.commit() + except aiomysql.InterfaceError: + pool_init_result = await self.init_db_pool() + if not pool_init_result: + raise NoDatabaseConnectionError + return await self.remove_participant_from_tournament(participant, tournament) + except Exception as e: + logger.warning(f"Error removing participant from tournament: {e}") diff --git a/src/ezgg_lan_manager/services/TournamentService.py b/src/ezgg_lan_manager/services/TournamentService.py new file mode 100644 index 0000000..1a3f08b --- /dev/null +++ b/src/ezgg_lan_manager/services/TournamentService.py @@ -0,0 +1,72 @@ +from typing import Optional + +from src.ezgg_lan_manager.services.DatabaseService import DatabaseService +from src.ezgg_lan_manager.services.UserService import UserService +from src.ezgg_lan_manager.types.Participant import Participant +from src.ezgg_lan_manager.types.Tournament import Tournament +from src.ezgg_lan_manager.types.TournamentBase import ParticipantType, TournamentError +from src.ezgg_lan_manager.types.User import User + + +class TournamentService: + def __init__(self, db_service: DatabaseService, user_service: UserService) -> None: + self._db_service = db_service + self._user_service = user_service + + # Crude cache mechanism. If performance suffers, maybe implement a queue with Single-Owner-Pattern or a Lock + self._cache: dict[int, Tournament] = {} + self._cache_dirty: bool = True # Setting this flag invokes cache update on next read + + async def _update_cache(self) -> None: + tournaments = await self._db_service.get_all_tournaments() + for tournament in tournaments: + self._cache[tournament.id] = tournament + self._cache_dirty = False + + async def register_user_for_tournament(self, user_id: int, tournament_id: int) -> None: + tournament = await self.get_tournament_by_id(tournament_id) + if not tournament: + raise TournamentError(f"No tournament with ID {tournament_id} was found") + participant = Participant(id_=user_id, participant_type=ParticipantType.PLAYER) + tournament.add_participant(participant) + await self._db_service.add_participant_to_tournament(participant, tournament) + self._cache_dirty = True + + async def unregister_user_from_tournament(self, user_id: int, tournament_id: int) -> None: + tournament = await self.get_tournament_by_id(tournament_id) + if not tournament: + raise TournamentError(f"No tournament with ID {tournament_id} was found") + participant = next(filter(lambda p: p.id == user_id, tournament.participants), None) + if participant is not None: + tournament.remove_participant(participant) + await self._db_service.remove_participant_from_tournament(participant, tournament) + self._cache_dirty = True + + async def get_tournaments(self) -> list[Tournament]: + if self._cache_dirty: + await self._update_cache() + return list(self._cache.values()) + + async def get_tournament_by_id(self, tournament_id: int) -> Optional[Tournament]: + if self._cache_dirty: + await self._update_cache() + return self._cache.get(tournament_id, None) + + async def get_users_from_participant_list(self, participants: list[Participant]) -> list[User]: + all_users = await self._db_service.get_all_users() + participant_ids = [p.id for p in participants] + return list(filter(lambda u: u.user_id in participant_ids, all_users)) + + async def start_tournament(self, tournament_id: int): + tournament = await self.get_tournament_by_id(tournament_id) + if tournament: + tournament.start() + # ToDo: Write matches/round to database + self._cache_dirty = True + + async def cancel_tournament(self, tournament_id: int): + tournament = await self.get_tournament_by_id(tournament_id) + if tournament: + tournament.cancel() + # ToDo: Update to database + self._cache_dirty = True diff --git a/src/ezgg_lan_manager/types/DateUtil.py b/src/ezgg_lan_manager/types/DateUtil.py new file mode 100644 index 0000000..9891934 --- /dev/null +++ b/src/ezgg_lan_manager/types/DateUtil.py @@ -0,0 +1,15 @@ +def weekday_to_display_text(weekday: int) -> str: + if weekday == 0: + return "Montag" + elif weekday == 1: + return "Dienstag" + elif weekday == 2: + return "Mittwoch" + elif weekday == 3: + return "Donnerstag" + elif weekday == 4: + return "Freitag" + elif weekday == 5: + return "Samstag" + else: + return "Sonntag" diff --git a/src/ezgg_lan_manager/types/Match.py b/src/ezgg_lan_manager/types/Match.py index 409d00e..da3a493 100644 --- a/src/ezgg_lan_manager/types/Match.py +++ b/src/ezgg_lan_manager/types/Match.py @@ -8,9 +8,9 @@ from src.ezgg_lan_manager.types.TournamentBase import MatchStatus, TournamentErr class MatchParticipant: - def __init__(self, participant_id: int, slot_number: Literal[1, 2]) -> None: + def __init__(self, participant_id: int, slot_number: Literal[-1, 1, 2]) -> None: self._participant_id = participant_id - if slot_number not in (1, 2): + if slot_number not in (-1, 1, 2): raise TournamentError("Invalid slot number") self.slot_number = slot_number @@ -99,7 +99,9 @@ class Match: def next_match_lose_id(self) -> Optional[int]: return self._next_match_lose_id - def assign_participant(self, participant_id: int, slot: Literal[1, 2]) -> None: + def assign_participant(self, participant_id: int, slot: Literal[-1, 1, 2]) -> None: + if slot == -1: + raise TournamentError("Normal match does not support slot -1") new_participant = MatchParticipant(participant_id, slot) if len(self._participants) < 2 and not any(p.participant_id == participant_id for p in self._participants): if len(self._participants) == 1 and self._participants[-1].slot_number == new_participant.slot_number: @@ -131,3 +133,28 @@ class Match: ) return (f"") + +class FFAMatch(Match): + """ + Specialized match that supports infinite participants + """ + def __init__(self, match_id: int, tournament_id: int, round_number: int, bracket: Bracket, best_of: int, status: MatchStatus, + next_match_win_lose_ids: tuple[Optional[int], Optional[int]], match_has_ended_callback: Callable) -> None: + super().__init__(match_id, tournament_id, round_number, bracket, best_of, status, next_match_win_lose_ids, match_has_ended_callback) + + @property + def is_fully_seeded(self) -> bool: + return len(self._participants) > 1 + + def assign_participant(self, participant_id: int, slot: Literal[-1, 1, 2]) -> None: + if slot != -1: + raise TournamentError("FFAMatch does not support slot 1 and 2") + new_participant = MatchParticipant(participant_id, slot) + self._participants.append(new_participant) + + def __repr__(self) -> str: + participants = ", ".join( + f"{p.participant_id}" for p in self._participants + ) + return (f"") diff --git a/src/ezgg_lan_manager/types/Participant.py b/src/ezgg_lan_manager/types/Participant.py index 4ac1bc1..f905e44 100644 --- a/src/ezgg_lan_manager/types/Participant.py +++ b/src/ezgg_lan_manager/types/Participant.py @@ -2,10 +2,9 @@ from src.ezgg_lan_manager.types.TournamentBase import ParticipantType class Participant: - def __init__(self, id_: int, display_name: str, participant_type: ParticipantType) -> None: + def __init__(self, id_: int, participant_type: ParticipantType) -> None: self._id = id_ self._participant_type = participant_type - self._display_name = display_name @property def id(self) -> int: @@ -14,7 +13,3 @@ class Participant: @property def participant_type(self) -> ParticipantType: return self._participant_type - - @property - def display_name(self) -> str: - return self._display_name diff --git a/src/ezgg_lan_manager/types/Tournament.py b/src/ezgg_lan_manager/types/Tournament.py index f83ebe3..ea6ead1 100644 --- a/src/ezgg_lan_manager/types/Tournament.py +++ b/src/ezgg_lan_manager/types/Tournament.py @@ -3,7 +3,7 @@ from datetime import datetime from typing import Optional from math import ceil, log2 -from src.ezgg_lan_manager.types.Match import Match +from src.ezgg_lan_manager.types.Match import Match, FFAMatch from src.ezgg_lan_manager.types.Participant import Participant from src.ezgg_lan_manager.types.TournamentBase import GameTitle, TournamentFormat, TournamentStatus, TournamentError, Bracket, MatchStatus @@ -12,15 +12,18 @@ class Tournament: def __init__(self, id_: int, name: str, + description: str, game_title: GameTitle, format_: TournamentFormat, start_time: datetime, status: TournamentStatus, participants: list[Participant], matches: Optional[tuple[Match]], - rounds: list[list[Match]]) -> None: + rounds: list[list[Match]], + max_participants: int) -> None: self._id = id_ self._name = name + self._description = description self._game_title = game_title self._format = format_ self._start_time = start_time @@ -28,6 +31,7 @@ class Tournament: self._participants = participants self._matches = matches self._rounds = rounds + self._max_participants = max_participants @property def id(self) -> int: @@ -69,11 +73,31 @@ class Tournament: def matches(self) -> list[Match]: return self._matches if self._matches else [] + @property + def max_participants(self) -> int: + return self._max_participants + + @property + def description(self) -> str: + return self._description + + @property + def is_full(self) -> bool: + return len(self._participants) >= self._max_participants + def add_participant(self, participant: Participant) -> None: if participant.id in (p.id for p in self._participants): raise TournamentError(f"Participant with ID {participant.id} already registered for tournament") self._participants.append(participant) + def remove_participant(self, participant: Participant) -> None: + if participant.id not in (p.id for p in self._participants): + raise TournamentError(f"Participant with ID {participant.id} not registered for tournament") + # ToDo: Check if tournament already started => correctly resolve matches with now missing participant + self._participants.remove(participant) + + def cancel(self): + self.status = TournamentStatus.CANCELED def match_has_ended_callback(self, match: Match) -> None: if self._matches is None: @@ -108,10 +132,12 @@ class Tournament: bracket = "SINGLE" elif fmt.name.startswith("DOUBLE_ELIMINATION"): bracket = "DOUBLE" + elif fmt.name.startswith("FFA"): + bracket = "FINAL" else: raise TournamentError(f"Unsupported tournament format: {fmt}") - if fmt.name.endswith("_BO_1"): + if fmt.name.endswith("_BO_1") or fmt.name.endswith("FFA"): bo = 1 elif fmt.name.endswith("_BO_3"): bo = 3 @@ -129,7 +155,28 @@ class Tournament: num_participants = len(self.participants) match_id_counter = 1 - if bracket_type == "SINGLE": + if bracket_type == "FINAL": + rounds: list[list[Match]] = [] + round_matches = [] + match = FFAMatch( + match_id=match_id_counter, + tournament_id=self._id, + round_number=1, + bracket=Bracket.FINAL, + best_of=best_of, + status=MatchStatus.WAITING, + next_match_win_lose_ids=(None, None), + match_has_ended_callback=self.match_has_ended_callback + ) + + for participant in self.participants: + match.assign_participant(participant.id, -1) + + round_matches.append(match) + rounds.append(round_matches) + self._matches = [match] + + elif bracket_type == "SINGLE": # --- single-elimination as before --- num_rounds = ceil(log2(num_participants)) rounds: list[list[Match]] = [] @@ -304,16 +351,18 @@ class Tournament: match.check_completion() -def generate_new_tournament(name: str, game_title: GameTitle, format_: TournamentFormat, start_time: datetime, initial_status: TournamentStatus = TournamentStatus.CLOSED) -> Tournament: +def generate_new_tournament(name: str, description: str, game_title: GameTitle, format_: TournamentFormat, start_time: datetime, max_participants: int, initial_status: TournamentStatus = TournamentStatus.CLOSED) -> Tournament: id_ = uuid.uuid4().int return Tournament( id_, name, + description, game_title, format_, start_time, initial_status, list(), None, - list() + list(), + max_participants ) diff --git a/src/ezgg_lan_manager/types/TournamentBase.py b/src/ezgg_lan_manager/types/TournamentBase.py index 5b79e23..3e9c487 100644 --- a/src/ezgg_lan_manager/types/TournamentBase.py +++ b/src/ezgg_lan_manager/types/TournamentBase.py @@ -7,7 +7,7 @@ class GameTitle: name: str description: str web_link: str - + image_name: str # Name of the image in assets/img/games class TournamentFormat(Enum): SINGLE_ELIMINATION_BO_1 = 1 @@ -16,6 +16,26 @@ class TournamentFormat(Enum): DOUBLE_ELIMINATION_BO_1 = 4 DOUBLE_ELIMINATION_BO_3 = 5 DOUBLE_ELIMINATION_BO_5 = 6 + FFA = 7 + +def tournament_format_to_display_texts(tournament_format: TournamentFormat) -> tuple[str, str]: + """ Returns tuple where idx 0 is SE/DE/FFA string and idx 1 is match count """ + if tournament_format == TournamentFormat.SINGLE_ELIMINATION_BO_1: + return "Single Elimination", "1" + elif tournament_format == TournamentFormat.SINGLE_ELIMINATION_BO_3: + return "Single Elimination", "3" + elif tournament_format == TournamentFormat.SINGLE_ELIMINATION_BO_5: + return "Single Elimination", "5" + elif tournament_format == TournamentFormat.DOUBLE_ELIMINATION_BO_1: + return "Double Elimination", "1" + elif tournament_format == TournamentFormat.DOUBLE_ELIMINATION_BO_3: + return "Double Elimination", "3" + elif tournament_format == TournamentFormat.DOUBLE_ELIMINATION_BO_5: + return "Double Elimination", "5" + elif tournament_format == TournamentFormat.FFA: + return "Free for All", "1" + else: + raise RuntimeError(f"Unknown tournament status: {str(tournament_format)}") class TournamentStatus(Enum): @@ -26,6 +46,22 @@ class TournamentStatus(Enum): INVITE_ONLY = 5 # For Show-matches ONGOING = 6 +def tournament_status_to_display_text(tournament_status: TournamentStatus) -> str: + if tournament_status == TournamentStatus.OPEN: + return "Offen" + elif tournament_status == TournamentStatus.CLOSED: + return "Geschlossen" + elif tournament_status == TournamentStatus.ONGOING: + return "Läuft" + elif tournament_status == TournamentStatus.COMPLETED: + return "Abgeschlossen" + elif tournament_status == TournamentStatus.CANCELED: + return "Abgesagt" + elif tournament_status == TournamentStatus.INVITE_ONLY: + return "Invite-only" + else: + raise RuntimeError(f"Unknown tournament status: {str(tournament_status)}") + class TournamentError(Exception): def __init__(self, message: str) -> None: diff --git a/testing/unittests/TournamentDomainTests.py b/testing/unittests/TournamentDomainTests.py index bf9518a..7e2b12f 100644 --- a/testing/unittests/TournamentDomainTests.py +++ b/testing/unittests/TournamentDomainTests.py @@ -9,29 +9,30 @@ class TournamentDomainTests(unittest.TestCase): def setUp(self): # Generic Tournament config self.name = "Tetris 1vs1" - self.game_title = GameTitle("Tetris99", "Some Description", "https://de.wikipedia.org/wiki/Tetris_99") + self.description = "Just play Tetris, yo" + self.game_title = GameTitle("Tetris99", "Some Description", "https://de.wikipedia.org/wiki/Tetris_99", "tetris.png") self.format_ = TournamentFormat.SINGLE_ELIMINATION_BO_3 self.start_time = datetime(year=2100, month=6, day=23, hour=16, minute=30, second=0) self.initial_status = TournamentStatus.CLOSED # Generic Participants - self.participant_a = Participant(1, "CoolUserName", ParticipantType.PLAYER) - self.participant_b = Participant(2, "CrazyUserName", ParticipantType.PLAYER) - self.participant_c = Participant(3, "FunnyUserName", ParticipantType.PLAYER) + self.participant_a = Participant(1, ParticipantType.PLAYER) + self.participant_b = Participant(2, ParticipantType.PLAYER) + self.participant_c = Participant(3, ParticipantType.PLAYER) def test_tournament_without_participants_can_not_be_started(self) -> None: - tournament_under_test = generate_new_tournament(self.name, self.game_title, self.format_, self.start_time, self.initial_status) + tournament_under_test = generate_new_tournament(self.name, self.description, self.game_title, self.format_, self.start_time, 32, self.initial_status) with self.assertRaises(TournamentError): tournament_under_test.start() def test_adding_the_same_participant_twice_leads_to_exception(self) -> None: - tournament_under_test = generate_new_tournament(self.name, self.game_title, self.format_, self.start_time, self.initial_status) + tournament_under_test = generate_new_tournament(self.name, self.description, self.game_title, self.format_, self.start_time, 32, self.initial_status) tournament_under_test.add_participant(self.participant_a) with self.assertRaises(TournamentError): tournament_under_test.add_participant(self.participant_a) def test_single_elimination_bo3_tournament_gets_generated_correctly(self) -> None: - tournament_under_test = generate_new_tournament(self.name, self.game_title, self.format_, self.start_time, self.initial_status) + tournament_under_test = generate_new_tournament(self.name, self.description, self.game_title, self.format_, self.start_time, 32, self.initial_status) tournament_under_test.add_participant(self.participant_a) tournament_under_test.add_participant(self.participant_b) @@ -63,4 +64,19 @@ class TournamentDomainTests(unittest.TestCase): self.assertEqual(sm.status, MatchStatus.WAITING) self.assertEqual(sm.participants[0].participant_id, self.participant_c.id) self.assertEqual(sm.participants[0].slot_number, 1) - self.assertIsNone(sm.winner) \ No newline at end of file + self.assertIsNone(sm.winner) + + def test_ffa_tournament_with_15_participants_gets_generated_correctly(self) -> None: + tournament_under_test = generate_new_tournament("Among Us", "It's Among Us", GameTitle("Among Us", "", "", ""), TournamentFormat.FFA, self.start_time, 32, TournamentStatus.OPEN) + + for i in range(1, 16): + tournament_under_test.add_participant(Participant(i, ParticipantType.PLAYER)) + tournament_under_test.start() + + # Assert Tournament was switched to ONGOING + self.assertEqual(TournamentStatus.ONGOING, tournament_under_test.status) + + matches_in_tournament = sorted(tournament_under_test.matches, key=lambda m: m.match_id) + + self.assertEqual(1, len(matches_in_tournament)) + self.assertEqual(15, len(matches_in_tournament[0].participants)) From 2f4c3a15b749e57a0ac7a039cb597cc7ad4d6e5b Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Wed, 4 Feb 2026 00:03:04 +0100 Subject: [PATCH 3/3] bump version to 0.2.0 --- VERSION | 2 +- src/EzggLanManager.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 6c6aa7c..341cf11 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.0 \ No newline at end of file +0.2.0 \ No newline at end of file diff --git a/src/EzggLanManager.py b/src/EzggLanManager.py index c4d060b..0779eca 100644 --- a/src/EzggLanManager.py +++ b/src/EzggLanManager.py @@ -198,5 +198,5 @@ if __name__ == "__main__": sys.exit(app.run_as_web_server( host="0.0.0.0", - port=8001, + port=8000, ))