my ($buffer, @output, %states);