SELECT state
FROM
abort => nextState ← IF data THEN flag0 ELSE abort;
flag0 => nextState ← IF data THEN flag0 ELSE flag1;
IN [flag1..flag6] => nextState ← IF data THEN flag0 ELSE state.SUCC;
flag7 => nextState ← IF data THEN start00 ELSE abort;
start00 => nextState ← IF data THEN start10 ELSE start11;
start10 => nextState ← IF data THEN start20 ELSE start21;
start11 => nextState ← IF data THEN start20 ELSE start22;
start20 => nextState ← IF data THEN start30 ELSE start31;
start21 => nextState ← IF data THEN start30 ELSE start32;
start22 => nextState ← IF data THEN start30 ELSE start33;
start30 => nextState ← IF data THEN start40 ELSE start41;
start31 => nextState ← IF data THEN start40 ELSE start42;
start32 => nextState ← IF data THEN start40 ELSE start43;
start33 => nextState ← IF data THEN start40 ELSE start44;
start40 => nextState ← IF data THEN start50 ELSE start51;
start41 => nextState ← IF data THEN start50 ELSE start52;
start42 => nextState ← IF data THEN start50 ELSE start53;
start43 => nextState ← IF data THEN start50 ELSE start54;
start44 => nextState ← IF data THEN start50 ELSE start55;
start50 => nextState ← IF data THEN start60 ELSE start61;
start51 => nextState ← IF data THEN start60 ELSE start62;
start52 => nextState ← IF data THEN start60 ELSE start63;
start53 => nextState ← IF data THEN start60 ELSE start64;
start54 => nextState ← IF data THEN start60 ELSE start65;
start55 => nextState ← IF data THEN start50 ELSE flag6; -- Normal idle case
start60 => nextState ← IF data THEN start70 ELSE start71;
start61 => nextState ← IF data THEN start70 ELSE start72;
start62 => nextState ← IF data THEN start70 ELSE start73;
start63 => nextState ← IF data THEN start70 ELSE start74;
start64 => nextState ← IF data THEN start70 ELSE start75;
start65 => nextState ← IF data THEN start60 ELSE abort;
start70 => nextState ← IF data THEN data0 ELSE data1;
start71 => nextState ← IF data THEN data0 ELSE data2;
start72 => nextState ← IF data THEN data0 ELSE data3;
start73 => nextState ← IF data THEN data0 ELSE data4;
start74 => nextState ← IF data THEN data0 ELSE data5;
start75 => nextState ← IF data THEN start70 ELSE abort;
IN [data0..data4] => nextState ← IF data THEN data0 ELSE state.SUCC;
data5 => nextState ← IF data THEN data0 ELSE data6;
data6 => nextState ← IF data THEN flag0 ELSE abort;
ENDCASE => nextState ← abort;