From 800f847f2b17e3d2fac6d116a2baea21295a9c83 Mon Sep 17 00:00:00 2001
From: Adrian Egli <adrian.egli@sbb.ch>
Date: Mon, 19 Oct 2020 15:48:23 +0200
Subject: [PATCH] .

---
 run.py                                        |  16 +-
 .../dueling_double_dqn.cpython-36.pyc         | Bin 16301 -> 0 bytes
 src/agent/__pycache__/model.cpython-36.pyc    | Bin 2216 -> 0 bytes
 src/agent/dueling_double_dqn.py               | 512 ------------
 src/agent/model.py                            |  61 --
 src/dead_lock_avoidance_agent.py              | 116 ---
 src/extra.py                                  | 404 ----------
 src/images/adrian_egli_decisions.png          | Bin 50335 -> 0 bytes
 src/images/adrian_egli_info.png               | Bin 48981 -> 0 bytes
 src/images/adrian_egli_ppo_training_done.png  | Bin 56845 -> 0 bytes
 src/images/adrian_egli_start.png              | Bin 28024 -> 0 bytes
 src/images/adrian_egli_target.png             | Bin 31268 -> 0 bytes
 src/observations.py                           | 736 ------------------
 src/ppo/agent.py                              | 106 ---
 src/ppo/model.py                              |  20 -
 src/ppo/replay_memory.py                      |  53 --
 src/shortest_Distance_walker.py               |  69 --
 utils/dead_lock_avoidance_agent.py            |  51 +-
 utils/shortest_Distance_walker.py             |   6 +-
 19 files changed, 44 insertions(+), 2106 deletions(-)
 delete mode 100644 src/agent/__pycache__/dueling_double_dqn.cpython-36.pyc
 delete mode 100644 src/agent/__pycache__/model.cpython-36.pyc
 delete mode 100644 src/agent/dueling_double_dqn.py
 delete mode 100644 src/agent/model.py
 delete mode 100644 src/dead_lock_avoidance_agent.py
 delete mode 100644 src/extra.py
 delete mode 100644 src/images/adrian_egli_decisions.png
 delete mode 100644 src/images/adrian_egli_info.png
 delete mode 100644 src/images/adrian_egli_ppo_training_done.png
 delete mode 100644 src/images/adrian_egli_start.png
 delete mode 100644 src/images/adrian_egli_target.png
 delete mode 100644 src/observations.py
 delete mode 100644 src/ppo/agent.py
 delete mode 100644 src/ppo/model.py
 delete mode 100644 src/ppo/replay_memory.py
 delete mode 100644 src/shortest_Distance_walker.py

diff --git a/run.py b/run.py
index d920c06..674ae41 100644
--- a/run.py
+++ b/run.py
@@ -3,13 +3,14 @@ import time
 import numpy as np
 from flatland.core.env_observation_builder import DummyObservationBuilder
 from flatland.envs.agent_utils import RailAgentStatus
+from flatland.envs.rail_env import RailEnvActions
 from flatland.evaluators.client import FlatlandRemoteClient
 
+from utils.dead_lock_avoidance_agent import DeadLockAvoidanceAgent
+
 #####################################################################
 # Instantiate a Remote Client
 #####################################################################
-from src.dead_lock_avoidance_agent import DeadLockAvoidanceAgent
-from src.extra import Extra
 
 remote_client = FlatlandRemoteClient()
 
@@ -24,11 +25,16 @@ remote_client = FlatlandRemoteClient()
 # def my_controller_RL(extra: Extra, observation, info):
 #     return extra.rl_agent_act(observation, info)
 
-def my_controller(policy):
+def my_controller(policy, info):
     policy.start_step()
     actions = {}
+    # print("-------- act ------------")
     for handle in range(policy.env.get_num_agents()):
-        a = policy.act(handle, None, 0)
+        if info['action_required'][handle] and handle < policy.env._elapsed_steps:
+            a = policy.act(handle, None, 0)
+        else:
+            a = RailEnvActions.DO_NOTHING
+            agent = policy.env.agents[handle]
         actions.update({handle: a})
     policy.end_step()
     return actions
@@ -136,7 +142,7 @@ while True:
         # Compute the action for this step by using the previously 
         # defined controller
         time_start = time.time()
-        action = my_controller(policy)
+        action = my_controller(policy, info)
         time_taken = time.time() - time_start
         time_taken_by_controller.append(time_taken)
 
diff --git a/src/agent/__pycache__/dueling_double_dqn.cpython-36.pyc b/src/agent/__pycache__/dueling_double_dqn.cpython-36.pyc
deleted file mode 100644
index 41afc8cad7a82889d0118d5fd836cf1f15af34de..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 16301
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

