digraph StateMachine {
    __0 [style="invisible"] ;
    idle [label=<<TABLE BORDER="0"><TR><TD><B>idle</B></TD></TR><HR/><TR><TD>lockPanel, unlockDoor</TD></TR></TABLE>>, shape=box, style=rounded] ;
    active [label=<<TABLE BORDER="0"><TR><TD><B>active</B></TD></TR><HR/><TR><TD>    </TD></TR></TABLE>>, shape=box, style=rounded] ;
    waitingForDraw [label=<<TABLE BORDER="0"><TR><TD><B>waitingForDraw</B></TD></TR><HR/><TR><TD>    </TD></TR></TABLE>>, shape=box, style=rounded] ;
    unlockedPanel [label=<<TABLE BORDER="0"><TR><TD><B>unlockedPanel</B></TD></TR><HR/><TR><TD>unlockPanel, lockDoor</TD></TR></TABLE>>, shape=box, style=rounded] ;
    waitingForLight [label=<<TABLE BORDER="0"><TR><TD><B>waitingForLight</B></TD></TR><HR/><TR><TD>    </TD></TR></TABLE>>, shape=box, style=rounded] ;
    __0 -> idle ;
    idle -> active [label="doorClosed"] ;
    active -> waitingForDraw [label="lightOn"] ;
    active -> waitingForLight [label="drawOpened"] ;
    waitingForDraw -> unlockedPanel [label="drawOpened"] ;
    unlockedPanel -> idle [label="panelClosed"] ;
    waitingForLight -> unlockedPanel [label="lightOn"] ;
    idle -> idle [label="doorOpened"] ;
    active -> idle [label="doorOpened"] ;
    waitingForDraw -> idle [label="doorOpened"] ;
    unlockedPanel -> idle [label="doorOpened"] ;
    waitingForLight -> idle [label="doorOpened"] ;
}
