from types import FunctionType
from typing import Tuple
from axelrod._strategy_utils import thue_morse_generator
from axelrod.action import Action
from axelrod.player import Player
lIlIllIIIIIIlIIIlI, IlllIlllllIIIIIlII = Action.C, Action.D
class IllIlIIlIIIIIIIIlI(Player):
    def __init__(
        llIlllIl, llIlIllIlIIIIl: FunctionType, lIIlIIllIIIllIIIll: Tuple = ()
    ) -> None:
        super().__init__()
        llIlllIl.IIIllIlIIlII = llIlIllIlIIIIl(*lIIlIIllIIIllIIIll)
    @staticmethod
    def IllIIIlllI(llIlllIlIl: int) -> Action:
        if llIlllIlIl == 0:
            return IlllIlllllIIIIIlII
        else:
            return lIlIllIIIIIIlIIIlI
    def lIllIllllllIlll(llIlllIl, llllIlIIIIlIIIII: Player) -> Action:
        for llIIlIllIlIl in llIlllIl.IIIllIlIIlII:
            return llIlllIl.IllIIIlllI(llIIlIllIlIl)
    def IllllllIlIIIllIIlllI(llIlllIl):
        IIIlIlIlIlIl = llIlllIl.__dict__.copy()
        del IIIlIlIlIlIl["sequence_generator"]
        return IIIlIlIlIlIl
    def IlllllllllIIlIIlll(llIlllIl, llIllIlIIIIlllIIl):
        llIlllIl.reset()
        llIlllIl.IIlllIlI = llIllIlIIIIlllIIl["_history"]
        llIlllIl.IIIllIllllll = llIllIlIIIIlllIIl["match_attributes"]
        for llIllIllIlI in llIlllIl.history:
            next(llIlllIl.IIIllIlIIlII)