def fromBytes(bytes):
        trainer_name = trainer_name_decode(bytes[0:11])

        meta = pokemon_type_block_decode(bytes[11:19])

        pokemon = []

        byte_idx = 19
        for i in range(meta[0]):
            pokemon.append(Pokemon.fromBytes(bytes[byte_idx:byte_idx+44]))
            byte_idx += 44

        byte_idx = 283
        for i in range(meta[0]):
            pokemon[i].originalTrainerName = trainer_name_decode(bytes[byte_idx:byte_idx+11])
            byte_idx += 11

        byte_idx = 349
        for i in range(meta[0]):
            pokemon[i].setNickname(bytes[byte_idx:byte_idx+11])
            byte_idx += 11

        return PokemonTeam(trainer_name, pokemon)
 def trade_pokemon(self, idx, pokemon):
     self.pokemon[idx] = Pokemon.fromBytes(pokemon.toBytes())