Basic FSM