diff --git a/src/agent/__pycache__/model.cpython-36.pyc b/src/agent/__pycache__/model.cpython-36.pyc
deleted file mode 100644
index a13378b2cbe5716b1bf04b774b5fce12ccef39e7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2216
zcmb7F-HPNy6s}4o>GbdXt?u}@uDc=xq@}w-SdnFMKoPV-WN(_rBBrW$(wnIsE9sea
z$b!%Vd*y?8A@~$NMBRGTkDxbtP9^E-URJ?s^7T16CzYyG=le41c3Xe${rcTBAmk6S
zHC(VC!IeD(5Jb?F%;|($%bC+To48*P;Rtq31e0{`t=PneJFf8Hj#u4j2>LAv{WZ)%
z#xY_&aDE)w2LO`b%o9g6UXU3TOt{z02@{_1ugS!HL0mHNV4lDP-;8B`xzJD7kKnQO
zPXMtGfCK+ob!9U!a+1@6tem;CB9!E8?iRFgS585=XFa#@tmj+L6V!T*oy=e-vsq>q
zj?HWd0;_VyYYJ}*+s4b5=Td72JQHx9s3hmyI7%7+t3=62o5n02@QWx#V^|xb+8FRi
zT$G{87~!4JH*O}=nQ3KtluMo^SJJejI8PR;bRaB+2~HD%vBAa~hSW4UkJBj2IRAzG
z_4wqI>Elf5Y`Po{K7R0EH2qSk#YKcuO=oG8r;!p|%S6o<I+kZr<vfLjt3*BF@)_(d
z!F$u_3F6s8$h3d{qi(>CvHV#NfY6@PqwuqMbx<E!zphA(1;T+nfG2hWS0(^*=&^##
zor135_uQ#`2KBZ+#9XvD5wFT*Ri<Aso5>)vf%bEFwqUnO!REn=9OHS>ao9BUbK`26
zE_DlDtJ?@2gf0T^Lhk_>_e@4AboD+u^qFCJb_~u$-^LsZ#~5osy)Gjy4#26Zuuu1C
zi&>;s`<p6MiJ_x$>l$kS2Mq0^qB9BY(&8NIx=hjTaQ?$GO3R3?vVIre)~(JomTAiQ
z&00dLU&l#tNwy6=Ffx2aKznU_CkAITFoNU%k+50sWoTD#_Yq?Y;HX;xH<$em@Cp{X
zf}(N=_h+}_q7U4IljoLu5C!H#Mj1y2`ognu%Rh)Vw&E=tZ`gPn?2ZU3UU$(eyu!C^
z?OD$k%zAq}nfp7L2W4i(@<Yq==6H=wu(pSWWepwEek!$+X~{u9%XK2;`YvW+f~`wJ
z-hk92jqK3xBVd6vs4X%6$wFNWh4EteADH%MQ68U;7y4`{ChU7PC<8;ZhowD2d!(B<
z#eX(#*sv|Du^sgx!V$i)m#Fh)&g0Wa!MZbj3nQ-q)Qz)gXuHfi5Xs&I07}zav{PT(
z^gi4)!>jp?l{mq9egk-k-*m(8lJB(-I&E28`@r(K4;Oq*R`7LLRccT@9c-yXb4MLo
zJI{ggm)cN0*WS{K&P!U+t+c`$Yt(j)yIB7XLl3|Tdm2uaXe^EX5TTFo5dt2IaW4{i
z38D>R{IA-g--66aTJ+oa=sO5l^BY2!Oh(S*<Qbk90a<|`yJO|WBE1pWVgE*7klnTk
zLto!T`#pqv2(}4vT74g3BW86USOLLy#WmFea$p-6zrs0u98UX6m3@3vyZzZx*{>3a
nWb4MZ#WMcaR@JNsl}y;YbxTKsPfPK8h-J@^H7(j<hsXZ_eB|P5

diff --git a/src/agent/dueling_double_dqn.py b/src/agent/dueling_double_dqn.py
deleted file mode 100644
index f08e176..0000000
--- a/src/agent/dueling_double_dqn.py
+++ /dev/null
@@ -1,512 +0,0 @@
-import torch
-import torch.optim as optim
-
-BUFFER_SIZE = int(1e5)  # replay buffer size
-BATCH_SIZE = 512  # minibatch size
-GAMMA = 0.99  # discount factor 0.99
-TAU = 0.5e-3  # for soft update of target parameters
-LR = 0.5e-4  # learning rate 0.5e-4 works
-
-# how often to update the network
-UPDATE_EVERY = 20
-UPDATE_EVERY_FINAL = 10
-UPDATE_EVERY_AGENT_CANT_CHOOSE = 200
-
-
-double_dqn = True  # If using double dqn algorithm
-input_channels = 5  # Number of Input channels
-
-device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
-device = torch.device("cpu")
-print(device)
-
-USE_OPTIMIZER = optim.Adam
-# USE_OPTIMIZER = optim.RMSprop
-print(USE_OPTIMIZER)
-
-
-class Agent:
-    """Interacts with and learns from the environment."""
-
-    def __init__(self, state_size, action_size, net_type, seed, double_dqn=True, input_channels=5):
-        """Initialize an Agent object.
-
-        Params
-        ======
-            state_size (int): dimension of each state
-            action_size (int): dimension of each action
-            seed (int): random seed
-        """
-        self.state_size = state_size
-        self.action_size = action_size
-        self.seed = random.seed(seed)
-        self.version = net_type
-        self.double_dqn = double_dqn
-        # Q-Network
-        if self.version == "Conv":
-            self.qnetwork_local = QNetwork2(state_size, action_size, seed, input_channels).to(device)
-            self.qnetwork_target = copy.deepcopy(self.qnetwork_local)
-        else:
-            self.qnetwork_local = QNetwork(state_size, action_size, seed).to(device)
-            self.qnetwork_target = copy.deepcopy(self.qnetwork_local)
-
-        self.optimizer = USE_OPTIMIZER(self.qnetwork_local.parameters(), lr=LR)
-
-        # Replay memory
-        self.memory = ReplayBuffer(action_size, BUFFER_SIZE, BATCH_SIZE, seed)
-        self.memory_final = ReplayBuffer(action_size, BUFFER_SIZE, BATCH_SIZE, seed)
-        self.memory_agent_can_not_choose = ReplayBuffer(action_size, BUFFER_SIZE, BATCH_SIZE, seed)
-
-        self.final_step = {}
-
-        # Initialize time step (for updating every UPDATE_EVERY steps)
-        self.t_step = 0
-        self.t_step_final = 0
-        self.t_step_agent_can_not_choose = 0
-
-    def save(self, filename):
-        torch.save(self.qnetwork_local.state_dict(), filename + ".local")
-        torch.save(self.qnetwork_target.state_dict(), filename + ".target")
-
-    def load(self, filename):
-        if os.path.exists(filename + ".local"):
-            self.qnetwork_local.load_state_dict(torch.load(filename + ".local"))
-            print(filename + ".local -> ok")
-        if os.path.exists(filename + ".target"):
-            self.qnetwork_target.load_state_dict(torch.load(filename + ".target"))
-            print(filename + ".target -> ok")
-        self.optimizer = USE_OPTIMIZER(self.qnetwork_local.parameters(), lr=LR)
-
-    def _update_model(self, switch=0):
-        # Learn every UPDATE_EVERY time steps.
-        # If enough samples are available in memory, get random subset and learn
-        if switch == 0:
-            self.t_step = (self.t_step + 1) % UPDATE_EVERY
-            if self.t_step == 0:
-                if len(self.memory) > BATCH_SIZE:
-                    experiences = self.memory.sample()
-                    self.learn(experiences, GAMMA)
-        elif switch == 1:
-            self.t_step_final = (self.t_step_final + 1) % UPDATE_EVERY_FINAL
-            if self.t_step_final == 0:
-                if len(self.memory_final) > BATCH_SIZE:
-                    experiences = self.memory_final.sample()
-                    self.learn(experiences, GAMMA)
-        else:
-            # If enough samples are available in memory_agent_can_not_choose, get random subset and learn
-            self.t_step_agent_can_not_choose = (self.t_step_agent_can_not_choose + 1) % UPDATE_EVERY_AGENT_CANT_CHOOSE
-            if self.t_step_agent_can_not_choose == 0:
-                if len(self.memory_agent_can_not_choose) > BATCH_SIZE:
-                    experiences = self.memory_agent_can_not_choose.sample()
-                    self.learn(experiences, GAMMA)
-
-    def step(self, state, action, reward, next_state, done):
-        # Save experience in replay memory
-        self.memory.add(state, action, reward, next_state, done)
-        self._update_model(0)
-
-    def step_agent_can_not_choose(self, state, action, reward, next_state, done):
-        # Save experience in replay memory_agent_can_not_choose
-        self.memory_agent_can_not_choose.add(state, action, reward, next_state, done)
-        self._update_model(2)
-
-    def add_final_step(self, agent_handle, state, action, reward, next_state, done):
-        if self.final_step.get(agent_handle) is None:
-            self.final_step.update({agent_handle: [state, action, reward, next_state, done]})
-
-    def make_final_step(self, additional_reward=0):
-        for _, item in self.final_step.items():
-            state = item[0]
-            action = item[1]
-            reward = item[2] + additional_reward
-            next_state = item[3]
-            done = item[4]
-            self.memory_final.add(state, action, reward, next_state, done)
-            self._update_model(1)
-        self._reset_final_step()
-
-    def _reset_final_step(self):
-        self.final_step = {}
-
-    def act(self, state, eps=0.):
-        """Returns actions for given state as per current policy.
-
-        Params
-        ======
-            state (array_like): current state
-            eps (float): epsilon, for epsilon-greedy action selection
-        """
-        state = torch.from_numpy(state).float().unsqueeze(0).to(device)
-        self.qnetwork_local.eval()
-        with torch.no_grad():
-            action_values = self.qnetwork_local(state)
-        self.qnetwork_local.train()
-
-        # Epsilon-greedy action selection
-        if random.random() > eps:
-            return np.argmax(action_values.cpu().data.numpy())
-        else:
-            return random.choice(np.arange(self.action_size))
-
-    def learn(self, experiences, gamma):
-
-        """Update value parameters using given batch of experience tuples.
-
-        Params
-        ======
-            experiences (Tuple[torch.Tensor]): tuple of (s, a, r, s', done) tuples
-            gamma (float): discount factor
-        """
-        states, actions, rewards, next_states, dones = experiences
-
-        # Get expected Q values from local model
-        Q_expected = self.qnetwork_local(states).gather(1, actions)
-
-        if self.double_dqn:
-            # Double DQN
-            q_best_action = self.qnetwork_local(next_states).max(1)[1]
-            Q_targets_next = self.qnetwork_target(next_states).gather(1, q_best_action.unsqueeze(-1))
-        else:
-            # DQN
-            Q_targets_next = self.qnetwork_target(next_states).detach().max(1)[0].unsqueeze(-1)
-
-            # Compute Q targets for current states
-
-        Q_targets = rewards + (gamma * Q_targets_next * (1 - dones))
-
-        # Compute loss
-        loss = F.mse_loss(Q_expected, Q_targets)
-        # Minimize the loss
-        self.optimizer.zero_grad()
-        loss.backward()
-        self.optimizer.step()
-
-        # ------------------- update target network ------------------- #
-        self.soft_update(self.qnetwork_local, self.qnetwork_target, TAU)
-
-    def soft_update(self, local_model, target_model, tau):
-        """Soft update model parameters.
-        θ_target = τ*θ_local + (1 - τ)*θ_target
-
-        Params
-        ======
-            local_model (PyTorch model): weights will be copied from
-            target_model (PyTorch model): weights will be copied to
-            tau (float): interpolation parameter
-        """
-        for target_param, local_param in zip(target_model.parameters(), local_model.parameters()):
-            target_param.data.copy_(tau * local_param.data + (1.0 - tau) * target_param.data)
-
-
-class ReplayBuffer:
-    """Fixed-size buffer to store experience tuples."""
-
-    def __init__(self, action_size, buffer_size, batch_size, seed):
-        """Initialize a ReplayBuffer object.
-
-        Params
-        ======
-            action_size (int): dimension of each action
-            buffer_size (int): maximum size of buffer
-            batch_size (int): size of each training batch
-            seed (int): random seed
-        """
-        self.action_size = action_size
-        self.memory = deque(maxlen=buffer_size)
-        self.batch_size = batch_size
-        self.experience = namedtuple("Experience", field_names=["state", "action", "reward", "next_state", "done"])
-        self.seed = random.seed(seed)
-
-    def add(self, state, action, reward, next_state, done):
-        """Add a new experience to memory."""
-        e = self.experience(np.expand_dims(state, 0), action, reward, np.expand_dims(next_state, 0), done)
-        self.memory.append(e)
-
-    def sample(self):
-        """Randomly sample a batch of experiences from memory."""
-        experiences = random.sample(self.memory, k=self.batch_size)
-
-        states = torch.from_numpy(self.__v_stack_impr([e.state for e in experiences if e is not None])) \
-            .float().to(device)
-        actions = torch.from_numpy(self.__v_stack_impr([e.action for e in experiences if e is not None])) \
-            .long().to(device)
-        rewards = torch.from_numpy(self.__v_stack_impr([e.reward for e in experiences if e is not None])) \
-            .float().to(device)
-        next_states = torch.from_numpy(self.__v_stack_impr([e.next_state for e in experiences if e is not None])) \
-            .float().to(device)
-        dones = torch.from_numpy(self.__v_stack_impr([e.done for e in experiences if e is not None]).astype(np.uint8)) \
-            .float().to(device)
-
-        return (states, actions, rewards, next_states, dones)
-
-    def __len__(self):
-        """Return the current size of internal memory."""
-        return len(self.memory)
-
-    def __v_stack_impr(self, states):
-        sub_dim = len(states[0][0]) if isinstance(states[0], Iterable) else 1
-        np_states = np.reshape(np.array(states), (len(states), sub_dim))
-        return np_states
-
-
-import copy
-import os
-import random
-from collections import namedtuple, deque, Iterable
-
-import numpy as np
-import torch
-import torch.nn.functional as F
-import torch.optim as optim
-
-from src.agent.model import QNetwork2, QNetwork
-
-BUFFER_SIZE = int(1e5)  # replay buffer size
-BATCH_SIZE = 512  # minibatch size
-GAMMA = 0.95  # discount factor 0.99
-TAU = 0.5e-4  # for soft update of target parameters
-LR = 0.5e-3  # learning rate 0.5e-4 works
-
-# how often to update the network
-UPDATE_EVERY = 40
-UPDATE_EVERY_FINAL = 1000
-UPDATE_EVERY_AGENT_CANT_CHOOSE = 200
-
-double_dqn = True  # If using double dqn algorithm
-input_channels = 5  # Number of Input channels
-
-device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
-device = torch.device("cpu")
-print(device)
-
-USE_OPTIMIZER = optim.Adam
-# USE_OPTIMIZER = optim.RMSprop
-print(USE_OPTIMIZER)
-
-
-class Agent:
-    """Interacts with and learns from the environment."""
-
-    def __init__(self, state_size, action_size, net_type, seed, double_dqn=True, input_channels=5):
-        """Initialize an Agent object.
-
-        Params
-        ======
-            state_size (int): dimension of each state
-            action_size (int): dimension of each action
-            seed (int): random seed
-        """
-        self.state_size = state_size
-        self.action_size = action_size
-        self.seed = random.seed(seed)
-        self.version = net_type
-        self.double_dqn = double_dqn
-        # Q-Network
-        if self.version == "Conv":
-            self.qnetwork_local = QNetwork2(state_size, action_size, seed, input_channels).to(device)
-            self.qnetwork_target = copy.deepcopy(self.qnetwork_local)
-        else:
-            self.qnetwork_local = QNetwork(state_size, action_size, seed).to(device)
-            self.qnetwork_target = copy.deepcopy(self.qnetwork_local)
-
-        self.optimizer = USE_OPTIMIZER(self.qnetwork_local.parameters(), lr=LR)
-
-        # Replay memory
-        self.memory = ReplayBuffer(action_size, BUFFER_SIZE, BATCH_SIZE, seed)
-        self.memory_final = ReplayBuffer(action_size, BUFFER_SIZE, BATCH_SIZE, seed)
-        self.memory_agent_can_not_choose = ReplayBuffer(action_size, BUFFER_SIZE, BATCH_SIZE, seed)
-
-        self.final_step = {}
-
-        # Initialize time step (for updating every UPDATE_EVERY steps)
-        self.t_step = 0
-        self.t_step_final = 0
-        self.t_step_agent_can_not_choose = 0
-
-    def save(self, filename):
-        torch.save(self.qnetwork_local.state_dict(), filename + ".local")
-        torch.save(self.qnetwork_target.state_dict(), filename + ".target")
-
-    def load(self, filename):
-        print("try to load: " + filename)
-        if os.path.exists(filename + ".local"):
-            self.qnetwork_local.load_state_dict(torch.load(filename + ".local"))
-            print(filename + ".local -> ok")
-        if os.path.exists(filename + ".target"):
-            self.qnetwork_target.load_state_dict(torch.load(filename + ".target"))
-            print(filename + ".target -> ok")
-        self.optimizer = USE_OPTIMIZER(self.qnetwork_local.parameters(), lr=LR)
-
-    def _update_model(self, switch=0):
-        # Learn every UPDATE_EVERY time steps.
-        # If enough samples are available in memory, get random subset and learn
-        if switch == 0:
-            self.t_step = (self.t_step + 1) % UPDATE_EVERY
-            if self.t_step == 0:
-                if len(self.memory) > BATCH_SIZE:
-                    experiences = self.memory.sample()
-                    self.learn(experiences, GAMMA)
-        elif switch == 1:
-            self.t_step_final = (self.t_step_final + 1) % UPDATE_EVERY_FINAL
-            if self.t_step_final == 0:
-                if len(self.memory_final) > BATCH_SIZE:
-                    experiences = self.memory_final.sample()
-                    self.learn(experiences, GAMMA)
-        else:
-            # If enough samples are available in memory_agent_can_not_choose, get random subset and learn
-            self.t_step_agent_can_not_choose = (self.t_step_agent_can_not_choose + 1) % UPDATE_EVERY_AGENT_CANT_CHOOSE
-            if self.t_step_agent_can_not_choose == 0:
-                if len(self.memory_agent_can_not_choose) > BATCH_SIZE:
-                    experiences = self.memory_agent_can_not_choose.sample()
-                    self.learn(experiences, GAMMA)
-
-    def step(self, state, action, reward, next_state, done):
-        # Save experience in replay memory
-        self.memory.add(state, action, reward, next_state, done)
-        self._update_model(0)
-
-    def step_agent_can_not_choose(self, state, action, reward, next_state, done):
-        # Save experience in replay memory_agent_can_not_choose
-        self.memory_agent_can_not_choose.add(state, action, reward, next_state, done)
-        self._update_model(2)
-
-    def add_final_step(self, agent_handle, state, action, reward, next_state, done):
-        if self.final_step.get(agent_handle) is None:
-            self.final_step.update({agent_handle: [state, action, reward, next_state, done]})
-            return True
-        else:
-            return False
-
-    def make_final_step(self, additional_reward=0):
-        for _, item in self.final_step.items():
-            state = item[0]
-            action = item[1]
-            reward = item[2] + additional_reward
-            next_state = item[3]
-            done = item[4]
-            self.memory_final.add(state, action, reward, next_state, done)
-            self._update_model(1)
-        self._reset_final_step()
-
-    def _reset_final_step(self):
-        self.final_step = {}
-
-    def act(self, state, eps=0.):
-        """Returns actions for given state as per current policy.
-
-        Params
-        ======
-            state (array_like): current state
-            eps (float): epsilon, for epsilon-greedy action selection
-        """
-        state = torch.from_numpy(state).float().unsqueeze(0).to(device)
-        self.qnetwork_local.eval()
-        with torch.no_grad():
-            action_values = self.qnetwork_local(state)
-        self.qnetwork_local.train()
-
-        # Epsilon-greedy action selection
-        if random.random() > eps:
-            return np.argmax(action_values.cpu().data.numpy()), False
-        else:
-            return random.choice(np.arange(self.action_size)), True
-
-    def learn(self, experiences, gamma):
-
-        """Update value parameters using given batch of experience tuples.
-
-        Params
-        ======
-            experiences (Tuple[torch.Tensor]): tuple of (s, a, r, s', done) tuples
-            gamma (float): discount factor
-        """
-        states, actions, rewards, next_states, dones = experiences
-
-        # Get expected Q values from local model
-        Q_expected = self.qnetwork_local(states).gather(1, actions)
-
-        if self.double_dqn:
-            # Double DQN
-            q_best_action = self.qnetwork_local(next_states).max(1)[1]
-            Q_targets_next = self.qnetwork_target(next_states).gather(1, q_best_action.unsqueeze(-1))
-        else:
-            # DQN
-            Q_targets_next = self.qnetwork_target(next_states).detach().max(1)[0].unsqueeze(-1)
-
-            # Compute Q targets for current states
-
-        Q_targets = rewards + (gamma * Q_targets_next * (1 - dones))
-
-        # Compute loss
-        loss = F.mse_loss(Q_expected, Q_targets)
-        # Minimize the loss
-        self.optimizer.zero_grad()
-        loss.backward()
-        self.optimizer.step()
-
-        # ------------------- update target network ------------------- #
-        self.soft_update(self.qnetwork_local, self.qnetwork_target, TAU)
-
-    def soft_update(self, local_model, target_model, tau):
-        """Soft update model parameters.
-        θ_target = τ*θ_local + (1 - τ)*θ_target
-
-        Params
-        ======
-            local_model (PyTorch model): weights will be copied from
-            target_model (PyTorch model): weights will be copied to
-            tau (float): interpolation parameter
-        """
-        for target_param, local_param in zip(target_model.parameters(), local_model.parameters()):
-            target_param.data.copy_(tau * local_param.data + (1.0 - tau) * target_param.data)
-
-
-class ReplayBuffer:
-    """Fixed-size buffer to store experience tuples."""
-
-    def __init__(self, action_size, buffer_size, batch_size, seed):
-        """Initialize a ReplayBuffer object.
-
-        Params
-        ======
-            action_size (int): dimension of each action
-            buffer_size (int): maximum size of buffer
-            batch_size (int): size of each training batch
-            seed (int): random seed
-        """
-        self.action_size = action_size
-        self.memory = deque(maxlen=buffer_size)
-        self.batch_size = batch_size
-        self.experience = namedtuple("Experience", field_names=["state", "action", "reward", "next_state", "done"])
-        self.seed = random.seed(seed)
-
-    def add(self, state, action, reward, next_state, done):
-        """Add a new experience to memory."""
-        e = self.experience(np.expand_dims(state, 0), action, reward, np.expand_dims(next_state, 0), done)
-        self.memory.append(e)
-
-    def sample(self):
-        """Randomly sample a batch of experiences from memory."""
-        experiences = random.sample(self.memory, k=self.batch_size)
-
-        states = torch.from_numpy(self.__v_stack_impr([e.state for e in experiences if e is not None])) \
-            .float().to(device)
-        actions = torch.from_numpy(self.__v_stack_impr([e.action for e in experiences if e is not None])) \
-            .long().to(device)
-        rewards = torch.from_numpy(self.__v_stack_impr([e.reward for e in experiences if e is not None])) \
-            .float().to(device)
-        next_states = torch.from_numpy(self.__v_stack_impr([e.next_state for e in experiences if e is not None])) \
-            .float().to(device)
-        dones = torch.from_numpy(self.__v_stack_impr([e.done for e in experiences if e is not None]).astype(np.uint8)) \
-            .float().to(device)
-
-        return (states, actions, rewards, next_states, dones)
-
-    def __len__(self):
-        """Return the current size of internal memory."""
-        return len(self.memory)
-
-    def __v_stack_impr(self, states):
-        sub_dim = len(states[0][0]) if isinstance(states[0], Iterable) else 1
-        np_states = np.reshape(np.array(states), (len(states), sub_dim))
-        return np_states
diff --git a/src/agent/model.py b/src/agent/model.py
deleted file mode 100644
index 70952e0..0000000
--- a/src/agent/model.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import torch.nn as nn
-import torch.nn.functional as F
-
-
-class QNetwork(nn.Module):
-    def __init__(self, state_size, action_size, seed, hidsize1=64, hidsize2=128):
-        super(QNetwork, self).__init__()
-
-        self.fc1_val = nn.Linear(state_size, hidsize1)
-        self.fc2_val = nn.Linear(hidsize1, hidsize2)
-        self.fc3_val = nn.Linear(hidsize2, 1)
-
-        self.fc1_adv = nn.Linear(state_size, hidsize1)
-        self.fc2_adv = nn.Linear(hidsize1, hidsize2)
-        self.fc3_adv = nn.Linear(hidsize2, action_size)
-
-    def forward(self, x):
-        val = F.relu(self.fc1_val(x))
-        val = F.relu(self.fc2_val(val))
-        val = self.fc3_val(val)
-
-        # advantage calculation
-        adv = F.relu(self.fc1_adv(x))
-        adv = F.relu(self.fc2_adv(adv))
-        adv = self.fc3_adv(adv)
-        return val + adv - adv.mean()
-
-
-class QNetwork2(nn.Module):
-    def __init__(self, state_size, action_size, seed, input_channels, hidsize1=128, hidsize2=64):
-        super(QNetwork2, self).__init__()
-        self.conv1 = nn.Conv2d(input_channels, 16, kernel_size=3, stride=1)
-        self.bn1 = nn.BatchNorm2d(16)
-        self.conv2 = nn.Conv2d(16, 32, kernel_size=5, stride=3)
-        self.bn2 = nn.BatchNorm2d(32)
-        self.conv3 = nn.Conv2d(32, 64, kernel_size=5, stride=3)
-        self.bn3 = nn.BatchNorm2d(64)
-
-        self.fc1_val = nn.Linear(6400, hidsize1)
-        self.fc2_val = nn.Linear(hidsize1, hidsize2)
-        self.fc3_val = nn.Linear(hidsize2, 1)
-
-        self.fc1_adv = nn.Linear(6400, hidsize1)
-        self.fc2_adv = nn.Linear(hidsize1, hidsize2)
-        self.fc3_adv = nn.Linear(hidsize2, action_size)
-
-    def forward(self, x):
-        x = F.relu(self.conv1(x))
-        x = F.relu(self.conv2(x))
-        x = F.relu(self.conv3(x))
-
-        # value function approximation
-        val = F.relu(self.fc1_val(x.view(x.size(0), -1)))
-        val = F.relu(self.fc2_val(val))
-        val = self.fc3_val(val)
-
-        # advantage calculation
-        adv = F.relu(self.fc1_adv(x.view(x.size(0), -1)))
-        adv = F.relu(self.fc2_adv(adv))
-        adv = self.fc3_adv(adv)
-        return val + adv - adv.mean()
diff --git a/src/dead_lock_avoidance_agent.py b/src/dead_lock_avoidance_agent.py
deleted file mode 100644
index 43f1b4a..0000000
--- a/src/dead_lock_avoidance_agent.py
+++ /dev/null
@@ -1,116 +0,0 @@
-import matplotlib.pyplot as plt
-import numpy as np
-from flatland.envs.agent_utils import RailAgentStatus
-from flatland.envs.rail_env import RailEnv, RailEnvActions
-
-from reinforcement_learning.policy import Policy
-from utils.shortest_Distance_walker import ShortestDistanceWalker
-
-
-class MyWalker(ShortestDistanceWalker):
-    def __init__(self, env: RailEnv, agent_positions):
-        super().__init__(env)
-        self.shortest_distance_agent_map = np.zeros((self.env.get_num_agents(),
-                                                     self.env.height,
-                                                     self.env.width),
-                                                    dtype=int) - 1
-
-        self.agent_positions = agent_positions
-
-        self.agent_map = {}
-
-    def getData(self):
-        return self.shortest_distance_agent_map
-
-    def callback(self, handle, agent, position, direction, action):
-        opp_a = self.agent_positions[position]
-        if opp_a != -1 and opp_a != handle:
-            d = self.agent_map.get(handle, [])
-            d.append(opp_a)
-            if self.env.agents[opp_a].direction != direction:
-                self.agent_map.update({handle: d})
-        self.shortest_distance_agent_map[(handle, position[0], position[1])] = direction
-
-
-class DeadLockAvoidanceAgent(Policy):
-    def __init__(self, env: RailEnv, state_size, action_size):
-        self.env = env
-        self.action_size = action_size
-        self.state_size = state_size
-        self.memory = []
-        self.loss = 0
-        self.agent_can_move = {}
-
-    def step(self, handle, state, action, reward, next_state, done):
-        pass
-
-    def act(self, handle, state, eps=0.):
-        agent = self.env.agents[handle]
-        #if handle > self.env._elapsed_steps:
-        #    return RailEnvActions.STOP_MOVING
-        if agent.status == RailAgentStatus.ACTIVE:
-            self.active_agent_cnt += 1
-        #if agent.status > 20:
-        #    return RailEnvActions.STOP_MOVING
-        check = self.agent_can_move.get(handle, None)
-        if check is None:
-            # print(handle, RailEnvActions.STOP_MOVING)
-            return RailEnvActions.STOP_MOVING
-
-        return check[3]
-
-    def reset(self):
-        pass
-
-    def start_step(self):
-        self.active_agent_cnt = 0
-        self.shortest_distance_mapper()
-
-    def end_step(self):
-        # print("#A:", self.active_agent_cnt, "/", self.env.get_num_agents(),self.env._elapsed_steps)
-        pass
-
-    def get_actions(self):
-        pass
-
-    def shortest_distance_mapper(self):
-
-        # build map with agent positions (only active agents)
-        agent_positions = np.zeros((self.env.height, self.env.width), dtype=int) - 1
-        for handle in range(self.env.get_num_agents()):
-            agent = self.env.agents[handle]
-            if agent.status <= RailAgentStatus.ACTIVE:
-                if agent.position is not None:
-                    agent_positions[agent.position] = handle
-
-        my_walker = MyWalker(self.env, agent_positions)
-        for handle in range(self.env.get_num_agents()):
-            agent = self.env.agents[handle]
-            if agent.status <= RailAgentStatus.ACTIVE:
-                my_walker.walk_to_target(handle)
-        self.shortest_distance_agent_map = my_walker.getData()
-
-        self.agent_can_move = {}
-        agent_positions_map = np.clip(agent_positions + 1, 0, 1)
-        for handle in range(self.env.get_num_agents()):
-            opp_agents = my_walker.agent_map.get(handle, [])
-            me = np.clip(self.shortest_distance_agent_map[handle] + 1, 0, 1)
-            next_step_ok = True
-            next_position, next_direction, action = my_walker.walk_one_step(handle)
-            for opp_a in opp_agents:
-                opp = np.clip(self.shortest_distance_agent_map[opp_a] + 1, 0, 1)
-                delta = np.clip(me - opp - agent_positions_map, 0, 1)
-                if (np.sum(delta) > 1):
-                    next_step_ok = False
-            if next_step_ok:
-                self.agent_can_move.update({handle: [next_position[0], next_position[1], next_direction, action]})
-
-        if False:
-            a = np.floor(np.sqrt(self.env.get_num_agents()))
-            b = np.ceil(self.env.get_num_agents() / a)
-            for handle in range(self.env.get_num_agents()):
-                plt.subplot(a, b, handle + 1)
-                plt.imshow(self.shortest_distance_agent_map[handle])
-            # plt.colorbar()
-            plt.show(block=False)
-            plt.pause(0.001)
diff --git a/src/extra.py b/src/extra.py
deleted file mode 100644
index b70830f..0000000
--- a/src/extra.py
+++ /dev/null
@@ -1,404 +0,0 @@
-#
-# Author Adrian Egli
-#
-# This observation solves the FLATland challenge ROUND 1 - with agent's done 19.3%
-#
-# Training:
-# For the training of the PPO RL agent I showed 10k episodes - The episodes used for the training
-# consists of 1..20 agents on a 50x50 grid. Thus the RL agent has to learn to handle 1 upto 20 agents.
-#
-#   - https://github.com/mitchellgoffpc/flatland-training
-# ./adrian_egli_ppo_training_done.png
-#
-# The key idea behind this observation is that agent's can not freely choose where they want.
-#
-# ./images/adrian_egli_decisions.png
-# ./images/adrian_egli_info.png
-# ./images/adrian_egli_start.png
-# ./images/adrian_egli_target.png
-#
-# Private submission
-# http://gitlab.aicrowd.com/adrian_egli/neurips2020-flatland-starter-kit/issues/8
-
-import numpy as np
-from flatland.core.env_observation_builder import ObservationBuilder
-from flatland.core.grid.grid4_utils import get_new_position
-from flatland.envs.agent_utils import RailAgentStatus
-from flatland.envs.rail_env import RailEnvActions
-
-from src.ppo.agent import Agent
-
-
-# ------------------------------------- USE FAST_METHOD from FLATland master ------------------------------------------
-# Adrian Egli performance fix (the fast methods brings more than 50%)
-
-def fast_isclose(a, b, rtol):
-    return (a < (b + rtol)) or (a < (b - rtol))
-
-
-def fast_clip(position: (int, int), min_value: (int, int), max_value: (int, int)) -> bool:
-    return (
-        max(min_value[0], min(position[0], max_value[0])),
-        max(min_value[1], min(position[1], max_value[1]))
-    )
-
-
-def fast_argmax(possible_transitions: (int, int, int, int)) -> bool:
-    if possible_transitions[0] == 1:
-        return 0
-    if possible_transitions[1] == 1:
-        return 1
-    if possible_transitions[2] == 1:
-        return 2
-    return 3
-
-
-def fast_position_equal(pos_1: (int, int), pos_2: (int, int)) -> bool:
-    return pos_1[0] == pos_2[0] and pos_1[1] == pos_2[1]
-
-
-def fast_count_nonzero(possible_transitions: (int, int, int, int)):
-    return possible_transitions[0] + possible_transitions[1] + possible_transitions[2] + possible_transitions[3]
-
-
-# ------------------------------- END - USE FAST_METHOD from FLATland master ------------------------------------------
-
-class Extra(ObservationBuilder):
-
-    def __init__(self, max_depth):
-        self.max_depth = max_depth
-        self.observation_dim = 26
-        self.agent = None
-        self.random_agent_starter = []
-
-    def build_data(self):
-        if self.env is not None:
-            self.env.dev_obs_dict = {}
-        self.switches = {}
-        self.switches_neighbours = {}
-        self.debug_render_list = []
-        self.debug_render_path_list = []
-        if self.env is not None:
-            self.find_all_cell_where_agent_can_choose()
-
-    def find_all_cell_where_agent_can_choose(self):
-
-        switches = {}
-        for h in range(self.env.height):
-            for w in range(self.env.width):
-                pos = (h, w)
-                for dir in range(4):
-                    possible_transitions = self.env.rail.get_transitions(*pos, dir)
-                    num_transitions = fast_count_nonzero(possible_transitions)
-                    if num_transitions > 1:
-                        if pos not in switches.keys():
-                            switches.update({pos: [dir]})
-                        else:
-                            switches[pos].append(dir)
-
-        switches_neighbours = {}
-        for h in range(self.env.height):
-            for w in range(self.env.width):
-                # look one step forward
-                for dir in range(4):
-                    pos = (h, w)
-                    possible_transitions = self.env.rail.get_transitions(*pos, dir)
-                    for d in range(4):
-                        if possible_transitions[d] == 1:
-                            new_cell = get_new_position(pos, d)
-                            if new_cell in switches.keys() and pos not in switches.keys():
-                                if pos not in switches_neighbours.keys():
-                                    switches_neighbours.update({pos: [dir]})
-                                else:
-                                    switches_neighbours[pos].append(dir)
-
-        self.switches = switches
-        self.switches_neighbours = switches_neighbours
-
-    def check_agent_descision(self, position, direction):
-        switches = self.switches
-        switches_neighbours = self.switches_neighbours
-        agents_on_switch = False
-        agents_near_to_switch = False
-        agents_near_to_switch_all = False
-        if position in switches.keys():
-            agents_on_switch = direction in switches[position]
-
-        if position in switches_neighbours.keys():
-            new_cell = get_new_position(position, direction)
-            if new_cell in switches.keys():
-                if not direction in switches[new_cell]:
-                    agents_near_to_switch = direction in switches_neighbours[position]
-            else:
-                agents_near_to_switch = direction in switches_neighbours[position]
-
-            agents_near_to_switch_all = direction in switches_neighbours[position]
-
-        return agents_on_switch, agents_near_to_switch, agents_near_to_switch_all
-
-    def required_agent_descision(self):
-        agents_can_choose = {}
-        agents_on_switch = {}
-        agents_near_to_switch = {}
-        agents_near_to_switch_all = {}
-        for a in range(self.env.get_num_agents()):
-            ret_agents_on_switch, ret_agents_near_to_switch, ret_agents_near_to_switch_all = \
-                self.check_agent_descision(
-                    self.env.agents[a].position,
-                    self.env.agents[a].direction)
-            agents_on_switch.update({a: ret_agents_on_switch})
-            ready_to_depart = self.env.agents[a].status == RailAgentStatus.READY_TO_DEPART
-            agents_near_to_switch.update({a: (ret_agents_near_to_switch and not ready_to_depart)})
-
-            agents_can_choose.update({a: agents_on_switch[a] or agents_near_to_switch[a]})
-
-            agents_near_to_switch_all.update({a: (ret_agents_near_to_switch_all and not ready_to_depart)})
-
-        return agents_can_choose, agents_on_switch, agents_near_to_switch, agents_near_to_switch_all
-
-    def debug_render(self, env_renderer):
-        agents_can_choose, agents_on_switch, agents_near_to_switch, agents_near_to_switch_all = \
-            self.required_agent_descision()
-        self.env.dev_obs_dict = {}
-        for a in range(max(3, self.env.get_num_agents())):
-            self.env.dev_obs_dict.update({a: []})
-
-        selected_agent = None
-        if agents_can_choose[0]:
-            if self.env.agents[0].position is not None:
-                self.debug_render_list.append(self.env.agents[0].position)
-            else:
-                self.debug_render_list.append(self.env.agents[0].initial_position)
-
-        if self.env.agents[0].position is not None:
-            self.debug_render_path_list.append(self.env.agents[0].position)
-        else:
-            self.debug_render_path_list.append(self.env.agents[0].initial_position)
-
-        env_renderer.gl.agent_colors[0] = env_renderer.gl.rgb_s2i("FF0000")
-        env_renderer.gl.agent_colors[1] = env_renderer.gl.rgb_s2i("666600")
-        env_renderer.gl.agent_colors[2] = env_renderer.gl.rgb_s2i("006666")
-        env_renderer.gl.agent_colors[3] = env_renderer.gl.rgb_s2i("550000")
-
-        self.env.dev_obs_dict[0] = self.debug_render_list
-        self.env.dev_obs_dict[1] = self.switches.keys()
-        self.env.dev_obs_dict[2] = self.switches_neighbours.keys()
-        self.env.dev_obs_dict[3] = self.debug_render_path_list
-
-    def normalize_observation(self, obsData):
-        return obsData
-
-    def is_collision(self, obsData):
-        return False
-
-    def reset(self):
-        self.build_data()
-        return
-
-    def fast_argmax(self, array):
-        if array[0] == 1:
-            return 0
-        if array[1] == 1:
-            return 1
-        if array[2] == 1:
-            return 2
-        return 3
-
-    def _explore(self, handle, new_position, new_direction, depth=0):
-        has_opp_agent = 0
-        has_same_agent = 0
-        visited = []
-
-        # stop exploring (max_depth reached)
-        if depth >= self.max_depth:
-            return has_opp_agent, has_same_agent, visited
-
-        # max_explore_steps = 100
-        cnt = 0
-        while cnt < 100:
-            cnt += 1
-
-            visited.append(new_position)
-            opp_a = self.env.agent_positions[new_position]
-            if opp_a != -1 and opp_a != handle:
-                if self.env.agents[opp_a].direction != new_direction:
-                    # opp agent found
-                    has_opp_agent = 1
-                    return has_opp_agent, has_same_agent, visited
-                else:
-                    has_same_agent = 1
-                    return has_opp_agent, has_same_agent, visited
-
-            # convert one-hot encoding to 0,1,2,3
-            possible_transitions = self.env.rail.get_transitions(*new_position, new_direction)
-            agents_on_switch, \
-            agents_near_to_switch, \
-            agents_near_to_switch_all = \
-                self.check_agent_descision(new_position, new_direction)
-            if agents_near_to_switch:
-                return has_opp_agent, has_same_agent, visited
-
-            if agents_on_switch:
-                for dir_loop in range(4):
-                    if possible_transitions[dir_loop] == 1:
-                        hoa, hsa, v = self._explore(handle,
-                                                    get_new_position(new_position, dir_loop),
-                                                    dir_loop,
-                                                    depth + 1)
-                        visited.append(v)
-                        has_opp_agent = 0.5 * (has_opp_agent + hoa)
-                        has_same_agent = 0.5 * (has_same_agent + hsa)
-                return has_opp_agent, has_same_agent, visited
-            else:
-                new_direction = fast_argmax(possible_transitions)
-                new_position = get_new_position(new_position, new_direction)
-        return has_opp_agent, has_same_agent, visited
-
-    def get(self, handle):
-        # all values are [0,1]
-        # observation[0]  : 1 path towards target (direction 0) / otherwise 0 -> path is longer or there is no path
-        # observation[1]  : 1 path towards target (direction 1) / otherwise 0 -> path is longer or there is no path
-        # observation[2]  : 1 path towards target (direction 2) / otherwise 0 -> path is longer or there is no path
-        # observation[3]  : 1 path towards target (direction 3) / otherwise 0 -> path is longer or there is no path
-        # observation[4]  : int(agent.status == RailAgentStatus.READY_TO_DEPART)
-        # observation[5]  : int(agent.status == RailAgentStatus.ACTIVE)
-        # observation[6]  : int(agent.status == RailAgentStatus.DONE or agent.status == RailAgentStatus.DONE_REMOVED)
-        # observation[7]  : current agent is located at a switch, where it can take a routing decision
-        # observation[8]  : current agent is located at a cell, where it has to take a stop-or-go decision
-        # observation[9]  : current agent is located one step before/after a switch
-        # observation[10] : 1 if there is a path (track/branch) otherwise 0 (direction 0)
-        # observation[11] : 1 if there is a path (track/branch) otherwise 0 (direction 1)
-        # observation[12] : 1 if there is a path (track/branch) otherwise 0 (direction 2)
-        # observation[13] : 1 if there is a path (track/branch) otherwise 0 (direction 3)
-        # observation[14] : If there is a path with step (direction 0) and there is a agent with opposite direction -> 1
-        # observation[15] : If there is a path with step (direction 1) and there is a agent with opposite direction -> 1
-        # observation[16] : If there is a path with step (direction 2) and there is a agent with opposite direction -> 1
-        # observation[17] : If there is a path with step (direction 3) and there is a agent with opposite direction -> 1
-        # observation[18] : If there is a path with step (direction 0) and there is a agent with same direction -> 1
-        # observation[19] : If there is a path with step (direction 1) and there is a agent with same direction -> 1
-        # observation[20] : If there is a path with step (direction 2) and there is a agent with same direction -> 1
-        # observation[21] : If there is a path with step (direction 3) and there is a agent with same direction -> 1
-
-        observation = np.zeros(self.observation_dim)
-        visited = []
-        agent = self.env.agents[handle]
-
-        agent_done = False
-        if agent.status == RailAgentStatus.READY_TO_DEPART:
-            agent_virtual_position = agent.initial_position
-            observation[4] = 1
-        elif agent.status == RailAgentStatus.ACTIVE:
-            agent_virtual_position = agent.position
-            observation[5] = 1
-        else:
-            observation[6] = 1
-            agent_virtual_position = (-1, -1)
-            agent_done = True
-
-        if not agent_done:
-            visited.append(agent_virtual_position)
-            distance_map = self.env.distance_map.get()
-            current_cell_dist = distance_map[handle,
-                                             agent_virtual_position[0], agent_virtual_position[1],
-                                             agent.direction]
-            possible_transitions = self.env.rail.get_transitions(*agent_virtual_position, agent.direction)
-            orientation = agent.direction
-            if fast_count_nonzero(possible_transitions) == 1:
-                orientation = np.argmax(possible_transitions)
-
-            for dir_loop, branch_direction in enumerate([(orientation + i) % 4 for i in range(-1, 3)]):
-                if possible_transitions[branch_direction]:
-                    new_position = get_new_position(agent_virtual_position, branch_direction)
-
-                    new_cell_dist = distance_map[handle,
-                                                 new_position[0], new_position[1],
-                                                 branch_direction]
-                    if not (np.math.isinf(new_cell_dist) and np.math.isinf(current_cell_dist)):
-                        observation[dir_loop] = int(new_cell_dist < current_cell_dist)
-
-                    has_opp_agent, has_same_agent, v = self._explore(handle, new_position, branch_direction)
-                    visited.append(v)
-
-                    observation[10 + dir_loop] = 1
-                    observation[14 + dir_loop] = has_opp_agent
-                    observation[18 + dir_loop] = has_same_agent
-
-                    opp_a = self.env.agent_positions[new_position]
-                    if opp_a != -1 and opp_a != handle:
-                        observation[22 + dir_loop] = 1
-
-        agents_on_switch, \
-        agents_near_to_switch, \
-        agents_near_to_switch_all = \
-            self.check_agent_descision(agent_virtual_position, agent.direction)
-        observation[7] = int(agents_on_switch)
-        observation[8] = int(agents_near_to_switch)
-        observation[9] = int(agents_near_to_switch_all)
-
-        self.env.dev_obs_dict.update({handle: visited})
-
-        return observation
-
-    def rl_agent_act_ADRIAN(self, observation, info, eps=0.0):
-        self.loadAgent()
-        action_dict = {}
-        for a in range(self.env.get_num_agents()):
-            if info['action_required'][a]:
-                action_dict[a] = self.agent.act(observation[a], eps=eps)
-                # action_dict[a] = np.random.randint(5)
-            else:
-                action_dict[a] = RailEnvActions.DO_NOTHING
-
-        return action_dict
-
-    def rl_agent_act(self, observation, info, eps=0.0):
-        if len(self.random_agent_starter) != self.env.get_num_agents():
-            self.random_agent_starter = np.random.random(self.env.get_num_agents()) * 1000.0
-            self.loadAgent()
-
-        action_dict = {}
-        for a in range(self.env.get_num_agents()):
-            if self.random_agent_starter[a] > self.env._elapsed_steps:
-                action_dict[a] = RailEnvActions.STOP_MOVING
-            elif info['action_required'][a]:
-                action_dict[a] = self.agent.act(observation[a], eps=eps)
-                # action_dict[a] = np.random.randint(5)
-            else:
-                action_dict[a] = RailEnvActions.DO_NOTHING
-
-        return action_dict
-
-    def rl_agent_act_ADRIAN_01(self, observation, info, eps=0.0):
-        self.loadAgent()
-        action_dict = {}
-        active_cnt = 0
-        for a in range(self.env.get_num_agents()):
-            if active_cnt < 10 or self.env.agents[a].status == RailAgentStatus.ACTIVE:
-                if observation[a][6] == 1:
-                    active_cnt += int(self.env.agents[a].status == RailAgentStatus.ACTIVE)
-                    action_dict[a] = RailEnvActions.STOP_MOVING
-                else:
-                    active_cnt += int(self.env.agents[a].status < RailAgentStatus.DONE)
-                    if (observation[a][7] + observation[a][8] + observation[a][9] > 0) or \
-                            (self.env.agents[a].status < RailAgentStatus.ACTIVE):
-                        if info['action_required'][a]:
-                            action_dict[a] = self.agent.act(observation[a], eps=eps)
-                            # action_dict[a] = np.random.randint(5)
-                        else:
-                            action_dict[a] = RailEnvActions.MOVE_FORWARD
-                    else:
-                        action_dict[a] = RailEnvActions.MOVE_FORWARD
-            else:
-                action_dict[a] = RailEnvActions.STOP_MOVING
-
-        return action_dict
-
-    def loadAgent(self):
-        if self.agent is not None:
-            return
-        self.state_size = self.env.obs_builder.observation_dim
-        self.action_size = 5
-        print("action_size: ", self.action_size)
-        print("state_size: ", self.state_size)
-        self.agent = Agent(self.state_size, self.action_size, 0)
-        self.agent.load('./checkpoints/', 0, 1.0)
diff --git a/src/images/adrian_egli_decisions.png b/src/images/adrian_egli_decisions.png
deleted file mode 100644
index f5bd276eb753a71f21aaa62fcec8a88cf460b409..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 50335
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

diff --git a/src/images/adrian_egli_info.png b/src/images/adrian_egli_info.png
deleted file mode 100644
index afe228be94acecd4c6d596e53c7faf5fab47cb06..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 48981
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
YJ>(EJHM<h`JK#@RLSDQ?RNwpm0q!Ky&;S4c

diff --git a/src/images/adrian_egli_ppo_training_done.png b/src/images/adrian_egli_ppo_training_done.png
deleted file mode 100644
index d163a110b8d09713a99a1accdd0ea2191d151bbd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 56845
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
bJw!)wT3n#-Oc2EsI6an>m&ksg_wIiI#QygY

diff --git a/src/images/adrian_egli_start.png b/src/images/adrian_egli_start.png
deleted file mode 100644
index 977fead60d7dd11d1e0f1e32635b555df64b1a0a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28024
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
ZB*L$4whjJvu%jAEQ%y@XTiN3J{{T29YxV#D

diff --git a/src/images/adrian_egli_target.png b/src/images/adrian_egli_target.png
deleted file mode 100644
index ab357c59d3cf5adbc74b559ffb3cd87400e0cb8d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 31268
zcmbrmc_5T+`#-Ezg(#vVl0veD2*VViLI~NH?6U8>X|pdwwh$AtZ;gE)vhS6B-`BBE
zV;}RLL*37PKi}v1eSh!!{?TGw*Iegyp2v9{pW}0Uj?+*6nH1SM+H*uiL}X7MKYC6?
zbZnaN=gevF$!d<~4iS+H`pKh*O3t5_acb6dK5=t<o_6V#ufJ7Ysy=n|fx<<JR|$p+
ziIFeioiYeva=VnhGU3E)sTz?Zch5_Gx@tq;5wO}iOgY!!vH0<fk8m(NYySLRpj&jb
z8{7@4F+vx8Ln44f;bw_G<6}Lkgx7;nSs85=<kuhEq`s(oNtJaR?<e2i_6@~$C$ySD
zEgHXnyU1eb4C8x>#EkA&xvwe2&M<yqBmqAQzvVLk|L75ic(cE!5L+Vp8RA7D=6me{
zZ63G?dE&7+HMrK1$g~OkQ+NJ4nHu<({$syye*J%UbLHTj>lv+V5gD6<MTRq%l(A27
zU419QF?1Q6sN?VZZ%?23=eN3R-(p+L4`2}4To;h5#0U01I>Y!XKyRo>YdM0VCx29M
z8lhQHveM_d*PT9tXNW~Gsj9#&#D%V;rWeNL8^g}L?wex?dpfzkOT@h)c-#RyZKp=m
z@o7g?KdF|FuaK%j6y=sK8Ye@v7A0Vrqk(Uy(IL97%Aohsk{b54LteQ(zsz%CUDxBp
znhEX&wCd_2(jsplFf~1S`Rv#Nwpq}C(eb=#liTp3cZC9P5eG>Z-%f9HSfHE?xBDEm
zHjLu6z0gB_#jC|ucw?erdWHd+bMU#B;`eN~aSsFC&tL5?#_NPWW4=ul;HYApnx}+#
z!m{n`?vC4iaP1URqkyaHnUmsm)Hj?fJ*E4!7F%3(ch+^er&Uos@KtZuq0{*WX&zGX
zsY#V_iJ{4*$=4)Ch6h-|`Yh3Hbg}Xq+UkAsat<`pW)K+}DY)0u<@D<^(U!N>dP|=i
zB|QEFmAa77db-d3{;mCusUO|<ynRmpun&rYGZ=4-USGbZW#plsU!?@Iny2o=oaVR|
z2f2LhOL8{JYZC*1TqW+2amszyZ3^N&_(sp%Tt95v<cTuXR*S2AB!kY*E?NZ46-Sp6
zec<`@ng=0wbhMa512MfCtKWx*_t_mu7$2Q#meA4@AM>0dJ6JQz<rTgAkl#vv4zux-
zMCz<h`F95k#m)-|ICpV~fumz&gSRU!`uO|Wm-brX3gL~tp6DKx?cU5>rOE6i?Q`=n
zPwx*)lvGA1d3cb*1J`;~bnc3HGEAS~W_;z%XMjvt@FRBLU+1zx3*m6MZFf;4=0*W6
zD>dq3pVdS(E%AA}>M2Kkb>?I}o2z}UR&197zJ#3}92CC4GidfD>~4-W>W!&-kM=#r
zI_74nUOjP`>x97N9d^&$STRvK4{=IARr{UEES6GXS9neicVy^n%`{a^O2TIfxP*W*
zzN=LyB7fKIDTG==;nE^4ZK;5LK!XtUTHMHRi9^^FSEbT&52cv-Tg~pm#%w2rC<`@%
zJhdC4XTY$o3kiFLcK#UdtwEVs+zjKodyltrHZf@?pln#1XMvBJ-xI-5+myh1?%X;4
z?*lvZI~5Ppl|BTNwN$0Grsz)h6h%@GYQ%omqNh&G{{@8|hjBNh&OwuroYf?a&py90
zljCiY&;r)-Gi0j-+Yo;+m3t5$`a?lzXfQ34d;+`Y*D2*vTo}4gdOtx3%2l;}5la^I
zT8ux8xx2rP1+jmINV%uP1<j20B-chTAh=!+p&5BZBp`7!UI+NA9zJ^}CYE=H>2r<K
zMPr|wSi`(Ao94MPOixa9s<xWu%-UWf4gA;so9ll4$3+oi@=6Y}xSvx8)sxEOR|(c*
zVV)OVU_8Ef>B9nhTsGM+k*yp3{P~JgH!q%@y?FazCfaIzGpDjP1vs9gJ?Kg%82Z?H
zCbRYZQ0x;HO4bZ9kF?OMPLlm&Bh5(4+-$dkQvm{}Z(lx585U;m<Phr171EmW!+|E$
z>%LXx0WqDh%|&HJr@G3|W|j2RtA-ZQ)P1?0HShdP&o8eghICTCGEZO{t}To$c3J2T
z*v1{)>trNT^Nkay-Jmbl7N@79y>a=>#q&-IY}9^@iKOIY`j=fsJ-3SG3mbJv?(^|I
zy8hMq-o4kMt#`Stz08^0hgRd&EN6ui5_()kAm^gK%7kI&Iwmp1E(_adE2`>GLj(mS
zgu-SY!|*Y4z$MppFhYaAy=0_)>AXgLjU%W{c2rB7-cQnH@7Dqg|5X1zow$?bk6xwD
zrR}DTjr3^NRJqF1iO@n;M22a__N4SD)b<r2c#Z*Agv<?+CxbCpP0cN{Cuz?y(o4~9
zXd4ghMBqtJzV%OW(<FA?lYJ3*R<1L(;KA3NrbRg=s(PFEG+CLAXmZXmK7(d4*YOEK
zV`SXoRob(s#ajg~seP#60hd-iHM{k`pVYMJ+Y<$OD*1cuj-1*RPhEqQ$wu<nla<)Y
z%!eG^skPZIIhfOtX(@!;LU}wE;ciaSmCEe1DxTy;dAK_T=f!-_g?d-?Wea_4|MFoP
zqqYJccFfg`?=)^U;*I}adj}!#+_JJi@f-~Qo}!0|Ozl2jVNq9qcf%bW=(1}3?k`9}
zLyAQ%%}nSr*Q4bR-t2Tgn@>jDzjYHYzShdSaB@J#)rH@&d{M&1V2?zh{0n2iJyCjw
zIoDB}S05Kj1xGz3v56NAVibJU3E#ax6BJt_BC0M_M%OwQX6h+w9b|<ND$K?vLTYv?
z-st+i!*yh4H5$#%%&Yoddq$gQ-Sp*y0q<?#_k<#ic};Dj+lu-EHrU(RFKYO%0Y^#K
zs!yVD5qU}w&R%z(89c$cLKH&Jz+s`)s#XWB+`kmPzr9hJT%4~R&Z0W@b%kz2%=JNV
zh*$r_P4c7A2twrj%R6-5p-i;VlX9MdSd-GwB;CtH+FUJR&l;YjQVw6On$bL1V?&2%
zh~`o2r4r@<M85444oj;Jr!P$Vc(0v0PPm-Ou1Tz$6D-$6ELT-Ec@8;6T(l!Q*X7a~
z$mDVsm_ZQUUPS>1+5jTaeb<sc<kDu-ELRg-v9{9NHbxQ!GZ6fJZ0A%B&li>bp3VR5
z=T(QyjldxH7jf~?Hn;RgQW7C8(D?Z1AO2qMH8Zw?a?f)7@fvFRo5|A^M)ldd2Lqc^
z8zC0W;?#P?VFasqm4@75<<v5EG<w?SVBu1lVp^A|0EepL`%_zueqQaUNeQ!wQ6IWf
zvLUtsW=(`JLXS!h&2nCu?ePoWCb*OJLY>)La0@QpQr-(og0C|y+}{<;>vwtEef=3&
zj3B%gFbWbM03Mq9-!U>b;NLWq5v3R=e*PNL#w|h?6huZRyiS{ulC6PnW`XKin}j%b
zyD0qlHB6U0No3sNj#sM)5|N$_@k-OO<uXGq0rYb0Gm%kqT|v#%`UHkp{<ZgK1WA-<
zLn=zN)!o2bujaEVw{Lr=;G&vmWCR}B(dWCYpSvq}2HDkoA<uekcORHYS$TPMTwHQ?
ze(d}b6+gd4oL0$P()Njm9Xk7gy4)uph{mSiOXq-Z%gC5;bTeI;w}-5{^LX{m<u+&x
zDjJ+u^BueejLqQrle_^w4hOE6G+|VEw0pH4G9CMuya-`qdV4+U$8An{FX>p-v+ESP
zdbS^w*!<LZ079VajBVFs4tshr&23-eWg>*fhy7@0MQ#L=Z;HrGxxXK(by5&{2n@MY
z^E3kL+c;;}JzpkypDv|5Goab#-Hw6xhsg=~)rU$B>sd`RS4AP(W3F7c*&ZKF(|I-X
zw1m>2KGdd=msqGdr?hC)t?sYu7hc?`0{E?Q6*J{nUh=Cm%C}Q0eu5T&hvg4U1`}Vy
zjVo+}Rf(0TKB%2=d*$EU{N(AaF14uE(AJc6@_ToAY3g}?I%^7vGbI&pKDrx7Cn@T)
zVk<J`R8ahwK98bM8thip7Tyjur?}R456@#a_0*`NWxSijK1@d((_N49@Vhf#MpE4O
zE|C@T5h5k+Mx(g3np85lzW2`dVEanQ@7*yG(rI}6a%rJUgBK*yaB|amVRbdNurzeM
z_H=AuV~Hn@76ceCv16xBNhtWr$bG&|T`T@BE#s+ZRK%U^;^;$zo2JWC-JDI|QrS1d
z3HB!E0^eLevpH_-W@3pRUv}zT>qWyJK;r68+YXR=hl(pc=qj8swyyH-7bUDkb|{z)
z>)E!gA6j!Ra~5+_@pGbD<>t4PyY4$q-bAW?@>23H9&>-^-9T+06#%9whm;gtZe_K#
zxa#uPVzxx<E8mN#s`dD^*M6%((&w`Nnb*&oZ^p^+@C&t7jaFG`;VYjVt`|rQY9r@V
zRqFBgiV9d$Ov^OXh1;Zb^mv_NPtD9NZ|e>9W*CQTqt1Q!<3N__qe9tRZn^+yO8e*T
zx!Y1nCS{WLmPRgPJhCKFIh3*RGPGFGP|2oS$TTAf(hOuA=V#iG>M8YWBNrf+0(-7|
zDw^H*>dhf{=HQ59(c;vJj!(cf#+?Tt6QL6hm_QDU&}!vYr30G1YkIebtJGzV<}>U5
zRHKfreo{K^y3*;cJVCe3_-RHf-ov|_!MqnmKtS{ywx!<yn-PRy+lil@CTSXN&o*~X
zI739u-PYO63`hDXhNK8Df6w+kJ6(k+)DmuG5pQ$DFXI&z>ARW)M(@?(Z)hFJ;L}t}
zdk6cUz1<JQ?MT)qUYZZ3fK9u%wQ5(AivUw!D&5C>{g2;e414;a{Y&rk72}^#r4DH3
znlcI;?%`m};)1X%>1(&zV&{YHvn#>-Z^cHdi!3&M#uy`;z7O_GntAw6OgwBB_dNaA
z&dzERKmC<G0H8N^^TmDbZ(4EhYqi>f$%PleU`1genw;+%r^K<{p<K+)Rd@=rc8d=_
z`+-e#gniJ#7(iA($K>w0aFM>47}W{yn`645)4zrmCzGAF6U-}Rm#i5_=c1m8+YRw*
z>NCCvo(;^xi&;jgSxRRup~%p0+_u~97B?wLKzb!5n{L1(C|F<D&9`7qf9X_|)_Bc`
zFg#vmBLs04IP#-4dsF7Re{kKd`Pi)9h4XaxtKT)>rjn>x#(p-|)Vx~K(k&D2^-GW5
zRy3BmJ2FLh*ek=)&dJ_hHa-t3&+?DO-_fLILg*Vf`_6jr*30P2ia$KUpvl=B?F))l
z&&R$x_hs9&J<+$j^JD(hImvi2Mijr?K+_ZYjo%9)=))e#VR&iib&eTp%cN9$srl)v
zzNtJF*j)ze-8f#pVh8p)Mgjg}A%cSr!i3j5h7s&Khz>*vUgIh`PP|iv`=sHw3C^eW
zH`Z0d?PxfE(q&Bb`-P<qHozJyw??<*3$y2L2eka<GPwDLWP~F077sq_7c{d{%?sOa
zBik=uzo5}?ecth<Wn@b4riGdn^2j{`bY9lu($LQF3aMmU=wu&#Cn}a{N?l)C`lYP<
zSVjRO?0U%ro%z?Qgv3nF-amV8Vtmtixi`{C`0}fQ7o1iWrZ2Q|91{0l+_P`x5onuI
zez4(uN0tyG?|orhb-2{g6#*GFmihg`{}#png_%D53o~u1{tGjaV?xUR2V(lm)kJQD
zF#HoB9U0=GLl(C*MNewvRvoXF<AO;rLxbHYRpui#{=k*esKP@!q6x%C)fVw!$&~Fd
zoo6EImeZ`48wgnIFW-KqyJw2L8;L3&Lqec@@3|=YH(eFz|MD7R?(3&Ktvz%{AX8(|
zgP(+3|BOO)>Z*tcoyag+)zQrWLt_x3!NvCQaQ6e}C0=Tm#Y3#2m4^cn{(t{@t84>f
zuObpRy)LTw!H2yrhmp)BHw-d8$o$6}zME$3;~zLUf?^LhLd;^#VMn;@&EK#U0c#OQ
zi|1JUdG5Qmzuz|d=QiLu31rS|f_2(r>~Fz~|AJ=!^>)1zJU*I31O)eg`xL(E%4dX;
z{`S+O=$quFMNdFfEe8qr1aNSLvPGz)5E~*0-gQXl5P+CJ_%qI+|I=mno9JvU!Vd8}
z<Tob;BHVSC|MIPWyWE?d|F4Hj0(1KN!~by^ox%CiqUKE+f;S?J-bDrQ3L=ZczW^<j
z{d^(47-ga6LL{M_xgk=(aYv`aOxgpBPAJ-9V70<2j|{v`2Ak%CPetYz#U~pBe6_{7
zN$A0(nT3<h&VjQ<!E8Bk6q7c8RxGGJ8)UB#z=K$qki2&1l=jOUF0l#fS}jO?HAopR
zaYlg**b!kptKwHIbF@$o_0xi*n{6&4S&!vLMGvrpJQQTGEDD9orDiL}G*H*2DXVx_
zm<C$HVhFtl2M8Sm!yM(Z3?7EKiH0811bN?g9#Rh#nvC)xA3riv<5_|c&R1a9(^&nV
z9#LcVJjbeaMoXSBN7PMWkLga^om^bpnGN6~3P@5WvCH3n=kT<KJA7L#9AM{9B75RQ
z6{7eu?2cw60TxH|ju`_d1z54_4YXCVr@8${?-c4DG$yL>AR{9?UB}fOyPNH)x!9LG
zCcQ^qB+DP0ke+O@Gq=h@!<83LNT60WB7V<~M_FrqmGwtew%WenN-_R8qxoLtLE&$F
z0>#|I#nq{Eol~36TAWd_M?@M(<lv2sHg4`9$AZNBph5!a4jx>CmWWpWoh(x^;LIq|
z;>;PL*E2Uib85}m!ytd*9`+Q|mNl+}Qp1;m)SD<$2j*;WSr^y0MSOQd(EPgbzQ}^X
z2QlRQ;^Gp!8O~v3CXE<SS(Tod3{ks<ST_qi(t=z1^l!cmy4P-e@-3EiaZv8Fr|tSA
zWo+JWgO=;z3yyP+cw^RgnU=2ZF&9M^$%Ro^2s#QTt^;EbEf(9ZeyP}Jj~!j((B9cK
zT_GEpbRGSioD@c!^sb<QBmN!mX#HbDa`s04Nj~H@U-7Iu9-hHCA9y5>-$x-~-ejk1
z_rFcoHHJTBp0NJdyF1mIqyk92(EOE)anYyEM_u;#zzrSi+aMp7g}9!VH(8jkOQpAk
z(93G+JDX6*_Brot+c2+^{T%&a*ek$~p2<RGu&zX4KeI!tTmi|+i8VuS4Ib!6r)=oj
zKPEf<R&!^OhbbwEPIOp~d)uCv;mB53>A6Jl#~EPz(#Jg+IuYBn>D$MP47<Mff2+fV
zvh>0LLq~MznK#jVvbX3~5)(LITZrGhSi{L|V($O_`|xJ}APXRvK59I^sP-`#nLsc5
z#`=ES()O8_DdP(M$^$*OB|n_hG2FziF{Pb-NAU%}M;{T0xiJ*>blk|^PP3I~{sJ}v
z_y@<^vWkK>OA>FfLGJ4_QICv_&-D6y*UIrny+~KBE0EE&6d+K1$>?F)vH(LhIozj6
zLmRhk&axbv@#<p$SEd*~XQRGTGONduhQ*~Sv442R4EQg?F9Y2pGyAM`V>C2if@0L?
z!G;fDJr^fJJijDZy}u8k;rzs;H1-<GC(&FG?>sUB0#@Ndlz(F)E2~M2q`jj*ZbDQ^
z?i!dph{Yc2KhlG!2rNxRanvTlncY8;%^ByJn6J29X_+%kqPd%k_ljRxk%hwbpc5U^
zdQSOIlkc^5c(}$pjf&#x46hD6#Vrc=_-3oE?iJGy<$Z*AOm1vPN5>fghA3tQsmU2t
zHV~kGPSO%9!SMoYiFr<~^^%dcwtd=DUy(?QtMEoC{wN6vMhepBtn8yyEAv0b)V2~o
z4He^gi7bnwWQ2meg2v_=xouhf-@biIX75-fC2A$l7O|Am@htfhw$EX1&xb>+`zCgG
zbQA`F?q7`KHkXrk^Ovv!r_J$A*DJKN-&U~{D=QBbdhXFUG{=?I={M7Dtb9ph<FJS$
zdN0PP9!tBncS1te$t5qEFQI`M{JnY{%1|Q78CHW^%X#&OF4Q?*&2Z*}FUL4$C!k*M
z&9-|tue;OxXwz7Et=B~zoabEL0hHUB{Gnx5uzM)LFq)_WvuSz}={4i=asdlc1EP!!
z8%(b(EsmamiFK}8=K3`KqFT3)OerJs;6i*(C`|^SsZ|{&p?nQ{=bw8Y*=+PP{!OMz
ziH-4lCylE+!>g%EY<b*w1Ei6vzK!$qOOx<1SM(ETitT&AQiy(g%0lVxIsuU)-x7)(
zqrWmU;xsy<BtH7Il8!OTIA5v>ojzUZ&e1gqvXm0*1>=Hy_vG0wt?#^hPaE^`V+;ZD
z4owYo2VFboT~jxGb3{w)<|N5<o~iwagaKoRMlQZ)BS_ZqTjj@OPpegEW*@$$j?ZV)
zNug=(?7gDz7gi<)+lMObmn8N*3G5-0!MZ8{U-8}<=>+a#{n2p*v`M;AZXC;Ta6IPI
zryFrk?7pDzew`SQgM#%+L_r_ir#oHUG;{fKiI|yLj6RF@P*HiH-(orzH}_)~aVv~#
z{pWgLWFIQEJa*mBPc|EM<o+g2(_<O}xT@-Q0uTw9`KP@ggUk#0l3g0wFx%TGDrN2&
zoFH6mVwPd-xc|eX7r^|k)Y0%g>s7tND!h^&F8L7TjB13#>0zs5jcgHod+*5GA_4%_
z*oQk{$t9)8%7jg#eV$63CnL*;>A>|%t;|0)Jf@P+v1zwR|FS-^DvH|;xMrNW*ZHcZ
z%(dd+x`z~8Fp}#FahjD$)_hq`>M%B{({od3s3Uj3vxp-}iA}x8g67463fm<P^C49n
z*03)iLjk|k+0v1~ffn@KpGwqX6T!--C8Bfk4nFr!JoSFKQ439VMt4Z+JjbY|%*5Af
z3BmWWblj%q`nQdkVoTMfgG082K&o>|$&%iVGq#@F_7M|&CD<UEI{EEGQ3MM`*1oK)
zBU`zW7;J(y=b*MnJHj|+7{_u2o?S{VmTvH&Gv!I@2f6*G5=}r?*6wk$d#OT#2{Y`{
z<Q9fI=+#@`7vk|4gc$ANwvaMmT%I1(_&%Lf+;*$8dw|{Nu&^*^o-6w}T<aFkK)X}}
zQTl?ZB!0gWDH}Gr@@&z~HD0rTBs^@+BAU4`S0^bmDU9aDGL+0B+QO=V2+*fwFuX|m
zm3IJF__r|z*g|N9qZ7+B?b`dFh_e=0(qkt3o1%v4_OA}c(3S{q1YFYRQndG}ZIj?y
z+J+3}4e)Or9IQUs@54XEl&|VJLuB@S@I<L{nBi5t=pz5{racS6jKbtR>&Cy2*M1I=
zN|~Ewy+nN9Zgvlz9Yug}E=}cXz*OYZeJ!|VD|cT?yL^pSx>($ro%UdHq6dR;-(b>R
zZy;SzdfRMsBDYh@BkgQ)pLl}&__sOeEo!;%PV?N^r^JsnHRx;NrWr~Fe--nc#PRVJ
zvyWZYv)!jp&w7)wDbKy(zR?VKUaef^7%QnMvbboMUw(t!WpS2_8Q;}uTICp2_K5Ca
z871LRzD_#&Fg9i~6WwQuL*Y61<UB2;a`0W|Fxjpst0iO)E;XT4;uxT(uFzi@{dtgY
zuYX~vs8thYv6Hmc$(gg?ZG^LHMriHNBVkkoR)fc<LU_MenPH)74|)I(_m_AYS-)L(
zvewDc#>C_<w3plVrl`njiG%Lm4A*!1QK7FU)0f?`Uzo`G`FH}Qoy;;)?mDkf(#8&6
zrlUPcKU%it{luT|7(!yycT%Lx87)TTwe!e7y_4&Qu(j+7dF2SNDp8_~3+#Z8*eJHB
zpl68oDSlRgzNS^>keCt2!e?*1)9d{Xp`~hvu4T!_hi$w@?W0lEdtXJZrk$6aU{=yD
z-{ce-c6!DVbWjiLW|%cpeCF`mP-+y^!C_m3{+yE~?`}TA25QXSqlk8Cx`S3(fhK=w
zcIOE~nE)P6s|q{QLWr!T$LzHl(b)T&h@Rrn3gN|J7{4n_F8^T1Jmz37K2`T}T88(~
za&mG~*E&W3A;Zym3wmhwAfK>u;61$!#p~eTq=e=E9RB%G&Pl*R7TcO6@uP`~Wz;jA
z*o`M%mz~Ofx~9rp&Hcw<*(YM*&Gj*G=}WeZj5#57I+p^6^=I7;4`uA_wOGb`)*6mG
z!`Y_uu8g{%sq~Y?>6S!vPkiBdlDyR}u-yp9UqL`092CilhClpK>0GJJ=f9K>4|(Mg
z?nC%m&fKw|Xe&b;Llm+5>NhJBZDp%qQoCQ-x%ttMiR^CU2A1Kjfs-C_*V^`5VSbU1
zFJ_V7<r8U^wyHQ=T_}x8KxMzv<d<HDZ5J0fIdap%zyBDO#8r7*oxRj2M!(Ur3le^b
z`k=<;8lLBXeDq1YzlDhGJx_UENFZqyy{tosw??q-Yf5q<VhO&MS7TcgJqNK2RUUB<
zu2+MAk*;(x-(XUaT+s6%FS-@bzQ^S*dk_i%2IpO9kQVH%Mz37`%}2){rv=mK-1mp7
zHZE<i6`|ZU%<d#5CC$f3ZoLt`ID3*mz@<%}RIsWj0eR}`)h<3$(^aFjP1&bL!K3dg
z+d5^f_R3zg?&G)cK0~Ye`vI9By^fQmjy2fLQw+j(q3igLRie*iqcs>|l=%9J)(05=
zPQ!?$rYHmQjzAjzU@K$)JpT(zdhEogwkXQ}Y_4=_a%Di%uh~sRQHP~oGpXd=8nljE
z9I=xC-PO#dUG#rplr^_zK*<AM&9J8_SC|4M3tSgsjoocO^!7UL?(LoR5^IwQ?sA*n
zVWClZoyclmRLnyeJ#~QFI|)}e$tbd<&tI`kNT-!dsK)JWA=v{uih5bRoBGN)5%68|
zs&^tnPj5#t;XCnxiKZu|Z*2%z63JVsvnC~-Y-lh6PL7s?;(@SpNE-sL=Ahyko1W2v
z!TDUKt7`4W?UjVLuR<+km+6*;3x+8WUXR?5<#xhRCcpXY`-4ut-m^urP@f~;UM_Vb
zqGs7qk%xzB!)37CwM4)@)}3>&t+$3DD-}@urP)EqZHls-yMls+bi<bV`q9+D)z>}0
z()OXbYLlt0lX{&P;clFyZful4EhYKYYOH~ev_LoHQ=jzB=)_-$14<%{_d|{AuZ1sv
zu|`wJjKQC?y_~@;O<(nUaRXikDEJ~TR{zW(z@=_745cXXT-%e=!Cz2cTrBQB)2any
zieieARb+UjXT<4m_+`Ds-dj@ARLfWIvS6UQ<p`Ad#gT=TZdPvjz?#Mm)_lTc!fHLF
zd^?`~SRa)B%vw^ZokON+_=?%z%A8KM!enN&HlQqJ?#6!0RFX(2bC`}h#A>=EIfH6;
zwnW4>3K`9s@F+&fNJjBq5Yl7hi>OE^D6<e@;;E3z*xrOE-4*_(1Dd6-UiNHWg04Ep
zzVihQygA0+DyghIyH8o?{h}vRoNCs#TCd2_q#nandGMkaT10W{A}WhZOQ}GKoZ|j)
z<9<YI@a{XGy%G_gvTfH(S<vv-3+Coulyu<Fxz`-+FS;JM+)&B+z9j{FZ=p7fn`au7
zi@!OC35|_8j$+70hJG@&S#GJ0>C<sN@cKnm?G3joIGE{{>y-E?m(pZJZvm@q3T2>8
z)Sad;$3<-+4E)V!d7`YcO43>w9x2D|buRxnOIE#Xd*R6}_^qGcS?@fjPgrtHAV>*<
zM#s8xVE?@eAqRnx{tT&S1LV!#Y*N1JUb)L&@n}+Z<-0O(NoIy&{p}92l)1_Gi~FBM
zvCKiCte@q%Nh_=nj<Yr1wI%eU%I*B5!C5Wu+Q~KRlhMo>8O5j_YT4}NaQ^_*IDp8}
z9fkT#(o(a=9s65>LFc>pY3?4g9SHQ?D2B!68%r_tI9X`oJBCu5wMzpV(c%hJWuq>D
z6<?<8#XoVWW(ls8e-XcCgjVdca;DXGJ|^CWBzw1jpMll%It-^iQ|KEBGK`tm=9+@-
zH?k&QjKdG%y)T{_Usz53MUJl)wn9}-V1P5^@t;(q6}DZ1q64pGkHTnU)cuLpz0%xt
ztPpm17a5$e6+)XH{hZ3nwpT~tk{l2H)GpTS5%nb1xl>eBR1$y<ev_gK%JGRAY&)8p
zek$tH^c(anfJ?HdgiJrWQ4^8NNoi@t94GTR?Ho2i(sKC9OPJGK?HQqVo8rvWQpG4O
zwo8|^oU*eVI`nd8KGy87!vnrL%Pl6)^_zPLqN_BEPi(yQ!S~^NG(N^j+>ZFlK~kuc
z_=WYRhQ@;Ps>oN1l!FC?NpPbAJBf7PLxrzeobGXPbO$x$@tZSFb$dEms0f^~A^mz+
zca+)8u0~2THdBXCgCH`=AU`ZyAeBzH<_Z2BL(Mi^2Mi)Ts4bd}wJouG;5sk-O>Usb
z@GI9XD(NZP7R_i5in5Q57(a)<GE{VzBOp5Z3VZ9f6DMD|%Weyg*>rcGddJ7dx74Ds
z+P!#?^oq9e*{7S-0r?><Yn!oF-@o_2U9kl&ra9uxF(8#%W)TGp(;=s4@gLO(WU)4d
zt7KZseYw;s*IyS+iXqB#D>mw4+_`=CmekB!^ISA5LYz~SWRq8|8Rk6g{E$BqW`1P-
zy|&aSdguY|n(i4Xzc;*2p~N>bCG>sBDra9=L<I5kcum=jJ8}xqDc&i|E3r(g*3#|w
z?bdI+QB1x6t49U0Er6dz-g8yy%U8XJyprj8K&zon)x|d=Ex@6+e=)XZPf=apP8uMx
z7b5SbnB0I~Yb4`ZOA*I!Ny4X3>=FJ#Ma%nMRV!T<rBzEZ&yjBvKeK**6|=0lzt;Qi
zPCtXYZU*dNPHrURQt?ndF#`n0IJi|cH(5)LC~{R0%+)!lQbD@nuUfHl4Q~bLm={$I
zCrw?$9Aql#aONtr3wgp`l?5D;@%DV9;6FWREOedy-ESIIqjU^KF4}+K;Qr|qs)}MJ
zZEaN!l;r{Ce8>f7qz)sX|MO?P6CVy)+rHyNMKqnO&<f+?Vd}(94~S?7wqmNAr_0W+
zqTEmY_l-k8H&IR#c8wd=6QTnL!r^=qBU4;f!*$E+KYmVBT=W!;o}D|<x4oIJc!<Fd
z`B9Fx_Kg`G{Hb<EV@w>%Hkz_gJ7k%wj=$yKH4c>Mqr@%8qGtDW1^t+9$?gXkPfb7p
z54BBUCtS8M#o?*@KnWGv4CflVx@QxwrTT>+J><VB1>O@d$r?geSgfXfB~$2HF_O;?
zZ)}?5ra#!nHFGiGNNFX5-@b$(wSQB(z1@QyW~e>4k4&|}GsNUufXLO0J+-*FPP_=X
zvsKl22HI~lXUyfXzJDy&bdSLUP1d+E#N=eSM}lmx+L<KTAKxYV5pCMI@itVWL(!AY
zwCP_&IN8|zf*K3Cr(H2=<RNT2VvAi{a64iD>(3Q^Pv~te?%?-W0PmfuJV97Jw>Uua
z7agirG(di%C*1s-<Hmx5MH=fLW}lvrHmW>}H@>wfaf?uo=)u@SVTWY~m-w09qw+=%
zP;Mk9wzOl|i?ze0Hb7aDP}aDlY#DD{3Y00pNj$=a3;VEx3d5mP6U=eKFr?EKE#U%G
zB)*Hc1;`0A$tuv9KMYDDgrb})s3a;WmHyi^CR>^@S&u5yP7<mnhnKwmU93=ogUrzX
z1EG!q-f<B~MHCc{%#lPv1Pq`hpRKd2$+%}B`icrquLYZbUWL1>k>nlfjZ;yrGZ4W%
zHcxZI_Q9wRn3zkz8H*{wr@{BB_sHvG6g0~^mfFH|(1RPcvR%FsN%XL<2S~Z7_AdgT
zYNc7GfZj*Ndd3Ts9uy?NlZv{kMn!W*t}wf=odJyKbL3+P^~}L9NG(&X{U+Um9{#Et
zjWncbtsum-VMy+;$#U3SBERCsU01ga{jN$=T_8h6Mg8GQN@@ZU`3BG(;yncpXz0$g
z6zO@gi*O;XS0CeJla%Pj+oD&Y0mVpTLan1maitS6+^WvLw=^k5#QIu|=dQ(?v-|e`
zF{;mu^K;*l5$g-NojeTD398(z)TDYCyI|Kygy9S<3v*9zuRrsEQVb$2w}oK=>r;cq
zOs((EudEmWxg$WofClXEFK}?2h=)&-pA>|x^S-U2Ao>q^QU#`&N*jTqwKA0p1!QOj
zs8UNv82+z151m1%`<~F72e18_pFB^$3FIjRj@XLdE?S1|$>)`I8ZW=YO4^aB{r?ww
z9L_s1w4s#$AoS32_S-%VB!r;!JhVLd6RLAVl)=T@49JiR0hQua`#gTVMNsdWyuxE6
zvZeIf%q%RoBV>%VIHfpaQ$)M#+BB(JA5YmVkOl?*ETaHy3y?>ZwPFLuevIDumudZ1
zrH7629h*~HP7|B1@>E{LVRI&?tDrLLL8T(>36t+&fC4uQ_7m8PX=$K#Q`3~)&dWKC
zWTz}{l!n2e+3i6m8Tk7RAPrb_pD%meZK`vutgQZG2Cm0tk(cRdA1NzulxAs~R<<8*
zJ;Fx0ODNvdqk0iZ8oMzKvoAC)$vKOCW{b`PxgaS)idfgBW_~@YUH7se-zh#V4bRha
zX1>b=wbtRTJ4YZ&=5sI=m?8{QlpP{RtLQ_9DUdIIP-X8BW2+sqs(L7{PXg*H)6+Lq
zPM-#s7Z<x>w;=!8=Yn?j87V)VO5k>=(z^b63VqUJ@@&yx!kz%#$3WjuaW)zSTo|zM
zLq}5tkt$~M%t9th+?DMb`8oJfbobw)Y8_sgAlW$F`HmHhhBpIvj&3J7It!OzONV${
zKK~T6M{`DzTO3^l)(b+&owRb!?vfxg6!E_<jo_6sj;5}4l3FVnSpsRUjY1z){(9CY
zsORawW>4Y&licI4cW-;K5vY%`YjtVDgkI@D2)BAkLz5CL?+Ophk&mx$e_gK6%!+W(
z5jSV}m(K$lq~&$6?9Xm0C<ncL$$g)%ZY@s385aOsPVPEeCM0BP_6o4aUfXNjMHXGX
z1MMJ@6ddmBoSyzNoQ%E_@{fHP-5mp&lG)`cwj8;sN&~3Y#~O+vfTTQTZM99^$pEbx
z3DuEry4qjVey}E7ckzn))ghB?^1BcSt4mWSaKB)dd3@N}UK!H!yf#z|3=GzLsW`WF
zab@u)-HM*$@D=TG><%E3r){qQIaWq$u>0K_kdOi?E+{%1Kl*DQGK(@yV5FngN<_9j
zJS#*Q{I<V&>oB}Bxq)a6Z8yAo?z9dJ=Rg}X^moA(54j)@q8j}Z8A#<FT03XP6s>w4
z(JJ)n>8-Hl=G)9EDNl?sX{;qn$H`YlU4B&ng^3KI8sEd@0>TwRf{1%K`{6`e{SCVN
z)~|`f6hU2K2>r0Lq=er(0w`8V7V06>?)<W89I{R&B+ARPEA#U)5JTAKXaBwn1429R
z@<1NhiR1KAkOZZ5bo`C@j-S1ev%k^>(ydf0&@Y4{z935@Onx0d#Uz&yq7$2HK7EsX
z=U;14&;I{f@^R=}Pkj=^c-Zcsre-L)DF49kPvzF3v+~yfj(*g`e;~Y4xmD$pVId-?
zrsVyv1p{SLd$#&++`~qbFa=h?QLgF7-hFVR=<5XC=(k~Zka!K{jp~K|xuGRrsI#P0
zf+O;2&So&D-HffBfu@<c>Fq2(a*YT_5EMW(B<U4UvhS%^KlD(CIHI`Gthk78s75}i
z(ALFFI)BkNoAO#wMuJ9U=}Y>w;~yF|O#iw#?cAKpQ~Fh2f)e2{{w^!6&;g;sizpyK
zI0_^Y!cr_Q6+O2IG5+?}oE&YQ>eSS_P0rl4R7nsKr$&sGfG`96_LW=N0E{3d1(?$P
zqtB8INsL^|&QA5cDv!nPB7j@iE%0IMU-Wl!Apm}gnG^I^mkPsu_I2&QBO$R*!deZA
zDuL!T?CDR>9g>C@GmOP7Kc~M<uw_S3xPj6*zy>Y<RT%;z=Xd@laYq6S)F5~h(62)B
z4}pkiOZUA%x>L1>5)dXtQprR5JPt5yi(7w8lc0`Wc4F@&Cz~KSc{mh#mCo@@7MB6r
zVUr+@jFt<8Vc#JP8w<Kb#)<ogd)s*ra8q0sZk4Q^KR5A-h3&`+ZW^FFuHy#^Aq5)%
zAt&Z1v>Wq=m|{`a(+E%te1}pjc$;&qPQlMMoHL~X(*2F*;*!E3ql+Ja>ftEXWOw|y
z&EPS;?UbfE-L%HNw}rhQx!2H;9?+IFpXpe->RHTlr%H<O%5%WMD8%z@KqAPY-QW3C
z)VT0d4EiYiL06CZ3vGp-)DBEG))iDTZoE!Jw~n2Va9O&OqxEaTXRU@<uJWAN62T<c
zGCo1%WHm7McjiK_wK8-t?!910@bhmm%r`4S8LEe$JH6u`|KMvD3h|!e4w&QqXL7<)
z#rEN7;){s*xw@f_T{lF0<KE`NjDA56L!tjh|0)V@7~{T<&fi8I2rW12G)!TRaSICi
zv4qu(jd2ks|K=f#jY|@C+w>uYlT!Z1S+zX5m{GT}%x$57`lNBR3Tk?GeC&H~cQx>g
z;~3(z_xSGKy(i&xzfJSkaS%$&x=x7svVa*!$`*-AZ4J~%NNJ%FZTkR}Rk$pA@GMYi
z=h6&$*Bx##(AlATSB#s`62wVAab<@N2+;_+K=q_a4cLSSx^amav<n8q3aDSsU#pJk
z);2o5!WoUhJkq~>H1acNZ>?s*H?=3Ak{Ra#=YQ(8f%%)}b+<41r!xkp`VYi>mkIB5
zyd^FPv%3$3<BOAV!84eZn;97j+@z;{yjcSSKbO;VrjmL(zG+C|=UF((0EbU)ZkwR?
zPsJD`87~FVy~~ZC2FA55DMt?U<^5tObNg0*I?ycG>y^@9ryyM?BxIvLSQn;7LIxB}
z7~hLg*x1_FNSV~{_kxC{8%@kC#k!PcnRxk_-AsNh8C#n8elEVS+&_rHiTSnwftZ5A
zOvev^5%r=J(-@8EH^kV3LQzk?az28=LiDPoHH-y_N`tBYB~KVPfYhk6me4U?4w6~V
zGhCN2yCX%;FsX}IsM_79+aqV-NcW$t5^y&wrKeia+9qqyTx<`08C->Rcrfq-tKott
z-dyFy3}nSTV+kKW!0qo2=YD06Eqi?8LdtiD=e{R&V#V^D__)hTx)TX#vN?oWwsZ3k
zZHCcHE)_)<l+m%Z-%>hOZw>c6xj$V0k+~TWk(hSQ!$YcMBZ47ng;CTn^y#hd;WxP|
zoU;ZqS?b~$0q|&SNeK%K4o*Z19YZjHBGHX1`Q@I$6H8<r<0OoZJcNS&%&ZIT4&9EA
z-PdOO^IBbBrCl~8&m(e!4D{Z(bC$<hy_7>Dkum{5Y<aPnJu)ugnN{78DtzTE_dO9=
zCnu*u6-8eWkiAMs06$5SmYKR9alJjA`_^H6148Z598$|%Vv(uI!D{7UKfdVw`$YPC
zWlul_Uq-0rm*#sN7x#i(=YOX>kzTB!+lC$siD}8MuR*pxo2%*A%>Ws0Tn_zF-#1i4
zn9z7){Z<+W2?ogL<m9um%D4HZO&|X{Dz@v{E*&F=WfJc^knvr<^?Qf4&gB76tUpN6
zE`@$l!m`G1%F25#bm8{o0=tEUsrG&Q%ZM>@R{Kf}{XgpObPd?G9R8x0);B3sJ1|({
zw>R}jw%rdB6Eot?nJYC>zqbAKx!7~juJG0F-RuhdxP2YqQVi_WM5Y|?(rSS$C^b8u
zL_MHxG9QrbUu^Hn<dbMcfMym)V1-B96;zyoB-f|^NPWq{dx^^YdVI@TZy%~2H0>me
zAXIZSc3W*sjd6gQkaN$L*QYEp9PrQJgpn558td%z%}Wv<-d+XcYwzVFv%20iw0b}t
zM8?RexqD@0hc)^61qAeQNot&5x+#0>@sKM9jPYj)UR-{KZUiWqSfcR4+M??`6V^0G
ztpTMZG^Xc!Y?kVtD3yLIn^cmW>G$jNWx2S$|4>`V^LTD2dG+)()q+e66Aq`WEzRgC
za2OK`?ChntB(*=rCgVm=JVnIm%XrvlTgmY~gIRG6zVmYcxpz2RRP2PdH1p*uVX<i|
zeC|vmdskvebC`(xN6<avdgpc>CktV{0Nyr^sgJ<_+B@NIs;2It)wCYnu5>fy<Z(~R
zE_=^NMI-kl>x~_p^NY4OT+Km2Q&>@tpGg#x%>W~Zrv^gg_TUF5cPU*?Y4xR(oLt-9
z?`@fJc=NhQdsVq=Z^YKfsCAjU5U9CVOP8RyuE`dtzj>Dudsp{YcDtD<PR{(kgNMIH
zRslaP2H^m>`I53xd@3$(_5MNJ$5_Mde3Hx8ID$RQma0X|#$4odaG^oN)rpWzr>ZHF
zG$2lN_6EZ+PX+t8CHtrg=O~{2`v)aJ$W<Ee^ojPRt7WhgLZOlsPJkV<Ab&meSKG}e
zm4yzLu6_6MK}suiq!NrL-ku#F(O8`Bst|9Bf{FR29?lp~`pp3uf8wML$doy=EN9q&
zk_V`qUM3NAs@i-Mqj_KRhr=bah&>!gxJ3x7HM7181nem6;vJ&>UmGe08&f3+Yp?O=
zl|>zN=FHG4cPk^LM+@%YEMq(nixUKu<pe<`F%zQJ`J?eZ3+j_=!EloTcc5$!4MT5k
zxPWbcY#PnX?X5kQ_s*__Xv!w90*A^s9%vg=JoGd<qjUXh`fiPi+(zC^i2_ZrQUufA
zuIB;QFaD1foYD4f*pI>4EJT2LhIV-B@G630asdd|(@Ly<{j&aLovS~v9NMl!p=9~@
znF|+|Qu*`2Ar$~T(?373a0q_3GtbnB60g4@<?S<o%56jr3-CYFGN6~xDQxxFDvwaJ
zITj8jzJ2s6|IXyJBw1GhRwrAviAIyNZ=?CbOfC7n7hZI^S!#RF(VtXy*2K5R-=*r{
zD|5cNWQqB55YUN2<_6?HGduB@NctdJHQbSNx+*-sdo;4sFBqm-(`QoXksR96|G9xD
zyRs%0cd%DIiE#6i>$ID+n4=r5l<S;=?fu#)^vQ%SQb&MraFjdy3jtpfC~{d(Z=b;=
zi$qtQ`P?~@X3{R8TkEeT_?sL%d(ySP_4U;LTVD?$e~Pz-9ZYNY>J1pv(7@F%RkKHb
z<OiJs?gvEYzEk|N1Kj=guRh~wc$;pd|HtGT(e^D0og4XC`*4RUNpl9b9$>b{a|@ma
zgibDJ4^I&0Mn*>3Izaw1AZzb<?rJO$GYw-DKx^b2muEw0!b_s3r%rT!r#MynK>6OV
zB^Rh-H)1;6o;!OSysAhRksv6O4++4CC%2l7x(d20-)qS{Z+f*vzI9g+qe8WDI{A4h
zXo8STErASDMaNfPI>UWe@CjSQO}E-d7WT924Hr#$;+}v64PBX)Mgca+5!cuKJbtC7
zYR>c%+#1N`GFW^Yr<kHz0Rmg!b`PdiRy^xd3;HPU3R;FRzw-+y>W!San<nE)2k$E$
zmG(bu{>T92WPOpTiRBbFxAIwn{LR?b51oc*@0st@Xdm|Wu#97p(6mWglFcb$oz_8K
z6p4<6rYF^wF0JUf^b>67nzP=B+#?Vf$sZQ7T4$OJySja1nyxAw*Cx~I`WP4RJW4h!
zN^sgZaTxM~v92qOU~AGYWrFA&I~VSzgi&qw)*E5X6l#w*bO{y5g~qn(OZFpPL+Bbe
zrJAcG-#tFVL32je@My4ui5MZx1e@`nWKS2zKggc<Mn=b)4D;PXpHQm#DzZ|^%dgQZ
zKmJI$4Ob7WCsx3KBGZeUf>EQtzUL!oTt`jnpgVtXc*ue-gqRhvF0GSj@e16^l~Gq5
zxo>KI{{zn08g5&Yb0%d)`=lLzdQA@3^iN-paZff^r$?FNz|)KrLU7VU-X}>XwL<Nj
zCJW-2=cECJV9hI+0Y5o5y3#X-AvA^@v9bWBr@H^TKx=(NsPX%VLS7VCsK@q4L-m5j
z=XE*c-@6B^Dy?+kgqDWGluxatgO|U3vITbfxMzKyMK-5AYF{uYsJ+cyY<=$pbIQX0
zzNGR@9{OMF+qJh=YrMg8?yB)kX=>Z(BccXkfQ*Zr4e4v;<-B~lsz<6RW>(!_`=swM
zgJD7GsjW9TGo0oz)LZ2AiD<LjMbOzpHv>2A(c}H=?rV`T8HgZEV5M9WZxMiC<xI}Q
zmYdkk+>$gi{{iR7o_1BGctZ2kAse!|G{C?E;i<5UM;dC+f%LoBGR`nY6SaFwV0HgE
zl^1M(o5b9lPnjvcMOU5QxN{VcAr{Pk7&ZTar|~w-aq1o7@$fe5gJCrSb|7;I7-$xS
z5y2aMEX30dIH5qN554o(vJ!zp{?L?0tntz_kTIO9)wMS9{nm7*%x&GhX}rF3esTUw
zcKRFdS?bB!+G(qyf&wQy{DH@2A(nRz5ngUD@;5^RjO&u^xqH)XyxP9WcQ*vi_Ik~)
zl0PSPHbpO;zTWra8>Ugt+G&~wY~-CG{vCPm8V!NF9APg0b>3YDWk9=L4#L9kG!i%y
zZ8$u#h?B^Ch?z&g$4fSDOu8g9%(^7tZo5lSEufh(#LY82&LW~zBht-nKL$pD`hyEl
zOTLGb`2i5>vixxd_V!d-eP_4#ojpV^u6vQ8M7zH~5{+UCYkkfZF~7WA&k)X}2abOr
zC7@_YQK^FoI$NGN@jkw#=kXQ)of<L;|A=r4zYLP@&Ld(3JdO}5<)-dDj8S~~^wE9m
zaiSjsw=1-+3~Q6SHq;ls$t<BX<=FwmP}3XS`@x^~KIQT~mMgAO1I7$Cklf_+%{x=Z
zpsV1I2kbNiYVL*t#u#{Sn6=!v#ZP%7svBL3fKeSB{8?c=&n=3dRPMTFRrU9VAh`?&
z<@gOv(9v+zRd!hEXnXzwNj6{Royb1Q!wbmR6YHRhP8)yX8OqLE*TY1RycAj5LvZZo
zpHkV2KvMtP6bU7QuvYvvE`)P5nDwK2#IRQYpU)zp9WSG3ear?lsfj3Apj}!LdH&j{
z7o@jR{s|v_a^g)s9gJ!h5L3cE;vbp6tQD;ADphM1|I52<XscMhpUi;hqoAKZMke?4
zdC?*AWhC^TULV(qHO?{(ZcV|x8TYnxuG#h8=v9V<{$AsXD35K%B17e0x0M~H9z1GQ
zcjK%(NP@QH-<ae@w5E0O^5z(14Jn07b>0)<O^WcB1gaF__&Rnfc_nN*uS-vlO^932
zAyGwGz>GGCeznbex>)$+PX{C86nm|{7Zrh$?6ladQiZ0BYwG4lq!zfgH$N}kvcYlY
z3J@_(4aU9vMhvGo?-Rv!t{f`Txz@xDwAJ)(3LjZPb?NtXCO&s*ATYj2VsV*3{D~lk
zV=}Fe9=>FZe(6d}d-W=q(tAp>Zc7;7)I)+?u9Q$Mb4oZo7G#6aYOs&z1q{IIWGV-;
ziB!N+bE+W@m5{*s;6_~i9Jy``bG_J`=gp6lY2dG*<=a2J^XsJ58qeuQ%E(*={3$rb
z;U@3<x1I!tfOLMV->98fm2e?n>3QA&sVs+uhB|EhCXXA47?6=p1mColQF`>X3cE(6
zdjSf8#|;ZsIc(gVqNE&(G+qL%th0x`lM}D7Fd@SRR&H)SC{%9UDYZ`gme8GFqwA}O
zoagxuJqGYXnC*HZ-wX?(fsEj#>uED%@4lWx9E5TS50=hie{_vhTDUYsD}6BMmz5ro
z?ytY;mDO-y%@D>5lVAjz?Mpz&YH06Ix8xT8Jl#O_^0nvh-dtCyDr;++XZ0c9q9lEa
zai-<@9s2q|TIj3sD|RUwU`{)Ta&c8!Q^CGk4s8UAXfx2m;qN>;yY4egY_4f3$x#3e
zIcHSO9QovWwln=HdxFycM(oEVyQ-kaH@^XiJpLeCV18+|Q_d3;`_w90>##AJP;tEa
zv~CvkJPL7YrJ_&_h|b2g>1}Tvodw90_bk6Qeh^J{P6Biuf|e8c+Fcl9q`w5{<9EO^
zf@Z<jp`EtaT{4;cJiA`N^eHx9*x-zOY-n9R5*|qE<sQGg!VQk((7=E`^YgV$f*TJU
z9!M}o-}{=H^6}HBFF@7gu&zoap}e*W4lzkxa~siYrYZTQgC_yUq|8_aiVzyd(+EQ}
z3*6l5I_OdPOT@J9!ulZpxMi*r`0f*j9re>$<sCCM*L_^wfN)HPS=@l}$wmuNz23t+
zmtAa6#cuX8Pda%6k2EOkX6;r<N=A0~?&fQ2r_M4O*Rw2tfYyEYz3$tGhi||gB04C!
zLc!r19xG?w?6B&PJD2R~`pd_`!0cm6*-tS^*&8W)Fv1O^OGLDRxXskU@+LU(#!#)^
zoO$_5iK`bl@4^`z+0lvfe42cNgfhQ`Dgc}T6Wqahu$^7ZR*rOJ{PWbTbswvW=1cG>
zYd78ngX0ojyK}n)bvte(jvx{r#7U*g-oXSCYM|s%IZ&ys637&QGMxkY&|xLqPqV>D
zL$?Z1!U-28o>&rk85s=MkpO)e`b?_C$4tNq^Akx^{Pom(!d{jI#zh|!9haPo7nF)$
zU;ECDeTXlbyMh30x_w_STKRXH-SMG0%6VbitW|0XEC)D9$C@Ba&qek93311r?X4C;
z#C-XSGx;;Z?^3hufpg51hsRL7v1SKd{NE3|c+Mz&D-5)A7tJ=zFqt7mf4{j)u119M
zl1=F)<(|UGNdCqO`5SR6B9>cVG*QAnDr4VEEIq&?*2roq75#oJkX;WDGgKoE((MLn
z-|0yxEccMJX0;1x#~GWe&3e1UpUaAxTX3)9n0>?MKk2Jmkk#0eySM8m+zGl~kBsTg
zz}Qak)ER-h0<CMtG~7UrIyQtnu{ZBIC*lzYm!ZP~F6u?OXXjB77r^GJaA9H<G}bN7
z9D2Ct35|!=h1y^yHYpGBx%v3QoILdR*%j}9_hAMY1Q$W_aPJQj0!Yle^52?|D%oq-
zaR1{li)BBTx|!ZqIty?Z#@Rz8MMphrw6l?me>)q3iG{*ucz}#+tqyaU;98jL-~D*l
zxN(?ayG){^G`Q>vz%d&vhj`igOs~K=cH6|%jy}O?V=8u+#Nu{mNpg08RpstEqN9^7
z?ytydCTLhzw*82dDncCAg$M!#&g)W5<uZR4fLJQJe3Eu)0Lot2Mypik%gci2yw~gc
zxQewm+*_H3<N&mV7)$`{`VSR|#p3=1C>4X8J4E~_=U&G0NNLaycpfHyBtFT4B}rD5
z6RMtW(<>>n<G(c^)q@ayrp8qU*n(fK&ff-S2jn1fP@mnPc=}-a6$kcmk-QxZ&PWZ^
z<5`p6gAg=$xbx3Nx&Pl*ZMk%LYr<!y2e$Umuvh#Hz`5aw#?r-wS2><mb2}?DkZE#g
zT~XFX{8S^f!4r>5Wh>;klbg1vXoVV)CztQAOLGk>z7D+7`AZ#BS=e2XBi#r10Is+U
znS9l^>fq+EXMtr^*_ltWP^UyjfgNL==16Z-h~5(VJp}<|Ko+77j7r6DBh9Q&j#FFH
zX{TkrQ%1<E4_#lxcvnDL(M%Y4164XLwU4p4RL6+eN6*_-HsWf8B$Nxu7{*Aj{rm&w
z-YJnq92WQyx!I6YGjoh8Zo#TxP82Qa9kMlEohDu#wqa*jUY&zMor106Ak9G9?iG5$
zers~4qNbDcdw;hib7jBv@fr%91FQ}(n%DJv)u_#K)SNS<h@u9KEeCBbLUH{zSftmP
z8r?I1gukO;HKZF!x*H6UlX4S=ZN_$<If+*2E-aORmO9(?t-^qNp=)Uu&)K9y0_#d0
zhAfWg0>${+eiwAZP)fM3Le#aa{PyVzAgMSJf;O3m$VJSKe&={FG3qt;o$ef`)JI7s
zMIa}l^FX6tf2%o2a>wonZZe3fKfhG(VYS^GoB_HTO@A3B5r*;~TjNRu@XnEf1{3m@
z^tOd_zFWg|7G4ptQk9wg{E>#d_e3QAI^SxY7=5|xrc2Qcs_*wA07Nv`3+~wA2S+|(
zFqnOy;QXBL28HglTV+&6b_NpYr#hjFNEgeIvS8^xaJWR{9Of>spf=#LBS6FXg2CIe
zT?#^jTa$6AEADiP+U%!odM3h-Ds^c(aw@rZ1mLa$PrmS!j95OE^d_8I<@E6pJ2-+O
zdoyEM=)Xq89_>nFN#MZ5!8i59GmU226+}D-dTmSY!7;i2r?oSWhkEb(f1PvMlNKe#
zI8u_etkIwd9cx0$9!mCXWe}~_m?V1$*+a;_OvPBnmVKu%hHM#)WyYA_dxoy7>$=bH
zaozX*xc}oZ`*-;)@AvEVd{OjFv_#bREOBs2pTiOoHZ|>BSNCFLFNM|%BLvYiK!%!J
zQDzn7m^EL+;qkQ#O2I#cwj@z4vt3%p<{QXuidyH=fw8tOp4CenDzpQWzTwA|iUR-T
z*c;D0gBP0-1IEG%3b6i@`Ey_}fA*<ySrE)AU~hh&DWfa^gU~5SbZOW9|2T`rv+m)j
zAuRpA(`c?-IW5=UmWSzq+}^S3T-NZV0w`#Y&tJ6N9N%K1qXTHU(avnm>O*mVRRpO^
zgf8wjtoRgkj=Q|Sua4j)2lbSv{?`oyu<}SHWlL7?)h>hndBI^VSj^kL?sNXonLS*_
z7piPjw)Q<pvSeg_|AxTyGR=@va`xFfOj#&hV^k)WyGl}37UK85o{fyYPL6aWjWUYc
z_RGu0X};K9JBI(m^xA6xA9<N7^@V=_=TS{>-3_l?BW(9A<2@KyZLa0x>yyq*mZEPv
z3~v}YW~4YxSKCw{u&f_bEq7TJ2aWHhf6lTyTCPyw-OlQG>?!Uec?=p4dcl^Y`OOO!
zrMW9R$x)ZX@U_%=v04iGGeXVw2TP(_M#}t1ps?fGh~)%JL_~xNPsr2bc1=NI5=B=X
znHVe`U+b35dSzZY*EwG7<vS!Lf^1y7FB6Qf%ys;BY=Jj(bQTKIGsf6je#w>|u|R&>
z<S)~*I%8Tc^0$(fQ|%DbL-GH4HN)Yy;Sxa-b@PF#(fzQlZ@nSNbtAfDOOfG}n5g1)
z!c@4FWGqN_SLV@1__57Z?S!x4F~t@UDvFyFyCY&U%nZ_^eG(`8a5=i-9E!TGVofXT
znkz%tM5l$9P4WqE3B1aR#5dimA9_`Cuic5dRqy$JdjK}^R#ft_LRI4Pd*U$S@{cW`
zRJJ^>`|)JdF#X0Dl!Kt2qia|;lbe@bb4+x%@#-@}<pyFNNL-yv<zTZ}G9@RHRR|Oc
z*_d0)i>^NodLIDc$cy>IO?DjcI=gq|B?oE6k9DGs-WDsqITrenCmyTu%*-Q^IhFgY
z;8rdmJjgV{=n0CSko$r-^64Oe#)OAt#p4@9MDK(N=Uc(1^w#`#Ctv(#y<;ssBI?;D
z7$rUBlfvxYY-oowuWmRwz3?e~CN^sM8blG5gt(K%)--;{u%nXMj^x;@9lG&XrVoW%
zow-BWX(uS?!g*Hhr+|pXwaH5PSeFt&B1Agle$T#3HHHo=nwL&d(}wEbi(e>eObL5I
z0bx<*b;9fJ{Cv<_lQ!C+T+_gT0aB}P`iMz@ibxqZ<^zFwzx8c1GwXoaJCP+5Pfu1>
z^0wSs!UScz<aDiR3pI$9c#%{A`zCz%-Wf;lC-bd09+9|sED5NUFg-~U683jl>(|xX
zb@I(O8GMs2bRSrJi?XW0N#4u6EObX@^~jE3Wp2>6C>F`s5FgNpHR{kMK+KKoO9^S&
zmzGI@g8Qbk3wL(;Bvi8|g4k#jN=UzfcBVV4g^)-0ywfp};Dvt@fQ9S+9o{`&?sZzg
zrva)KkfZ)-DFdkvNNsp(=R$Bt(yW=caJK*%&u?jnGDHj#w(U0#g?jpu3Cz$lX~Q^5
zx7hua8ZPj!CHYd~m81)bX{h_M-xSn~E8?)!xrO-sfhPe55(#A^tXNa(koQ##CaVJt
z+WXHPiSGB;M20a+AaJh<vN?X`y0pPjK>Gz(khiA0J*%7E?QiiaF=R`eXX&LQL?Mve
z$hV6<5)FE@u+@l4IdyTNT48i~)eA<_68VsjR*#oz+BVz8&k`TN3KG;!t)RMi?~5u|
z<gNwL!^%g}=E~Og(YmUjM#Y0g4cLNyg=axb3GdvJ{Cf1Pl;a#mGhJDpv2QA!Lc$!a
z?8E9XXMI=-lmM2?UuTR55uCXVr!1-b7wC}7IyP@jO2xLwl=RKdB#OR}gp3WIU$XRP
zW)8*Jjgpq@#z6i$KneyAvN0{qnjqOoF><E?DYK=jTas??A1s~2^r5Q5vV{p$<~@Q+
zUZsP^pg3BwIO5$(ccOsXn)fwt<H;*(_r3hD<c@8<=0JloxQ($lX)T{j%^L9TdW#t@
zp@F<@CpIxNGe7^>90oj(;VD}`QQS-9oO~aJ5KL(c18i*gtfHZW^jt@6xiYxO*x*)w
z$`$s#lB%YrcKV#CLVcZS%eTg&rUbs7!j;9GCgw69OP|j$cb(#2c#uP2(x^G`EDJY!
zzc+6=u^<fG`%=U^qW^B%&q_aSeY;Hy)AH?Pr!-R!Sd=HRWZ$Ig3>TX$!?B+hcrVds
zD+j4*(!QqSf|$`Lezf*f9PJ62{5<RR7ulX<xLOIEa%+~*abOe#w<<1;klb5&^IBx{
z#!1}`l!`b>u>FsHOj{r=EiE31jnW4#daSbHB-v?**0z+BoOB@G-7j&ZW^~b%?G!>S
z4$K>XmYOSf4ajZf($_zy_MnrZ3HYvpwPJIsbJw76(c{5oN)ef)C(GanOth|vq8y%s
zFe$$>_j*n>#T!UP_RO9;3e{-~CyURy#kMrlqD}8}H#IfIto4TZlsAAp=~`Q7Z++9z
z?p)g#QzIF>CUq7lcHCEvZ0o>shwuE182>8KvE`jzWCaITO!L>Jlk?jeVq}_9Lf?p>
zRPyu15LwFFf3oipEwrW{J!0@K_l$aI_@ez*hv7FC;}bGH4XXn`%#ClDtD@TYweuHW
zI1SVO%~<w_gaj1JpPhNX>YBL}f9d!mBel;xEC~rK^{nzT8lJMB2IODVeG&*_LNCVm
z&hP6A7Lc;TQ$6l`$p;BGY6Llt_3*nrQn$E8m^|llTXl+m>G=V(2m|C%lc@2skSn=<
zR#C+R_VfZpinUrxvy9dBYA)FHq(yu)GC=XR3EdxL74<RzD{himW_UZpM~n9kl!OHu
z67#c2{umeRqLywLfx@gM5LWC>lf}w!R`2|5WHX1&bEi2@N*DRenqAk7Pqp3Pmi8T3
zidUJ~zV!Uk@#P<@sbjkzJ9v(owD(qctF~~#@()&yfhV-v+us-7Gd%)&QW4C948GmW
z%p*m79<7EzBfW5;T?}N#f2`U=CD_7#Ha%w|xKYvS_U&pRynnOCSE!v{_Nz^7FfljR
z=8IC((Ackf^Ry}tr4M~t&Om@Nv6>oz;mfS-(jB2niWRjM?p1Uw09D?TY#Vs)jp$~j
zGPsR7X8}5OMnoFdKBO`;J0VkA`stcdG-&^B_w`W;juMnL)+NlTnv*<{ns0ho_c%`{
zr>b7no_1P$a!}VYOvNTVmhxjY8fh_ehjXs{zI#)5Hen!@(Cs<n-f&mGqLh5~xktS(
zr<ok`(Ys-9?-f3q{=DKP%~1>DRzSV71R-<Djspnc6svu2!Kg>;7Uqpg8Qg1qdF!yd
z`Cwq_Rbw4-%D2D%4w3K_%Tq#5%t+~e)WE9CAwxbF$m$BxmhayavxliN_QPu}A4U`}
z>@rEoeFtUou^{%Lq(Ig!z2_|n9xk+RobM1ROoMXHN;|r`MHj#5#gwMmPLhh;wYuHs
zOuCJ%*;sXFis?5aacOP`{N2Aa9HNoT%MvK@!JUG(>xXt?9`jQC`8zWkLzu`UmI@#|
zbAU4j;=&i>J%?WF@bwzS#;TOe$;GR;FAXgGaJiS1$yeG?FnN8d6N6d&?vOwD7p&f`
zqTlqJcdW=%doriZStUm8S+9rd$GGm{MEVWSNg5$?Dn*!=jlO^Zr0yx*8FrBF4Ey7^
z1{98e;Z7j-xA~Pc%jMbaqU{n1rJDdg$l`veHkc?CrX$fpZ?W0T+dqP{6MfP4VQC$b
zj(4RjS_v#jzdI`t+A{oRXpXLKUnl^Db$B->UFbY5!FbgRW7R8RWa6P~!XCr61*S2V
zEV;$JA7oW?(SXFWM6ZZpZ=T1LuM}ZuA2AJi7cBVk8(}(^(1~t916IL4RPOhFoXh<{
z)N+lIoST%GVzpRGX{pK;kGC16T9PORCA5KZ*U*~UX}Mp}4(_yo47av)3#`2~HxsHm
zW0Cz1?2h9kH3bnT48j%PWyjsoV+AdGYcHL&03h3}ZW<WP|1=NnNq&(vL5@a#fs!(*
zx?3Mt<ytZb&>TQWo;O$U1D>OghpbAvPBpA;X00sEtdBJ0-SH@Iki4~BTtaZ0(XtE2
z(RHi&wM2U?`Q(9J6H%mYPE!*HPC7Kwdqw-vhk!pHCp(85$9u1kV)XktD_ED>F*Iw!
zJ_lv$)nQs&;Q(%NxVzt%`u&gj_F1{i;o+-`oVwcli);L-ZD;?vO6;xx)tirx5A=|r
zw!ZnalhoF&*`NEO$3e$Zc!GIZ3t_*(e-I#i)zHugX?`Oa=4&uZZip?;n6fIOY4mz$
zsKXjUdxo*E&}~3{m}IG`+dlgsBKIK14U|m6?9$~~s1NwDud`1`tev|4Nc`UeXh-Lg
z1es6~>FWntI;T5ucJXspFMwL>g@@8@%EDrN4QA-?FuQhu0hn#O_aoALMc(}Z*{5kx
zFf;lMS2vIphRRTNoSvJ!$*I8!D*a*y8^j9m{H6$f!&@<t<HSX6mM!?QVL?mz-m)Rx
zwV0dKubks_E#%d4HixH)Q$kbBw9`4?J3`MS;`m~fZTry;+!7oZITpoJ_f(QbFdiEp
z(mp-sS=;&yH~_o7?`}>?!p`T*+%@GKoGVYwS*yde6*cu(BeJO<xAA0@t|AIwSsK;^
zaaT9z<B|BCgnfE3Q2$SXg$iu`rZOt1xcaIvq`B76nzk3zV1P1pGec&Z;S9OL{-iDD
z|I2wQu}9b^6Q5;<`SKsqJ=U^pMSRI0rfg{U%bJ($=J{$0Rhzs;t)*#xR@9vu?=`=r
z$bNXtVQ%09VL@y7^B?K#CJuIAfC-YjEa$jd-2kM}WF3M1@n~7sI7guvE&i}nekcx9
z&{FHU0dsg0f2vF-P8?ND!#AI1Y7!jFm%4I5R89HV?!&0HRBuxM&Dq|5&Gl8KM?Y|*
z{QE~oEs&Gf*7(urcxJ=?4s~YSd}ttRt5{Hqk5V4$@#8_tsj-Dd4fMj4sSItlMD`Zp
z5X@4j0Yr|CkaW&OX(dmK8!79+TyS>0B~n~wCPODKdyFe$X|17&+bbH0PbMcLM`#kP
z+@Ts*_zr^a+>A%0_G=aOk5w-^Z>eyOhJV3WR1k;4|2km>@=5c|O4^LSSc$KsN{@X&
zMq7o0+$i%xWT4Vkbhk3V80#-St6Y=yw14{jVbv|6Fr7qaQ8Er`-e1_u>9wu%z?;jw
ziTyP`sAB3ik46>zqzc06=EC!$XysKg6wZ}Ny;Kx^7^?VwjT#~%NWa>tlZW5N%8daA
zOa!PvMW}Mw_e_<vY)j9lWZHuF@;y3le8u&cl3vRNV(;$4*`$Qrr~VY~;2fhU%K^}N
z2t<A4<#D6h<ScxdjjgS0zRUQ;l{w5S<Ve%_sj4L8$XL%NjzNke>bLTv*7O?13T3`;
zWo>4_!*2(db#zMltFw#85ION6UkFv<0pw9vQ<YJyr6FGwxXqtr*w5;9+#Q<?Aij)I
zE)PTAyw=FwjCX<#gcfgD93Q&4Z)`g%g1&ujsw42)f2S5PjYefRXnN%z&Vkj3SKFi*
zH@AWstk;><wL}EpeJt!AXImn1CM0KjsVW!shiqIxP78iFoaxhqpLPjSohb+!Tnm;o
z&-AyXoUQc=*^cysLrXEFQfc+rK=4w{=UnArTT{_x_*oOfor;Ftb1(oes(TZ<`t_)T
zi0HY7?_UJP2F;rklLGqj`k|Jq#esQO$G>W*YxalXfKoWN6VD|__sfo*y61YA4?fwO
zjAacB@_wv&m9K)P*Vn9nR7(QJjQ*b<Ka=;;XrW!sA$Vl>%#RuE)Gj+5=m*iU|3D96
z<r7}RCU909RfDbv<%y-Cz~QIs*8pmcW<~Tfve&$h!pUNWD@4%C=wXy)mE6vI<bz#*
zGND*A*T=T(UsPF^_bznb@|qVfcz?qnd}f|JogA|!ryiHvfY1Bqo!7)IbW#&lfgI7l
zU49gZ*9{wW7o#i(j5PsH+@&~I)GyoaqKG1s6GRt9l(h_;y<Z>bE;1=Wl_nw!;ur&k
z4LA+w29XwN)k~PSGkP<~>zO)y!kR_Tkj5XSDJFL7LzO<b?mP^hVrT{S4fGe63H*H5
zW^Vc}zX;w{itzx~&j;4G|0nzBCW(=XsJp7`!&*U{S8&k)au7E*k7IX2EzU0Xt03|d
z)6NN@i^IQ(tM}`|kjMj*0JsiOr!<R_tD+8x#j82+X%-ET_2ZMW3Z3X*A`{gp6yc$a
z-`8zTwXf&SmY`2)P<Q;>#semTaGO5?cry0y!jQL&+B;)kDjQ~!%1&&2Rs1*?^rn!^
zQxU|=-tH^>A}jNFkA8bgs&RahpkB!^ZP0=r)d)YD{(>>wR<7#o_wYtqm4naW5CX!f
z;bn}k?U?gn<|*1(1Ujzjv=fU&NGh~0V2lDO9?d>4it%*#So+W$mC|+Bm@+tQ5bEps
z{myVoGw0R~GwM|NKJTBs2#@>0g@$-9+P%yN!!58iG4{gi-nwNO<zEvSXwqqzjSYNp
zB|gri^0t*NkBTi9PTu{@o;yjk+>9!zx<`p@y!ruaReD#At&Z^7qM4FTpH-mhZH#LV
zYF0ZJ&iZU1h3L|d6(Q9}d`Y3^xEeH>ce!*2<G8ac+_CvFM88a!*Rx4K;%mcVQVpVz
z#w*BNq{lsq-3c`6<oLdBeX2b?mvQJ}!37m3Mze{INW7T=+eetZG@x$-<Yb~yey5Z%
zJ_*fE+jB6Goegn|R*9%}8tysk8iIPM>u9w|nTsHi@!6O=FQ7pL9QN`CUfd|c$klkh
zR!%5!DmXz6e@642@ylFdtFlcrG5jq~`)MscJv^XCs9wQ19S0TXt9YbQI_tp`>(@@9
z>EQ<FYJN7QJ>2mgBkBi1B`bi+z|;F>cbVW~X>1?=D8zwxe^{MLkeV-a-m^TEN|?vo
zcV9W|K~f%6#YJ(4BRh%p>_zK8Kt}^HO)u4aOt>(jMNqr|cIlS^zk|DnT3fjYO->6p
z3%5b{hVo{Qx%&=-()HR|yQ4-K^xC1P5;5Bh9Ku<)#CXc0IhUtLa7ja?mJ{B0=edWF
z1#42HSsk_Ggza6Ozh8>`R@hTU=l$~0zv30dw2f%~#^xmP-U^cCTIe<px7(Mr#bd90
z{2(fJ@#E>sx=cm=sz&AQ^W^}#7*c<QA(2;sr>fU^@<m#P(#O-l{4rZ@7A#-GCW*th
zdQ}kzeS1NmqwgZ^VfqNg3S{GBK{mFyK-8s*g*a~JyKrh$J6!|;guuVS_5N$o$G>l)
zQ8f5On}u}f9|%OJy~Qc!Ua)`)X_}08WySn4CI4e-o0UyQ>fFQ`(=!gbL>+zwdMndt
zKc+a))%ETfNl8^6lh?p&@stR(>lG6#JX@*JsRMv@V3l=HWUlo@7T>m?fxwVJ5F?c%
zI1xE>{y8NteLdgJq4q4ww5%z#Xz2`G>*-jjfHETFCP-y(@;!*knBOvBJZBbX?QxFg
z)hQE&9nES~FkXr89u4J&6HQ;{MrQE+cv9si8MQ6OPZ$bzu>G1St(mCM%9|Y1#(2Rt
zo)97Q)zRZS<sa%LW1`N}y&h4X78Nn4b|$18l2;eBXtUaSY@a1!dZ*HckM!b@-~R8`
z6VWx(hA&HPqgQzd&m)M>=a`0%{jKTkxMqP9U9ARSbrfsq(ttBNUHD<U7^Zjjm4-CY
z^uGClj0~&8O2JVNH#p);X^$iiy{4S!T$&qBEvev``dodWg|n&(Y2p36WNedjE<N+(
z3xtORB!ZOxv#1b*l`^h1lrffmHJC290W$rZ2*9wG;yjvj4Ihf5-jPN_Q!=L9g<|l5
zYSDG_ujCURJbJX0CjaTx2k#Cu0a?Fjy?R2PW_g=*e1qAT^RwN|tpk@e>E_gS*xjpX
z?$flivQc#=cf@o^iv1RNk2Mt8iR%G|lYEB=9P7`w7ED`>3KOR`1dB(G${QB{5ZwgD
zA_<A;jD*P};RR>AOIvpn+sr|wv-jv{S0=^l<@glf1y*ab4Ux%3bcIgs;HTr7uICth
zUBI$#I!}jWp8ZSUkR?~x*BQy-YmQU64Jvu4L!%?0%<J*A;0VofH3)V|zjhoE=rsFD
zF<QYDU7;Gu8^3WVcA3r(b^M}h%ypRz`$gBd)<a-B%E1$>a>mvBdGEY3;Y^VH!%79;
zWHtv;sO+tiU)A!9iSZ8~nB>|TWbWz^_8zw~7Zr`ayt?+l-zu9b&`}tXwEt*~L5ErT
znDyL*h@O|flt?yU&sn;vX;~`#`x)a8gd~g|(YuP61|~!v?T01@6Kc{hHz<hs-K#^D
zmYHEQr)lR+I45L^I)t0r^|`n8f{{X~Iad0dG!$@KzI_-MS+K<-S|H>=GGy4tW1z~X
z)b_4RBqhr(ZO{&fE3*nhOe7P6x=G(34%Nz<NQ4fZW|oS5CO6ORkW06~)1kuG&(dqy
zzeuWZrN2n35NA7j-rqpvh>gzB-S+FL4|L7sqN$(%y!Y!|p$Aq`yu1R(Mb$JF%+0H!
zbCbhxP1=Vxex4zbFI*7M#{a*uxKF!mAkz^!=q?w@{31)MbD!xt=dxBnqwiYsWbyv9
z4se0{cKbZQ8kj7~EtPX?qSO&iPOz?AhZ!(pJfM1?o70w-u)`?|`MAho|M!ymmL3-O
z-Jo-+MPr_6IHKOudn>>36JIvHDB)q2iYZa!A&nt#t^*Djq<BP*gOp}>yoLxzlmbA#
zWO#nY6*MY#x!Or-qMQayWup?_xSj3r*sE)V<ab)B87IC}L;>qO=Vd**VPD?fbFW^3
zdWpDgYEq_06<B@sH{k|*azsM*lRi#+k+NDmC?rH(I5DyiVp&`xzg??rJ+NaS8fnDz
zZw~gs03<%Dgf~2-X0(m%2wSo%S3qw4zkFeEryViLGLP?^yJmmtG5fa}Y@UEf)Nbgr
z)$<3UYM}A4A5DCDQ1R=>F)97NvdB_zPHboJFz3sK+I6omBg=weTMx00y(=Kxi2r-%
zIy(v%kSK7Ai=UBB@Qv}K*GD(PbF7GE*F4$zt*S|T&p<%K%t!p<XUHUi0GqE+A9>&=
z9oS?Rmv>|AGs|ZeyA?J>M5+MaU;lvR)7vP}CYURqDJPATXm$%3q+j`$6N{^F|Ifh#
zjJXF$=x6cVge-yoYF)UgYnVt?_8#-2fk#$Lt=*;Q{apbQAG>~u$4ja2YsSNm720L#
zZ}F#P(lr#IGM5^wn66@O@Y)IXg>KELYb)ZoKK7ehT!pbFEAe&)O6fZ9ZTp4ZuI2zB
zvZpYYJe65NmiJR$Kbh<`(#~&v=&>uyS2?(ntb|x@qKeNR3QC+j(pnOQ7Z&?9&tP@W
z;$iqqvu;T7+4OGMq@3K#40yj5e_hr)gOnf0p(0ITlbkYglKrNJ_uvhBR6BFa#DNw7
zWUR;_OZ@7*DDXmlxn=*yGH1rC>6ClB6D?;$HEu9m3I84Udl%h93jrhyBO~Ot4F08~
z3%?n*aaxDjF5DB2L$jAJvl(&30=^W8zVe=Khx-dbv^)-QHTKylODCr*vu&i^bPqTq
zZ3D7#s)bT7D?ARy@5&WZTH6Rb2-qxa7dyCVOj`dx<{fNIxYy4@-hmI6ZKQ61{g8yK
zm+;qY4dCzBh!J}CfG)d*^Emhv=9e$axQ+$xh?|qUsNf8!ayf1oD`71P!XAZQmlv(A
zT67NJ!YFCwQZ=i@D*3X)ffd7GTcJR$)63+koOWOo@9w?^fpZabn0gqh?r%(jQ)z&r
z;5nHJ&{m$<rliC#dApFs9)#8f704H$+fEomE!TfT;_SHT*tSJj-?wwj%IlVuoRd~*
zE}e2S{>A;y7zT-u#vof8DRFV3)qVf$j&k)QxMu*H2yl~DH86-~2pmkxtxHFnBq2oP
z#F2{gAM3Pv$NZaNeJ$Yxj{J?Y0htdsRj*?uUQZnf$XnI|O6kX~Bj6_h`ot?Q!fpsR
zV)zuGmH&SbdjLyxdXCU$WT_+xOtv#ih|A<@cJpsZ=Uhk^M}I6WCdx#*O)r4C@aXuw
zP-9bDN1yRZ7;D4N<yDR--H<@0ZpOYB$f^_?TYlxtw_p3W%^12ifYu>ad$WD*{GBS~
zkm-E|MLnappf6_}_n)FY^N{SRjxE2rd3xF4iKXYy8+3YXen*=?6MN9^?{7vy+191E
z&`5v9HTjB`-fKU*9NC0PMP!9;R866sT`@J+4s6@gru5N=0{ASKUa%5Z#T$K?xa~N7
z)O_1wE4A5!EX|3M{&oVr#0C}=#)gEB+%c*j%@TqaGcJOE``;{R!vGg;v0;D%%#O^V
z#4b7@)EhO*V~<Avbj<(Eok}N%@3HLr>?u+K1~>+{hcT_e9(l3B<a8lysez)$y2l{{
z0@vnEJEBrwHNC07DRR(AFE{+>qG=nt+qdvST(%9wD!4N?$^YVm!|xonTVEplnzR7n
zi2+B)Ci{GH)7?jJP~%sLt<JEt{lo(~TK~8wp&ZWUNjffU5Pa0tQB_xJ|90DqA<i^&
zZwHJy3O2#R|MG0l1uW|_z0Z8x&Kc$<#bvsczSIk#Y)u{iOmX-RQ4FY3AR7D<#qh8H
zS6y9j2}8>|t)9~naI$cVq*C138}6Hrb|{W({m?BNxQ8)_I>^dkYBan7d!Hg|AStt1
zb#1v;(PeNSrZ~*KOoxv+%2_tOG(6lUE!1tWVW%HFNV1VA&SDAN5@8kIs2uqEnt*lq
zbw0B)`mx|p0k+bm)E8s<Rz40U%H0LZ4L`LWXwVicfR#REa)-`L>wU}J+<>q-agDRD
z&~-TUDuF9io8=kuz>;#fq*wiWpv_0A^^MN2#8ahra!Dw{yWY07Po66w?AZF~NmXEx
zNh2ZeWic-3X!lvF20tWHr5i}&NWae}a2aNPv)r0ZyeZK%d9V4kbzd~PRB=V1-3-$7
z`t<cDWbZ`&%mO;~ExKK-;JwVsUr+YxLgLw5kdikQOiA9}-3cNyjbn#Sd?AU5#^8Zd
z4KkuPqZ9X%TZFt|n;IGU3Yfs57d;;uN(5z>0r|#i`%}8X!N#DJ*LU4}Q|}VaT2>ZW
zEca=7;xr5?q4^8ttGLWgV@0m&18|w!to{fTE_S8xczY1G$^vfFhvyQ0+1=)MW}Xy(
zEX{xPq;blSz^R>dY~hEEz`;wY`_+Pvf-Qxinn3J)`Wve(?G$M9541`_Qz@}m!oTD?
zB!EEz;0LoO=Ia3mfkmUcJ31HW>7Iv_JwW0L5<C{&&PyjpgUQLYk4a3Mj><yhptw3W
z8`^QSMtpxdJ#uhDh`HAI{$m}alEq!0iy|7Wb-y{4p7)DYgEO%V<;>gBHUGAo|I+=@
zeQnVBeq*!X_sNw7cEpi39d!Vx)2I6{pUuV+`@xZ2bzCv}LCZ0Ri}MKG%a_k<LFe=E
z5e}?~pdic6Gt0eO0P9=#=71+sHn@K@iArR>9f$QX6m!~L>HdP#kQ2fYW&U`?WwvWy
zxiJP(LEp6d<J}*eKV2Q+O=WfC>>>oQ=TK+oq!7b)B>K!OCcby5yMY>V&Tw_51?uP{
zFgL$1DrjAG=qs{`*e9<8h_qa#xzBs2`&+83|Hu~=1rdD<7Wrlfg|;}R#K<i81fs3*
zj7fbl5v+gFdUhy)4bp-hM@~$XYJAB28ngvWaCJ9D%NM#%<(W`LT_3vlAK1?Ke+Cf<
zBhkS)GY^G77DlZQk6<5tto#0_aZddC({(4k7cEx<Q_G``w$IyMT21V^tY^vU><mSg
zEwCW2v&`=aS647^Ncq;UZ{S~RW|0?2O0hD_UvbYx8OO(8Hs1x2k|11k(R?7Ea6V1r
zH<>4C2LY<-qobQ}lD%e%M0agnss976UO-BXnVr{Sk?uDD_Z5`gwFOu{>)5rE%xt7T
z$v`Y6^xSyERgkpRGx9-AoyLM2d7<V3@@eT$FKh3La*2L;=}G<gq1A*_Dk-Ef_YeOC
z>-yC0ujLELknIo}s!dOkjlZ<-yZiQg_w+mpp6oSv(^DvjVOu(#spGUtfh>*R?tE|N
zs3o?pd5KIO_g=1vX>4p3LAnJ#rp>&{vW^BW>wZ8)3{+C%H{bE_gryfd>k0A7{nd4Z
zcMtDV*3R|O#vM+px9@o>kNaZa@YX}C8%OTd)4X!pDO31cp37izxT97_c3O*NJ3YSy
zl!6l(0kcl?Q*t!t+9ijih1zf545D^&Whl`jFiW|rl2Xe1iZo;O*J!(1x0Ad{-6s^=
zUBNR=lcUO=1>^09k(EYLO*kxJ=snN)9spDZwQ%y5$Qa9z$}kG+ip&o!+p<F%Ebe$5
z;y${|=b<o=2ecPA$OB#qTDqDNp?5okWh!0f#)A;U9HfAgu_|pn1Ev0Ri~4PlXCwtR
z62~d=F?9-nI&oDV*M$eur}6{QnBTi&QV(J1-skBn>1h+C0}Z7rB#1Hgi@oS|L{U*t
z+z@=;1~3NdJQ;}5-_C{OHrHI|=MkPOqGVU!m6Mre(;D5kb6pGq1|TCNnHaL3Mg)Ty
fJoWAanp|zq)Z6yO4^oi+yy-7Rjf>gxrjPy~y`nrx

diff --git a/src/observations.py b/src/observations.py
deleted file mode 100644
index ce47e50..0000000
--- a/src/observations.py
+++ /dev/null
@@ -1,736 +0,0 @@
-"""
-Collection of environment-specific ObservationBuilder.
-"""
-import collections
-from typing import Optional, List, Dict, Tuple
-
-import numpy as np
-from flatland.core.env import Environment
-from flatland.core.env_observation_builder import ObservationBuilder
-from flatland.core.env_prediction_builder import PredictionBuilder
-from flatland.core.grid.grid4_utils import get_new_position
-from flatland.core.grid.grid_utils import coordinate_to_position
-from flatland.envs.agent_utils import RailAgentStatus, EnvAgent
-from flatland.utils.ordered_set import OrderedSet
-
-
-class MyTreeObsForRailEnv(ObservationBuilder):
-    """
-    TreeObsForRailEnv object.
-
-    This object returns observation vectors for agents in the RailEnv environment.
-    The information is local to each agent and exploits the graph structure of the rail
-    network to simplify the representation of the state of the environment for each agent.
-
-    For details about the features in the tree observation see the get() function.
-    """
-    Node = collections.namedtuple('Node', 'dist_min_to_target '
-                                          'target_encountered '
-                                          'num_agents_same_direction '
-                                          'num_agents_opposite_direction '
-                                          'childs')
-
-    tree_explored_actions_char = ['L', 'F', 'R', 'B']
-
-    def __init__(self, max_depth: int, predictor: PredictionBuilder = None):
-        super().__init__()
-        self.max_depth = max_depth
-        self.observation_dim = 2
-        self.location_has_agent = {}
-        self.predictor = predictor
-        self.location_has_target = None
-
-        self.switches_list = {}
-        self.switches_neighbours_list = []
-        self.check_agent_descision = None
-
-    def reset(self):
-        self.location_has_target = {tuple(agent.target): 1 for agent in self.env.agents}
-
-    def set_switch_and_pre_switch(self, switch_list, pre_switch_list, check_agent_descision):
-        self.switches_list = switch_list
-        self.switches_neighbours_list = pre_switch_list
-        self.check_agent_descision = check_agent_descision
-
-    def get_many(self, handles: Optional[List[int]] = None) -> Dict[int, Node]:
-        """
-        Called whenever an observation has to be computed for the `env` environment, for each agent with handle
-        in the `handles` list.
-        """
-
-        if handles is None:
-            handles = []
-        if self.predictor:
-            self.max_prediction_depth = 0
-            self.predicted_pos = {}
-            self.predicted_dir = {}
-            self.predictions = self.predictor.get()
-            if self.predictions:
-                for t in range(self.predictor.max_depth + 1):
-                    pos_list = []
-                    dir_list = []
-                    for a in handles:
-                        if self.predictions[a] is None:
-                            continue
-                        pos_list.append(self.predictions[a][t][1:3])
-                        dir_list.append(self.predictions[a][t][3])
-                    self.predicted_pos.update({t: coordinate_to_position(self.env.width, pos_list)})
-                    self.predicted_dir.update({t: dir_list})
-                self.max_prediction_depth = len(self.predicted_pos)
-        # Update local lookup table for all agents' positions
-        # ignore other agents not in the grid (only status active and done)
-
-        self.location_has_agent = {}
-        self.location_has_agent_direction = {}
-        self.location_has_agent_speed = {}
-        self.location_has_agent_malfunction = {}
-        self.location_has_agent_ready_to_depart = {}
-
-        for _agent in self.env.agents:
-            if _agent.status in [RailAgentStatus.ACTIVE, RailAgentStatus.DONE] and \
-                    _agent.position:
-                self.location_has_agent[tuple(_agent.position)] = 1
-                self.location_has_agent_direction[tuple(_agent.position)] = _agent.direction
-                self.location_has_agent_speed[tuple(_agent.position)] = _agent.speed_data['speed']
-                self.location_has_agent_malfunction[tuple(_agent.position)] = _agent.malfunction_data[
-                    'malfunction']
-
-            if _agent.status in [RailAgentStatus.READY_TO_DEPART] and \
-                    _agent.initial_position:
-                self.location_has_agent_ready_to_depart[tuple(_agent.initial_position)] = \
-                    self.location_has_agent_ready_to_depart.get(tuple(_agent.initial_position), 0) + 1
-
-        observations = super().get_many(handles)
-
-        return observations
-
-    def get(self, handle: int = 0) -> Node:
-        """
-        Computes the current observation for agent `handle` in env
-
-        The observation vector is composed of 4 sequential parts, corresponding to data from the up to 4 possible
-        movements in a RailEnv (up to because only a subset of possible transitions are allowed in RailEnv).
-        The possible movements are sorted relative to the current orientation of the agent, rather than NESW as for
-        the transitions. The order is::
-
-            [data from 'left'] + [data from 'forward'] + [data from 'right'] + [data from 'back']
-
-        Each branch data is organized as::
-
-            [root node information] +
-            [recursive branch data from 'left'] +
-            [... from 'forward'] +
-            [... from 'right] +
-            [... from 'back']
-
-        Each node information is composed of 9 features:
-
-        #1:
-            if own target lies on the explored branch the current distance from the agent in number of cells is stored.
-
-        #2:
-            if another agents target is detected the distance in number of cells from the agents current location\
-            is stored
-
-        #3:
-            if another agent is detected the distance in number of cells from current agent position is stored.
-
-        #4:
-            possible conflict detected
-            tot_dist = Other agent predicts to pass along this cell at the same time as the agent, we store the \
-             distance in number of cells from current agent position
-
-            0 = No other agent reserve the same cell at similar time
-
-        #5:
-            if an not usable switch (for agent) is detected we store the distance.
-
-        #6:
-            This feature stores the distance in number of cells to the next branching  (current node)
-
-        #7:
-            minimum distance from node to the agent's target given the direction of the agent if this path is chosen
-
-        #8:
-            agent in the same direction
-            n = number of agents present same direction \
-                (possible future use: number of other agents in the same direction in this branch)
-            0 = no agent present same direction
-
-        #9:
-            agent in the opposite direction
-            n = number of agents present other direction than myself (so conflict) \
-                (possible future use: number of other agents in other direction in this branch, ie. number of conflicts)
-            0 = no agent present other direction than myself
-
-        #10:
-            malfunctioning/blokcing agents
-            n = number of time steps the oberved agent remains blocked
-
-        #11:
-            slowest observed speed of an agent in same direction
-            1 if no agent is observed
-
-            min_fractional speed otherwise
-        #12:
-            number of agents ready to depart but no yet active
-
-        Missing/padding nodes are filled in with -inf (truncated).
-        Missing values in present node are filled in with +inf (truncated).
-
-
-        In case of the root node, the values are [0, 0, 0, 0, distance from agent to target, own malfunction, own speed]
-        In case the target node is reached, the values are [0, 0, 0, 0, 0].
-        """
-
-        if handle > len(self.env.agents):
-            print("ERROR: obs _get - handle ", handle, " len(agents)", len(self.env.agents))
-        agent = self.env.agents[handle]  # TODO: handle being treated as index
-
-        if agent.status == RailAgentStatus.READY_TO_DEPART:
-            agent_virtual_position = agent.initial_position
-        elif agent.status == RailAgentStatus.ACTIVE:
-            agent_virtual_position = agent.position
-        elif agent.status == RailAgentStatus.DONE:
-            agent_virtual_position = agent.target
-        else:
-            return None
-
-        possible_transitions = self.env.rail.get_transitions(*agent_virtual_position, agent.direction)
-        num_transitions = np.count_nonzero(possible_transitions)
-
-        # Here information about the agent itself is stored
-        distance_map = self.env.distance_map.get()
-
-        root_node_observation = MyTreeObsForRailEnv.Node(dist_min_to_target=distance_map[
-            (handle, *agent_virtual_position,
-             agent.direction)],
-                                                         target_encountered=0,
-                                                         num_agents_same_direction=0,
-                                                         num_agents_opposite_direction=0,
-                                                         childs={})
-
-        visited = OrderedSet()
-
-        # Start from the current orientation, and see which transitions are available;
-        # organize them as [left, forward, right, back], relative to the current orientation
-        # If only one transition is possible, the tree is oriented with this transition as the forward branch.
-        orientation = agent.direction
-
-        if num_transitions == 1:
-            orientation = np.argmax(possible_transitions)
-
-        for i, branch_direction in enumerate([(orientation + i) % 4 for i in range(-1, 3)]):
-            if possible_transitions[branch_direction]:
-                new_cell = get_new_position(agent_virtual_position, branch_direction)
-
-                branch_observation, branch_visited = \
-                    self._explore_branch(handle, new_cell, branch_direction, 1, 1)
-                root_node_observation.childs[self.tree_explored_actions_char[i]] = branch_observation
-
-                visited |= branch_visited
-            else:
-                # add cells filled with infinity if no transition is possible
-                root_node_observation.childs[self.tree_explored_actions_char[i]] = -np.inf
-        self.env.dev_obs_dict[handle] = visited
-
-        return root_node_observation
-
-    def _explore_branch(self, handle, position, direction, tot_dist, depth):
-        """
-        Utility function to compute tree-based observations.
-        We walk along the branch and collect the information documented in the get() function.
-        If there is a branching point a new node is created and each possible branch is explored.
-        """
-
-        # [Recursive branch opened]
-        if depth >= self.max_depth + 1:
-            return [], []
-
-        # Continue along direction until next switch or
-        # until no transitions are possible along the current direction (i.e., dead-ends)
-        # We treat dead-ends as nodes, instead of going back, to avoid loops
-        exploring = True
-
-        visited = OrderedSet()
-        agent = self.env.agents[handle]
-
-        other_agent_opposite_direction = 0
-        other_agent_same_direction = 0
-
-        dist_min_to_target = self.env.distance_map.get()[handle, position[0], position[1], direction]
-
-        last_is_dead_end = False
-        last_is_a_decision_cell = False
-        target_encountered = 0
-
-        cnt = 0
-        while exploring:
-
-            dist_min_to_target = min(dist_min_to_target, self.env.distance_map.get()[handle, position[0], position[1],
-                                                                                     direction])
-
-            if agent.target == position:
-                target_encountered = 1
-
-            new_direction_me = direction
-            new_cell_me = position
-            a = self.env.agent_positions[new_cell_me]
-            if a != -1 and a != handle:
-                opp_agent = self.env.agents[a]
-                # look one step forward
-                # opp_possible_transitions = self.env.rail.get_transitions(*opp_agent.position, opp_agent.direction)
-                if opp_agent.direction != new_direction_me:  # opp_possible_transitions[new_direction_me] == 0:
-                    other_agent_opposite_direction += 1
-                else:
-                    other_agent_same_direction += 1
-
-            # #############################
-            # #############################
-            if (position[0], position[1], direction) in visited:
-                break
-            visited.add((position[0], position[1], direction))
-
-            # If the target node is encountered, pick that as node. Also, no further branching is possible.
-            if np.array_equal(position, self.env.agents[handle].target):
-                last_is_target = True
-                break
-
-            exploring = False
-
-            # Check number of possible transitions for agent and total number of transitions in cell (type)
-            possible_transitions = self.env.rail.get_transitions(*position, direction)
-            num_transitions = np.count_nonzero(possible_transitions)
-            # cell_transitions = self.env.rail.get_transitions(*position, direction)
-            transition_bit = bin(self.env.rail.get_full_transitions(*position))
-            total_transitions = transition_bit.count("1")
-
-            if num_transitions == 1:
-                # Check if dead-end, or if we can go forward along direction
-                nbits = total_transitions
-                if nbits == 1:
-                    # Dead-end!
-                    last_is_dead_end = True
-
-            if self.check_agent_descision is not None:
-                ret_agents_on_switch, ret_agents_near_to_switch, agents_near_to_switch_all = \
-                    self.check_agent_descision(position,
-                                               direction,
-                                               self.switches_list,
-                                               self.switches_neighbours_list)
-                if ret_agents_on_switch:
-                    last_is_a_decision_cell = True
-                    break
-
-            exploring = True
-            # convert one-hot encoding to 0,1,2,3
-            cell_transitions = self.env.rail.get_transitions(*position, direction)
-            direction = np.argmax(cell_transitions)
-            position = get_new_position(position, direction)
-
-            cnt += 1
-            if cnt > 1000:
-                exploring = False
-
-        # #############################
-        # #############################
-        # Modify here to append new / different features for each visited cell!
-
-        node = MyTreeObsForRailEnv.Node(dist_min_to_target=dist_min_to_target,
-                                        target_encountered=target_encountered,
-                                        num_agents_opposite_direction=other_agent_opposite_direction,
-                                        num_agents_same_direction=other_agent_same_direction,
-                                        childs={})
-
-        # #############################
-        # #############################
-        # Start from the current orientation, and see which transitions are available;
-        # organize them as [left, forward, right, back], relative to the current orientation
-        # Get the possible transitions
-        possible_transitions = self.env.rail.get_transitions(*position, direction)
-
-        for i, branch_direction in enumerate([(direction + 4 + i) % 4 for i in range(-1, 3)]):
-            if last_is_dead_end and self.env.rail.get_transition((*position, direction),
-                                                                 (branch_direction + 2) % 4):
-                # Swap forward and back in case of dead-end, so that an agent can learn that going forward takes
-                # it back
-                new_cell = get_new_position(position, (branch_direction + 2) % 4)
-                branch_observation, branch_visited = self._explore_branch(handle,
-                                                                          new_cell,
-                                                                          (branch_direction + 2) % 4,
-                                                                          tot_dist + 1,
-                                                                          depth + 1)
-                node.childs[self.tree_explored_actions_char[i]] = branch_observation
-                if len(branch_visited) != 0:
-                    visited |= branch_visited
-            elif last_is_a_decision_cell and possible_transitions[branch_direction]:
-                new_cell = get_new_position(position, branch_direction)
-                branch_observation, branch_visited = self._explore_branch(handle,
-                                                                          new_cell,
-                                                                          branch_direction,
-                                                                          tot_dist + 1,
-                                                                          depth + 1)
-                node.childs[self.tree_explored_actions_char[i]] = branch_observation
-                if len(branch_visited) != 0:
-                    visited |= branch_visited
-            else:
-                # no exploring possible, add just cells with infinity
-                node.childs[self.tree_explored_actions_char[i]] = -np.inf
-
-        if depth == self.max_depth:
-            node.childs.clear()
-        return node, visited
-
-    def util_print_obs_subtree(self, tree: Node):
-        """
-        Utility function to print tree observations returned by this object.
-        """
-        self.print_node_features(tree, "root", "")
-        for direction in self.tree_explored_actions_char:
-            self.print_subtree(tree.childs[direction], direction, "\t")
-
-    @staticmethod
-    def print_node_features(node: Node, label, indent):
-        print(indent, "Direction ", label, ": ", node.num_agents_same_direction,
-              ", ", node.num_agents_opposite_direction)
-
-    def print_subtree(self, node, label, indent):
-        if node == -np.inf or not node:
-            print(indent, "Direction ", label, ": -np.inf")
-            return
-
-        self.print_node_features(node, label, indent)
-
-        if not node.childs:
-            return
-
-        for direction in self.tree_explored_actions_char:
-            self.print_subtree(node.childs[direction], direction, indent + "\t")
-
-    def set_env(self, env: Environment):
-        super().set_env(env)
-        if self.predictor:
-            self.predictor.set_env(self.env)
-
-    def _reverse_dir(self, direction):
-        return int((direction + 2) % 4)
-
-
-class GlobalObsForRailEnv(ObservationBuilder):
-    """
-    Gives a global observation of the entire rail environment.
-    The observation is composed of the following elements:
-
-        - transition map array with dimensions (env.height, env.width, 16),\
-          assuming 16 bits encoding of transitions.
-
-        - obs_agents_state: A 3D array (map_height, map_width, 5) with
-            - first channel containing the agents position and direction
-            - second channel containing the other agents positions and direction
-            - third channel containing agent/other agent malfunctions
-            - fourth channel containing agent/other agent fractional speeds
-            - fifth channel containing number of other agents ready to depart
-
-        - obs_targets: Two 2D arrays (map_height, map_width, 2) containing respectively the position of the given agent\
-         target and the positions of the other agents targets (flag only, no counter!).
-    """
-
-    def __init__(self):
-        super(GlobalObsForRailEnv, self).__init__()
-
-    def set_env(self, env: Environment):
-        super().set_env(env)
-
-    def reset(self):
-        self.rail_obs = np.zeros((self.env.height, self.env.width, 16))
-        for i in range(self.rail_obs.shape[0]):
-            for j in range(self.rail_obs.shape[1]):
-                bitlist = [int(digit) for digit in bin(self.env.rail.get_full_transitions(i, j))[2:]]
-                bitlist = [0] * (16 - len(bitlist)) + bitlist
-                self.rail_obs[i, j] = np.array(bitlist)
-
-    def get(self, handle: int = 0) -> (np.ndarray, np.ndarray, np.ndarray):
-
-        agent = self.env.agents[handle]
-        if agent.status == RailAgentStatus.READY_TO_DEPART:
-            agent_virtual_position = agent.initial_position
-        elif agent.status == RailAgentStatus.ACTIVE:
-            agent_virtual_position = agent.position
-        elif agent.status == RailAgentStatus.DONE:
-            agent_virtual_position = agent.target
-        else:
-            return None
-
-        obs_targets = np.zeros((self.env.height, self.env.width, 2))
-        obs_agents_state = np.zeros((self.env.height, self.env.width, 5)) - 1
-
-        # TODO can we do this more elegantly?
-        # for r in range(self.env.height):
-        #     for c in range(self.env.width):
-        #         obs_agents_state[(r, c)][4] = 0
-        obs_agents_state[:, :, 4] = 0
-
-        obs_agents_state[agent_virtual_position][0] = agent.direction
-        obs_targets[agent.target][0] = 1
-
-        for i in range(len(self.env.agents)):
-            other_agent: EnvAgent = self.env.agents[i]
-
-            # ignore other agents not in the grid any more
-            if other_agent.status == RailAgentStatus.DONE_REMOVED:
-                continue
-
-            obs_targets[other_agent.target][1] = 1
-
-            # second to fourth channel only if in the grid
-            if other_agent.position is not None:
-                # second channel only for other agents
-                if i != handle:
-                    obs_agents_state[other_agent.position][1] = other_agent.direction
-                obs_agents_state[other_agent.position][2] = other_agent.malfunction_data['malfunction']
-                obs_agents_state[other_agent.position][3] = other_agent.speed_data['speed']
-            # fifth channel: all ready to depart on this position
-            if other_agent.status == RailAgentStatus.READY_TO_DEPART:
-                obs_agents_state[other_agent.initial_position][4] += 1
-        return self.rail_obs, obs_agents_state, obs_targets
-
-
-class LocalObsForRailEnv(ObservationBuilder):
-    """
-    !!!!!!WARNING!!! THIS IS DEPRACTED AND NOT UPDATED TO FLATLAND 2.0!!!!!
-    Gives a local observation of the rail environment around the agent.
-    The observation is composed of the following elements:
-
-        - transition map array of the local environment around the given agent, \
-          with dimensions (view_height,2*view_width+1, 16), \
-          assuming 16 bits encoding of transitions.
-
-        - Two 2D arrays (view_height,2*view_width+1, 2) containing respectively, \
-        if they are in the agent's vision range, its target position, the positions of the other targets.
-
-        - A 2D array (view_height,2*view_width+1, 4) containing the one hot encoding of directions \
-          of the other agents at their position coordinates, if they are in the agent's vision range.
-
-        - A 4 elements array with one hot encoding of the direction.
-
-    Use the parameters view_width and view_height to define the rectangular view of the agent.
-    The center parameters moves the agent along the height axis of this rectangle. If it is 0 the agent only has
-    observation in front of it.
-
-    .. deprecated:: 2.0.0
-    """
-
-    def __init__(self, view_width, view_height, center):
-
-        super(LocalObsForRailEnv, self).__init__()
-        self.view_width = view_width
-        self.view_height = view_height
-        self.center = center
-        self.max_padding = max(self.view_width, self.view_height - self.center)
-
-    def reset(self):
-        # We build the transition map with a view_radius empty cells expansion on each side.
-        # This helps to collect the local transition map view when the agent is close to a border.
-        self.max_padding = max(self.view_width, self.view_height)
-        self.rail_obs = np.zeros((self.env.height,
-                                  self.env.width, 16))
-        for i in range(self.env.height):
-            for j in range(self.env.width):
-                bitlist = [int(digit) for digit in bin(self.env.rail.get_full_transitions(i, j))[2:]]
-                bitlist = [0] * (16 - len(bitlist)) + bitlist
-                self.rail_obs[i, j] = np.array(bitlist)
-
-    def get(self, handle: int = 0) -> (np.ndarray, np.ndarray, np.ndarray, np.ndarray):
-        agents = self.env.agents
-        agent = agents[handle]
-
-        # Correct agents position for padding
-        # agent_rel_pos[0] = agent.position[0] + self.max_padding
-        # agent_rel_pos[1] = agent.position[1] + self.max_padding
-
-        # Collect visible cells as set to be plotted
-        visited, rel_coords = self.field_of_view(agent.position, agent.direction, )
-        local_rail_obs = None
-
-        # Add the visible cells to the observed cells
-        self.env.dev_obs_dict[handle] = set(visited)
-
-        # Locate observed agents and their coresponding targets
-        local_rail_obs = np.zeros((self.view_height, 2 * self.view_width + 1, 16))
-        obs_map_state = np.zeros((self.view_height, 2 * self.view_width + 1, 2))
-        obs_other_agents_state = np.zeros((self.view_height, 2 * self.view_width + 1, 4))
-        _idx = 0
-        for pos in visited:
-            curr_rel_coord = rel_coords[_idx]
-            local_rail_obs[curr_rel_coord[0], curr_rel_coord[1], :] = self.rail_obs[pos[0], pos[1], :]
-            if pos == agent.target:
-                obs_map_state[curr_rel_coord[0], curr_rel_coord[1], 0] = 1
-            else:
-                for tmp_agent in agents:
-                    if pos == tmp_agent.target:
-                        obs_map_state[curr_rel_coord[0], curr_rel_coord[1], 1] = 1
-            if pos != agent.position:
-                for tmp_agent in agents:
-                    if pos == tmp_agent.position:
-                        obs_other_agents_state[curr_rel_coord[0], curr_rel_coord[1], :] = np.identity(4)[
-                            tmp_agent.direction]
-
-            _idx += 1
-
-        direction = np.identity(4)[agent.direction]
-        return local_rail_obs, obs_map_state, obs_other_agents_state, direction
-
-    def get_many(self, handles: Optional[List[int]] = None) -> Dict[
-        int, Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]]:
-        """
-        Called whenever an observation has to be computed for the `env` environment, for each agent with handle
-        in the `handles` list.
-        """
-
-        return super().get_many(handles)
-
-    def field_of_view(self, position, direction, state=None):
-        # Compute the local field of view for an agent in the environment
-        data_collection = False
-        if state is not None:
-            temp_visible_data = np.zeros(shape=(self.view_height, 2 * self.view_width + 1, 16))
-            data_collection = True
-        if direction == 0:
-            origin = (position[0] + self.center, position[1] - self.view_width)
-        elif direction == 1:
-            origin = (position[0] - self.view_width, position[1] - self.center)
-        elif direction == 2:
-            origin = (position[0] - self.center, position[1] + self.view_width)
-        else:
-            origin = (position[0] + self.view_width, position[1] + self.center)
-        visible = list()
-        rel_coords = list()
-        for h in range(self.view_height):
-            for w in range(2 * self.view_width + 1):
-                if direction == 0:
-                    if 0 <= origin[0] - h < self.env.height and 0 <= origin[1] + w < self.env.width:
-                        visible.append((origin[0] - h, origin[1] + w))
-                        rel_coords.append((h, w))
-                    # if data_collection:
-                    #    temp_visible_data[h, w, :] = state[origin[0] - h, origin[1] + w, :]
-                elif direction == 1:
-                    if 0 <= origin[0] + w < self.env.height and 0 <= origin[1] + h < self.env.width:
-                        visible.append((origin[0] + w, origin[1] + h))
-                        rel_coords.append((h, w))
-                    # if data_collection:
-                    #    temp_visible_data[h, w, :] = state[origin[0] + w, origin[1] + h, :]
-                elif direction == 2:
-                    if 0 <= origin[0] + h < self.env.height and 0 <= origin[1] - w < self.env.width:
-                        visible.append((origin[0] + h, origin[1] - w))
-                        rel_coords.append((h, w))
-                    # if data_collection:
-                    #    temp_visible_data[h, w, :] = state[origin[0] + h, origin[1] - w, :]
-                else:
-                    if 0 <= origin[0] - w < self.env.height and 0 <= origin[1] - h < self.env.width:
-                        visible.append((origin[0] - w, origin[1] - h))
-                        rel_coords.append((h, w))
-                    # if data_collection:
-                    #    temp_visible_data[h, w, :] = state[origin[0] - w, origin[1] - h, :]
-        if data_collection:
-            return temp_visible_data
-        else:
-            return visible, rel_coords
-
-
-def _split_node_into_feature_groups(node: MyTreeObsForRailEnv.Node, dist_min_to_target: int) -> (np.ndarray, np.ndarray,
-                                                                                                 np.ndarray):
-    data = np.zeros(2)
-
-    data[0] = 2.0 * int(node.num_agents_opposite_direction > 0) - 1.0
-    # data[1] = 2.0 * int(node.num_agents_same_direction > 0) - 1.0
-    data[1] = 2.0 * int(node.target_encountered > 0) - 1.0
-
-    return data
-
-
-def _split_subtree_into_feature_groups(node: MyTreeObsForRailEnv.Node, dist_min_to_target: int,
-                                       current_tree_depth: int,
-                                       max_tree_depth: int) -> (
-        np.ndarray, np.ndarray, np.ndarray):
-    if node == -np.inf:
-        remaining_depth = max_tree_depth - current_tree_depth
-        # reference: https://stackoverflow.com/questions/515214/total-number-of-nodes-in-a-tree-data-structure
-        num_remaining_nodes = int((4 ** (remaining_depth + 1) - 1) / (4 - 1))
-        return [0] * num_remaining_nodes * 2
-
-    data = _split_node_into_feature_groups(node, dist_min_to_target)
-
-    if not node.childs:
-        return data
-
-    for direction in MyTreeObsForRailEnv.tree_explored_actions_char:
-        sub_data = _split_subtree_into_feature_groups(node.childs[direction],
-                                                      node.dist_min_to_target,
-                                                      current_tree_depth + 1,
-                                                      max_tree_depth)
-        data = np.concatenate((data, sub_data))
-    return data
-
-
-def split_tree_into_feature_groups(tree: MyTreeObsForRailEnv.Node, max_tree_depth: int) -> (
-        np.ndarray, np.ndarray, np.ndarray):
-    """
-    This function splits the tree into three difference arrays of values
-    """
-    data = _split_node_into_feature_groups(tree, 1000000.0)
-
-    for direction in MyTreeObsForRailEnv.tree_explored_actions_char:
-        sub_data = _split_subtree_into_feature_groups(tree.childs[direction],
-                                                      1000000.0,
-                                                      1,
-                                                      max_tree_depth)
-        data = np.concatenate((data, sub_data))
-
-    return data
-
-
-def normalize_observation(observation: MyTreeObsForRailEnv.Node, tree_depth: int):
-    """
-    This function normalizes the observation used by the RL algorithm
-    """
-    data = split_tree_into_feature_groups(observation, tree_depth)
-    normalized_obs = data
-
-    # navigate_info
-    navigate_info = np.zeros(4)
-    action_info = np.zeros(4)
-    np.seterr(all='raise')
-    try:
-        dm = observation.dist_min_to_target
-        if observation.childs['L'] != -np.inf:
-            navigate_info[0] = dm - observation.childs['L'].dist_min_to_target
-            action_info[0] = 1
-        if observation.childs['F'] != -np.inf:
-            navigate_info[1] = dm - observation.childs['F'].dist_min_to_target
-            action_info[1] = 1
-        if observation.childs['R'] != -np.inf:
-            navigate_info[2] = dm - observation.childs['R'].dist_min_to_target
-            action_info[2] = 1
-        if observation.childs['B'] != -np.inf:
-            navigate_info[3] = dm - observation.childs['B'].dist_min_to_target
-            action_info[3] = 1
-    except:
-        navigate_info = np.ones(4)
-        normalized_obs = np.zeros(len(normalized_obs))
-
-    # navigate_info_2 = np.copy(navigate_info)
-    # max_v = np.max(navigate_info_2)
-    # navigate_info_2 = navigate_info_2 / max_v
-    # navigate_info_2[navigate_info_2 < 1] = -1
-
-    max_v = np.max(navigate_info)
-    navigate_info = navigate_info / max_v
-    navigate_info[navigate_info < 0] = -1
-    # navigate_info[abs(navigate_info) < 1] = 0
-    # normalized_obs = navigate_info
-
-    # navigate_info = np.concatenate((navigate_info, action_info))
-    normalized_obs = np.concatenate((navigate_info, normalized_obs))
-    # normalized_obs = np.concatenate((navigate_info, navigate_info_2))
-    # print(normalized_obs)
-    return normalized_obs
diff --git a/src/ppo/agent.py b/src/ppo/agent.py
deleted file mode 100644
index 86b210a..0000000
--- a/src/ppo/agent.py
+++ /dev/null
@@ -1,106 +0,0 @@
-import pickle
-
-import torch
-# from model import PolicyNetwork
-# from replay_memory import Episode, ReplayBuffer
-from torch.distributions.categorical import Categorical
-
-from src.ppo.model import PolicyNetwork
-from src.ppo.replay_memory import Episode, ReplayBuffer
-
-BUFFER_SIZE = 32_000
-BATCH_SIZE = 4096
-GAMMA = 0.98
-LR = 0.5e-4
-CLIP_FACTOR = .005
-UPDATE_EVERY = 30
-
-device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
-print("device:", device)
-
-
-class Agent:
-    def __init__(self, state_size, action_size, num_agents):
-        self.policy = PolicyNetwork(state_size, action_size).to(device)
-        self.old_policy = PolicyNetwork(state_size, action_size).to(device)
-        self.optimizer = torch.optim.Adam(self.policy.parameters(), lr=LR)
-
-        self.episodes = [Episode() for _ in range(num_agents)]
-        self.memory = ReplayBuffer(BUFFER_SIZE)
-        self.t_step = 0
-
-    def reset(self):
-        self.finished = [False] * len(self.episodes)
-
-    # Decide on an action to take in the environment
-
-    def act(self, state, eps=None):
-        self.policy.eval()
-        with torch.no_grad():
-            output = self.policy(torch.from_numpy(state).float().unsqueeze(0).to(device))
-            return Categorical(output).sample().item()
-
-    # Record the results of the agent's action and update the model
-
-    def step(self, handle, state, action, next_state, agent_done, episode_done, collision):
-        if not self.finished[handle]:
-            if agent_done:
-                reward = 1
-            elif collision:
-                reward = -.5
-            else:
-                reward = 0
-
-            # Push experience into Episode memory
-            self.episodes[handle].push(state, action, reward, next_state, agent_done or episode_done)
-
-            # When we finish the episode, discount rewards and push the experience into replay memory
-            if agent_done or episode_done:
-                self.episodes[handle].discount_rewards(GAMMA)
-                self.memory.push_episode(self.episodes[handle])
-                self.episodes[handle].reset()
-                self.finished[handle] = True
-
-        # Perform a gradient update every UPDATE_EVERY time steps
-        self.t_step = (self.t_step + 1) % UPDATE_EVERY
-        if self.t_step == 0 and len(self.memory) > BATCH_SIZE * 4:
-            self.learn(*self.memory.sample(BATCH_SIZE, device))
-
-    def learn(self, states, actions, rewards, next_state, done):
-        self.policy.train()
-
-        responsible_outputs = torch.gather(self.policy(states), 1, actions)
-        old_responsible_outputs = torch.gather(self.old_policy(states), 1, actions).detach()
-
-        # rewards = rewards - rewards.mean()
-        ratio = responsible_outputs / (old_responsible_outputs + 1e-5)
-        clamped_ratio = torch.clamp(ratio, 1. - CLIP_FACTOR, 1. + CLIP_FACTOR)
-        loss = -torch.min(ratio * rewards, clamped_ratio * rewards).mean()
-
-        # Compute loss and perform a gradient step
-        self.old_policy.load_state_dict(self.policy.state_dict())
-        self.optimizer.zero_grad()
-        loss.backward()
-        self.optimizer.step()
-
-    # Checkpointing methods
-
-    def save(self, path, *data):
-        torch.save(self.policy.state_dict(), path / 'ppo/model_checkpoint.policy')
-        torch.save(self.optimizer.state_dict(), path / 'ppo/model_checkpoint.optimizer')
-        with open(path / 'ppo/model_checkpoint.meta', 'wb') as file:
-            pickle.dump(data, file)
-
-    def load(self, path, *defaults):
-        try:
-            print("Loading model from checkpoint...")
-            print(path + 'ppo/model_checkpoint.policy')
-            self.policy.load_state_dict(
-                torch.load(path + 'ppo/model_checkpoint.policy', map_location=torch.device('cpu')))
-            self.optimizer.load_state_dict(
-                torch.load(path + 'ppo/model_checkpoint.optimizer', map_location=torch.device('cpu')))
-            with open(path + 'ppo/model_checkpoint.meta', 'rb') as file:
-                return pickle.load(file)
-        except:
-            print("No checkpoint file was found")
-            return defaults
diff --git a/src/ppo/model.py b/src/ppo/model.py
deleted file mode 100644
index 51b86ff..0000000
--- a/src/ppo/model.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import torch.nn as nn
-import torch.nn.functional as F
-
-
-class PolicyNetwork(nn.Module):
-    def __init__(self, state_size, action_size, hidsize1=128, hidsize2=128, hidsize3=32):
-        super().__init__()
-        self.fc1 = nn.Linear(state_size, hidsize1)
-        self.fc2 = nn.Linear(hidsize1, hidsize2)
-        # self.fc3 = nn.Linear(hidsize2, hidsize3)
-        self.output = nn.Linear(hidsize2, action_size)
-        self.softmax = nn.Softmax(dim=1)
-        self.bn0 = nn.BatchNorm1d(state_size, affine=False)
-
-    def forward(self, inputs):
-        x = self.bn0(inputs.float())
-        x = F.relu(self.fc1(x))
-        x = F.relu(self.fc2(x))
-        # x = F.relu(self.fc3(x))
-        return self.softmax(self.output(x))
diff --git a/src/ppo/replay_memory.py b/src/ppo/replay_memory.py
deleted file mode 100644
index 3e6619b..0000000
--- a/src/ppo/replay_memory.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import torch
-import random
-import numpy as np
-from collections import namedtuple, deque, Iterable
-
-
-Transition = namedtuple("Experience", ("state", "action", "reward", "next_state", "done"))
-
-
-class Episode:
-    memory = []
-
-    def reset(self):
-        self.memory = []
-
-    def push(self, *args):
-        self.memory.append(tuple(args))
-
-    def discount_rewards(self, gamma):
-        running_add = 0.
-        for i, (state, action, reward, *rest) in list(enumerate(self.memory))[::-1]:
-            running_add = running_add * gamma + reward
-            self.memory[i] = (state, action, running_add, *rest)
-
-
-class ReplayBuffer:
-    def __init__(self, buffer_size):
-        self.memory = deque(maxlen=buffer_size)
-
-    def push(self, state, action, reward, next_state, done):
-        self.memory.append(Transition(np.expand_dims(state, 0), action, reward, np.expand_dims(next_state, 0), done))
-
-    def push_episode(self, episode):
-        for step in episode.memory:
-            self.push(*step)
-
-    def sample(self, batch_size, device):
-        experiences = random.sample(self.memory, k=batch_size)
-
-        states      = torch.from_numpy(self.stack([e.state      for e in experiences])).float().to(device)
-        actions     = torch.from_numpy(self.stack([e.action     for e in experiences])).long().to(device)
-        rewards     = torch.from_numpy(self.stack([e.reward     for e in experiences])).float().to(device)
-        next_states = torch.from_numpy(self.stack([e.next_state for e in experiences])).float().to(device)
-        dones       = torch.from_numpy(self.stack([e.done       for e in experiences]).astype(np.uint8)).float().to(device)
-
-        return states, actions, rewards, next_states, dones
-
-    def stack(self, states):
-        sub_dims = states[0].shape[1:] if isinstance(states[0], Iterable) else [1]
-        return np.reshape(np.array(states), (len(states), *sub_dims))
-
-    def __len__(self):
-        return len(self.memory)
diff --git a/src/shortest_Distance_walker.py b/src/shortest_Distance_walker.py
deleted file mode 100644
index d69ebcb..0000000
--- a/src/shortest_Distance_walker.py
+++ /dev/null
@@ -1,69 +0,0 @@
-import numpy as np
-from flatland.core.grid.grid4_utils import get_new_position
-from flatland.envs.rail_env import RailEnv, RailEnvActions
-from flatland.envs.rail_env import fast_count_nonzero, fast_argmax
-
-
-class ShortestDistanceWalker:
-    def __init__(self, env: RailEnv):
-        self.env = env
-
-    def walk(self, handle, position, direction):
-        possible_transitions = self.env.rail.get_transitions(*position, direction)
-        num_transitions = fast_count_nonzero(possible_transitions)
-        if num_transitions == 1:
-            new_direction = fast_argmax(possible_transitions)
-            new_position = get_new_position(position, new_direction)
-            dist = self.env.distance_map.get()[handle, new_position[0], new_position[1], new_direction]
-            return new_position, new_direction, dist, RailEnvActions.MOVE_FORWARD
-        else:
-            min_distances = []
-            positions = []
-            directions = []
-            for new_direction in [(direction + i) % 4 for i in range(-1, 2)]:
-                if possible_transitions[new_direction]:
-                    new_position = get_new_position(position, new_direction)
-                    min_distances.append(
-                        self.env.distance_map.get()[handle, new_position[0], new_position[1], new_direction])
-                    positions.append(new_position)
-                    directions.append(new_direction)
-                else:
-                    min_distances.append(np.inf)
-                    positions.append(None)
-                    directions.append(None)
-
-        a = np.argmin(min_distances)
-        return positions[a], directions[a], min_distances[a], a + 1
-
-    def callback(self, handle, agent, position, direction, action):
-        pass
-
-    def walk_to_target(self, handle):
-        agent = self.env.agents[handle]
-        if agent.position is not None:
-            position = agent.position
-        else:
-            position = agent.initial_position
-        direction = agent.direction
-        while (position != agent.target):
-            position, direction, dist, action = self.walk(handle, position, direction)
-            if position is None:
-                break
-            self.callback(handle, agent, position, direction, action)
-
-    def callback_one_step(self, handle, agent, position, direction, action):
-        pass
-
-    def walk_one_step(self, handle):
-        agent = self.env.agents[handle]
-        if agent.position is not None:
-            position = agent.position
-        else:
-            position = agent.initial_position
-        direction = agent.direction
-        if (position != agent.target):
-            new_position, new_direction, dist, action = self.walk(handle, position, direction)
-            if new_position is None:
-                return position, direction, RailEnvActions.STOP_MOVING
-            self.callback_one_step(handle, agent, new_position, new_direction, action)
-        return new_position, new_direction, action
diff --git a/utils/dead_lock_avoidance_agent.py b/utils/dead_lock_avoidance_agent.py
index 43f1b4a..382959a 100644
--- a/utils/dead_lock_avoidance_agent.py
+++ b/utils/dead_lock_avoidance_agent.py
@@ -15,21 +15,33 @@ class MyWalker(ShortestDistanceWalker):
                                                      self.env.width),
                                                     dtype=int) - 1
 
+        self.full_shortest_distance_agent_map = np.zeros((self.env.get_num_agents(),
+                                                          self.env.height,
+                                                          self.env.width),
+                                                         dtype=int) - 1
+
         self.agent_positions = agent_positions
 
         self.agent_map = {}
 
+    def get_action(self, handle, min_distances):
+        return np.argmin(min_distances)
+
     def getData(self):
-        return self.shortest_distance_agent_map
+        return self.shortest_distance_agent_map, self.full_shortest_distance_agent_map
 
     def callback(self, handle, agent, position, direction, action):
         opp_a = self.agent_positions[position]
         if opp_a != -1 and opp_a != handle:
-            d = self.agent_map.get(handle, [])
-            d.append(opp_a)
             if self.env.agents[opp_a].direction != direction:
+                d = self.agent_map.get(handle, [])
+                if opp_a not in d:
+                    d.append(opp_a)
                 self.agent_map.update({handle: d})
-        self.shortest_distance_agent_map[(handle, position[0], position[1])] = direction
+        d = self.agent_map.get(handle, [])
+        if len(d) == 0:
+            self.shortest_distance_agent_map[(handle, position[0], position[1])] = 1
+        self.full_shortest_distance_agent_map[(handle, position[0], position[1])] = 1
 
 
 class DeadLockAvoidanceAgent(Policy):
@@ -45,16 +57,9 @@ class DeadLockAvoidanceAgent(Policy):
         pass
 
     def act(self, handle, state, eps=0.):
-        agent = self.env.agents[handle]
-        #if handle > self.env._elapsed_steps:
-        #    return RailEnvActions.STOP_MOVING
-        if agent.status == RailAgentStatus.ACTIVE:
-            self.active_agent_cnt += 1
-        #if agent.status > 20:
-        #    return RailEnvActions.STOP_MOVING
+        # agent = self.env.agents[handle]
         check = self.agent_can_move.get(handle, None)
         if check is None:
-            # print(handle, RailEnvActions.STOP_MOVING)
             return RailEnvActions.STOP_MOVING
 
         return check[3]
@@ -63,11 +68,9 @@ class DeadLockAvoidanceAgent(Policy):
         pass
 
     def start_step(self):
-        self.active_agent_cnt = 0
         self.shortest_distance_mapper()
 
     def end_step(self):
-        # print("#A:", self.active_agent_cnt, "/", self.env.get_num_agents(),self.env._elapsed_steps)
         pass
 
     def get_actions(self):
@@ -79,7 +82,7 @@ class DeadLockAvoidanceAgent(Policy):
         agent_positions = np.zeros((self.env.height, self.env.width), dtype=int) - 1
         for handle in range(self.env.get_num_agents()):
             agent = self.env.agents[handle]
-            if agent.status <= RailAgentStatus.ACTIVE:
+            if agent.status == RailAgentStatus.ACTIVE:
                 if agent.position is not None:
                     agent_positions[agent.position] = handle
 
@@ -88,20 +91,22 @@ class DeadLockAvoidanceAgent(Policy):
             agent = self.env.agents[handle]
             if agent.status <= RailAgentStatus.ACTIVE:
                 my_walker.walk_to_target(handle)
-        self.shortest_distance_agent_map = my_walker.getData()
+        shortest_distance_agent_map, full_shortest_distance_agent_map = my_walker.getData()
 
         self.agent_can_move = {}
-        agent_positions_map = np.clip(agent_positions + 1, 0, 1)
+        agent_positions_map = (agent_positions > -1).astype(int)
         for handle in range(self.env.get_num_agents()):
             opp_agents = my_walker.agent_map.get(handle, [])
-            me = np.clip(self.shortest_distance_agent_map[handle] + 1, 0, 1)
+            me = shortest_distance_agent_map[handle]
+            delta = me
             next_step_ok = True
             next_position, next_direction, action = my_walker.walk_one_step(handle)
             for opp_a in opp_agents:
-                opp = np.clip(self.shortest_distance_agent_map[opp_a] + 1, 0, 1)
-                delta = np.clip(me - opp - agent_positions_map, 0, 1)
-                if (np.sum(delta) > 1):
+                opp = full_shortest_distance_agent_map[opp_a]
+                delta = (delta - opp - agent_positions_map > 0).astype(int)
+                if (np.sum(delta) < 3):
                     next_step_ok = False
+
             if next_step_ok:
                 self.agent_can_move.update({handle: [next_position[0], next_position[1], next_direction, action]})
 
@@ -110,7 +115,7 @@ class DeadLockAvoidanceAgent(Policy):
             b = np.ceil(self.env.get_num_agents() / a)
             for handle in range(self.env.get_num_agents()):
                 plt.subplot(a, b, handle + 1)
-                plt.imshow(self.shortest_distance_agent_map[handle])
+                plt.imshow(shortest_distance_agent_map[handle])
             # plt.colorbar()
             plt.show(block=False)
-            plt.pause(0.001)
+            plt.pause(0.01)
diff --git a/utils/shortest_Distance_walker.py b/utils/shortest_Distance_walker.py
index d69ebcb..bd1d5b3 100644
--- a/utils/shortest_Distance_walker.py
+++ b/utils/shortest_Distance_walker.py
@@ -14,6 +14,7 @@ class ShortestDistanceWalker:
         if num_transitions == 1:
             new_direction = fast_argmax(possible_transitions)
             new_position = get_new_position(position, new_direction)
+
             dist = self.env.distance_map.get()[handle, new_position[0], new_position[1], new_direction]
             return new_position, new_direction, dist, RailEnvActions.MOVE_FORWARD
         else:
@@ -32,9 +33,12 @@ class ShortestDistanceWalker:
                     positions.append(None)
                     directions.append(None)
 
-        a = np.argmin(min_distances)
+        a = self.get_action(handle, min_distances)
         return positions[a], directions[a], min_distances[a], a + 1
 
+    def get_action(self, handle, min_distances):
+        return np.argmin(min_distances)
+
     def callback(self, handle, agent, position, direction, action):
         pass
 
-- 
GitLab