From 0b72dd2a186da4ce715539829cf2d401af3c04cb Mon Sep 17 00:00:00 2001 From: robvanvolt Date: Mon, 20 Jan 2025 19:18:39 +0100 Subject: [PATCH] added rook notes post --- notes/rook.md | 427 ++++++++++++++++++++++++++++++++++ public/images/blog/rook-1.png | Bin 0 -> 50525 bytes public/images/blog/rook-2.png | Bin 0 -> 32833 bytes public/images/blog/rook-3.png | Bin 0 -> 50537 bytes 4 files changed, 427 insertions(+) create mode 100644 notes/rook.md create mode 100644 public/images/blog/rook-1.png create mode 100644 public/images/blog/rook-2.png create mode 100644 public/images/blog/rook-3.png diff --git a/notes/rook.md b/notes/rook.md new file mode 100644 index 00000000..043765a7 --- /dev/null +++ b/notes/rook.md @@ -0,0 +1,427 @@ +--- +title: "ROOK: Reasoning Over Organized Knowledge" +author: "Jonathan Rahn, Jenia Jitsev & Qi Sun" +date: "January 20 2025" +previewImg: "/images/blog/laion-blue.png" +--- + +The field of artificial intelligence has long used strategic reasoning tasks as benchmarks for measuring and advancing AI capabilities. Chess, with its intricate rules and vast decision space, stands out as a particularly challenging domain. The game's complexity stems from its branching factor—the number of possible moves at each turn — which averages around 35, creating a search space that quickly becomes intractable for brute-force approaches. + +Today, we're excited to introduce ROOK (Reasoning Over Organized Knowledge), a suite of innovative language models that push the boundaries of strategic reasoning in chess. Our approach diverges from traditional chess engines that rely heavily on search algorithms. Instead, we explore the potential of language models to capture chess knowledge and reasoning processes in a more human-like manner. + +Our project comprises three chess-playing transformer models: + +1. ROOK-CLF +2. ROOK-LM +3. RookWorld-LM + +| | Experts | Step \#1 | Step \#2 | Step \#3 | +| :---- | :---: | :---: | :---: | :---: | +| **Policy** | Stockfish 16.1 | ROOK-CLF | ROOK-LM | RookWorld-LM | +| **Environment** | python-chess | python-chess | python-chess | | + +**Figure 1**: Overview + +In this blog post, we'll introduce each of these models, explore their capabilities, methodologies, and implications for AI research. For those interested in the technical details and implementation, we encourage you to take a look at our public GitHub repositories. + +## 2\. ROOK-CLF: Replicating State-of-the-Art Chess Policy + +Our journey began with ROOK-CLF, an experiment aimed at reproducing a key result from the Google DeepMind (GDM) paper "Grandmaster-Level Chess Without Search" ([Ruoss et al., 2024](https://arxiv.org/abs/2402.04494)). This paper set a new state-of-the-art for chess policies without search, and replicating its results serves as an important validation of their findings and our own methodologies. They published parts of their training code (in JAX) and their datasets ([link](https://github.com/google-deepmind/searchless_chess)) as ChessBench. + +We focused on a small ablation study from the paper, training a 9 million parameter model ROOK-CLF-9M based on the LLaMA architecture with a classification head. Mirroring the approach detailed in section B.5 and Figure A5 of the paper, key aspects of our implementation include: + +* A tokenizer with a vocabulary of 32 characters +* A fixed context length of 78 tokens +* An output space of 1968 classes, representing all possible chess moves in Universal Chess Interface (UCI) notation + +We trained on the same 40 million data samples used in the GDM paper, employing a behavior cloning setup. Our results were encouraging, with ROOK-CLF-9M showing: + +* 49% accuracy in predicting correct actions from the GDM dataset after 195,000 training steps (compared to approximately 55% reported in Figure A6 of the GDM paper) +* 57% accuracy on the [BIG-bench Checkmate-in-One](https://github.com/google/BIG-bench/tree/main/bigbench/benchmark_tasks/checkmate_in_one) benchmark (after converting the positions from Standard Algebraic Notation to Forsyth–Edwards Notation). + +These results, while not quite matching those reported in the original paper, demonstrate the replicability of the findings and provide a solid foundation for our subsequent experiments. + +## 3\. ROOK-LM: Incorporating Chain-of-Thought Reasoning + +Building on the success of ROOK-CLF, we next developed ROOK-LM, inspired by recent work on pre-training language models on Chain-of-Thought data for reasoning ([Ye et al., 2024](https://arxiv.org/abs/2407.20311)). This transition marked a shift from a pure classification approach to a more flexible language modeling paradigm, allowing us to explore the generation of reasoning traces — intermediate step-by-step thought processes that lead to a final decision. + +To facilitate this, we created a novel dataset rook-40m of up to 40 million chess positions in Forsyth–Edwards Notation (FEN), a standard method for describing chess positions. Each position was extracted from chess games played on Lichess in 2022, by players with ELO over 2000 and annotated with: + +* The top five candidate moves +* The evaluation score for each candidate move +* The best move + +These annotations were generated using Stockfish 16.1, one of the strongest chess engines available, running on the [Tsubame 4.0 Supercomputer](https://www.hpcwire.com/off-the-wire/tokyo-techs-tsubame4-0-supercomputer-now-operational/) at Tokyo Institute of Technology. + +Here's an example of our data format: + +| Example Data | P: | 6k1/7p/4P1q1/1pb1Q2p/2p1b3/2P4P/PP4P1/R6K w \- \- 9 38 | M: | e5g5 a1g1 e5b8 e5h2 e5e4 | E: | \-999.97 \-2.97 \-1.63 \-6.59 \-5.95 | B: | e5b8 | +| :---- | ----- | :---- | ----- | :---- | :---- | :---- | :---- | ----- | +| Field Explanation | Prefix | State ([FEN](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)) \+ padding | Delimiter | Top 5 Moves, shuffled \+ padding | Delimiter | Top 5 Moves Eval \+ padding | Delimiter | Best Move | +| Inference | Prompt | | Generated Chain-of-Thought Tokens | | | | | Action | + +**Figure 2**: rook-40m data representation. + +This rich dataset allowed us to train ROOK-LM-124M \- a 124 million parameter GPT-2 model for autoregressive text generation using the [karpathy/LLM.c](https://github.com/karpathy/llm.c) library, which leverages the original GPT2 tokenizer. We obtain 6 billion tokens from the whole rook-40m dataset. + +Compared to ROOK-CLF-9M, ROOK-LM-124M increases model scale, adds more metadata for the moves in the chess parties using external data generator (Stockfish 16.1), and changes learning loss type: + +* Over 13 times more parameters (124M vs. 9M) +* A more information-rich dataset (including top 5 moves and their evaluations, see also the discussion of Predictor-targets in sections 3.4 and B.5 of Ruoss et al.) +* A shift from purely supervised classification loss based on move class labels to self-supervised next token prediction with autoregressive modeling + +Due to more generic loss nature compared to narrow supervised classification, we observe ROOK-LM-124M strongly underperforming ROOK-CLF-9M on benchmarks related to best move execution: + +* 22.2% action accuracy on a validation split of the rook-40m dataset +* 24.4% accuracy on the Checkmate-in-One benchmark + +This drop in performance is not unexpected. While ROOK-CLF was optimized solely for best move prediction via supervised classification and can only solve this narrow task, ROOK-LM learns to predict and generate all aspects of our data, including the reasoning process behind move execution. Further, the scales of our experiments are still very small.The advantage of specialized models over generically pre-trained ones is often observed at smaller scales on which we operated in our experiments, where generic pre-training procedure, being more flexible and scalable, results usually in more powerful models also for specialized tasks when further increasing scales, and the diversity of the pretraining data (eg incorporating other board games apart from chess). Testing this is the subject of our future work. + +## 4\. RookWorld-LM: Unifying Policy and World Model + +Our final model, RookWorld-LM, represents a further step towards a model capable of representing full game state and reasoning about it. Inspired by recent research on using language models as world models ([Li et al., 2023](https://openreview.net/forum?id=DeG07_TcZvT), [Wang et al., 2024](https://arxiv.org/abs/2406.06485)), we recognized that a truly comprehensive chess AI system should not only decide on moves but also understand the consequences of those moves — effectively modeling the entire game environment. + +We began by creating a new dataset arbiter-6m (inspired by the interface design of [Gymnasium](https://github.com/Farama-Foundation/Gymnasium)) and trained a separate GPT-2 model to act as an environment simulator (dubbed “Arbiter”). Given a chess position (state) and a move (action), this model generates: + +* The resulting position (observation) +* A score-signal for reinforcement learning (reward) +* Whether the game ended and if the move was legal (termination, truncation) + +| Example Data | 5R2/6R1/8/3P4/p7/1b2R2P/2p3P1/6K1 b \- \- 0 58 | b3d5 | e1e3 a2b3 f7f2 b5b4 g5g7 b4c3 f2f8 c3c2 d4d5 b3d5 | 5R2/6R1/8/3b4/p7/4R2P/2p3P1/6K1 w \- \- 0 59 | 0.001 | 0 | 0 | +| :---- | ----- | :---- | :---- | ----- | :---- | :---- | :---- | +| Field Explanation | Last State ([FEN](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)) | Action | Action History (maxlen 10\) for [repetitions](https://en.wikipedia.org/wiki/Threefold_repetition) | Observation (new State) | Reward (-1 loss or illegal, 0.5 draw, 1 win, 0.001 valid) | Termination (bool, True if game ends by [WLD](https://en.wikipedia.org/wiki/Chess_scoring)) | Truncation (bool, True if game ends by illegal action) | +| Inference | Prompt | | | Generated Environment Update | | | | + +**Figure 3**: arbiter-6m chess environment data representation. All fields concatenated into a string, delimited by “+”. + +| Source Datasets & Splits | Combined Dataset | Combined Dataset Splits | +| :---: | :---: | :---: | +| rook-40m Valid (10k Samples) | \- | \- | +| rook-40m Train (40m Samples) | rookworld-46m | rookworld-46m Train (46m Samples) | +| arbiter-6m Train (6m Samples) | | rookworld-46m Valid (15k Samples) | +| arbiter-6m Valid (10k Samples) | \- | \- | + +**Table 1:** Dataset composition + +This environment model achieved promising results: + +* 92% accuracy in generating correct observations on the validation set of arbiter-6m +* 99.8% normalized Levenshtein similarity on generated observations on the validation set of arbiter-6m + +Encouraged by these results, we then trained a unified GPT-2 model using multi-task learning. This model, which we call RookWorld-LM, can perform both the policy task (deciding on moves) and the world-modeling task (simulating game outcomes) based on a prompt prefix. Interleaving the rook-40m and arbiter-6m datasets to rookworld-46m, we obtained 6.9 billion tokens for training RookWorld-LM. + +![Figure 4](/images/blog/rook-1.png) +**Figure 4**: RookWorld-LM Self-Play Loop + +The results of this unified model significantly improved upon the results of the separated models: + +* 26.2% action accuracy on a validation split of the rook-40m dataset +* 32.1% accuracy on the Checkmate-in-One benchmark +* 99.9% accuracy on generated observations on the arbiter-6m validation set + +Notably, RookWorld-LM's performance on the Checkmate-in-One benchmark surpasses that of ChessGPT-Base ([Feng et al., 2023](https://arxiv.org/pdf/2306.09200)), a fine-tune of the Red Pajama 3b language model on a wide variety of chess-content, which achieved 26.5% accuracy. + +RookWorld-LM represents, to our knowledge, one of the strongest chess policies without search implemented as an autoregressive decoder-transformer model to date. Its ability to self-play extended sequences of legal chess moves, combining policy decisions with environment simulation, opens up exciting new possibilities in AI research. You can try it yourself in this [Colab Notebook](https://colab.research.google.com/drive/1YDzcGWotOYNaIBc6iVLcCCK3O-16W8_M) and this [Hugging Face Space](https://huggingface.co/spaces/jrahn/RookWorld). + +## 5\. Implications and Future Directions + +The ROOK project has several significant implications for AI research: + +1. **Strategic Reasoning**: Our models confirm previous evidence ([Li et al., 2023](https://openreview.net/forum?id=DeG07_TcZvT)) that language models can learn complex strategic reasoning tasks without explicit coding of domain rules. This suggests potential applications far beyond chess, in areas requiring sophisticated decision-making and planning. +2. **World Modeling**: RookWorld-LM's success in accurately simulating the chess environment points to the potential of language models in modeling complex, rule-based systems. This could lead to AI systems capable of reasoning about hypothetical scenarios and even judging the validity of their own outputs. +3. **Unified Architectures**: The performance improvements seen in RookWorld-LM highlight the benefits of multi-task learning in creating versatile, multi-purpose AI systems. This approach could be extended to other domains, potentially leading to more general and capable AI systems. + +As we release our research, including code, data, and evaluations, **we invite collaboration from the community**. Some promising directions for future research include: + +* **Scaling**: Exploring the limits of language models for chess policies without search by scaling up model parameters, dataset size, and training duration. RookWorld-LM was trained on only 2x RTX 4090 GPUs and every increase in compute translated into improvements on benchmark performance (see Table 1). This could involve modifying the vocabulary of the GPT2-tokenizer to more efficiently capture chess-specific patterns. +* **Self-Improvement**: Investigating whether RookWorld-LM can improve its play through fine-tuning on filtered self-play games, keeping only the moves from winning games. +* **Multi-Task Learning**: Extending our multi-task approach to incorporate additional synthetically generated data from other strategic games or reasoning tasks (see [Zhang et al., 2024](https://www.arxiv.org/abs/2410.02536)). +* **Transfer Learning**: Exploring whether the strategic reasoning capabilities learned in the chess domain can transfer to language tasks or other problem-solving domains. + +We're excited about the potential of this work and look forward to seeing how the AI research community builds upon and extends these ideas. The intersection of strategic games, language models, and reasoning systems remains a fertile ground for advancing our understanding of artificial intelligence. + +#### **Contributions:** + +**Jonathan Rahn:** led the project, designed experiments, executed experiments, developed the code bases, small scale dataset generation, analysis of results and writing +**Qi Sun:** co-design experiments and large scale dataset generation +**Jenia Jitsev:** scientific supervision and advising + +# Appendix + +Open-source releases: + +* Code: + * ROOK-CLF code (HF Transformers): [jorahn/rook on GitHub](https://github.com/jorahn/rook) + * ROOK-LM and RookWorld-LM code (LLM.c): [jorahn/RookWorld on GitHub](https://github.com/jorahn/RookWorld) +* Datasets: + * ROOK-40m policy dataset: [lfsm/rook-40m on Hugging Face Datasets](https://huggingface.co/datasets/lfsm/rook-40m) + * Arbiter-6m environment dataset: [jrahn/arbiter\_6m on Hugging Face Datasets](https://huggingface.co/datasets/jrahn/arbiter_6m) +* Trained Models: + * ROOK-CLF-9M trained model: [jrahn/ROOK-CLF-9m on Hugging Face](https://huggingface.co/jrahn/ROOK-CLF-9m) + * ROOK-LM-124M trained model: [jrahn/ROOK-LM-124m on Hugging Face](https://huggingface.co/jrahn/ROOK-LM-124m) + * RookWorld-LM-124M trained model: [jrahn/RookWorld-LM-124M on Hugging Face](https://huggingface.co/jrahn/RookWorld-LM-124M) +* Inference Demos: + * Play RookWorld HF Space: [jrahn/RookWorld on Hugging Face Spaces](https://huggingface.co/spaces/jrahn/RookWorld) + * Inference ROOK-CLF, ROOK-LM, RookWorld-LM Colab: [Colab Notebook](https://colab.research.google.com/drive/1YDzcGWotOYNaIBc6iVLcCCK3O-16W8_M) + +| Model | Dataset (Samples) | Steps (Epochs) | Action Accuracy | Checkmate in One Accuracy | +| :---: | :---: | :---: | :---: | :---: | +| ROOK-CLF (9M) | GDM 40M | 195,000 (5) | 49% | 57% | +| Ruoss et al., 2024 (9M, BC) | GDM 40M | | \~55% | | +| Ruoss er al., 2024 (270M, AV) | GDM 15.3B | | 69.4% | | +| ROOK-LM (124M) | ROOK 20k | 5,000 (2) | 0.6% | 0.0% | +| ROOK-LM (124M) | rook-260k | 18,752 (1) | 3.8% | 4.7% | +| ROOK-LM (124M) | rook-709k | 51,481 (1) | 7.4% | 4.8% | +| ROOK-LM (124M) | rook-709k | 102,962 (2) | 7.8% | 5.5% | +| ROOK-LM (124M) | rook-709k | 154,443 (3) | 8.8% | 7.0% | +| ROOK-LM (124M) | rook-5m | 11,646 (1) | 12.0% | 9.0% | +| ROOK-LM (124M) | rook-5m | 34,932 (3) | 13.4% | 11.5% | +| ROOK-LM (124M) | rook-40m | 278,154 (3) | 22.2% | 24.4% | +| RookWorld-LM (124M) | rookworld-7m | 47,203 (3) | 16.6% | 13.7% | +| **RookWorld-LM (124M)** | **rookworld-46m** | **529,400 (5)** | **26.2%** | **32.1%** | +| Feng et al., 2023 ChessGPT-Base (3B, w/o suffix, MC) | 28.1M documents | | | 13.6% | +| Feng et al., 2023 ChessGPT-Base (3B, w/o suffix, ESM) | 28.1M documents | | | 26.5% | + +**Table 2**: Results overview and dataset scaling + +# V— OUTDATED BELOW THIS LINE —V + +--- + +# ROOK, ArbiterSim, and RookWorld: Advancing Strategic Reasoning in Language Models + +By Jonathan Rahn & Qi Sun + +## Introduction + +In the realm of artificial intelligence, the challenge of strategic reasoning has long been a cornerstone for measuring and advancing AI capabilities. Chess, with its complex rules and vast decision space, has served as an ideal benchmark for testing AI systems. Today, we're excited to introduce a suite of innovative language models that push the boundaries of strategic reasoning and represent the world model of chess. + +Our project comprises four key components: + +1. ROOK (Reasoning Over Organized Knowledge): A chess-playing language model +2. ArbiterSim: A chess environment simulator +3. RookWorld: A unified model for both chess play and environment simulation +4. RookWorld Evol: An experimental self-improving AI system + +| | Experts | Step \#1 | Step \#2 | Step \#3 | Step \#4 | +| :---- | ----- | ----- | ----- | ----- | ----- | +| **Policy** | Stockfish 16.1 | ROOK CLF | Stockfish 16.1 | RookWorld LM | RookWorld Evol LM | +| **Environment** | python-chess | python-chess | ArbiterSim LM | | | + +**Figure 1**: Overview + +Let's dive into each of these components and explore their capabilities and implications for AI research. For more technical and implementation details please consult the public GitHub repo. + +## ROOK: A Language Model that Plays Chess + +ROOK is a decoder transformer model with a classification head trained from scratch to play chess like [Ruoss et al. 2024](https://arxiv.org/pdf/2402.04494). What sets ROOK apart is its training on a synthetic dataset that incorporates chain-of-thought evaluation from [Stockfish 16.1](https://github.com/official-stockfish/Stockfish), a leading chess engine \- improving sample efficiency over standard behavioral cloning. + +| Example Data | P: | 6k1/7p/4P1q1/1pb1Q2p/2p1b3/2P4P/PP4P1/R6K w \- \- 9 38 | M: | e5g5 a1g1 e5b8 e5h2 e5e4 | E: | \-999.97 \-2.97 \-1.63 \-6.59 \-5.95 | B: | e5b8 | +| :---- | ----- | :---- | ----- | :---- | :---- | :---- | :---- | ----- | +| Field Explanation | Prefix | State ([FEN](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)) \+ padding | Delimiter | Top 5 Moves, shuffled \+ padding | Delimiter | Top 5 Moves Eval \+ padding | Delimiter | Best Move | +| Inference | Prompt | | Generated Chain-of-Thought Tokens | | | | | Action | + +**Figure 1**: ROOK data representation. + +### Training and Performance + +We've conducted extensive experiments with ROOK, scaling from small datasets of 20,000 samples up to 40 million samples. The largest datasets were generated on the [Tsubame 4.0 Supercomputer](https://www.hpcwire.com/off-the-wire/tokyo-techs-tsubame4-0-supercomputer-now-operational/) with generous support from Tokyo Institute of Technology. Here are some key findings: + +* With 5 million unique training samples (approximately 770 million tokens), ROOK achieves basic chess-playing capabilities after 3 epochs (2.3bn tokens) of training: + * 11.5% accuracy on the BIG-bench "[Checkmate in One](https://github.com/google/BIG-bench/blob/main/bigbench/benchmark_tasks/checkmate_in_one/README.md)" task + * 13.4% accuracy in predicting the best move + * 39.6% accuracy in predicting the top 5 moves + * An average of 41.4 legal half-moves in self-play, with only 2.4% illegal moves +* Training on the same data without the Chain-of-Thought evaluation tokens, leads to …. + +These results demonstrate ROOK's ability to understand chess positions and generate legal, strategic moves without explicit coding of chess rules. + +### Prior Work and Discussion (WIP) + +* *State-of-the-Art Chess Policies ([Ruoss et al. 2024](https://arxiv.org/pdf/2402.04494)):* + * *Stockfish 16 (0.05s)* + * *Tournament ELO: 2706* + * *AlphaZero (Convolution \+ Residual Architecture):* + * *Tournament ELO with MCTS (400 sims): 2502* + * *Tournament ELO with MCTS (800 sims): \~3500 ([Silver et al. 2017](https://arxiv.org/pdf/1712.01815))* + * *Grandmaster-Level Chess without Search (Decoder Transformer):* + * *14.7% overlap of Test-Set with Training-Set* + * *270M parameter model on 15.3b Action-Value samples (2.67 epochs)* + * *Action Accuracy: 69.4%* + * *Tournament ELO: 2299* + * *Ablation 9M parameter model on 40M samples* + * *Action Accuracy: \~55% (Figure A6)* +* *Chess Policies with LMs (Presser GPT-2, ChessGPT & Checkmate in One, Chess Transformer)* +* *Reasoning in LMs: Physics of LMs & CoT pre-training, [Scratchpads](https://arxiv.org/pdf/2112.00114)* + +## ArbiterSim: Simulating the Chess Environment + +Using a generative GPT2 architecture, trained using the [karpathy/llm.c](https://github.com/karpathy/llm.c) library. ArbiterSim takes us a step further by learning to simulate the chess environment itself. Trained on rollouts from ROOK self-play in an environment based on the [python-chess library](https://github.com/niklasf/python-chess), ArbiterSim can predict the next board state, game outcomes, and legality of moves. + +| Example Data | 5R2/6R1/8/3P4/p7/1b2R2P/2p3P1/6K1 b \- \- 0 58 | b3d5 | e1e3 a2b3 f7f2 b5b4 g5g7 b4c3 f2f8 c3c2 d4d5 b3d5 | 5R2/6R1/8/3b4/p7/4R2P/2p3P1/6K1 w \- \- 0 59 | 0.001 | 0 | 0 | +| :---- | ----- | :---- | :---- | ----- | :---- | :---- | :---- | +| Field Explanation | Last State ([FEN](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)) | Action | Action History (maxlen 10\) for [repetitions](https://en.wikipedia.org/wiki/Threefold_repetition) | Observation (new State) | Reward (-1 loss or illegal, 0.5 draw, 1 win, 0.001 valid) | Termination (bool, True if game ends by [WLD](https://en.wikipedia.org/wiki/Chess_scoring)) | Truncation (bool, True if game ends by illegal action) | +| Inference | Prompt | | | Generated Environment Update | | | | + +**Figure 3**: Arbiter data representation. All fields concatenated into a string, delimited by “+”. + +### Performance Metrics + +After training from scratch on 2 million samples, ArbiterSim achieves sufficient accuracy to function as a game environment: + +* 92.3% accuracy in predicting the exact next state +* 99.76% Normalized Levenshtein Similarity for next state predictions +* 98.93% accuracy in predicting game rewards +* 99.04% and 99.89% accuracy in predicting game termination and truncation, respectively +* Self-play of ROOK in ArbiterSim leads to 80% games terminated and 20% truncated + +![Figure 4](/images/blog/rook-2.png) +**Figure 4**: ROOK \+ ArbiterSim Self-Play Loop + +### Prior Work and Discussion (WIP) + +* *World Models: VAE-RNN, LM, Diffusion as Generator, [DL RL and WM](https://www.sciencedirect.com/science/article/pii/S0893608022001150)* +* *Emergent world Models (Chess, Karvonen), Emergent World Representation (Othello, Li)* +* *World Models with LMs: [Foundation Models for RL](https://arxiv.org/pdf/2302.09419) (pg 53), [Reasoning via Planning](https://arxiv.org/pdf/2305.14992)* +* *Training Policies in World Models: [Dreamer](https://arxiv.org/pdf/1912.01603), [Utility of dreaming](https://journals.sagepub.com/doi/pdf/10.1177/1059712319896489), [Learning to Predict](https://proceedings.neurips.cc/paper_files/paper/2019/file/15cf76466b97264765356fcc56d801d1-Paper.pdf)?* + +## RookWorld: Unifying Policy and Environment + +RookWorld represents a significant leap forward by combining the capabilities of ROOK and ArbiterSim into a single language model. Through use of prompt prefixes, RookWorld can switch tasks between acting as a chess player and simulating the chess environment. + +| Example Data | P: | 6k1/7p/4P1q1/1pb1Q2p/2p1b3/2P4P/PP4P1/R6K w \- \- 9 38 | M: | e5g5 a1g1 e5b8 e5h2 e5e4 | E: | \-999.97 \-2.97 \-1.63 \-6.59 \-5.95 | B: | e5b8 | +| :---- | ----- | :---- | ----- | :---- | :---- | :---- | :---- | ----- | +| Field Explanation | Prefix | State ([FEN](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation)) \+ padding | Delimiter | Top 5 Moves, shuffled \+ padding | Delimiter | Top 5 Moves Eval \+ padding | Delimiter | Best Move | +| Inference | Prompt | | Generated Chain-of-Thought Tokens | | | | | Action | + +**Figure 2**: ROOK data representation. Concatenation of several fields into a string. + +### Comparative Performance + +RookWorld, trained from scratch on 7 million samples (5M from ROOK task, 2M from Arbiter task), outperforms its predecessors in several benchmarks: + +* 13.7% accuracy on the BIG-bench "Checkmate in One" task (vs. 11.5% for ROOK) +* 16.6% accuracy in predicting the best move (vs. 13.4% for ROOK) +* 99.61% accuracy in predicting the exact next state (vs. 92.3% for ArbiterSim) +* RookWorld Policy can play over 50 consecutive legal moves in RookWorld Environment (actions and states supervised with python-chess) + +![Figure 5](/images/blog/rook-3.png) +**Figure 5**: RookWorld Self-Play Loop + +These results demonstrate that the unified model not only matches but exceeds the performance of specialized models in both chess playing and environment simulation tasks. + +### Prior Work and Discussion (WIP) + +* *Multi-Task Learning: Caruana 1997, [Ruder 2017](https://arxiv.org/pdf/1706.05098), [Radford 2019](https://insightcivic.s3.us-east-1.amazonaws.com/language-models.pdf)* +* *Generator & Judge/Reward Model: [LLMs-as-Judge](https://arxiv.org/pdf/2306.05685), [Hibbard 2015](https://cdn.aaai.org/ocs/ws/ws0019/10072-45897-1-PB.pdf)?, [Meta-Rewarding LMs](https://arxiv.org/pdf/2407.19594), contrast with [finetuning Judges](https://arxiv.org/pdf/2310.17631)* +* *Synthetic Training Data: [Textbooks](https://arxiv.org/pdf/2306.11644), [GenAI for Synth Data](https://arxiv.org/pdf/2403.04190)* + +## RookWorld Evol: Towards Self-Improving AI + +Our most ambitious component, RookWorld Evol, is still a work in progress. The goal is to create a system that can improve its own chess-playing ability through self-play within its learned environment. By selecting only the actions of the winning side from self-play rollouts and continuing training, we aim to achieve stepwise policy improvement without further human intervention. + +### Prior Work and Discussion (WIP) + +* [*LLMs can Selfimprove*](https://arxiv.org/pdf/2210.11610)*, [STaR](https://arxiv.org/pdf/2203.14465)* +* [*WizardLM*](https://arxiv.org/pdf/2304.12244) *Evol-Instruct, Orca [AgentInstruct](https://arxiv.org/pdf/2407.03502)* + +## Implications and Future Directions + +The success of ROOK, ArbiterSim, and RookWorld has significant implications for AI research: + +1. **Strategic Reasoning**: These models demonstrate that language models can learn complex strategic reasoning tasks without explicit coding of domain rules. + +2. **World Modeling**: ArbiterSim and RookWorld show that language models can accurately simulate complex environments, opening possibilities for AI systems that can reason about hypothetical scenarios and learn to act as a judge on their own generated outputs. + +3. **Unified Architectures**: RookWorld's success in combining policy and environment modeling shows how to combine multi-task learning into multi-purpose AI systems, exceeding the single-task performance. + +4. **Self-Improvement**: RookWorld Evol, while still in development, points towards the possibility of AI systems that can autonomously improve their capabilities. + +Future work will focus on scaling these models to larger architectures, improving their performance, and exploring applications beyond chess. We're particularly excited about the potential of these techniques in other strategic domains and decision-making systems. + +Since all models presented above are standard GPT-2 architecture without customizing architecture or even tokenization, we’re also looking forward to see, if interleaving this training data into standard language model pre-training has effects on language model benchmarks. + +## Conclusion + +ROOK, ArbiterSim, and RookWorld represent significant steps forward in AI's ability to reason strategically and model complex environments. As we continue to refine these models and develop RookWorld Evol, we're moving closer to AI systems that can engage in sophisticated strategic reasoning across a wide range of domains. + +We invite the AI research community to build upon our work. All code, datasets, and pre-trained models are available in our public repository and on Hugging Face. Together, we can push the boundaries of what's possible in artificial intelligence and strategic reasoning. + +## Benchmark Results + +Policy Evaluations: + +| Model | Dataset (Samples) | Steps (Epochs) | Action Accuracy | [Checkmate in One](https://github.com/google/BIG-bench/tree/main/bigbench/benchmark_tasks/checkmate_in_one) Accuracy | [Lichess Puzzle](https://nicholas.carlini.com/writing/2023/chess-llm.html) Accuracy | Self-play Legal Moves | +| :---: | :---: | :---: | :---: | :---: | :---: | :---: | +| ROOK (124M) | ROOK 20k | 5,000 (2) | 0.6% | 0.0% | | 3.5 (28.3%) | +| ROOK (124M) | ROOK 260k | 18,752 (1) | 3.8% | 4.7% | | 14.2 (7.0%) | +| ROOK (124M) | ROOK 709k | 51,481 (1) | 7.4% | 4.8% | | 17.7 (5.6%) | +| ROOK (124M) | *ROOK 709k (no M)* | 51,481 (1) | 7.2% | 4.9% | | 14.2 (7.0%) | +| ROOK (124M) | *ROOK 709k (no E)* | 51,481 (1) | 7.0% | 4.0% | | 20.0 (5%) | +| ROOK (124M) | *ROOK 709k (no ME)* | 51,481 (1) | 8.2% | 5.8% | | 13.6 (7.4%) | +| ROOK (124M) | ROOK 709k | 102,962 (2) | 7.8% | 5.5% | | 23.6 (4.2%) | +| ROOK (124M) | ROOK 709k | 154,443 (3) | 8.8% | 7.0% | 1.4% | 23.5 (4.3%) | +| ROOK (124M) | ROOK 5M | 11,646 (1) | 12.0% | 9.0% | 2.0% | 28.8 (3.5%) | +| ROOK (124M) | ROOK 5M | 34,932 (3) | 13.4% | 11.5% | 3.9% | 41.4 (2.4%) | +| ROOK (124M) | *ROOK 5M (no ME)* | 34,932 (3) | 14.6% | 14.9% | 5.1% | 30.3 (3.3%) | +| ROOK (124M) | ROOK 40M | 278,154 (3) | 22.2% | 24.4% | 10.1% | 112.1 (0,9%) | +| RookWorld (124M) | RookWorld 7M | 47,203 (3) | 16.6% | 13.7% | 3.5% | 36.3 (2.7%) | +| **RookWorld (124M)** | **RookWorld 46M** | **529,400 (5)** | **26.2%** | **32.1%** | \- | \- | +| ROOK (124M) | *RookWorld 7M (no ME)* | 47,203 (3) | 14.4% | 15.7% | 5.3% | 31.2 (3.2%) | +| RookWorld Evol (124M) | RW 7M \+ 1.3M RW Policy Self-play | 56,031 (3) | 13.2% | 13.89% | 4.3% | 37.9 (2.6%) | +| [Feng 2023](https://arxiv.org/pdf/2306.09200) ChessGPT-Base (3B, w/o suffix, MC) | 28.1M documents | | | 13.6% | | | +| [Feng 2023](https://arxiv.org/pdf/2306.09200) ChessGPT-Base (3B, w/o suffix, ESM) | 28.1M documents | | | 26.5% | | | +| [Ruoss 2024](https://arxiv.org/pdf/2402.04494) (9M, BC) | 40M | | \~55% | | 65.7% | | +| [Ruoss 2024](https://arxiv.org/pdf/2402.04494) (270M, AV) | 15.3B | | 69.4% | | 93.5% | | + +Environment Evaluations: + +## Related Work + +Direct Inspirations: + +* 2022 [YoloChess \- a Hugging Face Space by jrahn](https://huggingface.co/spaces/jrahn/yolochess) behavior cloning from human experts with DeBERTa v2 +* 2023 [Strategic Game Datasets for Enhancing AI Planning: An Invitation for Collaborative Research | LAION](https://laion.ai/blog/strategic-game-dataset/) LAION & Qi Sun +* 2024 [GitHub \- karpathy/llm.c: LLM training in simple, raw C/CUDA](https://github.com/karpathy/llm.c) +* 2024 [Physics of Language Models \- Part 2.1, Hidden Reasoning Process](https://physics.allen-zhu.com/part-2-grade-school-math/part-2-1) & [\[2407.20311\] Physics of Language Models: Part 2.1, Grade-School Math and the Hidden Reasoning Process](https://arxiv.org/abs/2407.20311) \- CoT training data + +Related Work: + +* Chess-playing AI systems + * [\[1712.01815\] Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm](https://arxiv.org/abs/1712.01815) + * [official-stockfish/Stockfish](https://github.com/official-stockfish/Stockfish/blob/master/CITATION.cff) + * [\[2402.04494\] Grandmaster-Level Chess Without Search](https://arxiv.org/abs/2402.04494) + * [A Very Unlikely Chess Game | Slate Star Codex](https://slatestarcodex.com/2020/01/06/a-very-unlikely-chess-game/) + * [\[2306.09200\] ChessGPT: Bridging Policy Learning and Language Modeling](https://arxiv.org/abs/2306.09200) + * [\[2403.15498\] Emergent World Models and Latent Variable Estimation in Chess-Playing Language Models](https://arxiv.org/abs/2403.15498) + * [\[2008.04057\] The Chess Transformer: Mastering Play using Generative Language Models](https://arxiv.org/abs/2008.04057) +* Language models in game environments + * [\[2406.06485\] Can Language Models Serve as Text-Based World Simulators?](https://arxiv.org/abs/2406.06485) + * [\[2402.08078\] Large Language Models as Agents in Two-Player Games](https://arxiv.org/abs/2402.08078) + * [\[2404.02039\] A Survey on Large Language Model-Based Game Agents](https://arxiv.org/abs/2404.02039) + * [\[2403.10249\] A Survey on Game Playing Agents and Large Models: Methods, Applications, and Challenges](https://arxiv.org/abs/2403.10249) +* World models and environment simulation + * [\[1803.10122\] World Models](https://arxiv.org/abs/1803.10122) + * [\[2406.03689\] Evaluating the World Model Implicit in a Generative Model](https://arxiv.org/abs/2406.03689) + * [\[2408.14837\] Diffusion Models Are Real-Time Game Engines](https://arxiv.org/abs/2408.14837) + * [\[2407.02466\] PWM: Policy Learning with Large World Models](https://arxiv.org/abs/2407.02466) + +## Public Code & Datasets (currently still private) + +* Data generation + * [https://github.com/jorahn/rook/tree/main/dev/data](https://github.com/jorahn/rook/tree/main/dev/data) +* Training + * [https://github.com/jorahn/rook/tree/main/scripts](https://github.com/jorahn/rook/tree/main/scripts) +* Evaluation + * [https://github.com/jorahn/rook/tree/main/dev/eval](https://github.com/jorahn/rook/tree/main/dev/eval) +* Datasets + * [lfsm/rook-5m · Datasets at Hugging Face](https://huggingface.co/datasets/lfsm/rook-5m) + * [jrahn/arbiter\_2m · Datasets at Hugging Face](https://huggingface.co/datasets/jrahn/arbiter_2m) + * [jrahn/rookworld\_7m · Datasets at Hugging Face](https://huggingface.co/datasets/jrahn/rookworld_7m) +* Models + * [https://huggingface.co/jrahn/rook\_5m\_3e\_gpt2\_124M\_hf](https://huggingface.co/jrahn/rook_5m_3e_gpt2_124M_hf) + * [https://huggingface.co/jrahn/arbitersim\_2m\_3e\_gpt2\_124M\_hf](https://huggingface.co/jrahn/arbitersim_2m_3e_gpt2_124M_hf) + * [https://huggingface.co/jrahn/rookworld\_7m\_3e\_gpt2\_124M\_hf](https://huggingface.co/jrahn/rookworld_7m_3e_gpt2_124M_hf) +* Space + * Selfplay [https://huggingface.co/spaces/jrahn/RookWorld](https://huggingface.co/spaces/jrahn/RookWorld) +* YouTube Presentation (23 mins) [https://www.youtube.com/watch?v=5SkJQBrYY\_g](https://www.youtube.com/watch?v=5SkJQBrYY_g) diff --git a/public/images/blog/rook-1.png b/public/images/blog/rook-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a11aaa8672104af07569b3a53fbe27fcc5fdfa6a GIT binary patch literal 50525 zcmeFZWmr`07dJ{uDBazubR*pZ(kas2UDDm%B_NG-Nq2*kw9?(3f^hcWQ`b4?!~5y| z^yk{c?3sP%x>x?zf-nU+NhCykLQ9-Z zV!n9Evo4OQuZIY^PRhO?+j@0E@U`Ackl9g;`TK10m~Sa!UuAv$nYVifw5w{N=vgLk=agK>q5zpB`vrH&{`A+LSg0~g=2d@X2mjP<48Eb${WMv`f zfqQre$PjY~7~l>Pc;N#t2ngu-US6T3*1^8JL!|USzFmS z^1AVpKeylo?!jL(k&`|*akAtm*N{~p6}5FRCgo&gW@IK8KqMt4<#RAH;Z+io_^Uhc ziJ#oe$;pnFiOJQ~mC==r(bmC~iG_!Uhl!b$iItTBXu;t4(Z)&Njlsr|;?E#|k0WO6 zXy{;W=VWecLkb>O-@w+{iJzPtJkdWtf7WU2X8!L?HjaO73)mnN_z4pWBQw)KV*_3J zz~AyJn7bKUy%#gL2FL@%0I^%`QD}Qj@<8C;LWm!DC*_c-7kaZ6*C3b`*E5|GHlg9F{&9a4Iiy~B@SbvqBL+y z=kZDk=$z%%>lIVd&V!A2+i0Xvmpx9j4aS@F(1WXts3A9Rmc!rV-<^Bk2;3NMXY4FG zMz18YSH(df#Qt;nhQQDBO{27sL86oXdx`o&CE!5)x0xh@f}T4j&0C6p8=>cPZgL1g zQT}tSDnenV688;_N%_M3bI~$?MEZ9+2n4r82-reN`x>_Y&WHF;2m0S}grJD2g#7jt zGY=#G9Y+dS(%e7G25x-+x1|43>HmnAP**3H=kXBAVmlKpUj_UQz{ST4vK&T<&Or?f z4(vXIsT?dR0Yyg3cCT#5K(q)xm_#jcu=qm~trWlX>*|6>LXz;czDBD>-q!w`XZ?6! zvR3ErGB3{k`Vd}SeO(>CyP##T4L0NMHMSmDZflAAgvu?s`|;(}<~+PRZ-&AQZ{Y4c zr4hAc#6%`qtRepux9cyyHVyfcAZ$nP#+>VmHp zzHwqfA^3u(z4z|B+PlHmXjstjVRGUYp4gdeytcC*e6H%{MGW-~_Sc&TT9zo?emw)R zahUu&Fc`mO8=bER<+KR8WBFeM^?j7k8{-K@`A0OdDLeU7UmC0>EK{zg?+VNI@lSI& z_iWpBlX;(Y&044=rF?Fa-zs#?uylYhRv%yeX*-^iTY)9IPMw{e?kXqfa|<`WR`nBY zmFd{=Q6>#86b1B0@b&DW>hu`Lf-BvEIuk>O5LHxE@(j6QhW5@*vv(x|LPwj^9aQFQ z#YHsG4|On|lyj*E1_qb~Sjg@Lak7krq~0KgH|VpvVcs>-!Q2195r`fCiz*NZd}6*( z7i5&4-5D^2)NqQ*YQe+l*tcP!BMWt~T|HO32aVxlg}f@Nv$>>f$Y-A|JVIS3C>CeVuER*U0C{RHnzYJ)QV6uLpYfXiq}-iMgMK%0TL2K`u->CNf+^Ok*%$_oO6DzpkMn zuRIT7^r#JWoLkEf+RU=J|C17qNH+x<4$kYzLu9>tl+p5|UA$B=HKm_VuaYcca$Rjgc`*~edZTfe=({C0icmBdzR8oKjEjWrsJ#3aO%N8 zO36q`NITGJFZYozO)^W||ww7Tw$ees`u7Leb zVR(AcKtV~4oyPNVaQwBHus0`quBiC#n9emCd!kM+jc%rhbpv#W&PS}bhs_FTSxIAub7JM?8zsO{^o37or;i-go(lYR>SeHyh~MgSY$hG$Ub%(` z)x1Dr_#N%<{{?CxR6Fvme^6r^A-qbrd*j6$p``_0>Ll5Iu$% zsL*7En@y8z!j06_EX>@2VIUSuX~!s}&!u^=NJyemN5?6@(+$!*CkmNaczp}^Gj7i} zV(j*%d45S0Ql=C_L*|nI?)~y(@_Xp{&y+J~Gkj!XFEl2?pAnIPQV96*bFzYrk*}_E z%bW0!h+I_ELwCz92I@x|CYA*`i8NqvsQU*d71YB@cgFQbl$qAA=CUQLt;pRN7 zATR&1`WmhN#`1 zd_gY9!a3c8LtVQm;#MJy_8)!AjE5T(o-t?F(27kl#=VJyL&n5_%!2Sr-2%7Qb5Dc>1_cL&~1SEYU<0PEP z@9)bzGk7cM=17mV-ZCBA2?k2!8{TXi^@;@!a`#WJ%!FGka86A82x^&=qu^yEo?L^A zC9bTj{mUcj{6#6`*Ca64wb>B)Q@3@x;k4C z2P=3&l~l({Bmweg2Ty|w<`%2oCb>HWjx{Lmk&%5`C9ggY?mCoxa~q44iu$xG9~#Oq zHZ3Ut)1D&ciaoD27x9Xy2Svwq#U7L+=V+aDxM9`ZSw#}>*swM+X{wOBF4tQiEtb&% zT|M-1{%Kkc?NgXtXlYYNEwuLje%7^bOUs9=l@f&NtmGw$_s(oD2K*8;8Mq(5p;l2>x`BqPLUGCpMT2 z$zmdXA!(LJl>-gw;9N0-L^zBfs*TFRTsi-6#7wZH_&(7sl7ks$>IEE3zT6}uTo?k>o!FSs( zS4>6K(LF!$W>IAmC%jU(WI@tlxXxvjYP@!ax*sJ5Zgg zj3|~xMj!t%NmTwVw-`)xZf&07nAHHKwqj&H0^&=@oX<^AH^+&&<}$oBxl4@3)q&E| zxfNq_uaKfTiIW0v^C`t%Fh0B;5~M|w=YI-b+|KMzEX=(BCQTx%Z&oG0xS&mbNr_6s zP6P@osflsQBJfdjy1=n{Gg-OS1q(NluyChs}jv^bQyY}P=L z4DP4g_e8wTr$rb>z`}W0m%Y$a7|6-(nZ86D(_%8S5jZJ34&+~v|n`FK0a|eVhkeEZ@@F3lg5G9oC!*;qX ztpZG%=zfskP+{1Twvw)rWy;S($aqJ`cA5LN$$2ZKkq3LP3l!H8)4%*Ny(J)^(rS>| zAb`%mKR{J?#iO@qStTKiPRz&bl?WP@;T3SL=<%{Pv$B#Hj}?sp&E_d@1q-1-23jn?Jykl>5>;4v@Jk4@J8)& zv8BiOsUUev9JbL7qP+%}z7uh}I{jd98Z2?k7Q?%@t@}+Bax3%iBAozU3(iJ zUxYj^IWG8ie(UwtZ3tx!v!KkEnLq=BVw5On4zomQ&h-09Jk03ceD+>3iB8Vh==5+_ zl^It<&-Ry^7`a@kd97d3tobS8X9uWr*->3uexS_sF>r0=WzZSxZb@fQu%pw_m4qhO z3EMeKheR&MXBb951dyd7$C%uEWbqdqJ*4v1j8$BPa9lgH`8k9}>A`Hnmt-jc~ zr(9&;P$-_evNWq$!X_}`S94HwwwJP_urLj0>V_Wv@;o-3l+pdg1K+FU@jtM`Ev6sU zrz8OmWx4Gzble1pPrrWPv)A8*-_QFsZmLv2^mSE>9BAvk`?x3v}j z>a8^DC$zBQ{5Oa5)uQNGuItGv(@mcHY_G2C4IDpDbEcq2Bp3#mmC^Slz2=%+HFX@9m1BPtGo1= z8X@;J)V1}vEj;un zv_6@Gnka2&ch28Yu-|l((z(7Ww@*kPEyb&h6^Hx37P(l zD(TVy`#E^s`r^W|sh@?9)t?S6jD9l{^fNXg1A%U$_6v4WYCv}`x)Tyl->6N3`*zzp zwQE>s9T_P%&?Qjnn2dy7pF^W$gvwO# z)0yOoLRkF-@EnyL30@f4nj2|-N&FO<;8jo?cpAVGlcVZipqW3N|C*T)G&B@1!+yCY zErk-jL-cn<`T-n~j%1tC{0k&zQwT|Bj5E;Di2VyDTFUrBIa=Rc9R3Rnt~vtB$;$@B zL-yBL0AQ){|2v#s8oPL2UY?naO>*-DgFr)QCMtjz-oTr^pDZq>O+X;y)^KR5K~K2R zt2G72$|lpp^IMph@O54B!Z9{B7N~X0ga>y(n5VS0kds5!@w!so+}@T>n^dKCx_U(Y z_yW8FAZ&U=!E9-1X@7TaT*AR`T!v;5rUzzazb$xnPEHX)L0(?o*rcTT#Wl}Q&j&38 zuOXq=ti`y?ARs^-fEon`9e)Wqb|Vyr*r2kz$M4SZk7C(A1GHL z!Qis*Ame{Kn*fuHRju;>%MhfHD8TM6A;esS|I-;D4U}Ur?8$$jZ#Q26JcJ{ydHJ8t zet5tn|05v^D*UMs$sbfEu4&`WC&W;&Um(@ zxjCKH*QV&~++1=>8X9H2vCsW*0Ar~EX2AUFweJNDWCX_P%?;OjRee2HeSN)Mla^y> zBMBD=N7~Me!Jdsv3(-I{k*Jwj@jcxm)w4!Hg>v)>$3OsclSZtNgv5*W_4P<+CD^UQ z41y3%&MVIQ`uu!KBU4ifX66Ym+^0XtB0Rv=Ixm2!lW9=V(EPf)yH%T-X3k5F&#J1J zM=mHJz)X@V4{(tHngBHMB~l>1h=Vq;_=IhVY5rUa|cAd_GK78%57dPVhp%f#m`Y4oo_YBwtOI2J4@} zySux_<*DgkXxZ2>SXfw4#FIWGk?hEVnYtDr?pR^hJ$Sj)3JMB(O31JvGN=X(-AnO2~RS3mX}v+caJD@4qGL9W10NsMTFD)^x#5-BJNn((~^2)iZDGK1$1G zwQKw$tJkr(Y*ah@i((q!M%`MsZ-7SP2)pglu7S6nIE~@MM?V`fq#PsG*XqDAfSx#@ zZqx(A-~egX2=Z+n;_#K!-nuAHv}jU!xh?HrtQmx}0|FE3B^nS>g(7AH2U5ij>6}m+ zn@J>F(d~G#J&IzH`~e@8MjqU31ke~-FHm*C=SmETm7r;=6;!x9S6D!HadCmSXxKL5 z#|Aueg8`I73`CSI;C-EXLG2@tCtC0yYo+XS&Yj0zEN!>T`?FDkwf_tTFdjc!djO17 zClriR_Ev><3&2(SVucdPlH%h0Rc4wHkVR79sbk*h?YW!9EHbP-eTcy7~=# zkuZEBLfTvDPTCg+*H>5idU~A{ziTkiH4q@n2@AM>>*sOZY%GkM!_wbuBwY>}O09x` z&3mFJevIaUQF()mf|A$KvEr$JbA6qDZ)j+k>P0|860*EF-Xy-8IdRuC z)QYkS8>ZR4d3L>yuc!~mpVRbe|8-iQ{pPw z%I83^djfcB7!Sk0BaM}BUX_X~Lr<$1_4oCqoficK1vxsj#4{qeB>+;zwWnETTd(qE z%O235NJvPHUiX~C!^0Dci;<6h-tUGjInly|yZl0BLnVyLJa793L-bT&y1PZz?7~L| zSQw~@$XTPRR1{0@V*(4ZNfL-P4&&FIK%M6>g}qKCobT*m!(0cb{2fFDOjR|8b!(%f z1RUXvM-)#Wnt8Y2JX4n4C%?}|2KT?XSSZ0Bo1f>#C@$=SIzK;;Je}Ubt24Qi`DO`0 z%iI<`%S%*RrD9po+;(tqps1**ZxbaO1wgFg8e+Jtj#H?_Xwiea%oMaeTRd3FpY_QM z3KBL|~u|Z4Y|J1g7bj0Rg+txPYDX`MyH~>HD?+-=6 zKGR%s?7TESBmtELfUbL>bnHVJXy<9o5*s_LWP0Y7<`%t+8;sY+nDI&&aq(G!sf}hZ zAuuDdi>n3&o0TRnb>3vMf@ee6-6>s0S6(l=X^&VXBqS8c*5LYpuQ@S25#ImHM61cY z&n-nsSvf8_*#xF&`=c=#WF=$F7H?5!-D13lNjLt&()4toZ+Aq%>U+hG`JQ43oK>T8_3^iB!u*W`&-xqBmtY#Fq=0hxz%6s zt~g|iE3Jjh_pB3BQV3i>7OIs0X!B^GV_dD!sXqj{K_I*l1}p*sx96TdpgiWZeCH~4 z2bvsr6yCoN6IjqAM#G98eTx{EmJofL@Ai?<f+GZ^fWWl=(6We9f(Z)2n3 z`MtW!JhnJNkE0V#y|IW~wK6vswze+6dnf35%dBEo6W6%`7HUFwZ1>8yuEyHhM2x!a zk)`UDB7(61pDWhn!8gG!NR7yeiy5VY3iQd?GwH!*$O;z7kq zn6o(1@nUO8a=(e^_4|y4eW%k^;a!2z+gms9Lfh0CZC&VsPA%PoYDP&mUS12WReY=p z#i+6WTu}Rqg(Eo98Y(yv@=I~agm+KFv*4a;*W1uW<;;BR!ZzQ90e;}jM9q9PKrhN&`ZrA4&4C^_$De(wNUG7R5*=iG@jsREsag~dC+NOhf$K^|;gwtH=y6o~ICKQA>B9eB%> zcX+P%A~+r#9f&))LvdQuiP`95lN+Bz%O+%x^xOXh6RnWt%zg{Z*BJUh=sz84q}Af| za*k=ad!g2pYHO0T{o>OJDHm5tKkUkThsx1Fs3}V`E|Y-`B|MQSl#)i3o59sn((^u| zcCQn){1Kf`ouoVcnYfbAo&seRITUqY+$O_VGDOaxS+&IrxQL0?u-EF0hHh@SOdSub z;SmwtAI-seyu~(GM2`L2V3;{k5xg&ePITt|YCviX7+@!Qw zZl$B67huC8CiHVT{Lvxn@By2QQ9y0qpG{;jBsoJF3~BgbVZg`0V=>KQ8;FcahXKiL?qqo&Yudy|!E6JzHB-LVKW1jj{_)|X=dZmYYFI@vCvKOB#y1O1cx!Q= zzxkPTS^6sj7Mm233(`3)BseJ7&QSnRJ7;Gey6N8&24YACIy)h}e@$h7*FFyJ>p+2@ zCtlnjl0l!){fxt?)hS8hWwf|a9mX>6>c;i;m@#fKc?~lqxs{&V{Esu^yM(5vG~IUj z$&mKVP>*kZ`PA=UC++tY_8Ec?$O4AOK>AzL?TW*%xiIH;zqImQSXJOA_u<Xp>YVbUn|4s`c7WyIUW@9cbLKsmx<6p|KmKCr3y*Aqi4Chql7nL;d3<|ugrY|>@&sd;{do{oPdY6 zqO&4yTC_#%JiZl0z=cYGH+D@pZ{BNMm0$QAt%3<(0B^>)nLiCf=w_0g_-aht(z0~H z!ufcS$83U@0PM>j;!m8%I6FJvK3t63U+t^Ha6c%v)+;Qof6QsDoA2w~1N+gPhNu(! zf?-NM54#Z|u}K;F4z#6I%CDb*k|Wr{pbALm2rf>}bp8|^CLI_n<$jB%j~-~ zYP3z;;XdS&35;yq5wo+PoIlPfsh=@|8GhckOsB(?SCop?Xoc%B63L~)0i(@;pf>9?azNjMTlx zNUhK%Hu}n&^{Y_gA))hpMNWey%Du<_ANw9I{S3gG;k zC~p3~;oquG6%KjoFwE0Rb`KBP!{&ef_>uFoZoW($Aj!bohbeKu=4>1;)b0}Ovc-9) zHSO7P6A1`7%KgCt^cdiK`z1FfYVT3eu_H6MY}e1XMp9E#H6lKrW?BMdbwpYd3{yT} zl3H?oulU}tI2C>q%b0?f6Y-Z!LeyV~0H3T-hwf#IM1WL1VRdqXm4(ImrTP2{FPI2p zIJ@@2MOauiOU=gT+Hze%i~d#^dqr193x7rHogZK_{p73`-beOMy8&+4+CgQ<^=!%f z2`^B?)Fg+qZ68u_ukExFf%t9qs~RO`A4oITDlj-?!u_t%?#>%5b)^xb69|>ajqxKB8b#vQq{81Ccik`$vY;D@G13pdX_D`Ujmzmeh zmV&OX?RVi_!R_ft%wFnVW`;PFa+acJ=ZGK<2wtaHmEUnDY;T(^HaVJ7$ORbcfa@+) zJ2g*2u5WG#=5A+7)zPqs=%Co}0C)GmYo3q+kf|0P%Xt(AMYhrao zr=<65@K@;{tMC#^Ft~*|t=xb{XIO z9?4l3K&RKSgAacvk2Gvyat$e{_S{LSsj2NwmfNm4`Jx9zf!X+B92iWLC| zyI)uI;u&Q?Y#7p z5t0$ze;n!Rf&@}$Y4KVD%nWjV&r@~6fu)j%W9VBM01(N_$_jAH$b|ulx&o-36INbv zmfnvFkqo3r-3#;7Q{{nuo<|mno>|%GbxJ>qnJ+zTp=|{lY#~aSrMh|wTB@J0T%dSh z*ILzmXBqc%b5clM${Z**wR3%oVRBjJe4b2ItC~A(z_gKQ$d7uJaLLMJqGJa_lq7db zJp1TEPzOoA_#y@yhCuzY`8piCM$%{lSW-LP_le(?Z{~G>-*XbVh^+qG47*e1sJ$DV zD@&HCH&D{6m`ifMv{ww{<85)iki$xGzqq-u2ClEMghD1xnPy90a zo9Oyf*wcgpBL{t9u+-J((4vcwB>Su0kE6%aT2LLzKb)!zmCJ-C45&Nx0k$51s;>q( zj>KULn{f`WA*u~tl{+cjJ=-GJ(LKlhX)+>Gdzc@~Uf!qCBumB>Zj&jsRY{9juk(`xQYcyGTcL*7dCP zQ)#0dbhCiP4G2f%gaSOt$%_I!&APNQrzE_CEQ}~Bvm&*h^eterj$7Cn&mkE1Ug#06B$x%T$AN!~SL6wXs9%ioFc!yiCi0L6f zaRQqPd69O)yb)I0TUO2nLi~o*K8wF-=zRyW01nc~5a#ZMuHv8J%S1cr)ZQ)a7jSW| z0Hu#jU31C_(*RT+HW1L%^wiN+)VBuUS-`S2e0^otUuaN&=fX*cn&O&Es{NyB!G!SR zpyl2-s950c@m+R@nTO?5 zl<>&`E+I19L&4?#;aO@VQl8-yF*JWaljg;D0w%g|64(X&c*Wz2u0a8{A5WZ)+dnZ;g(ocO5d!~J zP9<4Auf7DU^7r0|lvH@p{l}=;kRmV|>o)*c_q#?IumSgjgF#2fu-jY+nEz_|(m%kT zm{0I&tTBIX|5%|^AC@tz&A+hUtZNiT4VW$VtV7uH^)i^p+^WMG^fA76H z`MSs)EJ}T$&4NxVV}G|WSk5}#X*&5*54?i71<+6Jp#YsY-|qPG>oF}_7oNp;qO0r6 z+>+0D_yuE>-vqoN?c9Os1wepTN0XA2K<*bMDs&+wAvK(91yaStvHOC@P^PHV=_v9_OaNf|*^r?CTa9!~e}bjuGR4GQYYG&aBC6W}f; zCX2AY1?+uo-X~;l*zT)MvESHdm{yq?CLSXb>k}hmdrQ=Eb0RkM)c}CDQ+t2#rLL>+tp9< z3X~!j^AYk9^NVEUoDXrzBuJMixzgWhn=bTR>YU%u`_?y4e){Qpc9c>S*=S{B)wQ~s zbI3;2eS6EDDMw?Y-4bQn&KFje`Ht^tSdmb`1!9t%y}mh4Ies)mG8m*Y_5!WgdiVIa zzryQn99b@VXSxYIGOkc>}DVZS(qmihw3}veNeR4-TfpHO2X5FLX9%4sM zmwjkVRpZN+Y`HIfXdaXbMuDaA=jdxWj3gZ$H9G8O&DL`oCQ=rjwd(RT-sHaY<{No$ zuNOX^_g-dK*%f0pkx@}(^z`U^Y37Bz6RWGSk>$`=&PXPaNCxIs);2xa533vrPgBS6 zsKQOqB%q}H;|k)b5KRk|@*IcQ@P*Qp3PYjXB~^{%`C6nigfpE_7Y1)``2gMF4Avd4 zM?8+`8aOa2s1|qPSPG&6Q&7rNPsJG@pnVtX+h>ln7?Yf)ojupSiBq&rqc?i(s2wKk z3%+kkqvrTt*Lf(h7xk9g^&D#dfFMfTQDN#O$mqV*w$+Fpw(0(g5{CaKs5a#^!{_mn z2J=WS>{7^lBQ6DY1Bg`F!6KI~sATrX{xH7hRUZNyr*lik>jHX?+{Yxrj|gaSYZ8&i zi?u|~9)1GNIZkZ|L)6Oe>{fyra+#nk$_zzRJQQyyv4Sq1hR4e|G9* z0TGq;_W|OHEN)0FF^(kX+qs729$9<58^FoEvHuz>UM^2e2{pCk)Umol;vH6sQ<*2K z)f$J6>vWn1?Y0q8IkMcVg+aP`a$=i1HY58m{ke^nk*?d;xbk!JHv)09FC%Wp!Nf&`Yt;y9vcozOhYSrWY-&LU?afnSXrpu)eXei*`_6 z=tm#RpRtEmf>IFa{+MLwkR^+ojmza$&u3ysd!yT2$pKEVxp{)Qay*tFP;HAeIaH)S zKfG1YRt$*ki;tBThH~qlpiA;R4%OqO0nN+=Eln|8b@V|2rhpIm}967UFV5t7pn1A?jB3$n;kC*$=rQt4Sv7spBg8LYXhnW?{yzZyLhh1Su-Ln z+w_!)Sshui>tUMjHAYv$&JY$`9bRH7O?l?{K*YtxaXTE+*^iPWcqQX0oV}eo?El^2 z@x)k6JJS}sPhI(?SYmIKl}BJi!|-Lq%SbmHTT8B_XvU#s>H68RuZPX|D%BOUKMv5} zv6J$M8yXnC%Sm`~_pM>JKU7uK)(X%yl&cKj^ac5dH>lGe=7+KF8i~)nfPni`EmdDe z_-7Cu4iEV~mUCs!ao6+?dII|Cy5;!B=_EAygb9=b0Iwe%xV{5{_|ejTov7d%g$V}@CAze)9AiQBvoA-OMJQ%#C z*j+oU9~MZT1YNKixx`lYmzAwSbYX)j(o!$OCezUVWbNHT0EEW1u|^%eiqfxok_F?c z^~X>t{BW|9$T;Y?eH&E~bUZ~WO&;R5_4_W=5PAZ4SGETk8!+?x$A4x*@2g_$a3 z2%=Vy%qw52uy>^qUEe-F-cPC%n(}y|YS%ZSGrTpdxPQ-aW2mEFVV`!ev9_ka(NBWK zLfGuq1Ddj=17XG{ODIh~|d@xP0X>m;{9kIx`Y z7AauYXy7x7$RTxUau{vug^rUk-wH>-EWhJEdQW=&yZ_m!p~1_@$yTw!&0A za5Iu6;cQz;bDpRyBSmtkLc4#x@7mNBPS|Sr_nImi>76{cNOsC z$RPGgh9Xj#H?4Q^=;mwQIJ`LEoGK}#JW#TFNhy0R4uuV@*|c0C57fn>cxxaVlyLub zo~1T>?jeP7VXjz2?t`!9-Eqr=DM`b;S5$0tR18O#5Is}~m1`lQusmlyxdklwZ+R2b z#ZAt%oefT`5?FMq$}V|^(Q*l^l@?`2RbR2*6`Vrtqp4(BtfuA{nnbi9CGw^QJicSx z+h=%4g8_1uT$h1`7)a>?$>=5Z;%7=)HpB`pO*B=JiZi&pam5B3H+!AfDG;F zCcIUo{5;J-fGH4k06|w~jjpox{^PplTp_tkUWNLP7rpgmj4sX*Z$J4N+`YtpT?{Aq zDE7KEm9zVOS&Fg&ArT&$@B!Ita}6=tub{dn%{R^&zJ=^xD$4o>ck9e%`O>Z9iKTaL zrq{d%N5`)xk__+8NH6oS6kM&>*Mcnt~SeE0-%}A9WFg6pBGd&1%kR65*14Vrdx?ex+}9Fj_3z&gO4%4VSbIwbI@9er#pj zUXLip^O_UZt2)Q$vAy>X%qviD`?b_(L} zu^4q*_5BSGU0Ud{(rAV%C8u;P1^1CPi>RSpWb zzp6|YW4|B$j7LNe#awOlsyeM zOZZ?biMBwCp_g2FC`tQ$SpF3q7hNE`c3j~D2qc4zb9eYXs&?hh>_)VJeS56!Z7(nW z>-CxFIpB(;nKYF!7%0(esSsKuLQ7ZG z?7eh`t-egmt`ajKHGQ<4j6c4;GhBUkN>9O{i*1~72VfA1DRK;6%Syi`cHgF>Bg50r z?V3q?Xwhv8a9#E$8I3BZ7LUCTq+gy6dMMRx58BA~GThH9C3vfgUU4E=H>W|s-zKSe z1HuMYD^zi(pexvkwV7uHSdE!MMw(?UJHtVRR z0jP*`p2o586ZV^LGR;8CF*MBMKAWN2cqB>T&o;*^8H{Cser>MnbIss=R{I3$^Vq+V z`V;QN^IY#`m-OwJ8P+eZz)H@1lYWxqqH6_CGug$H=&1_|26;d>O>WMtvJEntE5+(n5B4hx&5JL^w z06S@w5n_l&L;wAoA1&-Ny5i%|eRkfL)*l*BGx){+Q~KAca-d&XiWp{j9$1DO234vS zaUEwpbF$u2e#eo; zkN8Y&8WSEJk16)ybjRnnp}oDWCTCl0^J@KAV{)X*>k>^%L!)R-2W99~weOd$_-z%! z;y*4~o+Z!?T!BPmUc&^aib`|^NF0XAAC=xW#+zF^tLH(bjb0m!7NrN@vc#4$N<3Zz zd8;V+k+D(Mb%&6~EDqKWmv4VG{BWn%GdL*)u%Lctw67{7S zf)uZp4(XP@=Jkq&>_}ZUGpxC*b}$4wG{?8X>vGMG^-~)Co^WD0aJTb zg-8gEV5I=%=O-NRdd35aQP#W04VDJ=6QX&OMI4e{_Oh#zN`$`F#E97eA@m)O5o7F5 zG1=@*#^ zlXXV#uRX@MO%rFH(O}R{O-9c++pP2`X#jAKG=NM}ZQ0_heAB{Zd0HDb^T1Xe=nwQe z+>|i|OK5)ZXtD0z%5YlJyTuSQ8PUS9a}L-t{M7H2o_b|$zR_KHrv-eoY}bgu>}ocB zs<7@6~3?_AS#|*!uzF&lsB$0Pv*b_RIlmPo~Q0HY)EO zf@YyJIJQqm|JVns^|kfX zMZsIIf>t*|z#{D~ECMj9H8aPFqh zMXjqmK=#%>n#$uDR*XTPP)ab&!|4Cb&&M7Z5r4kBwBqfH59-=vLOa)7kdzVqQ84@m z;w__rdQj1nFYT&+#(myEZMo8)jX#~K@5Vup$y!gZ%-xWp^LH?#;Fn=w5mg@wOug4W ze=b_!Lj&u77&iH5WVw_kr;AG#i2h+VTAB&w;=hmJu*1UZpPm0f?VxoB;v>P3u0M=jy}fvCvOh0prC4 zZF2KxAnZ@)qI()3qIc_JYp zuT7z}_l{aNu&}cFcjtPxp8lu>ax%I}Qra$^F&}-yS7ml8*MBm}eJ*N%W2t6wJDV}= z79@d;9=O*yIUwo;pybM8+Dg`M*F^JC(DEme8g9E3Y-Rxd>(TK9fpjHHzD#3(I;hP3 zYh51(7M33y0c*ijE|cv*fR*)EPGwb<9pC*rn$^;KDASyau8Yzpwh1oZo2OH<<7GN7 z!`T}NF|pMq^{lRBYpNYbU$pn>>K3CdHqY%v1+enK{cGGAZBZ{anFo@Yb$(=*eR zt3+%e#YsJDRTSLZxMQR=^mhs(jS6S0zyxmi3TzZ$t%SfYWFy!G0c zb}@BRt}NbGl#H*KWIR0fs!&tgrlPv8Ozr&MP=Ftgiibs)Y)DEYNbvbJDknYjNs{V% z-i<)d(s$O#sAw`F7!y%#itlVw;=bZt+ZxNwbF<&0#|0jgdVgZQLP6@e4w$n$EGU|T zJA9v~5a)7Y11s>fDZ|de2{^AreN;ig>JY>yhF(T)@H8Df0k3f?@%->;p{!f98t9ox z>YZJ$Rx_C7*T%|QBpyPBJN$qYpO2>>-ILsi^vK!Jy>3oJ!%f$zzo@_Qp^%L}GNIf6 z#s9FRs!ta9^UufF|Qnn0$>8l z_(2mSRoY0kjvQjL!T4;GGiw27(O@>?tC=t=J7cKtGKdQJPUE`cv#De3JmLHs&DqEiIX2AzGe}? zy?jIep{_q1pIjTIWw(c( zZ{WhLm+;F-b%>yBIhSzImW2ovWw6!(L~%V|vi0}A&9{;(!$Ohr)qlsr?-l2h@(`zI zubaUjAfWex?>k$gJU=UVDE}945Dv^~X`rCYrswzuL$$&!QZfE1q&IYAe;+3@oXWXG zoyMr4sEiP+)>l1mk)w8|Daw$};N%u$bA7?Y#@qcOIrXc?6B9Nc*fKr8vKE43&SL!2 zWKs0M?vHnqy!oc|#`q3o!kk0)t-A#ffs!&CM-CLchrLV6Eg-Jb?rN-ggym4;hsaP< ze#mB}HpL^QVvCX6aTQj9Tf=P8?XAg#jT%vQ!4BP$QusKpD+DS)Or(+Um_Zs{>j zRb}xX@3ff`+ga!@S)|Z&w)&^_`|b~3W*q70!F31qCJ5KL_gg-lZ*zmo&f}@kf6E`} z!JJouqG@#1pd;ZRlZYO--rfmVnN0QDu#? z_9=Q2M=7--GcZqL8je21BG4V8zdTvJExCA;T%>+`em2@d;r3UXDHN4K&ipY%Q!Lf5F@3vAul4K!mW%h)2BwLw z+^0waix68wi&-ftssA#q@7~P5#_-uHaH6)*wW|e-OF`usD|TmS|F)Svft8tz6Br*I zVr3p`;1;YyP@%ZuI#bMsy%@C{Rt_?BQYk|^4vP=H2+aSQB9gx}QR3|y(WNS*u3;X- z8lh{?3{xxEP?|e`n`5k4N#L9hr3pFYTefg7o7ah!lo7gS+bPaF55r>h4~P>oXhBNw zHU7+r@2U&A?G-RQm8-&yx7ZZTDvhVKY&Uk6)h0ezPQ6DJ-eoVmQj1zx!yfL{SsZ`h)#u{1yKEuUEov6ZfJpI+s?o#p{5s=rGVl}C!gBSJ6j>onN-DdZeK z+x|)SS4iO$Os%soDSYDRdK8NLnGkM4Mm|P*gZ$DK}QVawy zjw&VkCJe0-my;w#ZViG*2!bV3E7x!!PfXt?nE1mVuQa7(*3p8d5@et*UkGc-Z=GNr zcPpOCp)!$o?%-`#PsyS$`8zU7{%>-r{dL()lj{>TC#mRyI0t<3Wh6R7`8kE$AJQDA zl?Vrj|HPcd>~VA!VG z!-c~8^WZ?~{yr$S(~5~X&RKI%@Kt=k3nn$Xq^xcvoraO|BYh}W=gt&vmQVwtmkO$7 zfR${>3+Z%Q-Lr9SUON^lYSg|&l%58Pu1MXJ%U?ZRIfeWc=34~yt$ksNVg6gN)qM%1 zuJ4rzIRHh=lCUH{h5(Ud+B~Ju9 zUWq#r@)wwxn5YrO^GxQfij-D8WPvgavs@KV->P()f|ELL+C(Qh8U5)jg}OnL&HI8y zPS1~P6Ib`0FYBV73`tBYGM9C}VDm*cix`XsTO2lWSIjTrxQ>vEUTtUf^3B>R7hYUxc5pVvAx`;ZrvO#ZuCeo4DcBQg{oRwn#HYbrEyRPLx z1+J-5#!9@l#-Mp{*C!zSvW{kAr?Jxqp@8Q+`Rd5i*=Cli3`Uiqt};bDA1IbRa!|Fk z@$w>3%iWqJm%vFUWH9_v3tJQ~)$=%o5tfb1aNGo#wW9J?an&nyZ~J}e665fukDXMc zklye6v}Y$beW{0^#*Mw)f^8_HkVUw4Qy`V=JS$wv`7a`H6u;koNXAoM}4mp0o4xulO|m zubQ>rt0A@d2eJ6q^h$A)tKCLh1Vd6~SVEb^Zb%lAz|clKP-p7qn+DnaTc=N;{`%XPs=5hvvry=GMt8&9KFe#pePq6O@@RN!~Yj`Y~sN1mB-x z`o&sXUM+@yR0xrDzVp5vy@L}%^R<>14q2&)-q(B|oKBZIZ^$BY3saN~51FsbSDUx} z=ba{8xqur{QF7boHe8jHkUYI{x3k2Hc)w_xat5CQYIzIAXiNVZ5eB|MNL0%Pp;f;J z-KpANpuJ*?>OhMAfZ|#aUyT0SYnpg{DVLU$t(Czaae@Qfy>L^$E&#GztR3&c4`0FY zu!1Hj(GixnBHs}6OhHZw*$Mr3Gl#v7n^rX0B{@{*WncTM8d+cv8OT}S;kr&zTDN&} z;kACl%N_H5@csE+vP(69H$#uG#-V1B+Vr!FZ;qB8OGL36N)_^%n-6#$2Dc6QAZjt! zw5)snOaE8jeSb}j_QEs*tw=G?doE5-TYAwui2&O#Q*CA6T25*sx{ix>#vtCuhuCp7pk$q2%=|k-RbQ^lQZNfZ9}^DVSRdnF3qlywG+xb(qhX zZ2lm&pQ=I|KK`+>E{w0aS zWryqWs3%2cpuK7Z+xbhZD6HVaw9?DwhS$QWetJ7My~q1ynw#9xQ1G)j9gkMX#>>qL z<|Vd2#5|J9f%fqAwu(AgW2(jGK>cN`^Ic|0pjr-(ca*@@?JkwKBu(R?ih1GINxlkc zEp~E#-gY28JvJ~Y-{k1Q_ZdD`IY0g2)rP?1EaUN+^PkOfC^5iupJ3^47Q-`zc%y#c zh&m?f^|bdWMBSr)lz7-1x8u`rDcV3MTc#02j-Saa+8vzmj_H2cd0M=I^*Zu&=l=4_ z!wnvMJ6-U4?SRaO^QF>~5;pP~TpW!&%GQ<^FGKnhk52&sFv>Jw&g1@RP%@k-O}4&j z>WQ)n`dnD?jAIDF2l6Vsg)?G@xQ^#F+_AT|B@(`80hh51UWaj5gTs*6@B+ctsguIs zrE$~)4!PtN#ptnt7+GJbn0B# z&0w^%{;bzMv>Nx5LS7@8gY3#{W0o&}YNN;=?*u!TE?R@4qd%o5zGhn$%vgzgj4I3d zUKbmH@0$?!8#fXR68K>Mt~XU|U>WCc#e#^)J;28H15o*WLp+GBG>i} zGbN-`HkQl_`93efh<8oAHJT4FKM5gV>z*U<_jHXU!8A% ziQ=&6_=$tn$?juM|IGfta!DuyDaADb4PLoa>8Uhv`|2KCcqjR367bt&vYL zs*gpj-pY8#0Iuh*%U3?!ZX~_^4o$4UN}cs}ogoQYU|HjQSHB&cxkbwkdXSv(A-NC~ zfLcqOW>Mc!5PY3IU>xYK%>pl(XZ7Dq2wpfjX%7v9gNL=cWg(8HKg^w!si~=>RaCG2 zyC`y3m$S8{i^lQg04o z%npd9)X`n1haMEQE;JuV^$x#^bu=eq+sv%!C>$Dc3x_x*@l_41=2Fe1L^zC~MNh>k zt$s(e9Nw+E2k}nwXV+EuoxiR6x_o+mW`6R2dwiXMlx$LuxyVgG;y?XG-B~DEUEX>f zGphvO)$jjw1UX`;KwX=5053kh-1*+%QkQx(crJT)Ect@;*Jw)4&wg`|%^byxQo0Sf zt4u3Lc5(D5GInT5J33qU0n#`x3VgC#)9&-8R;`9wyvQaI-9VJCpkH zg_~8L?Zw&Q$_>+w$y+DIC_#e!;zZ4ih0}@8`pG-e`w-@irn0hsC%CoqhS#lDuL}|w zl{m^+VbHWAz6phO)=$?W6QK$k^J+{H$A}pY$wOw15>+<#4Fkfjh^;kSF7-X56sfrPO^I(~Zd+@5TmeyQYZrJ2*D#^H<%A=yY)7|YiFkLh? zPam)Pt6)S=UT!1L->Ae4HWpC_)TAB(Y!*?52Zd7A$lOC8ryro`Q!wwPTQz_8eU1&= zoI_K0LF&9buA`;ZTQq8!#8dS$m6j%x`&oIQ%3$5PIuJ34Ducb%@~%9CSF*>ZQeNAF z;N&yrxOS7m;4d7vR+iRU+0q^Q5jA<5OX58HH=~ezIQCY=;|t52vs@e`V-QNKeVnRW8gqA>YAd$b;571j(xAP%Yr5$B zvr6=3L|{$RYsA#IP;X~BTn1S-oIGt~_h;8jsbApzk`1I&$Wqw6QO?&0jh-quX_qV~lit9u-*I|_gaf%Z2S>>_<^@AU^ zLuTU`u#%$W2Sm)w%pW=@pqL3^FT^N+5oT7Q$Zf8(q~ClavCq1Qg5;U62MFyXm6WD( zCw8O}wjoh0&xhR%w{^Bo-^bRisI&z{SpW>gM?028!{qGg*{aj**dJH88|x$`Dg8U^ zZLD+3ByA^VXPZ^=W$V}Fk8&zZ=Z=?c1{bz@f|IE*g^6M+4#iKM_LC-J6J~#e(?kH8 zrwW(ozt~c@_*MFN0|JjuhR;T4ecKQ2s zs;Gz1Awk_V;99)c6Y=Ee7IjF}`#5vZt2*bmXE_dK7PD~Ch2V{6pA+Pym&SMw^#%mAv`o2e*4naBDKyO8Un()ZR-<#B)c>#M}(X+Q;xg9DeoaA)FrB#DvruaBg z@ieK;Ti>hU6*6gNS;d>Weo-3=ZIZPTTm_?hRdeQzo3NH^&v2Xkjw$Z{Y>2)n%qhV2 zgJbT1;X^mHKm5FuHNgDyhW@yX4jlFBr7H%?h-r0rVamLlgmE%s6n6Q|O=L_6>hZb! zRJr{q3X;Ol5B`S@c4rj?d0sF^%VxrYjv#(YVVx$3F@rJcm-!2vCIJkw9JCDehZ?_* z1%%8MAiK+-_Q+(yQ2cnhXT`d20gP&Zp6jI&8~i~V z4`P>;yyCBngBHD^fuya;uFlLispC_u&Mm!hc3sm)Rf($KoOYO;;4gT(Fn@VETy*O$gG@uh3VOeiMao-FkGPygMXCoz zbL*=y#*tXXWgQz^Z8@4yIXg4zrA4+{bIc3RzKIyYFq((jr846fh>2a<%pgxL4HdRW zdn<`d^YP&m5@eH18ya>O&h6E&5&NRBHA)=3;|f0cwY@~))>l6YxlB+eKl~YboAS)U z_v6WGCL4lgbGFCt?Fo%^?IWUi!}R~KbRX&)#d z#5`BU0;BURqgdoNft-)<)NKl(DE|B)Gdh|0)RjfY%H%KCd!dh~@vZn_oFg`5A|=#- z(lcAH>SGNzUSfg$I=S$fr_-Zn@TQR6YoQT{Tq60YR}0DQ>wYNscwkOj+&(x&!s5kr z$|U_xIFnR|1WG~@x=a`nKUb^1$<37hU<6BLq35%cd_;)a9fZan|HS(=M0YlzY`8o* zmM++b)`z+bZ6u;(L%Bb?upKrZh~v_36j1zwn|*cj?Kn|vo?{z_jB_hjoW=2TRMtc= zY|^+Zw#%{EAiUvjm3}m%Vf9On{63);A-k_lrd0l7g$?Ng(PF`x1Li2(0`uDMs(Lx9 z?X7)|#`G7Ro%O&7Tqd3^0*S=$%M#?DKYX$Ljg7`|WKFo5S*(lX5ON6>|5bPzeLMgi znpJrFljzbYsv*MRPZJiKfEtnfagB1aPmb*PLssR>l5N6f{C)3^Hq{ms`|Og&7B%NE z1XvNv<#j=pi-Z0id53&K-ctr$YdoW!fQVaj%O{%EPTDP(_j8!I+u+Ezm1PCuZ4xs4 zCOcfr)a`TYuRfRndB|KFkxDwamxg})F`}KuFwt%=IX&l%!sbU1*=W1U5mfc(mR&`M ztmMNGmFo!3@g0a07`YW+orX&JOuZ9;Ne)ej`SbTBv=TguzOYd`GA%aYGhZOgv8J%a zI8i_zFnfcyk4TGdbCys2klWqu*tH&^tLF&HIoc z8iA<~mO_BQzqRc)N5I}C8AQ8YJzh`Hf5E~7$t4zGZQ4yw<6nQIy!;FmFXUH-w@uGR zHx$Ygn##g8^HQpHwV7IH_xK^u6g8z)NsE?2g)pd{4AC6R|0mj>n{63*>6UN7 zsT(u=IYRQYKNklZuM|oskh&=v>3ofzXb^wb z*|7%^yvk+NP7)GP0Z9vmZ`;dHWyeV8&-sUe`@szXn!Lxs3+^Jndi*`W z;w1wPu7dI}DejT42LjlM5LwoPv2Y5GPIpI)tl^8M-`OD3ojyQYNl{Sh#2dai0uPO> zk!v2^h0WYJnyae3m>rr3NjI~$n_n;YfviPkYrVY;?t+12Hu+Ho&?6!uEElCtY0Pxc z@)KEMJOFlIWb>%A@P;=W3^8MkN`D|xu1;;w*LCH#)wSF1Bn=$~CEpZX_%dVfsVR6( z<`o*{m=#5?L_GkEQ~jw@y<;Zu z`~G*W7V@L7}vHcnf?(wNEHL?7- znP`(X+XFBz4>o-mu8+ARkrRKUwyDCav^5fR;Wrk+M91W*)N7-==mh_9AQU0Z?%$q= z_}U5Q^={C6EC<&s9B-DtP%tY>AKt_$lxp)T>ixVcwk!%=RM008RGGI>J%OGF4yHY9 zJW0khoAzO>J`gsR^Z3Js$)YT=cHWMvy6=o>L>9MK@#k!rz1{X=#a7skd}(d`j?)`G z9?=qqzK*?IiBUnUB>vZVc1kOURy^iWO~<&BNs6iYkRv+L@2{{#h1BOJg&B`Di)PE% zT%vS@1Mxz>*hYF{Rf6sqWuDI0yNkP6tilxx#<-aUc!x+xhGEWoeJ;O{540Mc3Yg|c za7|`=L|}f;(gU2_6E8DCYG!I=^`@b;xizlAW?befI zRQ!MPw(lUm{*XNr<`Jw2Lq54kPkG~zkK__1^XWreP+v$zsN*OaPf1Pw`J<~nYCiu4 zG&=E>-xrcZvj1W5^ghhnM5|8@Wk>c)cthLOIyQtp+MpR|Wu?AgRiyLPbI3V)$;rN` z2Cxl--g90}{bu|5NcbgMU0xkxJBIiJj}Dm-+{Yn3R`drRcAYb!Iso>TkwmTXUVxP` zznFPW8o}T~#mO)A-{{OpNXt-?n#MMlzdwvnZEMtUOFH%}pMI+!1jHWnT9<%-xhq|1 zJ&mJvlo-F^&S;jDpZdM*yuT_qo-EtU^nA|2Djr%|oisYCLIMgDFI|j)49|Qk zxQuYE*hITuk~*()n-_5D;jhrEEmwjE#TFRu450`y`(2M=@B$hBz3|N;AjO-dn%xx1 zO*-hu-wLvj0wTRUu?4)lzJAt`ql&I3!@;r^^{m zI8C(4kpWc1v+C)}!;JZPQ(PilC$zy=6uNf`7p+X@t*KWOj*^FnuVq7LN5QI}er6Y* z^3p3O@%&$sAJUrtWQm` z&GB(8n#9l?5-ipAeaS%C@u#{23%)gk*}Mufbsc_yfOm|`OAp&%p#okf`yl|=kw~mu zIEOL|{O9FHeRlpCT>40&DD#dgGTH6FCB4M`4J-XHU|x4R`gy+g=Fcq z^I({3x8?lpOWgL!uq%A=8Z_QOJNNKna+aB6R)tJ&?wn7xT_0G!cg0)$g|tK5ge=B^ zHWdOy<#bvcC(kU->8lX`@eh(sBnU*rz#XY8L!&K6@xJ7*wd%+hMv=pBpH3+GJ``98 ze`?t?2zdOfgmIhnuJ;Z4$TO?`Jt#hjpOfkRH_~clhB>K`Vlb`jx78oBqyslp@nXv@ zS2cefI4MFy{*}6kut8Zq_QL&ZrZzN-X0^p+Uw{7!piD%U`y{PcCf{QAO|UBWE>ug6 z2JAJV@Rzrx;gze8kG!=*o+B0GJ@kq6icVsO@Zrn4O?mUZ_u0EYlFo`nW9ZxRYaR@> zArdr}L*CjBIW9y?Yn>;mh;&|#!afx-4u$3Gp26Al_m=@@P_hqOBFwlhN!cw;tfG`q7g^#{vz+ z{1>ds$CUSbjHSBfAXdeeXJiMjGT{$K6gnIVSaU(4Ca?hhO>Ujh5cFujU!qA_kbJaC z2D}Z?lnopb&)?7n6j@mu@Sr8QSEIv0r+-nXxd^|?ytB<9R(q2>gbKdmqQOFEUm&Vx zgy}Dv?Z(qDf3dQkJA5-s`;hi&iO69nj%U|$AZvbha-8{gu48$LHnP=gC(}r9@uP^B zS?)EGIttb5+F$hrsjozz1SWZak+j0_;uY%H=C8|3gSmnlhfU$>W*WW7I@wFR6H|~UKn=H?WUc`?clcHEfjuk{w1bUJi%jZth2FS>Q##hWb%sfgxV`G+qlhSe=yGt zdzDo^p_e8x^or&Nc)5`*mYnjWfDh}V@!6U)w78KABDs%yhjQ}3vW(>CEP?W*;&?T& z#ZY`2i5+=Bd0*6%Xs**Usj0`Ue%yt=S8R*(s-e1_htF-S^OEgoH9`K3#vfb8b80;| zKB){rd7rTr>Vg|&vIRbWT@mK&C3@iTal8Bx5Dq`{O`G>ybXDB1My$)J4+q$zdpEAD z6FzScbm{f|irvT_L(;5tt&}UtdP#w8M|7v>y~Zy7|MkNg9Kl*^(Vum`9%My~u~Q3z zmnKY3<|||bOHk6GKrVuhn=tMN8Ez&I=WEw9S#PsHxpWLH82AF4iQ_b!S=;db$B_T~ z7Z_q=a(?I9{rI2g#J}&Z0*JA`W!BN2^?zLSn{N=Ad(9V>7v^6a@IN1WI>-ry8AL<` zA^!fi!@o%oV!(gU7x@p*_CI6lghNaZGE4{v|Ansj&zR>B&hpIb!f%fMHySBa5`+nJ zqznNN{lC%v_wW6J{okwizjN<@9}T4c|1XwHw|6>wc*;#aSO|M9AJi;I9Iqy6?wJ%B z6C)VcU0|LsZ77u^Iw&d-cT;gICC*6UcyaGtQU&~+f<81p7XJcr$HXC~77$?IC(xUS zLtGTM$?bIACfO`{z_g=Q(9$07Z~wO}KRi3!GK(9Ga#KHCB#a2Y_EzQJo_p7PjQJji zLG1IE{c^YQ)@K8^-_@1fb~8`1dmH8yJcv^Doks9&C`-mwk5;UkqgkZwg7Rnb$=9A6Lr21@d;U{N$!LCxiI-{48muRZ3YvDQ#e|nQN{K&>`LWgApN+i4gmX z2Ezh)_Pf#NO}p9Ss3m27--eL$R`_*y74lZsfwYY%9ASh**bakzd3iNmsT{k`5Cj+Y z(G0M7gy-aRW8!0j4tF%bUD?^BONbcRgeG0ja#WZY_~VZ-?G-BG5)yJ_ zL!Vt{%*~2qWUV9TQN5lQI%{$?&viN()^yh}i3sRVr01pO^%7x^cn_8tdvWO6Rj9et zV*2>l$y0bW34qP=xw#ZB-zgly%ep0=s#VQ+Sg~nY6u^kzO}8#Y``L-?EkEyT>p}HE zFSGp5cC@jP<(&8gwUT=Q(w4=**qRzPDamji7f!4=OiD%LZ{~>teNSKyaDmjp^z0<1 zuGX;GtW|+=Lc65|=EAMX=*id&qvv6VTCgtOe5NJT!BnP-kUN z$)&w{yx3+oP?$6Yg-c*(+o*qHV}hr$I8G+RkRZLkTkuYxF1UeXsM2^AJ@1{iyDZCQDhzJRjfJwHJHg^;mz<_mJk$pX3 z@h8v-kEy7PKO8(XX@5zRHzYYsKy)r5B`{RlrzY+q6`iViXrFCKZS66e1#uuHFko6WH z2_S))RmLcZq_6KE2nux2VHNMgO->6;>qlD<(nH{1MCe@Ji=%dt@YFZ_cj6 zBrvTiD`vIbUEfxx*|JhaMHl!u&_5{UVU}vWsLFWK7+>7PoVXiLN#SAEb8>W^;QQKt zA&cWIZr1WL_vzT+ANfH?8>!vv%*y`y3#6z(Mpr^-G{e>6 zeUiD_;;Ma7<0+mF>2x67Rx2|i85cEdvy*sNE7TdQR<3}1^i%S=cf~grE6c}nenueV z{G9mdv0Y&dS8t^QSSFBcawsyq+aBcda@rer-RkSUuo|*>aPc#xqsIWhOQ z{$6oT(_*n1=4wY2$AX`)d?56>66`vOZ3Sp5~FXaa!d);%H8B1TV*5ctgP9lnf{~S4Z3Sf73r1$j6mcYQU88`mMQ?pUzV;R58#gUu~)!2^B13_~C|7ELx??CS?P(6x;MnSo&cDrIgPq{Nbl&`XPqMB z;`oRb;*)vYp{b-#BX1O7StMq`&LyV&>dW;`4eF!`-8e`Eqof}s1`Q4U@f$$o+j4hh zFDFeG7^0m3I-c4!q7tSi?4~hK%XlyuFX%k%{1nV3lGYK_>ujf{rUo1@@)DOH`@Zt? z2ripda`;mFB~W*5^dwM^pZw`!$AH9sxNPUbYo)ntmBft33ZuLDJ$fh+`}kglDBJV;SATvtUCz z%T{8q>c$v2`>oSQgE^~{`t0lrH4$k$s~r1mF5-fdqGGj{2)ICL?G$yn5_20?7|Hfl zsD1uwAsT<7lp_b$K}%buXpmb{%sm0$!`7z~lCvld4H{XsDi33ds(_9l5QY)}Uj`yE zg+{B5SX$L0I}b{)j&v1T`}q^*iadwUG45pA%L zQ4VEG)4E4iwdnPT`VAG@`^ogfA0%9Gf1O6;U-_x(U)HE@$#2=e5CRelxk1dnq**6F zPn>(X$t?mU>6DADOT=?4F zqiM*1)!WS@!WUAt>VD#dD+kv_nKyXG{A(Na{a+{TiC~HeVdzgtKhV|q%m1LQzXHf- zGn$f7Ykb8BP{KOa>TIewd`@hQEO+LuoNw_Cag)hK#sq*##r^$ZxDwgtLL2y^G`ubvFGk!m2+Kq5 zNiG)abSr?KQ9)Sey1t-OO|`#2oOL_BWaPbFmqV=qI)bm8fk-4@uX}_zTqSy7=M@ou z#P&4x4r_TW!EU!|%qoq>}}cg=6Tq=rQ$9l(=}V zJqw3LsZ5og;o2OVovUrVDE8kSkYuPn+lYV`P2!R!zSb{%cfaU%Q zxy3RUMNHH>WRfJr_UFu~F<;A=U79+{3Ju3zw&PT44>sj>5FjDK=3 z$@}gErT*Hh50p<#5PY=wD$9v+9dm)Eyyf z<3ePtJ}hG2*J6xXyg1#zzqSZKtEr0s7Z*3nTvbSHi?d{|NwgwTa^9i-uIz6>5Pr`I zWIrULS#_0@{B0Zs#n@J;q0+RxCi~v%JLR_KR;j$4%%6phyI3uBeeRp?w|iq`&T(g* ze*2Jtd|{#;A*ie3R?g;rW>z+u^n+b<^T@9Qi^vfudm-=V2=stPyc)|a!gZJjt{}Mm zmd?jP{gHpcGo4cj-7dJ#SDvqu) z?iZdQkfyFW3Rcg}(Yn@86Qa<1G9UaukzD`v&>h8%C8VYv*xwEL$?J@|>}FBrAh-;d z^7`W?y<2-1v=(BB^2;lI1J&#G`bYhtC}AITlJr+knLKWSX{6h zeI|z{xol3=fhIeURpjLh$y?aGUaPms!_b&HVAqudmC6vOZ7hj&pyG*zmMy#JH#~6qc0}6dXW& zIJE^4uT+eEg|s63R%Vtl(a>FsfT9x?E(6#)J?QWJ$^v^&fIV;@@`3V{6vOP@2^pzpd<<yP)w2hTj*%vv%FePur!(~nS4 zbSli`C<-xqzA&4{_Y94VC^a6PwsjpZj!1B7KUa2rK||RHs6}=eI`?4wWFF1JM=j1> z!oaO%44r|W*A2gCH`$J~(d+W5jCp`>B{*544_!EvcX{)gi}8i}-9*9)zX;M6)^!yB zRHV1(7D}kUG#Vxsb1y`^X!v%MfHp+6($=Y*a3G{s>F+pNgd#)s&dT6NROTa0Cc&U_ zRYYDq0s=*cPp;qKu2Q4tzn}@C_enmd`n=0#l{NF+rBie0Ud#-!Y4;Tx_dZ0Ae|!Du z136A_YC-C@xj*G6UvUoC+Td6LXk$=Be3b-P zZB+(iPfso8aR%cg4*a0;U-04Y6WjKK)?B2va2__Y@ZFf|l%hl8Td0!Z9$Ouh!0$q} z&cbDkzp@fTod$j-V2I{%h@hV}00sRZtcfI$Hpo$8XwFSvvk`5+e%}nU>ez63~_O+(JnHx7EvTeAtA){_j!u3Ob~BIpc+3w0XnsrPE|0}%5kSwcvw4%;7dq^=rk-7r@A}ud^MA@a zC9noe0m*4Hk4!FaeyO7VEav{!WCw$QDKUgKW9qtI1U1FkQknX>K2h=|gq~b2G5Fzy zkJ`ap(ak zEfgviD7Ns2J1{%ogU9?f4dqv7DW%0J;KUa7V<#&#}`d6n#8JDOYg!f~>g_zxj#-7UJm@kvN8QXL+J3Rw2M%Tqe ztVt+dhUR@GU`}s z#pEyZJ(#ANzCJUoT%y!BayIz-v)9zn!-9e zL`lvijTGeMV*ya2)P20iR>T4=89Kw6b+RcB}AS z<4=Xbg<5)sL8uF&WOhr6@W^nhSJ}TPD?FEF-VEJ?j$To74y{Ebp_b*}ZXhAO5+Q=T z1K!dK@+l>YhMn|`m?{Xq>L<0|5>Wi-emXA$WWK_o{|YLF=&CA|gozAIBP;32l{IT{i#G6+Sr zked>@uWIh+%w%;H(2I|6K2A?0h1%IgSb`Ywb|6@s_vy&e+rHRknIAz`J9T;Y7S~+v zL~6EE^uoTc8^S#1;*La$f=;i1w3`cCfLL14bKv6KppY0j{MeYFqdojWowSF8(HsQd ztF)n+_jFKran8--Nrq>i6UUY{TBT7O8cTpgOFQUvLG+`s^>BMuear*JUzdGNs^UxU zYz*vwq!Om>#XWSg8Xf!^z$&y@$USc_4V3vEr+T5)4#HG2iq1B#tCO&MkHmvwW; z{atqz5v-~`ON+h%8^S~#9bYmh&LJrk{1b|2&pE(`b@(m?r_sK5C|lwhlg5eboe3RP z`{XAZsgz1I8jc6uzj#gmc7msnRnz>S*Gd8vAXz~n%e^ZO`I$9LNlXA4=&V&vFZIjYpvS_MqdOe7D| zr%^5yW6PLM57mmKF)hdA9GptK1Qr3l68{P*Zd*Dw7ex&JUmS(%lVIU+xAi)W)8+Q*50fI|#x8UxsfdCtKcX#*T5F8Rb zKyY_=I|JPJ^St$)^ZkHRbyB-h)Mn`E>F!y2t#zfnb%8;j`tYN|4mTi-FH^p<{?)5j zw#$2@^6wz_g_o=NvapVilLGxCLT%=Ne$zJ63vQcTy@)Pew|tL?Q6U&50`@DzK1o*5 z?O8xFgAN-H5#-YdmvMDQTN|@%Mu|gXw)i-jjE$K1g9-|j_5CzP>8O%79CpA=E-hJU z-hzRllK=K!X63`f+#!#$uOt)SA6Iti6Vevbi$4~Xn?+#Lz6~$8%cm15(Pr|TB@a#=%@T77}G@G z-vPHQG%OPhH=`fiS`1qWoIT4+)V1}Y$Hha&(aU{KB zM<33%je``{$i!T0oM-l+8YOLSZT?LDJ1a^2|g=!OYMf0~(0lQGdr)e(O}kT>nu| zhI#TeLMsvjQkJoZNw}Ch_Yu}2w276C{(N>W=x>jz={9`Ij+5mgdYs^%uio(=nCZmE za1ZUf;OpEx(p?ociSnQ#w0mAg4z2I$rw*^URE(t%Dl8PDGv7*zk&CPbTrGGxhi{Mh z>D?5dLBu-)i9f>`br8Rq!ROC17p}ec-x4&q%_ZY}lj;KHeJ>{Ck}8Okj!h{^O4yms z^2;yJu4meMd2}0$Mf|m|sY;(uiVLCNBWx|^^z;rads-iGeorp)o-vt8YE!%!#O3CCnZ0!?-msQg1_4@*pm^0&1YQ}07P z@K~X6cQNqu_EKw%pk+W`eSkh@*I#x~U+);rG1NiUzFC3KO+R85!hSnTa)C^Yg9uSw z+IX+UXdx7f=S*H$0RMgrCMW-VYjrupT>)rPwEPVQ`R}g=m=v21kIC`LuLsm6%m+q+ z>VCFM_+1T*mtl49OIK$t7J7fmvCy%Lzdkj$bLOV-tTu->S4zICf4sA+RP9+a;=4^W zpKo%QDXWbl|ID-uL*Pz$*nAqcx6q>g#5q|M4>BhWSVEb$eYo01=~^WeZEt~HdIkRt zUVE@*xeFDHaHZDwW>?kKaOcx|#@iKF(X96APwcSJD)UF{=DtV$1B3P#7tPwe*!&R7 z)Y7jf_1IHj=ycs_^?lVH>01B5#7$gVV!}fcw{HCKA>Z+%v+w$Y;aZwFt+LnhEdU%+ za&6b)@trlzBDLfFH&pGXl&w-2g#4CL*m;#^KX>l#47t=Oizq#gaazK2&Uh&i#k&>< z5%MoLz>AZYTu%Advj7gJjpVQJD)!pQzx;rIecB8Bh1*f~X%IT`Hrg3EpBjxO1kW`G zW%XTsBIIK-00Q-Y4fk*zmF`q~0$)41zHwK{reN5&s#S3bI=}tB#rtQ|ySNXSfqZ&n(GsD?Utz?)5URZMBP-@+dl6DX>} z#3`m<=DqTLt9TU4I&|+u3NBXzlrhU zH~fCSHIU9g`S5|fOAupwcc0nP7BK-M|GBv;Xvqf}sb_L>looJGQE+i-#KgqRKWzK# zO8RU=1_$N00ldGob!Dn9*epDM`1bzCts)_y4Zmtu_kVzegNr;nvzJN9oBjpRz`e4B zgcj}khJ}Gm=D~A6Huh)d|MN%k9@UB12p~#I%CwJC<>{!vwE8hxg~s~tHf^_V)`Xz6bePzciK%fc zkXpeanD*58_vO-wg$tSK$;m5{M)FNeO{FCzB`xMA*7D?ddTq$((Rta$dC<_%L;-I4 z9-Rx(`|QudR7Ruc=vr^Ip1VwownIV|I|xw?77cOD)mbpphT-k?#B=)r(jtHclm|&o zmiG4YaM7x&KY3SOvRv8zYWZKHzG7jBbuhl-Wb$Xi{{H?Nt+J_4B})$X%13I=6K|3D zc_dYsR##VYOLGO6sAQxiVltL8&>J}EU!I#EN(Qw8A-u0PxL)7gyc2ZEuWx&5{?xwt z&&?ZXXjrC!FY4wh^Q-T6$V9%VbMx3flU4wZRVMPwQB4 z#oOuZc8%9t)HY(>dj0{zqSY6qR+F8(XbIE;snah2kpwXaT{S1GzwE3@k%2)cLa^H_ z8#B-io%l_ys;a7a-WFC)=?XE*5;Dr^0smnEwN`|pDA7`$Cq!gzgvkZ7S@fu6XBm&M?;PhjN|e{J8`F;5jKvh^QEXG zWbMMDf=Nz&2R*z>*FTaktfYjH%ESz&wf&(IPC1ROio494eUT(02^QBy96mW zx5j%sPLPR-Ng9vI$iWlvREFrd_ALZ+`-dO2lzTBi6@fd+q8R8iN>U&NzQ zDug&)J!}2o^>{q%gV!JXy_sg0>Wt6K?1xV;>g(Ni${aV*B-_1A`mwi8_~ITG(T)n3 zm)~aWf}X@Nzy~XwQC_cImexiZ8lLoeQt~}Mw=uT~wS$LN?-P!yX+(`?R}_$A2Dcac zQQ4IYrBW8QQiGo}1`&ZWglE8!GX}IjYvSfqELRU}SP-e`p1>CeP^#@IFVvp!0jU{2 zCMLz!!7F7KC#QM^o`T7TwGI?aGzu^!+|b@>)UEe8;E5CZtP^@S48r81o3=C)DGe6v z&DG1KxgBu8y?dt_Hh7$3$?uIJ$*z)P#40q=BSeEhlStH&d2-~LtI_7HzG}d!LU5`o zu;KEoWCvjhP0;3D>CzgDY~nFyD!&FaUvDJ$2pjkZG{jOCOq*QaSMZa}sce4Sb6rvLMwLqAiNytIpZFO9zoJ}PBckX; zZ9I2#JzkrQmZ$~cRsOCwAX;8gq&=Vr89F-FQM#+k$r1Z{2-;p3o5{HrYxJ0ZP2=?# z`G@@&46W0+XL=X~uNGFY;u#CBbzco-Pnf6{DoeBf812q&!uo;XL*P(zGq*g1ld-5< zYV9zKR8s!WhzMwd`fj7lbn8f3C;cv9B!*Goi=pp4{w~CxhfbF@S6V zC^yemZV6SY`*b^Sv9KaXN52#ndx1X4Xh%jaBU4fg#Qr{#6<{Z{d>IO)LoTbXN)I#& zjH}{81bw9FcJ2zp<02CfV3GWTb*v50$hX0Cc6L6&xAO)&3+40IbbksqT5klY&?u?4 z<;r$;b~UFVL%!%7Nt6Pr^3jCB;5=##A?F>54qU9s_+4;@v0 zhfp$n@EbgJdJhZB;J}pb_22>qgChr(>CA4+#kUW4<5_>cj%s65&eGdry1e7^VFuow zBSWYoEmrm#(d}Vd$`*Ax5<#W$*9Tjp*>V~hd&9;bFI@nJqZD!qtJ!yPLp3!laEOTP z#HWMwZ85V&*d}J%F>(HElnXUVa?EnZ!)JNP-|T?y^+(uHg0BRVNIgaH|CYw&`5PXe zp0ktghv9M%11dtR%Li2x8(^TwJwE-DJ*vdS$*ERnF-Nwg>j@CrQ_{AO1MCFRQyWT@ zvlU8H#+2Dx4aQAk+!u69-M~BA{2k(Lez=;2sbm3jE$!&Mh01MEwieSYJP9&dssHgz zdnizR2~S9v2n0T+36({{CNadv^$8qo9mH3iKrRPKRuO zJQ}D{XpU_UG!Wuclw_M?l>oq%h2i4QAx$p@uQePbI^K8-A% zT6QcYiPo{Jh|+R$QI&>SF<-8IZ5ute<0h1N$7oK4`uoJ9y-pwQ_Pb$w%J|$e9XVU*tH^i?z>C5=8AX54pcj$G++g zcSqBvS&w!Q0s0A_*PQ|#9ewQgZ^H9QDZoG`o1|hJuO6EyN+h#^V?@D4DLH3-1>$ep zvOOM44j2dQL=|MHx-ZEpiriUYHeOb3Honse++!+(j;D42DRoY69+sehfPfFUS_l?R zeA0%*$4CGucvF==mPvPN3zz!=XAD`^t zm5sU$fwp-pJf^WCist}Enm%)xsL85<4Enp-=!GbHDiwD&3F$``Av3d^WO8E_j$;sB z#_jEuoI9PhSOXV8M-hO`kCk~`c`R0(qefwQ5kvn4k*(JEDjguo8K&GeWvv9XbT&0b~7I}9z{!mU%$ zS6QWAeop{!4HfiJh)IbtV=WmcLBf-AR(Gg@+eWXF#dSFzS(nm+fdpjZM@w!~3@D_e z3f`4%%(&s9AxZRTHY{xHsI)Zv?Sq53iwj4_IH_8DHghVLlYN-+lZwne}ev3G?b@<9cS4*&40uEdW2!MfQWMuR%5dDaU z%^G{)!PZ-P@XJL(y!ew2{F)7rm6KYK^ewzJDb_Pf@H1PhtE->wJIBEEu)h-@J87YJ z$=Fd;#GukWE)px74ri)+RRXuvG{kP2F%H=8TKs-@PwSgE`Jg(%EW&@Sm_&Xj;iR2$$U5%>K)4k_@1<UdTcEW^e%#BWo0D``x9(qz4N3y8LR+pcKZ1z-jk36Lv*r~X}4MaT@CCI@=)&n zN}S^R5<>WI0s*)z2BJx>!xRk7Y+kVYR)Wlr{KYi%nE_m{k&%EyK$JNXL4u-VV`H&) zb9pKejuVW*K|3)2xNe33yp)5BpcOESm%c;0y1C_MWvze{Bor7M>^8%ec>XheK#Qd! zEy}=uM0YT7 zzPaG|HHhVL<0M6rdB{+6gLJm{4i7)vnuT3#K99Ln3e2>{VV%PYu&Bvl`6;qkK^luA zLfPTr;T&%gH!5_-q#mF@JpjYPa6b@_Tr+C@3k7P`kiDp_PJ?laten zVz-A80J3br$gco$j5X0qPhs3A)X?!%sXCdjdn=gBI$SVf1fzVrmY>50xUl>QCwyKH z@np?q{Bm}2x&GEoT-9%b5Vro}Dj$J>^&xjTB7a&RkgU488BpV8 zD)P!MaF+$~_CF#6XzQlfP< z3=9nFOGFOXp|_F?PZ1L>srJQ1ZD6Y8SXfx^;qxDXF3By(5ip4OF)J%8`F^0V@W8+$ zQ~wlz@(<|m00PcnG^`h(nU1KQLpKBjR;{>FxJptg9H^+Mq=1(D^yw4se$NxD6Y$AH zb{?B%-hb!$vh&YN3fwgqaAg}YO}YJ_1AhO6{V0Js0a1I1b#IJ=bCt^WoFfbl>Tn85oOoZ0it`1UfMH*^YM(Afw1TfJD#FaOg36)PKh z1y2}({|=cC9EjAcWt^vx{{8&FDgLuJ|5vQyk<-ol#g`pL($>~Cv9gMbbpwsT{a;X4~Go5x#pb8-<>(DOO?NU11w?m{0 z{M;%3<6T%1gBl|Cih}WaCMNsmsHzYHVu2KDZTUZE6!_tZmeu`#zwmGFo@Bn_*tFQx5ArJ~S!w%ScI;FFX6f~N6VD$qebzF*8h2-}uCMl3!GCZ02B=rJ ziOf9_+g&HF%H*!??4id7>K@$eW zNIZ13to3W%Mw_{LMzT{tFB(reYB*%~iEz`~i zB4MtJfd#>#$|45wm&UKIDq-Qv`phU$*O#Tl!Yfnfly3MpU*aT#K=+qbJmjC| z$F$|KtG6EnF)9n)c(!)q`b>C2ChkZV!HW60~NdhIAy6B{x^Ti2BJZs)2T!!>b7wQqe}bGA4Bjs~X9B>4bu zlGu$Q79t|clxjZn9P zd6i1o{q7FbM=um*E3Us-7AmJUNiocmJ!V}j$*DyZ$$*}~TSv4lr|jT#=&drT`7V0J zuU5N>bM7Z6CNa^nE($g-1+$$sS&s!1H#eZbu`jRx442xZ&o+`WeAM4bASdDJ{d|-A z!%NoH4MteRs%|tBe|yU~zTKN2Zqn>K^y{HOM0B1uMH;~_y-~A{okHgE_l%Gzm|3gv zuCC_MMjMYnWh0=o%jmqc06-R?3Ur8|$$Av5LuG!7-iV5-1VR`5c9$FAarvZ;o|t$| zT4f_2obx_ROkXnRN^%RCYO2IRyZ`aRtA*af!-MIg4kMIh#u?A`kH<4`&;ZEgfNL>+ zI;W)@tk&Spiv{p`0 zm5$wNrRp}DQqiG&|@#(oz@Q58xRGJ60JXu{^D|%t&T*dkl*VO z)8Q1Cnd1(O#$u(usaf@tnSgXLsm(y>au?Ny`(2!gVLUQ1lkKP|Oj1v(d$r>7zPYxm zS`F7f#2D%od#>AaRYsacO@)(_2h2oMM6kch*UlQ}#taf=KR7nKU-CVqHrJ7MOf=Tm zPl>B)228}K#)m&##nu#}Gn*ZTuiXYP0dJ4GF;XA&-DI9cc*OV@emF>@bxJba>i@B z*!I(^7fBmTv_#+kGhmGiro8|0blIa8)=}(d>ZzQzjopaFq7hfu*G0K@ReN71ORH_Oi==3jv}ev+ z9;F{noWVjeA8JfvHMCP`M+F|K4&7a)ZeW1m?__|jxnPPP%#E0}d0vcAp6HQvte+%Y zM@2WTYFn$ySBCrU=?~K=m7xd&*D{{vD=1(|o0FTxyVB-5R>986PbTbR(jit6cO{_f zef3A0&4Jmqo%9ER*4ZQNHRCT7n(M)hrOrdlfQ@`T6nWzJ^2mc??eq+Cj?E9##LI2b zh|=@1H&b+2*juq354=DkBW||J>?FS(0uCS*_~u|{AShO;pOXueG-vslp$wzKaq+fN z5#QHRaIJh)Y!&FZzABvK;)mL^iN6_ZXeuc##s^CY>pPD?x(LHp_KFnNj+R~Jk>Mgm z5aF<)_4N^w}(>{)Q_bPQTI7_@z6>M zfJOTD)#mz>umY%1#oI-`vGf~kRuYJrdKPN@u#qvv!OqDQsP5)+RWLX0d`~wzPpfG$ zX?wb20u~>N8lH3PJMeJJWuUdyvLH#v%=PEpu=3Oj>tzkLnw9Pkw9%tfK*mBwC-w31 zalHx*vA+m1pjtQqpK{#mN>Y_;#z;$T9K#Jq;q6?6+e8qBcSSbGXsUp~jM`!n+W9rg zT5&gNBq*s@wcZY{Sb)(z2;fWY5+P5|{@EIVb`dB+pbNfna?V=GG{O;`iIr(&+=cY^ zj%jSuEEOenaaf`|LJZ3GJbjgVXKoi_7px+FR|2^CX?s z)emR(9GSB=$57l$d4CnOu9IztPjrgKA+=#+y z)0o4PF(;WsJV-X=;xd&?%m`4#0#j*Zbf@F>C$HYISK1~ zCJ>9Ho}N6Z_UrkAxJ#_P!}!((Ppmz&7zypP2>5C09IFQ9`OWw>#5QoW-{VoYmV{spB_p#hDw zxE21e0;%S$k<8=o|5@C9#m}^ZyI;Fnt4`}$;bA@X*IK07)ebApo#70m*kUYchs+r$ z-N1flqb?LdbTZX$Ht)o)(0nHf89gSOZDL(PprCQ_!F3-<5a1&fkVcfSkz5&aWJlNU zvGSgWV5ei{2+!r$*Vx<3T3Z*maC~GE{|40>wr*cTuTA0;3*^We<#Jr`o()l-T;$&; z+^MAwa*Gp0zJf|(sz0QvP`=?!v`yIKO{((V@M$mdABT&_gx+e!#09~eBr_w{AUdbB zD6sb()!C!#p9U-A;t)ickuSt8dRa^FaNhphK&7HI!9u~oBND*2!otTODNIa^swb2A zbbC1XcssZ#0kn#Y+Q5md752PPUW~oVIdU=ZzcsCrGj70$%VQ`>>`d62)=sbCu;7V5@cM|^IdkWwHRn^V|PC7P4eQFB)~w%oWV_<2xgo5 z>=9tbacOHsY@`-O#UpWss|bdGARtg7rs7&+cz4Q6HDSKV+1faD5UkW(XMKryJx@9qlao%QL=xzOJUi@+AWQ$ z_qwWt$Q~>0Uk^M^w4EI2D*7%pCdY!P z7Q#U0{=>;}q1za94jijp%IugHUA`4N&aQ!uafSYdfp|fi<5J@4$J@DK2Su_4InbxE zu_zFghFeB<+Ik3T2%^(K7tG|?Bzt1PS3b{&$2Wccnp~u^ySCCH4*iAnCSOl~+*Y=gSLZgpwe452 zQ(;2~%6n>x1<$VDV+;>7CYRv5EX)1^aZn^(GqTRdvC(rQ-1cxMJ}N4f zQnlYyGvxP>S-OqX#&+CP9%rG;1aXURm#NQL?AeO%Ne_E^bja3{iKPPp&_p3RP&9@X zJ8pSE{$zJi1w>A#b;52QDJ6^*rC=}mHcDdM(W8yK`K{kGs938Ui}E(SR%qCF68rv9=5m(!j<$ZnPNsPf#__ERQf ze-d;Ix$=Np?yoWG`d=PIP9DDc)vQ8qZO1{JCce#gW5`&}hkgpRX9K>)ri#t1Gty%s zr7=po1sEciu|q4bY|muVV!ZBrQp(LIrg3tz?G#S3C%H}0^1>Zw`y>7~BQ#Dckdkx_ z+g?xPC+*`?zapYCu3nXD%r05EKWX8EkEw8aB#a-J%PG5yVo}ysE-r35_o$i5pZbAY zYm#E5ld|V|fbMd>E*OQ(TAjL9M2`Wp^b`8-A=*-l+e`Yzv1y+Nh^7z_!Xnl}G-hfX z0?g;Cl=K8WY8sk^KhwOL?V8J@`)W~(nelUa9De=!LmTa)$7!;y@uh3OXb@X2*id@r z7oU(^wJnHEM;04Mef?@EEnO+cTIFIdjT8-?lN8m?_85i-jr9_jrtXjBA2=6l4e}9+ zzpWEQdJxj$tCM(pYTKQ^>#tF69<4jqAe4*N-^AU}Om2|?DS#Xmn@U2IJwNt)tVno< zaX}X>N*!hK(*-4~rQ74)7evOWDPFf1H@sU_Q(IHas}?gFV`!;y4Al~VkxLSbP*-X+?!CvS!NzD82kxd1~t9VMV4PVo|p z5o54FTtI#TF1N@uYx$wW9a>f5dP}^;vN}uVfxPjV;f4_8o3ft0aI!h=2H+~ft z44AaGk?Su1op8GZ;FP;=ciQ~}J$RbW|IhkBjZ1t;drE%(GZUZnC;LM~-$m=+Z-CgF l95CVkeHs4`OLz4MDNnp;MEdQl83OnxCM+#f_DSd4{{lTVthxXI literal 0 HcmV?d00001 diff --git a/public/images/blog/rook-2.png b/public/images/blog/rook-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e95287577714eb9c439aeddee2c58840acc704a5 GIT binary patch literal 32833 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
  • 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 LtZ=2Ee!%|$Mm3^w literal 0 HcmV?d00001 diff --git a/public/images/blog/rook-3.png b/public/images/blog/rook-3.png new file mode 100644 index 0000000000000000000000000000000000000000..b107013c63f097f04bfae0004cc00183246cad0d GIT binary patch literal 50537 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