From a2c1d8bcc484eafcb381f404d290a1792db527fe Mon Sep 17 00:00:00 2001 From: Shraman Jain <60072287+Shraman-jain@users.noreply.github.com> Date: Tue, 4 Jun 2024 22:42:07 +0530 Subject: [PATCH 01/53] Update index.md add threading.md --- contrib/advanced-python/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/advanced-python/index.md b/contrib/advanced-python/index.md index b31544e..552025a 100644 --- a/contrib/advanced-python/index.md +++ b/contrib/advanced-python/index.md @@ -10,3 +10,4 @@ - [Protocols](protocols.md) - [Exception Handling in Python](exception-handling.md) - [Generators](generators.md) +- [Threading](threading.md) From ca4ce0620a9840af9e39f649e87166d4c0a895eb Mon Sep 17 00:00:00 2001 From: Shraman Jain <60072287+Shraman-jain@users.noreply.github.com> Date: Tue, 4 Jun 2024 22:44:27 +0530 Subject: [PATCH 02/53] Create threading.md --- contrib/advanced-python/threading.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 contrib/advanced-python/threading.md diff --git a/contrib/advanced-python/threading.md b/contrib/advanced-python/threading.md new file mode 100644 index 0000000..85b5f4b --- /dev/null +++ b/contrib/advanced-python/threading.md @@ -0,0 +1 @@ +#Threading From 23fdbccff1a0ab84f8785391d774a35cc69f668f Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sun, 9 Jun 2024 13:12:13 +0530 Subject: [PATCH 03/53] Added Reinforcement Learning --- .../machine-learning/assets/rl-components.png | Bin 0 -> 62544 bytes contrib/machine-learning/index.md | 1 + .../reinforcement-learning.md | 327 ++++++++++++++++++ 3 files changed, 328 insertions(+) create mode 100644 contrib/machine-learning/assets/rl-components.png create mode 100644 contrib/machine-learning/reinforcement-learning.md diff --git a/contrib/machine-learning/assets/rl-components.png b/contrib/machine-learning/assets/rl-components.png new file mode 100644 index 0000000000000000000000000000000000000000..cb359cf455ebd9fdf83221d1b97c6bbb05810543 GIT binary patch literal 62544 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 Bzg7SM literal 0 HcmV?d00001 diff --git a/contrib/machine-learning/index.md b/contrib/machine-learning/index.md index 0bf39f9..f6d988f 100644 --- a/contrib/machine-learning/index.md +++ b/contrib/machine-learning/index.md @@ -20,3 +20,4 @@ - [Grid Search](grid-search.md) - [Transformers](transformers.md) - [K-nearest neighbor (KNN)](knn.md) +- [Reinforcement Learning](reinforcement-learning.md) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md new file mode 100644 index 0000000..b470ed3 --- /dev/null +++ b/contrib/machine-learning/reinforcement-learning.md @@ -0,0 +1,327 @@ +# Reinforcement Learning: A Comprehensive Guide + +Reinforcement Learning (RL) is a field of Machine Learing which focuses on goal-directed learning from interaction with the environment. In RL, an agent learns to make decisions by performing actions in an environment to maximize cumulative numerical reward signal. This README aims to provide a thorough understanding of RL, covering key concepts, algorithms, applications, and resources. + +## Table of Contents + +
+Click to expand + +1. [What is Reinforcement Learning?](#what-is-reinforcement-learning) +2. [Key Concepts and Terminology](#key-concepts-and-terminology) + - [Agent](#agent) + - [Environment](#environment) + - [State](#state) + - [Action](#action) + - [Reward](#reward) + - [Policy](#policy) + - [Value Function](#value-function) + - [Model](#model) + - [Exploration vs. Exploitation](#exploration-vs-exploitation) +3. [Types of Reinforcement Learning](#types-of-reinforcement-learning) + - [Model-Based vs Model-Free](#model-based-vs-model-free) + - [Value-Based Methods](#value-based-methods) + - [Policy-Based Methods](#policy-based-methods) + - [Actor-Critic Methods](#actor-critic-methods) +4. [Important Algorithms](#important-algorithms) + - [Q-Learning](#q-learning) + - [Deep Q-Networks](#deep-q-networks-dqn) + - [SARSA](#sarsa) + - [REINFORCE Algorithm](#reinforce-algorithm) + - [Proximal Policy Optimization (PPO)](#proximal-policy-optimization-ppo) + - [A2C/A3C](#a2ca3c) +5. [Mathematical Background](#mathematical-background) + - [Markov Decision Processes (MDP)](#markov-decision-processes-mdps) + - [Bellman Equations](#bellman-equations) +6. [Applications of Reinforcement Learning](#applications-of-reinforcement-learning) + - [Gaming](#gaming) + - [Robotics](#robotics) + - [Finance](#finance) + - [Healthcare](#healthcare) +7. [Tools and Libraries](#tools-and-libraries) +8. [Resources for Further Learning](#resources-for-further-learning) + - [Books](#books) + - [Online Courses](#online-courses) + - [Research Papers](#research-papers) + - [Blogs and Websites](#blogs-and-websites) +9. [How to Start with Reinforcement Learning](#how-to-start-with-reinforcement-learning) + - [Prerequisites](#prerequisites) + - [Beginner Project](#beginner-project) +10. [Conclusion](#conclusion) + +
+ +## What is Reinforcement Learning? + +Reinforcement learning involves determining the best actions to take in various situations to maximize a numerical reward signal. Instead of being instructed on which actions to take, the learner must explore and identify the actions that lead to the highest rewards through trial and error. After each action performed in its environment, a trainer may give feedback in the form of rewards or penalties to indicate the desirability of the resulting state. Unlike supervised learning, reinforcement learning does not depend on labeled data but instead learns from the outcomes of its actions. + +## Key Concepts and Terminology + +![image](assets/rl-components.png) + +### Agent +Agent is a system or entity that learns to make decisions by interacting with an environment. The agent improves its performance by trial and error, receiving feedback from the environment in the form of rewards or punishments. + +### Environment +Environment is the setting or world in which the agent operates and interacts with. It provides the agent with states and feedback based on the agent's actions. + +### State +State represents the current situation of the environment, encapsulating all the relevant information needed for decision-making. + +### Action +Action represents a move that can be taken by the agent, which would affect the state of the environment. The set of all possible actions is called the action space. + +### Reward +Reward is the feedback from the environment in response to the agent’s action, thereby defining what are good and bad actions. Agent aims to maximize the total reward over time. + +### Policy +Policy is a strategy used by the agent to determine its actions based on the current state. In some cases the policy may be a simple function or lookup table, whereas in others it may involve extensive computation such as a search process. + +### Value Function +The value function of a state is the expected total amount of reward an agent can expect to accumulate over the future, starting from that state. There are two main types of value functions: + - **State Value Function (V)**: The expected reward starting from a state and following a certain policy thereafter. + - **Action Value Function (Q)**: The expected reward starting from a state, taking a specific action, and following a certain policy thereafter. + +### Model +Model mimics the behavior of the environment, or more generally, that allows inferences to be made about how the environment will behave. + +### Exploration vs. Exploitation +To accumulate substantial rewards, a reinforcement learning agent needs to favor actions that have previously yielded high rewards. However, to identify these effective actions, the agent must also attempt actions it hasn't tried before. This means the agent must *exploit* its past experiences to gain rewards, while also *exploring* new actions to improve its future decision-making. + +## Types of Reinforcement Learning + +### Model-Based vs Model-Free + +**Model-Based Reinforcement Learning:** Model-based methods involve creating a model of the environment to predict future states and rewards, allowing the agent to plan its actions by simulating various scenarios. These methods often involve two main components: + +**Model-Free Reinforcement Learning:** Model-free methods do not explicitly learn a model of the environment. Instead, they learn a policy or value function directly from the interactions with the environment. These methods can be further divided into two categories: value-based and policy-based methods. + +### Value-Based Methods: +Value-based methods focus on estimating the value function, and the policy is indirectly derived from the value function. + +### Policy-Based Methods: +Policy-based methods directly optimize the policy by maximizing the expected cumulative rewardto find the optimal parameters. + +### Actor-Critic Methods: +Actor-Critic methods combine the strengths of both value-based and policy-based methods. Actor learns the policy that maps states to actions and Critic learns the value function that evaluates the action chosen by the actor. + +## Important Algorithms + +### Q-Learning +Q-Learning is a model-free algorithm used in reinforcement learning to learn the value of an action in a particular state. It aims to find the optimal policy by iteratively updating the Q-values, which represent the expected cumulative reward of taking a particular action in a given state and following the optimal policy thereafter. + +#### Algorithm: +1. Initialize Q-values arbitrarily for all state-action pairs. +2. Repeat for each episode: + - Choose an action using an exploration strategy (e.g., epsilon-greedy). + - Take the action, observe the reward and the next state. + - Update the Q-value of the current state-action pair using the Bellman equation: + \[ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) \] + where: + - \( Q(s, a) \) is the Q-value of state \( s \) and action \( a \). + - \( r \) is the observed reward. + - \( s' \) is the next state. + - \( \alpha \) is the learning rate. + - \( \gamma \) is the discount factor. +3. Until convergence or a maximum number of episodes. + +### Deep Q-Networks (DQN) +Deep Q-Networks (DQN) extend Q-learning to high-dimensional state spaces using deep neural networks to approximate the Q-function. It uses experience replay and target networks to improve stability and convergence. + +#### Algorithm: +1. Initialize the Q-network with random weights. +2. Initialize a target network with the same weights as the Q-network. +3. Repeat for each episode: + - Initialize the environment state \( s \). + - Repeat for each timestep: + - With probability \( \epsilon \), choose a random action. Otherwise, select the action with the highest Q-value according to the Q-network. + - Take the chosen action, observe the reward \( r \) and the next state \( s' \). + - Store the transition \( (s, a, r, s') \) in the replay memory. + - Sample a minibatch of transitions from the replay memory. + - Compute the target Q-value for each transition: + \[ y_j = \begin{cases} r_j & \text{if episode terminates at step } j+1 \\ + r_j + \gamma \max_{a'} Q(s', a'; \theta^-) & \text{otherwise} \end{cases} \] + where: + - \( \theta^- \) represents the parameters of the target network. + - \( y_j \) is the target Q-value for the \( j \)th transition. + - Update the Q-network parameters by minimizing the temporal difference loss: + \[ \mathcal{L}(\theta) = \frac{1}{N} \sum_{j} (y_j - Q(s_j, a_j; \theta))^2 \] +4. Until convergence or a maximum number of episodes. + +### SARSA +SARSA (State-Action-Reward-State-Action) is an on-policy temporal difference algorithm used for learning the Q-function. Unlike Q-learning, SARSA directly updates the Q-values based on the current policy. + +#### Algorithm: +1. Initialize Q-values arbitrarily for all state-action pairs. +2. Repeat for each episode: + - Initialize the environment state \( s \). + - Choose an action \( a \) using the current policy (e.g., epsilon-greedy). + - Repeat for each timestep: + - Take action \( a \), observe the reward \( r \) and the next state \( s' \). + - Choose the next action \( a' \) using the current policy. + - Update the Q-value of the current state-action pair using the SARSA update rule: + \[ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma Q(s', a') - Q(s, a) \right) \] +3. Until convergence or a maximum number of episodes. + +### REINFORCE Algorithm: +REINFORCE (Monte Carlo policy gradient) is a simple policy gradient method that updates the policy parameters in the direction of the gradient of expected rewards. + +### Proximal Policy Optimization (PPO): +PPO is an advanced policy gradient method that improves stability by limiting the policy updates within a certain trust region. + +### A2C/A3C: +Advantage Actor-Critic (A2C) and Asynchronous Advantage Actor-Critic (A3C) are variants of actor-critic methods that utilize multiple parallel agents to improve sample efficiency. + +## Mathematical Background + +### Markov Decision Processes (MDPs) +A Markov Decision Process (MDP) is a mathematical framework used to model decision-making problems. It consists of states, actions, rewards and transition probabilities. + +### Bellman Equations +Bellman equations are fundamental recursive equations in dynamic programming and reinforcement learning. They express the value of a decision at one point in time in terms of the expected value of the subsequent decisions. + +## Applications of Reinforcement Learning + +### Gaming +Reinforcement learning is extensively used in gaming for developing AI agents capable of playing complex games like AlphaGo, Chess, and video games. RL algorithms enable these agents to learn optimal strategies by interacting with the game environment and receiving feedback in the form of rewards. + +### Robotics +In robotics, reinforcement learning is employed to teach robots various tasks such as navigation, manipulation, and control. RL algorithms allow robots to learn from their interactions with the environment, enabling them to adapt and improve their behavior over time without explicit programming. + +### Finance +Reinforcement learning plays a crucial role in finance, particularly in algorithmic trading and portfolio management. RL algorithms are utilized to optimize trading strategies, automate decision-making processes, and manage investment portfolios dynamically based on changing market conditions and objectives. + +### Healthcare +In healthcare, reinforcement learning is utilized for various applications such as personalized treatment, drug discovery, and optimizing healthcare operations. RL algorithms can assist in developing personalized treatment plans for patients, identifying effective drug candidates, and optimizing resource allocation in hospitals to improve patient care and outcomes. + +## Tools and Libraries +- **OpenAI Gym:** A toolkit for developing and comparing RL algorithms. +- **TensorFlow/TF-Agents:** A library for RL in TensorFlow. +- **PyTorch:** Popular machine learning library with RL capabilities. +- **Stable Baselines3:** A set of reliable implementations of RL algorithms in PyTorch. + +## Resources for Further Learning +### Books +- "Reinforcement Learning: An Introduction" by Sutton and Barto +- "Deep Reinforcement Learning Hands-On" by Maxim Lapan + +### Online Courses +- "Reinforcement Learning" by Udacity +- "Fundamentals of Reinforcement Learning" by Coursera +- "Master Reinforcement Learning and Deep RL with Python" by Udemy + +### Research Papers +- [Reinforcement learning model, algorithms and its application](https://ieeexplore.ieee.org/abstract/document/6025669) +- [A Concise Introduction to Reinforcement Learning](https://www.researchgate.net/publication/323178749_A_Concise_Introduction_to_Reinforcement_Learning) + +### Blogs and Websites +- [OpenAI Blog](https://spinningup.openai.com/en/latest/) +- [Geeks for Geeks](https://www.geeksforgeeks.org/what-is-reinforcement-learning/) +- [Medium Blog](https://gordicaleksa.medium.com/how-to-get-started-with-reinforcement-learning-rl-4922fafeaf8c) + +## How to Start with Reinforcement Learning + +### Prerequisites +- Basic knowledge of machine learning and neural networks. +- Proficiency in Python. + +### Beginner Project +The provided Python code implements the Q-learning algorithm for a basic grid world environment. It defines the grid world, actions, and parameters such as discount factor and learning rate. The algorithm iteratively learns the optimal action-value function (Q-values) by updating them based on rewards obtained from actions taken in each state. Finally, the learned Q-values are printed for each state-action pair. + +```python +import numpy as np + +# Define the grid world environment +# 'S' represents the start state +# 'G' represents the goal state +# 'H' represents the hole (negative reward) +# '.' represents empty cells (neutral reward) +# 'W' represents walls (impassable) +grid_world = np.array([ + ['S', '.', '.', '.', '.'], + ['.', 'W', '.', 'H', '.'], + ['.', '.', '.', 'W', '.'], + ['.', 'W', '.', '.', 'G'] +]) + +# Define the actions (up, down, left, right) +actions = ['UP', 'DOWN', 'LEFT', 'RIGHT'] + +# Define parameters +gamma = 0.9 # discount factor +alpha = 0.1 # learning rate +epsilon = 0.1 # exploration rate + +# Initialize Q-values +num_rows, num_cols = grid_world.shape +num_actions = len(actions) +Q = np.zeros((num_rows, num_cols, num_actions)) + +# Define helper function to get possible actions in a state +def possible_actions(state): + row, col = state + possible_actions = [] + for i, action in enumerate(actions): + if action == 'UP' and row > 0 and grid_world[row - 1, col] != 'W': + possible_actions.append(i) + elif action == 'DOWN' and row < num_rows - 1 and grid_world[row + 1, col] != 'W': + possible_actions.append(i) + elif action == 'LEFT' and col > 0 and grid_world[row, col - 1] != 'W': + possible_actions.append(i) + elif action == 'RIGHT' and col < num_cols - 1 and grid_world[row, col + 1] != 'W': + possible_actions.append(i) + return possible_actions + +# Q-learning algorithm +num_episodes = 1000 +for episode in range(num_episodes): + # Initialize the starting state + state = (0, 0) # start state + while True: + # Choose an action using epsilon-greedy policy + if np.random.uniform(0, 1) < epsilon: + action = np.random.choice(possible_actions(state)) + else: + action = np.argmax(Q[state[0], state[1]]) + + # Perform the action and observe the next state and reward + if actions[action] == 'UP': + next_state = (state[0] - 1, state[1]) + elif actions[action] == 'DOWN': + next_state = (state[0] + 1, state[1]) + elif actions[action] == 'LEFT': + next_state = (state[0], state[1] - 1) + elif actions[action] == 'RIGHT': + next_state = (state[0], state[1] + 1) + + # Get the reward + if grid_world[next_state] == 'G': + reward = 1 # goal state + elif grid_world[next_state] == 'H': + reward = -1 # hole + else: + reward = 0 + + # Update Q-value using the Bellman equation + best_next_action = np.argmax(Q[next_state[0], next_state[1]]) + Q[state[0], state[1], action] += alpha * ( + reward + gamma * Q[next_state[0], next_state[1], best_next_action] - Q[state[0], state[1], action]) + + # Move to the next state + state = next_state + + # Check if the episode is terminated + if grid_world[state] in ['G', 'H']: + break + +# Print the learned Q-values +print("Learned Q-values:") +for i in range(num_rows): + for j in range(num_cols): + print(f"State ({i}, {j}):", Q[i, j]) +``` + +### Conclusion +Congratulations on completing your journey through this comprehensive guide to reinforcement learning! Armed with this knowledge, you are well-equipped to dive deeper into the exciting world of RL, whether it's for gaming, robotics, finance, healthcare, or any other domain. Keep exploring, experimenting, and learning, and remember, the only limit to what you can achieve with reinforcement learning is your imagination. + +*Happy coding, and may your RL adventures be rewarding!* \ No newline at end of file From da09e2332256a373a44ce980a55d7be171a96811 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sun, 9 Jun 2024 13:17:23 +0530 Subject: [PATCH 04/53] Minor Changes --- .../reinforcement-learning.md | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index b470ed3..25dc442 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -116,7 +116,9 @@ Q-Learning is a model-free algorithm used in reinforcement learning to learn the - Choose an action using an exploration strategy (e.g., epsilon-greedy). - Take the action, observe the reward and the next state. - Update the Q-value of the current state-action pair using the Bellman equation: - \[ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) \] + ```latex + Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) + ``` where: - \( Q(s, a) \) is the Q-value of state \( s \) and action \( a \). - \( r \) is the observed reward. @@ -139,13 +141,17 @@ Deep Q-Networks (DQN) extend Q-learning to high-dimensional state spaces using d - Store the transition \( (s, a, r, s') \) in the replay memory. - Sample a minibatch of transitions from the replay memory. - Compute the target Q-value for each transition: - \[ y_j = \begin{cases} r_j & \text{if episode terminates at step } j+1 \\ - r_j + \gamma \max_{a'} Q(s', a'; \theta^-) & \text{otherwise} \end{cases} \] + ```latex + y_j = \begin{cases} r_j & \text{if episode terminates at step } j+1 \\ + r_j + \gamma \max_{a'} Q(s', a'; \theta^-) & \text{otherwise} \end{cases} + ``` where: - \( \theta^- \) represents the parameters of the target network. - \( y_j \) is the target Q-value for the \( j \)th transition. - Update the Q-network parameters by minimizing the temporal difference loss: - \[ \mathcal{L}(\theta) = \frac{1}{N} \sum_{j} (y_j - Q(s_j, a_j; \theta))^2 \] + ```latex + \mathcal{L}(\theta) = \frac{1}{N} \sum_{j} (y_j - Q(s_j, a_j; \theta))^2 + ``` 4. Until convergence or a maximum number of episodes. ### SARSA @@ -160,7 +166,9 @@ SARSA (State-Action-Reward-State-Action) is an on-policy temporal difference alg - Take action \( a \), observe the reward \( r \) and the next state \( s' \). - Choose the next action \( a' \) using the current policy. - Update the Q-value of the current state-action pair using the SARSA update rule: - \[ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma Q(s', a') - Q(s, a) \right) \] + ```latex + Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma Q(s', a') - Q(s, a) \right) + ``` 3. Until convergence or a maximum number of episodes. ### REINFORCE Algorithm: @@ -321,7 +329,7 @@ for i in range(num_rows): print(f"State ({i}, {j}):", Q[i, j]) ``` -### Conclusion +## Conclusion Congratulations on completing your journey through this comprehensive guide to reinforcement learning! Armed with this knowledge, you are well-equipped to dive deeper into the exciting world of RL, whether it's for gaming, robotics, finance, healthcare, or any other domain. Keep exploring, experimenting, and learning, and remember, the only limit to what you can achieve with reinforcement learning is your imagination. *Happy coding, and may your RL adventures be rewarding!* \ No newline at end of file From 69257a59103c8627eb1011653b7acdb1566d729c Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sun, 9 Jun 2024 13:19:31 +0530 Subject: [PATCH 05/53] Minor Changes Again --- .../machine-learning/reinforcement-learning.md | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index 25dc442..e55881a 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -116,9 +116,7 @@ Q-Learning is a model-free algorithm used in reinforcement learning to learn the - Choose an action using an exploration strategy (e.g., epsilon-greedy). - Take the action, observe the reward and the next state. - Update the Q-value of the current state-action pair using the Bellman equation: - ```latex - Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) - ``` + where: - \( Q(s, a) \) is the Q-value of state \( s \) and action \( a \). - \( r \) is the observed reward. @@ -141,17 +139,12 @@ Deep Q-Networks (DQN) extend Q-learning to high-dimensional state spaces using d - Store the transition \( (s, a, r, s') \) in the replay memory. - Sample a minibatch of transitions from the replay memory. - Compute the target Q-value for each transition: - ```latex - y_j = \begin{cases} r_j & \text{if episode terminates at step } j+1 \\ - r_j + \gamma \max_{a'} Q(s', a'; \theta^-) & \text{otherwise} \end{cases} - ``` + where: - \( \theta^- \) represents the parameters of the target network. - \( y_j \) is the target Q-value for the \( j \)th transition. - Update the Q-network parameters by minimizing the temporal difference loss: - ```latex - \mathcal{L}(\theta) = \frac{1}{N} \sum_{j} (y_j - Q(s_j, a_j; \theta))^2 - ``` + 4. Until convergence or a maximum number of episodes. ### SARSA @@ -166,9 +159,7 @@ SARSA (State-Action-Reward-State-Action) is an on-policy temporal difference alg - Take action \( a \), observe the reward \( r \) and the next state \( s' \). - Choose the next action \( a' \) using the current policy. - Update the Q-value of the current state-action pair using the SARSA update rule: - ```latex - Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma Q(s', a') - Q(s, a) \right) - ``` + 3. Until convergence or a maximum number of episodes. ### REINFORCE Algorithm: From ff4f5f9c4ccd2a1cc8db5edd848c25a2b915feee Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sun, 9 Jun 2024 13:29:24 +0530 Subject: [PATCH 06/53] Minor Changes in mathematical equation --- .../machine-learning/reinforcement-learning.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index e55881a..bab38a0 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -116,13 +116,13 @@ Q-Learning is a model-free algorithm used in reinforcement learning to learn the - Choose an action using an exploration strategy (e.g., epsilon-greedy). - Take the action, observe the reward and the next state. - Update the Q-value of the current state-action pair using the Bellman equation: - + where: - - \( Q(s, a) \) is the Q-value of state \( s \) and action \( a \). - - \( r \) is the observed reward. - - \( s' \) is the next state. - - \( \alpha \) is the learning rate. - - \( \gamma \) is the discount factor. + - is the Q-value of state and action. + - is the observed reward. + - is the next state. + - is the learning rate. + - is the discount factor. 3. Until convergence or a maximum number of episodes. ### Deep Q-Networks (DQN) @@ -132,9 +132,9 @@ Deep Q-Networks (DQN) extend Q-learning to high-dimensional state spaces using d 1. Initialize the Q-network with random weights. 2. Initialize a target network with the same weights as the Q-network. 3. Repeat for each episode: - - Initialize the environment state \( s \). + - Initialize the environment state . - Repeat for each timestep: - - With probability \( \epsilon \), choose a random action. Otherwise, select the action with the highest Q-value according to the Q-network. + - With probability , choose a random action. Otherwise, select the action with the highest Q-value according to the Q-network. - Take the chosen action, observe the reward \( r \) and the next state \( s' \). - Store the transition \( (s, a, r, s') \) in the replay memory. - Sample a minibatch of transitions from the replay memory. From 03d37622217d71a0ab2709d429b7f020e5f92717 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sun, 9 Jun 2024 13:35:52 +0530 Subject: [PATCH 07/53] Final Changes --- .../machine-learning/assets/rl-components.png | Bin 62544 -> 0 bytes .../reinforcement-learning.md | 34 +++--------------- 2 files changed, 5 insertions(+), 29 deletions(-) delete mode 100644 contrib/machine-learning/assets/rl-components.png diff --git a/contrib/machine-learning/assets/rl-components.png b/contrib/machine-learning/assets/rl-components.png deleted file mode 100644 index cb359cf455ebd9fdf83221d1b97c6bbb05810543..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62544 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
aR}S>>R+(+1t0Sy#KxpMx#C-8SQf+t1imz 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 Bzg7SM diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index bab38a0..0046ae4 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -57,8 +57,6 @@ Reinforcement learning involves determining the best actions to take in various ## Key Concepts and Terminology -![image](assets/rl-components.png) - ### Agent Agent is a system or entity that learns to make decisions by interacting with an environment. The agent improves its performance by trial and error, receiving feedback from the environment in the form of rewards or punishments. @@ -118,46 +116,24 @@ Q-Learning is a model-free algorithm used in reinforcement learning to learn the - Update the Q-value of the current state-action pair using the Bellman equation: where: - - is the Q-value of state and action. + - is the Q-value of state and action . - is the observed reward. - is the next state. - is the learning rate. - is the discount factor. 3. Until convergence or a maximum number of episodes. -### Deep Q-Networks (DQN) -Deep Q-Networks (DQN) extend Q-learning to high-dimensional state spaces using deep neural networks to approximate the Q-function. It uses experience replay and target networks to improve stability and convergence. - -#### Algorithm: -1. Initialize the Q-network with random weights. -2. Initialize a target network with the same weights as the Q-network. -3. Repeat for each episode: - - Initialize the environment state . - - Repeat for each timestep: - - With probability , choose a random action. Otherwise, select the action with the highest Q-value according to the Q-network. - - Take the chosen action, observe the reward \( r \) and the next state \( s' \). - - Store the transition \( (s, a, r, s') \) in the replay memory. - - Sample a minibatch of transitions from the replay memory. - - Compute the target Q-value for each transition: - - where: - - \( \theta^- \) represents the parameters of the target network. - - \( y_j \) is the target Q-value for the \( j \)th transition. - - Update the Q-network parameters by minimizing the temporal difference loss: - -4. Until convergence or a maximum number of episodes. - ### SARSA SARSA (State-Action-Reward-State-Action) is an on-policy temporal difference algorithm used for learning the Q-function. Unlike Q-learning, SARSA directly updates the Q-values based on the current policy. #### Algorithm: 1. Initialize Q-values arbitrarily for all state-action pairs. 2. Repeat for each episode: - - Initialize the environment state \( s \). - - Choose an action \( a \) using the current policy (e.g., epsilon-greedy). + - Initialize the environment state . + - Choose an action using the current policy (e.g., epsilon-greedy). - Repeat for each timestep: - - Take action \( a \), observe the reward \( r \) and the next state \( s' \). - - Choose the next action \( a' \) using the current policy. + - Take action , observe the reward and the next state . + - Choose the next action using the current policy. - Update the Q-value of the current state-action pair using the SARSA update rule: 3. Until convergence or a maximum number of episodes. From 709011baa2db795b45efda459dd954aefb609bb1 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sun, 9 Jun 2024 13:36:20 +0530 Subject: [PATCH 08/53] Final Changes-1 --- contrib/machine-learning/reinforcement-learning.md | 1 - 1 file changed, 1 deletion(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index 0046ae4..2c22742 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -25,7 +25,6 @@ Reinforcement Learning (RL) is a field of Machine Learing which focuses on goal- - [Actor-Critic Methods](#actor-critic-methods) 4. [Important Algorithms](#important-algorithms) - [Q-Learning](#q-learning) - - [Deep Q-Networks](#deep-q-networks-dqn) - [SARSA](#sarsa) - [REINFORCE Algorithm](#reinforce-algorithm) - [Proximal Policy Optimization (PPO)](#proximal-policy-optimization-ppo) From 4afd4a98f263a411c0eb80c223e1a72886f34cff Mon Sep 17 00:00:00 2001 From: anamika123 Date: Sun, 9 Jun 2024 16:12:58 +0530 Subject: [PATCH 09/53] Pandas Series' --- contrib/pandas/index.md | 1 + contrib/pandas/pandas_series.md | 283 ++++++++++++++++++++++++++++++++ 2 files changed, 284 insertions(+) create mode 100644 contrib/pandas/pandas_series.md diff --git a/contrib/pandas/index.md b/contrib/pandas/index.md index e5a8353..2a15929 100644 --- a/contrib/pandas/index.md +++ b/contrib/pandas/index.md @@ -9,3 +9,4 @@ - [Working with Date & Time in Pandas](datetime.md) - [Importing and Exporting Data in Pandas](import-export.md) - [Handling Missing Values in Pandas](handling-missing-values.md) +- [Pandas Series](pandas_series.md) \ No newline at end of file diff --git a/contrib/pandas/pandas_series.md b/contrib/pandas/pandas_series.md new file mode 100644 index 0000000..8cc12c8 --- /dev/null +++ b/contrib/pandas/pandas_series.md @@ -0,0 +1,283 @@ +# Pandas Series + + + A series is a Panda data structures that represents a one dimensional array-like object containing an array of data and an associated array of data type labels, called index. + +## Creating a Series object: + +### Basic Series +To create a basic Series, you can pass a list or array of data to the `pd.Series()` function. + +```python +import pandas as pd + +s1 = pd.Series([4, 5, 2, 3]) +print(s1) + +#Output: +#0 4 +#1 5 +#2 2 +#3 3 +#dtype: int64 + +``` + +### Series from a Dictionary + +If you pass a dictionary to `pd.Series()`, the keys become the index and the values become the data of the Series. +```python +import pandas as pd + +s2 = pd.Series({'A': 1, 'B': 2, 'C': 3}) +print(s2) + +#Output: +#A 1 +#B 2 +#C 3 +#dtype: int64 +``` + + +## Additional Functionality + + +### Specifying Data Type and Index +You can specify the data type and index while creating a Series. +```python +import pandas as pd + +s4 = pd.Series([1, 2, 3], index=['a', 'b', 'c'], dtype='float64') +print(s4) + +#output +#a 1.0 +#b 2.0 +#c 3.0 +#dtype: float64 +``` + +### Specifying NaN Values: +* Sometimes you need to create a series object of a certain size but you do not have complete data available so in such cases you can fill missing data with a NaN(Not a Number) value. +* When you store NaN value in series object, the data type must be floating pont type. Even if you specify an integer type , pandas will promote it to floating point type automatically because NaN is not supported by integer type. + +```python +import pandas as pd +s3=pd.Series([1,np.Nan,2]) +print(s3) + +#output: + +#0 1.0 +#1 NaN +#2 2.0 +#dtype: float64 +``` + + +### Creating Data from Expressions +You can create a Series using an expression or function. + +``=np.Series(data=,index=None) + +```python +import pandas as pd +a=np.arange(1,5) # [1,2,3,4] +s5=pd.Series(data=a**2,index=a) +print(s5) + +#output: +#1 1 +#2 4 +#3 9 +#4 16 +#dtype: int64 +``` + + +## Series Object Attributes + +| **Attribute** | **Description** | +|--------------------------|---------------------------------------------------| +| `.index` | Array of index of the Series | +| `.values` | Array of values of the Series | +| `.dtype` | Return the dtype of the data | +| `.shape` | Return a tuple representing the shape of the data | +| `.ndim` | Return the number of dimensions of the data | +| `.size` | Return the number of elements in the data | +| `.hasnans` | Return True if there is any NaN in the data | +| `.empty` | Return True if the Series object is empty | + + + +- If you use len() on a series object then it return total number of elements in the series object whereas .count() return only the number of non NaN elements. + +## Accessing a Series object and its elements + +### Accessing Individual Elements +You can access individual elements using their index. +'legal' indexes arte used to access individual element. +```python +import pandas as pd + +s7 = pd.Series(data=[13, 45, 67, 89], index=['A', 'B', 'C', 'D']) +print(s7['A']) + +#output +#13 +``` + + +### Slicing a Series + +- Slices are extracted based on their positional index, regardless of the custom index labels. +- Each element in the Series has a positional index starting from 0 (i.e., 0 for the first element, 1 for the second element, and so on). +- `[:]` will return the values of the elements between the start and end positions (excluding the end position). + +#### Example + +```python +import pandas as pd + +s = pd.Series(data=[13, 45, 67, 89], index=['A', 'B', 'C', 'D']) +print(s[:2]) + +#Output +#A 13 +#B 45 +#dtype: int64 +#This example demonstrates that the first two elements (positions 0 and 1) are returned, regardless of their custom index labels. +``` + + +## Operation on series object + +### Modifying elements and indexes +* [indexes]=< new data value > +* [start : end]=< new data value > +* .index=[new indexes] + +```python +import pandas as pd + +s8 = pd.Series([10, 20, 30], index=['a', 'b', 'c']) +s8['a'] = 100 +s8.index = ['x', 'y', 'z'] +print(s8) + +#output +#x 100 +#y 20 +#z 30 +#dtype: int64 +``` + +**Note: Series object are value-mutable but size immutable objects.** + +### vector operations +We can perform vector operations such as `+`,`-`,`/`,`%` etc. +```python +import pandas as pd + +s9 = pd.Series([1, 2, 3]) +print("addition:", s9 + 5) +print("subtraction:", s9 - 2) + +#output: +#addition: +#0 6 +#1 7 +#2 8 +#dtype: int64 +#subtraction: +#0 -1 +#1 0 +#2 1 +#dtype: int64 +``` + +### Arthmetic on series object +```python +import pandas as pd + +s10 = pd.Series([1, 2, 3]) +s11 = pd.Series([4, 5, 6]) +print("addition:", s10 + s11) + +print("multiplication:", s10 * s11) + +#output: +#addition: +#0 5 +#1 7 +#2 9 +#dtype: int64 +#multiplication: +#0 4 +#1 10 +#2 18 +#dtype: int64 +``` + +Here one thing we should keep in mind that both the series object should have same indexes otherwise it will return NaN value to all the indexes of two series object . + + +### Head and Tail Functions + +| **Functions** | **Description** | +|--------------------------|---------------------------------------------------| +| `.head(n)` | return the first n elements of the series | +| `.tail(n)` | return the last n elements of the series | + +```python +import pandas as pd + +s12 = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) +print(s12.head(3)) +print(s12.tail(3)) + +#output +#0 10 +#1 20 +#2 30 +#dtype: int64 + +#7 80 +#8 90 +#9 100 +#dtype: int64 +``` +If you dont provide any value to n the by default it give results for `n=5`. + +### Few extra functions: +| **Function** | **Description** | +|----------------------------------------|------------------------------------------------------------------------| +| `.sort_values()` | Return the Series object in ascending order based on its values. | +| `.sort_index()` | Return the Series object in ascending order based on its index. | +| `.sort_drop()` | Return the Series with the deleted index and its corresponding value. | +```python +import pandas as pd + +s13 = pd.Series([3, 1, 2], index=['c', 'a', 'b']) +print(s13.sort_values()) +print(s13.sort_index()) +print(s13.drop('a')) +#Output +#a 1 +#b 2 +#c 3 +#dtype: int64 + +#a 1 +#b 2 +#c 3 +#dtype: int64 + +#c 3 +#b 2 +#dtype: int64 +``` + +## Conclusion +In short, Pandas Series is a fundamental data structure in Python for handling one-dimensional data. It combines an array of values with an index, offering efficient methods for data manipulation and analysis. With its ease of use and powerful functionality, Pandas Series is widely used in data science and analytics for tasks such as data cleaning, exploration, and visualization. \ No newline at end of file From fc5f366e6a64eac6948054af5c51bfee1a82a792 Mon Sep 17 00:00:00 2001 From: Shraman Jain <60072287+Shraman-jain@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:27:10 +0530 Subject: [PATCH 10/53] Update threading.md --- contrib/advanced-python/threading.md | 138 ++++++++++++++++++++++++++- 1 file changed, 137 insertions(+), 1 deletion(-) diff --git a/contrib/advanced-python/threading.md b/contrib/advanced-python/threading.md index 85b5f4b..07bc4bf 100644 --- a/contrib/advanced-python/threading.md +++ b/contrib/advanced-python/threading.md @@ -1 +1,137 @@ -#Threading +# Threading in Python +Threading is a sequence of instructions in a program that can be executed independently of the remaining process and +Threads are like lightweight processes that share the same memory space but can execute independently. +The process is an executable instance of a computer program. +This guide provides an overview of the threading module and its key functionalities. + +## Key Characteristics of Threads: +* Shared Memory: All threads within a process share the same memory space, which allows for efficient communication between threads. +* Independent Execution: Each thread can run independently and concurrently. +* Context Switching: The operating system can switch between threads, enabling concurrent execution. + +## Threading Module +This module will allows you to create and manage threads easily. This module includes several functions and classes to work with threads. + +**1. Creating Thread:** +To create a thread in Python, you can use the Thread class from the threading module. + +Example: +```python +import threading + +# Create a thread +thread = threading.Thread() + +# Start the thread +thread.start() + +# Wait for the thread to complete +thread.join() + +print("Thread has finished execution.") +``` +**2. Performing Task with Thread:** +We can also perform a specific task by thread by giving a function as target and its argument as arg ,as a parameter to Thread object. + +Example: + +```python +import threading + +# Define a function that will be executed by the thread +def print_numbers(arg): + for i in range(arg): + print(f"Thread: {i}") +# Create a thread +thread = threading.Thread(target=print_numbers,args=(5,)) + +# Start the thread +thread.start() + +# Wait for the thread to complete +thread.join() + +print("Thread has finished execution.") +``` +**3. Delaying a Task with Thread's Timer Function:** +We can set a time for which we want a thread to start. Timer function takes 4 arguments (interval,function,args,kwargs). + +Example: +```python +import threading + +# Define a function that will be executed by the thread +def print_numbers(arg): + for i in range(arg): + print(f"Thread: {i}") +# Create a thread after 3 seconds +thread = threading.Timer(3,print_numbers,args=(5,)) + +# Start the thread +thread.start() + +# Wait for the thread to complete +thread.join() + +print("Thread has finished execution.") +``` +**4. Creating Multiple Threads** +We can create and manage multiple threads to achieve concurrent execution. + +Example: +```python +import threading + +def print_numbers(thread_name): + for i in range(5): + print(f"{thread_name}: {i}") + +# Create multiple threads +thread1 = threading.Thread(target=print_numbers, args=("Thread 1",)) +thread2 = threading.Thread(target=print_numbers, args=("Thread 2",)) + +# Start the threads +thread1.start() +thread2.start() + +# Wait for both threads to complete +thread1.join() +thread2.join() + +print("Both threads have finished execution.") +``` + +**5. Thread Synchronization** +When we create multiple threads and they access shared resources, there is a risk of race conditions and data corruption. To prevent this, you can use synchronization primitives such as locks. +A lock is a synchronization primitive that ensures that only one thread can access a shared resource at a time. + +Example: +```Python +import threading + +lock = threading.Lock() + +def print_numbers(thread_name): + for i in range(10): + with lock: + print(f"{thread_name}: {i}") + +# Create multiple threads +thread1 = threading.Thread(target=print_numbers, args=("Thread 1",)) +thread2 = threading.Thread(target=print_numbers, args=("Thread 2",)) + +# Start the threads +thread1.start() +thread2.start() + +# Wait for both threads to complete +thread1.join() +thread2.join() + +print("Both threads have finished execution.") +``` + +A ```lock``` object is created using threading.Lock() and The ```with lock``` statement ensures that the lock is acquired before printing and released after printing. This prevents other threads from accessing the print statement simultaneously. + +## Conclusion +Threading in Python is a powerful tool for achieving concurrency and improving the performance of I/O-bound tasks. By understanding and implementing threads using the threading module, you can enhance the efficiency of your programs. To prevent race situations and maintain data integrity, keep in mind that thread synchronization must be properly managed. From 696714e8422ad323097532659d813451f6076334 Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Fri, 21 Jun 2024 15:19:29 +0530 Subject: [PATCH 11/53] Create Tree-Traversal.md --- contrib/ds-algorithms/Tree-Traversal.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 contrib/ds-algorithms/Tree-Traversal.md diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/Tree-Traversal.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/contrib/ds-algorithms/Tree-Traversal.md @@ -0,0 +1 @@ + From 2d25b8ea41556a1a9ba66237dceecea0df91053d Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Fri, 21 Jun 2024 16:33:57 +0530 Subject: [PATCH 12/53] Update Tree-Traversal.md --- contrib/ds-algorithms/Tree-Traversal.md | 181 ++++++++++++++++++++++++ 1 file changed, 181 insertions(+) diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/Tree-Traversal.md index 8b13789..2df7202 100644 --- a/contrib/ds-algorithms/Tree-Traversal.md +++ b/contrib/ds-algorithms/Tree-Traversal.md @@ -1 +1,182 @@ +# Tree Traversal Algorithms +Tree Traversal refers to the process of visiting or accessing each node of the tree exactly once in a certain order. Tree traversal algorithms help us to visit and process all the nodes of the tree. Since tree is not a linear data structure, there are multiple nodes which we can visit after visiting a certain node. There are multiple tree traversal techniques which decide the order in which the nodes of the tree are to be visited. + + +A Tree Data Structure can be traversed in following ways: +- **Level Order Traversal or Breadth First Search or BFS** + - **Depth First Search or DFS** + - Inorder Traversal + - Preorder Traversal + - Postorder Traversal + +## Binary Tree Structure + Before diving into traversal techniques, let's define a simple binary tree node structure: + ```python +class Node: + def __init__(self, key): + self.leftChild = None + self.rightChild = None + self.data = key + +# Main class +if __name__ == "__main__": + root = Node(1) + root.leftChild = Node(2) + root.rightChild = Node(3) + root.leftChild.leftChild = Node(4) + root.leftChild.rightChild = Node(5) + root.rightChild.leftChild = Node(6) + root.rightChild.rightChild = Node(6) +``` + +## Level Order Traversal +When the nodes of the tree are wrapped in a level-wise mode from left to right, then it represents the level order traversal. We can use a queue data structure to execute a level order traversal. + +### Algorithm + - Create an empty queue Q + - Enqueue the root node of the tree to Q + - Loop while Q is not empty + - Dequeue a node from Q and visit it + - Enqueue the left child of the dequeued node if it exists + - Enqueue the right child of the dequeued node if it exists + +### code for level order traversal in python +```python +def printLevelOrder(root): + if root is None: + return + + # Create an empty queue + queue = [] + + # Enqueue Root and initialize height + queue.append(root) + + while(len(queue) > 0): + + # Print front of queue and + # remove it from queue + print(queue[0].data, end=" ") + node = queue.pop(0) + + # Enqueue left child + if node.left is not None: + queue.append(node.left) + + # Enqueue right child + if node.right is not None: + queue.append(node.right) +``` + +**output** + +` Inorder traversal of binary tree is : +1 2 3 4 5 6 7 ` + + + +## Depth First Search +When we do a depth-first traversal, we travel in one direction up to the bottom first, then turn around and go the other way. There are three kinds of depth-first traversals. + +## 1. Inorder Traversal + +In this traversal method, the left subtree is visited first, then the root and later the right sub-tree. We should always remember that every node may represent a subtree itself. + +`Note :` If a binary search tree is traversed in-order, the output will produce sorted key values in an ascending order. + +**The order:** Left -> Root -> Right + +### Algorithm + - Traverse the left subtree. + - Visit the root node. + - Traverse the right subtree. + +### code for inorder traversal in python +```python +def printInorder(root): + if root: + # First recur on left child + printInorder(root.left) + + # Then print the data of node + print(root.val, end=" "), + + # Now recur on right child + printInorder(root.right) +``` + +**output** + +` Inorder traversal of binary tree is : +4 2 5 1 6 3 7 ` + + +## 2. Preorder Traversal + +In this traversal method, the root node is visited first, then the left subtree and finally the right subtree. + +**The order:** Root -> Left -> Right + +### Algorithm + - Visit the root node. + - Traverse the left subtree. + - Traverse the right subtree. + +### code for preorder traversal in python +```python +def printPreorder(root): + if root: + # First print the data of node + print(root.val, end=" "), + + # Then recur on left child + printPreorder(root.left) + + # Finally recur on right child + printPreorder(root.right) +``` + +**output** + +` Inorder traversal of binary tree is : +1 2 4 5 3 6 7 ` + +## 3. Postorder Traversal + +In this traversal method, the root node is visited last, hence the name. First we traverse the left subtree, then the right subtree and finally the root node. + +**The order:** Left -> Right -> Root + +### Algorithm + - Traverse the left subtree. + - Traverse the right subtree. + - Visit the root node. + +### code for postorder traversal in python +```python +def printPostorder(root): + if root: + # First recur on left child + printPostorder(root.left) + + # The recur on right child + printPostorder(root.right) + + # Now print the data of node + print(root.val, end=" ") +``` + +**output** + +` Inorder traversal of binary tree is : +4 5 2 6 7 3 1 ` + + +## Complexity Analysis + - **Time Complexity:** All three tree traversal methods (Inorder, Preorder, and Postorder) have a time complexity of `𝑂(𝑛)`, where 𝑛 is the number of nodes in the tree. + - **Space Complexity:** The space complexity is influenced by the recursion stack. In the worst case, the depth of the recursion stack can go up to `𝑂(ℎ)`, where ℎ is the height of the tree. + + + + From f6c38a18621bcd5a4248862db58748963705ed01 Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Fri, 21 Jun 2024 16:35:22 +0530 Subject: [PATCH 13/53] Add files via upload --- contrib/ds-algorithms/images/binarytree.png | Bin 0 -> 24521 bytes .../images/inorder-traversal-3.png | Bin 0 -> 11589 bytes .../images/postorder-traversal.png | Bin 0 -> 11442 bytes .../ds-algorithms/images/preorder-traversal.png | Bin 0 -> 10964 bytes contrib/ds-algorithms/images/traversal.png | Bin 0 -> 45055 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/ds-algorithms/images/binarytree.png create mode 100644 contrib/ds-algorithms/images/inorder-traversal-3.png create mode 100644 contrib/ds-algorithms/images/postorder-traversal.png create mode 100644 contrib/ds-algorithms/images/preorder-traversal.png create mode 100644 contrib/ds-algorithms/images/traversal.png diff --git a/contrib/ds-algorithms/images/binarytree.png b/contrib/ds-algorithms/images/binarytree.png new file mode 100644 index 0000000000000000000000000000000000000000..3d24e5e1ff08a8facef8c51eb6cc3f4f7f257900 GIT binary patch literal 24521 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 Date: Fri, 21 Jun 2024 16:43:09 +0530 Subject: [PATCH 14/53] Delete contrib/ds-algorithms/images/inorder-traversal-3.png --- .../images/inorder-traversal-3.png | Bin 11589 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/inorder-traversal-3.png diff --git a/contrib/ds-algorithms/images/inorder-traversal-3.png b/contrib/ds-algorithms/images/inorder-traversal-3.png deleted file mode 100644 index cbace2f02f285031b37a49bde58793e32986a97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11589 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 Date: Fri, 21 Jun 2024 16:43:26 +0530 Subject: [PATCH 15/53] Add files via upload --- .../ds-algorithms/images/inorder-traversal.png | Bin 0 -> 11589 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/ds-algorithms/images/inorder-traversal.png diff --git a/contrib/ds-algorithms/images/inorder-traversal.png b/contrib/ds-algorithms/images/inorder-traversal.png new file mode 100644 index 0000000000000000000000000000000000000000..cbace2f02f285031b37a49bde58793e32986a97a GIT binary patch literal 11589 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 Date: Fri, 21 Jun 2024 16:48:53 +0530 Subject: [PATCH 16/53] Update Tree-Traversal.md --- contrib/ds-algorithms/Tree-Traversal.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/Tree-Traversal.md index 2df7202..1336928 100644 --- a/contrib/ds-algorithms/Tree-Traversal.md +++ b/contrib/ds-algorithms/Tree-Traversal.md @@ -4,14 +4,21 @@ Tree Traversal refers to the process of visiting or accessing each node of the t A Tree Data Structure can be traversed in following ways: -- **Level Order Traversal or Breadth First Search or BFS** + - **Level Order Traversal or Breadth First Search or BFS** - **Depth First Search or DFS** - Inorder Traversal - Preorder Traversal - Postorder Traversal + + ![Tree Traversal](images/traversal.png) + + ## Binary Tree Structure Before diving into traversal techniques, let's define a simple binary tree node structure: + +![Binary Tree](images/binarytree.png) + ```python class Node: def __init__(self, key): @@ -85,6 +92,8 @@ In this traversal method, the left subtree is visited first, then the root and l `Note :` If a binary search tree is traversed in-order, the output will produce sorted key values in an ascending order. +![Inorder](images/inorder-traversal.png) + **The order:** Left -> Root -> Right ### Algorithm @@ -116,6 +125,8 @@ def printInorder(root): In this traversal method, the root node is visited first, then the left subtree and finally the right subtree. +![preorder](images/preorder-traversal.png) + **The order:** Root -> Left -> Right ### Algorithm @@ -146,6 +157,8 @@ def printPreorder(root): In this traversal method, the root node is visited last, hence the name. First we traverse the left subtree, then the right subtree and finally the root node. +![postorder](images/postorder-traversal.png) + **The order:** Left -> Right -> Root ### Algorithm From 86afd64a7bd7c9e265282e095b459f0e64928d6d Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Fri, 21 Jun 2024 16:59:56 +0530 Subject: [PATCH 17/53] Update index.md --- contrib/ds-algorithms/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/ds-algorithms/index.md b/contrib/ds-algorithms/index.md index 047b3dd..274c4be 100644 --- a/contrib/ds-algorithms/index.md +++ b/contrib/ds-algorithms/index.md @@ -19,3 +19,4 @@ - [AVL Trees](avl-trees.md) - [Splay Trees](splay-trees.md) - [Dijkstra's Algorithm](dijkstra.md) +- [Tree Traversals](Tree-Traversal.md) From 4916b99a3ad28b1d464894e50b09f9868d640856 Mon Sep 17 00:00:00 2001 From: anamika123 Date: Sat, 22 Jun 2024 18:19:33 +0530 Subject: [PATCH 18/53] Update pandas_series.md --- contrib/pandas/pandas_series.md | 201 +++++++++++++++++--------------- 1 file changed, 108 insertions(+), 93 deletions(-) diff --git a/contrib/pandas/pandas_series.md b/contrib/pandas/pandas_series.md index 8cc12c8..cbb9a0f 100644 --- a/contrib/pandas/pandas_series.md +++ b/contrib/pandas/pandas_series.md @@ -13,14 +13,14 @@ import pandas as pd s1 = pd.Series([4, 5, 2, 3]) print(s1) - -#Output: -#0 4 -#1 5 -#2 2 -#3 3 -#dtype: int64 - +``` +``` +Output: +0 4 +1 5 +2 2 +3 3 +dtype: int64 ``` ### Series from a Dictionary @@ -31,12 +31,13 @@ import pandas as pd s2 = pd.Series({'A': 1, 'B': 2, 'C': 3}) print(s2) - -#Output: -#A 1 -#B 2 -#C 3 -#dtype: int64 +``` +``` +Output: +A 1 +B 2 +C 3 +dtype: int64 ``` @@ -50,12 +51,13 @@ import pandas as pd s4 = pd.Series([1, 2, 3], index=['a', 'b', 'c'], dtype='float64') print(s4) - -#output -#a 1.0 -#b 2.0 -#c 3.0 -#dtype: float64 +``` +``` +Output: +a 1.0 +b 2.0 +c 3.0 +dtype: float64 ``` ### Specifying NaN Values: @@ -66,13 +68,13 @@ print(s4) import pandas as pd s3=pd.Series([1,np.Nan,2]) print(s3) - -#output: - -#0 1.0 -#1 NaN -#2 2.0 -#dtype: float64 +``` +``` +Output: +0 1.0 +1 NaN +2 2.0 +dtype: float64 ``` @@ -86,15 +88,15 @@ import pandas as pd a=np.arange(1,5) # [1,2,3,4] s5=pd.Series(data=a**2,index=a) print(s5) - -#output: -#1 1 -#2 4 -#3 9 -#4 16 -#dtype: int64 ``` - +``` +Output: +1 1 +2 4 +3 9 +4 16 +dtype: int64 +``` ## Series Object Attributes @@ -123,9 +125,10 @@ import pandas as pd s7 = pd.Series(data=[13, 45, 67, 89], index=['A', 'B', 'C', 'D']) print(s7['A']) - -#output -#13 +``` +``` +Output: +13 ``` @@ -142,12 +145,14 @@ import pandas as pd s = pd.Series(data=[13, 45, 67, 89], index=['A', 'B', 'C', 'D']) print(s[:2]) +``` +``` +Output: +A 13 +B 45 +dtype: int64 -#Output -#A 13 -#B 45 -#dtype: int64 -#This example demonstrates that the first two elements (positions 0 and 1) are returned, regardless of their custom index labels. +This example demonstrates that the first two elements (positions 0 and 1) are returned, regardless of their custom index labels. ``` @@ -165,12 +170,13 @@ s8 = pd.Series([10, 20, 30], index=['a', 'b', 'c']) s8['a'] = 100 s8.index = ['x', 'y', 'z'] print(s8) - -#output -#x 100 -#y 20 -#z 30 -#dtype: int64 +``` +``` +Output: +x 100 +y 20 +z 30 +dtype: int64 ``` **Note: Series object are value-mutable but size immutable objects.** @@ -183,18 +189,21 @@ import pandas as pd s9 = pd.Series([1, 2, 3]) print("addition:", s9 + 5) print("subtraction:", s9 - 2) +``` +``` +output: -#output: -#addition: -#0 6 -#1 7 -#2 8 -#dtype: int64 -#subtraction: -#0 -1 -#1 0 -#2 1 -#dtype: int64 +addition: +0 6 +1 7 +2 8 +dtype: int64 + +subtraction: +0 -1 +1 0 +2 1 +dtype: int64 ``` ### Arthmetic on series object @@ -206,18 +215,21 @@ s11 = pd.Series([4, 5, 6]) print("addition:", s10 + s11) print("multiplication:", s10 * s11) +``` +``` +output: -#output: -#addition: -#0 5 -#1 7 -#2 9 -#dtype: int64 -#multiplication: -#0 4 -#1 10 -#2 18 -#dtype: int64 +addition: +0 5 +1 7 +2 9 +dtype: int64 + +multiplication: +0 4 +1 10 +2 18 +dtype: int64 ``` Here one thing we should keep in mind that both the series object should have same indexes otherwise it will return NaN value to all the indexes of two series object . @@ -236,17 +248,18 @@ import pandas as pd s12 = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) print(s12.head(3)) print(s12.tail(3)) +``` +``` +Output: +0 10 +1 20 +2 30 +dtype: int64 -#output -#0 10 -#1 20 -#2 30 -#dtype: int64 - -#7 80 -#8 90 -#9 100 -#dtype: int64 +7 80 +8 90 +9 100 +dtype: int64 ``` If you dont provide any value to n the by default it give results for `n=5`. @@ -263,20 +276,22 @@ s13 = pd.Series([3, 1, 2], index=['c', 'a', 'b']) print(s13.sort_values()) print(s13.sort_index()) print(s13.drop('a')) -#Output -#a 1 -#b 2 -#c 3 -#dtype: int64 +``` +``` +Output: +a 1 +b 2 +c 3 +dtype: int64 -#a 1 -#b 2 -#c 3 -#dtype: int64 +a 1 +b 2 +c 3 +dtype: int64 -#c 3 -#b 2 -#dtype: int64 +c 3 +b 2 +dtype: int64 ``` ## Conclusion From d1a2bd56a3f1c0f4d2ba8e9e891ad26238e7d311 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sat, 22 Jun 2024 22:56:59 +0530 Subject: [PATCH 19/53] Trial --- contrib/machine-learning/reinforcement-learning.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index 2c22742..47c350b 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -298,4 +298,13 @@ for i in range(num_rows): ## Conclusion Congratulations on completing your journey through this comprehensive guide to reinforcement learning! Armed with this knowledge, you are well-equipped to dive deeper into the exciting world of RL, whether it's for gaming, robotics, finance, healthcare, or any other domain. Keep exploring, experimenting, and learning, and remember, the only limit to what you can achieve with reinforcement learning is your imagination. -*Happy coding, and may your RL adventures be rewarding!* \ No newline at end of file +*Happy coding, and may your RL adventures be rewarding!* + +\( Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) \) + +where: +- \( Q(s, a) \) is the Q-value of state \( s \) and action \( a \). +- \( r \) is the observed reward. +- \( s' \) is the next state. +- \( \alpha \) is the learning rate. +- \( \gamma \) is the discount factor. From 5cf4b9b5cbd88c094427cffff5a4881d3cc48118 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sat, 22 Jun 2024 23:01:52 +0530 Subject: [PATCH 20/53] Trial-2 --- contrib/machine-learning/reinforcement-learning.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index 47c350b..760d530 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -300,11 +300,11 @@ Congratulations on completing your journey through this comprehensive guide to r *Happy coding, and may your RL adventures be rewarding!* -\( Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) \) +$$ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) $$ where: -- \( Q(s, a) \) is the Q-value of state \( s \) and action \( a \). -- \( r \) is the observed reward. -- \( s' \) is the next state. -- \( \alpha \) is the learning rate. -- \( \gamma \) is the discount factor. +- $Q(s, a)$ is the Q-value of state $s$ and action $a$. +- $r$ is the observed reward. +- $s'$ is the next state. +- $\alpha$ is the learning rate. +- $\gamma$ is the discount factor. From d6f24246c75c1e5f7cfbfa51f8b39db5a2f811a3 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra Date: Sat, 22 Jun 2024 23:05:57 +0530 Subject: [PATCH 21/53] Final Commit --- .../reinforcement-learning.md | 34 +++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index 760d530..fcc26d6 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -113,13 +113,14 @@ Q-Learning is a model-free algorithm used in reinforcement learning to learn the - Choose an action using an exploration strategy (e.g., epsilon-greedy). - Take the action, observe the reward and the next state. - Update the Q-value of the current state-action pair using the Bellman equation: - - where: - - is the Q-value of state and action . - - is the observed reward. - - is the next state. - - is the learning rate. - - is the discount factor. + $$ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) $$ + + where: + - $Q(s, a)$ is the Q-value of state $s$ and action $a$. + - $r$ is the observed reward. + - $s'$ is the next state. + - $\alpha$ is the learning rate. + - $\gamma$ is the discount factor. 3. Until convergence or a maximum number of episodes. ### SARSA @@ -128,13 +129,13 @@ SARSA (State-Action-Reward-State-Action) is an on-policy temporal difference alg #### Algorithm: 1. Initialize Q-values arbitrarily for all state-action pairs. 2. Repeat for each episode: - - Initialize the environment state . - - Choose an action using the current policy (e.g., epsilon-greedy). + - Initialize the environment state $s$. + - Choose an action $a$ using the current policy (e.g., epsilon-greedy). - Repeat for each timestep: - - Take action , observe the reward and the next state . - - Choose the next action using the current policy. + - Take action $a$, observe the reward $r$ and the next state $s'$. + - Choose the next action $a'$ using the current policy. - Update the Q-value of the current state-action pair using the SARSA update rule: - + $$Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma Q(s', a') - Q(s, a) \right)$$ 3. Until convergence or a maximum number of episodes. ### REINFORCE Algorithm: @@ -299,12 +300,3 @@ for i in range(num_rows): Congratulations on completing your journey through this comprehensive guide to reinforcement learning! Armed with this knowledge, you are well-equipped to dive deeper into the exciting world of RL, whether it's for gaming, robotics, finance, healthcare, or any other domain. Keep exploring, experimenting, and learning, and remember, the only limit to what you can achieve with reinforcement learning is your imagination. *Happy coding, and may your RL adventures be rewarding!* - -$$ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) $$ - -where: -- $Q(s, a)$ is the Q-value of state $s$ and action $a$. -- $r$ is the observed reward. -- $s'$ is the next state. -- $\alpha$ is the learning rate. -- $\gamma$ is the discount factor. From 194fc52150204544790c525234ad7f21387c4b59 Mon Sep 17 00:00:00 2001 From: Ojaswi Chopra <99067527+ojaswichopra@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:06:47 +0530 Subject: [PATCH 22/53] Update reinforcement-learning.md --- contrib/machine-learning/reinforcement-learning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index fcc26d6..027b682 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -113,7 +113,7 @@ Q-Learning is a model-free algorithm used in reinforcement learning to learn the - Choose an action using an exploration strategy (e.g., epsilon-greedy). - Take the action, observe the reward and the next state. - Update the Q-value of the current state-action pair using the Bellman equation: - $$ Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right) $$ + $$Q(s, a) \leftarrow Q(s, a) + \alpha \left( r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right)$$ where: - $Q(s, a)$ is the Q-value of state $s$ and action $a$. From 212fbb2f19aa65ae308e989e21b8929f93a4289c Mon Sep 17 00:00:00 2001 From: srilekha279 <158455553+srilekha279@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:16:31 +0530 Subject: [PATCH 23/53] Update index.md I have made changes as mentioned in the issue. --- contrib/machine-learning/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/machine-learning/index.md b/contrib/machine-learning/index.md index df7a3e5..72ef609 100644 --- a/contrib/machine-learning/index.md +++ b/contrib/machine-learning/index.md @@ -10,8 +10,8 @@ - [Support Vector Machine Algorithm](support-vector-machine.md) - [Artificial Neural Network from the Ground Up](ann.md) - [Introduction To Convolutional Neural Networks (CNNs)](intro-to-cnn.md) -- [TensorFlow.md](tensorflow.md) -- [PyTorch.md](pytorch.md) +- [TensorFlow](tensorflow.md) +- [PyTorch](pytorch.md) - [Ensemble Learning](ensemble-learning.md) - [Types of optimizers](types-of-optimizers.md) - [Logistic Regression](logistic-regression.md) From 5174c9dc1f8f93ab717ea5c0d0bb52176ebeac3f Mon Sep 17 00:00:00 2001 From: Shraman Jain <60072287+Shraman-jain@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:30:23 +0530 Subject: [PATCH 24/53] Update threading.md --- contrib/advanced-python/threading.md | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/contrib/advanced-python/threading.md b/contrib/advanced-python/threading.md index 07bc4bf..fa31533 100644 --- a/contrib/advanced-python/threading.md +++ b/contrib/advanced-python/threading.md @@ -30,6 +30,10 @@ thread.join() print("Thread has finished execution.") ``` +Output : +``` +Thread has finished execution. +``` **2. Performing Task with Thread:** We can also perform a specific task by thread by giving a function as target and its argument as arg ,as a parameter to Thread object. @@ -53,6 +57,15 @@ thread.join() print("Thread has finished execution.") ``` +Output : +``` +Thread: 0 +Thread: 1 +Thread: 2 +Thread: 3 +Thread: 4 +Thread has finished execution. +``` **3. Delaying a Task with Thread's Timer Function:** We can set a time for which we want a thread to start. Timer function takes 4 arguments (interval,function,args,kwargs). @@ -75,6 +88,16 @@ thread.join() print("Thread has finished execution.") ``` +Output : +``` +# after three second output will be generated +Thread: 0 +Thread: 1 +Thread: 2 +Thread: 3 +Thread: 4 +Thread has finished execution. +``` **4. Creating Multiple Threads** We can create and manage multiple threads to achieve concurrent execution. @@ -100,6 +123,20 @@ thread2.join() print("Both threads have finished execution.") ``` +Output : +``` +Thread 1: 0 +Thread 1: 1 +Thread 2: 0 +Thread 1: 2 +Thread 1: 3 +Thread 2: 1 +Thread 2: 2 +Thread 2: 3 +Thread 2: 4 +Thread 1: 4 +Both threads have finished execution. +``` **5. Thread Synchronization** When we create multiple threads and they access shared resources, there is a risk of race conditions and data corruption. To prevent this, you can use synchronization primitives such as locks. @@ -130,6 +167,30 @@ thread2.join() print("Both threads have finished execution.") ``` +Output : +``` +Thread 1: 0 +Thread 1: 1 +Thread 1: 2 +Thread 1: 3 +Thread 1: 4 +Thread 1: 5 +Thread 1: 6 +Thread 1: 7 +Thread 1: 8 +Thread 1: 9 +Thread 2: 0 +Thread 2: 1 +Thread 2: 2 +Thread 2: 3 +Thread 2: 4 +Thread 2: 5 +Thread 2: 6 +Thread 2: 7 +Thread 2: 8 +Thread 2: 9 +Both threads have finished execution. +``` A ```lock``` object is created using threading.Lock() and The ```with lock``` statement ensures that the lock is acquired before printing and released after printing. This prevents other threads from accessing the print statement simultaneously. From bbe8349341e9c264d104bce0127332014060a5cd Mon Sep 17 00:00:00 2001 From: Revanth <109272714+revanth1718@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:45:04 +0530 Subject: [PATCH 26/53] Add files via upload --- contrib/machine-learning/assets/XG_1.webp | Bin 0 -> 16294 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/machine-learning/assets/XG_1.webp diff --git a/contrib/machine-learning/assets/XG_1.webp b/contrib/machine-learning/assets/XG_1.webp new file mode 100644 index 0000000000000000000000000000000000000000..c693d3da7138fa30b344d82d640a233440c783e3 GIT binary patch literal 16294 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 literal 0 HcmV?d00001 From 995c7c6581a7c44cc81c184876f8d55a901b63fa Mon Sep 17 00:00:00 2001 From: Revanth <109272714+revanth1718@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:45:44 +0530 Subject: [PATCH 27/53] Add Xgboost --- contrib/machine-learning/xgboost.md | 96 +++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 contrib/machine-learning/xgboost.md diff --git a/contrib/machine-learning/xgboost.md b/contrib/machine-learning/xgboost.md new file mode 100644 index 0000000..f704463 --- /dev/null +++ b/contrib/machine-learning/xgboost.md @@ -0,0 +1,96 @@ +# XGBoost +XGBoost is an implementation of gradient boosted decision trees designed for speed and performance. +## Introduction to Gradient Boosting +Gradient boosting is a powerful technique for building predictive models that has seen widespread success in various applications. + +- **Boosting Concept**: Boosting originated from the idea of modifying weak learners to improve their predictive capability. +- **AdaBoost**: The first successful boosting algorithm was Adaptive Boosting (AdaBoost), which utilizes decision stumps as weak learners. +- **Gradient Boosting Machines (GBM)**: AdaBoost and related algorithms were later reformulated as Gradient Boosting Machines, casting boosting as a numerical optimization problem. +- **Algorithm Elements**: + - _Loss function_: Determines the objective to minimize (e.g., cross-entropy for classification, mean squared error for regression). + - _Weak learner_: Typically, decision trees are used as weak learners. + - _Additive model_: New weak learners are added iteratively to minimize the loss function, correcting the errors of previous models. +## Introduction to XGBoost +- eXtreme Gradient Boosting (XBGoost): a more **regularized form** of Gradient Boosting, as it uses **advanced regularization (L1&L2)**, improving the model’s **generalization capabilities.** +- It’s suitable when there is **a large number of training samples and a small number of features**; or when there is **a mixture of categorical and numerical features**. + + +- **Development**: Created by Tianqi Chen, XGBoost is designed for computational speed and model performance. +- **Key Features**: + - _Speed_: Achieved through careful engineering, including parallelization of tree construction, distributed computing, and cache optimization. + - _Support for Variations_: XGBoost supports various techniques and optimizations. + - _Out-of-Core Computing_: Can handle very large datasets that don't fit into memory. +- **Advantages**: + - _Sparse Optimization_: Suitable for datasets with many zero values. + - _Regularization_: Implements advanced regularization techniques (L1 and L2), enhancing generalization capabilities. + - _Parallel Training_: Utilizes all CPU cores during training for faster processing. + - _Multiple Loss Functions_: Supports different loss functions based on the problem type. + - _Bagging and Early Stopping_: Additional techniques for improving performance and efficiency. +- **Pre-Sorted Decision Tree Algorithm**: + 1. Features are pre-sorted by their values. + 2. Traversing segmentation points involves finding the best split point on a feature with a cost of O(#data). + 3. Data is split into left and right child nodes after finding the split point. + 4. Pre-sorting allows for accurate split point determination. + - **Limitations**: + + 1. Iterative Traversal: Each iteration requires traversing the entire training data multiple times. + 2. Memory Consumption: Loading the entire training data into memory limits size, while not loading it leads to time-consuming read/write operations. + 3. Space Consumption: Pre-sorting consumes space, storing feature sorting results and split gain calculations. + + XGBoosting:![enter image description here](https://miro.medium.com/v2/resize:fit:1100/format:webp/1*8Y_e29rVdBZ4pC3DFDEZDQ.png) +## Develop Your First XGBoost Model +This code uses the XGBoost library to train a model on the Iris dataset, splitting the data, setting hyperparameters, training the model, making predictions, and evaluating accuracy, achieving an accuracy score of X on the testing set. + + +```python +# XGBoost with Iris Dataset +# Importing necessary libraries +import numpy as np +import xgboost as xgb +from sklearn.datasets import load_iris +from sklearn.model_selection import train_test_split +from sklearn.metrics import accuracy_score + +# Loading a sample dataset (Iris dataset) +data = load_iris() +X = data.data +y = data.target + +# Splitting the dataset into training and testing sets +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) + +# Converting the dataset into DMatrix format +dtrain = xgb.DMatrix(X_train, label=y_train) +dtest = xgb.DMatrix(X_test, label=y_test) + +# Setting hyperparameters for XGBoost +params = { + 'max_depth': 3, + 'eta': 0.1, + 'objective': 'multi:softmax', + 'num_class': 3 +} + +# Training the XGBoost model +num_round = 50 +model = xgb.train(params, dtrain, num_round) + +# Making predictions on the testing set +y_pred = model.predict(dtest) + +# Evaluating the model +accuracy = accuracy_score(y_test, y_pred) +print("Accuracy:", accuracy) +``` + +### Output + + Accuracy: 1.0 + +## **Conclusion** + +XGBoost's focus on speed, performance, and scalability has made it one of the most widely used and powerful predictive modeling algorithms available. Its ability to handle large datasets efficiently, along with its advanced features and optimizations, makes it a valuable tool in machine learning and data science. + + +## Reference +- [Machine Learning Prediction of Turning Precision Using Optimized XGBoost Model](https://www.mdpi.com/2076-3417/12/15/7739) \ No newline at end of file From bc20d105b779532363b05ce104c5a519742c0cd3 Mon Sep 17 00:00:00 2001 From: Revanth <109272714+revanth1718@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:49:10 +0530 Subject: [PATCH 28/53] Update xgboost.md --- contrib/machine-learning/xgboost.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/contrib/machine-learning/xgboost.md b/contrib/machine-learning/xgboost.md index f704463..1eb7f09 100644 --- a/contrib/machine-learning/xgboost.md +++ b/contrib/machine-learning/xgboost.md @@ -1,8 +1,8 @@ # XGBoost XGBoost is an implementation of gradient boosted decision trees designed for speed and performance. + ## Introduction to Gradient Boosting Gradient boosting is a powerful technique for building predictive models that has seen widespread success in various applications. - - **Boosting Concept**: Boosting originated from the idea of modifying weak learners to improve their predictive capability. - **AdaBoost**: The first successful boosting algorithm was Adaptive Boosting (AdaBoost), which utilizes decision stumps as weak learners. - **Gradient Boosting Machines (GBM)**: AdaBoost and related algorithms were later reformulated as Gradient Boosting Machines, casting boosting as a numerical optimization problem. @@ -10,11 +10,10 @@ Gradient boosting is a powerful technique for building predictive models that ha - _Loss function_: Determines the objective to minimize (e.g., cross-entropy for classification, mean squared error for regression). - _Weak learner_: Typically, decision trees are used as weak learners. - _Additive model_: New weak learners are added iteratively to minimize the loss function, correcting the errors of previous models. + ## Introduction to XGBoost - eXtreme Gradient Boosting (XBGoost): a more **regularized form** of Gradient Boosting, as it uses **advanced regularization (L1&L2)**, improving the model’s **generalization capabilities.** - It’s suitable when there is **a large number of training samples and a small number of features**; or when there is **a mixture of categorical and numerical features**. - - - **Development**: Created by Tianqi Chen, XGBoost is designed for computational speed and model performance. - **Key Features**: - _Speed_: Achieved through careful engineering, including parallelization of tree construction, distributed computing, and cache optimization. @@ -32,16 +31,15 @@ Gradient boosting is a powerful technique for building predictive models that ha 3. Data is split into left and right child nodes after finding the split point. 4. Pre-sorting allows for accurate split point determination. - **Limitations**: - 1. Iterative Traversal: Each iteration requires traversing the entire training data multiple times. 2. Memory Consumption: Loading the entire training data into memory limits size, while not loading it leads to time-consuming read/write operations. - 3. Space Consumption: Pre-sorting consumes space, storing feature sorting results and split gain calculations. - - XGBoosting:![enter image description here](https://miro.medium.com/v2/resize:fit:1100/format:webp/1*8Y_e29rVdBZ4pC3DFDEZDQ.png) + 3. Space Consumption: Pre-sorting consumes space, storing feature sorting results and split gain calculations. + XGBoosting: + ![image](assets/XG_1.webp) + ## Develop Your First XGBoost Model This code uses the XGBoost library to train a model on the Iris dataset, splitting the data, setting hyperparameters, training the model, making predictions, and evaluating accuracy, achieving an accuracy score of X on the testing set. - ```python # XGBoost with Iris Dataset # Importing necessary libraries @@ -88,9 +86,7 @@ print("Accuracy:", accuracy) Accuracy: 1.0 ## **Conclusion** - XGBoost's focus on speed, performance, and scalability has made it one of the most widely used and powerful predictive modeling algorithms available. Its ability to handle large datasets efficiently, along with its advanced features and optimizations, makes it a valuable tool in machine learning and data science. - ## Reference -- [Machine Learning Prediction of Turning Precision Using Optimized XGBoost Model](https://www.mdpi.com/2076-3417/12/15/7739) \ No newline at end of file +- [Machine Learning Prediction of Turning Precision Using Optimized XGBoost Model](https://www.mdpi.com/2076-3417/12/15/7739) From da0d7f9beb36e76f3e47ed4025f98d82b13381e0 Mon Sep 17 00:00:00 2001 From: Revanth <109272714+revanth1718@users.noreply.github.com> Date: Sat, 22 Jun 2024 23:50:33 +0530 Subject: [PATCH 29/53] Update index.md --- contrib/machine-learning/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/machine-learning/index.md b/contrib/machine-learning/index.md index df7a3e5..caea81e 100644 --- a/contrib/machine-learning/index.md +++ b/contrib/machine-learning/index.md @@ -25,3 +25,4 @@ - [Naive Bayes](naive-bayes.md) - [Neural network regression](neural-network-regression.md) - [PyTorch Fundamentals](pytorch-fundamentals.md) +- [Xgboost](xgboost.md) From 62d8f99700e509b1c8e5ecefcd996b61a47b44d6 Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:15:29 +0530 Subject: [PATCH 30/53] Delete contrib/ds-algorithms/images/binarytree.png --- contrib/ds-algorithms/images/binarytree.png | Bin 24521 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/binarytree.png diff --git a/contrib/ds-algorithms/images/binarytree.png b/contrib/ds-algorithms/images/binarytree.png deleted file mode 100644 index 3d24e5e1ff08a8facef8c51eb6cc3f4f7f257900..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24521 zcmb5WWmuM7&^8L9DBU3`UDA>Y2;78#5>kS+2m;d5rF3_Sq$nLqr?fOE2nf>M-LdC> z-uL^CWB=RRKOVw$t!u4Wvu4gY=UfJ>Jd?x0q`*W$LBV+|TT@O46MIurYX@^1$8EGG zaTJt$C{GZQ>Mp4p|6H}hU9WHNR2@DsW$Q|jl5rZZVyhz!+8G%*8zijwhYd3JVMG zFQ~}M%09z8{g9B5pw!8qe%fm$zMnkcao97!@%uXw0Rcf5Mj#Zy3ArGxCXeF(_hh+iQ3#$qfBl*{ zD?6Kjj4aS>AdOByfP_}u<3}JKZANxBnwXea9G4yi35O;EOe{0XL@$6`1`0~LxMxeV z?`^xIjTe(OWa0c@pS66Bxoa`<*5^KofB8FA^(Nt|oJN@rUzVSV+_c79Q&PrKkGc~$ zZd1Q~d-13KZedZ8N{PPM5O-jZIzE^Jhm4T$Ltmq=?IXsUhaYt^UpL5-|0$y-E!-bC za`14urWxf5oL|e?*WRolh@SNw`fi4Iusw?R<;xdLD`mu*pEO2vz~26TtMMpPu1+1- zn!p?1F09d|vl`5+WeM}aVN9G99aNMw@n=#$GaJYyOhpec*A3_Vc5`*BitF=j^G9e6a^^PS*-II{B3^x`diSw@wk5FfL8s(yKa zwCgo5nDq^QAOXYff-B~iUflq~90d-h?=p1}=0n8{&u-qz(A@l+BxEBl8)2)WAV`o$ z>cyBOkCyt-8Q1OXEO+`F(aTXAt-p`=Y>KREXMVPmw~4#GpME%YkDvefDs_BgBU+>Fd-~91|-a8 zuD&N~uhtn5qIFGE2!0P3ox&e;{MPP|MTQuqqYnn>`uwHR>ag{^{`&o8(wnS;i@~Gp z*(708Q9>dj87(?`4CEsLU!Gp0Rn5opSY2QbX?VRU^2T>NS`7>ex-+B^B+mnf!J^}z z31|6%g3(NFS60ER37zYEN}qVK%F4>J3h<*J!#NrL8BD}tE4*;?4EruatwKbfK^Z|` z$~AK>Isrx;3;0+knR4t|yH?VG$J1W#>nkyA#e|lwbv#oyujps!v@QN7s5=vD=dGRc zhyPhTQ7j#~$SmE+H0_nLCyqGD<>sRVIx>f44$IGw(?UT`%Wz<-;pcM|%J7d>gnBZs zO|EU5$I9jrqxa}h;n3!x4jfYQ{B!kRp|DrYFqFJlt;fb9k*{0rClr}a)O=l`z% zVs_g6%LE2tLxvfW!;NwN&tGz~yKIVNv{aLh^fpT+W_(sC5T6;rp6crI@^`Qm;tBMm zGuMQyBL;~&cV}B~BUg@rTv{$sCX3N{ZVilVHlEAY|LGwMa%9y1My6k6S`*N`XfWRT z*Z6*`Xg#~wj^L38{@0!Q5`k~lz6GPjY+{K)agksHOtdT?~$<632L5lJV1Q*KrUghH4qQx7%at)jjd?Z^Zt41=8!=q4BGgCErc>|=1?K% z!DFwXTS2VLF|o1HXPRX;dFng@S}Xg@Z4Gr*J4=0(#GE?n$j!*O(9zKm5ocv!kp40_ z`HByDCa*6>OAMqHb>+S+t1|r+tvxwdB`Pm3XSBOQhC>eKben1Xyo`F+{Y=E_w=7H6 zr$wTNQ3(l1mt-TKZlqI_OioVUo$DeR5{O&+8?QL1kzIF>Xz183$4~y&>dMN!`Aztp*~+ z$NP7%dR%5EUC7GX%*87HkOuM6VB@Cw=$H8a>$}?5UY>RrGx|dU#Pt09L}pSEKl=Nh zA@`9GxvoORM6PNlUTp3(F*tWyPUmh$E2Wu83lk!zW%vB6QU~e4VwUC4PbJHky(jz1 zLjpna!AQ5SHfjx+ZO;yL*&nqW(pXrMpTP~I5Fm7Ob3+Cq!o?@b$^(!a!CCnHU%z_w z^S|79!F}uI%^#Ngg4Kmb(W^B%GxLFX<|Z!)2GS+Yw~ljM{_~d}mj41y2F&e5c}mIe zlL%LBNbls5QVYeg0CH|9^}UaxQ^p!BSwdD}6%DfMt6#WYBh;j`$fkz_-1|LO;^^-zem~HyRrotKAkc53m+HJ4QkgT4%+Pv=Uiz zSc)!%`tLOgG>ujUGn2&JD_3+7jK~x%fK2vCH1PDJU^^UjRFqIMPQ;NBX|O-O2m-ysN9r*3r=~ zA%XPKqelQv_S^s8+rz$bcDSCamV=2rZ5v}{+qjG87@w{hjWaCbMri}c4n-oM{^X( z7@3&pn3>Tzbt~IGJq+1aKp5|a6eHM|W?KVSMheJ8oi+dv22s)4n3~?=;NaL8|4zpB zTrNv3el2&j4RiBh&vuq&BoXbslNp-HCTA>Be@x@`rSRMr-Hb{FxLJeipG1Ji$7S<4Hedk8862C+gznW;|M~m#a~b@N!Q%?NRXN)kC`zTYL*4 z^RQZ+luZ5DX_cYL8?O7WZFmp$bl8gx8iF`xmv=6n5N_!=1vGk|8$Q0i%2m(%rM&N8 z+?OJt-QXrrUthm-zTLFECZc{ifW(!@9=J@sW{sE&OZF;S>U;#_gE?i??sz zo*z#BUhTQe)t@FFY%ja0TIa>!advRm-_bF%#3pFCyeVpz3kStkf(tzu!;aNj<%Vfb zoMb5JAM^1Rig)XO`ZTzFg(#Ttek89mzS6M-|{@E?|&;S10kJW?r&pYU<5@*%GulVO*MLk;?auVGY}VBSzF68AIf5V z-a!NSk>|k!b@LK$ejc75u-;OeX>oE&%GUPwTMTj$>N?^CY|oGd0#!+zyyq`t@%<5| zCan^ER?R|ku!G-%cjWNi*QXx?dJ?%?TU*gcNl6t32H22zTcSgG8vn`Qd$ijbMMdGL zXy_iiQG->Jlar;6t7_QPqQu`{_aP7LD*)8;#sPS=5pO3dXaChXuMFqKu86YFZgaFG zuxnt#6ouUma#s`(aafQz8RrgGf3s@j6T_rRk#OgodQ5gU0~8-K>+7MCzUYA9H5{4f zyHTwjnPPm{o`0EH>ibyjyiF5A%E?|Ep}?VEFMM%%NkC412MY_UH%*KZ7Z*3nl0a3^ z7IIq#rI2-o#YjGnpkT*Pwwy@RPu1oAPti$9L3PgCS#a`$A|gluW_rDcX!ha$%WC}h z@81i1obV_qDIrExb-@mDuU;{tW0U*fQi~c6Wyxf55DeiVhwh>g_XuKsngXyESx-^P z$7NXmtAzvbxXid+B~$7a)k7yGnE4qlV`w-cn6qs5DzTDQn0ydJf*ww5_< z>R?j|t1MY^;YWKQ6T$}}o2egv{*WGTPj`axRO_7H4#hvv?22I`z{f|?)zyt-dyY;i zXoU}xz6ykl{NeQcJo|NDN|NAPier9x`A8bEoxMfHmrY*Onwpwms5CG&MI@zOFmWzm zQC79jcebXRxN9*lf2@rZ*scCzf(^J${m{wp`}gn2M?=99n6@W7Ml0*<**4RS+I3Dv zE20NjhwG!ABL!Njh1$GHNlEvFg|%UE;cfAR^dgjEZV#sFU40X|4MK{gL>{>Ay}~Bv zL1B;$^GQ#q1;??<~xjflX$_Kah8@JT_XbxO!{w? zO=Np08Hd>Q^n=|Cegg+&aT}+|#l?mEZ3L}E+U9#d_1K&oCfKaZl9GY&QUoUCE!IG= zVPpUfCB4m5J@}n(baeEJ!e_?$j__6(Z+3Mx7*5DNF)=-`Q3d2d*4uxIbOVtt)Ea=3 z#A_0;BFcy&)I!LH8%UUC<#M=2Vr69&6&L3>QDu`Y8%~kM5p8H-8aG% zn_5j)tHPFc0Su-vh3vXA{+&h8dNQahmL;@UnxfEQxnEvEp#`in^vzV!+K&l%kze?b z>di;;Nzx>|BYysr*VfjCk#C}Ce|v?Iz-&RQUXBNM_{X=X=**HXc=D{$d5k5l_XgC?4$>#Mq7``>*bdA$1)1~mm{6f2wan&pZ|a3sXy4BeG^unt5dHO^OS4|cbU#O9|Qd(Zgz-LJ~&9k5fX-(Ec#dKVOz<+3}s zb9~$h#E+4Y5h@D{%M|nbVTe)ki*0Rf8LHW`gCisDyYrnQQBksM!+AtNBoI(j_i?nu z`~}y}i!<#>XdWFU)2*_W0bh_Ar6cU`>%&o1RV5d+BG;+3!Z0&48;TFI59eU|OqeF- zj&5mbSr4Fsj9Y)He~6zB*e{N{T(h{k;3QOpLBmQ&Z-{xdf0~Pjv4M zDTm$VM@POPtF88eNIS z)Fk0{xaJS3y?J5+_CCuSJlSZeH`!OjVd>ue``EtdI7n~HcH9^v0HB1hvbwKRZr&VT ziljQ_SGOi>d~4sWx4`iRFwCl&<%i6DJtHF|99qSGzP@OXQkiOT-yoe>y|}m-2}_-} zr;vFhxL6u-V$Wa&tQkHP)%{w+H^6^0S1anON)RaLA_8L87R)WSBA3fPWMc$ zrt0sa-NtQ$_zq_S2S^oSh=T7*D=RzlH41o~w_d`&tgtjr-C18;WP&mA!4tFq<2D!R zR@v^($)t+D!-TNk0scZjOza0Qg%ryn#)m84>iPu)&_8-a1@N*RLNoH=$$D2Jm=B>| zeOKVQhT0Rl#RAYFB6q=MdO?`&tu%{^0JN! zRm{`#!P~#Yi{agwFTTGvpQ;zxTVB4#2}Xnl1^r0=Zbm?v=u^7CytA?T{DH+^Dz>gJ z*4!L4=K&n~r|zN0+f$MT2DGEavRP_O&mUNg;p420`o_nTgoTI8G-0dRAqysl1&9E5 zu(8{Ys2>v0k_C$5e9SWXuE`_F?^_nk=7>dhy1F}%F5WT!Ik1|>6;+jt8znj2P~|0U zgWJ*Lug^Yx8;K{1`K*oQ(c`l~yi%(%>~|CoWXAWHS)UhQD5tZC zT~gC9x6MjQVRNNRgimO3XU=$IW~J-V9&C&gF*7qa^$y^?6TR-eCJiK9GE(DGsS|M9MI0(WO(0ozZxz$UL3$+tM^(`6iS!I z*!O1VlrSA@_Cb@>TcM8_hLctKFCHXMX%67y3gG5fL%%nacd>f4-z! zb=GV;D>eLP4BJ=ssZ`f5Q`5CQeimOmqpy(<*M{?h?|NVD4(L8i@qlu_r#BY+kGpGg zZ#`ePRzc_|Ix-T`C={OvYoo9fzT2o~HZ%Q~a=Ch)gaC}6n=?l<1EAva`uk7pR9K>jGg8Z?sL#|6OXRduInd?y-p3!j9oJ9$P!@HQ8LIoJ){uoES^u? zYiR%=k zKSy*#r2AlL6}P&^<5>*nahEGbqT*`LY=s^*P29V8@3A>q43`&a?3LZhAf1cb`OM^} zuUQ2iMn0`Bi0Q`ndmYR{!Hq2Y?kR|r45N8wa$$QuiYjxC+HQ$%EuQwRLHR<*vWcVwK@=kXv#f0 zz|g)A+*}WTlioS5ZIUP+senaKT#kItvT~qaBvuX_{x-d3jp%H(Y(*c^ zkf#@pGcR2pNYA!uLbZLK`Tpj~wp<_#9scL-=Y4&VX!BONFu$iIs5~V)(vI;|$)e6| zmDUr%`^y8N@ZBGo2;T~ef9RH#TV#3+TKOZTh*r`~UdxEs6?R0+>6vx29P#72{stMX zu6UASaJSK6ftjyN@}Ca=P9|817O4zGi0Dma5@#0m1s z_%3lGw4y^-xj1IN8D_3fAQ>VYhl3T>dau}!?h%WSVtOGoD&`+=xQ-K|mh4i5@G2Y7 zgNx~e{6mRliqM~yS{zbQya9Ro=8Q^~WaZmqxlP$VU@n7N{6p{ATz$BMi;J}5tg*4N?eUhL z_HZs!ZHUzHTdP~!IFvG@_n=o`9+i`YV$I#eeEsN??cy2<@RY<{J3mk#lv@BnELE{S zi3ZL}s^<&+hTs5U&!zio53JbXH-O;q(3uqHp)dgAlC2kz{LbD8hx&tp`!F?)JnLW+ zx=xrH)4WO+U6zUQU`C#Ci77tG-S@m`wOJaUFiVSH(D>F>c67~1WAG%#xl_qdx! zQ9!*fT`>KS?ZJHCx|VjCA#<(vh~)2XrlIzH+=RN`A0J0ch*QpO5^z4wb(0i(SfpG) zA5lbHUQto;KVsdW@`9*Sn#aAJIoaNuneT#1_V~L@4Q4!#$Hs#Njwo8xhgHTQ(gwYH zjkurU4z8S;_Va~_%Fn+p%M$@#QzCvUWb;qTuJsq6Smyw;r)P5eo!myl#EO8qa2Q82 z-Pxaa8TwEntMBYBa{B=F(9+hnkX{lhe%-5O)p%yjli}Ug-kzBn z&AYeQ^R*QFm}y^CU77adaR4$FprCxTc3Qd6<=hx6*MB4ZK2_ zYe6yMql?T=+_|NS9@`g-;nQ^&*Em-p#J_!y6|`Q~+EPHvNKN~y>8=KkjFM6>nKVY8 z5IE{RK|#_(3XY@fAD?Q+Gv$Yjudx|XGK#XX_VWb@JkM*TzF!x4++RXkIV zo@(mQ1b1d4&|bZM-IDQnPO!ssVD|Fi%$6u#!|lk&p-$BCDSA0>oDhd(^O6zWJG=98 z>Xo?x*FUSrdFo^jH~p$t9{x<1kZ{AJ2`>A+%*J$VBXfuymDY=u`v&-biWvx&E|+Sq zO>a+J?zjJC>My0_!;F2+t)?Tp!(R4(v;bSvb6fwST?2)qiAh*hP=vCIk*x&R_)=$! z+8+CQm#do?L(Zkn6U;AhB=GQ>P>9*Sq-y*u9~N>s=6cHZf)NJ{;!|AAHI>75#qFf2 zNlMyF9{7V=m-kJ-)B!c0>}>M%J{KoRZEd%AU5NZ$$9Gr^oQIs4WU7;mF-;?vqqoQ= z95*7S-clOT51b3NIx|w3XFWHq%AJ)%sQ8YWIhvMdOTC_fUPl zEry-=h7D`>=~P5VrxlkjOE|BQJK3Bcy>|H$Um#T_ui7@%P*l26Vrq(-qmZEfzm|^U z(88_CCU!S%i){`pHHl?;T~j2v9-&8)a>&meYjBTkmoAV{O*c7Rf^OC5LrdEA+<2_^ zBNKXS85ytL!-qn}bccNgta_EHE#I0*owrG`ad6@j+K$ej|D{qG?9YUaui4&1w~4JItwS+yKs`0 zoj0Gc4x=8U{&zN>ooXlZ=!u(;n3p(o!FZ-ncT-K#owUwlx|q z8bx8_PRn+|IKBR}J6e!+4r}5687ziUFrt+{B z2Nn=4lkEKod2jRtAs*EsXUm<2C$r5Z2u&NdFsQfwxV~+hiH;>sFj8-%PfaM)7~40K zJNQQ_|J2hrONOK=Gx4*pyTSuRK?0}k;@k^pT5&<#1MU_2$ZF&e7#XJ`<<@lHT+nB* zYPAexyY4S#Sw_X!u@2z_?T=V9=&swWzH>aEHI%Dr6310EiPcWPraSF*X?JPw2mRT@ z2fV18f6M<*7C_Q`YwL+YwN%hxYN5gz3r0U&4=I-XY+IzGGe0=>7Fw0P1#z$ZXvFS7 zZH!Ded#_AQO&1UDy|CG0UKij`O0V-UFfi~7(CctqUgTR;)JUARm^-;TtIvwVS?I3x%zlXJ;SwqnO6s*QmY3>{?2U3TQM>}Op_<_C`Z0aQz??vCO z1rq1 zuc2Tm$M0r+ejk57@VL5o0TUTpt|Ay=|CkB&Hhl6P%yh8Y&V+!(4!7($&e?=hX8fDi zEw{rBToV%$XrTMq8q7zu^LK_8(|r#Mb9A}?DN=(&3+8hJwp3-}qSE-^uTy9~E_7uh zUe?*7JG?F!$j4KCHa>nRnd$MPegCVBR&?-rOY+zfFtz9y9hnH}7uwnx%Ew&Vf;Rap z>@`c!Eu(B0g{d-5qHiB2&6-CZID`6Pp_|Jiw7F{zEYZBnLs&;3PLnTG5 z$JF_!R;0P_EpK-MCr2%2G~-QLu@6iR%%R26CPP)l3~Wox3Dq@7fD1sgmD52lZ1BgX zu=`vtvA8-mtSy5hp&@5DwZ zPvDX-3!~G}(2(=L4uckD%>LP-C9>w{f8FadK~JVc^9Ku~Y$(gp)2M1&lxlo7e5KBr z$6}cEk;e(Xq@-k)Wi-N;b;$NMF4g1JUpcBxUY;mFbRq?Ewf<50S{3aqsAkPLJw8b$ zDt)U--T#b#sH%h-B||w~97$K!I4s|+Vu&GygNCHdPzEz3(X0**eoSIW6A+h5+w#wN z%A#M9kK?^~!(G<5eO)3|=YDKGHZj4#`BXqc1hLl+TXfl=uxDdJO)3duL#g zOUkXm<%syV>``mO&)@P-p2;@29X6g^K|hPv?ZBMwU(ja@;D1Z2s;-x(dw@hzBx~Kh zlA#YcG7ojHD#lu^u-tcZw9p}mUQzwnq%s@r_Cljgvw!JV_WL>>n>n6W^&Wno+Ymrw z9@Rw_7&M6kU5_Mfat`QMyJOSR(&o>{EJ2?}oDv;P2c&JHvR8WuiQQs139=XbHPU-` z?pDHmJ#?V($0C#crgbhO_DGaW*LEs;$ol8j{9_>nkOAlJ;C;&cZ%6>W%*@{XyBh{kspO@_A+}NMK;lR&7Hi37xh^Ic& zGwQuI%vN1nJNGksWBODZa~b-miDp-T?o^6&1Ri-^2v3}LMnJB6ZIB8ysON@UOSPJ* zwxIb9PhUcjEywL6oR-=b+}zH%ujj7WuYctz-g)G52P(*p9)OeC&&e0r)%{*9t_`w(#^KbXhNS-i z@9s8$lz?N}srl1v#G`uJ$SUuKmWGd`LxnH+%isK_0M1%2na|Wd?%GB=09z8c978j+ z#G-kbbR^|6bqZmk6_ztIx3?~4Xt3Pmc}{v8m!@TC#-tkGi6*{a^v2$Tq-(4KPo6pM z!T{E$RPErOk>-z0`V3;6I4_dZ2^`Krhi0sL&)chBQPIC*#KwHOQ4BcZclG)6#VA$p(B<4|h5gyGzO+1#tob0zfAar+5X`6+Q`xKk(zwh@Ukwrk|>RDs$y= z8l8}Usi&t$PCP0Htr)}CuhC6R=D8CbO#7}uB?MgT4)lhssJYLOVza&es?yRQKod6B zr89m#wX?Ge0$L8pQT+xt|4!vJdLW}}WkTs0IB~#%{eik)ABPw` z6u`7{(eyGrMlF6ejVwr(<8;x1b*S`WVc`{$sO9D5mD)pXulJ&*rA5ff0wFIg{~z1C z*NcaP)Ber0=bL8{o`&lsQb_>22f7M2#%sBxk}(gjGuhVO6ahs}=W4vWd^eFDA_T$@ zS*b71&-+5B1X%~8qN1++$_ZVe`1}eS_$ToH$S#-HcjJq~ZS%V)C#m3Q{6}@eXJ+9ubkYGq#hEuK#mGqe=8wzgc3Hj-h6m{rK05~ZLLNQ`u# zwezRMfcv+&uo^YY(XX~7=3)Z6D7?mPcaViM`-2C>phE5a!(y$jXJ~luIMMtLvSb1d z@a*i&e6qT1gr1&MJvEG&s`QjKmqKK@uYy!d;W`- znpuf{LksjbkPk(UjgQko5pi_|j8GJ0dsPSBN-Ig|KB@vr9@28k7z z&(=m}sN6d=i(dxA9%LedQ>P6T^=yB0&?JdP_WO38d6IaC8l zqlFcO9PLuW_b~WKt|}U`;qd)+ICAjJtx@K#2x!>P!;ye?d?_SyGgnaT*?VkL<{3Op zKdsLk8D&?`^?^;!(k?TmI6X@)p*aNuNI@#Vr={g)q>cJ>%B@>@AD9qOEO0VP2qj(b zgJd{26Qpz|kawo3_ZsK*ynAtPOYtG))Hd=>Z8+f!(B`r{^CV z8@oag^Q+864&bR>O``f=*bE~Z8*X@fxWs@KNcxT}8BiV3iOi~Gy`Gz&N2-gi1P`e# z{}h5w(**d9?)WC5Y6?n90C;TAzdn=E)+X;ymw--u7bqD8_#vD0eiTx6#Ch^-bhNWA zm}s|?)*FyooXOaSZeA;j;I%_{adX^(T+c2|(j z!Nx*F`wX9Xb9r`%6xb*wZZfM8Tif&Amotx--a9G`a5bqKE79?`oH(n z#oPm6>*ql%E43%n7mDIyNcr1!P&)duM7?d<%3rY%&9I8`9C0tgsdoT&+2 zIRB{zcW>uGhE^EEAg1tAEmL@

zK?6E7(2JXlPfW~%LsYx$X05P){!-nnaUUKyIXRhuQ=C;`{z(5Tq6J#ZWfmjs0NAu) z8p~T-5fIVsc8DQ^Kq z3Z#w{3>+N)=*sPm1b#*3fK?D$_Q{TmRFMzbY|z^8x`L zL``sPRz`z^btEK(u5nmYR1}pS&(lx(O>z4W`#>rX4qySR>zd%*0Gy+?)JLv_=@Q;o zvyY|bRw1wdDSVM6?pX`l(E?H;Xz?L56yR0dQ*dxO z$dpK#8n{`zZ9L)~GTR9X3f7MV#(aFGH!5Nn;Rmo&i%LI%AG zC4jIXj}!JhD~Dql>8`+tJma8Zgz#=}1ac7ow{0Mf0;eUxhf6ac>~Qcc2*JR_lmd(y zm6{4o0v+(OoA>qW$)OE8DW8*t3=1G=p8pxm0M3TFv%A|IMJJ6I&7kW3D8zjO4Q;4M zS7=CMn4;u4z3?@p5)ehU0WkDmSVrG(>Qe@P0U$&`Ny)(|!IH$yB>`e2$Xoq~0@knk zZa+A`=wY~yl(_O~Y!nCMvLN?(`JKWrl~7fF;9PsC$;HX;e@bF@Mk4@Kv+ThkA0Ik% zAr)-@1*>7gC+Ri*45|Doe=Ogp$*TBAyLZQW3n$<%ZDvf}P zWFu+9;V58rCEnWi{$x<=_=b^@(L+d)NMB;VDK0fN3{EYbpr9s$L6hjRu8z)?gMc-` zsR+{{K&d;nQ1*FTobYO)VdSAZJ3E6^Mb;4~CJ2DNA>=bSoHuTwqwhJP+P7sQd;nS+ zBPD9^(|6lb)FlQ@vgYQ%=P;r|?rZ^n2at3Nbl)uy2JJ5ijLy`qChxb)d!EX5pPnCW zN}uj6s)EzMJXTp8EqQW^l*vrhp9-ZH|B4$OxVXjyx)4c(>_$3Va zFVOckUKYreK>LT0x9pIE=z86o^d6Ya;9^Myl`l$ng@uK8Wc4W`j%$XnK}8Pv8B@RB zg${B$;97+Dv|}VK#xT|IugXZk<7&Ww6Axzjzu6>;kV@3?4hSfLM9cxaNWaB2q@=H} zZ)=s}pHQl6b%{Pe{4-!+1?PGLY9T3Zh~JKyCpyo>~$( zb>ZM3J7KQid4Ve{=2T*CkaptRdU`pUK|WIk`VC|^0@|Uk0KW|W`P1QpiiUg#w84@v zgds@$YBAZyLHw%%QcVb{R3Nt@)|1NtpoMW#iG%7vDfb&r^7mV}ZZ&swz<$NIW+Ix? z#63eGH<^HR942H4y5~-?o9)$wE1dl1>gM zq7V`MU}g{(Q6OLr#WOMduY6SP*mApvVY<5;Q!(K_=#O#y7Ot`PbD||YPHf99M{&j6 z4)9~rb$hSvu0qMURjRD@fPqty_j2Mf;5{|#Pn9$`XML6?8a`a^{PU+v zakJNR5`X`)7V6$CF<@qx*JF>0_or0VigJ`dZO2i_$d@6}*1Ze>m3Jlp3z7Z-uDo>b z;yBjFj~}CeylVg7d%qPMU zkJSaxvfhPA0_Bu{)WxLXRpfqOUmpSNDv-?>T?4pFJ!!NwG!Zhz)<1P;By!chbLmVt z2I||PC8r%v)3*-L?X|FNOl*aA#WEX1h%{K}ky=|$r_@{Q?d-e_)tv;De9%?j)D%sX z^}iOt^We32FB_T<%^-SIg2FAstYj+bqEo4S?JwT%}sAeHB=uXGmFKqS`IduaL4jhrh2$D#VI6uXsdGvT&+>`g!WP0xC zu)>#@t~!rQsJasceL}xGL`24)oi3}yNFzn$U}t=|3k%Xmdb(M0wco#X=1#HT$^rps za(VdJZ&Oo)Rz#cN_3PKUS|v0g#BB759*@5dG>I;NGK3ac@Pix(YUrqhBivmK440z= zHgV4@Y`A1X%vFfR|NJ?~#9QGy3~=y|A^a@FaGxC(*k1v1u!Hz?eOZ%3C(2CvCNIzB zVu2Ssgz~YnGTzeCYgYAKe0Gien*e%-ORg7Lc-2o2E!Di#)rs8>HvFmS5~Em@X_EO! z=*+hT5otKh5t|eCj;X@~5`i&RNZnYoZ=mg2@7CNTyH9-!UUw zmponE>+xBg^U01lnlg>pkL=qRKjpmx2eWS*8LOdIeiF?DaQ|QNcPX%WQ6TN*==k7+ zudm&X3O>*nZQGUqR8$J^yOY(WL}C?wrk9|UzjNH7Es~N~^bB?0R@7W-{tTHq+@IYyx}gux z^gaKl7LPy^2`GuRXo`~Kx*Z~v=}a2LwPFL$PdJI&22stml)M_B0lxc^ox#rA51$s3aG z&QvLZcY|vvmy@rdW(6tSgib1$)MD$Zw&%qrdv=TAWJVlLLbmeu)bs`O6$ebq;iLD) z7;oYJ%Sezv9+Wvh&dC>0t&)6B{OeDb-4vuQJD_&AUN(jKQ0uBR=m=m_irxeTWY1I2 zaN%qE{p_qPo>xg|^~W@cY;rF?;B88d4L#nNs$kHKOhkI~UOaUCTgOdNi(fVbTrqTJ zn?9U)d3od`My~umau4Y+qZPb7tGA?JkssVT|d}rK?p}g8@utDn##RubM>S7>pQUhyVQ7GjhI{i;%lVVGIG`+ z95WhT8Ol}3LH|2;6i_4c4!*;%DtSW+cdN}mmQH(pHf@vRal!m)qJmeu!WZpz+MBIv zHP=6jSQS&hWW2ciOD_6qN12voaUai?6%{2_*zQK`S0(?a16M0k67Ih5>p9aUa9q*@ zMhY~g3=FQnMru^;mvEgTDJ&%^dgcM$fH|f(Z{MQ98MLulCy|aYiuZ6!=xWDq%?+Gl zdu=U*(`$m)b&GJgcv}0*a)0>BL!q+nQ#@?}%MWl_;&N|y&FLy9M#6E7N8NJl#-Gi& zeXKnCgYyOqr_C{3e*W*Y;{4~+Z=a!D%?5O2 zIahdlaS~3P5p;Ay-Tr7-I~7E|zlow#`Mv$ikLSX7oiKbiysst*FON+wICU#z?f{jh|2G@K*(q~$*z9WCnlUq zfFgE@3uvy_iyTQ=ZVj@w&d2zAOrsBuHb2%Lt{E*HoaRpOxPL^8@9X?W;yV4+=rG^L zX7~&4vH|tp@h0AnNEJ2f&ylW;5p9uGqde) zSM*^Umk%ekN)WzhhmEIc`RU$yi*>cNbOHtUYLBSdfA1@F#mzR9T25#JA&u;;f4VMt zv!L*#il%}0Eb>+iq-n#TdB@M5{h=c?X;}q>&Qv09*jMgoOb^p$ ze9UyAuHnXpOs-~ju@ZHhY3I_rpGuy=Io6@qrzz}k+J8=eGvzp<6%QDtZkf~KMLhB?YZjDuX@D#`cpv7 z`}{WRzbAZ9*bM@zC~gDso2kK4$7u}+Edpi+1~h4E*}P#`&ejC3;cE8?^jqL2FlUW> zq0I8s5eOjQrosHoW|7dK%+Re>D1Fis{A9)Z>LNYMa-sX@oBg3LMHk$2Usj>ES1Hh! zCgxIuGQ!_{svF&FLVcay79~nTNRd~~;ObPz#YMPysy;9|^q*-r$(wi^lz`(mkyu8{ z8e10yidPxU(xv?p@?Wf?b>6Lnj6D(!1`BIth8g zeVk5-WupUfx%&o{>WlqN>idy5X{9@-BpTBq^9$4(NHHze>BYrq;70D{@;Y=jC9()O zn9y$HbjGyF!aTdqzv(A#`>d0lZ|_on*8B{?WF zhyh1_m_GWn^4Fk3D@dn&J#57<@IL{h%v-DJN}PnlwwE7eU*r$xhC@&dDvoBbkchkQ z^iD?cV?XFXfmrCZa>r?_pcHb&L1R)>R_;s{d6x9ReYb?R@WvMr?#?m0wW_jhcPiPi z7RN;79qsmE*B&10N8W7Ffso|0vs_7Prbm@5K%0q z5mIhAOFwq7!BHFVQlnUtsEgZR9@+?S^C*5r)M6XB(Xl#bTHI7;Qazbsop);yIX#+& z2C>XdUZo-SFG}(EwQLCWq>F2hC_|ow7Z^_pLwiB}Z%$7%Pf<~ImGxieE&py(fu>V8 zi!}r73R~PTC3g1v=hHyJ1_D%MfITJQU}t%*X;G)PcXjEWD(Z=T$!L%9#+8D{f>5(W z^-rk_v zXSC$zJ@GTaMuQ71lVqDW<`(S3q$sIY3dQ;jm|oe;R*8~v#rhnK%*=puKW(ZBuea^a zue|yfzsVQ$%f>XUr@7fGk?#3&zk!dPyF+Eqz3xH>veZYODVu!6F)FNnPmgKBUY~89 z5K$M^w)_e>^;D%07?DL2c-P^;)ZX=lalwN1{^H3^!xv@WzRN)cK4EIB2DL=k)4!wd zJ+U|JE@g$mO6uC$thHkzrF!V90UgY&?DwVg^=T$@SgD>qeTtYgwBC+bXmbyWYz%MC z?%+>2ZOpnbW94>lSEytZ9*=vqyZ|QD?bsvSl5OrNC8&RttfxI%QO8fiJk(yyh(z2S znPg?_i6C+r_rzAvZ@iaqDK2e7^k8&EPErz;!S%C@oLp;{DazUiL*0a=zO`UNf3lzc zC!N-z`deSZ9i?0JUXQvQP(L7t+oWNy?ce9;v&Y59s~&|UOAKeeU(U$Nx?x5pB)gYS zgmH6lc=#2QE@A4#*U#0}g-XGqz?pkx# zx^w5AdCqyxeahau+>vi5P|;r$?s+3nIw`#Igm@!6pmpR;c`6fXX0)`b<+fXkQs9BN z45{UM20019L~DYQBikS!zmO2cA%*cnRDcO_74qW2Q;W!cui)_JY|^)vHH-v(H7J3Z;mk-+1cu z5xmDPosIq~1eQ`unSM?G?4bj_Nl#E^|G^5W9uX;ytvU zTIRlNP{aGenoz#E)uYPRqUd|P%6j_h>jI9Pi0VcrI)@JuzQnIl*kgyn#d#e>x)l8H z(GaNap^I%^Yk%c-F1FuEr#T5)qAcA%jdyG_4y&Rtlk#F>VUf%q@~(QChHMJbcbH;L zZGB8r)&D|Q1Pf!YcOS|6B}Wo*&*lCXq0+LlPJR>?{%7;3l7|42x8_eCuNTr=O40T8 z^Y{y=XiF!j_*KMxB}PW&ftx7gqoAj>ckbL_gPFtr3968Q+AUNRRWCo4+8S`mP$it% zl=gM4#BXD?KNgL@_Anzaj|BOk?}@6V%789WqRwBI*j<#)fpqP>H27y-Rzp z6Rj_YEGp7c-Z7i-;}8@P34i-`*b)`Ba^l60(t1Eh6I#R8jUP%4xBl1LT)?{c8%r(t zxwL(to@`CrHmtswE85AjcYHz%&4{+dTd$n1JiPN%vWY0ZjMCx@!C*A8+M0Qer~&ieT>8-E$qq1yEJ`^~$ilD~sx5^JK=O*_Yq* z433V-W187XMGY^>paOJQyh3h{kcou_X#w2wiFs0@C`!DyXot0Zbb4j*#Z6ru%fz3? z)7It>A4afK*{V9at2x^FQ=FZ1KW(?mUGa%HAkn@S}f{kZt$dP29R^#aN_8@u&YGx;9G| z>Syf$5MG6$%F5y^J??|XF)@te&+N>Ld_rgoO&W z*!$XwCnDv}OOpKj{7h@>nu3BnvYTs?qeM0>N`+ZQ`>%{42OB@>SS(~S6*0_F0hgVH zwyiOamX`l;Bya9$f7KNhe;tv`;HgvhxwI4lnSE8;^|kKT{I~fbB&%|+NcD?z?E~&b zBN2RHXtD!234gpJ0{vwtlIP5V%^K6_SI-Pl)(ed0_bREe(XN1d6la-$ar&$elP4*_ttGAm2|3ZEmZ7{RkB=xpVaqMUR2WRQ>ts258M)YA zBXuWo%r60RvF8EgxK0PL5QWFmymTT6kv^6ma zS&txbDc)ZSQhW&hLtJm{`z0 zeCXNmwoF(oh#;ljoqZ6?p`)Wi9?QxrF2|`jbT}=hv!)?-5r=^4T-gudQQS2>&9;ZW z)>WxC3u8ITr^IcjU2U4MS%TNbB%RO|Er-*cK?CEEugMIbsoa~&sx34fi{HI=gl~WK zgV#yj^Vb_At0K!&B0+p2x9~XvR?%;|K?h26J^ysa#@*jeIC|C?DATAmD>W@9FYLYI zTqJ1UFVw)qP)9X=9CDr)wMsPQ*09P6y7{i>1OY_^EEv@fCN+(jUK`F+4n<(6=ZNkz z06U@qAO*y`5AHB9C^QsBgxDvHCPDSlq;d2r7)<5TKxzK^s+J-pp zjFD6O9zi+4++$a4_SbE`kvJX|U~f0U^1a7E08Db>Hgs13urKAY!S7sp%I^tF*u!5K zu#J&@?=@6+a^g4IS|F;{jTZ7^WgH4xz#f=49$DlXRI@U*mJo&ye@(irSWREN*SRE_4jt`%bq% zEq0F=n2-Ph8#Ib;V~%`F&8>vmyz7-n*yepc%Uo`CNQG_k4gu})9^=etr_Fw+%v!nL zNG`HIl7NW59OPZt$Pd~+15m3J;wYWe^juZ}*Kenf&lgJhTtCa0K18i_?`ssP1pJr7 zz@91VO{tjqDqOQ5#Kox(bB({K+*Xzj%M2Iox5~{GLV#9lV5ISu<1A=~zRS-gS5i`{ z*I(jOEuizFqT&g&^D zVWp#Qyx^~#pV`tBH_}{>9{tY)kLe5@wto)`2J=J>0^Z@u}@_G?D$-krGO#11vp z*g)af6hjI~JevXoLC|gRBbg99Bb$^z9|-YgrzN2DzDMAco{^oKblhkAJ<#az5t4Lr zc8*#<9oaqDyH&5xQ`lNgZLbbgIr`@eQPYdxg19=v#214wT=n|z`j)ex)vu?FTwGnN zZDP&kf2GEAC=k*uf0z*qi_RE{do$$(M+liM(u%O{sQqLH z#&f0pfc5X=2SF?EO0pX0E%y7c=Q07B|D4-P&IK^Jl3Sdb9B2r#WIqzxXiH7CDbwaDq&uGocys=AwTIp;6{g^3NF z>$Ck8YJyc=4kujmQ8P8qs%`Z0Mn7AMo2SJg#M7;6Jji@5V))}&t8GXn%F4!GS8u7thp5Lh-EH$&JI-|jJpI`ZffVdo4Q{uRU6D6R|wbprddxl%@ zLR+Y_D0h`YSJlLwTBwJyd%ol?{v<{$qDg649X<*&vkh3fQj7FE2UwJh2_Q>X9PYh; z{`|RVL~OUir+M2PTx+ZHqsOm8f*Y4#6sPCo=s&XV#Ogia8D@^tzL){@t4Uxy#1OPMlW+7%1pJJ^xmVBZ-aNa@Fb!wk3;LI06V*xD5C`beR&SitaxM616zFc$Uw) zf_-{mSpKLje%tgIuk-7(>G;l#(%$W^fmcg*7Ro$@uv*BQWr7uyh|0!i+V&aQShcZsy22rACt1RAiW01A;^@U=+zWqf0 zoRWkyjvnmu1DKfn-KPza+me6EMRV}sRxfmX<$XFOY}e>^2M2z%Z|!L&!G+nnyT#Gp zIK6t=?^YN|^F!dPp7iM>S>Xc%df-uYrB=wkA>GbID%LMxVNC)liI>}$YdV2GU|DFT z8{7yRR1a~>=#W<}NDL!8f}SdiUpd{{PkjmKnR#Yb*41)clO1J#Y@Gkz)I1vbtsJr3 zzR)F=!p&!Q+SXzwB_8ke{u;zv3AUTQoM~*2e*7Q=dsF?yfyK z5GtGhR$Pi5NyC{ydyr9^^zw)7fZ7tLYbl+dtwk80&JYorKJ3-&#qJsGz@^Xk?1pv+BXYLB#JZM0gZ2 za%09!Boj{**?PRurW}Ch+ut-dBZPp?X{Nj%2W>7@N*SpD6Y~nRQQs0|u!kL+vC5a$ z{jcDj+ISu)I(YZ)r^@bdeyQFiB|15SBY!Eg_K3ZViLa}|N&ooB;(}A~5mmsw7X3T~ z0*-=CVyxfw7Qjw5ko4zAJH5#7I>?{qoBs^N5Pq9Z=$mO0l-S<{W4zjsRBb;$bF04QJstVzRka3zk696XHg zj|pr+e^F;%8_BysPca4Jnz9Rk^2O*E7&!%vrpI3?Elg|3qsLiyuAR8Xj<{L$84_q~mOXBUHaP)4%+4%KV`&5*evLlV5D zLJJZoQyb&Ss~GcboiM#u$y&Bmz`f@UCJ; zkL?)FFsEVB#E7R@^pV)lI$il%XW@akeYK{WSyWhC)_-6^-vJy4Xp9zu44N__BNa^sMEtwz^kTj2e8swwS zXxURBe2S`kk^pPqUHZ0}WImOac9N<4gKHG3JLor`fND!awd4NZf{-VG9oVH%jD}@n5YEJ8*)d(DKpI;3S&FH%bpKza!9*8 zz@nCxPxP}3Ku=l%E70D9CSi2`k@2T_Ox|yr%yKxtJ>8Jg{&c>gJ{#_eb5$LxsvK5k zz$pNS3oo%!158Mw+jM{JrIqlHX(y|!$qNio*bJvQ)O6B=f3EL0A;dPjItC|BKRDJy zipVJ9*KFH1$kyLh*ttFrhuI?w+;mIn>Rix-NS=;SbFru>s57Q@V2dEX+5|K`=P1N$ z#^9pTD{(Xw_Yhp}dY4$$KAPXIpGM97Xvm~gw&v;yfQcOZjJZpohsHG$?k5oHm-RaE z2M_@AiCHyS+4EJtt`tBI3$h8Bn-`V{9w6t#RQTB>mFFrhQ_=Mr2@V)^)?lvx$dih4 z;kK-J)JDzIq29=PEfig;LjN*Tfz|xhVNEnO1|A|kMuy(@r$D5mQ;0MV! z=-G%Dh@$8@y~qORq6!xpG?5F1b>=e=dM*SPK~OJ3X^T=>MP+Y1xqEc{{H%M{8+g`` zG2mhK7+N9rIu#DQZ%|Hke7B$M*DEuC=<4ffy}?rupB88vlaUz|EJsw@v`n5UTHgrH zwr$vVHTy>buoGQq?Coo8aEf9s#m?bsIqG-=J3ANZFj;qGVWBDZoS476FCaCxyf-n4 zo-1U!5AFhkeefzVVq5zi0#w&@t%Geig2h%!ii?-qk+-4~^#9Wc5K;W)qci1UPbH-!lZD^TZY2WeTojk~@3Pj&z`4hMi`^TVmty$oqoQ4ulF zy3(}nBm%san=&#a71U2|?R5l#>aE@U4979n;ii~qM2zce$D)!#Lr&<+%}JU(kskmT zPYy7oG5ZUati1(mQ+WZisk&Ks02v{V&>$x!oB$|$4h}#TKLtnpihk(Ypk*7VdV)ij zFZ7WJX~76tVsBV_xJP7Pweoglo7v~)XmuYG+VSy^eMY-=iAur}z` zW(u;_iW~+%e6fq_5ZF@+*2V*}t9(xnesjha3dR<$5W4Gu55d@Es#+oB)tR2yXmR+} zCBY_;N&G*2X@W7XyDlgtJ3HGPnd~?gkZrsVwx6r9{yKg6e;Z0C9)j Date: Sun, 23 Jun 2024 12:15:42 +0530 Subject: [PATCH 31/53] Delete contrib/ds-algorithms/images/inorder-traversal.png --- .../ds-algorithms/images/inorder-traversal.png | Bin 11589 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/inorder-traversal.png diff --git a/contrib/ds-algorithms/images/inorder-traversal.png b/contrib/ds-algorithms/images/inorder-traversal.png deleted file mode 100644 index cbace2f02f285031b37a49bde58793e32986a97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11589 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 Date: Sun, 23 Jun 2024 12:16:01 +0530 Subject: [PATCH 32/53] Delete contrib/ds-algorithms/images/preorder-traversal.png --- .../ds-algorithms/images/preorder-traversal.png | Bin 10964 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/preorder-traversal.png diff --git a/contrib/ds-algorithms/images/preorder-traversal.png b/contrib/ds-algorithms/images/preorder-traversal.png deleted file mode 100644 index d95b13bde78dc27456038d1baa6897eabafc2ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10964 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 CDxqco From c988106e4de750997186e68b5b95473a6031f9a9 Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:16:14 +0530 Subject: [PATCH 33/53] Delete contrib/ds-algorithms/images/postorder-traversal.png --- .../images/postorder-traversal.png | Bin 11442 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/postorder-traversal.png diff --git a/contrib/ds-algorithms/images/postorder-traversal.png b/contrib/ds-algorithms/images/postorder-traversal.png deleted file mode 100644 index 5ea2aa05b0a76c6cebcc9f9a3e8b7d2908b7cad7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11442 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 From 8ebb5c9632419192d98731a5bb1d82a99b1f8c85 Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:16:26 +0530 Subject: [PATCH 34/53] Delete contrib/ds-algorithms/images/traversal.png --- contrib/ds-algorithms/images/traversal.png | Bin 45055 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/traversal.png diff --git a/contrib/ds-algorithms/images/traversal.png b/contrib/ds-algorithms/images/traversal.png deleted file mode 100644 index 67e6675b4ec713989d22c2486b36423e7cc05a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45055 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 Date: Sun, 23 Jun 2024 12:16:56 +0530 Subject: [PATCH 35/53] Add files via upload --- contrib/ds-algorithms/images/binarytree.png | Bin 0 -> 15025 bytes contrib/ds-algorithms/images/traversal.png | Bin 0 -> 31369 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/ds-algorithms/images/binarytree.png create mode 100644 contrib/ds-algorithms/images/traversal.png diff --git a/contrib/ds-algorithms/images/binarytree.png b/contrib/ds-algorithms/images/binarytree.png new file mode 100644 index 0000000000000000000000000000000000000000..4137cdfca4d5d22b358cb6e44760e9b1a30870de GIT binary patch literal 15025 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 literal 0 HcmV?d00001 From 2f5eb55d71a62818ce1a2abfc2c9e2d057e975ae Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:21:14 +0530 Subject: [PATCH 36/53] Update Tree-Traversal.md --- contrib/ds-algorithms/Tree-Traversal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/Tree-Traversal.md index 1336928..cd19515 100644 --- a/contrib/ds-algorithms/Tree-Traversal.md +++ b/contrib/ds-algorithms/Tree-Traversal.md @@ -17,7 +17,7 @@ A Tree Data Structure can be traversed in following ways: ## Binary Tree Structure Before diving into traversal techniques, let's define a simple binary tree node structure: -![Binary Tree](images/binarytree.png) +![Binary Tree](images/binarytree.png)) ```python class Node: From b6632c6d7fe9f8212a79d846174c3dff9f19b087 Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:23:02 +0530 Subject: [PATCH 37/53] Add files via upload --- .../ds-algorithms/images/Preorder traversal.png | Bin 0 -> 53953 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/ds-algorithms/images/Preorder traversal.png diff --git a/contrib/ds-algorithms/images/Preorder traversal.png b/contrib/ds-algorithms/images/Preorder traversal.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f999e385c1b0104adaefe1cc42d5439e4b8210 GIT binary patch literal 53953 zcmeFZcR1GV|37}2p<5|5$Y>xWW!}h)jBFyii0nNwE+iFE8us3^i|kD_l)d)|*(({B z?fX2vzsKkI`}21kpX2!b_5S0&m0YgZ^?IG>^Z8iMGf-7omXd;w0)xR&%F9WsV=#mr z7!2{hWTfz&Hg#V&_(I^ME-Qt}ZM`rDe<6M>sU(TPz|@H29lsupj83u?jZE5UU746r^De(L zVO&<4CF*LMZ!@n*$vqmo9ZrQ8A8T;he`!`;8ztftv0Y`9r-#Q6M~#n`o3*a&wK^#a z8~sBBZ_WH*rtA>?fs9I$55D|5_1`c5y#@dKRp3k^;{G>P$aOJNM9O$wcaHz|{7{8U z&Oo(ismQBqhkI)wmB%m=^KvsmCD`#FZZO7({w*GkJEIs*~WZNy5m&ibQ5>2Gt((in%}eT^R9n>Nv_T3(?*)LVW+n85VD%W!;xIQ(pJqZ^>1ElErQFJgGI|b@E65I+?Jj3rz1Ms zj$z(zO3Mhn^xoz$NgEontF`gKFWbapH+6RV$G^O6`Tm;TCh+s$siv0ArJ<#Ygx>Wg zufALZ+o{9Nl`%Ue4SR=)ujHj3uWHh3O2k$ojJ$;=9Z3E*N;J4x>}{=1PFJqf@E$*V zo$uud2FIL?z0D!J&BKMhyh9b$P)_aKt~QN<^0iixmGxDkleZp--|)I29J@0% zqg4aB+jGUbRZsG4!_R@qw~D~7>bk(;{kZgKo2)27SPU=KswY3kXn>s5cGJjJKa=B{Mt zayGy0Je`nfOtcJ_- z^Aw|aYFgt&b~&_j7sZ-pg0^LBYqj9cU|V7Y@wC_V`_EFJE0eXE@9ImDJ-J)HQ|5E9 z-5~0i9_jn-EcJu3ltWM0L0)cS*wX#I0@J1)L+r*qBSmJL!;ciS99z1jwo9D4MVZ{J z=J`xa)T&zrkA6;wJo%F-dPX$F_}i;(W5Vm6dmXY&1AQ|kL$-x&m6ko(HIcts#m@9C z&^x`i_rTcLQ?0aiUal$S5{_L$EH+-7xUB3I8L8O;d^#HTho^)H_S1^M#XTO^7vY^+N{ciEzx|^toM9^I+ z$s)o4F1?bnFbzq~TJQbgcWtE)>IjYII@3npwUILJcy7({YhdyosOLSei8o}bg|aXt zE<53Ybx~I>cqH%kdu?gByleE)>cqDi?wYOo(TKA~ULCM7@Z~9=pP7@?R=O?~lvaD< zEAFlANv@ZUc`xk323WL8!M{+BJ=n(^?cSt#OZz15Ux#|emC@=U(nkliGhYL#m)3d~ zuI*H@Dn<9>lMDSUef%{3V0R^9wWb4qW3!E5pJ7j&=t}+!5yn?rO|3P_qu~sfZoi&l zyQQ(8j;DJ+x7}!!YnQrpwo1>GvB7i?7c14L;;3x$dj{$A*(QY4_>S++^W8tgUA_|Y z+kT6TO#I&4xs%nZVFmT5u;Hw}{nPTpgWV;p+JOIcHY2aqZyAUBHvZ}ZGS*NGA}S;J zDCziakWkRr%YHXJ?eqJctaX-*qN?$NlSu^mY+DfdpW$~mZxR%9o$WB=sy-w0iY7lV z%A~?3F^&$6hTRbc4EdR~ARIW+Yf!jOlb4w-(J_qG<{rM?4`Li~LJq;EH>xTk1 zgR$2|+h^u>mwj$gt%@>Lm+Vw3C5VmKDpzmx>Wy4}dUv)uUNf5>4-Y}Z{dp`Dk?G~i zm6E&!!wfy!a+cA*VUg5lE9bOKFL;P<*p)!HU+&b{zbK)8VK2S7KU(rXKC^NrYgT6#0pzKC6a zeCSTWdQanHTUVbJ)$-Vl^k2K3ce(lT!%iWTsXZi@*=u&@IoEbqYKLM7OMZ6-M$X4= zjH+Qj3CwSQ+wgAB?`6qvAUZX+re;t?sD?dUXY9lOAcE3G$ z!E@)=vy;(xua|#~w`N!E!;4>som<5Jn_`hoG4erzkr!@0n$N=6D%a@AI0>(LJ98IK zPmum&!S~U^jR+5?hcp#Wwa5*@p zAhU78l2_fjag;&Sqx*MLL>q1ozc3%MHIPvH@C&KiN_Rq*((`A>PKr&oX$lCGlpWL< z#_n%Z2-8&MK?jO|^tJUHWBkDr2+|dV9HZYx4{ny!Uqo z6pMH|2g}%0#P^FR+hF_O^Hv^_K~^aGp9 zU~^0_AUBJ?iR9n{LSvtoga*oQMrIw_p5| zU*~1rIRE;BP$wx{ev`bjadM*R#MeOB_JEbPgPGT?Dc;@_OAgMRW&A}nq@iU}0=$RjXwf0_|a#1cP8HXg5Xf8EXwQ_RvA-!Fd!=1Mo zn2s?LnKltBVKtqCM}b_l^2%-Va3@yf8^`c~C`+Qe!pvvasyk^zBcyc+oGw#-S^IL}Ea9Xa~&u(h=CMGhoWYy@{^yOClRfsXwV%2Ta ziCEvC@6IwI;>YSQM(Y>%(2ILlwFJx;tA?wkop01{kZm)n3oY2J_?X8NBRJ;OC6uQbdm-MzfLJhUXi_N1~+Qgn5U1y}!m%*>;?YCA$uzIXUz4Ru0c?lxuzdedzh(xF{2L zY+W>nlXua_kVCCw?9iIdB6lXeO~v-7vig;E!;qjF?w$CB?b%&Mj%=IWF`X!LlFtYH zHfHy>m0+iT(_#3eP5V;xnKZfy?G?D`T z`{lp409HZT+BbXryBDZAQ~`1^TOKZ-M&$2r6SrWTunP|$!2I2SKl!FjXV#$IM*}7v z)yHo1*wRXr?XGvJwDcMI*sNsSjc9$;6y7py|AjIgdVwn?<`Q|7`F((hmD`JjZHhxB zHcG&&Tk4)2Q>ymZX#V+uZD|r9L`IfwadtHm2SxmbTefD_`|~`H0(6Qk!#s&4uG}v& ze>YI(kWvnSdy(9}#%p`AEf&gqMF`m&fZW5u=WfFNk^dYvvh_&~R!si#j$2QnNL~ zEwS=R2R1StOzpKF`~>8HrM67qv4aU36(=!ucUb8VAq4VpYx*UVw>@XZRp0P2@7)%~ zXuh97E5822BsM%+VmD^Xv#oMHA&K!CMRZkoc%2ZZwy>Q}B^N`eEQbwOBoOic*VK#_P3T)0^u0rPBVAStV2Y@CZD}=t;t>hyGDvPmfv8c{c;T|ccS^N zrenmg71gLwYbQ&SkFh0qO^DUcR4x`YdEI0iS^hDjS85x_J^gjytP_u2h=|Ml?;xR@ z__$l{os12!!@G?U+$%xk6-)WE4&GuIIg3Zh4@VrExXix1pcKd{gm$Ze)8+5VH4uq= zR35SgvW;03u-X3il&1d9O|e3S+Z%mGBeJoLW}J6_YiB4kP*VrT0E4d#JM2muMf755 z#BFRzi$I!s-%CxX0Ym^x#wWiBx`3#56`0=L?MEVp;mgY9iYCUOg3g`tReJ9fv!xEv=U(W;;?; z#%NRp&D%d?zh>pRmmKG=YQONW{bz>#Ba#|^-N4eW@Nt`K4klSX<<9HHwy?Rbj2IBM zA_38kg_{R>r_W03KXtI)iORPd6Z14;N}2387C(W>dd^H2UT`~~mP7N0X0HCgM}x{< z+@3ZFE=sMjLMnaoyLN4&_}JY54F>)qhYpnyv7%FI=dCdoF_tl$S|827zhSTn+2EZ5 z`kL{~Qrv*0tL;k1q00rm#RdZAVk+q`d%)64MnZY&4#Hgr+4EZb_$|9XHBf|y&8eM{ z!>0CV?^G=0^2P|-l|)(99_;VNj8=PsOyhI0X1()nMw8U~lXS(XMQ#<0`Dj&n6fnQ) zyx@Y0m0N4gycvQN%27Pu!UMACL(B^c6eKs7N8n=CtY+JjTt`&I^NPwYk4} zU8NRXthn#lAOArW?*fq@ za_bWMq5t`k%u0uOYl&(WVo$twqqho;zfp+T*n=GD`pROo%3Uc-J*`+Vu9*V~n39{{sEAg&%u#z3dku-h7WwE=@bn&XuW}^RXQ`#U&?65PYYWPV_h<};nh7n`oC+SEpK-lEc{;pm`Rc=l5T;U_6==xD zxn&a+dW5Gl&03b*xKk$H59m-rvM*^JeU#JY{T|Ig1{4P_9s|K%&9paXTD zAG&eP|MP31Cq{uT(8|DK4dPo#b)4-kenk+TW+`4J_TO=_OAmw2aPfe6<0OlDyVJR? zzP3Y;VYb8q)is0SmhN+SV9R2<2wGM*XiXn=iyLuZXk4a7mwe|n-N41G>?8apAeT>r z_6fg(itZ6CAjvKeZ8eI_)w;4Y*h)|9Tc&6O>{tU`e2C5(Lq>~ML;GTX{+Djh9IhEw z_5TL-7f0F#a=9JPqaP1E)@R4HFwA^c0k9LdfPnI76pJ_LO1pcu^z<#X;Lu`o2X%9p z0^@%IE%Ns2t%)GlbFX+B>OQ$H>2_7QJLx&aiTijTEi2f5RL*U;)`E4aJ&K{?hv>;y z02YZ3=hBN-5!?310F7XV9h(}EZ_+SW)5dSr%Lfv_bI#KtklB&S-{MO^WX;~d5}`lA zNZ{Lk8U1kNOuT37KNtROzXei#$psVG#>?-va7MMGuG@%%W&xgy5^>8#OT&`}Q%}SX z3z4Q2@KsliHa7xZL-EQ3bBN&m{YQy$xCUEUjRkljK!gQtc<}lKcF{5t%==fcxZh4t zoV{*sm5LZ$$l>-3lhbVb#a*8;uUOEoH^ZTUbuq!e(deDrhb1;>f+1r=tDYup&JWb4 zPXnfT@m_!BH9+Lt-NsNUA8qpKrP470pZ$%9xq-qAz13XUGiL3HlG7mfxNu^qJdS?B zDm;=Hw)iLYy+Uja@uHsAl*Nsb7-oI68r7vimT%6!m(xsgR{xjQd*u%lY#{l9)iezc zugKit7=}!^NAe_tFyB>zB0ihJ?%zK@GYQK#INTQ`6u-D<24!|Ct%I2QrVYadv~L~TW@qM z?mfJTRd2KYlkw-)Jj7J$=uLixzjtY0MRkcXm0#=vMx7q*DjmO`lY==Um2N|?U)1hz z#^@3FcB9%O7ye-L*``8uO6}If@u7V9h}7trT{-S5Zk}gbF~|CW_p$OC+~EpZj2r{{ z{qm<@3D0h2E{(vZRYF2D1t#?xEN|b(N!icdv;ja<1QubfLyk!${m-{Q!naf9KQwC_ zVNFR-GA_ccno@=R^watGk5h%HnnTZwEP5M3=EC6YWm~gthE|GRFO+2{a}v?6>$7TI zNw<$Vf!|g-(K6iP z!{eFOIG`c9`ICTG(%uG=`bx)w%H13*)D;ZU{6~<=aCCaqRo?p^BI_mqi8j+45WNt= ze62mh)vc_IjrwAM`W&>3r5Uc_~SW+R_{QzjKfaCDl% zMfjjuLHtV*)&nyE_)fftGaeC!tOK2=in?>M9~F0@EHl0%D4PA94)}Tb>fhOw1h7u@ zCb2#Dw4;zAWq7^=FS9U#pR!yi6t`b#${D|73l4U!U#B zutO!>rPM+)wOg`b2FL{u*b)L@`_}3O-U7BD0G<;+G>MEQLZpuKI{ud1jr9BN)F#?D zitqB=>{1ag#ugTnuLGxb4cQw5(ejbtmz`%0fzuw|%q+0IB?u|bTr*z=)Y-Msaxg@z ztqZ>DfHQJF?<9IR`!H~~7hcJ%;2QQ}r2@b&v9FyH9M z@$TQ7<3)$`q0~$R5hz~h&}}=JN&~w=?lZ1*)Uwbg`}vt-m7IGyy>pXgNBu6J<8Ea4 zL08h5<^9BJbxx_C;yiGIandJ98aY^^f$YrnNo$6|!gg8mjQ4o~{NPhhU-b0zibiO(+2y{iZ_b)rXG1e>m*)R=8MI=GOc$ zZ3^d?2|B|M;u;Ugo8^=rX#>7y0H8wcINg4{-t~5j?k}15a(S=-q57P8x6#qav5=Y$ z5Nb2sH3&Q_*N}KH6--$5O01WE^zQ=YcaqH*_TF7uj?XuGywHnVCi6Y(JcIGYT)nFG zlA@=7-qFK&J>_0qklzxN*)iOm7eL+nUw?RK`2AD_IW=p4aISEsG@;EUufIRpl%P>B z=JU)C?qw7lj}rH(K?cUsnahJ)*&lA1CWbJH+ur4`IoPrC{L98c)UnG01bXwnwjzgS z<^x!wk3&*$h5x*L4=_~%L!+8~SC*NeC>3N2nyaeJ6NIzoSMHnH#I2Ao|+1A;2P&w6IPKd}*3gR&4v z6?u1Ac3Aexwa$g@r`^&@P^hyP5+_pzja{k(LU(4rUITO8HdZr6#OHiR((RWBXtf~Q zpXj%Qw4oThb3OyiT*D>+=DUlh_>*XJj08{%Z^Bb=n<4{NM07?U< z{s+<|z<#uO!zgNLM_~><=@xzaS6hQK*Rr2!y$#c9{CC1}DolIOmIlg`8|S;b8>1Cz zDhZ>EIrJ}IMpN=vvJj*#r@)_x>Yn9xqyqcZH6MP+4m%tS4ADwJG&AEpA z_~}lARrCV|l4Xyv*jw&AEd~bAl%R+Czuh^=4xO0GNGPHIPVivW@AR%}g>MPPL)MrYvh^P)w zC8TAaybshNru-wq^GflE5zBvI9gw(ovs;qQ8a7)=krW&2({>5!o;)jFBS#D8Qr&Kg z4=H}`m~liG)YZVyRs=)$mcieX{tCAtO<-r}y=_{0T5vv*Izw?iR>;ZPT}H|f>?dS* z9dq$7^AH_-GWmM5jax0*Uyp?9%`CL-Ea`~(9)rvM1Vu=fQXbcX{D$6kUeVymK~AMz z5n!GW?J*f{^s%5$79b_%^$mwmL1YbfH~I~O2*8N(SBiX?)YHYhdZ6}!Dj1?ie*N_l zOUcFg4^PcmdM$LX&dl#MDy)3YH_G zD1*2{obi9q)*_hM;Z|SMh0RI&iQ7l77Ut1S6=ucj;}+C8e9sg&E{s%`iV#x0Il7;U z@wW!T$y1Af_YEvsSkDtDi!+VVfK|6?4+OhVPskKuLx4W6vQN8ywsdD{v;YX7)0)U& zHeg|yzf8$|3v_h}j{DGvac-2M6;H1I>Le{RX?RoK^A+Gm`qZ}CvAA2p>>XrFA!0i} zaIy2rYUPfmZZwhC4J!KOKQtN(T6X`a`rF6}Ao@suf&~PPuMCQZucm6QzK|QY14p&$ z+w?&*rFIRQWsp)wQph!YCPDKY+6BCL;|yu`l@J9^J{|S*kK%?AVG%w3?*@_4rw31= zVT{eKSQ%@c#Ld0L)T14gO33|T_K1`3Z|V&hF9ACifGYmRsqldp1_0Y!O!B>7F0!~ayARi{JAU^srf#o*Xca38F0wVGrCh3;AUoK>6PYg1Hu@-yxJ7b z6;pYPdH4_Y8TeHtHbcYJpAk}9pYLfpF}el2t_6N_g;75Cj`n5KtG-(0ueEm$W`Jde zn-6=gR13u5-p72+G`;BiM;aPs7W3N@Gw(s^%;q&vo|_>Xv=n-qn{dRRYz0-yHa2NG zO7D#x?SvY-Bf-pN9HgF-2J%()yC<1lj#h-~>%Yq*l_P5PXe$l9yUlR1o3sBo$q2wL zds(uQk2;0XOx{~{3?%7~e!iauDWj-5VWYa^u+nYC`_71`eo=Yo3JX=u(JC#n9_Z{9 zJT?KsDGxQ9a?#VG!_A*;31za>0v4TDR5rT)++pL-=Eq0B)}pGm9TDE$@3v6HZMo?xE^0jxMLk8m#>y7~$t5AV#=if)t$98{yeoi9E%S8KEBzGhZ)F zZ|Bl2`hge^+_VPxXy0tL?p~*yQpMm7AGgL1;4Y(8O>%wpOYnm;gsVk7x&cEAKw3C(+EMxDEqrc*-1F8M06%x`>Te*s9|k+UuZ ztgl;Fd`au+(MwIU(|Xn`m0|=2Y)}5o2cw%_!VQ8$NEpXm;y3rgLx}K!ASPR%?Hr@W z?8TVz6VAyOecLahie~-uJ@KR{2!8UNg!Q zS$1Z+t-lr=HAmSOLUU#*gc~{3g=C@Mwt#qV&UV_8W*w4@a~6$>ge&tsIYTWr*?FwK zC*tmMS9gayqwPK&@40+a#C6d=gxD4|fpo9!zW{=T&3=7;icA)OY`&VwzqE zX-jjs9IAgb2`>Go)|kElLBV>couvnWyd*g4Y*au7P>;zA8i0s4eMuoXd79-7pp!!9M_^{`_nJW*}*nL^4;dzhQl8oE_ z{_&0#7IVqTqD)5JxPL*nc^E<<%?cEgnIzNeb{t=CuE7GV?a#ghB{f>u^i!kV^U7>$ z@D!Y&ok0?i7hL%vD>{kasLInMIRt%$V@ z*m9C@kRGF|0d2^ad10)!mNNdRomHj?2v>>jE*82bD(e#zWlklr(sKMDrE*80kP2s5 zJvi*rXMjSTPMqwwt6%beHbG%flJQ5IivzBg$HDZ2)N8kej42c7I=OlTROG1S1cVxB z{?hz-|7PiXM~}@#izZ>TUrPP#lU9P1?K{)%&Oi%X9Rr=3?UB#1)V>e3|bJtTKo5?w9HY7npu@5wBF=s5T4&YKHD%@Bzj zq42dw%lnEN@ES!>7nA_Zj3~?^iE$VN0y8Ltwj^1SZ0hsh3tSeoO5c0EJjo=0a>~^y z1peGS9hkSoD5PR=uKuELI4UOx*ic%Td5eL9v~4hEN7U@~?dwRUq1y?9(&Gjg=@eAP zKXT{mQ5YKdUU}G`Pmg|{){7Cb>b+L#7s~hGGsfxHX9AH?5f)_emfX=zsUz@bg17pm z28q>Xu$M;EwlYE1`x!4<$sqJPG|lw|z(|FBjP5K0rN1C-ls~_qeegpFl459)IZjyp zWktTZzMBGMQ)5ATCjH{YEtQxO@rbqo+t^+1uu2R%u3|AOF2>-9IJ^~a_zV5pAS{H~aI z#n}wbz=*;lI>@reJ<6Q(_@nIdM>voogE|X9^`OIA*1$#L&prr!TtFeRc<&tx4JbCH zr^^+>uUYVd-7w?IN#>ufe(>kZ$%k%)e<7A1y|=wKbmAID>Lq}%*1yQ>hhlzYvxWWG z1a~e5kai@B+~b&U0=MUdB;%*a>MtFj57-?40;YdCEhY<53u7I?;E;7KZjrb{tyB#O z&N0RCYdXUeryY^l1GqH?Emxd>0(^|2+>7_JH61vC)zKd(U=EjyQkbQU6D9=W&^ADw zWq;!6(V8P$DFdViRtSF{p>WO)7VTVpGf2x!$2$E;_$rHA+`+Hdu`0*TYSjO z?8+yS!@?7$x?Sz-3AGD+)@iNeHdGFf$}X#Y+17n+x_F}<`i>jtION@orvXKlu=!%t zPXey}s(S1=NoQm4ogCQx1B0{Bgeqvix(?Zt4vY&As-Bat+53B!*LCs!kP@-P{CG5@ zFQ1A_8pl+?G)5Oi|CehIz4h(}@lu}W`AWmCer1Bt+yVmILJkwsnnp4NNBhwty5I@W zQC@(?j+`Af0D@ctf^|p7L&XoazMQxo`1{Q@xb&N#-S9#+tJEWS+u143^kw9jFW(e^ zt90Niu2k~6NjIm#8x;WGi7$-fo@0*15ET2zAY?Li@P9+GR5fMAfmy5E^6xl8IeA!| zsXCS>>G`eio{)gp5(^&)&p9OoKtsPGQb#DKO@~@P(_`Z zxJvtb%`G}sCmUKIWMJJ;DI4>W(c=d)#D*Oj7@!jM8^F6KXm+-Wwe+&AR)}z)!WlCu5VxXkt?O%Z3g2Tb;V}L+L?3{@X2WseVt=7~J0id!D;j406_do&IyuuDpXOmciMcgv( z7_%*GtmOB8mx}W=n(|N_2S=(Lb+;$X(D5frIy?{iM_)xN^VDj(Q2Sn+ZX zXw2sxNi%TW2|jl!oFM#Ah=a@vW)E(OHvkSCSSgL4M4*}HaqA*updxqGA3rYbj=-n0 zuYweAIoBul$%z&~2*}51#i30e z_TwJpevA|!ECvac|Cs`E*jH+2WYjF5?8)a1ZFut=@lZ|VgQ31ud1}b4EHe@?qr36S zFCGPYOQESkyN0fxy^>qG>?r##3ynk|6u`hTR^~A2g)|G<@$p8^ymci=Cct-5W`$Fy zAa&(e-7{Mj9wksCB0xYhg3J^VMf@btguE?ScH_G+g##`I08DAxFuU2mg_e@fO zOXq=Z1@(78nG5y1ktbxSrsyvE>GoJqCk}Q`0d>TY_5m)n5xD-o;C-Xi37D1%g~TY1 zxbHp7-R8?7w~UDfRMqTrPF!Q(zQBa&k<@8<=Z!0%xJ{$^G0wWAKHWH#b-R{@?@G+k zH}a_@G|!2+ezXAO`wGg}Ke41PnLdtJ+CNc}gtOD?zv79r4B7<$sVuC!82YtFnf*A8 z&zpG$T;fgj%-_aPAtg^H%CIPD>pRHY4_(D1q3y|mM!E#n!aHf?KrI<$cwP#g>Q|J% zVo1ACy=)nEhJtR4QSNZ%cW1&W_Axg#PN^`#v{2Ma*H^~IO8kgBInV=r4$ATH9w-#c zSMBNkO}a?^wAbwbo_9%&W^vMZE<&i#oj`xuh6m6B*4nUIGk2i#-02bN^uQNWjbVj( zrj|LXNq#yN&RHT9!2&}laA1a#BTHJ;>5Ky&A#)q#ZXR})w|@gCA5oZC7lU5pFCr|n zlHmV6DTk>vm(ct&_uDg2T&ZYjzPhK?U4V~Vs8cDCwd?^nd--Y=i>YdW;c?2@_G!ft zzUrGdVStWo;9vVZBBOYZd3IFgBcYylqKZy%va{p!d%5%O2cXh=)NrH-`yAr+1#QmV zn+fxuZEFw1FyjESQPCDXZRE5G&=?ZVe zFA!SLO7i(;zU9=u?#6wCA{}LaY-{&jOHY@{ktbKzuqHF_z!DSS&BEvo>`3^}^RNEB z&=da&q=S;!+igl*tKE9Ss_*_{wT0e9%(w`UbVGq~l_l>AyYPRn{=|iUe=W1vqR##2 z2Z-$>uLPk)xZ>+$BKp3nNEZ2JqWn4C8U)o?J#>uL-IIPz32|6uN4tjE&#q~fbmp7L z;>{fpe%|D&4%3VvL7I){Twjmu-;W^I5 zj@zQSpM63%h7HnzHbXr2--FKsw|{>033vhDsQd$H$XxIXe3TZHv?q8xba`qwK9rNn z8}j}FXrw`CCiZjvGr6CwMC?z|+mIDm`4J|a6yIxCjJ#3Td)q2ypgD?nX&;J9d5A*4 z`%K)-@^e9@k829_d?t3i8gFUj=nJ8mm3d}0H90|&p^P1%!qUH&8vCc=g}(%B0FgN3 z>-E%gB?2nCQQV|g8tjMMM$CWSP&I}>%;L(O;$%y00qC*3?tdRu1}>w}JDzCHEa~Ez zqzev9-_jxs=d+d){I0$hfZ$WLs8&lE>nSZ5jAU$(WjTE`PLq{`SQ`X6AiV-}Z>2=$ zngz_!(oY~5s*x&p$}^TK?g|nD7@i9ruB|Cl_wr8+-(?k1FIWTEffgaMx9N$m+|l^~ zeKEEs4k*DUPwnzCsk#!se7Sb0^p#Q9RXrGx+cp%H1Qp$t!vN}tO=2`v^|E25Bymv0 z%>8u5^C;Y~JM3)yizyb3rdEUmB#`zE!w4tZJ!zalnI`h!pbo1&IM|vz>2^}i^IQob zGl%(C2dMQno_V3kxyLAa!&-ug8_SH`r@}UiSEXVoHuQTAh2D0Con}#pM0pl{=MEWL zmW^2<%X7g69l{qW{CSo^Ff7>^C8wkgRAM_#XZ$|aW3oHh;}BvhQIOcI3=2)-6z4b$ z4COh?+z$vXfP%w7wR!X1cHiFzTG}0 z5d`h}8RJ#c;kBuzv-TKVpNclqC7_<5oZL*z;rW>+@a~=CJyJPxK$p^#uj8~N_yI2@ z9=nBRNFke~kWI{1m#Vvpf?CL`2zI!EgA}3iVV4!PxsalQs@rQ6gYdTFYZQs>)~Eo6 zx;g)>Z!RDy^*t>~IlE2+?tLUcs{vsTW-c(+m@P9+N1*l4tqZWe7{>mI27cNFE8RvKq$0!m;E#=ls&DBJGjK|d&b~qN7#qZWKJ;< zzFB?mL<5ay&Ni3xFG!)FBeKzncnjk~1MF@9(C_xrl&Px2P!ET}v^LJkF>Ci3p*ba& z+T#!QswsCUyDHu6D(i0EZ&Nc`fPu7Pon<*EfTGdhVh?pp*QNJq8`wD4Q~amHwL*un z7QA&YQ?(9RdN>b3v*vU3a#>bSEpsnN6%^4WC;58xe$=t;sm#*I7*uNm{$Bc2_ur16 zT`*H>$^m&wPan3h?@u|e_BnNvYo>aD6Wk15a&&5v2zdwjJm^GmzaPp-bgP20C!G@c z;DW>B6-PiYuJw=+2~Po3v5`Mm}W^!3bs0=d`-vKn53qfb)oz+JKBcL0=+ z=eO=}*M@ZP7@*8~tuI}WufxLJ+3L4gjJpRC^@`f^r2|jbpolW=PD$hkMk5d@ynOan zUqZ?VILlCt-7*-}rG%+AXl39?Dd{31VATJyNI=)(*?ljaeh>irEo_jX10rua?%6)T z2J31YzK(7*?+&Lfv&wf$GrRxp$JDDu%u6z?4N{R#iNbLXXQGx^(*^~{xWfqSgI zcXhis?aIbUcQ3efIcciQnJ3Pq@tmbpI}bfyZ$lY(8CsL$uARKeI6-?HSf$Al3b%Q+ z@(gV}Ngg+b{#5>`;VJOCwD*b>iGI@P)rjcz=*&?)HhK@Gy=Ss-z+hhCd;qX!Xo*}t zRd`n@`&-Z%^+!8R$_^H&M?W{1?3GRXTtYQeM$i!l^~KQ z22ebTL*vr}NmS1?KwE-XUbe&Xk$#43 zg93>tYXRF~bI2{4Mhn_YscDTRDs_**8gEw%* z$CCV^7y2~;gtH)SM#b3G44^p$WV}?tbRa8Czokn(r`R-M^x1PL1fbv5kflW63>2va z47O%~%NDQBa9N^Z+z<%3E{VZOC(Ik~0+mzZ-KWnNf&}@W;Frn4!LHqhn-u!#9F8FdhOodAa>P6-~C7+>oKtS zqmcHKx6p&+0Ep{8fC2mot>A5#o@++>jQ9SAb}1nSGMSlh1t^IV&TV816CO;Z#)?oH zZ7^I&HG$&@1W|hdmr)RsM}-SWD*-*}CMqO4U`0c=xE$sCu!Z`j=+SDG|`*u&~os;7($so+&!hrM)NXIh%)6b6`NzkOC@fh~hDIWO{g{ zO7r*Wn+Uru&T0kEfjQivhs>JI`*jX5Ic;NBrkW(RxqxE#W(BmwoR_g*CTg?d+h;R2mC$J3QEKvgEFRZH6^o+^@5T^Br1$2scbYf#-o?jJWfn9_w>4enSv; zuL!vza5Y4!p;0*jP^YaKC@dLva1eogNUTNwr-uTUb35Pm8G5#$tM)%3=}cD)DN5e? zBpH`xU6laKtd)v|>w0VqyRP48waY?ol!ObH09x#Cc_E+l<|4`~M+w@+mm_Y@fx$?a zpOVf{YZS|2D-w48(UBr+(>4n#NWaO?DBhVl-}_6`zkBuU_yLfJR;#Hp2m=Ij`To5Q znBVYKI255oGq{vxk7w z&4xD&ybxh5w#lEV{brkW3?lFp&NIF(XN*8}XN6@5$82=x=nR;V4Cd=KF~A&9NoD11 za!~7RX43M7?3~^^k}hNa!VxJ;%x5teUvnuK`vHs1fwVpOI(_ytu}Z;0KU>oRYD@VD z5jR^xbNKyXWXY#ADWX5{#8JT$e6QMyhWegJLy8B3`4a%b$N%>)Z#e|4`yZf;BTNLK zsIem&3Oo%`8_&`4BbQeUy;fy3YQ3?@pmG8wz5L!UMTkzj;ZM7woF*uGZp8ki)W-?# zQ@lrz*zM6#_8VG%GlSdkL(o@$X}#0Ju6{c^4F)wII<`Y^75Ow~uxiu68i6rdq#D6d zBCSxwT5-&}3^0S{j0Pgk@A9TW-P-h@uRqRRWQ8(`1{KaXkwylD#ox(mZKh2SoIJ(9 zyQj!V!Jhc|nqDv(sbKm}E&Q8WP;t<~B$1Gf8o^521Dgh+Tttem!_$1Y%)tz%S*Jl} zaaB711%kuprmWByg{P4z1Df!X+(2?*AF@8h89U~H8g6n(gQU9H7IEZ}gQtxY%L}kV zy%hmaE_$-nU_4+%$_(ny@>PeukCF-?8`|rFtEL1p`I3?jqv;EjC`DUdtiJ!(EQr&* zASl1aJ7yE6K;kqKWVs=ucyD6mj)i9@#csga5(Q%>)pnr|4-nA@am41uNhaH8=GBj# zjmF$ahCB|h>6f+VB3_4OkuF3dMhV;i=}Nb^CPS9wdxOvOE}D3R9A%?x#=xCjYpC!sNre?yfzpM6Jg#dLF8kAXa0YS6{ zMvxw?jDa$_IfZek<8vo7t_{HdY3Ft|@^Ha3v`e3fr3nHo0D1E^85WBPP z5JCqZ|1c7DGDIBX`@vS8+O&N6r;s!Y*y?ACijUbJ-`WDZJ_>#!E6zqV=c*?h{KLJ5 z4%k?H>t{*Qn4_In62fV<582BBVVV62byXJ#Yz$%UlEo%}5VnQ<-)9hmr`LDcphb4) zOo$`pYWF~O;Du!>P@TtuvERS>bfzWHHwsuKydbm@H_f_t8%m_P=R|s5M#x$3US@vq z{r|OrshQ397N7$tfjF_q`iX#uw7)?!s0`{9FON*40tC7m4*aN1Jz<946i!hw4v~2( zsFOIG{`vvOn%a%YTJ}U+m~Gi5`xSce_KSWD98ZudaQ9>4pwG7jYgBKJ#uPFHGHi!R zS{TlMfT2X*Q4?S;0#KS=WF;Dp)*bkUHl(^~bST%oUn@ZWijc+hEZj#g&&7sKMC0QGr19;%G1gU!p;m z?MHbkeK^KqSZ`H zRRdR4dqyknJl~@f*d?3y$zm@>G`iFDf33;dlQl3vx(M>>tx{aj3@bH5cJhZJpq5dH zUenu_)!{DTG7TzA_77nlFCMm~kR=vUCar%pt5b_(yjA;t30n=aO|L*}eI$HK42lW1herYdsGK2gE z87-?Sbzf!Kl?j)jCnAE;t$A1k`z6jEKw#_}MMM zry<)=1>8FN!8yOW3C#pEEKR`7=s$^p$CRkvsHUuUt&Sq@OM zZkCR?#-JH2PhyLonQAG@D%X36>(R_K4V=StLb5|O9a`0(uLo$B==886(IiOzm_vy^ zV^`~rP#FR7BM6nCK@>A+D(SE&H+ic4uI>|}gQ)gN%3yBpNF>{YbsK|BI;_B@xPmsi zwF7i)22zm0hpAgf+W51})v|j!R??-=DkG8Q!~V>!YV`$WJW)Qd2BcWZ^I%&C@qnDiSj?la_tlXRX(!6=cQWRXs#D=rK6 zCf68>VL=274QKH|bW$INFU`INoU)}Q6NLrhpx&ONI1X;hutFyi)i=-n0@5VwF6*yW z`WhLb$Wug-J6ryLi`*62%(8KJoYm%(K}T0YH5}SGNJyC%Qek*49o!3a*o|ur!l*=B zCzpcz%<7O#in|gbkUAGJ|MueTW(b1KYMol{R!aeX!|wPu<;_2h*RrSY)tyR~MNt;h z2m@D-%MU+&ge-q}Sk{-9gKUIJpg8^d2N@!;+={p1J%$zR_n?}fDf(&fTm&QZ9Ru}b z%G3`Z8@$kF3lB|xLphk4*?B_x*#7WrXIc=>U4@*3G6p7ImwplW)4|>C>K-bEKxPT? zWvHOG{7;18JEh$7MnL8CLi+_gE8- zj%o(?ct*>&{lTK3Z&&E^UY5O3vP2oK*3bccl<$=+>kND&%$dp;b^;wt#c=UGt<)YpJpcE2u<=6Up+D}N^x^ls`Q-PMei12GTlj* zOgsAeY#RMbfe+{eFc6L#E{M1`<5-pH+t!5wyg1rc2Lo?wS0mv|WZMh+{N{WEoOm{p z;?U)J2itU1Ode!4OBwJHI_zyZh+rh?>(Sui8kk%avZwo!WsbvK*;v_Se@<@tQs=*E zuTwPA74zBTJd849q?plRCwgolKQb(y(S4kFPRh%^rDdjrxIoQwKK$J)-keSXm&Gw%`n*YPzn}1XNzVF|g z5Q-$Fh%^zB5-P$b^ORW;n#kN>Dl(?hAVZWPGS8bb579hOGS8to)21>N;XW>}&*z8l zKXBjcyVm_v@3r19#rAw&*Lfc2aXd~QR_14X3|6?3%RcMDL4(wY&xe)IA_{#2E1~&1 z|GnBzunAgbNk%y=8zPj=OWiMPfBD*WcYpYut9<+gve&5F@N^>o*B$Nn^rjyJajC&6 zw=G*_pBNpbq0)Z6tPh9-RbAE0*tMV)f$YD0vk%m#(pH_hud4_a;h^owMLqmz0z9+5 zIv3d6D|q<(V59v$%B()N!NY5?r>ua!8;FA+RT|uPJJqFBuTY0So@lA93Obf>$UN7q z-qpE1_}z=Fkpl_T00Yc-j$UB%j?_t5Z#3R;!-SlXB$2l#TGyWOUUx`3OIsO>_S4%^ z4NE!K@5C!VW%A__PH3NX8zM*;)YIeM z@Fv}j>ne6cWZ3gx<&bJy301+}RFdzVXb?oRQ};@KvR^^JO-K5)^zw|4!<#D|Ix}Jm z5K6>a?h%29sWo}&9O{xnc?pX|JrGmJq>KZj3OMTemxd(pT&{;A(f3Ej2(xzoM`er zGCigC@Ai|s(2;efdYYudmhO7lm&V82Hk^BJv(BCE|MO6`w>^c6|fqGf$e4RyZLw?O3v@z$x5{G)>-Cu-2%+8t0 zKO}9vV#aM@=DwkGNeyj!^r1B5Aim=@DxO|NhVJ;PxR$Xcz0%iq?yAeW54z^m7~Uae z@tLv&9yC_cxJkV<*f0RP=j+dyeCItcTr1(P&`Z@3dVoOsa*p;!{fo9j5j$<&qc51r zS}5hn^y+P0#U9yq<8bUr-v*v-vp&OOaB%y0S!N_t(47`$pzQok(%fOWZdVjNNiT_< zi)^@AMTpY*Tl8xpi4P{TagvdFG;Xlji><%8nm$1xC=pRxq4+0>qzhOJ;9#q__MscD zU_u-+phfV)*Oiv>=Si0v{m}`Nx8A@4KASDN;OQOXNHg#)46_rHHuWk_@3kff^%vhh_xr<tl+iG0f zJ?+bz4%n`d6KyuVLf!q=I?LL^cj!Kbre%!5oG^Fk`(TV*kJIt=o(JhnZT_Xi#JLk|3ss5|U-P?rf0BS&o`Q2BhJ$bK7cKsUJ!7_7?sxF-CYQ<2jy*ug{ z`rH!+j05n=#~>Qg!*^Ph*Tc^6b!d-kRXvRHD7yXC0@wUo;`4lw?&dKv5 z?**GP^!QPxuI0a(8=X*7Dl0zJz!9wOEq|*S$7t%IlZM zc7xKx>4KQh7kRXtGOoSKlK!G^dBz>Dnfd#@L;5c7NV2C0kcxOKGxZ}+%a!)FZ}npS zFtc|u$xL3V?V(tsMt5px!OY>5=}ftrKLtTAG!krCmajcJn><`scVLCWS3!nn%kZi& ziHg%kz7b9XKJJx`-%L344GxDm^2#)u`(9spm?vtO{aIbKcrW5UAvY|(XSXE=xm%T* zYlRek5L;!a;32g6UWBaurM&!`_MMS_iCJGYMQnzIp+?KjCK_jl&G&danleEh1S(bfF*S<4UH z{d`+HU1aRhIHyP6pA~v?rgL+!`Z!nDu*hVO-{_V~?A2pg{JZxzeY?;*p<}?$HF?7z zc1v$mAR#@_B~?^+=t;L;dG>YcbKAG`dXg81X=NYSx%PPcZdBEaridQkP-R33@Wf&0 z!>7~AyvyUVvf>UcsH=Z;ma8@LS{r@Fes_`MP@pE&ixdA5;UBr2;@w`ivzdSWuclUQ zdewQ%gq@eE*(P85JHKSHYYIpYJ>uw*IT-xZ9dcO@$92cEOJ8Kv{BpF(6ZklI+#4yFM8GkjHSB_Qb*=6dDj@v#QFd zp_@q~DX$`Omo3?efQWpfmc-64DNl7t!3ovaO`Q6N7|*3gQFzLtQ!c6YF}{AKC~GoV zTRprq`~Dx&_O=(;fWzYiQ<|B1t<1MZGB}OKD=hh|m$1ZLBhe<{3z}hn& z9)#5)L8m-hO>!8i(q|3$t1!_R0I^wpuhZTYllczjD5dD%pHd4n?NbT+*m)lpmn&Ky zp-{*6yx4j!{A@k6wCz@}B;gt+^WXh(S4~;Lo9{vgGOaR_9gJK z5zCbPL#YbsHUBUgmR>CR8B}hNWZX*lKvNNS_0wEpFA5BA_K}K0g112@WW@20*v4)} z{vhHTx!vR$Rl*j(h=@W&%6Hk#>sY6oqi^QFK{XS(tEVTCtk{qK!gcFkcg8Gb30N1s z#Hj-$x5Af1%|IuRfzgob)(PT~nVoJj;85kY`gI;WhIbhAd^Zb1uxq~^bWLG+&q?J$ zq7HSWYDXI;pT}r_?E0|@_LE}AjH+ixt1{4IkFv4~;Dre}$Da85=DIJpo@qcM9{Dzp z>HweElIngETR~AWU>2m~(O#$85WlB^MoC61N-@->k36eLxL4Rj`c`?BG~=I$sQ9%! zICh{cQi{yN2oi(n&=40?MVTAARb!eN^v<<{ghL#Qq<``f4>95Uk^j-Gq*0Vc@++{Z zW&b|K@aq`HrK%g-s2$+vG13oan`NXVY)hd3mRG@!ydcNw6-=+&+hw=B)`T_8#! zjgoy8pRj7Of&SKs9NbWL1Pp+{^jYx`X%ZN%KzPDPCSZ-X#%3Z{3Dr#ucQhRFXfw?~ zAL+XFUsLwxa|Ct{&-aG!0G7ImXJ_J;@!bArF%%H)P2Q|+ztOOD-TVj!&=OCTR&wlQd+q5NIM7`po*=hLS9|Ib zXDa{|M-%<$FAy#X2JxKa7s5@N`U*@>^dLsSO>S7m9LmtY=sMra4+*0J{H%8vbbT>X z(HNVBf)z_L1FMC;p~s-|G=98>jn+~L-KzUtuqV+f?LjMTfO=|euWXQD^# zp@cd#rCheW=8Pt;M&QFQ=oD3}gKrbO67ncbA7Dmu-TH_JKq|XB3>-(y0-}_WEKq#_ zb4e_kT~$4b1nL@TxC<5$=Hjg268yT{1>K{QrBP+fK5Y#~2VBWysA!DJmy9^exE1;? zj_VP&L-rIWC@H&+h7rl_-6LyUatJ`jdPN!H$?O_G+3E%OkfH8QQ+S zd*4le=!moeSUdGY#8p6haT?0-cgXl93Xv_>Va16j6H|hP!!w7st&3tY%M=iW0)(Qx z2*JR?K)7u3yLMviF&goa4{2C(?$^WZGW0(NcAM8nCl*YHi^}@E-wLeb-)5d;QcFyC zQw>}k*-d|b5jpfr@Wf!tYoY*p25T;Jx22A`lo;OR8QPcs*bPoaTx&;g%W~ZaN+pR9 z+}l;rPY8$I?lSR7jDzeK>)Kn{HDdK(umPvKVe9k@=-yd$xk8*-Ws&YV-`c+UF4(C> zUms9aO<1q^_v@;vQk<)no7`%*-tGKSaZc*a?8Y0*k%`9xGY z5Di=cT5AF|=?S-fzIvrX39&^ZXNL-I^i6!2(tPKw{B}t?dWlYoMW8t@tX>VKs~OyW zP>V*ld1GXK!81htL18t!A5J8v)7_8uI<{^jqE->$WwYh^d}$bHpl;1om^?6#iGXv4 z_x!)VqY=jN>>Yjl3cm)su^Wz8C+9j?r%+II&$2geZi5);J)^q0xlx`^6umiRKN)$r zaOEYep-4TIP6uwe(;q+SJ`%qeqJH8MQdg2S{W`X;mYb;!-Lvp;`M$9JP1x z!t~Pj>^VzONsZl*+fT^RMBABq@eK|a#V>V1HT?+h?jh38+#`~0V`-cbT!9?*9qxf( z?dj zIl{O1HT(Jpk|f>7I(9%)U6xOjMClpR-cHqR6Wg5~YF4*B*VX*#6_!MjLh~$&Q#xwq zMPW8%&-mx`tF4D61(!Mo^9cCRS{#K`Syp@|F}lR*6J%9GSy$TM@Q1bBVnYb2IKkcZ~>%NPrre^R482M)gIWP#=){ zG@$kDfyw%A`|poMjSs^JF}+gs1X5+CHI_v)U3~2*N{w~W_TiR)C7FAn znAMQvPw&mF-?uuAa(s_v5wcV1R294%u3P1H)^a^1Su+MB&q5gcGIe(U+he=U*vMk= zRRouwUF$1_wwR?i9BCdN8$GXGxi3{GHre=9KH(Aa>aP{J%Mt2N9GytH;~hcm)x_;1 z@AGYQH5S{N(4J=ky%)NA7cE!*ZVNn7n;#VE^m^5}N)|Oi% zX+2`bojG<_|H?C${pA+BhURi+{5bA4WoT9>Lh>nv`}zpz0CepXUy9tukl?fZfq&q1 z9bxG$F4y9Hs)k>yV0L|M&~j$`p>8f#W?}Yst1rIR2&^1(mq}8yQebqrk>TK1xu5pY zT0o`svQXSe|KtAl&AH;&Uj^ivnTtrW=_MK8FVgN>$Nx3~hM zdg?w?wyd>C3#c-L4ODE-OY#R#Hrqx;GjJfy#w^6f+?X?IT3;ZQR~Njr+x*ZveU9e_ zWo)*bG6IJDpHc#~4^PC|AH9-zJ4ldu*R{|y?X{uZp9f{S0C%k~^rk1Jb!r-|N{ z3ly`eES@XNUvF|0RG7*j&*tjf=4& zIt_|nd;#9U#Z?J3)qIS5{~#edXbI9@0p>O}cwA?3Xnqvb>x7g76zS?3@NJmBDO`V} zib5qg-0@uLKnu@KI*xaJ0Qq6+Ugf{*rt6KCdavV5iUEUZ= zJSYs0Xf;(%I7l4M@#}Qi2waHZLF?CNFy};=JE?}Iu8{S(YACCver0X9pH9VI7?lTxX2+*wxlwJqGQJ)#COy2_Nd zij84M%(d(FXRkHcnU+|thuOoDP0=>hRM-vRn#$;(nR$;a);cnshkW$G@%P{hQwb^4 z_Tke#BXEw??@Hm^VVph?$U zh!{EKYtwj29vdHi(N*2_Ja*>haKBBGz?nw|3JU}(a4@oM&5EYbHD36e*C#?|BdJxywbJ(2g`*b|h@0@%jR@diUcW-t20Fh zHTg+7%tZFe^vHLMy9`*s{w}Y5Z-?dZZ;vgF^;M z!-3?Q>1<_x{WPX#^6b+Y5+hAI3Y3;M5oVBD~i9CrG#sa<3GcV;X($%5BvmuxtFd^{fNh%7|bv ziK<1vaBw^}a$CBWo8K<2S=3{D(}NAFBoNFRNPJ{Ifj(Gvu{c(`#hCfFBSJ{D08O%n za~X$+WusogHpYm~*5{g;x0xi(<#>+d^nQMD?78z>HLI14YiFoOut>u*&$oOQMKHZs zU9y;=%|9q3erl)vJHO+tzg;mOA7yPKpg2;*HWDvh|Pj?tX+m zD~!J7jz?te|5KJ*Iy1H={GJ$>mbgO_ugpbTn_f78T=Gri{uUw4e`SmfB>#t zoc8POZGCd*g=(Esq{-0omG-sQtq6V~J&GmMnkTuv*FEQR7;=<^%6ZM=!}UxXa~F9MTg? zXJ*fUD|O&j%I%<+Bn6ThoV_|xdqwNaL6NOPEwtN_R9T1XeJ6%wSB=7t^=QlKZEcTb zqD|0R*U`3&z{0Vzh?hZ&06;e;xw7Om>E0ZQHSN!7s^hay)^jKJx@tm+n>PH_Qv3{; zbw%pWjFDa(+=l#DAZsi-=9&xC57;q2gj!63qy&zIh%WKD6nMYsJvT5!* zucRwH6oVK7Wyfd@=0$eHeG{3MDMahb+c!bv#JS_QQGBPqE-a}d zlKu;Nk6%RZYn`JKd^qQkYfRpH(m8Vf69jQ1pi0r;x^gchETbeW+kI6(M76=}Hr#9I zZbZ#nb)A}(xNpipus=ebeA}Qc^Zf9LGufy(QK?lYRZ?yi1`?;WjSDmNv z!r+qa)aMuN(lMJ$Hq{Xjy|gnb)?6sh*11mJ5A`ik1KzTmY~pf8=U&WkzneLOS@ z;Z#BllQ#YiddD2Dn^-{wZ&j0|^JL`4ofMVk%ZicQ<^cUAM4e;Jo-zqc4SGc#zPBpX z=5w5DRzdci(-G?FJBDBi{`EPDXUCTSs&EMW1v-Jp(e2AZfAVpo* zv~E!;DE>qT^kDZAmgNuDwGeZILS$*y{!~mkJY%kB$cgPvh!T92bJw*aKS6*^5&nvk z96Q+3LE`G1^7oc-|IN3(k}<75CT=FAI1nOIa3C?=aT;EL9_`X#<>JR4oUt-zy=tta z%ft+%;uPU!86B#z_8w{m{hz73v-#3~!(kB*_f+S|JZc?XoDjXK4#pUP)gv!L_f1G5 zAi^oXB|C)p*wJ%sJ%_Nuk#~pdWc~T?}=c>mL=i5D$;91iW1_eK*8<4EEiu6XH?T zSQYK@Co@Rcb||I$yTkP?xwG4r(CY7L%9DFoH+%YFr4|`p5~36>G3AaeUsiIh`%qT6 z*|zcgcfS$wb5{D&X_AuUoUI<1nclG_+x>Gg<#7B6;YVngiifv4<>}=k*>Bfb3cU|M7pvN3e+P(tHjlh8?k6kHb?I2hVOCiOi8W7s+>wZhrP0 zmmuM^)T3>A2gS>k#2yGwT@Wj139|PXs5~cg%nMwXv@8`o|AZVNM2RE5Yv15qD3Zw5 zk8>KyyD+w#^{NE_bfo_q##p-v-VzjNWJ1EPT_FyidO1+&`)F%Z%U%*B!DU`+d*U5M zyxftvrwJ@*!(+0#W8oWA4Ou8>i_1jnkCJ5}`G7dz{|;Jc#?hxiQw<;|WmUjvOz+TT zpYtW_De3YA?E>Uak;^E=G7=wC?K*+yg^Y{tBV z8q1$I+(14y38tn8gdfenogn(iUQrU~Jay6wnyxR&y6h$t-Q(}@H#(9PoR>~9*Qe+f zYwsW{s`ym_#pw$;in|3B$udVjQCbx|mzuBI?gyq`ntZ zF=RD`AbxC3fmYS$-sonWE3Qa2lU0Q49GKs;H3>f^woR4};)UE3?Fyt9*&d+3v@zw~ zBw)Cw-|jzdY~=~UkbXab#ZSNS7ahL%l$p1aBOFTZPO_oZ2lRd+kML{i_jtI(#c4Ok zfV<&2B|LM-()D2&I2!G=d(9ZQ5YAZqwe~M{Yi0%ZpKm0NNWyg^)>4{qXkR6MC#CTl z36U1WaZ32_H(2R_YW~!3y{L0ts?T1G^1z~!E3~j%zQz=~*HlOEgJYL!QM{0G znI+p1*zW!(*1isTpbYoH=2C?X$b~p=3b{gNUM{Prp>tNQK0)>e@~h?^Inc^{fZ;*m z<2qqt;dI=yKIi*klG7u@D{w!z`)sc)$SchXP6aupv~T8~+oQ*mCQE2Fjj$I#d@aV0 z;ofOyp%wUk<5*LUk+=szwqP8z8|G@)_^p0}>35x7ie>*?)0XGlpy*5>aIa!+ zfV^FvZS%NhmKE`jRv_5kCt1I%+a|855Z@;zmSDh@d$ene3=QaGQM6kMpA2N0EX?z%u-R>Tkh_^jm`KeoX z?M;fs#E*e7WeNx4FqgM6iK;&>wP?cEsq#a~Ay)vZCj9aL`cA0D?L+uJHklDFHl`3G zb7V^|SyT4`oE^eqFL9#oL?@(KM4ZKPUZW$}B^bW(k|G5F$TqN zcSix{Y{F!2vQo%na1Mqv3F8t+Q#VLCi)SW|$_^6ABqgh_$#1f~gUpgiNkv1fID{qK z?th|@ zQiN0r=dWiNW44a+#O;HM4&cFjGP_9z)p}%$3fb3Lmpx6^e&`~|PoLd`XB3l)iK1gj z(l0`o5zWg$2F!B~OH{~epq*tO&fORU0S+;;2V^!}y^)?Q3`BaSO*x7Sng30MxY&6R zG=Sj={d;?l*)=4(sD}x<_y@jHdmJ@cfwM#k!E?9VSA=1H5k=8=a@ylId02LaIE@#h zK3_u<$D_@y9qyMU#xo9}ylt^#3_O!WJ#4P^k1!fY&~LV8gW|<BXqj*;0}_|uBQ2K!4DHIz0_BzE{(T~_V}K7;Zw>z2{uGjosKz3^5QSuSRsCoy|) zT}+oY(F*q`mX&>WJ$!k>?L_ohnLJtIw|rMgtcEku?s1?F8!^ zzD9w@?rjGG4+$ZLbAn`?ZiTP4Qfq$PMzS^|MSYj>yDjk59cv)t#2SrBzj?5_$rh&* zP@GP^RZ4nZkz-2u9?fZ7X7dzzBYk95~teB`Qz=9wry%dye`mGM>^VG ziw&5mn<@Xry!y0%1R#0u6$M>CS2B%e{_rF20=&{ONP+g8$1un_L*FAASp+Hc zJVhJ)UkiA3CY{8TgABJl^=xKQVn3X238FgE$0~jZk|ZWsjsONibPt&Z*5qr(^u3+g zlR2HMKWegy<{wW$n_*#mGIe)O4-SRje|M)>fhd8zPVmfrjVa+24EW6l-E$YQ-i zM#(;`kjv5wqeSOzmy|B+Su&i)7NAb^ILOt7>fLB&2mfz-S5m{+FG(s z&UWaZlY>NKV{IoMeiy12tQwu?D9q=?&Kl~`_Jewusl)U+Wjah>pK%gS*Pc~;Yke4V zb5*)^vpOm;Zy8;AVtA^dPdd-P2jj$IbKQyZDU}zTNox0>uU>s`ak0Q2Fyeg$zVzQbs!S?f10zg+B;(q)!TJ-B+xx9?Rrj8@(dS zUH$N>guEA?fG$;OnU0zEPPdq@@+FZa-gtp@_2~t&^NDPevi!UegAlo1#)gCayjH6l zPl$CiUb|J;`Ebx}VlNk|(D$-Cn@DDFPkH=(U%pM{L;qyqDV=@IgIkoL4ChSrx6*{L zrFL{PS4fc)-PCL+uzfx@JSTH?g0`K(kIa&h`h`fNtU47wu>?!?)@mys}gJD9A?CU|NEEa)<4y-oW4T74FjgOGx!ap~kpp;4n=6bP` zCaoL&1Ru3fJ+v!<6%)+oQ{&@glhCu6*MdIp+W+PH&EQw-o~!9Znz=Pr$2(ko79_3O zw8W`~)V%n@2M7263MSiyeD{aj)OClag=!Cp=5pAbvJvAv)velDcDlbsWM$n0r)-m0X7wYL?s8TX@%D9Zv#dWe}))9l~(Sg?5IHlPFapCTFNOqX{++3K2+hd_f z+019HN%N;n|L2bTvbonL@C?tU9PKZNFJRS)@J5q;!S21q%&@k|{2&^YLj}7BGBXOr5NQw41mJqlCuxA~pA+psNss_f)}=52@c2YmDVm)89mF1dBX&u^gm7NJ8?7?a)( zv$I0kKT`JFhHcKMUGlhXPD9`12F|EzV_#a~>-qS~(;-rsVm3`$!9mAp;%~->G3}%W zpOKATomDVO`emO7#oP1o&;MOgN}@5hSJ>uHCXU~b3}3<}haW#c)#1{e!t7tsn_sA{ z^D3!)?(alzKzMbh<*9seMhNK&n*%tR_T>0eVg2_T&_t{YM6?ax{R$oL#{(~jJ z^MC}`2J-JU+NYYqb~2JdgPpF&`t`5qE%ui>FmgNQ6x4Rr;(&PT4LKtMMA2XR0hp2m z>kjl_mS$YM9Ak|yltaH_UR_lWvB}8m z9@!nwvdWD2gLlI#mt=87`M9++t?eW`!ih>a{v4jcVSOxFrTCq z=*!crj~W{aV9V(yelF49McNDVGRI6r6e_P%UcdpNxfx*$TahuOIqKSHvTqqYS1P`3 zb2rS?GRxs&ToP_R2PxqdT zGgZjl@hQ_Z?oDP>9jcQ;iS9`4f=sCnzO%grHcDlD*6u3lpLWgo<@(8HGu*Q%7%UkA z`k(?6pbuh<>DjT~1!-TMGIPbyvKIHB64GY}j-?D1!e-u8tTV@h4%p~&eKh;x1@lus z@=O<@9!{13nC%6-#kA&x9CmC0miKEln(jUDY6K*XBcO5-R-r;km;!6S1ut(awna%& z15f7+cnzb_I{UAJdOb@J5@p&5AgaLKc*Vemc>)Hua zUy_EiJ`EBXU#opqxx?80jt~my_^>;d1KKx_f zLfjUvdxl;z$-Bzz&(b$j2tJ{|vse3fma}$Av)Guy9#*FBcq7Y<1*#jbm|2+)A^Rfn zyy?mdsx|2)`lcdSK7S2zpco1Z2TVmHpoqnbLhwcHQjRRZY_bM5V;4;|44>m)tXCMr zK>H46%%Jh`j=$ZPZLVdvj z<#q&Otfcpl(eJMVxTK5uEh6@Eq}ImoDUkoIPGfFsI{~x?L$!aKw_(DmfO6PW4Ap)0 z+P+a~WkGrjDUO%h;>4S?MIH{ljJ91-`sw-Ao*f&8ey*gU@i{U2Xk6bb3VU4Cx}Fi& zX>?=E-m@w7s+n8bG=@*=`>)~7c=(-+_%-@SYH{j%koD=U{M@O_r|>!Vt~?_gWG_^g z)sb(}mCj@P)}-_&3{fyMrdn5{X0fA+@XaviaA-mYD7nwOZBpCpZJB+VnLqm(<5Zdr z`onj?wDua>X9*<8hGs}Bm?vD^cuXw2DZ@c>Vq81k4=jVzb$2A3pwEN`Sai7bR?6s= z6{tSLLAEWW+d7(?$!Pe87s3se{Ohww6VTTL@(DP>8tJUCHx?(X;ZAwj3LxQS+R_fE z+}SuI-VjUIikC#4fumj0b*s1i&zp|tZ>wDLd*tqI$aZ;0_0?umbE|Ko%=!WXJQrtA z58b-Gwk_bQ+^`^MrSK%emjHQWJk_NeC!UAhDYgBIW70Zw;$U z-e5Z|zISh`r>8YYe!&%*s|SYDIMljFWDtxWC$wOK1z=bn=!nkOgwxT$>|jZXwdm~v z*`P`b?rnOPTX)_yX#Of!P<%~qY~6xH`0^sD#BQFO!O`G5y6HT@vDsxL?VI0sDNZVT zOy{_}QR?ke|20cq zsN-g}V|>Zo1LmymDye5b#c9T^o!mZs&US?Zrh{B+m}Ksk&)dY6v&=-kG>z#%3T3|$ zkTbQt%kHu4&uTwnD-_r)IcvY(C^gh-DE#9~G>Q&RMlx?+{9) zOghjt*!aQK7Y-*Y8IKf1h3ej(DVmP$qiW|~y>qg2LpIG* zr5m|o=f5|2(L|h^PPxjc(B`vL+gzcw3&ZkA72m)EwN7)iEQz?s1;rL$nJuK!L!CA6 zWfWwXgq>5eQqUY!S`vYNCuCFL%?Zvm^mAb*1S>GjooSQ8e#QN7IaCH$nKOi`hrc}E znyK=sQR{BY%|%PP-guOf&i{yK7a)7mk=&}eroB!D)pk8ugEfv{JftFGG)KK}$B}8P zd`6my$R-Z%9Jtkg+_p=Df=cDls!yg=N^i(!tWO~;GfF$gAy!8oxyxT$V0_V?TMBDI zkzKPjGrb|VIE1DJDv+CM8VmHkDvJ4e(`Bl6MzvZ!7k9B9Z_&DH4bT2mMRd6@0MlA> zhB~>e>P8~vPe=PwR=xONwkC~omOQnZMpAZKt84EjEb&cfWzpde=ixF1J+SYQbzkVK zx8ph2+K+})W%Y)xUzXEHob08inqk;ky_+p_)S+Ld+Nqv_$!V2`n9Bo=xH8%=&R70| zMXk?OS~ss)qu`n>ebdeyQ?olZ2mBYWyxSUdMbk3WoLaq-LDDal3ON#gofn`fUQrK- zr_~%=Uu^K1`yMVl`EZ&v=%7DB?*2ZimPpjxUY*0co~9OHLJi`vF0u}AsPFdTDF+H} z20i|lTim6v`q)4;>NOmIW%9Wf39h9+*$*|hCMKzi*X^_I0_`2pw+h^kVL19j_9)-t z%EC64CX!bmcRMoCH&K%Cx;6hGN{uB0_Z|I(v%jPRSUbpSJuqLpYfp)49o`VCe2Z=Q z2kn#i$8W8Ju|{AnKC)HOAblBRX7H-jtn`Z=cBESbh>GWOB;c-mY{@1NeR!ZECs!{C zEONWI7m7bk-*e-x`I$Qy%h$1hm#2L7`G;gRiJK&Pnkkv(X_wRQclQyjJ13(NZ*0_j zMZf@z++1p|Ai4Scl~2#Efk<}RLnA`Nf4X&TP>N1{;1vCqDkw-PKa>>$XHa9h7_8%D zC?@`}(#^rV#CiLrY1Oi%J%HT2Zk)yL;Dp?vuy7}`S$tJe;U zPSBB@>GBNHj{u-nT{p*VAaX6rQP~TveEhe=STpO=zxvw5`r>ixb(2v;47oMUaP5ZG zDK3z~uLJ=Myx$zrcD7_$$vZ?zykbpYj#ncv7^#Z>+VWjH)WCe<7dTgqv`zc4 z0pPfg+wc~%1j9PGQsjj1&bqHsH(1%oF^MDh_ z_JOwCyO!5<`F_wS!s&(ne6yHB?8!WoA$xD&f*81qH_shM3~eb{D!m&skob+uMcCgX zQsdAwne8rCF)?qy~Z4FLN3FfQzO~hN^+t$f53dZHnnf}kY3(= z1AESGZF6N4<9xr@OpVzX_U!O%PQJ20sfEE&btCiHoc@0pOnuP)o$YFTw`g+No3{@l z&t%kJhGm=lc58J|V#=Xb-|J*(toaGBTppcNwirM8Jf7Hx`>N3w1E zA(oD0D02ih@#sk6cQ5I~m|1$Q&Mvd{0oT8~b@CIwEvr{WFPFgdM}cum1YzvnhtF(= z>@%8$^Ac~tOD2vQjIICRqWEE!@*4iwi;&HKLQQ-}+tQ0YmClw}heXpXIn^N8zXYo( z2*U|hzE!2G`%qK^e%L61dLoK>|t>rR13{B~`vbd-k6^2z;eqX#EH0pV7hE+OXDje{88MYXV^FeZmub-QN< z7$opcycLe4!<2ewvwg=rf|SmC%C@R|G<3iDiykzVu)I3gK$am;D+)JfPY z9kWG(xHd^3U0}fnJws3ZIq%R`IfKAbsT+it=o?zhps(Oi(qu#*p#<|Of~6iJ2l--ha0#g|gD=P58zPD8tGEcT)7OVAyh2gZcr%CH!An z>%Nc`YQOrPX4EvrY0h9rUis>ex{KfHCUWVP7GWPe7Nq2(mW{`=*BQ9|N!Nd0`vdXq zoh$bLq!KoF{pE>U>S*T~@a>S_bJwE_Ma0qeLA%Z%febX@dNTgN{?i}wJ0&25a39=A zeDYUc_9qAfWQ~#?%q6bOdoRP$LJ3(5FKsT&O9wv~*0p?phVqn`nnP?{P7bLa2 zks_L0be38I7=lY-2C@tI5^R@4I-4TINCqUXTUyVL85}A+d5sjnvHRRIER`)Z$ZsyV zx^>5wy_N{K>7p`w2m9g&_GUR4hA2XL+4V;V&jCY?Q8N`0%zD40g^5vsPv)!F&yZN@w_)NcnV?& zXk$JM;9G3w>t@gMQH#^XrTi}qw0R2(3Fh%0=Y7zBxAOAF3K>?sx> zTO8E=is&d0oHn;*oXp0N$c)9{y)&<9{$jQD|IE!wZ?9fl-;8`vd4pUFF%DppF^$B@A7o@rxp{f;aqf?w|EU4tl(fk}s+Qd$KOg79BEzeR2^=GX>f zgx6;#rWR3Wc(qPAhdD*3kX;d&pOKl@!9x=zivh0C!`L!J51Yf$)Ol<-ZYGZ~>f#gD zN%Ec-aGTQ0>1W7rAqFcNu1bGY!uDI|!&hC2QE>NvI{W`YDwDx0D)S$!EWV@${*wcH`v-M>mK9$awku|}agUF;m17BMzxW`EJQXh$jM#=H~bR4)*^SXQe z+Pmxbor{6o*~4+k@oMHf4`?kPQZs85BO&cc-(x8w|}Hnqa@3z zyLfONgS*hV@9!>n3+WgY*sF?@m#8_5vJ4<1asLu>puR}G15yn-AnfPoE$lLjxvDV^ zj#F&GbwMUN36eH73lmBDZ^@Gu&Vs2>EsF_zT5+Jk9*=Vdf3L`H$&haQwFWD9bFd2s zVefqx|2$CG$R_hmYtQMvi|TeqE*bBr9N2WwRsctRzUZL`LJSj!$t$XP$z&`qNz;}; zRU@o)Pw(UL_wv0OY3oBX%*sOGb*hXW;J&VRP|-KO z=AgxWVFBBs4fegp$?xK`drk?3i0h>8Q?Va^(6=Ctj@!NSaSNJnm)9YLurc3-spu}! zWp98?k|(z014)E(Tg+5tWtJ4yv2yAkfHCJ1kBQTIcgWiMWg0E^19;hcW`7x$vDijN zU((65yrg|V@ZwKp`AK~n%WwQc!pV0$QRf#*(0PtNMpn?%D*kt5_btf}S(EpqY8IK< zY!V5&E2&F)$pw%SrL>B6&Ew%LL+;xksoI5S?lghW80C?|(r%ZW8>_zeB3sx6JAOvv_jXQ2zQ zEtR*uN!_Uv`v(S$IO0$xskTRm$9W#{5^8;G8P6kg;U^OIg~~F|mSAx`MX0N|>n8z9 zZe3T)k@O8ynB8RVUx8j>bEUq8t#p{eR17iU2*fI4yGp+@dv@;{rUa^|%&4 zY-W{Nyhjh4cpDa2EAVUjuyHL(9`q*HH%;P}s@y|^go?V|kv)N`HecWfdMF}>-;q}? z>uU0*hi?ZrVK>PT;`wsNR=*vB_?Rka{I|AjR=@c`VidP&=3WtX;mi6a(pV7JoL<_) zwzz|fvL#kMIQRK$Xa>l}A7m(2H+K@!O*;h6Ld8%{?mHY~ml9>#cizPb*&}+JRlt!H z1d*ai#{EB{T8kZwd$doZ3x#J}bjciE_jJv!%d&hx6E?S-Z+2h23bwQqE8C_T#|0U2 zcsFs~J~NGrF$PqLCg%_3O*E$aGdj6p(~u@Uup5!Bnw0P@*y|jnn_H0^ng7p55_=WkzWQ*P{O%}-N`lN%3U@427`u?C(*D}R7IC_2*|bC zRrkXLSr*hv3?!6D)xbpAf6Nxgo3N#aEGu4wmwtgSr&FJ^OE?46tYlk%9BP@B?m7brGf{B? zOXkmElLdZ5y$WNbtg!qt=%Ia6U(9_|P$L+s6pB_Pu-HXFUwTEA6VBz+&3wyh&>mX; z$eZ~@rGqxzyX@$YN;9mTN%+Fzr-e<-O{spk+IDlHAS( z(%9iHc}GYef_fkJ{ZLi!{JgcwPqtbXKaZ!zwHr|*7l~V+{NqSUkjEvdHqZ`NNBw%<*d_u~Qf0Y5e3>(ZM91 zK}h@UbJw+b$)ImcM16y0m8XjrPv4`HKTa60sU(-}ww)2u0m9vj)$^9BPgnTgLC*VN z_zafO9VGu9gM~G*#A5C}fM^_9Q40@>8@wvzsXy;Txvm?kQ1BQsaRXnaGWx~fSGD+M zEBO}Ngj$fb*Pgj=-zJ@#`LJ#cxudS;6TiCx-(zC&LD%1X?Q#UwzX38#Rq7KcWiLw? zFbEm{p#9nXxFN#$Ucs#-B}<9a^{9sym=0cMl%>`^S-^;IzZTd!ntWAI3KO(*8lMh! zo%9gWavGx8m`Jd>6#Bw6M;mgUbl=&7sPFZO7)DMmMNQpN!}LJVo;ZC_iYUtr`AkLMQw?r;f9S^kgS4*fsc zPJ}7gk$u2k!3K+uPHo1omZ7a^&u+FaDc2;C1}cC z?VqGV(^oT@+K_yJ{G355vG%q$1r^`<2(P(ps2*kJ$d>2m2z&B3bf4kPmaegMnL~N_ z%`9?^zyKjjl=4fjv{?MW?HyaQj-ly4wWr+_n?65IdGS>?(=7KGeM7so>_mA5^72qbk{2sw#D14&v8lE(vjC&EXkdb-Jj z&&h5mzBhEi8k>pe&we3vRn>4yu$$>T*%yRrzM);pCp|luBv=6aS*)tDSm;dHBJ!0& zz25!U|M6cKDP0ap*7&pdIcsheJ53Y=96F(-jd1x}*VXz-b=?m*dtxw_jwg{S0!dN0eug9` zDdBa}-!0R(4?V2Li`-)=hho1}A+d0rFDwy;&*>&s4e}9E0yNx7`%Brs_%8l`@y8Vz zh~_P&E|$c(JpN?KiWt(eD{v^$!f!Qcm`bHO|c`@Hb0dYd(H{x z-VP@nNb=bju@cOtJUa~ri&#P#T`nLOMUJUp)&G_ifPr1IxLFVN(hswnUDZBiwF&ZN z``ib@$@Te8qU^(QvX7BCX31KC)8`ZAx2*Wvv_^qIW?rVO=fN z^dR;#8SIh=KpJ~b`l1FEe%xEQe*zbJ1Hn=r!E!r*%Mo#jLw)-GgZD6P>QLZ0?DHAv zSY;dHk+-~b1W!AG)e<^UD;!w)e?`Y>0lf#;jlr&8nTmA?UB|^tb50T?=I%b2(Y62( zL{SOSmB!@37P7t5JA%w6+a5;Czi=AUEM$m*Z+hiIdgWL239mQp2SOw1Ph4S) z9a608toQeWo3OB?U2J@B4>3Z)VS08ZqrkruH)6kC5;3Qcl?q&ZCsTfHV83GObp#Fu z($!XZdJ21EB9Vbk9tVf)RHq~~o$u&q_K+f{o=bc!F=F|&E)v`Q=13};#zb~-OA+c2 zzU}Mv2I8FsAm7n9MIxwdd78XA7VvQ4tz5p9_J!tF4JE9d9pxBJ~lHb0Huw1C|jdE=7>$>@S zF(kGdPl+wspObOel#vL(#_ZW{YF5DErzM3?$Z&;!sVRHPnhUUemL2{CsUaR-g=W87 zQcVj^WBMOyaWhJ{3JmPh4W%>Fn)e$vscyQyg{MA4b&2+bB+tRin$qERqS4Ef54(wR zu!n7l)=s$)d3<5at30yt(PGfGTe~h?|R`*v=ou;Kbj7tmsf|s;( zc2WicLrK4+sELvu*6>h5R(q!`e3L$JkZk@`7Uqu936++P=xv72t_+1Blo5mahhWp= za94D@3|&AdwIrc774Znq?;Q1e1n#SpX;UW@R=)#<|Nd9v)2s@pL zU%q57wXj{y-t&tNShs#)X64|Y-QHPO_x_%n@V`t)$yHU2Bfx=oBcG@+cgkiredv+* z#J2sQUWX6A#l|}Wcc1?133P81O5%VpvH_I+D^XWcC7+R9RFAU zU#!V6*Y~bRmZ3!76?O9BZas;#EAGncy%0K}WPc0noOK2;cAXnk=J?(3 z_da)Zg6u{B0Dp0nxy%w8-my~GUPl~xW2HcY;}Z*6$$TI6NzZI%f@fR>rUr{ER){QA z#gUmGra1G4u#-sqv5XE;ITn_#=R7!vZ^HfS+H&d(abc6)=JYQFz6fVz?MY}`Ib6PE zhb~4B@kDNu&}1iqZAb)R9+90e#9@r(3NKm6yBv#St4d=_LXa8AfL7vkql#xln!?5T zr8Lc#{V@qLmXX7O;PpwxH_~15cJv?tyU$Iu(C0#kNMV?&9*b~Ccj6Fal?nw7q8|B$ zp;GMcyGs_AoS5!knD5w*g#>+J_a1Hh#ft0jg#n}imyk-Fk-8wC)q{*|kDZ^NrUc<9 z5+)mSi8?5-?9i`lUgKm3{9MG(e#SDCh`g~1KBa%*AaFU;OjotJ-%J8aa1GhsKXqL9 zzG80_-k7P@K13oHv0Fa+66>T+K3E82I(2!7jD7p=A|n+?Ms0W_UI<==kk`|o6Wlk8 zQFS{R?)q6Ff$I{`?xRRtgf_H>@KM;1p82lkzJUv$8nR7O&GEP`L^WAzPKU)Ojk~j0 zV>UR&H;!LbJaJ+Z-wJmiD%%)Xo;rPpE|}OGop0_K%Fvn5rX$pB2X(wOQ(+emE5sOA zVzwuFDBKx#K9;MuwMa1^Ne~*yn4X58tw{MVu~vuu+0dqrF?TDuV+6xUk&A=%3B;-w z3eRF7!uHHKBsk+^dQK?YWZd(eSiHxoy=zPrQy_A5c-dTju?cT2*8xH(+UQ8k;HUd* zO3TV|&w1YWj)ZV{+UIuL+q^!zwnwr^ef`6aGqp>?qIf4(%oNA&zfi~#%ihL*j|>e+ z0l=ZhelUV-?%-s}!;I!7%(ZN*gk#XcmeXF{*)W2`g~T8Q`6rXeDBljl=&3Cmo1Z7H z$yQYx`$0xO2U$&W*FXNTPcb26;H&l$E;U;!`zJttAGjDwx?{dV_l*u3n0={qN7I^| zEXOq!F0&i4Kda1M`tbj0@4Nr0{{O$VNTq}jr6E~w8Z;=8lyU4Gk)o0lm1rDEW~c}m zDSPk8F++K4SlNzIRLYjh$Ozy2)91Q=x~|*py8eLA&vm;w<8_|T$KyT`(}tJ)j1nw% zj-)tuh7g$&ae*;c5)zy2o&@8w%gQckBqnjfWp;AhSvAk6p2D8NNawSgNUbKOFoIMs z`hYloqJpxcKK)9@Z_oFYM@=5%l9~;lFmY6jUP$BWQEGmA3R^={vW_6R56Mo_F-t-x zoIGT>qXoI*1%*vj?kv8{e(3!2kE$)JAjUde*1eOwoy(pIQMehhYOniAUx{O8N0vb4 zix0BZBXVk|Iq!G$Rp?$WqJ7!mb=qlU-|PbL^bTio%@vYdH@4?_z}jK@YI-~Q)(F$L z#=ZV2E-!-vnK{o~V(T;hmjXOvmX)j;w-Tq_4Zd!}bwAVj&#KhR zhR*4eDK~UO$6ZKm(jO7$hm%Pw0=gU`)+i0S)8Bhn9l)j39gl1~JePNTPI%BB8w_40 zJ=UBOX0|^Qg0kMfYN}ZKyJBJS5BLxd&SKA+q%q>(4f>@Mo>*VJw=i3_@S^GS_qwR= z$%7=L@i6F=UceL2{Tp88kX?haz){99aipJFok%kef2eqlpB7OxP3kbr=fh&rN^gc`cAwh_l6RzZy2eA9;Vxps{i%xMHgg zOw}vDE{&l^%nUNJwvfhFx*rX)dUtF$#fA>!=9iGXK!3zVE=_j9@Jx-+z8<}iEH&Bf zWXxlUz>lUTs{CStR5W>SDgHHYoDJVs#g>me6uD9sW0Ie zhM!_s9W=gN#LeX+zwpZ^`JP#pjAZp+aW&3y*)l9GmhV&+7@r%bqCBlh<~r#_&-9Gn zx(K<7{DTjroj$J_I=OGxPkA;;J>wSr8`<$PnG=Tv57bI;Uo|auwBcH_Wv`FzQ3!q&1-=$dBT{W*zm3=-iK`jy2ki>Kb6>;3P@JX6o04?$ ze)KcA7p`wmlz7a^){=b#$!nSA$wI}PsVvF|$wM9!`#p>98>N_Fb7bF}r;?`BefuYR zFS5uW5ohK3R~}H5z8j|J-wAAN_+!B;u5jUfd%e{{4?8w3T|#1%q&6li z|Im;BoNO8WGnuBkc^R8Pr(d+z_%9hyjH}t)MungA?{O>%hfkHF<{o(r*KVi=-XLvD_v4j9szDW z#9o7#s!Ljd<4+hDWN@^-w6L+D;4cj{gh~o%CDhd_>vbH*4qpN-t)Oluq4aC zd3Ucf=sHTWg}hh0zXoc;O+v41HNuYU!rHI~+6ca&LVr$5oy-rV_jC?n$(tS1(L53+ z-}2(+Q2euYur-6)ch~QbtApu6J9MX3eV(Pj-Q7_@S&)&{w03Zc?`>82k(|ih z3_)75L0U-3*Fb&55#}0^guR|T4}V&Rqy4jIM9g6Y1V&%(1?ys9UJE^5*Z+?F?WlMt zn2d7Dl70qNcjc;WDQE8f<6;(;TaRald9c2o0o}38ynVgAm#FZQ>fR43E z-#<6xfFxqRMlPzY4H!Lul*fFbzxt65MEz#?yA9-wHt4+1@(a`cog4zPqOBa=qG!;h zGI>EvqTVU;l-#e_yD33I#tp$tb6pyu(3j*==tF}$%I~qWc~lT14fRxzS_w^Tna(y@y;bXQ2T>qc_~}1r!@ji7JpBCwkyLzl{0lv?Ef(2vwbq#!8wQ{E}+nTf-sfo3bGN7Nb4`W9hnb9_#S6ELqV7M6}rOcm42&>`a~qqp(`A z5iK=C?G6UpwLn=cce!{4&$p!so7e42=;!sv*-S52el56<)eB^L)_B8IQ*)UuavS?hzQnd$>Dni<2It0)`&9jM(0#GdIzzUQTpyo~g+1?= zWw!+0m~(C3#xv(zGr%p*KP)Yoce$B~dz}Ed8Q+o;97xzBY7VyK3*DZX9HBQj`^CuV{@H9w> z{Kkn{WLTc7Lcw1hVR+VJnWzQlY{&D!=Pi!HS|BnDp`DmIKXwI?V4C4R4e_}*$ek?a zpy!+g(NqgkXvBv>&>t7A9ZF|R#reEyq4dzeb8t%hd;bOTeJqn<`UET8k9p z48#QUNrGkxYg1245I+S8Q#olrryJ|+;*+kyxkG&alk=5au$fH0^{T}IIjq|%sv-Ua zdWbH%ZWj*L(I3-J(5R~8kQuR`Y|s{7PJYA{kCw*L{9_ZoXX8LMC?3Boo%>HNZKtJ% zYXL^iOhhBaNa*R}ip|%l>_zq5-iSMYa6UMS&uZ@2CYsnRexoWR_88YQ}LM`Hv zuxIAssgT8T>)Wse>72gx2x6r6?ky>A`c~=O7W+knv?SZOGjR9ZyuuWFtSfH^Qi+?l z{lR-XK%AFG-XSnN7dvH-5k`(sp{2x?&X3Qh#G`NYhbhf)aCIV$rz*piC%up z586A_j$d>;})_pGCG z|8mpsn-H#Z0OxbQ@CH`ZO4@A2@9B?=VN7-<6NbbIZW9T ztT1lcsE7=(}U?+XcB4iSvq~ z7G}e;q2gcSukkPP(k)36bJo78wr2CLV1JK?m&0_eiFItmqK1T&Ox7T;lR@R<6IU9tqzEJ=|(Rg$wxfbUYjpr~V7 zF;-f7LaRJ6D*fM7gU zA>mQ8*c#e`4xfhf{XyzmIYoDmjmEs1xWm0Zz-Kus|Gc#P%0_Lu=Oh=NdR+PYO0oe< zT&y2AXlNX2xyr`B;=MI(hcFaG$nC$p*c{O`3)yv>=#W0okl=%D9e-XVi|_lTwX{Xb z37|Z~*Kf2>vXID&CR1k$um_B^@M=)6<0QzgFJdPbG@i`30>b4A+vw4Hf>?k z@Jw7kJQzF?BVV5V!};)fGga?i-hRiStKk91^5GF`E3`7;=a=yO36ihK@aEKGzJ41w z%~UW$CIVqxqwvs<6;JV>aRmc%*(%Brg;@?m$W!K&y z0-w%p{@G^f-yYcoEbY+X#v9{fQ6|#b#w8UqwF86!oJV>T zAJH(Kt{KoBh1Mi4JVaHn)$x`Kh_K1ui9dw(XVW4@HP-V`!xPo(g!qacr}1gm*6RT1 zcWRt5QMNu6L(63D${eC_}zpq%^(~sU;!^S_comy|4tIw0(VVrRjNN0EZ zjCGXkRSDg%QVHg24X+O3%Q}DkVMU|*{&4q05A;5YwkexVMvLz%nqhx3eHM%Qb!|K8 z7k0^!vUIKO&0|@dpDLd15K?+~G(jOHTbqreQeuH^>j|7i97t0AmmX+@(c2yKb%Eif zfx?OvR+v}FvJJB8v&omZKQakjL*5ucSWq{AHRH-j#CWjt*qDibhcZLld$nce22*S> ztfb2scP*~2b#U2jsff6Z3n>RUW7Z$itbP<9jXS`%4h8`L^83DxPZ|F$?L-j1HlpCR z{#f2+t6D^WT1KYjy`R9)wrMA8$5`NM$qYWs^#Swkut_$u0p3SLq>vf>7jB9z1cmc@ z|GWdY{3A#m`Dwap=z1EdR5A`m6PPio&!`E{5COXaX2@$9SL%Jf0fjUZpGM}p9Pyq} zJxP#)8$jDa!*T@6Y$Au z0dj<{BT-2VH5uS&Y$OPpv5G}53U>|*(L$I8l5*LY(ix6yyo+d@_J#}F60GUU8mx&aU(1#1l(S5$bB4ykxxzCP#lvivdNDHg=Xr%1o^N>|XyUrN zaG<0V8s_2AdgI1TpG-ELXxcj{m3iDCcH`)FKBcs*2K6miInSB*=aze3MEWG&qm*rnQOO`q2wVQYW zo(cbFBiwDqJdB558$sq4_zl`oZ<2Lc1ZC?bxlvpwc~H+`{@onEkvXR@!b`RoTt%6v@IJQ`pNsh5Xb_36>;EyuJsAxI z@ih+9p}a&nOq;8bffNyMFXf5CjWlMA)462}0MK4Y+5 zJ2&=Do|3dspoz~rhB8JJ0;^g2_a@j~{qkyLE(#Cg6ZkDVkBb0iyG)Xm4%wQUM2l9B zKihXNH!{EOJEc}8tTHZ)4RignTuxH7z{_Nwr9yLFFdaQ1p%q>I%~A0p3%cv5}L8y4it zoax(%kFku+JeMRh#UeQqXPqQ_f2Ld0<}oHIK3L_X4R z;4q{FC94|ZRXItfV?GO$E=Ws4JyslE6kG@^f>UMs>_bEvOg9Pl0mhP$PpF3d??3(b z)A&E0jm8yMKRPp|SYrVDA@JxW_&Y0{ZG9$8cONTg{lA~3hk73n#``}jU4VD&C6qBqN$TV%ff^tjLdJqt9prNCC$m2F_ywH3=P^Q^ z$IwB*|3r8Mi5*v{WX8V}48 z?aO&6c8F~My3-u#G>UvF@>uw7!POph)C8+T{^|b-!uNs66Bl5_NyN0%izKkTg}P@l zFBYTQV1gMISYJZqBo45D9!Vm;b;70qiLD)ZsOh?N#r$tt)nidh((ZMQ#89kcQZP}{ z8ZQf5>P72ozQ*5;H>v@$ndpaV(R4U6N9g%U_7AYXPQFL1bL(W44^6*ij6^MTT=!V| zgjTVbrrrgZowz|N!}i3@MG~3Ir_A~>m`cJ{OBTGEf4XW07ZQEjv69{y**Q~q0-yVb zl4Y4>$KAb$-hptSSX#T%X+~H+h!&D-OD0q3GU{;Hm8{A6!UH{2b-O`V-q-Y z;H!Q@7Mwq~2&k$xKHlYmu=bspVD0Y9)Bo+UL*+?G+HegWpxT;x?>BG{wnt8u$NU?&#z1%)W^4S)!i6 z3*wo6^x&TD3wfH!`igrX(lYJ-LFpE}bJy^R@6v3ygmn?G29|3qq2WO}k1u)BLsE2! z3D(DR)f7ln__y&1$D6B6?7Rb4*M6%AaJlCZqqzTI8FE4=IY_0k?UuB?OfAt+dR65e ze?5g5>)g;rgU}fg0LC;2gJ(xp)AtD?)ROB6gF~r9;L3zUTAopinftPq)yV?ip#y6- zF_Rgqk+QXB^i0e($0b>~#W%3}`_bL55N}9pzsR_l^^x)VWB8Ih&CD9eKs|S7i}QGZ z+)3Ys!rw8C9L`4^mQGf1YTb;w(tj;2{G41AY24&kC8@G0xIbC>v|Jek zl{ZY|;w-adzrgIaQ?(>_@Mx<6d&H>$nU`=Y<*n&Ks^3-rpK%J2D4besZK_KzPg@tv znPQa)SbMT?&8CC(ccMsg>EtD0uOnHQ{+t4<44B~H^nS~_S$_7enpksClEAqY8JKmU z4-ws+cEI>GCRwpU?cLlf*0zXHUA`qMI3vfdea`-GSyI{kSjMYG5-(Cy9KA%tRa+X zWH=e#Qi=Z|!!a&x+lGB(Ds;wZN~h4T%cvzZP0~zmzEs~ljwvIM<&*U0j}TQ@jZz<3 zPa&3$@xb0*Ar^& zN^W`cTjYla_7)G`g2DA{CoTQFuR^)>qcLQ<1#_!7Dzo9;<3 zJHBY%lqW|5h%_9$c$@j5+SF)S-Ih3CX5LgQ1vyVBmh!u`+`o+PvnSNF%P6?6>=C_S z<_jV4j|lja0PxwO&E2b=_R1FOs64oB`z>)KMWbnFsC|P2cWr(abH=wb4L7O0PTVv*701J zQsWQ*Cx7+-Dz4k}9HMGS?fyT8lmE`Z{~i1P_Y!3OVA^Ft^9yZ6q=h^`OsdB Date: Sun, 23 Jun 2024 12:24:08 +0530 Subject: [PATCH 38/53] Update Tree-Traversal.md --- contrib/ds-algorithms/Tree-Traversal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/Tree-Traversal.md index cd19515..1fa6fe5 100644 --- a/contrib/ds-algorithms/Tree-Traversal.md +++ b/contrib/ds-algorithms/Tree-Traversal.md @@ -125,7 +125,7 @@ def printInorder(root): In this traversal method, the root node is visited first, then the left subtree and finally the right subtree. -![preorder](images/preorder-traversal.png) +![preorder](images/Preorder%20traversal.png)) **The order:** Root -> Left -> Right From bd26f9766b8751aa859a04bc4569ebd74049714b Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:25:01 +0530 Subject: [PATCH 39/53] Delete contrib/ds-algorithms/images/Preorder traversal.png --- .../ds-algorithms/images/Preorder traversal.png | Bin 53953 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 contrib/ds-algorithms/images/Preorder traversal.png diff --git a/contrib/ds-algorithms/images/Preorder traversal.png b/contrib/ds-algorithms/images/Preorder traversal.png deleted file mode 100644 index b6f999e385c1b0104adaefe1cc42d5439e4b8210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53953 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 Date: Sun, 23 Jun 2024 12:28:57 +0530 Subject: [PATCH 40/53] Add files via upload --- .../ds-algorithms/images/inorder-traversal.png | Bin 0 -> 54598 bytes .../images/postorder-traversal.png | Bin 0 -> 52294 bytes .../ds-algorithms/images/preorder-traversal.png | Bin 0 -> 51854 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 contrib/ds-algorithms/images/inorder-traversal.png create mode 100644 contrib/ds-algorithms/images/postorder-traversal.png create mode 100644 contrib/ds-algorithms/images/preorder-traversal.png diff --git a/contrib/ds-algorithms/images/inorder-traversal.png b/contrib/ds-algorithms/images/inorder-traversal.png new file mode 100644 index 0000000000000000000000000000000000000000..61b32c70fea959981ab285f21f5a0d9bd4f7cc79 GIT binary patch literal 54598 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 AMgRZ+ literal 0 HcmV?d00001 diff --git a/contrib/ds-algorithms/images/postorder-traversal.png b/contrib/ds-algorithms/images/postorder-traversal.png new file mode 100644 index 0000000000000000000000000000000000000000..69ac65906b2a0ededc9195b64d27da4e64778c90 GIT binary patch literal 52294 zcmeFZWmHt{+c!Lbq&1=#NQt5Xg3_IWbeFV>bV_$C27;nUgVfN2bPS~;C|%M+N|$sA zJjdpL-_P^)S?gWv{qVl`wbr#*jKJ(U_jw-2ua5mnRaxdV1vLc#L2~BsSMLc;`%kQJcRgKcceWOo>Ov&o6(tMJuYvp&Do?kGv)zGtvOt(la zzQw4|64@d7DUHmO^@h+u5zcSLseL=v3%}4dEVS-oKE3HJ+^`+Le$W=Z+qOO8B|2J^ z@XjHc0Nx%&pDy+=cnNT`f7~61`;b3Jo%y6nIf(9o>5xy6(!TKTIW)ah6>Mf3MxkdKjGE- z^IPxLZpAwUW~n9zR*VInRNS2ZZD{#)&a2O(i^pNmG9#upPah}pY9n!jtYI!A$f1Wj}G_qhfbnU!nbbFOn3baVA1R|_N!(#tSrup_g?#T zt5lfA_DmbglKWDYF)R~GNe}~U^e}oZa(%ROaiFNxVeIAw(Y}q;*%Hq9jnVW;=PtD%mxZg&6+>4VgFd{9UUI-+dDNe zXOu_$?OIr%w(CrJK2T<#bVblP6OVmZ@NLAKEQH6px1Zrw#3+2Sb8b6luXukPWY!t@ zpdvcw`09*~5#`?2Qk+9M;iP=n!z%Y@-^Tr~KmHa>j=gbh+~LQKWP=LFtrD}A==Xmo z!^J8^UVXZw8_|JtTM2F#-EWDc8LtjY++Hdh9V|BQ$y6i1|Ke1^+=I8&On-j9|BfN@ z*%=QZU#UH+X{JryW;SUEmD_=zwGreAVGYYljLOq5yGesp9o%T7_ltKZ=d|ix`+ipJ zhVb^V6Z!gds}mDBIq4Z1*-zX5Hv5dpLxQ-X6h8KP9m0hyYR}BIiyakP#)$d(ep_!B zvlmm4_q-btR2TgH>ql0(w3SH*rjeHOL7viOWdvU{y)oB) zf6oYo`YBH)<&9~&FVBLT&(5*&Y>OA*rQfmmogIn4wYxS|WV*XPqcV7xZ`k3!y66`J z^-rYB=cnFKvAXt%-lgC98ON7D6!$3T&By)Py?Iug3RT_5{jS0%KVEBY=Qv*3@z&yG z`l1*PYd8AI9**0zhWdaEz0cF`Y*kWGo$y!ZZw>mS%7lwrCArV+rF~GA*Jd{w@#41W z?^u$P&D74*lU$wnVc14bAz5hJJnbm6K9Ui(-j&jn8?{Ymh;tRmUVKPk%CNHI)F#kK z!rhoMsjfbdCilT+Z`i3_$(62p?DpUBip9d_u)&!n9q|u^Rr+OiuEw5(#%|-^o@2RP z1aF$Y%PCxM6KbELq@?qlO-}1uryKRzP8f=Nch75UF?FlVvb$lqyCmMx*ouH3h0?`$ z@}Q(XvYcklviY~ODmV9uO@FX>7F*R+)nw2#Lt08X?6p!Yv*fq=TPK`FLsTVEm^~^w zUo$JBnW+itRdze8LHUjxx;qQP89P!;>N;{xP`A8?=nAYk=m~>ajZP_{N&x$nL-GIj4Y%SJI z@u#q-8C80+ z^(QYAGSlxQu=wSELi?DNFw7s!M88IL$lWv5DC= zsq!&%Qbd!p+n~b2dp);P#P^t!^09)@aI!Zg^p3Og%GMRrE%Dw()6`!W2^Skt|b=maO`vHeF7es?UW} zdpuJg-QXEnSa4EK5d7_H-el}|u<2S`d32lp=gHvit|IgHw7%by<015}USXGo-5t6P zdrpXol}xf%&ZY!YP_dL7OsobF1g;rbfBUUt?9;OzX+K(14cns+Yq;Pj(|uScBTwnUh=!Ma6ZK?Fo3(ch^at-~M6y7`#2 z?KMV8sTo#eNxN|rHqLZ*4z@7pNq*IuygvJ_ME8xptVx~^s-I(dtSfuYg%F*J5@eiu z#$(m0HBAdqvN)$t?zH0Sj53Gu?Oen6nJRXA-^IkQ#&K zR@+|2FKGwmN_WrDVcmx|pwyX^#s0`Ns`kW41d(hROhcjmlp#Iy_r+Dadwm8@Zx8&S zcCBpDc--~b+u+Er-il>a`Y7V%x<9-z>odo{@~l_ayh0>d$Y9(htJu(UE`3W#=;+_N ztYKBj-`oD&Jbjh7SYHXRk2Mg8JM(eP>BPPfVYt`P!S>RA2gB;gyH$Uq^OJvFteP?Q z-JQA#H`y+nBP2*DN^mfONg-_4t8U-${h%8$O1$_QTHwrJnZ3OoZi)A*;)$+13YM!Z z2AtkIf79gK_(r`yT%bwQw(RLC7yI`&sF?|xc7y`0e$(WJpNB*cA6uRom%6F(QQ1iN zHeJ>Bg;T8`BdN7mG?u#+rBaR*imo&7$jJpf4}4zZvp-mM>4L}CPurrKd-7f@n-3## z&n6oNOg5uMeJXu?p+GE&MjjmQuS|c^w=3{yAF1}Ty*F{o2jjiFR$<`ivG%8+FM1?j zG-ummxq90OCswkem>+d6`^#B6;eL|gJ+TYiBno}oJFAn1?5mYqSXMPOGi>1!q+~8G zcx_xE4Bwm;JpEDoZ`?&6y4Lxvv7obqM=C{)vjSGuied~WyJ<_f*kSZWqTAA-X<2~goZ?daLbdHk z)xZ>Gy3H@uAASJb*k_W839}!6e=#t|_Sa{j$Ri+|Fyo{1w%GNJquF8Ru``i+Sx=!A zy5?9j+;dQ^%g~Ou?8XetWfRSrUn{BOo!aF0SbG{p5vIqo;bG*vYpUaDb6ktBS2?ZL z5uNSNyL4N@N(`rG{d4l57Otlp|H7L35egNS^WD#2{QT+6-^^kL%#KVl-P}cjH~&84 zk9P1nzj*m=oey>Y)!Pn9Ghsr@vf6azDj!vrMAE&(4)ecL>6Gz(RnCfCyKK+$NJ%W$ z`yMy3rB$P6_c_wR6%tLa@VbF-gz4HhM_Tj(!Z${WFk`2MYs^|>?NrvBHvEpZ{p2iH zNt(Po#N3aJn?m>^3o(zBE80Kwy1%P4;W5$TpQ}_@INHFB|6a5NfLUVMdCDnZMJ`<7 zZgtPH5Y4HZaRW-lN4@&?E)~JSSM94f<~+WJj*~|kZA0yKt&n2VEB-P?r*w9ynsntH zzsTQl|D((U<_yL&!x>qj1gMw1cPyf%=h(k2cUW^&^jIWU6>Br}5qf5csN}?0Z_cZ_ z8@hL0l}X0lwj%i3TxvUHQ&!Z{!5^inEvl2F{wspXaG9*+h6MqxIC$@9N8;q6<@2LQ zb6lBkh6+S8=+BV;mNPsrLamYfd+h#!7N)nPPCH~$g6)>2OZxee6LZnUzGr8-W@p4t z1`(prwq#N$skd=BNo6@DN7+X?%xm;dM6|9`Ir`onxrmWeX|cyL-H5QfFAr)z& zOl5Tgpr!^oCt+q(r&p#yMWKN6?7NtIj{}E@7-Dk`alM+k4?C+?8?H_RXDO?-##YX= zaCvT6xJkLsZvPmra56lDdO{RH_M{8wajR_^-V7m*7ugLgC@CpzcH0t!TDjVVO}Y>E zHo5X^_OcN=*Xjj0$P7Vhtd|1-Y1-lvI80tx{?67?7rp+Piq#Ct+*I0j`lA!#&Q|!! z5}#qeqXV<1kIXmiN2;ce4p)wbN2CBZa4ij$@c}yF1gPzj{%g+dgVFukBEr+u+&}HS zHs?)^Jm;9!yH&&ngi%t}->I%KU}g(_fx;QGSHPt-E%#m5!5Wam+9^D&bk4%_L7ml4 zyrq(ez@>iYm67TtQMDSWSCp<^K)D9<=wj0Q%9kq_49emGmj%T$gP2s@B`MR;t#+1SUhdY>Y~62A;gWz#P#-J+9VAinm?t zNDgYvxmvGlo)GCAzm)_m-V9ca_b!VNO>Q)>&f&-#T^u1qH2cHVUfZ#(*z#`(aa~eU z&hN}ryS@(Wu$&UrDJfQKp6G#@>r4%yUD^C~D=8WnU)^CMvu37h7YD#4J|_8(Uv|%m z{p%QZ=`;N0Tjo61^Q|0z6-JRi$&H>!2m?SyTa(EDi;Nz)Hcz(c01J zY6TzQ1*O)SO$x?-v!rL~Y??l?S>voNYb$l!8!e9z#J26leNSs@sLbAt=~bKPzRmhV zer;tuhq2FQIH3ec$7 z6zMmEjw+APj8rU|_du&~sJISW?$Z8|dw6jmy8UYqsUd}U@mzO?N>_WO@5+U{M#D=S zW>Za(>@LM1@MKgR)t^@>-X~i1A{5WPhL&jQe6-f17|Z?3PD@u-j^O$2Ow~8PFiLSY zeH6Att%)K->6B~_zcAc!yAAwmOdXZ-w$j*>`?CS`OaKmCTj^=oRQS7Y6@Rz`q~WL- zva4Cu;!q5+=Uy^kTH^THdvbKzh5!Bij;)Udk!dJTkN?JBJ5%|AB6BxplZ$M6&YEQ> zwP=J#G-Kyi5_Fl(mkH4#u1kYc>N3NQ&1|kYx?gVmbyJ5GTI|IUFb33Gb2mtFkFa$B z_nK2jp|6rjp*5_2XPX*%uSyH?HhNgzEdNuTX`y_$G%JMzwJ@K(uE)$ z-@Unvp@58lW!SB02h=~Y%zEep!!72wCZg->7MGa5lR zX!-K^J0j^Rmf7JK3p~%D7|s=$5unh4P#ohjl6(g-z_#M1Q?i(ql0@-6`NpG|8K}z0 z8HgkCcb7)4P9j^cB>S{v&A&B;q4{$*Xhr~$MeWF86_|;4n#B?`EF)Jhj=muLZ>{;R z8T>N_z$lj61f!f_1$2+mY4R;!Y=KE*r8?^6-Qt(924P5TAh`xQSDQ1M5enozF0+<< zKv}uIhn#gwN1=@^&Jm!-F8dyA>IfxH!cQ0DbH2&ptGK6w#eSeB&IQ1QHGUqzvRD0; z978>ji3Qdoo64@X$26$e{GOBYcS#B8vtX%cwM*3yu<F6l|5>ZuU%zw5L3jefBY^9`GzJjH-A7xUuu)fY6H!E1g5;&&LpCSW*yh5QWC zf2?{kCE&KsJqm?ux8$Eo`(QwULfav?F)dj$OP!sn%4VRj;sR>y;qmoq<5hnFxbGJU+56rU>67cTso|A0sCrU8SS$V)viU0ownMxcnX1?H?xX5y|MTiq zyYjC+xw_p`-&7=i(z*?gJEG8H$em%JwW8XEo81bGdrAJ=WO|fQVbJid#wiB6bI11= zibtG=ipcN9{(|p+nxonyL6i`1QiSH%f^196jD%@<0tVj>K$ZT^NK5xV+?~1Ucld8Q z$?x!4`V~HxdCjZAvpnRIsCrgpp#wY0pP8)huhhnAC=2}X28{{J?c6T19goPwHmq-q z&Z8!%42w`GviD`GOgkr&kM3h=f=Qd^WM%f#Fbv*wTa#Z z#dPryX-`nR;()Uch)Xx#Ci55zASIJT)g?=xK>4HD3@dx!x0skSA42WE!ejN3)*b7- zwK$*zBDrFT)$bPKO9qeH1ZHTw;t3+3tqVA zyx7l?EAg^we;J3oUiP2k70U-iUUdoDWMnYNNhK|>ZY5eEXHJI@wHg2r-=EteK$4i^ z{h>yd_PJj8Mf?98EyCau>%Kv%p6hQ{8Br6bO_1~UoG=LV&7LR*smpf>8Ags*oB}Wi z7roEM`xUkeP;M%JMY2Z42)SWd3Hmxs;=*(9zh6mpF-$4YDQ+6qcq4lZ`4cDM zPcSUA8I*T`W`4cdCFDsJng7EF@P7PFnQEympbXjar6W#ASAQfGT)=bq6i=w&Q!q6A z`Sqa@u@u-Z32J$}kk(lDVKKnVvD~h6>!tRiq6#F}zPX=66}*Pkd4gCltyLcD2JGA; z?kDg8eUtgMhn#>T!Utaeh4b>bjELmam!aI*W!wsHMxtjnvRMttQS~ISrC&A^=$;NtzdR)50U|8%qdSuV0XxL)Z7vLXgQ{#B z)9_OGaA&e~5kU=Ko4_Vff|F^Z%iZnq5L5|fwUl7iUwa#gljH4M6F=T8hs-&1qT$l_-LxBwS=GI!hOM%uBtyF-oP2V_$<@ z{c=xSJ1erGstH@&qT_R#IH#WFoiNd$?T!mS&fijY_Ij&Z?O8$_m!@6uXc!C{vzfL8 zc2b5|^h=cZDM5!Ze+8xtg4q=2$Bl2Vnm2^g+ph!Ie1*r{>|L(2Zh4*=r&|ma{VnZX zbs(-fls-KaT9wY0>w63NaUd@KMvNUq1>^+9y>uTKignHI^i`+*rLrM!D*!!H>aW(O zTNl)2^eY@qdr0lYbKxlYUv}=2yH%k%Pv<^HpnuICi~&HT?<|K(^VoFyay~+fm{ISv z2M5iSMvvF>d=6>-YU@(~cyg^n$o~Me)=0_#gzl(UBTTAFO!Y2gB+c8reLof|5xiQInyrbLY zTCi5BpPt6fj#v}gYQ`WVF#~5%EDoI=e)@Y;QZl`r^6luW5jU{Vl%Pi#yy8G019ZQl zfS|O0Hcib}%;O(lO7aE*p$I0TZA_Vpvk&Xb&W9PWd@)EnH1Jv~aZSRM90I6m0ZM0s zR5g8)v7Hp;uB+;qNO3FlOt;1@?V!V197h&)v$SkdZE2+SHU#M5JVujA{(){FuT36) z(<*ZB-+Fs19DJ(`Rc+SigrPm|8mtS0nr}Yc)SCUB6UDY}VP&#pTxOTB)Vm40esHbf z?bRWUTZPtr>|UoN$lkdiRfOYaUQ^cgLJeG@%;^(bTL)kpOn=l+mTU4NG+ytNq340i ztZJ4Hft%dOe(JKd-&&7)`bu+-yG&3IR)rXC)%th#@(PYx*!{~=!_*W{>L-#SFAv&% zfR97#W8~g7dPh~dW2mQW&|A?N&X+13#=o&g)z}V|#sHx_woD^tKjUVBq?om6OKHvZ zrV;fSx+Spw8r<;R-&`U2(SCGw=imehWr{Zleyvkc#&$_@h1S|lE4*K9pbWaA zymNhz#JN+gFQV$RR0Gk>55GL>A-fr-TWQ@W{umxsrK{&=5V* zp6AUcB?FT=)KG;tp=OA;bS12^8&>wuJu!(f3+^(1doioE{vyA%HbX1r&DbZN^)Jt1 zK;(BK8^kwLe^qGSZdW$4-jjDyytnQ$av7a^=PRA)?ENM* zJ9|HtfV=C+)Txprry?;3qZGZ0c!NSEVf_R ziRLtYEkr0@oC2%Jz{veUqe*ChnFmZWcB>5B@9_@c&g)x4_KgRcd8SPt3%c>j(f7Va z28Z`fb>!+$&m=$RI(gytBjD3g)#uk?0k=w|3>>}^yWZr?3q1tmB^I|_+1#c$ zwL}m0u-8Qt%~b%C{$HX&^{7A$Mm?@e&kLttR-Sj6??K#mzBGcL0h;8!O@Ctz$zN#< zBCfMWKn$jbR>ZT|12_$$R7}cuW28B&R|V$P(;0|SU6KIF8M=#aCj_Ehh}D1a^*lcd ze9b8bAU!1u1$~o=Z7$0Q}>@XJlVPg&rCFEQq|V_6@;; z2&;^wiPPq<{rl~t?a4kW9fNUst_L~EIs3Gur~P}NVxu?}P0-kiY3d^9Idu(yO**k2 zBZmJr4y7y&WC3Pm&SLJ*XaxK;jWV2;S1)_=gW{^9m41!4hfb`36_swO&6Uw}{;3Ey zeD|0_vWNOy8-rAp{K9Fz;YVebYUq?7%MLbzNkA1Vn$wkYKCqGj>3P~8h*o>Yq7=(r zppW`{d=Y8jOu2diM(npOKY&7H2CgN$8#jJRr|e4|RoVMe@C@jks$N#A{m#+3%SaGJ zm<)g_21+ZA67?C`U_qK$zd!$Blzt8VfA>-HvJ`V8U$NEirmD?eedld*HRz>E_)3>> zy-`yj$q24ICz1qe@V%AlZMxAb{x=ZVEs5EbxDg@o(i^&s+1j69>`@lrE}yt|rTE$8 z1KeRFRG}4lN=q7oqgw1I3faRtFd zPm?tb!2hs7&U5$tVd{@%?u!!L^(6O?qWE~ebm{%Z!MU@$%bDVLbhst#Ir{hk;W-f* zWr3*+LXZ6`eQf)`eEpOT=Zd*BhgRz>O0w?`N?Z!cWa|ir&XmR*JeaA2ia;cnl#GK& zPA|Sjocqs)%<&92))940K8oG8_L56qwp!|oq4QM$Z--Vkpv{zi#TeZZNiGg1c$=bbVr}uxg zln^nLA|2yzWZ*mK&Nzd;9;O`NqMAn6#b-7GPqN=bKo~2zQezmc?W1G{Db{f!@!JTb zt?8&_$S$^W#ekJq-nDT6zyX7Ffe?r8y=(LAQRnVfZ$vD4ZbL3+ppU>`71>~nSOAC9 zV7Hf;+$T9r{YO416@{_rOo3l&2DKAn3dRQP?jzCf2#G18&69k3F<^?_#}WHKy7%A& z3e8z!<9)E%H{HaV@62R5RA3U4murWw{C(lh!;VN2m7}QMGf3cuRf3=SbBE^7WKB|p zMUs}2ipq?3)BF8gl zmFZY(>@%jXLscG59fmU-M+iET`^xOUgS3>NXe}173oT!qx-udEP34FbU&y$E#Vr?3 z3Nh+3{bhA0MvKhG5~F^;yTWA_T{hy`JoRm5J}19aA1-MhEVV^fP$gZjl2b@#Yv;{7 zqQsFu`WfikphTNh$vcp&2DM7RkH5KF^Cf89ZDnLh9&H)BJO7#$>rnA`4>;_i_8VP7 z{}8M$%3pDn@Z4$5-dwqu65j()jciTkb%4-u04Z?lJ74$Nzw7cmgmY#4+Y?S=E8@V* z6Zl_*ZgvyMzr8CCKnJch6i~(h!yhmfZ;=U{sY0d6zGrle)3xr+Es%Jrrw5cUO$xcj zkDw~VLaB(;%F!MWnuox|GcU>R0uvder$VY?B^m-R_{eYe6c0c(jpz}KPy-o?7qU<# zhC4Tv<7edw#>kM4{sNLqKMcS;mwPiLvis-5O}FJ?3@ArtpwBL6nk|k`ztpiugyc>^Qi%iZOpa2H>10Wt5f|*#($l0fXs~jHK{NgiERk=Y}=7ze)1tgan{J`QO zyK4*ku#8KR!AS6nRn8Cu>{bAI%Z?}q8$eqA@0iIf`>+WfQ;|9ba1i^&VZ?CDA(M!>@31%&bn@D6TqsXX`;&y|A z?%QU@eS)`yR}U{pC;d0!Sy_HBL&rfxdWIXShl>{hgAelFpP9)#=F+1SL(b3|$W71j z0Nt<#7C9x4KCMoY)}#Wc!N94N2iRoT+c_@+ltd>#irgH{NNuf-bG41S&#l^#oE1w1 z=hqkmO@o~jHFw-av0$}F108yhdoq%xG)E_&7s}-`rk~kh7C+Vhp^m%AqJupygdqHr z0&lZKqNHgG0pEb8m?CC|4y94qs4vd2NK)e;Ez4LO)x-5+DALKAI79R;<8gkA~qHUFq8r zFXMqqO&2z^bAgiYz=U$(hOJ+x24&+(qjl&Nu7=2+NuUXw%~5yV1fCLGrO)GWWzEF) zP#lhlB#su9_5yi_RGM~nbt+bEZs-m?Al(F23-vn_BGqOJ3*Ke6kf z)DeL}_JPDpk}K9Q=Upb?;tbSl?+RvmF8 z+Iqa(h{sl#VAxq=bnW4u^+WCITVGDRqehNvM6UYdo}CM)Kh3E0tR`chL7wNdK0`m& zP-q=m^QsS_?2E7SD3pT4PlzZkI5tLMd?STcs=DpQllVs5zhkE;+j=t*N@@q}&=yCG zLT=5YOXqt+wV;qbV`?1zFS)Yf&2o`!$!lQ!Et*(^n3eP5lu+au+Sqgp>lNeqITVPm zsbdtc;Cw&>S-SW>gF(tLlTm`T$og$Gl53$vt%gBud+C(z-4@H!eCABM6(nK!G;*}r zmQ(h{^PX^-w{b&?!inj9@`6&HVY)&TNT(B206EZ&#bz>4HVU7j8AtHz(31w(7$=ds zk@w{N8Of&|pC#n-3{evZyhUd~c{R7IoWtB19lU2d$c>agJ!wYSybFGZyBSM@Q=|ue z5CU+2p>0Eo7J^pGpq#~-DKrKVRR<>BsF8)b0HW6WXGQ+VquB+^ViRm;JCd>W^m~3; zfvDBDaLdsln&gOVmC8u=p2MUe8tLma-_m8m>0B4w(2S5dDKcaw5&wtK(}@;n6czwA zXk6S|fsXaCv$HyEJtQxRSbPH2i^Ax9e{?ev+r#Lwg8N@Z4;C*qpY zNG3DS4)M9lP!mMREt;I~&4d1>Yl5U%btn%slZ}ck-e-ZT&nn?b z=ezT`JKwnW&d~f9k99MR+=m=`(*FENrRT8O+nB>Z0FFba!WzU6kA=Ll%wiHtsN>TR zSZrFGQIJ@NPuc~IAoh-rv+mCAi)46w$lUkp;%+Cxu`QXAc<`+A_7KW-CT$ju~^ zl;XmH$p32!RnLi>1d`MAqQk?_8fiI3UF6)_w-*OY9H*L~g3kh>DUf%HH5A!&CYk|W z|5h6f*-L#uk~0Im#2zAEd8X2Bg)UO!Wu~-B5`p;Qu_7W1)(Rq}OwKE>fgxf70d0Ha zr0E1cjL}jIc-dQ9fq1mAKF4c%!w6SYzc8cR3g<=%oS7#R-YsxGmFJq>PS)RqsxBU? zYHHy2byDreYbqr;g$C?3%w)R&WDMCW6W~l?p8krMhG;CD)+gl1?InukwY367VWE=| zrc?a-vPQBbF=D54J^pq=hw|zMetD>@9kE>_!HWcVE&fp-G(MzbObU{{hrH?lLEEZ) zUmX;B6LzxqNUKGpQ5ye;60n!01n_K$pg9_rvnN7~{O403sdoC(PpYM5lVIEUVt`-3 zaVmy3=6{>lenc2ri%pT$Z4J~?#R*1dIIr6Q@e_(i*aGDVh0-^Vg#Hp2P1IAZI#6ioRI^uKd`a8{^!?ZSmOmT=_{qZjuMZ+MyR&6vHdC zv!rc6Til9=eMoPo;@sWtFZxDQLmt2tw|(tFDdO_c3Z;)J<^@@i3jwrOgj@5$_XUc^ z@02#F|LxDX;cW2)NK*4glkt+h2fe3WRECPP`oSH%QZKC|@ihp-zdZ=mb7HJ!kOF(! zJbVS(zsEM-t;l(*7#JWgnVNXkHjN^h(TcdMKN&2N!CnrZ2U;De_?aX>J6tkx*LGHW z6ePrp?C^q!$v61O3CJM^aC+(H0`xyv+(yesV*Zoi(29Oefc@gRkcUx85}ihJq3Ksr zwNY9fJ%%!P*OZt`!cVu_qZ9KfvZLDMd)CtB*UO(xwgBfJ19gFo5aRl{T@e0SvoaFr zi+YzQggu<}`NlIR z4pR2gMoq!r4C7H9$XB#LM9V76U*u4Mw30Q)Bo@GbG90+dK($=va{FKHBXwSKZD*Owx$Z zZtE;lQ^3;L6aL1?-+i-I87?*7SIqJV#FN6vJ&Tm>yqK@tqBn+nY_rtU%Hmhr)=}iZa(gC7ld<#Im@H1$S13cHbX)SMLt);s#7q`iBckJV9d~gZ0%<5GI zM2!pWsb)W+o);~O&&zgI(12Z?@RpU@qO@#ns##{ytFxzluOe0N#7+pnZibWU>9Uda zvR;T7MoRBJ=BOLj`~96P$+d~7rr~~H+1<=_x!&`7LMuD)edkfLz3pHz2SjVb4P_WF=;f*=sc}8A zR64DspUZC4=m^_s@EJ7(V$)eyRUXuwRWkd`ZXMgtP~ASQcIlRj%j-{8;+Zq1An2HZ z40KZ_jOHeQYS#c6rGQ1YQ!%kHe=``llR6cT>O{hFg`Yz;A3)gR5vw6(lT#`a8u1?! zI^~022cm>&6Ra<8NE6wz2yEM1aPf z+t;b2L}ZAD;dIhEO7l`5Ua;t>sZ=2LYBWY-A3FMHH`k>-g})WVLypFE3;SrcXpYNl z!{TmE*|l{`suNezmvB9_lrxh+)tdzT2_@irW~T0str$Fd4B$gGV>-*y#F;DXO2{2gMi; z?~)Q<8DDHO(1qEC?p;y!)B_HRfs__Y=9R24b7}6Lqy0Z0 zRCs~6MVyja}g9`{8#>k8CMVIU1JpBSACAX#H!upBNgXl2d2 zlJex$#a#`)G}X*V@i)AlJuH-=Kv#z%TT=tfcGfaoPWv*?Q!qalJ5rWyrFC1DxCnsntJ@Un_Pd-q@;6uj++$b(h-e zcPHN`jcTrh#uJ%K{0Ab_&$2cw|GIG_uA2g}J>pLcL9PLJ`b9&CMG7J6J(57tRfX4= zUe6>`xP-oB*#;-+Sw-#=q6cM-!C-)!YtAF7a41=WLL+mXn)!N*tL_~aTD~gR?nA*F z%(AR*=L2(c9nu@+)s2`>fw`haH#;C$Kd%0@n_@G$rSK+H)|0yeD9#thhrMflP|uyM zt2RZ;SPW9EU{e#h?!zf6$9__D);Syy%H7ok&2azIjFP3H_lSa~`*H6OHc_9eXRkxIwUyuyr)g7p#B8$AE{q zLM8Uvd$f5EJPn|K@hW`>*D2&Py^k_ z8mGJj5ICM9%}U9oc@48qJa!g2Ka{cf`4+BrZs5%&NbJPW(xEuq*pwQX$vXWHETRQK+>_qpyLympdyNV=TXRZDZH3pSV`HdJMRk*;+E}D_+~dXe7kqe6LvfO|La# z*)KA_Lxmyhh(ecKc&7tl8wkJEiJQpw1ZHL>@<^8ip2=%mhls+UNslM5)3jn7iNilc z;P#LH3-0QGb{(X7a1qzJHKGGAoE{{7$AkPM3iX#Z=r=M3{Xb#w6R-;ZAB)Cwj6+A` zgQ;K1u2eX$b}GGHfXCCeqwgAv7I|&km64)Q3^nmEA+JEBHiuX%h@gawG=Z7MhlDeb zEK4hF(G~!_w&7|&Y7sI7Je1c@cvb|NU{->lT5I+8i1qqEGD4KUyA(rUW(LJ!&{IQS?iOc@MVJmWEB)f9^uY z3qz%7;Jx|-aSC}?M9Kh7n2l6aoY(^vO-tn|O z5&sV$2x1vwFZ}l(&I7?7iMC-t5V6#MU{}4V9k+cu6B#h|Sa0Psglq;3n+$;wJd`(E z4yAs`pQ!{TV+u*9(!3i1kS;q;P=W<-9rOm7-3F*%QJtl*vjct!>;e|ohG^Xw;MsO6^Wbox#H&Ee=8&U00C*k^i2Gh=0 zn>|b{>0qG8!H59PAf-o-6Pc4LGHE;m9Ftcsg9Ycp^vV>H#PZZ>iCpH&LSw@BP^zk*FTSp$ClG0G_F}tf zrKPs;I&%>`JwC)4X$_HVx9!P%zeEDhpFqPz3wjfjY+IyxLciS)<=B`Y z5bahWML`2%k=?OH13!sohZMM?fHs;ji}+duC)sLRJmwO-J`Ryknjk)2q=Jk~gP#ij z)gVs7|C569&JxMYgLcGe?7jM&m7ptQ;pW34vsO-IPD|i8Adi|DM(8#9t@ts=WG~nT zia;b=zzVX&R&VL8gP>6%^3ojkWLclqSgLt@qMbdXAs-xVw+fRS{W2^PPcURZMCSH? zwV5K^1)1;OBJ4yk`@}Hl6VvKf);sQ>9gsJdlnnIA4BSAh(@E?eXM*pNV<=@U*1LbH4@sg94Jh;gkcX4h?=$njx)zS^ne7rDe?dY z$5)`@m_WxA2E9FX#YV7Ya}_03w)Ua2sGdW%0^=Af?DCzU%_CS!q`8GDbnL?ebRRc zDM_e=5a4gJR+0nULDh(thfewWWo(%~)S;qHX2b*MmcS!&O%n?l+?ywQ?bPSx3@$u((8>=IT zlE*_N5I zsE9-0#t!(j3$KT^61_*%*=KDz@o5cl>6zjIgr%GUzW;WfQqikT{mAKXS9dLw_-ECX z_Nrp)lm6lkn)v$hLp3OwcgVDn;Kn=|aYKNlN3}&NRvpQPEro3Yc8Ym>mG5}C!)HVa z6^p7{uRS_ww}azkTLxl5f!Oze9$Oes9dW9VV)jc6kUe$;GHU)=f@|>>pH2J+wpFRy zW36Yu;AsPF+i9nSpHy(Z9Gi{ph(4obwb@_kVx66LA;9D#_hrMptB6a0$7n)?5gBMM z`82rx>h*yVYaI=E_C#4@e{WOqzk}^jm=r}K*y^vEVB}j}#^E}FFT6D>EekrM zE6%j}BJvoGeO19J&oj)VKdi(#CgQNK>KOXsR_6hJm+7mFG^$YrpKRjcRIGUGXO?Og*aQv9bViH(G^Z&+ImA`inTtx5l=#}H9?XKJA_ zqNjJZVySd!QJXDt;_YYz5`?#_PHF^EJq~oD4vaM4MX*C~sb&mu5Wi9&c#oKY&)RSc zxnqofpM531)bChgXCaQ$F-m=KTIe?KI}#?+F7CVu5pys+dBb;-u@9LoR~3+)6kfhb z`z$fTh)b%>*hYI6acck@11Q2734?uJcDZr`d)=^?(w0B0!MeslpzW5=A;5$iL-_&A z$SBufes6{Xdqur6`C?~z#6!`LpL)vt|4#a!lLHspW~h`6FFi$=MX3p1UKCLmMn1on zrjz;-or_pkd4y^XORPXP3_G!3@^fAn|DZ}^{V&R_;v`LfViz*Eq~k<-ERvvT+$f}a zp371_Y6q_NWL;CszaL2{pu&WRX()u%)%mbUhzTTpWS1jzCZG_**Z+$L7>RSj!zPsU zvUj#12qGu>^}^{y!Ya+yX4?HUb>Vy=b_Tu(Reus_hCk1<2`PPMZy=Y8 z^S!ZnyqAUaW?dB>46bm)@N+TfqUK>U&Bl^RLz=J^B(*2VsQhtM=Y68ka{2dD;2>d)J*KF-!M}}D zwuHC~2H+0z2pE~XCueESB5kA*0b=k(8(WaJO|Df)B z3lP!NpS}BeX`~uA*P9o|+Da4n-bABJ_HCyg%mHS>6Es*))6QIJJdZ?zm9q#_0=|z^ zNJ>SG%O zuJo8m;_FDI)vvn?GYtOxX}Bct$a4~Sc_@*FxDL`!7ykO0S-rtZmz;zN0ZJtBK&s=! z#zb-odh3&VUso6>0~0&ZsqQQy&Bm*Z!ecDZjP_NlFYt#@UR>YwBe{Kj%eU~V6_o^} z8Nl~@)!&ZoMRzR_`67<_MCh_-7>z&|w`Es-q*MbU_8#sn+{J9XeO&pe7i(yZJg`DO zkjwX<`#R)FV)X4Qejwvbkr<_;aIB7D*{b5qwXWa12lPk+Kgz)I6)OQ_2!dS{Gb3Xl z#L>S=OL2+aW+j@$8Xk=_4frBMLFrVp?2m`-?~!p#W^;HF%%|n-c|DCkpn$(zu$Bw> ziugc>|JGG>DC3a<`z+6(-=MuADfD%xlg7tYk34-X^G7?vZ-kig&Avy#>538dSnGH8 z0YeQzl@BHk^txt}1YNQ#z;H7BRS*ej@DZtZ zs%>#M<9>c(yDC=pmlzqtuvC{egJ$jef-e6_7d#dPC+*!$_~ObHl`+sQ*u}|=zDT@; z;k~=}izX~-D8?>fc~LL9kW`#Px(e&vOU&x^Qe!#VW5zVu7_TIgpLY&1whmt$ zuIP?rj4u{_*Gt}Xn>bcH4e?gue_8xcnUwki0|#I9>-q2k?Xwhn$62|FZCJB70Xa703SjcM%Ml|tDZjMT+vWZ|wXZL}mqh&li%7tOS4$jG{+_FqWrnr7=? zLf?T>#D50K9J20=Tt_B#!MbzxDhh)*UjKj_XP2>op*e)4u#D!UjoYGv1@B$&0C zJL7qTXiOBo9ibK{82`dBF^Yy1CscB41( zA~3&!B)v-&*)Ho5Jq7e;_IK>7tF1qxgfA})R}^^w`TKAn_WpA_zt5iY)u-2ZK}lA`2Av2|Zt z^iN#i!hiO5^3iR*xM5vWJJnsI_Twc`E$S^qg z1CPG3c3V3`%9?ILEoRw*Wvs*6Qv8`!?KC|+CS{26e3lr2C;gj?Y@86@b76X^g*@y9 zQSh%jvgN__x$EOor|KqSe6dK1(ynILOo!5UPmFQXi$E5kH(^8v1uDNzN=oHjhRH8^ zUXknuZ@|hU+LRj|f@hfho-epu<*|BNvompWC{j8kP9=n8;k@gP%jh3Ujw)MH~?q6_L z1o;#r5o3VwYi0{3S(>)vYY0A09)tWdlpV3T>@_K$_6T z2uUhJubp&!)g#i3%y$ed0d%x1n>$TM$MGbX_C)^cBo>D3f6pt$6J}jD465DWlW7&1 zDG4paVLtb6e#QnQBdM50o;(h;Q8Qfxt9EX5La3yM187E@Snf$AV!e+u1r9ogogoay zkBd>GP)T!r_7Jc$VDCKk*F-=pDcG%(`3%WHnvx?2({D>k7s~U&yT)?AZz8OQZX?&| z3)w3yw`~aPTe(K$fMPGm%DRJnx9Fmlsha$sN4Q~@Ab%)V`Kjh$OJC=;i2zOLjfA35 zK{yLb>oB1+FOTx$cu0#XEQh9(CS=k9=5m*Ti3Glc+x5n~<%aGWa8w~o`umS zYkgiGL$@!i9o9-I$isDteX-X$rcaQOz+I@n!seaHaD%J%@b|%kHv#;i9(9K81{s#F2(wg46ku%j)#6#e82a2CY>! zV;2TZil^28i@o=L=eqy@hfyS@s5Fd{Q6U;u8AZuVg^-!DXR=2msbr_@D0@@(Y>G0o zmB`2@m961>dw9P;-@o8GuIo5H$94X49-U{r#`F2SKkoP2{WhehE}nj42@a7H<$K5l zqe0v2%EM+ll313Vd!F^=CVM6nvR=m$6n%Mb6@Rhw=lf7%yH?2ed~c!s{3p{G==8cB zuK_cHxYg@e{E2TFvv)XYA3!A=g&DVul>wR(5TTzdlX~qGZIKELv| z#P(n9Wh}U+3>%*?u2pLNh2@9nC!uB#enfyYoa|&|xVJjDK4mA4Hv&6|RbgQ_P`^+7 zwg;J6C9&d9?8x}JeYkZk9mT+gRWg;(GhOMo;FjnqEFJ`6*jWGe$(AHJy*xs&Dqok9 zG$FTPmmM4B&pU*DcLjPg5s(^#K zzrFanJKr>zs3iH;zr;st*2V4gr9n0WmEJfG$MVyh&3d`oT^B43C|0@hQUR*TIe6EM z^rw=512}c(UOrh)O-0S(LkMC-oS?T!DvOYFcDAABma`o-^6in0?zrVbd?z-^CmAfF z%e!7WtLNO~=u}tmQR)U!K2))*Q~domm$L$#@~hEy{!7{)+`*YQfu=Tx%cW*;nY!;J z;b2v#Z4o6{!A#S=J)UOT#WquRzNVm_7Wp%oaM3bm^Ce8|l(Hgt)>V0QC1i(h`{nz- z%wLOe&WXl(+>6$AOsuQaK9x+keCuQN4RMqW1B-J2zlolFDV$hoIOyJHAOw$9K8T&K z934BBMv>|G4rP@AY(bQGaFvYZ!|N68_@3p5d&Q`SSbG5^ID@Yz`c?q*sL1A&Ji zs}O<`=wRWb9ov|unH#59=mxG8NFQTpzzMLm%Zk;sjY&!RbjeF+>LMVF!r(yL;r&oU zV9Z|I5P9V7iM&$`97M9$gL|sehH=j}A0mtydLy^>P*Nd>xYsCI?x~#1-i!XFyv~@O znbVdSd$C@PExRx#RsokOU4_MhYhQb9Dk*kIO_DEN<~gCFkXj#=k;m+qt_89>)P0Zn zqz^Kq?h%PPXD`$F&aLX(|08oy83#Ci1hml)ke8TMCt?#?&U!U$kF+n@TNnM_;nlUe zQA#%}Ii0mo0@U7~2pYFkZSi;+9oZLU8h4%hLGsFZe{MLFB!k5zM6Ogq2(J;`!<6_Zx={lNIFhddj?=Ub( z9Otrd$vgt>Qsb6vMmm{UPwgVBF}w}p-Rnz57WT)d3R)A&#OZp>6E15kZ$d+1iSy>I zFtyAPLcrU0f#E2&U=jZ3n7`b>;atv|5a`XI92%l-CQ?L@2Izd=flMc|N-TkHTDUt~ z;r8vsPv}a{VkjxO&31<{7*_#s47??wS*IymuxB(sCpmW!x1KhsQCeL9E{y>|vd&5S z65LRO`5H{sG`-CZ<2aqc(!}@!yUg89Y!*5jDP;hg6MoUVzl4V-$n?(pzdZ96-YsVw z=mm6&4k~HR&+Qg>7&Ra+Gk6i^)faihtEpWnrUA7fdgPv7TuCSYEPimdS8Z$ZZusA( z>L!vGRxdMRPM~!GW|@=on3y0E%!7K1jB{m=Z)#*+>Q@~jj0as_&pGfCAQ|3o(fDrV z-@-|jiZ#Bw$tZYGo+;zfzd6?LIYK;qPtjTl6U-S{NP%nNs{@Pc=O2&HK|*Z<&|q3| z;JlFjZMUYa`_8Vq;_*?2gb_8KG$!VHf{?1rPrS)}o>iZ(nP%bjeNSu|$Ei)GT~S4CIJbl{i5} z!(l6m>_#B#?UaCw$?5XJ5@-P@&sxVj7}qKK?Kou9xdRSKe)s~^F;MxkWawH550gz# zXx~^Vos2%v3C*kZ5JFk=mGv(RXXHqYD{edVGJL;sv{6pUfZwwly#-Vch}eX98;CqD znQc*e7}R|50?uv`5ciL+ihqZ|(+$;DnbmEAy^a-mwCph+ba%R%Px*~3gt4I`iL(CIHX~hfjx|fFUtIwl&^?s`*B&C#Qr5n3q31--i)D-Mi~;IB z+H<;kFOJSkT-5U*r09Hjfog8qa{}@#dw{pbWk>gPdH1isp&Yn59UNCxEqsU8KaRj= zDn@g)Hn2GO>Ysm|)*5&?wc*QoY_}MNUh3y-eW;x0=-Gt#bycM=#zeZ=$2nJC}Fo~-T9>cA2XqL5u0Vh z3{@7o*x$tZ@cPbO$(^(kH*5LK+Nk^zr0YS#^lUl8B5G4$8T|#6<0737ocY!a2{xBP zf6Z|{n~cA=JCC39`L9?>pkx@U#(kBV1przZ<3RDyem4&WPnN*rWn%w-x z#v0jtQRrK5)WH-VCiWRVPv)~|x zwjn$Nic8tMtz)T!F5fmV*u|!FXu;Mu{}QeRE?i@K(dKN zXNxsi9-$^j3khF8*s^vj+FGaM6k1pVdXK9-_8Soung&)VJGqZk-O(bB7XW_nvy zPT0ooY$zLI8&uJ6m9}&z7St_SN?|`Aji~uc@m^BWIss@ojo{*vS07AiL)NmRX~ zl`Rk*tCWAlg9s9_s4J{#gh`a7xClM$cRkNFb5YWXY(IF(py~eZ=+|dQPQQ*Sdp>qa znKeX3AEut&13$GTh!0%x>)Q9xLY|f|a+Ne4j}s!cpfefwsCWwhtPM{u93fVnP3v_< z_eYP}W9#8A5Fr-3&T()V;KcqLFM|wvoeKy0fMv9JZW5t~*@Az6>w`@)_i%l3` z%+zRT3}rfaty$)N;pNWpWes4jF&%7+1OiQIO{6mfIoFE1S?Af|i=F!J)-B72}2o8>%?tWTZj7+T~!Q>PjuWXu3v0ESg7^Az{JmHlS_W4Ia?TUM*AL3=eI*Z zH`0Mqs?}wpTDmq|6h=)r9T|svrkd&%o9G-IoHg>LUDrHMjN<*X^84$G)fv%B@pkiO zHcv-UG5Dpu5&I~)Jy<@ER@B(7&%JXj8``NowrB5hXg;&!lYs_YRyvOMoJ3^%b@?Dn9P0_}Dj4u-!OdJ8@o{3Qu{rF-F*O7&PeDvCj9RPnyb&mZ2%t z>nhWDr+7HQpx3hUqUF7m#!c-gm~5|tjZr=pYODA|w)_eh0-&HJhKHo9rJ5{{$mJ)cXX+4R zcD$$_kJkkM3P=ugS42>_;56B#|l!zuJ$_YIqm zZ%VF4L@v=)hmN)YG<&voZ^CuK=)OMK%{=430s0?M6%HxElja7NTrNyJj*R#BMf05P zy}9C1PQSn5uoI4f{pwYNVN}oMv&}=nKoO_UtB#dnQC|K5?BwoTwbwqXkCzx71urV? z@%l()J8vc*+czG03D2r7ozqn2J@m>mEXpt6wEJzHeAO4wveHZdBTNRGTTa@P^wR(* zUi7`ZRjekuS3^x#ZbPMMgUycnW8v`PnLTAN3Q29j1#-K|Yn_U|mG!b%f# zFAp{DHq~BKQM<$6a?_6Zgb2djq$F$GxZB5_y8^@Rb2Tt0J33>6`KFjBQrKtaeNX|pbtB|Tu$SjxaU_IsE|(`B^H>XHiZ{MqBc31`xR7`8d$^QSvw<5HV4Y_1V@gItn;cH?^DbW0(%GhHXdgsFwDG5({~C88rG zUI+E)ZHE+tr#{A?CU(LqDoY>axs}5P2`cV*YF0~FsTq*(q+(Z1f^?Pk;*sd;!#=k= z!ao&R$J8aC|9anyVHtCkGSr#%V2~IQwsV+GgN-Bn$)j+`wS*;|=lc_k#l=4>HV_5E z&7HDHb#u^mIOiZJojJdTb`vQgJO2_=4oI&8J0w865O=l#!S#Dr_0d8LA+wLKCVMNp z1$5K=uDL7H7ampR*g&Q-<0_y4bm*%^J2gSTOk!uIo&H;Tr|~ zz@O=xEBVoOO(C$^~FeG!>BTzcPz^3 zEOhFRh3OrLN!`;O7Io4RALm3dT11E!f$DIWV}kda&*miM7Ev1l*JJD1y^`Vq-*TC z@EKduSZ|U#OcV;#zZu_oKNqB9_tB&tvXdW1g8L)rdO-!ADpHCNaAFBSTh>bqxX5dsMa09E z6uJT$s>~*r1H`b|^h-<01B1~O;vrU#{%TAyPk>ra`!e^VlgGznE)%7&(xcuP?1ydQ z@Vi6)J-HOGXutCB@9lq+%q$5!4|EhHb)PkexKdT zOLXCl{wd#c;Fy33VK=Ej`PkOf&W<*7CWQ5)js8@~m@uYU!fOGqCBeCgPG|1d*wdZ= zD7a&6g?MF?zz$u78_gq{8>F7~bjer-uN5!3oV^$E2pVm=&UBG&7Na%4+e=dwseOpV zmcgWq@6c<3vyqH+r!Mvf?He~?vfz8Lmc_@V$812D_5r5FF7v0SVFZ|PhMUPJ&2A6> zIpBch?OuQ6TU=sRF$gaMGRrYOjf#WxEywrE-u7)TqxFDYIY;d^b`8x5RYI<6b`Q;TN&kTHZn``!L}f}t~2rVdwt5?$rLmmH=*qv<&ar?D`j0R8>&uOqVk9IoXwohWTaCi$_? z8zOKhe21@xHb{O1rPQm;X)19r-uUCDGs z-XZ=1WxniOOl9-P4=~HE#3KAHj3HWokC%$QY-aWG)#fL>wcAUW4v+y;3Oy7q%63JH zUF2Y4OreYKF#niQ7k{p>8w3!YT^G;j% zQid@D`iE;$<84gm@cCuiIDUY`R4!@W`t)Y(S4a%H=Y*~f{pmUySx-8Ef1F_WpIO~`PBwn}X7orOYinPvl}nPQKBNDsN$#I&OCknAl+Tzp@K4JO4>bmVDZlj!)IdT z-(NA|o)i@ za;_Rwg8A037)ZEf05trGr*pkwu%yY86^JV$@d%Z2o?5^x7K0^C$(Q~;)o))nqXb?% z2_ty2M36qK^&i*CyVle^T6sxG9r&+PN3 z2I5NPOh;o-zD53G%^ZaesN2D0Y(>-74(4)jfTn;OWaq)EZH1SJne8JO?rKbuk!PNZ z`LKZ(y)2pB6{O#zHMm+#Co$agVz2B$bD62{AvnyWJNPPW~LN z`$v$I?w^A-F{IV(JG|!q1=bscnIwC!Q zIDYpMiZ-QQKEq7KcWrDC5913LB;+T4&RY>LI{7of6nDxT+*Ut3`KeW6vG4XUfL0L_ zzq3Tp3eVuU2o2F^7t)1C@W=D>FK`cCg*SumaqKc}(`7RH>Il0|q%i#kll&t%bI~xn z5sEeVWDPWX?SAx0i(iub2mo?Ygj3p=>M;aPT|-;+V6`HEJUxcr#9kS0$>-F7xrqM` z8$qor?8aaJjDFI1O5`Kv3@Zc1E@8!N4oQ% z*4+7T$qK-42a8fl8qi_ z0!7DqTL|#Du9q6dfDDq32H?ZP{lV~1B<*9q^Rzxoy&JO9 zEO)zpdyr%~f`#H?EIA6ygHH^uTCDzDW-5H2ZhWRDFK}Cc>PPFJIIMqdhzqJK6 zu(0$?UR0US0)_Bmwsv~}vv6$~Yd4Tg26e-O=fuXi@*$QcVFN7npjdR%?1g^8S#Bqb z52-~o+j|GmCJ2(c@|)?0UoDK*BDZ-7LC9&tH2NMj-+1AjB}3@v!fF>*iW-N-hb0(2jbC1v2>E&+Xg5QG#xR&qkP_Tr~!*h=#9$U8c0LK-1XLgejs)nvCAlGtLA3NC+OLonn%*`PAmdnD>4?-2!6|C86#(h zd8D`}4clRB!Vv5pPwMc34&wvcm3kb2U{13ER}#-Rcul32t1qb;J!)%fSYGW2HA&F# zpK0o~zjFvhe+CPo?hfBU1^%7zj*%}r=g{Lat+Ki#R20DS??a;!*f{W%TqQQkjm`~5 zX-l+I!SRRh_XW%3#yKMU4LWv;pPQhG57#A`z{h4d&i(rlR5%Cj`vm+iSDy$k>!JrM zbeK|RKYF(p3YNOBNvFPUA)~uJ@`xcBT&zo55lB_OqEY~eanaMxMxzWL|+3}F1ve}3j+ zJIfN_f^-GI*0uu7r$eK$gpDSbU?>1r{Z2qo5vyx#!$`o6t1{HiFDyjzh71zH=^Y31uaDpl>A_>jnu6rkbgc^l$E(Y+ANX! z^S}>naaI{FVp21VbCJZNoxit+7GL1eX;VoIP$GNemk7H<_v$~w0ys|5d~oT!IE9Qa z?`EFg!|nx#p5=wMAja^<#UUdsl;pzt&C&xOjACWj9dqD^M1~z(BqU&89}b1tzz~>Z z0+KagD^Mr}r$0Z#fq*3T28-^4w8K&4CKeenn{N;sX{RS65Qr-ly~IdubDrZ`z3+mr z9G;%@PMc;g9Nu!E&^|E_e1#J{v33%T@C$l4>8iK_2*@69kT}NN$cK+lgyQ!Ee}Ozb z;LuJrw2ztFK`z}D@#gvHmvp5s{a+X6pF2)yv|<=5UN9TC;2sx9oK6C>W7wA6tWE;- z7>9Juim1dq?TF(Dlo;8Rl;g?Ehd!$zb0XT=bJIFiC-;&B%LUiAcS=LVQ>}-laT4=+ zlAZF_ENcnXP9evpmXXfWhIa|YuDCN23(eAtcFe(BOQvx_ozrE|1=*!@w#3}pEad>? zu#bg4RKtsLF@&HTHf!pH*?STd4HTJu_73TSvypvv_o>!BbI;c|zsp~W zx;`c480`Is*ez)lP~rS)Ob&@d73$U)dBq~hvj;xM3F6E@c3@?4kh@L1Hlxj~_Ck_C zVMmgtzUw=ic4fX~R7`H`HGI72x1J4!YF`-rds3_e`3J}97_aIW)Wy{398*=h?w`X( zo!vVJ6C!7>hJt<3;hKUmuD^u~7YL; zC9w%oB+2%asK!KhCpzj9jsLe2Y6t$YIn;_|}U>%8)(^_u>tuJv~ zliH$g0NWbV=@7SztKJ9V%@lb8ffFs4ShH6W-(3+r^>CwE)*~CPqz?M6w50e+g4@*H8~?jc61R zZI1anJ~r8T`Uh2RE~)NM>g0C2RyDSye42JJl#*6JcRFl?j{fSxpNX6W3jz*Oac29nE*24Qy?c;;lD~!B_kGJt_w+Yau zYdpM^WY0C85#EvDHr8yJR(IK=b#F~M0pW{;%;}#7I2H3E!8exMpI2ej!Fm(+g%YzL zPv>y`nY~E}i*niP*BEUFEF?os{}dj}eg?9)8J5roOg;)HA$@A~vV!WHhz4roy1fa) zEEkv5&iul{-ZA<4=@EH7joDp-%s#$xmm$;n?RIPcO+ayHP~&-%>Kke0;T`#Xf9}c} z4sx}zSLw(fy)6q4tXxORcj)B>h z&C2!c@o|QKJ^S3HS6@pB?M@v1skSN3$3k93K!;RZ*J*okhg0~QKmdkX z(NuRxUJJl7V45uxFVTM&`Kt*L0PHxNbU2(yQptniqHY`iW$`D=`t5V))T(7qC0#z5 z**fwBw@!AKthfHmpdtw^ZWIZ(me@QgFael|7DdTXEZeTNLc6nJSif?QuhVa|2FYLGUe;68 zZ>Klw*dK#Z8Dcz^6T2syY58VBN;N!)fNQ4!s))jAai*g1RL>z;!Lb%*b1a{5%z^#X z71?Q7IdPBg0rk46j@m*8^ek1)!n0W$Tq3S#)+D@aFxrpVgk}zAL0t=_kGKs z(W8!F1V*p?oxUj$;W(zd8dSoOO58Y^JPJaK7Ylip0YHwa{^WkdZiGp*Xy7+-5x=es z%H{eD^+RwJCjH;_Gi$D`?9pp?A=ZJv<^0xLf=(Fknr!>3NZVeeyxSvAxbIVhO%D<^Ql$~wu=p5IGKUy zzgcsOM2|<<1<%Ser$s{oDr$fd^#t8+?lG3UENEyxb&D`+*&c|+x(D7iLp%ZB{Y}IO zTW=BpAKw*&_@OltsRs@tmt)=aLR z!smqkkzXz?OU;+c4786p-X4Y~1(8(Vk}t=%XT&fQ&qY4Uqr}upE0p(6`rqcW!T%0h zK0n3P;@Z|X1)W#dJ9cDtKe9o#4~vKp3YlZ+Xnfc}CLD|H#%4^|)%+th_X6pD(32w9 zda{P4(2M{-L#GH^{rAjq_y|4qW=J~kFO^ZJb2vjY*CzMpqhNzE=ldP5l>fa*rQZuV zoDL9gzw-8N1@cKYmog|IR_Y}Fj!q%h4?CouWHx=T@+u5lzX+u##YY{V8qlcL@cq>V z6{=(C6!9!8kBp<*Ma}hIB6}#oJcv{Ibt3HT8fGfbV4nmQBBDc(ZucO#YjJwxM`v?=; zM)-mxv(D$dGAI^4Cv%+c83T=K+)io{{m}c+ZN6*W7xW$O6#|wMiN!ooer7jg<=*#+Frzb1qPQGK=hE|FW&#LZ#ut7Z~X~1%#Rs zi}5?Qm*DiHH!G}4Xy@fqL=Z;R5BV3nlB#n8(3s|Gy-A0~vZ}QL*xR(+N^kpx=R-plKv-yQ6IjP>~5 z%eTi*aEUd!=_0jk7`;!Cam_Ex6{XvP&IoGh!6cutoHCJR$4{5+w|nZNsoCpPlesxx zCI~58V*%#vX#@0OYMDmsZ)bc;a{F23amzgiW8dOx#$emTH6*Md!C^ZdPieN z<(pZb?5L6#{+K-p*Z4XDgR8SxxZ_cAuu_EHTNtdl__}1}roft$@ylPBO_QS9IY1G> z?6{-l+nS%}MkZlCNaw2jxXtAx%TJfUwd3oHbFd9hdfX z(aSouzMgm=x(f)!JSuwqcn9@fqBkxbO>~s;)?4Zp-+wFEz&ph3(*2XFaUSzp;vEM< zE1t-ChkP7eZV%k)_@O?Hv?%N{n=5y(`bOm)oa09JdRdn>msx!kXpZA{T2IR4jkwI{ zSP$Mfs2`CH{P=@SVl!|X6VnYd+Ybb+4U|(AO>|im?pwR{{62d6wUdP!AEyW1?l!v& zDUL{{$u;J+vjmN}bGC4pfx(=7q+|rkz3T1hc;(p8we=jc{gLYfRcYlDsdRU%_q(Vi z+>jT5zFDoWwo zMYFO0-^ zRSuz5J*p){o9CIV9P5_RbLlBKv~E1Fy_x%QCn3l;AaF84z$MTJ<2!NmzBi})1@2Z( zH`a`ZRtRZK;?yp9c-$;pT3IqXYJFjje|1Q@`Y|95-_2H?^b)*zKWquQtQ9S-*jjil zMxq7>01)6i#(TKKjN5ZsU_H} z!cRFsSX^oGe#N|f+Ml$>0!o0SP3`nHFqN&XEqL|?NV734g&y^{XHUV<**i!T2{8Y55Zy(gtn-9WLJQ z0b8P!?86{x&Ll|EGCC%voL8_M1}nVNpFrSBs`oTMcqVMJ2F(|53gGuxumlhs5ma$a@D(Ut?a=2_D>%QIo?U{d8KtW5<#XI2M%h!< z)D!`bG*d9PlY~R8hR6yg60h1z!@X+IPvIMRf9w9}%$zb_Ek0i=#_U}!7@k1$Ud>zc z@>TixATJ|+S1kZu#U1?Yjf4Y5A>-p60!XoXDCmG{k}uN2?ye%clnlXW(I_acI3uPa z8eHj-$n4#87sC%--o4POu;wR;wxaN9$FQi3J!s36o3PP)hE`Y&l$lXp_XE~J!Jf6v z$1H4lmSkbr6w>bZT09L(J_T(Irq*b}pjizGNjg+WIYn`G54uYV_Jcy)(|Ev6(VhB+ zK9vN-0y+8VjTVA}VSAMMr;ql;X`2|*z`FW5v96{FF-M%8g_|siCKR|qi?le93Mh^a z0TvP>QGrlv*>Ue8k`96!b|0l;pC|iOuZ=oHH4O@N7fp?*cMA?^{%10j`Yd zGnPPIbqogw1w)>E@DQQ;5E!!_TP~1YtC;`uQwL~?<6+&IY63oyeKCmsljMJ|{$K&& z1Q4U~FMtAbxa<*^tTOLfnA1}T&&!rcz%amOx9LdB3l*{j&aZO6htG> zyP>!2;`dtBT~OGb)rz-l`!6N=3~ryhtKW1Boa#_%ok|B&VGx-D*;NV|Jz@4sh!PY@ z;~3L~5k7MmXSf}A%@e9bbUQJiu^~RC*^gX7+ec*Z|AV1TiKZzupf-CX+dBDshUcjDPtB#02$=qxA zkE}Q)MQ;TY3k1SOFTL)?g|d3Krizzb zNrNd+5op+(4+l3SDLkx4=U8CX%#Z zZH)N4d1T?T1i-QZ66#UKtwS&^aJuDA))%mj(M>->fIfOVBgAwU4apcw9lX*3lOTh! z@8!IU7S_Hrgzs01Q^I4zV;nZ7x9?*4RuWppjxc~t3e(afhkyKa;b#W$cNEeb!C*wR z5z{}bsCm~KWdHUO$R(WbB&?!aORgKnEUbpl?-OL#KyOMxVUI0DG#;cVxKo0=83O7} zD-3V{s}(+uw2G-?Ap~St(d1{fD7@f*Pg{uVFoP>naIF^j59QkEz|BEjwReLmRpwP* zj8rRUi8C{hWnz6DI<@ZVdUCtJPZ09Rp)o!LQvhiBiRl+uM2P~ljP$zbpBD5Q_pI^? zfr48zv;fQi)jWCY`Lp^B1bI+mYeprE5W9+p+bJ{0KD^J`c7Nstl#$#460QrZ_hBf^t18s8eGm7%jl{HsMQV#_q zLp__DGWeE~JQ&(Br1g*1bX-;P1U8%iOyWIwcw$)6+QTj(j=*#!vSY-zZx~WNks7HXB8Y(?|;+*X7 z9YhRfL#vMRUrjUjx}9t&tQ1k^LiyZ>6dew!%$uoa)_gpZub$rBINF@3W-Z+uaDiv2 zKB_hO=(*Po=vx@=fy-3*e&x&A0!)uly0-eT?<0o@17*#4bRn!)%iFUQ zSM_h_U`Rtc&Y~|{?`u6I6?;dA|Lm*pgJ%TI?stYwxwL%VM;83q?7gQ~hc4=YRhrL< zauDz)op8T71$b3knn^7Km$oY1U-(@dCjAcSeP++x4bCjyT>1Tkf8p2a=EmXq^HV+D zs^=(dCCmaDDtAZh(0&@^_u6r6u>`e6t|8-_@*uMrf-(dgt)f*m zZdF6cY25183zEe{-nSce2oxZ-7DuZZWb*D-fI)il6Tk8of4K@5i*I%{PZ|$-eIxCN zFU7S0-_Bosk|a`B=L9j%c(dUUSJ>uVN57?Qe}H9F*+mX&dS>4#$^F9Etd{gFpb6rl zW+Om-DMU|aF$8~6slEt8+!q)iC|HJ>*?M5)n6z&f+d4%Yw{#xEb8Ad7=%d?i2q(^o z1*c0^yrZR*AzWPwTUOY})FBqFbI3a}M|Tw~;S^HN+TN%Gz6uYXbUymPvcU9T|4_vv z@#{)kMuk8mC1*d2nF8qPp&e&cUUlH6iaDnst&8>dWY$%&CNSldoyANj;#bQ8&8WZ& zpTVZ(t>-1K@Qp>ETf`RCA-P#W&@6pU?)9BjgE1bp>Xh5@0`?Z!Whks_v6LI6s#ouc zAw^>3r|@QJe51;)J5c)9_eCj&yAL+*DsX(Z6w)f@?L0)eo#hcwilBe?1iy ze`iss-L^o3slcL=X54cA2tP-pRt~g@b^T@W<;e~dX=i-lkbOC9rfA`etT0c{R{y0PPqzaH8 zVXXUvfpnCipdu3}5{<0PnGI4P;nXJvpI~lrC(gmE-VnC&HArA8?H zsQmYLfQwJy*|AN-VD};O1sovdU`}CKGEO_UMKbhBA?rJ$=9&%6)9Qs-;Ween7S8j3G!~l z&rS|lrQ}>xl)Zs+_hnPKoa4*_C<-q1!Ul>%xrm+;T};9r38uRj{3{06#T~sCB{GZ_A+fcq77m zIJ=9x4WM=R^$sB&if+dOamIVMo--S!DFW2&iDb@U_cNc*B&uraO{do%_Kw#|5|Yf; zzL0QVo0lYKfb}#?qRVPX|4VlE7^*G;VWwbsM=IfJb~))wd2&1wbmO8(1N=Xl_`q{?ji}W|0JH`akIIc`j9kj* zCuUcC)FCQlv|*PeTel*UM*@1EiPvTrjog}E_3N6+dJ6{s6Sp_;CvV~?wG8n%mmk6=B0aP8tnXPVlV0pl7mBW6T@@|=xIeT%nNLu?h?4FDB zm6%{H#Ku-mSZCt?;o8D5$1x&nf zvkU7KS9x-CnZ&~#MM_c>0OA_3PA!XhPopI)Y`R-g=CDlZ0QHPOLRa z_x$50dbb!7B2Gm17#QJ9I~21Z0ZFKcE!oKODSVT>2HEwhRoONJq8lJSB*R2N_FIBT%%yL~jZm|%&hIqK zc#$cWU}C&Y?$4ZAGo*+v4}6FcOjQEzQFVd}FGEbc*sow0Pa+#r02wO4bGJg{ffU`^ z|5PmOtxH-sP3j~25rAu4X98~8gqj8I{|P$r<8;&F_@lKNPHpeKZ*- zf_cve$0d%OAX(l7?m#&!T+@*YYgX~1p-?4(>vFg*RRZL5ki1W)e7ZIaK}7AzMZJ-Z zm$0Hpeo{Cup_qzy6XIkthWZaw8&w!o3oXIqpO(JIm?sXrI_-wf4j}z^MCa@ky`W2C?}JQ)+@$&!RbX4%z~!e>lo8^mq!kP%d=D)C@VuznO{kk6F_ubSU?0fdi_h;> zj~`)3f?;1NegVZ%f71Q`KVYAW-wab=@~i&0I-46ECks!d^V1Y}sUMiC5a=&EL|JqBxGcWa8~$^Woe zDSV=M14&2`o_R;^*GLNqA(pqgjgf#dn!X_gU??G?kpMEvDCrI4a6w~e;WXWAO_j+- zb}583QJM%{^LvfzcIE`BZ0<3ePOk)xRDGApsHtK5X<(x~q3QWTM-VTsSs zKC-@<81GPURAqi7rm{Atli8DSw#+-uLJWk@)vah=0C(gk=EQ{?D2w$w?b%Nf1WHVo zA!p49VvKs9QPv`x*re_}IG^QVgatz&Ds)1^IaQHxul&5Cr0>#COr7uD0r}_(TZbDeFKeX==qH(rUMF1wRbi9w22>h(i_zDEzk^(_&|og4+Oqf;Sjji z;qL`~9~}+Vo;z(!eA1QA$BGGmI)c-ta7nQ7*jt-53v8Q<fjzGh2^hR6It^RKH(C zkJ92f%^0Za{*{;InC;U#?qRhP5J`>B@8g2`>QdTYg8BE1=v}+DIaY@~G+`zc)}9CA z>GZU3y(iWs3nSp~#)B0h(nCy#rhx`3XE1~l$|{64>*2X9uNnnmtE}5sKyivY#htR~ z^YGWhCi4lH_TiV}O)!K6A|gAF9L0h`dj#qhKk0+kO?dRZKYYCi-e?ZT>SnPrepk`)XtivV!Dz zq*>y^lV6MnknOV`ncde*Wk?g>avh9LvGL;xc?fW7P7$^K{Am1$R1%5A@S+v}S(Ui* z#chy7=({118k`&TMJLJwn&F8NxaqaH8$A)s|B{4d2js(InUi z&%234$y!3*wGrwM!(teCda4meUnK`(0&sCaYPOANpvVz8L~(OoZZ}C9OdIq=Y zO8JMq(q;13TF!*@mdjuBe)N&ryd`sXpAQG^PQRxrV|s4W4>q6pw|_?eyojjL!ti$^ z=b07BCJ90N;m7%=CZeJvv3C0!K z(>{c@beF}2`0)&>y4T%a)63}%6A96V^{?#Kn$__a>s|*hi%E{n@nV$NC1*_;i{LAs z#!q91eiN&;R9Dt~^gksoxa0h>RymPvn4TQ2NU3N8bnZ|DO$6mz8AE)(XJ=H#cpu6N ztYK6LjkXFnQhgxet_av>kCbjVEp~2d(COyc(-Af0MDpTNUB5(cM^g}!Ll-|^{|7?H zn7heCT~$H=9#gGVF6YeC(Y|fxs4bevmM^62SiAM?N5^{FHZ(n{S7FBS{qy+>v=8Q+ za<~|cs^&4cRPcp-V9a{<*K5tD18PabKknQOEYZyI$sjsF?4zOhHm9 z;#Px;^WV512bMvF>DM6AZI!lA-8SGMnEKdGu{7meKNI=nzKwRyTSrIViN&5AX7urz z`^>&JX{P1Ga4f6O(|JDzWaK5-r5{N=#o*mfy?3Vu167f*IBma^IF&`*(kG*b$}J1^ z)1~FaI^`W!mSMk;fti{m9s7!pBa|yW`N;SsYv(&7XF4t!2HGi44FLE)U=nSfQb54x z&B866KdP?vgN)1T1U<}A^{Lwb{Mb)c+SsNW7M<)qBkITUPiEccqmCU1t?#__ds!Ci zM=#!jSoTAw1lh~}lJi}Omq10RyI9DV>no41@sm*N*@tl|luhEcN?WF7ql`ioT4oqG zUip)H@^AXF$!Bj>ccZBme+L$)%1@uW4=tWA6$u=}lzmXiDIA)o zyzak4@t;2zKq*$>0z|$xGHt9R3>SM5pIb(HdZZf1_Y<(s5< zJ(Ke7gJCwm?8W1G{XuUGGCJ#eU^Kl0p}v#j@S{6#ByzS!c=Z0bqn-vpeG zC@c_d{FZm}%hpEgT@}v`eZ6*fS3~E@uZWjPL5r;R^$%=}$7Ilt-xS;T^3TvAf5=Uo zeE*sbI6ujq$vdvEDi`HqDwC>((ywM3=J66rgS%ZTpamQHI_?YV;mynn4O+ihqL||| z&1Z3r11oR${5xFPomkFTrOj4+?noYsrc3m#g&z!UGwv5ymgmj^rAM4td zJy_b3^U5dll%iUgqkl>&OU|`b>YL_!;0X;YjA}YQ`t)|KaN!2j7G>wj=QSxSTpBvo zg-4S;Ewi4>@|L3*MDS!=gGzjM3O}k=_b3kGji#!SXQvK){)gM)5s&27m$5j;3eTEf zuAK9bl_XIfQ7v&0+ZPn-S` zD)N`myI)BTW2?1$Wqh&C9cIR#)y_7Be~Py1r_AsEryMBq+3ej*@b|9bnjBKo+3|IK zlRGI%#RqB(Mtajku`ZHhDw!uZz2YzFk-1$ zVPsc^Q?oq7o9U>(YhG)d|1)3wl0Twt(?%ICVd~AA38GEsR69>^mb{3nvdLI+qR)?B zdQ0q3ZNjht8U6B6GcibpgT0ha-c%mbLi)l{yLBsMO8eY`p2jV&4Gj)m+V-|F zZ(y*XpHrAZ1X7DwC)X7YcR|73`mu4!Ywwxoh-64{6|};;H-7;mjbzu%7aS(0kh_!lR98z3{f!^qXUdn) zm5cQA!!!Hm`ic@@AWtsq8u5cDB}1PL=DxVqz7Q54-J>FLsfpi3vi+e>e#WL7LIbSA zN~*a79aK3Cx;UVW745U0y`eLA$S~;{P&xGZ)duE?ziPEpECDoY{v{4)@w0Wf{kZxJ zH(N1J6HCB>7tV3&J9|C87sRf!d9Bm#8oyWbSV?TI{*4Z-{PhW$(OA(kAy(Z(Q{7YJ z{Li~TcDf|!JA5~db?hjppT2ujaHl@oy4@}YZZyfYhHu!JzU(Wm+M@J`XKwKKnnam* zU+?vs&rLsO+_b(PUgtw7a+9$6?dkZTL|1D4@a6vOf7hf}2GML(=J@5$Ki$a_cu?8O3}64 z_`BNPQNrr$c$0T~CRBiuZU&OG-#W@P$`o^!$)$IcbiME>-!$+`%EOaw$Bs5f1+6oh zc&AS9ec&#O^|yL9O?~Z8I}HO=1n9fb7+fZ3{*d;AyUW&XD1otYa$`bYQr=7AZ}-SC^+v-H)J zh1E+h?g?UhxwP0LSS47uu}ANaO}FJNuit8W%E@N>g2V>Le-E=+=a9t0*7~Ghtd#f7 z>GFfYwJt7Ee5V6R2jq`7Fk5$GBlm)&KQK2w;^Qpgb5i0DTVUqpr2>qQkB;A+ z2BlGP+FtcH%8F3SoKa-8#_L_>vey`OfOEI{Uj4G6w|lzVY{!>Vub&Tg2=&T;rQLmX zs(>P>aqG2@rY_x2{!W^jn{~+cMjhqYOs#om+FC|m{=<|8IsQvK+(zZ?&m=PHsu=$W zEZOp^y=CXXV)@4DTYoiLM&++cGQHg`DrVsIpD#l_;7-%7epz9+v6s8d)+{)7`kS&G ztE=h0Ik@*+?_o*a{vqox6HVm?I~mheBrIR~?-u`nhdQM9X%qjwFFG&l1j>_w%qv|w zQrfS#r=%|Ys1X;_UV0aY<5~Uf^p>lyX#VZCRX>(PQGaYOV5sBDAoUY6Xq0x8(Xz78 zH@f+~TptwO?uip1@S;P>VpH+{)50CU2XajYD)$9CxbuO|4eebk+dUV`za}4-olmo^ynoL5y#De!8rMEW6~4ia zgR|en{U3Z|e*NAcTY##jutS@#A%^?hxCD9y^PKrB>>TDv{Q-we85!T&6|valTYR(F z^jlXvv>vUFj(~?~4p%`2K)0M@fHLX|uav_lvh{J0=9i$B|I^;L|1;hH|6fJX341%` zG^cX7oHAWvHpGyKq(Tn4NOMfG(WF!=L*|ei!d7!Gi5wEr!C~4&&TOJ$#{so`g=eO%8x82-q^LjmB&*%Mqf7~DUM|Xb0k|E45bXqIIbc^h?pLqPwh@mA1gf~C? zWfviUtW*OctEb{spYmTxO7>YsfHc^Uiuo^Vqpvsa!zWb1+*$59#7!wp=ixfa@1Fvv zqM8^pt@v2M#yT7pFX3@qafe^rF3Jc0ogi5u`{#~}3s(ujdY_LiP23s3JEcPt;VrF? zer(mys2qii3+#a!<4McSs17KStrVBDFkb?xyX+HTV_>TS3tzZ!b`!~i!U8F?g6--+ zr?!9aB0%cq<=maN^`_EB$HL`zx6_Ze3e@I4A6wad!gID035tQo)kMZolr)Z_`U4NuulvnYD$71}bsO z9r9DL_6fdACRAOp`UD>{+`KP+e5Ebzd}FS6ans`t?{$Zq^SBH`pZE)I10(iRk(nWC z$klq-T{-b`^&M7Rv0sBKfTpiVn=)pDQ*)^s+)gwNf^<&5lX@%%-9GcWU!^@l0@U%l zaqjv><-NM)3dKss19BoF^@9oCKn@SunO87;o^%LX5IgpF68Nf7!yEwbBHc;vfhW+n z2h5>1SXN5zjf$+l{iYzdEykwY!o~9No`;ua?W8 zhnoJhJ*HbdspOZaI`sR)N6J@)so5odG)gW6fqfRx5DI$SA`4kTDsRe^Q${P)Uq!)DbswtR=ck)7tZkdidvJWV&KR8E#51%Nz{DHPH$uiimx8QC#WIJw0^@`anwIn0^@m?9D+D}9dyWc+nCY6^q`d;g3q8d8D~@t)0OzA6`_ ze)yLCm^dt^lFe-fdMdbec1brIK~H^2(9ysVu%=FKfVb3jX9BFq%N7QL3uoZ22qGmY zCpT(oa6NbCRQ;e!fpFe6;ir5439IUQx137%-O6S)VHC*eg=o08tORJ#AU%5|7Eq}8 zI)FxSyjV+vrq4GcuCiT2vjN2|o3i@`Mc)tf0iZeankq;?(HUXX2t>Cf&IM`}+JLv>AKPU%L z8ohKqG`1b@f_T5r7G2Q{Y(`~bgBG8FoZ=bYFnpTLguaYfCvcjduHGYzSUM5jy4=M+ z!}+>r1rldpntH~*hD@0yFz)5z#u8zWnnoq!uD)IQFW_uBy3p!Xq^_(m8w>tO4-Q(S z4}Mz&EF!NFOm`XR1g4GLoc)d`u*T5Q52Y^6KmNmG&)$K1j}!>7ap2GNxeMrBkfCGN zP%>Btj#>Lo^~x(A1$xQjLP+4tDxoVt%FMqn|GgUj+r@Bou^{q3BkQ0K80F^-jJ%OD z#c8HzmVYlwTIRx57OyT|39-~)qZH`aDze)^`TJmBZqok7&Q@XHUUntrM}-x}Z-9@> zc@1sjhR+VsIf5CyC>@%XbM|OpzNs30HgwRFBz$hb4T1}XMqq?MIJJ80bU`|S$Y%1^ zP>q@cU)L)QRGV2{%C$WxEpFh~RRh4@bSe8PSHLO{?FKu^StwVdvaUc(6K5D^QP4mY zQBq+`CEPi}u$Zi(p>i@4&J%->b^d5B*Ja2N&Mp34afqpKV;fav?UM6MarifRmZod? zLbXA-L&R0*%r4Y%hpM_gwd7IQdLk2f+`BC1%F_yY!sOVYnRz#CES@9iz@Wb=-S~XM z$>4sYQx=i}Ho!ZrU@W|@l)CuZTght~15^<>pPf-|$7wi?a}G4GQ7&3otzzmL$*TzS zn(yV>O_u58#{LpnAefJs%XJUhimDkudur52S@iy9#AsNT#;Z3vTw}gNad#5d;?Z;m zzk#ow9VmK661!VAuder@DU%_ zBinpeBI&$gBd6$GPBEZ1UAjsM54z>?!#P+NC7pH@vZ0EWJ-UtFiQ*Ekry$Mr(p%$u zZ2iP4G|N1(N_aO?5VK2$+7>KAl^6)HnIz?nb)himHIx>{oSWP%#S?dfD@$g`v0?ZQ z#F!kr`H6I9l6goJD$haf`B*?|=|RU697u?e+L{SDq4t6n4)<~dg_@|~IqSMRx~$uy zMOkG+eCu3>y>CBZTQrhZVxoQB-@MNuDJO_ajFU>>YFM$0i&gN58<%FD6>;#lg2lRk z{He}g8n3E5+fN=Na{}q*Utv-k{n0-ajt z$69+9v5QUR>6>5!EOh=E$5KjzxKx9Fcn1fO-dGcv*~PK52%yH-Ys*vm3U!|)=_2QA zt(*y0sGrt0YI;N)GjoxAf^x2zDFN+V;&5D)`4&sN6n||9#u$QmmQTi8=rFJ!#w3tv{USeAJZl_*}glp^|V3B8LLn9Mb+f`G5_SE1LrV>?HJgo@Sey*Xa z$~hztXFdO!^w)@IC(!7%F+5kKmbI-e$kx1*uBpp@`e3P=sEm;)WT4@{s_ zKSXJ*LYtdH7?NF>;f+2!YYc+c<$#73^>`WpmBpWhsDudLndGaFKH*9f1R*zfXz6Hy z7`OUJ;HdbU=`z_G-jn}zHM6l7xgc}zn5kE&WW=LtN3HylCU6qFqY36Y`P4LH?J0nK z3WVCic>q%ukc}`iJKv}(>ZG___a^9}l5^6p#r*uI3%Twz3Ho`IR`LSSGb|mai#d_G z`_j&|YET>TpyFKCD_itfL=ttNvJL1{IBLeQp!${((sy2W6y%ryi)KHzK+fkPbf>No4gw2Yx_~*ZKL! zNxGYGszDD;0b6)-6v!{Rjla1bua9DXf|B;?f0f$}NbJX#HBmEDNoYLO^xtW6^Y<^ zN)9Zz0@nB7^20rAQKddZ?S;*4PBW$9+2!b=7Eo;|iO4GH#i~(B*0dyvQAigp+imYa zb{PXK`wUc7o7azmXm0A}FOF4Zai16N7cVlw2@mjUdhYY`dZlC*|Cu*XwiOIi!*|AJdypRXVkbUmjxdc%S z+=;gvD_+L1j^koeG$5XOfNGAVuBwh}k}0ysO%i_~-PGX<2-kWZ@VK(<&yh1>PwU}? z5pZF@LKQxZ0|DM`u2HxBL2<%>gydFy1*K7!H62xOckgA}t2DfY2|gNfAGV2;g2h5a z%|vB^Xm`5#`G3Iss;PCV zT$Be>im*Qqb;M%O*{Q!D?r~mTzq=Oueg(5$sYl8Lpd}5t8#4r(!+Zd}IGqsaM+6-h zi2gMJxzhql@1H)pfV19V4{q*@uYjr=N|?`N$UGd{sCx)U`rzaeHdZL|pb~p+Ct@#M zPE^a?6^(~tRCWtcVt6}?rftb}pNM_L2ps(^7=cu;%&KnYJ`Mm)cFK>@n$qiveZ-F; z?7Rc&R+IWP3^p&BWKk5RHL#=AOgM3rX32N%0s-2ETZwbQ_j)k|`qIlG+XFUe+`zo@ zKY$+lej0;>#5M6?>YxPokp$D}Dz2$AH95{P-88as{Cp>vqMAi_0F?oFKte^L^(~+o zp8pey@Rd=9Rl#PuPRVL9WmGP6Q{HHiH1Tec%9IL<9twC;LYYRw`~0Z*<1Mb=c1a&r z4FShVSS?tQ<*X{tbYVx-?8@N+oxV6_X;1`h7#>(==a(|AZ<)?a4K8IQ3GJ_yiQD8U zft|jh9g7(GH zz9}@}3_6<}W7>1}h)S(tZ@Nr?sI#P_9O1qZf}4LyG(%xdypcM0L_(54jaH4mSf&E_ zUATw#UL0m#hgM4>#bq;cr&oZ>a6RDlZ=q8kJ{%Zx=Ly^S7!KKdVWy8kD@4V+#Loin z9c30+a?TwsKep`UW+}Y=W3K65F2{JR>(o=wPE(l&5(x$u_4xMV6?&99H1db2_-CQ* zuh~Pd9a(u9oIP#{pUo~cBx6sB+lbqD0dr}#HuEq%XNQgydt8pv*%%xh8<8F_=w>;2 zl?BHR={hRncW<1v4%l!M5vp{1^1rM?6{9VBoG3DbI6z+;qR-PzAbT$eU zKgxrUw?3aXxbXJpwCbiArbbGoVXkM^EbtoOZ`om+?Wgu$RFYD$yBM}-PN(q!Q^JTZ zp+yaRFT*l3b@n-C{*|bi0{II{9n@?rNkO>y6@HKHmnY8qKROQA zxC{|;Mfx-&#xmE04@wZ;arTLSTueU5%%)nm}WXE3yJa31*rhB zcP?KL-JR=%Rq!!BjQX|?oI0gozl#L%yW?Q*9~{0Pl;fpU8ZB(Kz}3fqe$W8WUvQM7 zvPH}+@R%aDAIz2R$d-G1OfU8$)%`uH%!k}7v;L0f`7ruJvU@M+H#bQJ3ZIHS=6zrZ2r67*h`I_Pw!Elp2xV!%PHK<}VW!x;eo+$TSNLPRq= zWIPVMkziZNZT&X6_9la=S{|_aVPio?sIh{l|;2SAKj62ZEVWGc=z1du~!Z-x=yp*)YEEI+bC zgP^sK7Q5wUOR#NrI&!O^uGhq7mqGpUpJamY1_#y6kj)tr!>H627W>`}KBZUPBZX6^ zFTW(TSYOGT8*^8Ek$>ZcG(VqRn~8Mn`|c)JJ;f48ZqQcm;t5Vc()H1fkckRt2*4Iq{I6!AW|DA~cf zkl{7!f2f*CKsamm`EwvzHZ~ zoXUmSepof{VHYy`&iDPqFD=wSXDsE36Y8~eQ4Ie^oEOPdj6c(N?0}67kG*p{jf|N2 zTWP+V_0Cj_*>imxDD|9grrU2c{k{OoK(_Tse1b(N%ND*Bae(SskEZCf7shQ3aUOch zOY*-Q!e4560FIu)LC`W+eWO;JWLE!fV1(p>+En(M~?uAJ{wvvf1{Y=`qt2 zepy2s%55IS`WL3v)#h}O{i0SAM^75vaSb|GYTvJW?(*l;Qj4(Ue(D?sVW<7P(d0dH zEzeUcSS_J2NIT8S7B>QjOgmj;1CwcFnTo7PM+S?%P=@V3a8$M^T#HL|L9J9ICL`P= zRd~UY6xl7(>^z674GDi1qlaV#{eb-vXD^Ryti#r&w>W&)@~rZ^t>o8ScLb;kN&*Zv?I2o5E(G#iA@Q7Tig53?YIh~8W*&Bq|unY zVoObFP!8oeR(k!gAhK(J<$g(mCK_4ntZ!n+$>AB7>#xk! zo1`OkoD|CDW)KcTc5ACXbcCHEbvNEl#kgOqgJY*s>pBGErMBX#i+l3|Hf{V=*_wMY zjhI=vyK1eL*I;{Z2;H>k9G-en5dV4M=vx#?lCeDQ4D+-@6C;M+Dz9B4T?#MO#}Af? zV=fyyWgQHKs_Pjbsl|Mo##;U*4EDY`zgOo7HviWQV^At2J20QXqiFN(RgA?12kdC3 zlEGBJ8aP2$mC^5&-uO}7e$oruE29xPbl968r(v|hbh*;@%uO;{i@URmhD{{sYtlK= z5!T8|1J-`rl%D}p0p2r#WYye?Ts*xiD(z~3`7>>Kd{#Oer7B?44&8(SIbRVEYMG(p z?etj>j8xI^++{v?f6fZ71L;mSLY6#gu{!2<$3>rE+_yly)IZ-hXyd2VyIM!)lo}8m zERcgQTgh{)iEL(b0Ge`%;7eq8dlaaau!F`VG2Wr9x2Q-bl0Zi?XS%5a8T7VQxH^lU zjiA>SMK}`(Tct+wjex07*Eefu4N`({^_T7q%~QLji_Ezp5yqp)Hach@Y_!uhr$1L- z=>PIzB~j3Qw#C_!Zl~yprCW@3uV9i2NEc@UuS~l2vZTM(=}1#x3zJh27nbSfds@ zmz&-!?3Rw^+qZez58bFp{pGfONQodN;Cp3K0%2>^YqKS6DtR@2q}Z~iH#<^thOy${ zm(j)PZ1g0>s2QmWI6+bo=cfYD&$RhnZC!C23eL4pTZC+B0V3+k2vjlVAI(Beect?Q zU!@D|I#?bivzhP!v=*``lQc)1W%Ro}{h(SjtCJd^f2lzw2t#gt>UN0HKTi6o8BF}; z=268FumuNdov-ST#tgvl8FGa8(rhnMGOyOaH66)kTc3&di{F04p`|2=dco!R`;#7bB+{&Rf3Ol{I%{8^ zY$o8!jA$^Jd(6cC9RH>|>a?>By0kNOo8Nm*r;qpB<_IZ8@VUz64G%a}*@uXZACG8! zPkmB2a(S#V=9rpzTjhAPkZpetE?tweBlpft_srfD=YPwM{AEV>w9_@e$JO;0*v6E) z&P3O-c{Q;o;ye*05`$4axvAn#{Af>DVP_ezM^{57po7i+B&Cv&fVZu7rNQk0{v3e%}O((#|c zr5om3z2?$Lc$BXGF@VdcIM?I%W9Bb=r&J|3@2$XTlo@TjJSo!Rz5B0+k2#trr@Vch zkCL?(yt`D# z&c0+MZdMzturZyPV>F*T?6*HSPfI3p7><=c^|mQqO6q&vV3C8#mpBP8yDjyxhIxt7 z)(_HwVR2=aeV@(wTzlbh&6$z4+is3Um>A7p9@I@yi;v4StD}iwiXEs4Jai$;u&5>c zl(6s4L$9GX9k!lR$q`0;S2eGPa(ArIChZtHRD|c=`AV+mbk3(`)kBowLrIv-miXjS zi};GNR|pfI(PT)HeKnp)VZq#Ubwf>j=}}{{a(pUWOy?N=++dl=Z*`3QLX}Nd#-nf^ zz4NofRZ<@f3Tz7P)@J+MsA?Y_K1RQ{@rO1-DQ0h&jdBRb*LK44{hj?3OITHK{;g8` z?-%KU@qN@SNf`EbQ$m_FBIm6VV(aa^V!^w^{pD)(`6#4BpDkrJ0ngAzsSw z#$!rGBfhpC6TevPE9#uaQ`OCH%FCT6TIS_%+$g#~7;=3N{;eeO*?QOTzYw4GL3f2Q z|Cj)VISJ$B%Z^l8R$L1@P5H?dL**V^Y*KUi9bxmCb2}@oMPvTv{r8K1lN(l=))2?2 zshXd?6`VVj8t=Omv`s!_9RB%j2q%BpN{g6%33qgTs7mbhF1BN1CVsoF5igGHHviQY zHmf}nA-47JEw5oWt3uLq`{jX$VG(+;Nm&&PW3Ri;&cRv6=2|qf=tW;0oQErSElDKX z^RW*VUk>7}TI;tBz22Q5`y#O+V5#<`!?{7<)yX!3pgE`F+uZmStjMtU%27Y1DM_EL z;$Lk!zq|BIT;=FPy9l`Lpg*3HPHnQxtQrJrxL39OI^ZeKalVLGxwbuov)mMlhje#hglye9m#WLf*MB+7g>zQLwpVzqyOlh8 zG(T9z?pkiumcSQr9T!Ve9zW5krKa+!TqjePFZ`j7(B`oBV$C7k{12?+TN*nB(Y0Q) zV=RJJrX3lJQyX3j6_zVu{m#c&PhNLPYvep9=rAPy(X=LjFJhypoYKfZ`-(B_^)FDL zLT!Figzt@idv?tJRSFX=Ki$e(KHOGXPvVXoyU)E2pY1i3rHB8fyKsD0hLe?;BgFc< zvkmQEe1WPsr{me$5-T?MXL7HyWQh&wE860f4y0p$*Jnk zoblV+OyxB!fB4|b8#T$OX&-UL%rD2}&0n$zIhDvv6JGE5PRD(yO23cI*f=Le;1i!} zTY-C9XM0rsrQUDKa+Oro*pMGQ+0}C8&L1gb;&NI#V6nuyY(Mx@%lg11w1Ka37S*I&!cwxq(}2Mktk+is7(;Q!So!+rAVy&#nfw4b|nFI>*a51?0DHWjSs zA;Dk;@8mkZf-+#X&hESMaZu2?;p2*>WzTC^SN%SULl6H@i<#AbY{-ihx+OR%ygAG1 z-<_rZN3*u2|IK>~>BC7;R^m^&zq{o`S+9z??#J9Ot^fPu_1AY^f-#Do)*`4GM0rQmaU@B-_U~7FAJ)Be?{u8 zmn?kY@)I|6+TQH=sQG#+%y^LR?N$%?Ku28jo?7u9kFtyoJVaZ1R!(Uq(jupQd!jk` zoO$EBg6+3^p|b-;t;w2&_XkVQ#yO;GCfjX(#9x`pJHNlTox^(M{re#^>iPBgoc%IA z6Q2Sx&&Uu3sA98~a9(ad3)TY3sXv>?-K=@6M1-LmpdbxMY6!LP)Oc)QxcuDQhS8$! z2&b{^w*hTw1>t zxLZzDf#*LPXXw5I-cBmff>&rIR$n!8E_3JC$FEq%`&cw;WqLDlYyVLFlQAHL{@ZMUTa!ZN)dn1baJWu&@1CPazSEuW9l{$ebA$M)viZ`+xEvGTP0sXySb8%5bcLzB`DUx|_Wjp`W$tC#i`U)f?WFj( z_W$fst29T``}mUV6O2=>+~TqR`*o{+S_0*Q3Cdy8&Q^V50YyOIey@Y zNM?-%Euk9C*`ht7wTx z>0C|Ixw)`(A>RA$iYN8TcypdssV9Rv&U@)QU&JJAF8B12OSf~YD_d(+AIJ1t-pE!< z_vto=YQyImnUYK$F3ICbQ?E7kebF^=TDlTI%SN{B@_8PBo=0B*`(m>4VN%)HR{vl zASz02dZfIS)&19rPTf57Bxfz;% zqKeqsv!ik7;nm9bRGvMPszdx@t zciC#Y(wo|N(zDt7GZ>5vRVlfwx&dQgux@7u74f++Y5cwO6m)}9Z#l5=Vd-Q<3022l zO5>A6IE1n}u%87eUa1FQo;~5HK2|)Pn|kN#6F$aM0T>MS(g#@#<~_n!M(%^Id=Y8V zf#l;8@qTWi7|iG)f5a?DZn{tdN&a7=iEhUKvhDvjH{obcf-IGD)0Mj3Y#>t>T^Ty_ z@-A&F+`3tjCj_lt@et8bmAXuYt+FQ0ZTtxpx%rgFRgMS~XGTx+z?!3RN>1N%b@Fxo zaEWv3lH`+_?rebz?;USwN{U_5|NKomL%V(~xCAIx6SIl;ZzoIw?)R6+&4A8Spo=L3 zfosmU?r2KWNNj2r8Mc$$7$I@bY~s;QdsQ;}oTmwj--05Bqwwb$d=S*Tn5q7P%t5!= z-q+ew!)5L{Q-ftiDt6m<+O)eq9KXu?2XWI~zK*3(slDD{Ae5{`_+IH3m@|sJ#QYVjVIGqopBmNQ zG4c5qUQx`j{!@eUnv=T)L3m;Th1 z{rb(+gdN)bhfBg%Yh~*40!cg-L4xnaqO;PQEZ-{w?j&g2o%KL2xMXL!@l7q&WSwqI z07irE!_GTi!`VvT-L3I&$JFxcRs$~qVs&fZt=w5w5^(w}Zy5JWYJbPfclV#3;nBz| zW>0ujSb2%DcA^g#Kg?NNyYq$AD|s(m&-jxxcDT}KkT;l`*u}qQyG5N@c5sM_t$cxT zp;%bsMdCx|bHGR~LywYTf@DdFgD&F2J3_}vXvIxqW|YFYUBBrRfqGEVd56DpBVjOe zbZ^joxR2eIjEIsFF%ma8xK|l78RPPN*+Re1hYX#}XgJ=$b3F0$)l=6TtCKO`0wlcF zdVPRBs^nQT+fn@mw0$3bThege13C(>A+p?KrGM8fRKjAtv_HOFRwFyuzvfX=rwwR^ z0a#4m4ZTSQy2*yvhr4?fnfLvfF5Na=-;&nr`Pj%;))ag~pcWX)uXm~D0DGbJ?%f)B z$3`toN++hB&VM`Cw0(aGkW&;5>-FNq+Dj&tzmh`=0YgPx9e=B(`XF6KCqw%|`qzL> z8X~-vEC)WQeU{a~Jk#2Sm5%zjD#5tI)2#})ZJuop-@v0B>Dp*Anf9&I1j8bNlKHPn zpKT*b?4_R@`0D*4A)C(JZDITV-in^F%bc#$oe$E#>HfghuZ$K*LX$W{hyAv*HsFu~ zjl->wqZLrf+#cM9LN688=wAn&Jg0IiWAKIV&kCY1#+hHpn2k)=M_E@&Da^_BcJRFk zRFw538#AyI(h5jJB-R$yMn-A^=k|bP6l}lXue>(pr64#y5@F&iYO|%`szZvu{XI)M zC=D(lN{-Fr+ZesI|0m!`wPPW(&Y99*C`knu^;R|ywd+)!5_O8?(n^Vh4c7w{u73yi z>3rIiV;58fL7H(Z8IkzcsWlF)+O6d5(lA+&FUv^I!qe*g92PC@B>C4#3)C-n>!Sox z#iA#HI(;Gvl*i<|15g2De=S;zS7Av5r4Lcu(PM>u!U{G(ws`~TuRQSpL``k zaqSgh)jDJmJM@rfAu;Rz%`KuscvHLn{CWmngU+##lx{pdry@{iU4l`R;ENNOZ}g?) zrw5XlNaYo!@#koXW&V&8!{VioHGo#lNJ=4%!QY1G7%7*?1ig83k_8F98+5#={o-kl zQot9Cqzni8vOx#UnPc8=sJ!o&QzNe%F08W-24`Js6}}9cv+w0663h<%;ArhS-eg3; zJ{nx;IAGZq@KUm_Xh66Nb(tQiuYs7ZI0^GWUf`@xy-5Z3_+Qq~2gg8PNh8zju%Or+R^1Uwc!G zNGs~U=r)}O=i%F_=7pSe31~SpieJ=fYS-olRG{(U4r9JCgB5{oYWuZkaOL)(J0;Vl zNyV>n9Z$G1(Cnp*;1}4*sYoz)RqMkzRY3Ms{&?fDk-|nfNKh8g+DM5oqihGyNvFU@ zC(mJ6G7lcKUYID$F~_Z`)EE$Yqej2KD1)c1cJQ>jL29vQ;y1QKs;pkvgTYeQJn8E9 zqRte=m<{5CBk9318Q{L`Jg%%&bRVb3@*dQ_7!bbt^O?A*%wvf#LFNaC8v62>s+m@5 z#}o;YhOhTQ#Q62Pa~C$2+lNm9cvQ4iX52?>-1-JlwFB~H9^7Qy{wrlWy_IL(aXt@9vsmLR?mc5YjyCS^ z2HBDEH!;39(blD+Bp&kJw(o%cq(@&4H6#+XWhlNS^q3$&SONIRo-BOX|)JCvnxvBZq#ek5vg&W4S(z3)EPba&WP3{GY-{-bdZ58Y68eCzCULqobx`; zkEy0T_^S&>e~2~n%o~}slH`xpQelE@5m)&3KI;f^5-iX0Pjzf&;0V-eQ1JDzrfOQUBGAwKgzb8S)CScKY*)rDk9lA0s zy0XKGa-qTz#-7&Sw&xsBo#oLDULwYf(j1)TX|VtdmqGr;KV+D1oM;VpzUVB*cUqNK zqr!B*a?=7n>{BTEurxOi@}ogDyP(ufMG;OM7A0UA4NgQU++ZBK!D-MEFLuBZNt=pq zeMp2^dUWt-j4IN2INn!UsV4a01Ao|icYlETYY(LUkJFM$_}oy1SDDf3!=>-cb9*T< z_dk1Kf^^`f;3+h|yY&!o=K**S&OMyz$q@mS)lt-JYkk4ty36E<)6zr$72jnlrc0N3 z^aw7TZE_0}u!fbh4GPefVKN}aa1gH{JxR=cK7U)i07}xl>)frF06ggRwdTy>NEYe;Fkn%0x1nI2_!JJ0Py$v$~(`rmi$RWUb!Ov=nS@<2{_yWeTyAy2bFfu{h!O^ZM z@~_Vj{>mFa{`_C8p909wqCekyyyg(Q@-$EUSveZ7GNi@0(NZ$dnoM}w=aer$_Zaa% zWTdd#u|*75c$M8}^)=5kHLtZ<1(8?(nj)`!?ab6`9mB}*pz97Of9L;KI|?L=57|wb zO2KPT)r#u0ugrI6$Eak!XoDVw{1#;>M)pznPtr=`yQ!`%eLH5xO+i<|ZWF!p7jpR0)-ZwBJnt3A3_29GDr4USx~zwD z4Nuof1uzDHDF&3J{`*eTs>xCL{e||np+rHK4sJX#&rUrxn|QBooM7H7!WyVs)#OA8 z)f^?abFO*0s2cnH(}{S2<1b$f7|gtJ>V;-$fJw3AoiaV1F42kiW*rIdPF6UmNp2?1 zH6-_xL!EFJYy&6CfoGpGWV$=sw!g^1q0wt~@=hS8&EUvT@NLYQQ1lEgCR0{SQd%!( zCiqK#4Pg~Cn$ATfUwhW3KR=z7`Dcl@7Qn(>o5HA=k4lcRPoPq^pY!_~mouqCsn?%2I_@TiE@Pb`LUiJ3{K|>vm0$ncr3L>khagNcyJbvX%aw$V2*~mWp)Q;Cepa6Omh-*#!0az$4AV z=Z1EH#apgm&b)9%pO>f@KkVzq<~ezKKd@%ql@%3QkA7`drM$45A5<5{kpsUspX_nuIr3$88h|m2y$wcUY}eFV%UH$ z07Jj!b}}GU^wMb;>eV6%ukioy+ogt#Ig*TuDH80(Qu_Ti(Ks=8LPa#&459%7;A=)G zxlF{mM-!2d7oWo4Momfbqinq@kc_0g&FF31ZV!}p2R+YSC^^l5u-|l_{i#@2H0Tzi zVp$8K#H{$T?|z8}U6StSSq0VhiQRm}?H<7ZahjZs2wKx~o-j z^*XZJ1JH(=fT`a<^w{RXXH@31Osa<1kbE)ML&)qM(hfTzOZQ4%fYWuhw=J%t37G6V zpHt1fiCy@Lb-_(AIt0onbMMcnSW{xy(7q0t;@Rsp3l)MYmFHafRFTNP^hj5l#-Frs zv%rs(R{v8|4!fwLY5;fbuVR4vOm!ZAs;rbJCUWBNt=8Ec!ZEcBiF-rUuf*>~K1DQ=M@%WL+-S*qhxpgv%!@jyGul&m#jbmKhknmi+ zj4N|<<;3hff|5A;!?g!zc__dJhtEo)OzLL++4(l^*|7`#lsr;A9~JD&t79B0t>;T7 z;x0+VOYJNMih_gU(Ta&j72sL|Whwczu~R)K;he2ivZ)I1b=&SsdSM$yn+o;Eo2OSH z%E9_z&qcCodtR(;?dCw-DRx^MUnuVNdP(%`Lyt*STXnhy`9HY z%)*G)@u&>LlA9&g9~y2S?qZzH-zqz6fBotDke5SyufO`RQk%~?$XlQWmtxTzJzg~I zn`fS`!4p#IJS9Okf+!B1+>LZ`x0&u{aX4= zTKD2Y@&rf+LMR}B7(_o1|LcQwkph+>_S7G)V>W2>$cgZ3&9P!Vx=cDmtK9w{jobD? z184$%q(Db^zLeXf&`v+kXWLDy!qZicMVz1F6=X&FlG}C5-0UNWM??-zX?db`L365u z;llyvmq}I(2R``FpY+R3y+yyBB{?xNJNTKAwben9igpAGA_h52nwV=WfJiw)?j?ym zLo}NY%hcc_uvPS`QuYN?6gbSCgd?#>qbvWx^AbSfnEJxe1%5mZzM%G(t;uf)h`J%xZ?E6P{8=_TtmaW3TpCm>lJws8gea_53uc%q;b$H{L*}+1k zKXHT%W8Uz#UY+hT$es~5bbmzf$19Pk3GBazCtawyU=O?TeyMadJRlq;ewdB|gFV$| zI&5mW*A`$JoqRrbG)+3A=4UiXwqcQ*=)G|Di8XM*7Usfz9O#O4X;jt9+~$@;Db>ay)YpL%(5}@o(xp#Z$}+eH&kP<_xb3m z)2V;FK^AdSH%inwB}&jbtkL`>;F;cJ%*IjRdUTfKt?>@3VsrUPndJZ{uK-0WoN8hL zfwcrIl#+l`r#;z0D7Hx@p)LYhA`&omG-88LsNlKz-awyr!j)@@DZCW6b2Dt#*^qlJ zP`~WyE<=yi3&;|NP(hyerjvlxPYykLNlIcwV*)VMb-)Sn*L1*(goU-1YgA!U>XMEU zM~6ahXFvxkjR0}qn)ZGCF;uoth`nMGF>SbX#0ck zoTc0aUD3Amk@_b(*_L<+xYjwK*4XzN$!gBKslr-6kyvW{@Hbh6n88$gvOUiiAXBr7 zboPSyVkqZ)ma{s0C^c3Q5D1U1AOCZPZLLLYq4)7u3gkFZHnIUP3 zh|7nD;pZ-7&X5QT)SSKzHqYJ206d7>U&g-7JZ1N#u!-}$Cq+h7wYQbo$O@8xMv6w_ zEzpRbB6M^m1H8R8o88amji9zbxBogn0b6A~NYdcqe3L+{vH_Nl(?Dw!O378w0i8K9 z2;E$<1~JcVDNWw{v4Adzr*%ee*+QjQ+WOP=qgW@zYmX;!U^DA(eE~_yDq7Hb)G6qE z4LQ;B&zrP;rWlMks%U1NjDOpe_=Qqq-J*Hw4Z!{o0(sU&REA1t`XJ4uGz>lc-hYA{ zBp6gVpP-b__&dY<&mJ;|0`QA@!B_et_>^dSIENTgqX2%_w6HKf2PrNFC{Kqh1zr}N zt&E;OEeMby62hOUOaDuQEK;?gLHlaSKC4*{8ei8D7D*MQ%b8f{puozA{~q&glIiHikyzf)>~HI-I& zSIna6ct^R1GvS=v59mI&ht@1C@Qwxy_k!7_;$;6|*b_hlO?VrCU#Q$}8B3_+j4-;p z4pEaruY0V#e}$npT%sbr2WgKK>y8w@LkCJ2{-SoCg^JkCCXgA86kI@9Qk$I>+Ie)3 z7nf~P;aR{11cs-c1xmaScy?E)YKbI~&ZTi)w{$2i?7H`cV@HM#k6wUd`(_1vtTGrg zIEC)^;Y3Bu1{GQk4HqdkU_%)3c~*dWJYG6Oa29>kft;T8*ObJ6+vL~_YA~36WM(G> zm6G7R<_hja@kr8ZKX?xvqGTk1%INS_+txSN zfq!gUlO_*JBeD%d9|Z>BVe^z2-Am_G9DI%0AVGJX^KLy6hyBNI~eQ7EGr(TF_qZo2>RH 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 W0{2yAaR$guIV{ecH!VBu68%3*(|cb4 literal 0 HcmV?d00001 From 937f04f51cc07ce611bfd148af94edf20c854d1f Mon Sep 17 00:00:00 2001 From: Ramya Korupolu <104009248+Ramya-korupolu@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:30:08 +0530 Subject: [PATCH 41/53] Update Tree-Traversal.md --- contrib/ds-algorithms/Tree-Traversal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/Tree-Traversal.md index 1fa6fe5..4ec72ee 100644 --- a/contrib/ds-algorithms/Tree-Traversal.md +++ b/contrib/ds-algorithms/Tree-Traversal.md @@ -125,7 +125,7 @@ def printInorder(root): In this traversal method, the root node is visited first, then the left subtree and finally the right subtree. -![preorder](images/Preorder%20traversal.png)) +![preorder](images/preorder-traversal.png)) **The order:** Root -> Left -> Right From f1c00b3443b3c1b0188d28424581c128c012d256 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Sun, 23 Jun 2024 12:50:58 +0530 Subject: [PATCH 42/53] Update and rename pandas_series.md to pandas-series.md --- .../{pandas_series.md => pandas-series.md} | 90 +++++++++++-------- 1 file changed, 54 insertions(+), 36 deletions(-) rename contrib/pandas/{pandas_series.md => pandas-series.md} (91%) diff --git a/contrib/pandas/pandas_series.md b/contrib/pandas/pandas-series.md similarity index 91% rename from contrib/pandas/pandas_series.md rename to contrib/pandas/pandas-series.md index cbb9a0f..a6fe042 100644 --- a/contrib/pandas/pandas_series.md +++ b/contrib/pandas/pandas-series.md @@ -1,7 +1,6 @@ # Pandas Series - - A series is a Panda data structures that represents a one dimensional array-like object containing an array of data and an associated array of data type labels, called index. +A series is a Panda data structures that represents a one dimensional array-like object containing an array of data and an associated array of data type labels, called index. ## Creating a Series object: @@ -14,8 +13,9 @@ import pandas as pd s1 = pd.Series([4, 5, 2, 3]) print(s1) ``` + +#### Output ``` -Output: 0 4 1 5 2 2 @@ -32,8 +32,9 @@ import pandas as pd s2 = pd.Series({'A': 1, 'B': 2, 'C': 3}) print(s2) ``` + +#### Output ``` -Output: A 1 B 2 C 3 @@ -52,8 +53,9 @@ import pandas as pd s4 = pd.Series([1, 2, 3], index=['a', 'b', 'c'], dtype='float64') print(s4) ``` + +#### Output ``` -Output: a 1.0 b 2.0 c 3.0 @@ -69,8 +71,9 @@ import pandas as pd s3=pd.Series([1,np.Nan,2]) print(s3) ``` + +#### Output ``` -Output: 0 1.0 1 NaN 2 2.0 @@ -89,8 +92,9 @@ a=np.arange(1,5) # [1,2,3,4] s5=pd.Series(data=a**2,index=a) print(s5) ``` + +#### Output ``` -Output: 1 1 2 4 3 9 @@ -111,8 +115,6 @@ dtype: int64 | `.hasnans` | Return True if there is any NaN in the data | | `.empty` | Return True if the Series object is empty | - - - If you use len() on a series object then it return total number of elements in the series object whereas .count() return only the number of non NaN elements. ## Accessing a Series object and its elements @@ -126,12 +128,12 @@ import pandas as pd s7 = pd.Series(data=[13, 45, 67, 89], index=['A', 'B', 'C', 'D']) print(s7['A']) ``` + +#### Output ``` -Output: 13 ``` - ### Slicing a Series - Slices are extracted based on their positional index, regardless of the custom index labels. @@ -146,15 +148,15 @@ import pandas as pd s = pd.Series(data=[13, 45, 67, 89], index=['A', 'B', 'C', 'D']) print(s[:2]) ``` + +#### Output ``` -Output: A 13 B 45 dtype: int64 - -This example demonstrates that the first two elements (positions 0 and 1) are returned, regardless of their custom index labels. ``` +This example demonstrates that the first two elements (positions 0 and 1) are returned, regardless of their custom index labels. ## Operation on series object @@ -171,8 +173,9 @@ s8['a'] = 100 s8.index = ['x', 'y', 'z'] print(s8) ``` + +#### Output ``` -Output: x 100 y 20 z 30 @@ -181,25 +184,32 @@ dtype: int64 **Note: Series object are value-mutable but size immutable objects.** -### vector operations +### Vector operations We can perform vector operations such as `+`,`-`,`/`,`%` etc. + +#### Addition ```python import pandas as pd s9 = pd.Series([1, 2, 3]) -print("addition:", s9 + 5) -print("subtraction:", s9 - 2) +print(s9 + 5) ``` -``` -output: -addition: +#### Output +``` 0 6 1 7 2 8 dtype: int64 +``` -subtraction: +#### Subtraction +```python +print(s9 - 2) +``` + +#### Output +``` 0 -1 1 0 2 1 @@ -207,25 +217,32 @@ dtype: int64 ``` ### Arthmetic on series object + +#### Addition ```python import pandas as pd s10 = pd.Series([1, 2, 3]) s11 = pd.Series([4, 5, 6]) -print("addition:", s10 + s11) - -print("multiplication:", s10 * s11) +print(s10 + s11) ``` -``` -output: -addition: +#### Output +``` 0 5 1 7 2 9 dtype: int64 +``` -multiplication: +#### Multiplication + +```python +print("s10 * s11) +``` + +#### Output +``` 0 4 1 10 2 18 @@ -249,26 +266,28 @@ s12 = pd.Series([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) print(s12.head(3)) print(s12.tail(3)) ``` + +#### Output ``` -Output: 0 10 1 20 2 30 dtype: int64 - 7 80 8 90 9 100 dtype: int64 ``` + If you dont provide any value to n the by default it give results for `n=5`. -### Few extra functions: +### Few extra functions | **Function** | **Description** | |----------------------------------------|------------------------------------------------------------------------| | `.sort_values()` | Return the Series object in ascending order based on its values. | | `.sort_index()` | Return the Series object in ascending order based on its index. | | `.sort_drop()` | Return the Series with the deleted index and its corresponding value. | + ```python import pandas as pd @@ -277,22 +296,21 @@ print(s13.sort_values()) print(s13.sort_index()) print(s13.drop('a')) ``` + +#### Output ``` -Output: a 1 b 2 c 3 dtype: int64 - a 1 b 2 c 3 dtype: int64 - c 3 b 2 dtype: int64 ``` ## Conclusion -In short, Pandas Series is a fundamental data structure in Python for handling one-dimensional data. It combines an array of values with an index, offering efficient methods for data manipulation and analysis. With its ease of use and powerful functionality, Pandas Series is widely used in data science and analytics for tasks such as data cleaning, exploration, and visualization. \ No newline at end of file +In short, Pandas Series is a fundamental data structure in Python for handling one-dimensional data. It combines an array of values with an index, offering efficient methods for data manipulation and analysis. With its ease of use and powerful functionality, Pandas Series is widely used in data science and analytics for tasks such as data cleaning, exploration, and visualization. From 372f5ff634d6f4b66aafe0440da2943ef0274724 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Sun, 23 Jun 2024 12:51:40 +0530 Subject: [PATCH 43/53] Update index.md --- contrib/pandas/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/pandas/index.md b/contrib/pandas/index.md index 2a15929..db008e2 100644 --- a/contrib/pandas/index.md +++ b/contrib/pandas/index.md @@ -9,4 +9,4 @@ - [Working with Date & Time in Pandas](datetime.md) - [Importing and Exporting Data in Pandas](import-export.md) - [Handling Missing Values in Pandas](handling-missing-values.md) -- [Pandas Series](pandas_series.md) \ No newline at end of file +- [Pandas Series](pandas-series.md) From 33be2407c8ef074649604f7ea743088195476df1 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Sun, 23 Jun 2024 12:52:35 +0530 Subject: [PATCH 44/53] Update pandas-series.md --- contrib/pandas/pandas-series.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/contrib/pandas/pandas-series.md b/contrib/pandas/pandas-series.md index a6fe042..88b1235 100644 --- a/contrib/pandas/pandas-series.md +++ b/contrib/pandas/pandas-series.md @@ -256,8 +256,8 @@ Here one thing we should keep in mind that both the series object should have sa | **Functions** | **Description** | |--------------------------|---------------------------------------------------| -| `.head(n)` | return the first n elements of the series | -| `.tail(n)` | return the last n elements of the series | +| `.head(n)` | return the first n elements of the series | +| `.tail(n)` | return the last n elements of the series | ```python import pandas as pd @@ -282,6 +282,7 @@ dtype: int64 If you dont provide any value to n the by default it give results for `n=5`. ### Few extra functions + | **Function** | **Description** | |----------------------------------------|------------------------------------------------------------------------| | `.sort_values()` | Return the Series object in ascending order based on its values. | From 7e996f45435b103177848ea051e34506a4abaeee Mon Sep 17 00:00:00 2001 From: piyush-poddar Date: Mon, 24 Jun 2024 12:09:56 +0530 Subject: [PATCH 45/53] Introduction to Pie Charts in Plotly --- .../images/plotly-basic-pie-chart.png | Bin 0 -> 28491 bytes .../images/plotly-pie-color-1.png | Bin 0 -> 28375 bytes .../images/plotly-pie-color-2.png | Bin 0 -> 27284 bytes .../images/plotly-pie-labels.png | Bin 0 -> 32648 bytes .../images/plotly-pie-patterns.png | Bin 0 -> 53774 bytes .../images/plotly-pie-pull.png | Bin 0 -> 29403 bytes .../images/plotly-pie-title.png | Bin 0 -> 28099 bytes contrib/plotting-visualization/index.md | 1 + .../plotly-pie-charts.md | 221 ++++++++++++++++++ 9 files changed, 222 insertions(+) create mode 100644 contrib/plotting-visualization/images/plotly-basic-pie-chart.png create mode 100644 contrib/plotting-visualization/images/plotly-pie-color-1.png create mode 100644 contrib/plotting-visualization/images/plotly-pie-color-2.png create mode 100644 contrib/plotting-visualization/images/plotly-pie-labels.png create mode 100644 contrib/plotting-visualization/images/plotly-pie-patterns.png create mode 100644 contrib/plotting-visualization/images/plotly-pie-pull.png create mode 100644 contrib/plotting-visualization/images/plotly-pie-title.png create mode 100644 contrib/plotting-visualization/plotly-pie-charts.md diff --git a/contrib/plotting-visualization/images/plotly-basic-pie-chart.png b/contrib/plotting-visualization/images/plotly-basic-pie-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..bb827f9abcee6e007904ccbe9ef7f79772d971a9 GIT binary patch literal 28491 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 IG$C*Q4^#Qpm;e9( literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-pie-color-1.png b/contrib/plotting-visualization/images/plotly-pie-color-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9ff0ab91605808ace36b3d829b4e0702035db4ae GIT binary patch literal 28375 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 R{9)a>y9z4ud2)|m{~wR4jdB10 literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-pie-color-2.png b/contrib/plotting-visualization/images/plotly-pie-color-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d46fea98beaa9bd71c3fc8ebf32a7577b94f1a08 GIT binary patch literal 27284 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 r3 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

cLd*K4id~ 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 A#sB~S literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-pie-labels.png b/contrib/plotting-visualization/images/plotly-pie-labels.png new file mode 100644 index 0000000000000000000000000000000000000000..3a246591814fbda0a0a2287acfc0894ac296d18f GIT binary patch literal 32648 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 literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-pie-patterns.png b/contrib/plotting-visualization/images/plotly-pie-patterns.png new file mode 100644 index 0000000000000000000000000000000000000000..a07bb3d072c550e53676cc907d34db4f00415629 GIT binary patch literal 53774 zcmeFZRa}&9_XdgxN=OSxOG}r4NS8E7_kbW>0s=#q2#9n`3KCL7k2pg~H!3|abVv@} zu%CI~_j|u@pY4Nv`2YRpU;>}}p7pHzTGw^0HAcVGR3gBm#>2qCAW%_O(80jKgkxab zIl{RIyfbfnGmnAs7(+!tRu2r?&bbfP)4#cCO$MnjN)mr~(u@=J#K>TlX=41=Bxv({ zIg^1I4c_KV7dE+%`;N<;m!W&`ZdKJz$rC2L0=+~wVa8OJcSp|;gOOye->&H@|GrLRlWBMQvuLyaKU)HJAa?(M zUvq1OgiZeH7#L3cpIy8}c@X|L2pG6VpD?f?MUm+_%>T2C{DoE8|JfpG_0v0eAT=UB zai#wW3=k->f1?CE`M*Hj`TsjmFfsUEK($=%`9Sc>c?7giJG}P$x#KO}&B~$L>S}O6 zKJ}Zmk6#bk=nPfg>b<+A9*gC=&*fRiYehTZJjFI5^an3cwM~cweR9GOtWbQ#P8bmlL<1jG24Pz9XR*{oxu0<&t^` zr`MvRSN7>jOx_M2oHp<&=yO|ZdwMnzuq6jIC@#!HXu@8g# zA4y1?l%sS|e#0M?lKxJ784D5|qjvno1jCn0Yw5yd@X}A@sVOjAf#n*%{rhdFyw2or zz#G9H6Y#2wR;L~ZX^8akLhQlCulUt#oAPm8+j0A=xiekpw7bc;+y1p^?-C`_VEw35 z&eB$T6rWeanSvs{AxkSKx;Bmz{w%cS`PXR6*w92nrODRKq|8k&roI0^7-x z&MfB%>EUB{}89%!L&>1n8s$ol2xTG!S; z$2Ft`3)2KeNRw1~_2nXOvY8RQs5O2Wer(lo=Ch0`ykk`OSorcQb@1gvo!gAB#ZYG! z8;b-<(@fhZeNAEQFMHuoPWX#EMyy*fjz|iW~M$ZfX)+<|G7+yGT!MlGeAjhUw@wtO1SpCz3$)Dbs> zLqGTR%-_#?$^9RUTF}6}!vkI<7ydx!h65_hYhc#4KRJz~cu9r*?&KDKZOC!mSD4If z?%2!QmXE)2#58R3+tk){>lLh{?E8(HoDUCyZP?IMN!)PsWR+2~Y*5f<3gJBS9Leh3 ztI6pC;mQIR1J*s|Cq7TLj#^*aw>rx_nisj06CU|^IQ+5XUeB|==bs{T0yEFR=hR}p zoA2^fu25@3$?Hsi9RnPC%sYJGScb+>POzjy3CR9Ygqlx5*>f_h7k9?#e!f4+jHc0e zT8X$SEHhwd?=J6$P0KwiT-a1ad8gogri`YG2J3A~HqhE{`!j)K@y`a4NXbf+_lk<> zrB0zVg-hEbnT-O~xJX;FOz1*aqXqf%i=~L=pSIUEbhx1Az)o&4Rb-&yL% zltp=${BWYZ*u_J(RH3L52s)Cv#D$#=I}a^vNR7s)>Mh4blYCs{t{(V!_H>QBLEo#P zm3ix|HLrrSIT%`p=jOKd*&CU%g4Jqcb-$Y@rSk9Ef^!d3mJxickNl(C-T%3aTD0BC z7I%ZYs2xELDy&8wvAZ5s!onsQ=t0-7cQqA^m6pB%XYf@vGK3x_Kic4QV0Wjpiv7BI4ux!>&a)9|si`#ln4`#ftbFR*2zP zVK0DC>j>Yxo%`7z)G6^NekaaLmXG2Hq`zYaZuS}bmam4Wg%%D`fBb`$izB@J@HbYW z6l?n=2f>Ai{bb&=wGHp`BLU5r+(2Dk$=kOL#~w;cQ`>tN0=t79PHbu7rbb0>KKZyH zjn2*A5>E*)Qtnj}+4eoS;CpA=NVp^HS3GkCLY0WVMrNyxi}cJH*H7f|Nw)j@zaCKe zi(FL5J+{YkGi2E8rq$)HYM0+TJx*It#FJIkkv2h9t{> zO4Z{#rf4d3jH)~QFZHnu1h~)ygY`+mzf=s%8O?JhI!1<*|K&L$|F^mSi`@U^-2e9j zvEW#mo+c^Ysjtgg_1)xHYbqm}^pn`jb_ZmgJoU}>WaBz2;K*iD?d;w1_#yu77hMPqB;%8GTrAs%)NXA9Wh zYx4Y|F8<)v?DQeuZKbhQ0i8!5_UB>0%Ct+mxx&Jh!a=bEx5DP}&-)B{t1I;=^k1e|d$tbx5p#n5bKviEpKe{}+aZ#sQG# z;f>~7A(S{r2BRk@$4!^!Nx7V)RDF2Wl<$*EfXY?<2mrYlf+sL}OqK-(%x3ZmBskD4 zyZ6}elPTwwe1svIY=^czmT9MXwA^L@T%KA+Gc;%WvlEYq%&D*YgQoqBn+< zk@vqbQ1v#ub>gNqJcE$C4!dv zohzqSbcD4q&b@bm)~6k2bD6kqmrct_^(XYW>i|K3SczUw@2`uWV^YE0mweIWWDz>s zyrAg&8p$o@_%aRQi#)fCr~ttf>Ax+jM#p{F*!TK=DTjyLC0*VJA}GnUutjSYoR=2{ zRr(#q$8<-H_zY|u!+kr$F+R?O>hI}kikS|NG;k{xfuYC(5fgWvH68^}!ia6u! z#AY1ysnI=G&g+Z?kS&X}=f9#!~bEG?-` z!R;&G9Y@PKY37#(M|B4yjHz=2g1*A9;)!NH6-!4NXzy;!`l-p=t?$>*H%rE)y+@L+ zYyqYJ;ho_1g^SAzb6mM{=@IB1+^HNH!?4Ekb;;EdT%>8$c`A3%qDy=0?f#yPN1w0I z*sW6-WzV8JAPQZUPJh&C>03Pt^EsJif4%0=Gf-K_r`JQpLqJ@wHgAe#3pqw2h7jJ+ z!%MkQiqsS?S@V}>Gs7K-Y2S^-7qoo- zSam<7O}LJ31KUmS^%q3bQP?S3zU-Kt5nZ37Zf6P_DvnY#N95bL{*)d9H$7B}c~mEb zkAQ(YwR@F8c{}#>o`$BYVU1ODpp=m(Sil{gL-w)j`Fb7|r}Yalmh7LlfhWk72+Z(* zg0vF>LKS@azL6=Knm(!ig}M^U&|I+2H0;#SF0YKU6Z{B!Zy}V*1@vl2KA`8AvfMg0 z3|e^j66N=NQvxuq+SakmVhMCkXBdk1>rNH3c{csp>jf0tuw4uxP&q=r?y)Sf_8I}E z9*qZyxYo3!BqT;Z)ue(uP?(LZ{{*D{4>knEKQS)aSYEv8a_?CjIf$}l`A`JxFZ$+pM-HzQF%8&8)5YL(BydYY{BXASLcfwE%TP?`vKBwPd@a-4?i%2M z!RtI=?OY3RR{zXSe@FT1F7-$U9wc?1e47RrivviQ*?SkqJG}O=&D;KQ9>-NbJr=GO zSwDQsI&sF)Nin#x1HbF6Wd+I+|2JOD0Elc>eWR9M=BO{dKx_|Jr93my>5VZ3) znkRe!d4U-ylh5Y~zRVXdPM0A!+(R52iu?JQcPAaE&|27uVRpOqY~=sEYty7zCl6wl zkwsJ(oxF9jh7e$BDPRUMRr^D9@jjRdzD|&@6`Jz|!~Bq1L%XQj3p@eBUled`6LCow zB5X*>7jX6}ZU!!>u9D)o9CR!iGA!2;JJJleA}(AOcd;v4J)Og^FCM}l!b1;0w&DPZ zo<)}`gM_wMm~{H!{d$T)7u%&tiaU>jcYT+0v|am4f%`o>RqCOZYO_S}L_GicUZ8ingu_L9F-GNiBZY-JYuUlxK8&%(vv zmAVL1u@-hs_ui2pQqJpS)Aw4O79k+eC9_3(G5k=PmN_1IR^q59q>P#cwmF1Q$qU#FGHgERfPXqT~Ar9S%q}g9} zyqF39~Y~`?Qk}R{fGSaAxx=5CSXkdaKFK}}u_KQ(M+4yOLHax8| z3lY9?u5Rc2kx;K+$0CtX7zAKgVm`K|Uy4ST79tQhT0hk=hb~W5mv5VytNP`alrPwSR0?N2mTTHB02)wwm?vgkCh?{x z)lpWM{^FP|^Uw9_Kd$aff#|$NqY0f|Lzw`!TYNE%g#u=%d_FWR7P6P~*p|?3%fH=J z41U*(#&Bca#&(?upFH!tj+n~*sc1P)ws=yYDJG<81R;z|1n)>V$Y)9IEq<}Z&0eskhE z+_K;;YeCVQ>N*}1-PVTYn@1W8OA_JtZR_=8!|4F;w>thYVtyU#ISlvg(A2$ped?b7 zB?tJL3v3ZwZagf>tVepGeROiJkw~eB^}TGt8~6r~j>*m7YiJYNrH;>ez)Ljf1(kIA zQQEzs-Ip)TIP2D>7$drDc0RpgHN6X9sL;or>D&+`nGGD*o~i{U^+!^>G18V9<01Tp z9KOJS26Yi#TIZui{EVtiNjPKQS5hgL7m@TJ2?pQYBG4h~lkubHWvI;^+>7n={ldt; z0y|_1_Mu&L%K;64Nb@K$9*9q7g=1Us@k=iF33Wu<77sS$7MssjQ7J95Ela>TF%{=b zsOS!Dtkj$@KFHbhV{x!+*Cv6Wb8m=u%vkl*&d1-yjfW^lgQy(;lYtSf9INQh1q%(G z{Iz6(0ILlX9rd)|K}z9)0G|y`v~Losm=Ey;=YfO1&Mbk-yB)_(UbZjQ1C+$&(=W@T zTaZ`Zpa=wVldhWGAJ~gje)_Q1>6Fx>ho^SW5)73iN!LgYT zP&^zNGeVRav~M=Jw&Tw@;`1(~?jZl^-Yn;@mwcpjT%X0{S)YnE?1ZE(1vvE0Po4yv zMY%6UePH_`#Uj&=h^+SIa3bEoZ{LzI;$&3ez{`MO(~QiE%MJl+oi<2&fRBArhN~DT z**%bhFZ=rQHyXOlGnyZV?gIADj+9W#k2S0S9xzQSh>e7O*j{ORR}31841PetLlElX z0N!k}6}zo?*+(Vw)9KLk8O-fJItq4)byV{j>}6*vxa7O+9hYnN)7XTYk>gKsq$u-z7rucibo$iPr5NCku^wVlM>!>{#D5*^99cORQw zjB^!NdOX+Rm_V}i?|?b(TnnX;u=L-dSXVM_s~*wIZ!kEl+x;l<*W7{z7hMAHo^vWq zPKq@@yUj=>JU@3}BqjZUbzgdxkjK4m>!dP)j)1)O@g+EubgKpRt*l5pjeeHnbOn-F zu=f0XYk|tc_}2QOVsD1maq7j{RVI6RWz_yRuak(tiF?5oQDKww%xznUxR8NADS%VJ zvRz72ws%9}3=i7F67>X|&i@F_?$}bftQAt^y(TB4b@q`z(TU9CMn3tyEU4bK`#J5N zu}O;>J*NqmZ|u0>)7rcMzoThEmRbua#8n;tSDxi|@8_LHnh9y8b}qSg#Lk~?$^@Aa z+;5+UIX9^{D z0(eMzkYK6Bi*}l^j-KxOG@)yA2v+BfH@|I7B}*nYuL~Clg4$z5*{lb`cB-hq?eIu* zduv}`*DNM{jMhx^7h>-d!wqNU{BqjL_6QrYf9tcum7q8R=fGbZNhY1B5i$i>B~BsTpaOPPv2OqxBBx346`T;Eu;m=Nya3-~BYJiqKzXl7E^0O0Xn$QA6 z0)Ni}Y>3r5TkLs+2yCKRF8p>nOU6d65UyKeO3yd*SbB^>&+615YOa$p>Cu{b%>bU; z={hygQOw*YXBp+e{CK@-zHOL)Xbn_K1Y?FLSllTX;2o=!5vm@fLVhr><+|zi<6+y> z?&^H|9OrUK!cT1#5C01+G05E-(^);PKZ^p*1+ObmL9ka@68l%b8tnzANP#A5@y&d) zqSL1$S<}v9=(D4;&vy>2@Q@f(I3gV;SY|vtOE@mEqIhrHyHAca6NDn6$IUd`V(^>> zX%5+yC44znsknkk6CcODV_Pq;#4Eo&JI>fUKdpUiY0Eibwj%E#<@iNkzJi9;sDG8; z%jimyU1}_TQ;!1 zL*8m1Er2P`;Q*%G;USo4e0t^LP-o^LTl((3&e1{3o~9-8X8gct-%sqhpzLm6_7_gr zwcK2tduthQiueg6Y5s_Taq>$X9!`ouXH9T-|Z~9Tpe>;MKO{GnSGryMd@umguJsCEv8nzUMq|?U(3tD@zn2yVtieRlf`B zX7ABOU0`u(0cMg6<^)g=oC4cpG6!NgD$Z|gAQf66@;m;->TI0G7Zk>r4{fSHZ~plBR{DTM-78GQyb zk937Dk9TLM$`2=o1}8~RSO0W?j9&3iq0>tC?SPf8N}D&Zkc;Tbb~O~YetVuv9}1e- zt*?Pfb1v#?8U$N!8}3=PV&*UapjOhN?+K=hl&2cJ5OvQ65ax%XGqR=RAb@27A8^K6 z^7}n!KFH+b3pS2G!?FN1;^xD(j`E&p^&G)TTvUpj+RW`4PLkm#&0iqs*0#>N8z)n} z-dlU!Jb+tV6q*(n0^_KW4b;qchU#+Sn65sq-ua@m-5U-H3oO(~lPCfPh?l+x+!dV|5p}4+wd3}#L^O)5} zfHLlc1KoRnR&@^W&hxElH((i4AW*<6U1t_214yjy>>{9CasjzmZ?ViYOPWyz5;MQ(Z7ww|}t)?zY(k z)8*v%*HaFRf|j+H>k5V={vRrtLveq`^Z@pgGg&*|?eg8@`F~ja*V~B-{Ik78rS+(e z#RMMllLqnKQdwhF1t$o42*72%D-=D-v1@*&YMR^=M_bk@!b6Z7#}v;TioyQ!a#Q!$ zQJ2!-w9RleLLH5&U0)U^I_?CKoxVE!PFim+x##fvIVt?2b=i!8+mt6g_x88QzNwy0 zl`|1`SCNa9DUN9!9v{{Y(BB=~2e-v!C8kv<@Kp)9wa2K+EFafD1wZ!yjG(Z0GQW%6 ziq;lQ^_(*62C`rA*kz)#)>3>8_1%ogR;-!wT2R5`-qBzl6$?~eqIHCTey!qY>&>{Rw4TN|XWv73ZX7M}eI7qvD635DNAOY_8sh>a zCm6;j@fSTo2uB*i0{>j*r9AQI>iSGdA}j4iJd13e=&ZtW0m3^&ti=gO?Nd`iGp7lk zlfhe`U+OiK5)d_KykDS`;4kFy4Go+8ow)4ILX3sAnbyKWa2rtBP$W>3bT-qoV=_dG zK&}GdAgzASgxcPrO#+8PE&S)+^l!u)r6v4z{CY(-$(_Oy$d>9TT3$@nmWp8Mt(K)nhAmxBC036)zm8q}cTw z+Ymz7IS9I~`Qy`CptCNojP2+_J7++d7bV&Q+U_oD??%}b-u(PzcNn3B9*B_{1(LgH z;W%}{{9<=q(D978Y59AM{xD|{2z0g{TpG-mAzGe8yt^ez%muIPyvq}5SYFlI>fGQs zf5c(E`cgl(C(Q7+2=CTK-GQI&nSG-DLwMjd;mYw}PD(uB2kD?LR8hM_Tsn2fByd!VtN?_r8s5 zE2IL0HD0+=L8d3us~3Wi(2?ghHTVLNlU8^8chBN5JRSYhb)CF|&}a%2_4OO8@9_QM z62YzD;gsMj|4cIvX~q+cE5~sQA=7urU-|lX8>To4PaDgl zICs`vmbK=+4^e45-l{gCYDtmLSQrtKMTO<-fv11Egu>DDb9ZpTGBT~D{Ul^Pv>+fy zhp5rWZ-EEWvtrbN?)4{^->$1uiLk)tPO2|(r!y_b8*|6;LCeFY7n6DJGkQ=LyJP)1 zVE#do41SSU#|YnH152JgS!4_X%FCA08T{=6Dc}o#V1E8Wm^iiXQ_nioiQ5yL*)c#1 zN{sWcZxF@LlTP~WzdJ}QwpO}pcUbTpPc59{?DoWeVB8ktn1Emh3-YrrT40nL_X5vF zDao#ONk4LuwxD)x(%%6ZSLwjiS36?*@QzTTqFw|T zS;*HP#IKL&1j5FpWgD%vi+rXQ!+P~CSv}K8QYr0v%Y2w0Ex-8jK|#bv zNo`fBOsoh=>Aq11ra#OQ(k(>sV+d>drY%R`!})=gMBlowmKiNT$|gspA`Hq!W>-!5GYW-{z*C^i_AR*%;_do^KH zMr+PZ?r9&tGMc1yc`jg6Ag`H8v3Z-tV7fqu34<9g()~KbgSd;^y~X(Pb~@c@_0z!c zu72=GOdza=&(5t#akw$7*4V_}c8%zJ8TzAdp&uuZ;e`Yc?r{Ijn zU2AF%^-6#3^qpnYi20YtiqMyVN*K|W;7A`onQ^?nJA=4=$6Fg z6i-qL@jS(6N=iy*x9fGG)Q4djhVXsMh)J4 zMOGX=WPQ^RtN4bnxfv6ozASOLX2z)oI!}Kv)R&Ut^C=2O&0q|I@its_k4 zTSi(<_{t|;_xs?0#yn6NSp!=4SohHW0#b$oK4bM|54vk0t?wkw=ySCD({KfInXcR5 zt%6J)*@AD>EZ_;vX+HHcML9NN?+hf_rays{>P+BHJ-)eKOh;r$Tu>dDT4DCN-J^ObpL{G&JrvN8k5A~2%y2}<{0!b9={V6cfG$9sP zH2#FTnFlOhhO%;U(DTrqj*X7fo48l`sT}ge=ftMpna0_TfQ<`|Wa>M_lDxAvdcqqy zv3rH)^_5IupWbbDu|$uP_6yGs0CZ-C z8~fselMfbz&C%kf=l^&bPgdWXheoiDg$h6sMYP#j|g2YP}#;;VHI_9et z2j}EEhi6yb9Y3ZTnQL4Cf|El%IK5*|cnCBin3j9qon4(wX6BE>^Dpu$0+El)&GLyn z!IfbZkV{!Lc?+`j<15X!@mcO6>5633zAg}=Gym&|NHiOBSVMX9MNWd5AK;QSU3c^6 z%`=FT!EI@%&)~8KO&EgU9G=`$wx?z+ou|t?zTp+YEPszqJtelE`L6v#DbDTGuzbC< zHn?Sos{8el)=kTG-#lRe-?e_}YrBhyiP6Lb8?SVRR0H&A)-j3gtpr;e?F@2tbS5W{ z4vPw@E;(lu8u0x_j(^EMGTZaL8{o?HBsqvGHsAhAN2syOZ zi}ft1OHwt-vbwnIDXsBItB+VGnp!-BpIoZHiVu$j#2xA*x#^4=CQsM7j@NI+AKB(> z+uovf(DH0sbqzEb0Q4~O%ee;* zYo_y4gNwkeh2&bO*Y|oEzE`y`bz|aE<~5GVLAmi|!n@8P>Smd~-Ya#A3+`2uK5Jjgul>Oz)9so7=!FA$6d( zskILfF_Pk#0iTA7i~Nrtgm#2Pxw9O_flnG~JiIf2E*Irrl9>Y>xIerkrqU)3yln1B zv;$1w!OR`=VeWIU;dr37riY2*Na0K=Akgw^XB1JsY`$80aLybvk)b<#ooxlrLZ47T zh8;KkK;EOggNIz8=4))ckCh>WfMpvWY-OXx@O;YP;xUL2;+^H$q@XFzp}@vK^DA7O z!9os`B_Bwofpbe=%!keo;lQAYo9IY$(>@OHuYL+fPWp?%FZ!N8>tUqK?a_F`eJk5V zc##bdq7jlq%uuw?P`#ZO?D@_C2vNsmTAIwa_*w!M;z8isg!>*%ow$-%5>~na=J@dB zWLV@n6sq*iR8*W^9hkp)0Z@nJF!Xd0TqY!J3>h{yxx5#_(XX2jQVHCa8Nah>Um!u< zNKg$6i|0E$rOm=xzVxKkTtKeC;@||AL$t$MwkK;a4>oyX!=uQ#Nz2$7c-NBYcAcy zVHT5x3Z@A9L>}T=cJ0ElH61{$sz2B@3IWk@dQM3X^i+|G868_$w4fb&bG_}Po?ZOp zD4ZGUinFFJsqc!BEqzVn*6G*2t$^fPt0=Ce)84@=NqLrZnGSwK+K%7gsM z&+*baV6hl9uj-Ylr7i zUbDj+Sh`*PT_Ez}A8TVTHY%!8621i$OYXW1b6Skh&JTM8pp!5Vs4wEJv95>PoVZ6( z006{S?<x?c0MwBnwJ#kA^O+|k~&8k z;*7OazoeE9G_-OH*85SCT`}B;RuF=b>0(U=eYjF?wo!x6GNnL}08120Bk;2yr}D+d zAiMH43uYd1D4HUjPX8TrLm=n~T2Sm>N;F~971IT{^46i7-Y*LXI5heoAc%Rvqp|n1 z#jQFEw>qiCtx{(EwvYRX%AZGz`n0YaY%tJ$_l=8ww=T> zBRKvAch@kr89BpS8@&(#YGnY2GKaD_*_W1F2J?AFUo6}y^g7KwdClmdInp~8_|&<1 zVV}rBe9gwb)PMOUtJQVC(eY-JkyVxL$AduU^(7e4Em>^HsnLOY5Zfr+v-}%jn(CQ5 zduHQ1vG0RFces_H(8KV*pkZ=^0TV8P`&JIPy}vsIu{hmY6tW|Hm!hJrfr=W17;>^$ z=U=w^8F2!V7vTE^*}Pv>oXNA#hN3N0(~usO9_i*nVwUpJ_bN z24a7bx?qF$a^u9{fyo`>C=_K97cXJz(NjER$n{IB4$L?pG1>@lX~xJf2`qxRz0~L( z135gsGlgb*#5yv(|E7!lK5^&8#6Tz|o7@hBSuELs(0fz6#GH=r0+7=h?D;;B#~vJn zw>gZ}(B-zbO^oUs057qEgGa;d#5agFniptE&6cc(=Kb{lA{H_x<=|fog7FXSFD9|TKu5<9k%&avDhDht zNE7Onp@WS0}IB&!ladxBU}&A60ypI7-y&a@+K8C4Go<~n|eLR_^}DE5^ zo@F4{>JN@5hVK*u_))a5lXWQxk;9Z^1YA`z#{i8s5+hSxre$j#mO+wVRWABGv8vlr z2KAcWq6U3Yr3y_#%SPumzydguOx_KYf#&8|^h(?4g6x1G)p5MUy_KinKyzvX$IHm9pBH&C31#@mDpM8XD0H zA6rMVSwxHDQpZsCP-~wFh9t$VEt@~>bHDgl)T=&FJu!S&q}KhJ(|vVabt=l8ROIb9 zKRQkrx*GWqb{8A7i^Kx#N;gZaIWX_H|6J;4Qpy4Q+WcE$>-!e~RdLI+TvH5CK{wVq z7CKx!8hYpZy?d{&+`g1HY3h5g+o`8muo0$y8$}Uz?SA@1>Ohh%ksxgBs!GSD@=Dva zXBY6pV?K!V&JP5qaM~rCWj|G4v(rpT)K+mNUo){whMTsSB1h()sOXOiHhotqHhkI} zqEe#T8Rh=4lj2OS4WK7bpkQ8#L{biBc5Mx4QRE{2(~OK~LitU5pPM5MJ*taj-@iCX zmVT|33b^blZ=?KQusJ_~?pd&YnhNCKde+410{_a7M7-n(egfhP=0Gr(KDNksn^Hy{ z|3NkBrF;ZcTBPAXW1snXc~L=;wr?aQaHYHxn#bDjz3U%R_U2yE)w)lHgowefh?zp$02hTOWBG@{aTtd41H(OYUau;OKEn7^ z*1IJG#?j$(+(h3x%Ql&s0&gd4FREkjSe^PfEVCdx4=_xz;B9&ClS|}$!2wG4k<2r20L9^ALB5D0IgzUBE zrcpEwu8VkO9bC`MOZZokm<%1+SAW9$XfT4`JT!ZFbwhsD{LSW|h{Y1^*f&11y?je* zb^1$kKriw#Qn8OKTr<^^G%^FzNLQB|x_fKVQpT$@($W3KX$I?ezpJ)xrG!bnL0XEl zK~HYhGb8$;=b#sg>{+>&4Ye)@h~~WV^#t52xnYijn0K_ltqlz*`?KMxwJnW$lCAb_ zdYQ@3t8%8sK^X`mRw9ZZcD{7i zLrkF|z#*mKmv4W6^d3V3cKc+WV{-RWPT%`7@%!a)f zgBluot`UOgineSIJj5w>jEv1$eAXbO+$k|{-<5q3py;Ox?AAg$;}D3^D?#XwNXXOipJI_e+FJeYklh~|l_VGCBb*IZ|TLgl^&q}2et zgSI{vx%guyp1(LJY;w8fT%A_5IbD@qv!XP>ikiE`Z%x(WJXJGO{x+K}V&JMtv!2$S zA8pS4($uV01$Q~`nC1zQjYcA_0Ea8QMrH?MBc9^(NaX!+C-2Oamqy~OY4wX}+JKH^i*Ixg|^VCpFhMP6&yAEHfTGof;Ed9w& zUMac0_r0NM`cKMSY-(-MZhq(5df(_8F_mD@r>~0PVn1@$adc7VhN$VBRu^fEDR)v- z0#H;V^T9?7q~KO7h*`5+ld5%y-DzfavbxIy;>`JpwBC*gr`5uK36%%230pc!0~!w2 ztU?kKmEjQ@!a(!SijwK@DCq9W=ZfVOqvV`fPE+btw^i|#-7B{-OyQ|VxdUR;^|gov z=R}Aj-sXh+F#w=xXjc8%zf0qr{EPb-6iSX{)}qm<#^GvLUj9k@21AmZJe7sB-` zKO!X?l=*aQ$C=p2$%&}9P;qM|T)wFcPlC(l%WTH;7q!ewvvHAjl=x$o*7oGE=>yA& zhreB7h(tt7@r1CPRXlUbN^cw%-s+C375!sdB%I7iAvxy^ED*^;*6uiJF4d@PvU;^h<1FD9OHS$U1KOn8Kdplwh2Ye;yRKL2laB`&o58iED*FwY4rfxdJv26-{KgY< zeh~k#(a&3ZTCrlL**MuITgB#7MmNXu^X!i$0-YH%NSv|6f`VA(JOT&egZbzEa&Y~$V<#?J{v?THWqB`GpTcC9!+Rl7T9lv2ik7`&3x>|k&2v}Z6Rwl21d(wcIw3koi>ZaPw@h6G4pz0>A;aM@fjRJcjL_Y1i= zQlRyHFG}56>JDQwq{f6z;nYxndCMXDKeGUq@a}J20-Ufs!`1RGH?A^#RxXJbwnZOx zZeJ^XLvVPD(&{jgIXtM$os;!&EB3XaWFiB6RaFsO&fm$_I;%gomo+3|pQa)h9^tQA zHh+`ys=sQy#Q}opog&ZKX))lV?5v!To%gI>z6Kw^H|Bn0X&Km8Eu5Aii!Gk$nRaoH zP2K+`#_Ik1eKMK>`y;^ZGep_ zeVXA2szBe<@!A~#Q78zUJ)PI4BiaC5{gX6Q_CrEg#GF-fFp6P;?fWb1GoU5ka7JJy z%FYBFkl^3J@5)4I7!aF8oHa2=F;A3AXI?K?eT)_qoRK7FYOQ&ZApVgLui8sJejp*T zE-qbnscv={AJ%mldBQQV<*1fQzFIsc;Nfr}(68h?D-3BYQaMkwo(yDWTuMN3uxDwK z1g{e#%-_`90)=<3+3f&KT1|r%+p*uUFHOgPZ8U0QF||J4r02ZSYVlW)&-ldV2`D=6zH>wbMU8c=OX_ z)n>x^K{`8wHK#Xpl0k2LL$p6Q#TKAPs?Sx6GM!?iL`YZ|-CT7UP0pT*>BJYK71KdvU)&C5&z9S(k$#dm0UL>|(V>$6hh?~}?g zj~|aHKYH@#l~SYK?oWly?wD=fZ&SgycsH)<`t+)pjR2{08h8cuE~yEh0chfQF=-UN z{48ZanJxaFQ~oshV{*2}lHP-gB4RML|C60$RG%4G~{P z@0vNGvO{c*20>;iQ#4WkQ|1x7m&m2wnFc&7Jpt>oBn}?{17Y-o{ zb>hKJ^W)Rvq#KfebVUlSP+>-4FtzUXS`=|+DnI7E4lUOA)`}ZQ5hscbO#JHXHv~U9ct1-);3E=2_5y)`iyhC%>8TZqa z;uwVjIYlWI8O7rOATsB(b4EoHu&C7^-tD%jbL9Hi2QWZ;U(D#}D`sa2$QB7?M5}9T z7ZmuF7HRWpQWuvc1EP7(TU;KwXE6XBNbaiqN?a{4n;KN1YRyju%hTUYH$4gF$=d86 zv*I`6TSyfyF9p7_1-bv1nQ0coBZew4t+kG}V#IlBtxN5f75|2pgsJAJXTku$%gr(; zA*JgLcV}Bo^!2r0-6PWTW@L#asz3f5wl`KF;!F~#(XZSj?wRxz8|y1EAMF&=NUE#$ zpNGUSBfa~kiYcGzjNYB)eUNmtgSi}&3qEB6t=ZBdIK4GyYN}2`u39i)`>WBvSv}ll zo@LUBE9f|GcKYTk%L(3Bwzu6H_5wN&bc$=JlR!eZfb8CeRvT_(Eh)Y;>PtXnH_T_4 z*7iivhfgUgj&ty)I=->qG}3jC#C9ZxK^PhZ?5%tP)IXTM=L;wa=9_0EdRV1TKQ8dI zuMF>Fwz*K^xuSl{jLD-^_0H(ebiLEUyZP^BL+mJhTixiZwtq;4Y_61+vfz5XtEXYt z3$oxtRB=`lXDUa06Zb5*dWxLu4xtP($z&H@tJIUSj`FC#8#DGXOLf6$>QMsT=V)`i zke_jYSK(SfL%)`;2JKIdWFCFYyEmLs+F4ao8{--L_KD%zN~NB@`_%K7P4A~P1h-e- zTWe1T5?et94Sh2JIZ$;JT^vna$}b(faR2;pQ4hz)x;LZLBRJNIa{ayV(#e&6|K0hK_&zi#guxrTO zne$9t#Hm=rMNI?KZO}e2D}5znT@nD8WRvVhzQ0;n&?4oXe z1s3NA#Ll)>(7y2k&bDeSOT-e1cJzVFgu91rtE?-?_=qw~bvEfV)wzO;ETEpRR|-_6 zLB$izwgmhaCR2@%#9C0>j;ZEg)!4s`gZ}Bj`~`9H^9cC-WnG+ZE^uR_%T_d+EXuHO zJEIwsDe+eaJLxD&85?(ki4XvCFz!C~9&)DROLf&Rpvf|QjJeY?*yrIGkoL9rYGG8W zNyI1Oq5y;Mn0dOV{2g9h8Mxf;RQ%jc(aDC=in8VPYu3m|+pI-HUI(+G3}erJdZo!RemXjlueS`l%Tx1}iKPFktxO zs1g4UTW1{>g}1$XX{D70NtNzKx)Dif=~hYw8BiLeK|mNnK)SnQ=mrUqnjs}6hVH(b z?>XoG;@*FKd|=qI*1JCIU3+G~wuR2jYZl#r0R0Q+Mx$zz?dpd*>AUE^1d37Sew1Q` zgfNAeP@MG4Fgp&?Ds%HO+RD5Eg9iaB-Kn~WIc>dC*1>R06{x*dPhu?^iH+6bO-`{u zB#LCwlg_DPP*7mFTUXpK1LR|SrIya4@DVJAe#bCO205R2nNyfA^YQk>AO42ITO}>O zuj@Px99O#MYBf@-RXmTa86Yu>mogiq4Xt~k$MPs7Hurnex*GC$d{ZC6E?c6Taw(rR zrcny3a_;&>bba{(8!~~jyq|YtJ7JAMB*9DGI7QpyJLqOonG#2zhCdA_vgDh6MgN{2 zPF^})XY|KQ4LdT92{VOGDUkazvpl0#+khroXLjAWHgpa*HX9569G`!x#!x#%RY12C zGVp>a@!heVYkT+2x!$isOE6%a?gC zb?994&z#~M6UU*e*>o-KO}Y9`Q)EK%u`nf8xU2e!lBKUA3C{SQl(n1Mrm)rr zEKv;a+Fms$cRJhC(c)#*tlm8_h{omi{K!NFp)c1;3PY<>ACDsz5S(eJIS0rkl!|aX z%0Zev{M(lIkzrDuXbgMpgDkmkaoul{&=!8;HLy)obY?wTP4Z*ve|wFY_=D=loV|0a zh9IVx3H23Gjm9w2Z(!#R2T786OpF0_&^_ny(>7#Bk{bRLpxctK^2$AFm}>9p94l@p z%Xy4G)mMhMw(?j7U8x`N@ESPWi$s zO#220`X}0B)Z>2;f%m)A_w$h_1d-nou+muneh)ErVDIqj>;&ZIc?OXo#TUTUi$?yI|t05-onkNujnHPTd?RlLb*Okbn|4(o4n9M)DHKq#f=^smQgC#Hr$1Z=|^S0Pg zx|7UH-&9$1arX`OT4`)6jk%ku-^JfD*KL~u`IC=q5$iKT%J_O2Yh{0VB*&H6OZd~( zYm>YVq<6P`WJlHItRIImc~%FmCARUA_jN+}dELg;zbcZHok`|T33K%qsV zEbSD1m#O)LQj61*`=~BEN(+~Sj zWfu`9P#x0my!Sd&s|cWUhR`>bsZngi_uK>ZJg4)Qn3H=Suy(nBWA(_Ly4hn1BHVL6 zCM)OpuG7#Y(Y<_52s_KXSK;B)UdI}SH)?rmt*V=BNKTfYf!%ccp0z6(%dL+U~|%cP5u~-nm{YYsC4GLoUJaj=*vsE(1pcd>I5lHc9y<~CPM7iUrZR&eU??9=NKf7q_noVMcC9s0*00ffrD&+#Ji?i$5 zm!mwLb7d=&WL{-QR`c3eDhFI8S|HY;b9ciS03GUd`0e}kv4_kB%2UPd5|3K$En2wX zETb9D$sifxw|;KQJmY<*OjX1hXCs<#&LlK+$KgX>fvgS0rgfl7h_%OayK-+NhbA!57ZZ)9?W&nKxf5d1ik|w0~q00ztmSza4GV zQa}A<-1luRI4I89GQL;`QQ)qK)sr#7{vtCwA~5Vgo##qJViqz-&nSp_rM&m|+fZe` zdw}wZ`{AF4Z!MgvYN_@&u~!FyLyw@p7_@wJek~rkg~~pzxRz&Fp8LA7tv>D9>_ZlL zp4{5H)6m5E038R^=w=iwwN)=s`|1LPKdrS9*qOsA9*8I-zay|T`oF-t1)KG)0;$K# zKedC|tvP21G%}-6V_N~UBAJ9Hs}{RQ67jIYX7IY=f_)(HBmgIA4LkG9C6xqs(5w+d_mIh{)!jd2I3){YfMOD%E ztzgC>aRyuX$ZQQU(Z%W6uU{_ol)(fvK=Qh>5Ri7bHY(J9Pr>>$Q>}|rZtV_IZi)#) zrHO-C26Hq@94+vxqdmy~h{BjyiO%sfTp}6S;=TCGbsL;xQz?_;b@S z)5b6>u%#Kr{VkIZC2fFKQ9b>`cbBeZe-fRNplI7yv~307b|a9^Yk3c>mT4b!yHDa?1#G3w z2FlF+Oi(q{$${1UC{^a8k1mvpfUHEP7Q3W!CI%kZ_XX~?^@sDBK9{P*>(m(sa{!y@ z_sp=8NE7H!tyI2^EzP-Upc%?VWki+pe0&C}C_w+l9$ghKasB+9+}e_ybhU*Wmqf>* z$Ip207o!7NgkyM2vH7evD#;qi#znDm3-@tjtH~@fg64_uA*dbSdkemuu^)s}i05UH;wb ztC({{FE80eh)QaEt7j9m^_Vg8E&@e3&I%*4d=+;upmnmo51Z*0ba;1I&J^VDN6LDP?!ZzY5L8scn94v3aOMR?lw!{ESee@oe!cg;8p8#e9KhFS*r=Ofd_XZTkbN;!nlOCpV9P%*@9KluU^!cal5F1E<)-6mOCz9vj!qA+l)#|XIxxm@*(&`aaxb$eOR3tD)maQ6m>QJu zwVRV9*m*T`(NP6@1k|Y@*QG-)Z_1#GB;M*F*#^|?8nW^v;kok#a1McCn|8rwLYNIy z#oc;=eSyV?9g*#T3tA$2llta8ZD!`=g;Rt{`P^CGLi@P*MmSju3F!4|Ez*<)efv_< zcq-7M>>{sfJYg3bG|;)&W!?$hMnYH*HlN&SaIiDfSN@Ka&wUd#kq=8kkWWt0fHI^B zbLMC%992I#R7G3+pCE>>NolRG z&r2(O_j^D;!R11DEOqt|%=@N|bk#B_6_qN$ml{d^IL@L8)I5d*ao(Y)17WXutx(S&qR3c`uAp1^_d1hh3Q4aKu{%r$+?YY`<@D?+*CA&c+_S#TvxurxqO%1u!-emwj>Xhq z6)ZPb-%Hb%1S9kExPx!Ky@C0t(Cv$PQBVBNt8C%gOe2f+FK>HDlX^v+rPJg z$`G4g*yX3^yY7!4z=4;yj9LM)P$pNF`)+{3 zr}e;Q$lvd%vmLJVG(iV!aW%g}=px$(v%&^;0tjKyhJj8`$4%x2Hm^)v-q03cNH|B6 z>`Noy!VReJ;)bbxbue>B4=DYovFPPaKg;nWsFEQ8J12v*2cUmoS7`+&g z`5biHCCUv#owOIAk@S|CDQ_4cqxky#P9vr{SHpxOr#33zaAKpJUs|?R5W?Was4qzK z)fSR?q(KO5DW^lAS)3kMQriWKgT{-I%J-EL!hS=SY?<&B<7e(z-*Ir453etG6L=Qg zid6X;58sPCt`yq1?Vo|!hV{j`i><*wOZMtYa<=!KerJ<;#*+c#D;BMa>HX&G3gq8w zTXx4eqWe^q5oEO+-Rk2YLFIYpDh%(S8T9riU1K(UvPK~|udQ40%4y0tdt)5!)nt^+ zJM9QFdmN5or{pAc0sJ_GFhVy%SVj;wpJ1JP!N;OUbA5I4NAPQdUY3#4q&_*w)`PAEq`D*J?M0qpuNxpnWRL#4xY=(UK4ADFHj@d^SVto{KnXkhx!C zMP`@;!@|k*EXlxu@3uc}`>=I?Z=!CurgiIoM}S(Q4N2C-SshIPnESbrv)r$j_;OUO z??#0-z3Nh852=E*NH$^b^Iz{-l92P3p1poLEFPJmiUbaxgYR~6>ph&dAqTupWD%AXQh2&( zUC?%**5)G0$!p**Z$a9)u?DIT)t?w$2N5~MO_BsqP0hQ8LewW}$WRofzV3d-WN%Gh zTQ`#%yYr>@cf|JL8=FZSxpZ-ZCg~iRKR7>uj$Ij!2z54c_&$^S;ibXL=IN512I;)~qwx2^m%4>YmTd{iBLp6Iq5&gVVHD30>%b$% zCj!#e<4Z2;4jY=5ZlAfcH~S}~vHzFx9HNB^ms_m!FeJl~zSk1%5_ZKv-+QE=&C`|@ zhGFNPUMb4tno>~Tss5*&z{~|ljIM=dFva3~kMG|!k-g^GXxJ<2@M5?v<`1hzRjwbs zs5M)MEr1k>(LsP$$$r`fnSOHFAz-KVKrFh)w~)sHw+Bn^G!5V38<@)1Ri{r~Qb)^6 z-Z2XLyNGCJJjJoLY+Igam(&EfpC+GsgzHRU6}jXGSkHgKIxmobEa_|09>3322~`ym z7Xqd{(5hMT6$%=RzI`FlbEL1G_;;=B)u^R=Ta~ELwZ0Y=TGKdA_|#9@Fu{CFO>>h( zFPRz4XPkL2AJeb>Q1a1pXDc!~m|ifn8g@7=iDXeiGmO6Y?5VQw`05FmX}xRht6}~m z^sV=3_Jj>ip9XG@we9KakjPO6>;nKCUFKnX!%89^gkc9aM)r(XI0<6r{meoC1F-69 z;O`PUtQwqeL9F3l42D72euW@?2BA;=8mbbV=c4v)>=N&zJyugMFiM5ac|*5L^XrVxR_BhYAUs`!Hn;}vue@}FfxgsnCgxBb;ae!dqK z@~r!R=^kj*Qf{1mX-T6x{oe{bXBD-wQc+K;C;qpg``+g8llT^PYWiKdJ0XwPhJn8>0x|g|P&T8K7p!GmoJB@9wm=#8tw450WB{+>cbEt!uX+1c5 zx9Iba*pt4`K+;j~j`J_LSBvjZ=_l`|cOB!}r`#dvFm^U5?TDuIzq zT^2R|8L%uMGHUdC%gHwrX>UqN^D_p{jE4Jjp~fLF;G~;a!{~bx*n9YI7hT;tPZnIh zX1};gdO*UgwgKZed3h-6fhm1s1rGchKHw?TrBROI|1ZmfILmILcToc)(M~z2(m^oX z<<4xV9@ts(8`Hj9c5=QD<1@d9-9hUWmz9h~;}5{o{GJ8y&%&uoLjj@_WEc(-e*BnK zcRbt}Jga4Whmo#E;o2Q%ZDfI`Y^VL;3K!n-GP=~I%A4N$PY_LvAb592yN@1H)0DUr zDJc_~l?18_5KVz8On|bXQ|S-)G>c#pg5k2o`Ev@W^FGFR7Wqin{$Zr}efC9fA?_KA zWULUxlzFIha_-zS=5XM#@xt2rNziT?7qHZ8D}4KOtlAxG@UL$InUY8i=zBSR7FPHl z+;-L2sHF2EL1&figPZK;oq2VdKa0e0NJ6&>_@XuY#i~rdUP;(jMnvxHVv=TJ7ZAcH zfkp*H6*%+&QDq={_=eEIRELaZWUJ)u@=9S`j8lsi0Cr8LA#?T7@9%u(&{I*~X|EXz zkcYJ%RHNaH6Z%bR0%O-=FP=?KK#}M!Ly2b zb??sS@C#o%u|lKtNkup-H_$uvZ&HCcH`U+ynF30m9=MK_B)k(GBrNpOl1ILK9x5K3$9)0{VwiOrqwNX*V{-F6H*8wS{JYhxvx+;?z^I*>38t&`Wy7j-7p>0kCZE<6eA(CBa){TN zkS|mYE3u*HEmNh)5rlI83=520jOow?r5DVW5%-%%6=P90#xmLxKF%sB={pS(n6S;h zFOe!)zVs~MNg6LO`oaSHnphl*3pKuPr`Kk+Wd4iK{ni}qciQ%??<8%8yW;VetdCY0Y zx4dQl(yw)7cS58)HpUkNpn})$HMXa7xQejRaWWz_4fFHwS|CecHo+#aH^0PxUmYUn zLHiU={~0$E`+qqA_1FhGPU`y*f%&|LNPskL$$BlwxV3pft}Ow7Bg~gR5`|`>HGWq^ zFzApdxDdNI39uB;{WenQyYOy<{Co+CKXPOIn4l{q9U*4K4yStbkV_~pQfq0Hy^1v1 zuniUUZnwx>86dzHl}6wY|Lj?^&M@b1a#HKG^q%fBDIJ=4boOFdWz53Ex|}FI3nBXI zYc;2GSBHG@^ujjxNJhxR0GnDf0#p5RC_ls{V7;fdJBm^a_S$3f_4lXG`I~I1Uami% zfcCl_;|w`p6>HQb^1o{~bvYGX9db(nuS1hu&3{)EBY2<>1tpk{;$+aZ9pw2l_UvnH z4>;)iFD}T*ABVuHSr89DIK`D0pnKQ))HuMDEzhifYt)pKCE1dp0v??AQm{x41!)wN z9Za#01}ZQl+TMW0K9!t}np}!e!t>YQiL7pSa3UU#IgLCs>qJ9#?o5tyNQJ4SH1b${zI&TAvB%-d_W{sg)<8}teNQ|hU|-9Ikq`D z-KI5f-5V*CXnlv7^aZKfflsJQZZ1do*pa%1^g6s&w^(2PLnVeBq1AmsTw_!?Exy+=X+ zvN!N#sr)`2#^Tn2%4b$vw<y2xIS`f1gH(o&SD+T)@DOK)DorBhy;$NAzgOs<|BLZ%HOe0(Z*-4C8~|mkP1xuSSQ@m_Lp%0 zU+cVORK-P(I`EXEFN)LB3!W+(+|T>;Ag^X$;PmiGFBv+L8il^;#2d@{S{Yq1!FF`n zU`FJQmFx|uJ=jp>2@~YS4WiE?IYGhopg*vGp`G~(F%fI*ZXF|i`ID0;2x)|C;HC4U z9Rm-XU*G8fbF@#~Dy!5I&bf)fn*hiZQ-D7sQD>F(d&iaY4ZU(viJ3fEHdRfxN$FqK zkPwT@CiciGmzX=kgiYy$vzb+`1#ZB{z^G)q@Qi#05*g@e5zAmXfmLcrX33aGQ#~)oqv2ffAgrK>5dsJdDat&ElIeWpNW}R~+b{97EKEzl!_(RG9LbF?4k zoS&LJ#ex*&eK4k_PsqJkgNSW9eztFZCwvXNpugCZ(wmnQeC_4+ZF$E1){#0*v(spu zAhy^t{OuSTljs9f;GiKip=#!-EPg3_k2K&`^ccfKo5xCkiNSA-T>Gik6PSkf%Psqj z+P3*(HT*qn23($+*|06U^^#1>YC)l-SN3f1o;~=dzMUy+3V!ir#ZnxFg07T3^jd;y zL2}H>aC*+CRI?Pb2@jI(xN)%$w*nR4dd;KI#06A_uVBV0pRLCk7t@~Cy6{m_ji+;? z5x}vuLBnzDcd>EGpZ7i5>Zd_Rc^EOBP*TEd8M@t5DB~`7A7{|!AL~iB!M@>Zz5cf+ zXj$5*qn0iVLA(e@M=3ljGE?&C@;wc>)bORw1gWJ4z7<)b6ry=vGX8~Irh1~Zd63R3 zZ8uZW$9J;=F)E+_dcP3y`O2xO*dkGVd%0qIwUHyflCZ}aYshrbcw=($H$yJ$t+cx# zjk5E5E>0{xA1e01g)*O2<<`c7S+2N*J*7TFbd)?jMGzKXvAlnX$c+8cn$*G6XT*Ir*M7-}l8%|6M-P{0{2^4u-^@FjV8|jdsQ2M;P_b+q*`!luwI+Ljvo|0S z-w^p?;$E55>xbgs`%CAu!dwH85{b2eBsy2Z7e<5DAKl*jbaGRj$j@^X1}?BYZ%4bs zgJ=eyE5pspB*`A~0HO3ib9WB=y)1os4`7)>w;rqybFOoC{zZ~VF_Edr`U-2C*u;eUU5Ai^t-*@0>eZ94wV)WO|ePcET$xH`Lqrl^H@9 zg`P4tO~jpsqX1mrE8?{V4+SDTa-tRO}r>$=~G%;BAk!qxX zDAg!pUKY+mY9+V^G7_F3ChlTEpVJ3p0ig-Mj{)RavlgGmnHgb)uE5r4J0Ntmx^@s$ zTD=0Ze|x2JsEt*Zz-@Rb`}RRckbT_d^2;*sueeN&%ewSUlQ+eE=i7HHbMk4yYJx2E z9^*N%&Sxb zIJ}<#>fKMKR+BBnd|ykEzl9yk7XBcbg&g^aJRIJA zZ1u-l)uxIwCU&L^!=w5Q9MLFL0p4gE-V#2NL&NYMF1+Ih8GkK%Snb32pF7}ceUCG~ zI!~q18{G|9irez7gb8~vB^a7@`cf*@4OHR$ZWeq;%P}zBec933RBQhzk0)P{85XP6 zVpEBu^T}nCTKm)NbyGK?@bG!qlfm=G0|xdp+Q7Z(mJV^x5FBFx6U<5Wvx;af5kjC9 zsMl=yUP;Z91t$2o#f_2Cqjaa#EeZy^y^Hef|@KD8O;X=HNcqh-&Hp8T;j!FsmUraQK2%qJwVrXbi>Sh}29y0naaMKnR+%e&k%E}aun+>- zhnQl6h5SJW7q4|8G4p?vIr*oBB7SUqm$M{Rb<*z*?q=HXtLAX9G^?aKr7HB~Nh}+A z{YAInp3pcEiKTl94}F_mauJnREk`2$%?b-PvNNHyZRsXStNmvCxRiKmYc^lJNSx2v z;=je|83?-6PWqh#Px;3D;Qa^dTMo~>2NLu_Xy#JeB^}F0Z!QQNXoYDJ81&b<46!sL zv+Z}7PXDop{|;WLkUK54I3bhqqP;v&MUWbeNCw;Qxr6*!9& zB<8eeL4y?qnD7RB)_HLAOCo573J5>{#`8H`+_b3G0!ORsY%+a5YI6?+%ByP zk>}AEKL#RIa0aGG<)lcRAPiY}89N9%;pgn9hkpT@iUdZZ{M*W;kN2JSs$5 zvX+FtxoKvFy&D=@*;Kd`^HDclGn#9Ph!^SlHfBGUGCv4j2Jx9q^=ul6RHxSGa*Y5tcayaf z8*4Y?LF>nUxeHRiBspH@$Qy|MQ(`FPoyopWX|KXLCb1$z^SEUf88RjICW9vfVTfn9 zhb$eDY!k$cM3(M65BkY*L>0o*#~JcL*-=E^^&msQIQET^9oNN%4<7aRtfJ3^TmpGQ z3`^+8Svij0wL{I81{w^_P;VifAL2s8Bdb@uF)2a0NW z9z0iDS=spddvXmFYRnumyHqCcn?mr^sAjg)-Xd6*0L@(aaabV&>Gw!G$- z84SVAxqKa%V{`P^pp^}>n+S{!mYS@@*f&RqfsnuR&}nSppyH40;P6;N1u>%sZ=rc( zl}K?ggrtp{O%=wfWc5>33sQma4%xqO^lM%pEvFw}m{EcNL(Z!Q#b{`DAr|(k2#kKY zhHfnpk9q**h)Lz~ZK(nzBBg<7Zj2GdC2@Ct|5%*-xzdI?FbQC;mV=^*JkCB6iONOz zCV#5j_2cPYmi6e9jd&^C0f8Iz+4&6Ks+Ly%*!-4Bh(r}L&&Ff5m7Bw=r!=NppFQig z?b1h|bPbz{(mpZ>ZKkLDGBv-GSX`%ipDs_p?lu|uq!@?Jw{`fTB>7l5rb zrCZ;#A8VlX%b`yX%r;kN@kVX=YmRv+YM9CvpevnbY%&aA23BtEuC;4ARCN%=sX8%3 zrF6LWq>jij$A4^pPWoMi^DR{S{+}4n+-R!tKkdyNeTh{#ffQ(Vl!(BId)VB{bf1|W zaO-{EXc(r#qQ=O-d3Git3mtGZx~0?8h7mup`9L?C>g*QPBUQF>NLgRhSEFvDy>>}W z#=YdFyUU>pF%2UGlg%4_WgPMq)G(s0ew9~~4?{%Hgp~IlV5ag`?%8HkQH`sCGkmJi#2zStnX92g0+qn;T^6u8v?X2SvD;`F=;?PFtY$_vJC*rgkf?3tm!MP}tD zA6rSaHJY?TK;0H&T6o63GUI#0=wFp|%R7z_aVaY#Ask0?_OZ z%nMY`j8)-?6F-mM@|P8**ou89jw#9Z8(7xl(WeJ>N&l}a{BQy8G zaK#-6+9_Z)OWV&{lucB@YV@G^!8DE`nN$;t1q`544;1XJgqmwprhEm3+zVo=!s*3y zj>!8s{R=n?I4B%>6=JA#HmploF>`l3M)RK5?IA;ubHSH+w=n*ovY&h+Rir*Oni4ZYWDy22c{)$VK^m1P^G?SBCRq$$8T+kWTT7 zFn@K#ZElVjwbano?5W83!_79BkE7tYUq2iZ#EZo|m=>2?evCSBXLfn!JC4QD$LWBJ zQ%U*q*?X=X?46%s)dM}ga*+uK_`iz+6&q6V@a$fK5%6k;&k>He-Fa_Si4fH5)N*{C zLBG1%Xa*>4J?NUSBnq?qh~^x0R|7lFu4^$Vg%ncJ*s#k#k(m9w#bdQ4Mt_V04#QVh z$yGZ}U*8|dC0ma!bNbRjy;CA#&pcD8?Ry)JyFK&bb}%a%0G34Z@{9U{2HX{V$+9Ab zR{qM%e{&$`2Nn^S0$jMbHE=@llTQYe1Xkuiqy`0dV%8LbU6qKb3Ai!-K7eM(484cY z0d6uYvKHemcjHyEp?*9|uP1mFHX4c25a~NBS==1>`T~}1Vi?=u8 zwM}y1>6`vu@jO`9cC1RXM0aU$za%n;kFFXCyuM#XXp-#p-rC&%-pvm0qCL#P-lCv%i{;ShnVBJ!FU-9SjU>vLZ^-~{n5CD3x6&M%`K-TKS6Pa@Fef0QvSyaz&!Q65>~|< zwPx#-#Rbmg?OFRTzaynHGwWEOq(RBl8xe=wRf_^_=+$2^w)eku;8uorJ;2Sch@=jD0us}7=K;SXQValfDP^Yr?Qo! z?@W0@to{H4J^ebkCP`c=m8=Ld?a%^)fte!RJ?qomZpqQ<*&Y<|a0d+z?LdGzYh`%j zpA8C0=esF@zh9WjD~k>WEYfleVD2GX5d}YX@HW(O7=qdQsWCg}*~Qeh4)M!v$p$!s z5Yg|pva}!{=0dK%Cy(m0q6B_YlS5^L6`}~ZTZ5x99^>HqeIBtW3mvlF8(_G@J5*?W z|CqzpNo=}8uZvdr4WCN!0@lW4!5nK0wRKap=Je5&(&bS)E#9Ml>_@u2XkQP_vmbaP zdqe-Z`NjXhJSAwZ?R0Z@1$F6$9L`VduQm zv*$7IE?>7lRHMDu-{m{)-)DY=BMGnox0gY@8bPj)dT-%NxZ8!?%6m0SjZfMcNKO<4 z$IB;#m6tNh8x?!z<3nR3zQS?F(XfO&Y4Ys#uoUEYfOG!p(_2dMlpFC_(Kux~I~*$^ zjr}UGCx|&|(|GI34&1GK_lxcF@dbm(4hVP`12YHygK+e**eU;oaA?*7A9lWdrNNb> zM`}f8O`=rk`&?Xz!H?uEl=a6et)713cVyRHcL7i*#yEP1AWZ$2{~)yy*dPkoAPtD& zMRk;yrn;9;&Pn2QKn{w#x_fy_eq)!nL`AufJ65zlW!G;rNrIB%af*k89a|A@bN!{~ z&6#P5Z43*fqn6=Wj}TQw3`rV_w925uwo?`{N7*;ilDS~%H_ozkBlCLoJ0A(M4#DHC zMa9zRK2HW7M~jtnx=AW}127X{PEI(+R#-3ISJ%w7ElOh}YrMzHpMcTL61-<-sh?OA z+rs|StWs3mfmU97sF9e#*(n-9jQ)SY%ohCrf|)lO9{&O}pvX3jL^5QNqm%rw zg5znM5}R4xBh`Q`_6ORMq3g;+J|Nw~y)%<2Br8YAa~{3SeDpSx^K)@!o1ExEe%^zs z3CY`Oyv0<@G)dFeGdpS>-4_G?4X+qekY$byM$+k>U?pZ2qX$qN@lehnyGrL_*FV@Y z75NYo9@-T)(Q{a1wdI*%v`lH?4G}x|JMYMCI$J<-H27nVm@(<^6IjSdhZHF`rN-L5 ze}fnPp#KJ5eo|yM9l5r{$4~4SOf#XB*T7J8y&(0Od zk!Zq#4!CZ4-aj|lmbxZCQp?t19Bcl|V6`SVJ(~>{p8-|Xy4lyw-El`kEim69f0;k% z{~<7@#2RD~sMyiQ*JSZ4r<(=B6LLha=_6#^hc5ez%Y;UAN4DNB9ouzqV!yv6Hanab z7ipyXa|RkGu2&w&BRzfmXNU0CH!nUiC`Qq9sB%RW!^17Ez)kS_@8_qzK^gn2eqw5`Q5orOm1%d)5b^sk~d3%5abRL6< z^LY+cE&j?W!!7xiFL-q1LA3G2b2H0&zE!H)@IUV0b7m!@d9Z|5G!sqZlq}Fl^!;U1 zBn#X@!tOjqI8Hcxv+t$;s9GWwKI*JNEDMzod%DMjTEmY zuDCg!QA_3w=q0MPoAbbw3M6B#1#zuhilggD_c~c`>hNXe-t?NH>0K6`@#MAE8TJQq z%C=$5ITaI~TRRZ5#(=_5BogJsFAw%L_fiIvoOl8=HdJjq&Y6^R(?4T){^5AAS6<=g zS%pduUmIJ8XW3Bvef-?N7CpaL!`66<(Q+P*jrmxKVoX-hV7n+anGfmrE^adDMvSHh z!Am`4E)IQx*1E=Yr5fP;O=Z*{s30_f5v3U?(&l#g;sv&N+>N*gBm>zp?dAUsnaL@9 zu9B6Cip`hV8;yrMQtA!hKQZKsK*ObQ=TxN8cdGHA%OHx$2v<*i&u=tJGab8Vh->>( zw)Ob7`5>w)(xCBr0r67JC!^MDbTM{XXUhXWv}^_gAlfR0ZF>c8_?lQ6k+e zVlJ)2iXwju^$#cpf(icw--33>z4cA!G3a#O7@nDeS`tM-djpt|WD^2$oZadh6JMNO zg3iSKe-Vm8UaVqEV-wz3W6&h15Fc~JedhX=zZgvf29)LR*+Ivg5>xS}0Pm%VW9f3IF6S{`+sn^>szvqdPXPeitMzG%4 zPnv;A)7rmB7w$xJZV6Nk4G5=+j~;1wpIYh6-hw9bYswEIX%i3cHOML;V-b;{kU+?j z?xe|F0468}_OEmh(b;{U&P@pGXho1$$Cw*)+=NBAYt#rxAwXi^1mEC(p7$Db~jryz&ZYA1-~qW zCZ}46VOff=95{RPi1s}2JhnI z8f^E=6h6lO%z+A{gQWIK`CnHBxLKoUc5Ay^A%gtZCPw89qJ}8paXNX1WTm1jRc7x^ zicjKJAWwSG{pv{|8U8o0u={CbkRtOBu?YT$Sk!B0)+Mx>Qv;t|`r}EE*aMt_IUrgk z&QJ_m6-+g57Oqb$lH!PaL5vPsOB*-!EBr-mu>s5Verh?~mQr}wd}5%9I?6mniIC@~ zxX(Xs4}VT5Ud#UZ=?wXiqdoXn-Y!tneJ@+sVaI6{%`@^b=Fl|AmGyj8v?ac=Yl=Q* z?4vOy8NRxB6^|9{et(4l9fj>KV21tqS-=r~uPIvtLT0`D)T$fQ62yWbB+5Dg)BBs> zY^VYhAkxaq%>lSLSPioByM-xUkHJN$v4xrB9)Wwrfa++yV=}Fo)a%-wztQ|8zbpeF zn@bH>&8mNh1fK2QK+h)(@=3oGsaO^K$o zre{rY^b!2gCP|9oVpr=iVVT3$o=jJ+3 zHt1&`FG*UzRf#y&CE@N*p^*5}U#dG+Bu-uKiYywiB_U@mRsjB;TuQiXL6=LzWy28O zUHAVd=$UsM__ABVY5tfi7;_VU{8Liq8PpNsj1#>RdLzEBp79s|_`zb$?no7(31FMo z=s!0d@2m>7-oaL0L-$h(N^|6kO!G!Nmp5{^IP+?#=KoIFsHBeD#1Wng+`uI_=6|_= zy?XVJBgYCja&YsdH3JU{DtV;(J!}4OH^=#e*nf_(ztkRQrYuvkyob21=7;{Im4bMD zhGYcGU^yF?E1N4EkzW=6GaM&U&+MYX0^6urZNjW>$hezdA@|l|DFi+MZF3K}mX4H{ z_%(v^9xwI!{CcosLq_dce{rf9n2thI=6?MImXCwEA3R+GRW1&plrQAR#I5qu@ci}y zIN+HvlSpFPfD>Trp3TcDH%(_9dTZPt4t-*z9W!fDeyTgnU+TWj&V|~jRE^|{Cwt~w zY5Ggy+!<+>%|4(@Tp&eX*KfM6e!@E5eZf_hqULww9W*8CzqgbQfU10!*ONFavZq8= zr_D>TNYQ5Td;-0dLd@~>d?$9{j!1J6+oCgDk8uo3?w6*S_ozCVa#*ShUuZTHA^_rL zXa&(a?U)IxyCPD06%m+u@oHZBbIl%eT_*hk6F^N6xyTPe9&-N^($vZ zrE8sm(B?APs?)#YiaIQnS9j-fUEK5AeA4=!9gfAle*8fzfD%}+O!VZV-dd3~3YJF?QSs~!D{J}szmzQhh<4Y7=%Cr< z*(nqX6DOLt`XVQt13mek%ig1#BPAra_qkVgs{3^E0}B$Xo$2A z$sKy)#LZv7D2}h{zO~h-{cX6P_G?`O;W_45p`^!Q&d?|Lr=rlj*&PM?_OG83sCOHn zY?VUbU`)?YyObYqKG^LaXMbI8@q{DUjo^5bRGzZGc{S((f4S-ZY40nes_MReDd|*7 zx>HI@`p`-vQqrMxcQ+^qNGsB<^r3`9^C%$F2-2c-H%Q1`8-4!uzVH2TzuYnIxSt$w zXn$VQqWfXyPfND}nz5l?3{i>ZwPA$H)RDM+bL{ z_+b5)$_tvlB3FckUv#SSa7f5KI)HTNmql#G>|o!>y#ORg3$s$Ar5EiUwmC;8+P+>u zX?YSd6f&kWayeWvpJdfLSa9kuQtypUwRWT#ki}RDm%u+3ZXZlb+L4OOnmoe5#yX$W z8QuRS;u}{PPcV$?6_eRvM(f(?j&r0D@|>bh9vms&y!vIK1fzgFq(r=5TInBc zxqb_4%3OF=1lcesQN`cAQF$!RsBB%WVfDc2|x9qt%3#u3pH@f@&eV z_yyR>=wmOjL&VKeyu6*XCH7~%h;Mpk>m(^_E4D-cVg|n2;$wF(+!iRhyGH!QLSyRE}_AKpdPeSJzSa@ zO9*c$yo+l+eRr%V!3fude)8MEw^o&}kHXA=%cEtNt$a|d{R;@<2{XYDv1l{lF$awE zo{kCtc4Qb@mSd{Qd#7XptJ?#T81XUBe@bH5$GcXaC~%?~8s7D}qR`GovoEhMArJHr@iW>ThM`7f(Odgio7{@DF1B$P3 zmsIXHu{1-Y0nyWWDsH(<+2`W^gNF zRy5qTHqYNE3os}E9ifuYXtN=dVV->>n1AiI4te|D@hA5<5J)s)`%Jk{FdPFIuTAPW za)k%j@EDKwcyUfQ&WRggwcIbr)sjMe*&ncgC8!XjpW2Jff6+uY@{S3|`xTK`WUd76 zC!2p0wtPbuWcv&h8^!bJhv2jZ@S&>5ytd`7NBfOLShZ|-6Y8Z#PoKLOcN!?725u(I2TmfMG1tA$ z`l!$*TZ%2p0UO-=Plf>cVVEp3lXgsPK=Th>O7ddGzo=4HA_<;6nb2;)7igsSv^Uxg z960~*Q@ViXKyZq@Do&NT*yiyRsZPEo*~O#7`{~5icT(D0flTuA)B^w_@lIya2)(k4 zVHC?Og`1iDLz;rV1T)pPBs*_2IK0*W`7|Nwd?=@$i6eo9!`0Iu(TF%Kn5~NvZyNO` z6O~Da!)G%I+FZqno>jlh(G_-3DTxrFp@kgN(Si14?17m=YVb^3aP($H^HLwFw4l0 z7ibc+g!!f8*B86Wo#+r8+EiJyKCh>(-ICxq@R%91eiVlAlZ){8v$P77QlKWJY?FqI zOSgZ7_WBRup5e6OXy(!T+!dGOl$8b1(HyqQN~n?Ja5tPc^r#P7huSGH>3-kLm^3O?T7K^5Ult%6t-_f-zQUJX`rUb;MrtHCabs&M*Yn2U< zS^fE{`qPwoGd^WkGRqUPpupm8?Zfk&drP7@yn};N152b|d2`T5%J+fxtg?SvF$V6r z*SgDFxs_gE@7lGY;mKO;-)~7~yZvUivfv75v(ONOcvX105X1dpv zq%=?AF|XI|sR#Medr}$AGJmY1!_^MZOjQ7|#v+u)k9PxXE8;K8V+Y>XtIi%o<)0=M zok*yyQcmM?BsYV$*4CW9wk2%RJaD&8TTfvkNdr>VbIF@}zRMG6#?@ zloge8V=%Du`zQM$phTkwd63(DI$BL|=vR=y%coDcAMo$-p_m6{S$Y*@%*HgfzBe{t zgMa^09|WVa9z@?UJ!{@Z7JW3dk&*GluW#*Wm#*oYz;SF+H}N*r>Rz&P^*=^Qp9XLn zCY<6j@da1yOt+q+&>`A1UK-)Hbev$%v*&g5=G5Qy6__QN83e#g zf+fPN5+&&~IVG(RonNMa;dJ}_Yhs*)##=nCd$C*?!x(|kuO0m5)9JOpXZjFeA z{qWXM`;rssQP!vY6uzOrEs)r|O|G;~WphvHkCdZ3m|_$2Z@7aF5%Xp}ba+unkSXhF zIIBi&6p!H8YwHPfF7b^VMVr>F>fp<(cdTh?+*-kve-$Da((mejMIq3#Dff4$J2B8T0*(#=xqgP%AX z@hUNEz>wuh7R#54*b&xbVOC_7^Q-fj2Z85)ly)(YhT=K%B*F*A)gks?`w1w3mPpl? zHW$zZzY_gXQQQDpv%KZqKxy=4+8ApvU46?cpfubXL0C+L`t$El* z%|%U#bp`oV*wi}ES$urCNI3v1ON(F*e3VP~0b`w4X2{Y)01P`UFknQ`U1g^hX_g?! zI1yU17#akF++_Zw5T+n8FAKL&mk2m->2=hi;yy)wNexns93wD04rKoOPZed6)==n* zI0h>eJhKO8m8UrmN}{4@C2k76>dk)#0fZ$Zfb#gXT^`cnO{c7FfScIJcg4FhZT=M} znghM-BgZBx9ioH|oqpCpyPe7H=_w%#;w;@5w`A*|n1NIgMKS=|{sVFNge<7Xk{Q;-)D*dXr9Bl3`k0I%B#{i zI=D@u|JmX^ zg<)@b3J7bud-8~+YVdS;mtLg^b+!fIKSsMr`eHtiBs1BxR>5=BuFnV0+6_uQJ^8|g zM}%jb4PS!#*zO>4QjM>j^W{@{Cf-TyNzvUKW;Vy%$D1;fA57q<(v~sqn&WG zx`>bb;o>Iy;+98+$+%%m@E7owbxv0b2V61+1duno-QIWDtNFEDVPR9(R-0!u7L>AkHjhW;JTZJRhCf%)3-DD%Nt=C4uh(82x}|D^tI>Id z1}_DmqsjIHy6FCcE}v45>iM7VyfXKX_?hLjKP>xRY#qF3i`>IuwB36$MvA#pr;8ZL z@wTvu4G6tc3Z!w6TH)BEEyK3X>Ybg<@cM+!;jVYnT2tT8DY3gw4P2%SzMBVd0h*pp z2(s>pc7Q}z{tR{)mk5CrjCvpxgqJEwgH**I@ocZ@6Hj^)<;ODx3iJLPUV!7ech!`# zBO1_-A5O6k84B^(iKU6qk$nGM{102a71Zz~7@>?%WN)iT2O1e!97e^ea+&!Y^oXDN ziCTv$YJknP^g{1(gb`pnp9sLPDZ|DAQ&E2|gE0ieL&QH^DrDlx;a6O5^ViLLCtJQ| zm^o#;QmkF^Hol^m+P^Q>FUdkiri67Nb=JMM@vJAMEOXS3;Z}dfvYMk~B4R^;AeZ&! z1^wSz0K*bhNY_>57>vE!`uboesv}S=O#oym)_bX$P8>3jSwHBc1Z%p0DbAPmS=*K zn3Nl3fPPl*6MTY5`~t_8MZ7XE!9KsPL= zy=w%({WBWB!d{@61dVZVpZPRqZR~VaO|&Vg)yShTfp;uiTSc^eJb{Br@pO9s4$Ev! zXVg%>ne6+|(rrNS2tW5tg8Q`u-AUS(%jOO1#5KS`KZ7+vbWL3&k*xmY7lKa<;!--6 zZpa_vQyNv8q%Zh#NGE&W$9+!6j^5ub>@VH$d2X)%9*y8&(l&43e&sUeyNvGkxd6F2^~LiA+FdE1;FSXch@e!@aWt=Siq^)FoSG8Lt+reoIMy&ddm z+e4zvtA~NwS87@~ahCeFvjU#k==XgvLf_L%%040)az>zSvqH9G3+#+J)}s_FAbo9FCCOL2~Gk z`aEnwu7R4+`gy|I0%`e;lGJl{4Bm(UtM$xh?9GPiIO76-6=A zOfhIEskQvIa#S>rTYwh>0GWTfqFmRXt|2y+A0n6GEBnWQ;Qe>%-W&8d{1@uJOR(ka zF2*M4Vch)Lp|r7_fGs;zs;@4P>2nMc@APps(H1@@@-ijpO#~ z>EGS#ou_dCRwk!u=foB?WIsrQ+cGD@s^6gCNeEUXM7_BS)es?fo^u_kcy{PYhmY^?Y^f=zHU?O3e~(Cw_{`>eXO*y zbh{`>QA4pLAYaYCUp9ciHedtW`z4xyrvW+K!a%YU<}V|voey7K+}%uhnE5^iPnEr( zwJ}Hn5t%H(=4@Qp5a#P}qa09)g%oW#>!bdvGTzgQ-XSL6iG}y^hzw*6B)iT6!gr0a zZTD%U+XEpJjns*fjx8f*&Li`{anFIt4`4$B&qhj?5ff$E-?b#UitOvKchY#3T_1T1 zA54D8o?mkzxs+s6^I6h(wPNYG1UhK%ZVq74zN_VHk8kGi;*rR#i9d;e1G3`&lecKb zQE)MlB|8>`hTHsRAoIkHQlYQxPc1KcY;eDtTD&4k&3WXRAlNK!C48B`N({&Zl?tw8 zXYdkt*5;1c!I7L&ik&cf2f6lAoCI~k^2hV{1VmQMj)qMAuv{p?ipD|-4So$h3ybMe zRa_L(LB+oJea&dGIQ$@WbL_EL$Y)@gMw8ML+R|_ovs4aKT zVV+l0m)K3rRSjnIzFMf$?66;L?1SGu#7X&*Q;Y&a(Z&H5&8epA!TcRy``0vLe9I~xS|4o)g6*-O9pQ%XR3ZY z+IOEPBLIcW^SYP&{_=emgazAMw*q7t?{F!0)xyTt)At~kj+F&>es4zr-Z?`6edD{} zRLh<3O{U38DtOO}Z!chdTIKT&7KF#tKHtk^w2?owuIF17E@`Aq%lLi|xDh%&R^?86 z14P*z7mj%U_PSG=M^3M5wq{wv>=%)9YoocqvnNKv=~tILy<==8f==U~tDkhfnv;9K zC63{Jdb&ldbp+=Rdc?CfrJCu#HoE@S{k{LQ{Y$c>QNMF8M`CJr%acUM@a6}Eyte?0 z(vMa~HO@!m&2;JKoBxe1O`R@Q`b!S_;P%-CDyVsY7qUfzBX=ICh;8&afLEsX+Hyf7 z5&esh%4!#|iJ_a^eUq|~djBoae<8icNUlk5zW+*kmpYUb1J-*+^2A49G*^1-*AVid z#@8I3QFa0N#@cs<#;_fxAo=DudK6PmHtj9xywkBI0+}V!C$XJ;Qi;^Q+NYm>d|y&u zq&_`RCs4H_RF;jB;lcm{T}Z4QBg@TNYlUX2g)}Uy?c{XPRWkkZ<1VmFJx*+S)*(tqUt_IzE%(9@OD8ynf-&8ko_I@qe%l&4ghWa zuk^a@>Csf$db&4r&N!P6mW^$Fa zaD@vqy|Vta723u%!=oQYmjg*8#czeS%QGNpkLwcEMPwKWq?P|Wx%_!hNlWBE*k$1A zDgnfn4k}wa9YO+_e|6$ltE~by!g!TACxo3rxTRzUqU*J->0k_UTJ+>*5i z4GNx`To*Pr6cJ5+)txWU>&OYDx~daCR*8D?0LGx_*PNYb_s9iTTaKoeiA>U~#lw2B z;!_4%w@IU@_6W?KrnL3d;|Gq!EbO=UH!)F!APLKxW-d6JpDYrdEzdHorE3(_lBFz; zMi%HXU(Tv4YrQ7lDd#Z#Tdc0igFbewy;OsZOQOSw*zG$$6yW&Gmf{VBdMz)5UOo`E zjY(_xKFRgAbitzYIQYzR>_-0MQx?EXf^foT{mJnaLim#JJx|iC-nHkVVyEyzR;8)( zD87({`Bup{JA$|Pj`AUb4V?~7+3W@eJK(P8F7X81tC~Lak5|Z#Gh*Ij1Y00;ucA-T ziwy;^yDFQ;y;6VmKY?1ly;9P=(R-n;Pm%OlLi@(p#Ar4R9<59R`tig1gn#n8UDO>e z;#5Tppg6C>x3|~isAjMwemg?W`?>xtQ^fc(b4{jsur6JH^nFu!X(bLYYS@ORJ>4-M z1QK)v(1?I44#+f1HuI$MCQcrAXgUTUI@&19Ur?xisPxFKvAPeHu=tl3`s=1Vt&bH` zw9C6w^=+wLX{2F$$K6T*psm@C%w4lyDb&Smh$ycx(v`R0F5Nz)M9(~zK{tZb%5>z84>5% zBLeSOZ!uVR6zAY;X(bASs!ayjYwKMPdvV;v>t^Xmo!_mp#ww#bX{oD)2+=uY^D>-`rKAK2H2pj}g|i zK&|l0sjvSjmf0u+bwI$rCJ7p}h+hMmX5+J$NyTg#roW+o^wTGfOVG)G=MO1}(M8d_ zjeiEelVq!Mv^gQq?Ig$gBN&%qh)}G)`Wq&}|G*4ho4$}ugEt5IX4D{Ra6f28fobTl zik`Sa591*{%yZs;AK%W>>zVqqj`0u+G11)GqYeIzE^Z6}bbVYe^|=Dt^bGed4g2Yb6?O<{1eys3UyA}8-^iXHVl+f281_Qb=R(P_6>Uy z;S#fF_IV6e4a}3X4-@)b%z+06-YtATSD{O-8iaAsfORtz#`BC^0Z7AuahUbu_~(N} zZ5)td(hc!Jhax%E5?d&Y9|hwb_F8ndQ1w~#=8T|G_mG2h0B-*iZ`8bQQ=e0(BuIQm zv@MAqgJuh%yK?Bs-~~MnE|v_;XOZkA+SfJ7vRQqJn&iwGI=mFPJ4AWegn8U39ULD5 zi@jAOD_c34wX4A!M7)r|(j^1Q_vbxCDxOC|k*VsWWvO4v6@=wgKIH9+_mU5!oYgL9*3<5{hp zN86u0Nz+@B!Ov#T`>8*@X2Q&VA&Nc*qK&SvCy`zK-*)G`dT$4y{7Rzyk6PllEZ7Yc z^m9Bypz&ll0l?ig^s4_+gLF1?_`b-UF&~`vc$78kEwq?yTjS4clh}o$atFKy^kz^R z|4)I6^E?3=pd*Jw^i=U(jJ3-+_gU2< zF=xd|_~8n&Aa4Cy!+&o&-klBnBeR7JJ8hnAp^jLa4)?eptuFFM04o>hq%{xBL)BKg zQaO>?oi5_ZN@YEh%D{tdm|a%MHSqNdjJ4HKgTXLyPR@Iat-F3H;$G)jWs5DIPbziQ zch+`%^{w&etLr{;3jtfsdvHr|!VZC$!#NmAXG)Lu()XpIHmub3#HEf0b1k#OML^iU z^=4dd0kCF~$X=^pfg$}9P}4KouL>Ch(=B;d&AIyk&D5jxPpXdp zRL~k*0^?u4SgRXT`7@e+&*)SGquA%3t;XsW+g`d1wi{AE#k$VSqja?fbAOWhey3g( zXw8+&`pA=y@9N=tJ2ZF{(BTs{j&+75f<#EYXp=^%Kq0K}ntov@=JFG5gxuHXj576K z)A<2zEr_xCPu8Xm@2IwhBR=cXoN9Jjp_{;D^0z>NmJ}9YsAoJlLj--Pl4doP#6Ijf ztpnxjaJYz!xAtIq`7K+!K*`0K>y7gY;ysoX^x}9h35lNlka#;kqR3qQ+H#KcYm73p zuix!nU_mtQk%B41y=r33lAXv|@09d#Gju>i%e5BwcSc=#Z@g!FKSRRa0v7t$;KQD0;eWWFg1iBr*vVVtjK=r`mQC=BX<9R=kT>9^KrJ0>8lV+2auh z;6SYY@UiG2mRx)}5Hp?$pf}@n*@O4j@xQ0_X=(zZP1a7o`t*`AcCi6RNoG<#w#PRR z;mYF`H*!+7Fi}z!K%rAely-oHB8mnG*<`Pmptr#%rkhM|Kv7s)bOs>c|Kd$t+*!8y z8e|}kFOkraimQ2NoKdz737>Xx7zz=A|r23v}zbH_Q zvL=$*YNFLOvisQhzT=Y3zRwsT=Jtcb7#}$r$2JCn(mjJw6Zg0&;40s1vg27mW z+kT*JLZyDU^%pN;jmy^`IZzdQ-hS{vyZ1oNxlPhUOYW!1)=HQ8K+2iotxH?_gtWbw z91(TSZc=cJ_d&?Lt6tx0G-OniD=yVyv4^dB07ow?8TcDT&+CSH^0@=ee?4C~>yVQH zJ;H#~)!K7e=L{IuMG>CgSsE~8Fdo+C&B!n!oXBWaLb0e0_CR}{Z?|kqa3VV|9EY(U zC%sYGIl8!k=OF#8U*ZvS_l{|N)m!BGhtGDe2AXsAI(ZU%zUWse$8PM4ydqThiSX#2?T6Re4?#37ihnK?nF7y)mZxBoAEW3tH z0p*-8ojsjANHk1QDN)mB0Agnm>dtx^?z}J4hX)B{INgpln!N}e);+iyty?zEy( z+UoTXfYvHuws@9#tPD}3VYy*!wMh+TnNY$QP;)Kbp_imbkGNfM?j+y6*1I{IY-}Jc zFI%LMGoV0^ZI8iO)g<=R(O+y)IyDUJ?_fI9e5h_2rey59i5A@cCo^h<|_=zf-4dxtu$>}s|xk^bgo?_R%h$5hNLh26O8ytazXu#)7XzU}0hD<4kBory8)k?326*?on z_6Ir*`+}t0{jcCDo^7BbO(bU+H8Rai>SDe(Zr~P=;Kk7LIbUUMX9>4Vn9cg91Tf&uPLac~!?pUdB7pZ#S1S%JY^)5RJWf zl>31|0<5{b`Q78??6i8&hjWImlk%6PZ_SL*Jn)@f(08F%6u4mYF4R?0&840=Y0Rs$ zl`Num{~E$;4zd2~5El^Z>H%hahy&ch(gGoxJ#k2vRWy5HeR9RYj-wtu#h9ng^6*93 z)}g8oX))h#w6ettcaO#wXCAerZv4znKc#W@hv|` zTR-->Q+P4-O+cj1cZgcV>T4e&L*a(F3U?fZrqH2Io^)IFuzJ%SWiTaoAofZ*=gtZt znkXT%9udrwOjxjl-s&WwO8W5rS5sMtc-CFn%=hp)e@%V`SH_(tCzL3fH_f%CN}m1% zwG^oIcmoqgKg@B`ogjMsjODY7u5qj${%1=OYnkbpQyr`2#56B$49T}bu59xf4C-}w z-3mHveS{zq;Xo+|3SA#NT1cEsPJM2cr_R!_)+A!>0PZdmHg%bcx|&-h{V8L1vnHh= z!APA<7__U=eN2(!t!5TpFSNMXYT_RXb#H;%-L?{o#Rc9P3iIL+8`XEQ$Lfp_eEy`a-`cP4@!=50;&ff-OYQu% z-bt;V>AqLiu6%tnjXP}Rle>ZZ9bc|~n#VDpLnpltgxJ#!wkN){|9&eX7F^S;Yw9EmQt;yNxsgGgf`%q+F?52{cCX? zpb^Q~e=6O62O2D#GFJ^qq$==AW$|6lO(0C+Z#-YE1KOn;zpxm#eOw|**UN$#<= zL1$ltBqv5hw9$~2pv+tBVaP@q1r+grh zf5y(51<%<8=J{h0Z%bC-I1s!*Lgz|t2-C{`kzOfjBo5KsTetBc58XKP#8PUf<*^4U zhJ(eszCONL`P^atKlC`4XJt{(j}|8!8_iH?G3-t^H?|$5KQFkRyY`*b>6WLq>D@q9gb2C(IsHcNVi^$ZNkshaNi{St+?k~sN^-yj zn2!?tTy5CJm-&j26Vc@_W3A(jVze_K+ayp|lk()X_2Bf1kdufjJ{K%;!;WL%nM-cp zSw)Uop`yb%f4Ip#^tt;2i!2NiIK|2(;?2G(hceieMTB;?r3#M*6}@AWKH;sqD!ay> z6cwxt88sLwb7loa`JOy0dPx`5^c|jivEoB8uU1Yis}*!)Ia}|PQKm*%1$jZr!w?zT zgsU28gt`zQ*byVfUPX59jKKl=A(GE=i>nPTZ55B!EtPE!j3>;Fld`0uvsMexSv3}g zmfUTV%^t>=cojpbX{ATr%>AIva6id#unE4-IRHf%wMh>s*F0&SXl=KE`YqO9AhEN;K`bi!UB z>9jLY_np>7?Zo^-Z2Oi}x`@`&&PKUCVWIrPxU2Qn!#jBCQMw27^@qEi4W(~C*y#K8 zS3jMi%P5kxJGbs`Z*tDKRm{JtdrJX+LiR?;dBW4u62wd>Fl~sRJgyjfK-7*jJs%x6 z3LKk-H-Ur#pqWOc8lLKb2I?&=C6_ND1=G}q;{9yr;EiXv1j`G&4n3tylHObKNfo)5 zQR?+?cJsXR>XOm%22)8fVn45w7+nh18n%H7FyQW!*;K&#S27Q$x?!P^Dj?bJ1c6SM z@$4p`no?rUdZARXfpF)Si`Py|w>~dD5(q3hiY7pcCszN;@{2UkeaZbgpLB;33^8Ig z;4w0NgW0U@{em-cVe+yrNEq}b(rG#GddwlU#u0u?)*!l{on(88BX8euLwu}f>*e)pLTX3p2%%O7*M5|9*c{uAAlAJx$ zvx#CpCTo|db?&BCj;*Qq!3s8i4NEUykuSvPU3kcavDR}se!jp-;fGR32`Es}?4+0J z6RskmQK;ZSjh8qm21dRZnfI^J&@VyOy9Zl7wxS^caSnVBSFAayK1sBNKa5g zwkS7NRjLb^?kk1kKKJ-*&B zN|ply>W34ue)rZB&?6;3TSz0IeDP4!O>OTz7OjTHQn72GU*Er3aM;P{fHcEn?p`#63e?%p{#LDH|sji zlns7OQ)^_Sxd76-^+gXC#`Vps5{IHSC!KVImRRq$*(*64+f_Nbn39LT6I6fh;~vR;RkI z(P6CYd=ry>zawIr9T}pqF_Hd({TC*mJ+K#A$ZIW4{%LZ7)|RzQ`!H5+zDc%t&-IS| z$`8JC>*sdw)D2`Y8Ph8%&_?2e+z%^}74=`oYR|S-HIoXjp%7CT2oK`KP|?PRHlXvm z7>m+hIt7{a#zT8NEor*nTwF|MZ7Ha zD_v{a$Gt|qO;4bL@!Wuo3;+-4C_ajmU-ySjD1?`8Od^=u*EdXz6a&rVx^|NF__|O3 z>d^+sv`J~8O*+_;%1MGoMS*Ok8*Im^ zy12lJT_G#A2pP=ioO{8&wpgw%#zKRpj2XNujf}rm&aF`8CF8%C*Z7GTT`c$W2v#8#;wgp*O8&R3~?2^_*hhCdtK^uUZv?OjA4L z`Ao}m6a*p>fsycrb?@qjpqDzCq#COe!ww8!c3B5&Qb` zVCn(p^h5F!m|z`Q7~?C9xC~okSxawT2R*?gUyqokZ%trJXUQt$JK91`fJMR ziX{L!vkbS`^+SAf2h-!xWWY^!2h;ry3K!N>a~Ubg(}4iRwfOjof;RDUa+|C2x|(-$ z^EAvl9^zXwTO!~!-7Jc?em`s#6SNzj*JmgbI>XQ&Grpp0u@h=m|6?L9o8mS+^5sXN z>uT|ntGR?}MdjkM#*)Km1J8^O0;}$|#|`aY`o57>Rt`T_pfb6Ghkx4M%Y6NK&REd8 zK^s~Go#W_s`BBP=j9coyb*T%F_D{rH@o@KSoL~J)?d28fcPo9{;mfR}p0($zW=v#2 z^Ulup^fJluRr_ChckuSzulFq-<|^26oP*(D)@pG=#xX0G`=LOGZh%TWd4p4E1nzU9 zp%FZP1FJF%slh);(`8ab2~IfYIjiPVb3N1ekTfBxx!hGVG7I;In6NykZS2z`1= z$s5rvR}~tAx02D|&)A>kNg1*mxVz)@24e;^nb@9#z&2=IlR@jcFEh~t8#FYB8HhK_ zGcQqz)tk>rlpRNR+T{ytr7~ZywJ_*}m3AsKOr&O?B+%-= zF|?HYkKbH>o+=AA-%?fTb$;>BztBSl2fPlFksAB;Hqncx8EStkk44)3OhR~ zNYhm-h6PD=X#Bn3-dls4HWsklM~6n438iOV^}%57Z7o*){aRP4-a^*&+B#_MeFt_oxTHKZvEPjn1i`{ZDxckz%%__(@*)2d45ng&3FnR(*mfYl z0KVckOIuPdz3PP2euQE(f;z5(>i2`JKx26@>(&UG*)9`-OD{Vm-1+?x0=jpjS#JF@ zsBzKej92owy|;<07xk4+AIa}|%xK_0=I#G~`TwKCGJMrw&@F(3goN99fyj#4dxZP|kZyFaU?gM| zG;HK9gA%)&e}2N8LBrjNef$ji1o|&IguKlWO)P(Y3T{_z-<>Oo`2T`o93tpoVS$ literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-pie-pull.png b/contrib/plotting-visualization/images/plotly-pie-pull.png new file mode 100644 index 0000000000000000000000000000000000000000..202314b861e22f04e32981f0c2232f877a70419c GIT binary patch literal 29403 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 MN-0TJh#Lj|AN@u#qyPW_ literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/images/plotly-pie-title.png b/contrib/plotting-visualization/images/plotly-pie-title.png new file mode 100644 index 0000000000000000000000000000000000000000..e3d3ae7e357042399a2ab572f5deba94bcb024e7 GIT binary patch literal 28099 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 literal 0 HcmV?d00001 diff --git a/contrib/plotting-visualization/index.md b/contrib/plotting-visualization/index.md index 644704b..02324f2 100644 --- a/contrib/plotting-visualization/index.md +++ b/contrib/plotting-visualization/index.md @@ -10,3 +10,4 @@ - [Seaborn Plotting Functions](seaborn-plotting.md) - [Getting started with Seaborn](seaborn-basics.md) - [Bar Plots in Plotly](plotly-bar-plots.md) +- [Pie Charts in Plotly](plotly-pie-charts.md) \ No newline at end of file diff --git a/contrib/plotting-visualization/plotly-pie-charts.md b/contrib/plotting-visualization/plotly-pie-charts.md new file mode 100644 index 0000000..2f78809 --- /dev/null +++ b/contrib/plotting-visualization/plotly-pie-charts.md @@ -0,0 +1,221 @@ +# Pie Charts in Plotly + +A pie chart is a type of graph that represents the data in the circular graph. The slices of pie show the relative size of the data, and it is a type of pictorial representation of data. A pie chart requires a list of categorical variables and numerical variables. Here, the term "pie" represents the whole, and the "slices" represent the parts of the whole. + +Pie charts are commonly used in business presentations like sales, operations, survey results, resources, etc. as they are pleasing to the eye and provide a quick summary. + +Plotly is a very powerful library for creating modern visualizations and it provides a very easy and intuitive method to create highly customized pie charts. + +## Prerequisites + +Before creating bar plots in Plotly you must ensure that you have Python, Plotly and Pandas installed on your system. + +## Introduction + +There are various ways to create pie charts in `plotly`. One of the prominent and easiest one is using `plotly.express`. Plotly Express is the easy-to-use, high-level interface to Plotly, which operates on a variety of types of data and produces easy-to-style figures. On the other hand you can also use `plotly.graph_objects` to create various plots. + +Here, we'll be using `plotly.express` to create the pie charts. Also we'll be converting our datasets into pandas DataFrames which makes it extremely convenient and easy to create charts. + +Also, note that when you execute the codes in a simple python file, the output plot will be shown in your **browser**, rather than a pop-up window like in matplotlib. If you do not want that, it is **recommended to create the plots in a notebook (like jupyter)**. For this, install an additional library `nbformat`. This way you can see the output on the notebook itself, and can also render its format to png, jpg, etc. + +## Creating a simple pie chart using `plotly.express.pie` + +In `plotly.express.pie`, data visualized by the sectors of the pie is set in values. The sector labels are set in names. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers') + +# Showing plot +fig.show() +``` +![Basic Pie Chart](images/plotly-basic-pie-chart.png) + +Here, we are first creating the dataset and converting it into Pandas DataFrames using dictionaries, with its keys being DataFrame columns. Next, we are plotting the pie chart by using `px.pie`. In the `values` and `names` parameters, we have to specify a column name in the DataFrame. + +`px.pie(df, values='Petals', names='Flowers')` is used to specify that the pie chart is to be plotted by taking the values from column `Petals` and the fractional area of each slice is represented by **petal/sum(petals)**. The column `flowers` represents the labels of slices corresponding to each value in `petals`. + +**Note:** When you generate the image using above code, it will show you an **interactive plot**, if you want image, you can download it from their itself. + +## Customizing Pie Charts + +### Adding title to the chart + +Simply pass the title of your chart as a parameter in `px.pie`. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers') + +# Showing plot +fig.show() +``` +![Title in Pie Chart](images/plotly-pie-title.png) + +### Coloring Slices + +There are a lot of beautiful color scales available in plotly and can be found here [plotly color scales](https://plotly.com/python/builtin-colorscales/). Choose your favourite colorscale apply it like this: + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers', + color_discrete_sequence=px.colors.sequential.Agsunset) + +# Showing plot +fig.show() +``` +![Pie Chart Colors-1](images/plotly-pie-color-1.png) + +You can also set custom colors for each label by passing it as a dictionary(map) in `color_discrete_map`, like this: + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers', + color='flowers', + color_discrete_map={'Rose':'red', + 'Tulip':'magenta', + 'Marigold':'green', + 'Sunflower':'yellow', + 'Daffodil':'royalblue'}) + +# Showing plot +fig.show() +``` +![Pie Chart Colors-1](images/plotly-pie-color-2.png) + +### Labeling Slices + +You can use `fig.update_traces` to effectively control the properties of text being displayed on your figure, for example if we want both flower name , petal count and percentage in our slices, we can do it like this: + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers') + +# Updating text properties +fig.update_traces(textposition='inside', textinfo='label+value+percent') + +# Showing plot +fig.show() +``` +![Pie Labels](images/plotly-pie-labels.png) + +### Pulling out a slice + +To pull out a slice pass an array to parameter `pull` in `fig.update_traces` corresponding to the slices and amount to be pulled. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers') + +# Updating text properties +fig.update_traces(textposition='inside', textinfo='label+value') + +# Pulling out slice +fig.update_traces(pull=[0,0,0,0.2,0]) + +# Showing plot +fig.show() +``` +![Slice Pull](images/plotly-pie-pull.png) + +### Pattern Fills + +You can also add patterns (hatches), in addition to colors in pie charts. + +```Python +import plotly.express as px +import pandas as pd + +# Creating dataset +flowers = ['Rose','Tulip','Marigold','Sunflower','Daffodil'] +petals = [11,9,17,4,7] + +# Converting dataset to pandas DataFrame +dataset = {'flowers':flowers, 'petals':petals} +df = pd.DataFrame(dataset) + +# Creating pie chart +fig = px.pie(df, values='petals', names='flowers', + title='Number of Petals in Flowers') + +# Updating text properties +fig.update_traces(textposition='outside', textinfo='label+value') + +# Adding pattern fills +fig.update_traces(marker=dict(pattern=dict(shape=[".", "/", "+", "-","+"]))) + +# Showing plot +fig.show() +``` +![Pattern Fills Pie Chart](images/plotly-pie-patterns.png) \ No newline at end of file From afec460fbd8b3031d7e1bdcd44389135573b4121 Mon Sep 17 00:00:00 2001 From: Vedant Zope Date: Mon, 24 Jun 2024 21:23:20 +0530 Subject: [PATCH 46/53] Added Cyclic Sort algorithm --- contrib/ds-algorithms/sorting-algorithms.md | 55 +++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/contrib/ds-algorithms/sorting-algorithms.md b/contrib/ds-algorithms/sorting-algorithms.md index 55367b8..a3cd72e 100644 --- a/contrib/ds-algorithms/sorting-algorithms.md +++ b/contrib/ds-algorithms/sorting-algorithms.md @@ -561,3 +561,58 @@ print("Sorted string:", sorted_str) ### Complexity Analysis - **Time Complexity:** O(n+k) for all cases.No matter how the elements are placed in the array, the algorithm goes through n+k times - **Space Complexity:** O(max). Larger the range of elements, larger is the space complexity. + + +## 9. Cyclic Sort + +### Theory +Cyclic Sort is an in-place sorting algorithm that is useful for sorting arrays where the elements are in a known range (e.g., 1 to N). The key idea behind the algorithm is that each number should be placed at its correct index. If we find a number that is not at its correct index, we swap it with the number at its correct index. This process is repeated until every number is at its correct index. + +### Algorithm +- Iterate over the array from the start to the end. +- For each element, check if it is at its correct index. +- If it is not at its correct index, swap it with the element at its correct index. +- Continue this process until the element at the current index is in its correct position. Move to the next index and repeat the process until the end of the array is reached. + +### Steps +- Start with the first element. +- Check if it is at the correct index (i.e., if arr[i] == i + 1). +- If it is not, swap it with the element at the index arr[i] - 1. +- Repeat step 2 for the current element until it is at the correct index. +- Move to the next element and repeat the process. + +### Code + +```python +def cyclic_sort(nums): + i = 0 + while i < len(nums): + correct_index = nums[i] - 1 + if nums[i] != nums[correct_index]: + nums[i], nums[correct_index] = nums[correct_index], nums[i] # Swap + else: + i += 1 + return nums +``` + +### Example +``` +arr = [3, 1, 5, 4, 2] +sorted_arr = cyclic_sort(arr) +print(sorted_arr) + ``` +### Output +``` +[1, 2, 3, 4, 5] +``` + +### Complexity Analysis +**Time Complexity:** + +The time complexity of Cyclic Sort is **O(n)**. +This is because in each cycle, each element is either placed in its correct position or a swap is made. Since each element is swapped at most once, the total number of swaps (and hence the total number of operations) is linear in the number of elements. + +**Space Complexity:** + +The space complexity of Cyclic Sort is **O(1)**. +This is because the algorithm only requires a constant amount of additional space beyond the input array. \ No newline at end of file From 7b123e505fad404a79ac3a000850d241101529ad Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Tue, 25 Jun 2024 04:18:43 +0530 Subject: [PATCH 47/53] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8688009..0a046b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ The list of topics for which we are looking for content are provided below along - Interacting with Databases - [Link](https://github.com/animator/learn-python/tree/main/contrib/database) - Web Scrapping - [Link](https://github.com/animator/learn-python/tree/main/contrib/web-scrapping) - API Development - [Link](https://github.com/animator/learn-python/tree/main/contrib/api-development) -- Data Structures & Algorithms - [Link](https://github.com/animator/learn-python/tree/main/contrib/ds-algorithms) +- Data Structures & Algorithms - [Link](https://github.com/animator/learn-python/tree/main/contrib/ds-algorithms) **(Not accepting)** - Python Mini Projects - [Link](https://github.com/animator/learn-python/tree/main/contrib/mini-projects) **(Not accepting)** - Python Question Bank - [Link](https://github.com/animator/learn-python/tree/main/contrib/question-bank) **(Not accepting)** From bd2635bc6e2106c36e94f868f40b0e0114471fe9 Mon Sep 17 00:00:00 2001 From: StutiTiwari <116055334+s-tuti@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:40:46 +0530 Subject: [PATCH 48/53] Update dynamic-programming.md --- contrib/ds-algorithms/dynamic-programming.md | 189 +++++++++++++++++++ 1 file changed, 189 insertions(+) diff --git a/contrib/ds-algorithms/dynamic-programming.md b/contrib/ds-algorithms/dynamic-programming.md index 0f16d5c..986ecd3 100644 --- a/contrib/ds-algorithms/dynamic-programming.md +++ b/contrib/ds-algorithms/dynamic-programming.md @@ -234,3 +234,192 @@ print("Length of lis is", lis(arr)) ## Complexity Analysis - **Time Complexity**: O(n * n) for both approaches, where n is the length of the array. - **Space Complexity**: O(n * n) for the memoization table in Top-Down Approach, O(n) in Bottom-Up Approach. + +# 5. String Edit Distance + +The String Edit Distance algorithm calculates the minimum number of operations (insertions, deletions, or substitutions) required to convert one string into another. + +**Algorithm Overview:** +- **Base Cases:** If one string is empty, the edit distance is the length of the other string. +- **Memoization:** Store the results of previously computed edit distances to avoid redundant computations. +- **Recurrence Relation:** Compute the edit distance by considering insertion, deletion, and substitution operations. + +## String Edit Distance Code in Python (Top-Down Approach with Memoization) +```python +def edit_distance(str1, str2, memo={}): + m, n = len(str1), len(str2) + if (m, n) in memo: + return memo[(m, n)] + if m == 0: + return n + if n == 0: + return m + if str1[m - 1] == str2[n - 1]: + memo[(m, n)] = edit_distance(str1[:m-1], str2[:n-1], memo) + else: + memo[(m, n)] = 1 + min(edit_distance(str1, str2[:n-1], memo), # Insert + edit_distance(str1[:m-1], str2, memo), # Remove + edit_distance(str1[:m-1], str2[:n-1], memo)) # Replace + return memo[(m, n)] + +str1 = "sunday" +str2 = "saturday" +print(f"Edit Distance between '{str1}' and '{str2}' is {edit_distance(str1, str2)}.") +# Output: Edit Distance between 'sunday' and 'saturday' is 3. +``` +## String Edit Distance Code in Python (Bottom-Up Approach) +```python +def edit_distance(str1, str2): + m, n = len(str1), len(str2) + dp = [[0 for _ in range(n + 1)] for _ in range(m + 1)] + + for i in range(m + 1): + for j in range(n + 1): + if i == 0: + dp[i][j] = j + elif j == 0: + dp[i][j] = i + elif str1[i - 1] == str2[j - 1]: + dp[i][j] = dp[i - 1][j - 1] + else: + dp[i][j] = 1 + min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + + return dp[m][n] + +str1 = "sunday" +str2 = "saturday" +print(f"Edit Distance between '{str1}' and '{str2}' is {edit_distance(str1, str2)}.") +# Output: Edit Distance between 'sunday' and 'saturday' is 3. +``` +## **Complexity Analysis:** +- **Time Complexity:** O(m * n) where m and n are the lengths of string 1 and string 2 respectively +- **Space Complexity:** O(m * n) for both top-down and bottom-up approaches + + +# 6. Matrix Chain Multiplication + +The Matrix Chain Multiplication finds the optimal way to multiply a sequence of matrices to minimize the number of scalar multiplications. + +**Algorithm Overview:** +- **Base Cases:** The cost of multiplying one matrix is zero. +- **Memoization:** Store the results of previously computed matrix chain orders to avoid redundant computations. +- **Recurrence Relation:** Compute the optimal cost by splitting the product at different points and choosing the minimum cost. + +## Matrix Chain Multiplication Code in Python (Top-Down Approach with Memoization) +```python +def matrix_chain_order(p, memo={}): + n = len(p) - 1 + def compute_cost(i, j): + if (i, j) in memo: + return memo[(i, j)] + if i == j: + return 0 + memo[(i, j)] = float('inf') + for k in range(i, j): + q = compute_cost(i, k) + compute_cost(k + 1, j) + p[i - 1] * p[k] * p[j] + if q < memo[(i, j)]: + memo[(i, j)] = q + return memo[(i, j)] + return compute_cost(1, n) + +p = [1, 2, 3, 4] +print(f"Minimum number of multiplications is {matrix_chain_order(p)}.") +# Output: Minimum number of multiplications is 18. +``` +## Matrix Chain Multiplication Code in Python (Bottom-Up Approach) +```python +def matrix_chain_order(p): + n = len(p) - 1 + m = [[0 for _ in range(n)] for _ in range(n)] + + for L in range(2, n + 1): + for i in range(n - L + 1): + j = i + L - 1 + m[i][j] = float('inf') + for k in range(i, j): + q = m[i][k] + m[k + 1][j] + p[i] * p[k + 1] * p[j + 1] + if q < m[i][j]: + m[i][j] = q + + return m[0][n - 1] + +p = [1, 2, 3, 4] +print(f"Minimum number of multiplications is {matrix_chain_order(p)}.") +# Output: Minimum number of multiplications is 18. +``` +## **Complexity Analysis:** +- **Time Complexity:** O(n^3) where n is the number of matrices in the chain. For an `array p` of dimensions representing the matrices such that the `i-th matrix` has dimensions `p[i-1] x p[i]`, n is `len(p) - 1` +- **Space Complexity:** O(n^2) for both top-down and bottom-up approaches + + +# 7. Optimal Binary Search Tree + +The Matrix Chain Multiplication finds the optimal way to multiply a sequence of matrices to minimize the number of scalar multiplications. + +**Algorithm Overview:** +- **Base Cases:** The cost of a single key is its frequency. +- **Memoization:** Store the results of previously computed subproblems to avoid redundant computations. +- **Recurrence Relation:** Compute the optimal cost by trying each key as the root and choosing the minimum cost. + +## Optimal Binary Search Tree Code in Python (Top-Down Approach with Memoization) +```python +def optimal_bst(keys, freq, memo={}): + n = len(keys) + def compute_cost(i, j): + if (i, j) in memo: + return memo[(i, j)] + if i > j: + return 0 + if i == j: + return freq[i] + memo[(i, j)] = float('inf') + total_freq = sum(freq[i:j+1]) + for r in range(i, j + 1): + cost = (compute_cost(i, r - 1) + + compute_cost(r + 1, j) + + total_freq) + if cost < memo[(i, j)]: + memo[(i, j)] = cost + return memo[(i, j)] + return compute_cost(0, n - 1) + +keys = [10, 12, 20] +freq = [34, 8, 50] +print(f"Cost of Optimal BST is {optimal_bst(keys, freq)}.") +# Output: Cost of Optimal BST is 142. +``` +## Optimal Binary Search Tree Code in Python (Bottom-Up Approach) +```python +def optimal_bst(keys, freq): + n = len(keys) + cost = [[0 for x in range(n)] for y in range(n)] + + for i in range(n): + cost[i][i] = freq[i] + + for L in range(2, n + 1): + for i in range(n - L + 1): + j = i + L - 1 + cost[i][j] = float('inf') + total_freq = sum(freq[i:j+1]) + for r in range(i, j + 1): + c = (cost[i][r - 1] if r > i else 0) + \ + (cost[r + 1][j] if r < j else 0) + \ + total_freq + if c < cost[i][j]: + cost[i][j] = c + + return cost[0][n - 1] + +keys = [10, 12, 20] +freq = [34, 8, 50] +print(f"Cost of Optimal BST is {optimal_bst(keys, freq)}.") +# Output: Cost of Optimal BST is 142. +``` +## **Complexity Analysis:** +- **Time Complexity:** O(n^3) where n is the number of keys in the binary search tree. +- **Space Complexity:** O(n^2) for both top-down and bottom-up approaches + +
+


+
From b4b295e2a0102d7eb5b53e21aa16ebd3da989f3a Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Tue, 25 Jun 2024 22:14:58 +0530 Subject: [PATCH 49/53] Update index.md --- contrib/machine-learning/index.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/contrib/machine-learning/index.md b/contrib/machine-learning/index.md index 3a2cccf..95ee61d 100644 --- a/contrib/machine-learning/index.md +++ b/contrib/machine-learning/index.md @@ -2,16 +2,13 @@ - [Introduction to scikit-learn](sklearn-introduction.md) - [Binomial Distribution](binomial-distribution.md) +- [Naive Bayes](naive-bayes.md) - [Regression in Machine Learning](regression.md) - [Polynomial Regression](polynomial-regression.md) - [Confusion Matrix](confusion-matrix.md) - [Decision Tree Learning](decision-tree.md) - [Random Forest](random-forest.md) - [Support Vector Machine Algorithm](support-vector-machine.md) -- [Artificial Neural Network from the Ground Up](ann.md) -- [Introduction To Convolutional Neural Networks (CNNs)](intro-to-cnn.md) -- [TensorFlow](tensorflow.md) -- [PyTorch](pytorch.md) - [Ensemble Learning](ensemble-learning.md) - [Types of optimizers](types-of-optimizers.md) - [Logistic Regression](logistic-regression.md) @@ -19,14 +16,14 @@ - [Clustering](clustering.md) - [Hierarchical Clustering](hierarchical-clustering.md) - [Grid Search](grid-search.md) -- [Transformers](transformers.md) - [K-Means](kmeans.md) - [K-nearest neighbor (KNN)](knn.md) -<<<<<<< RL -- [Reinforcement Learning](reinforcement-learning.md) -======= -- [Naive Bayes](naive-bayes.md) -- [Neural network regression](neural-network-regression.md) -- [PyTorch Fundamentals](pytorch-fundamentals.md) - [Xgboost](xgboost.md) ->>>>>>> main +- [Artificial Neural Network from the Ground Up](ann.md) +- [Introduction To Convolutional Neural Networks (CNNs)](intro-to-cnn.md) +- [TensorFlow](tensorflow.md) +- [PyTorch](pytorch.md) +- [PyTorch Fundamentals](pytorch-fundamentals.md) +- [Transformers](transformers.md) +- [Reinforcement Learning](reinforcement-learning.md) +- [Neural network regression](neural-network-regression.md) From 3275592f71770951206aa5487d3a1369d608dd5e Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Tue, 25 Jun 2024 22:17:47 +0530 Subject: [PATCH 50/53] Update reinforcement-learning.md --- .../reinforcement-learning.md | 69 ------------------- 1 file changed, 69 deletions(-) diff --git a/contrib/machine-learning/reinforcement-learning.md b/contrib/machine-learning/reinforcement-learning.md index 027b682..c5529fc 100644 --- a/contrib/machine-learning/reinforcement-learning.md +++ b/contrib/machine-learning/reinforcement-learning.md @@ -2,54 +2,6 @@ Reinforcement Learning (RL) is a field of Machine Learing which focuses on goal-directed learning from interaction with the environment. In RL, an agent learns to make decisions by performing actions in an environment to maximize cumulative numerical reward signal. This README aims to provide a thorough understanding of RL, covering key concepts, algorithms, applications, and resources. -## Table of Contents - -
-Click to expand - -1. [What is Reinforcement Learning?](#what-is-reinforcement-learning) -2. [Key Concepts and Terminology](#key-concepts-and-terminology) - - [Agent](#agent) - - [Environment](#environment) - - [State](#state) - - [Action](#action) - - [Reward](#reward) - - [Policy](#policy) - - [Value Function](#value-function) - - [Model](#model) - - [Exploration vs. Exploitation](#exploration-vs-exploitation) -3. [Types of Reinforcement Learning](#types-of-reinforcement-learning) - - [Model-Based vs Model-Free](#model-based-vs-model-free) - - [Value-Based Methods](#value-based-methods) - - [Policy-Based Methods](#policy-based-methods) - - [Actor-Critic Methods](#actor-critic-methods) -4. [Important Algorithms](#important-algorithms) - - [Q-Learning](#q-learning) - - [SARSA](#sarsa) - - [REINFORCE Algorithm](#reinforce-algorithm) - - [Proximal Policy Optimization (PPO)](#proximal-policy-optimization-ppo) - - [A2C/A3C](#a2ca3c) -5. [Mathematical Background](#mathematical-background) - - [Markov Decision Processes (MDP)](#markov-decision-processes-mdps) - - [Bellman Equations](#bellman-equations) -6. [Applications of Reinforcement Learning](#applications-of-reinforcement-learning) - - [Gaming](#gaming) - - [Robotics](#robotics) - - [Finance](#finance) - - [Healthcare](#healthcare) -7. [Tools and Libraries](#tools-and-libraries) -8. [Resources for Further Learning](#resources-for-further-learning) - - [Books](#books) - - [Online Courses](#online-courses) - - [Research Papers](#research-papers) - - [Blogs and Websites](#blogs-and-websites) -9. [How to Start with Reinforcement Learning](#how-to-start-with-reinforcement-learning) - - [Prerequisites](#prerequisites) - - [Beginner Project](#beginner-project) -10. [Conclusion](#conclusion) - -
- ## What is Reinforcement Learning? Reinforcement learning involves determining the best actions to take in various situations to maximize a numerical reward signal. Instead of being instructed on which actions to take, the learner must explore and identify the actions that lead to the highest rewards through trial and error. After each action performed in its environment, a trainer may give feedback in the form of rewards or penalties to indicate the desirability of the resulting state. Unlike supervised learning, reinforcement learning does not depend on labeled data but instead learns from the outcomes of its actions. @@ -175,25 +127,6 @@ In healthcare, reinforcement learning is utilized for various applications such - **PyTorch:** Popular machine learning library with RL capabilities. - **Stable Baselines3:** A set of reliable implementations of RL algorithms in PyTorch. -## Resources for Further Learning -### Books -- "Reinforcement Learning: An Introduction" by Sutton and Barto -- "Deep Reinforcement Learning Hands-On" by Maxim Lapan - -### Online Courses -- "Reinforcement Learning" by Udacity -- "Fundamentals of Reinforcement Learning" by Coursera -- "Master Reinforcement Learning and Deep RL with Python" by Udemy - -### Research Papers -- [Reinforcement learning model, algorithms and its application](https://ieeexplore.ieee.org/abstract/document/6025669) -- [A Concise Introduction to Reinforcement Learning](https://www.researchgate.net/publication/323178749_A_Concise_Introduction_to_Reinforcement_Learning) - -### Blogs and Websites -- [OpenAI Blog](https://spinningup.openai.com/en/latest/) -- [Geeks for Geeks](https://www.geeksforgeeks.org/what-is-reinforcement-learning/) -- [Medium Blog](https://gordicaleksa.medium.com/how-to-get-started-with-reinforcement-learning-rl-4922fafeaf8c) - ## How to Start with Reinforcement Learning ### Prerequisites @@ -298,5 +231,3 @@ for i in range(num_rows): ## Conclusion Congratulations on completing your journey through this comprehensive guide to reinforcement learning! Armed with this knowledge, you are well-equipped to dive deeper into the exciting world of RL, whether it's for gaming, robotics, finance, healthcare, or any other domain. Keep exploring, experimenting, and learning, and remember, the only limit to what you can achieve with reinforcement learning is your imagination. - -*Happy coding, and may your RL adventures be rewarding!* From b03352ee2352648cd6c168c1f4091521dae5c8d8 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Thu, 27 Jun 2024 19:04:00 +0530 Subject: [PATCH 51/53] Rename Tree-Traversal.md to tree-traversal.md --- contrib/ds-algorithms/{Tree-Traversal.md => tree-traversal.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contrib/ds-algorithms/{Tree-Traversal.md => tree-traversal.md} (100%) diff --git a/contrib/ds-algorithms/Tree-Traversal.md b/contrib/ds-algorithms/tree-traversal.md similarity index 100% rename from contrib/ds-algorithms/Tree-Traversal.md rename to contrib/ds-algorithms/tree-traversal.md From 7159c1c0473689519146f3c89bec1dffe72b36c9 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Thu, 27 Jun 2024 19:04:24 +0530 Subject: [PATCH 52/53] Update index.md --- contrib/ds-algorithms/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/ds-algorithms/index.md b/contrib/ds-algorithms/index.md index 25e797f..71a9cb5 100644 --- a/contrib/ds-algorithms/index.md +++ b/contrib/ds-algorithms/index.md @@ -22,4 +22,4 @@ - [AVL Trees](avl-trees.md) - [Splay Trees](splay-trees.md) - [Dijkstra's Algorithm](dijkstra.md) -- [Tree Traversals](Tree-Traversal.md) +- [Tree Traversals](tree-traversal.md) From 59e2353bc94d2d5dd6840002e82eb4e81d140501 Mon Sep 17 00:00:00 2001 From: Ashita Prasad Date: Thu, 27 Jun 2024 19:37:55 +0530 Subject: [PATCH 53/53] Update dynamic-programming.md --- contrib/ds-algorithms/dynamic-programming.md | 54 +++++++++++++++----- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/contrib/ds-algorithms/dynamic-programming.md b/contrib/ds-algorithms/dynamic-programming.md index 986ecd3..f495868 100644 --- a/contrib/ds-algorithms/dynamic-programming.md +++ b/contrib/ds-algorithms/dynamic-programming.md @@ -265,8 +265,13 @@ def edit_distance(str1, str2, memo={}): str1 = "sunday" str2 = "saturday" print(f"Edit Distance between '{str1}' and '{str2}' is {edit_distance(str1, str2)}.") -# Output: Edit Distance between 'sunday' and 'saturday' is 3. ``` + +#### Output +``` +Edit Distance between 'sunday' and 'saturday' is 3. +``` + ## String Edit Distance Code in Python (Bottom-Up Approach) ```python def edit_distance(str1, str2): @@ -289,8 +294,13 @@ def edit_distance(str1, str2): str1 = "sunday" str2 = "saturday" print(f"Edit Distance between '{str1}' and '{str2}' is {edit_distance(str1, str2)}.") -# Output: Edit Distance between 'sunday' and 'saturday' is 3. ``` + +#### Output +``` +Edit Distance between 'sunday' and 'saturday' is 3. +``` + ## **Complexity Analysis:** - **Time Complexity:** O(m * n) where m and n are the lengths of string 1 and string 2 respectively - **Space Complexity:** O(m * n) for both top-down and bottom-up approaches @@ -324,8 +334,14 @@ def matrix_chain_order(p, memo={}): p = [1, 2, 3, 4] print(f"Minimum number of multiplications is {matrix_chain_order(p)}.") -# Output: Minimum number of multiplications is 18. ``` + +#### Output +``` +Minimum number of multiplications is 18. +``` + + ## Matrix Chain Multiplication Code in Python (Bottom-Up Approach) ```python def matrix_chain_order(p): @@ -345,13 +361,17 @@ def matrix_chain_order(p): p = [1, 2, 3, 4] print(f"Minimum number of multiplications is {matrix_chain_order(p)}.") -# Output: Minimum number of multiplications is 18. ``` + +#### Output +``` +Minimum number of multiplications is 18. +``` + ## **Complexity Analysis:** - **Time Complexity:** O(n^3) where n is the number of matrices in the chain. For an `array p` of dimensions representing the matrices such that the `i-th matrix` has dimensions `p[i-1] x p[i]`, n is `len(p) - 1` - **Space Complexity:** O(n^2) for both top-down and bottom-up approaches - # 7. Optimal Binary Search Tree The Matrix Chain Multiplication finds the optimal way to multiply a sequence of matrices to minimize the number of scalar multiplications. @@ -362,6 +382,7 @@ The Matrix Chain Multiplication finds the optimal way to multiply a sequence of - **Recurrence Relation:** Compute the optimal cost by trying each key as the root and choosing the minimum cost. ## Optimal Binary Search Tree Code in Python (Top-Down Approach with Memoization) + ```python def optimal_bst(keys, freq, memo={}): n = len(keys) @@ -386,9 +407,15 @@ def optimal_bst(keys, freq, memo={}): keys = [10, 12, 20] freq = [34, 8, 50] print(f"Cost of Optimal BST is {optimal_bst(keys, freq)}.") -# Output: Cost of Optimal BST is 142. ``` + +#### Output +``` +Cost of Optimal BST is 142. +``` + ## Optimal Binary Search Tree Code in Python (Bottom-Up Approach) + ```python def optimal_bst(keys, freq): n = len(keys) @@ -414,12 +441,13 @@ def optimal_bst(keys, freq): keys = [10, 12, 20] freq = [34, 8, 50] print(f"Cost of Optimal BST is {optimal_bst(keys, freq)}.") -# Output: Cost of Optimal BST is 142. ``` -## **Complexity Analysis:** -- **Time Complexity:** O(n^3) where n is the number of keys in the binary search tree. -- **Space Complexity:** O(n^2) for both top-down and bottom-up approaches -
-
-
+#### Output +``` +Cost of Optimal BST is 142. +``` + +### Complexity Analysis +- **Time Complexity**: O(n^3) where n is the number of keys in the binary search tree. +- **Space Complexity**: O(n^2) for both top-down and bottom-up approaches

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 literal 0 HcmV?d00001 diff --git a/contrib/ds-algorithms/images/preorder-traversal.png b/contrib/ds-algorithms/images/preorder-traversal.png new file mode 100644 index 0000000000000000000000000000000000000000..d95b13bde78dc27456038d1baa6897eabafc2ecf GIT binary patch literal 10964 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 CDxqco literal 0 HcmV?d00001 diff --git a/contrib/ds-algorithms/images/traversal.png b/contrib/ds-algorithms/images/traversal.png new file mode 100644 index 0000000000000000000000000000000000000000..67e6675b4ec713989d22c2486b36423e7cc05a69 GIT binary patch literal 45055 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