/**
 * @file vtrecv.c
 * @brief VT100互換の受信用パーサの実装。
 * @details
 * An implementation of Paul Williams' DEC compatible state machine parser
 * This code is in the public domain.
 *
 * @author Joshua Haberman <joshua@reverberate.org>
 * @author Shinichiro Nakamura : Modified for Natural Tiny Shell (NT-Shell)
 */

#include "vtrecv.h"

/**
 * @brief オリジナルに含まれるLUTを使うかどうかを決定する。
 * @details
 * オリジナルでは、シーケンスの遷移をテーブル参照で実装してあった。
 * 15のステートで取りうる256パターンの入力を全網羅するテーブルである。
 * これは3840個のテーブルデータを持つことになる。
 *
 * テーブル参照はメモリに対してリニアアクセス可能なプロセッサにおいて
 * 固定時間で動作する。テーブル参照のメリットは固定時間での処理である。
 *
 * 一方、新たに実装した方法は、重複するデータが多数存在する事に着目した
 * もので、区間毎に適用するシーケンスを定義したテーブルを用いる。
 * これはテーブルを線形探索するため後方にあるデータになるほど動作は遅い。
 * しかし、コードサイズはオリジナルの全網羅形式のテーブルよりも小さい。
 *
 * @retval 0 使わない。
 * @retval 1 使う。
 */
#define USE_ORIGINAL_LUT (0)

static state_change_t GET_STATE_TABLE(const int state, const int ch);
static vtrecv_action_t GET_ENTRY_ACTIONS(const int state);
static vtrecv_action_t GET_EXIT_ACTIONS(const int state);

static int vtrecv_strlen(const char *s)
{
    const char *p = s;
    int cnt = 0;
    while (*p) {
        cnt++;
        p++;
    }
    return cnt;
}

#if (USE_ORIGINAL_LUT==1)
static const state_change_t STATE_TABLE[15][256] = {
    {  /* VTRECV_STATE_ANYWHERE */
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /*24 */  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        0,
        /*26 */  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*27 */  0                                | (VTRECV_STATE_ESCAPE              << 4),
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /*128*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*129*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*130*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*131*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*132*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*133*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*134*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*135*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*136*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*137*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*138*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*139*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*140*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*141*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*142*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*143*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*144*/  0                                | (VTRECV_STATE_DCS_ENTRY           << 4),
        /*145*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*146*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*147*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*148*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*149*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*150*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*151*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*152*/  0                                | (VTRECV_STATE_SOS_PM_APC_STRING   << 4),
        /*153*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*154*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*155*/  0                                | (VTRECV_STATE_CSI_ENTRY           << 4),
        /*156*/  VTRECV_ACTION_EXECUTE            | (VTRECV_STATE_GROUND              << 4),
        /*157*/  0                                | (VTRECV_STATE_OSC_STRING          << 4),
        /*158*/  0                                | (VTRECV_STATE_SOS_PM_APC_STRING   << 4),
        /*159*/  0                                | (VTRECV_STATE_SOS_PM_APC_STRING   << 4),
    },
    {  /* VTRECV_STATE_CSI_ENTRY */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*48 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*49 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*50 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*51 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*52 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*53 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*54 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*55 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*56 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*57 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*58 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*59 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_CSI_PARAM           << 4),
        /*60 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_PARAM           << 4),
        /*61 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_PARAM           << 4),
        /*62 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_PARAM           << 4),
        /*63 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_PARAM           << 4),
        /*64 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*65 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*66 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*67 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*68 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*69 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*70 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*71 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*72 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*73 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*74 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*75 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*76 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*77 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*78 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*79 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*80 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*81 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*82 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*83 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*84 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*85 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*86 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*87 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*88 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*89 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*90 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*91 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*92 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*93 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*94 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*95 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*96 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*97 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*98 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*99 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*100*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*101*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*102*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*103*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*104*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*105*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*106*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*107*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*108*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*109*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*110*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*111*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*112*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*113*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*114*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*115*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*116*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*117*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*118*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*119*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*120*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*121*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*122*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*123*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*124*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*125*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*126*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_CSI_IGNORE */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*33 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*34 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*35 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*36 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*37 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*38 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*39 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*40 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*41 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*42 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*43 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*44 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*45 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*46 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*47 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*48 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*49 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*50 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*51 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*52 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*53 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*54 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*55 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*56 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*57 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*58 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*59 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*60 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*61 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*62 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*63 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*64 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*65 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*66 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*67 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*68 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*69 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*70 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*71 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*72 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*73 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*74 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*75 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*76 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*77 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*78 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*79 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*80 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*81 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*82 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*83 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*84 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*85 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*86 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*87 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*88 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*89 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*90 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*91 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*92 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*93 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*94 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*95 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*96 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*97 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*98 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*99 */  0                                | (VTRECV_STATE_GROUND              << 4),
        /*100*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*101*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*102*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*103*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*104*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*105*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*106*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*107*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*108*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*109*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*110*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*111*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*112*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*113*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*114*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*115*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*116*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*117*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*118*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*119*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*120*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*121*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*122*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*123*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*124*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*125*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*126*/  0                                | (VTRECV_STATE_GROUND              << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_CSI_INTERMEDIATE */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*48 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*49 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*50 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*51 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*52 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*53 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*54 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*55 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*56 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*57 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*58 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*59 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*60 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*61 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*62 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*63 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*64 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*65 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*66 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*67 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*68 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*69 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*70 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*71 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*72 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*73 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*74 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*75 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*76 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*77 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*78 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*79 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*80 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*81 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*82 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*83 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*84 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*85 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*86 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*87 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*88 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*89 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*90 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*91 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*92 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*93 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*94 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*95 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*96 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*97 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*98 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*99 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*100*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*101*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*102*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*103*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*104*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*105*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*106*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*107*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*108*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*109*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*110*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*111*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*112*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*113*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*114*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*115*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*116*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*117*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*118*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*119*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*120*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*121*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*122*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*123*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*124*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*125*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*126*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_CSI_PARAM */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_CSI_INTERMEDIATE    << 4),
        /*48 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*49 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*50 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*51 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*52 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*53 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*54 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*55 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*56 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*57 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*58 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*59 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*60 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*61 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*62 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*63 */  0                                | (VTRECV_STATE_CSI_IGNORE          << 4),
        /*64 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*65 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*66 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*67 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*68 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*69 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*70 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*71 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*72 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*73 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*74 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*75 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*76 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*77 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*78 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*79 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*80 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*81 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*82 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*83 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*84 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*85 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*86 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*87 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*88 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*89 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*90 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*91 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*92 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*93 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*94 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*95 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*96 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*97 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*98 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*99 */  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*100*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*101*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*102*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*103*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*104*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*105*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*106*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*107*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*108*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*109*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*110*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*111*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*112*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*113*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*114*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*115*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*116*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*117*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*118*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*119*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*120*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*121*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*122*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*123*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*124*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*125*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*126*/  VTRECV_ACTION_CSI_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_DCS_ENTRY */
        /*0  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*1  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*2  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*3  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*4  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*5  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*6  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*7  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*8  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*9  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*10 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*11 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*12 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*13 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*14 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*15 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*16 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*17 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*18 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*19 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*20 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*21 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*22 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*23 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*29 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*30 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*31 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*48 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*49 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*50 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*51 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*52 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*53 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*54 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*55 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*56 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*57 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*58 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*59 */  VTRECV_ACTION_PARAM              | (VTRECV_STATE_DCS_PARAM           << 4),
        /*60 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_PARAM           << 4),
        /*61 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_PARAM           << 4),
        /*62 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_PARAM           << 4),
        /*63 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_PARAM           << 4),
        /*64 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*65 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*66 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*67 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*68 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*69 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*70 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*71 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*72 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*73 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*74 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*75 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*76 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*77 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*78 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*79 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*80 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*81 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*82 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*83 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*84 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*85 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*86 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*87 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*88 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*89 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*90 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*91 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*92 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*93 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*94 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*95 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*96 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*97 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*98 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*99 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*100*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*101*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*102*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*103*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*104*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*105*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*106*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*107*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*108*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*109*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*110*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*111*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*112*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*113*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*114*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*115*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*116*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*117*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*118*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*119*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*120*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*121*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*122*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*123*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*124*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*125*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*126*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_DCS_IGNORE */
        /*0  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*1  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*2  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*3  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*4  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*5  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*6  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*7  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*8  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*9  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*10 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*11 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*12 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*13 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*14 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*15 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*16 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*17 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*18 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*19 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*20 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*21 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*22 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*23 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*29 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*30 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*31 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*32 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*33 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*34 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*35 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*36 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*37 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*38 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*39 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*40 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*41 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*42 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*43 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*44 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*45 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*46 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*47 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*48 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*49 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*50 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*51 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*52 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*53 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*54 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*55 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*56 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*57 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*58 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*59 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*60 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*61 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*62 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*63 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*64 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*65 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*66 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*67 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*68 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*69 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*70 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*71 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*72 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*73 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*74 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*75 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*76 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*77 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*78 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*79 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*80 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*81 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*82 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*83 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*84 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*85 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*86 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*87 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*88 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*89 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*90 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*91 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*92 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*93 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*94 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*95 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*96 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*97 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*98 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*99 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*100*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*101*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*102*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*103*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*104*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*105*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*106*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*107*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*108*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*109*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*110*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*111*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*112*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*113*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*114*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*115*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*116*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*117*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*118*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*119*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*120*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*121*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*122*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*123*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*124*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*125*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*126*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /*156*/  0                                | (VTRECV_STATE_GROUND              << 4),
    },
    {  /* VTRECV_STATE_DCS_INTERMEDIATE */
        /*0  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*1  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*2  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*3  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*4  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*5  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*6  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*7  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*8  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*9  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*10 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*11 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*12 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*13 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*14 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*15 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*16 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*17 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*18 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*19 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*20 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*21 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*22 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*23 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*29 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*30 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*31 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*48 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*49 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*50 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*51 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*52 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*53 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*54 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*55 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*56 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*57 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*58 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*59 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*60 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*61 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*62 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*63 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*64 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*65 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*66 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*67 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*68 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*69 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*70 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*71 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*72 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*73 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*74 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*75 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*76 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*77 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*78 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*79 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*80 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*81 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*82 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*83 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*84 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*85 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*86 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*87 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*88 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*89 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*90 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*91 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*92 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*93 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*94 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*95 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*96 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*97 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*98 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*99 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*100*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*101*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*102*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*103*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*104*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*105*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*106*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*107*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*108*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*109*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*110*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*111*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*112*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*113*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*114*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*115*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*116*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*117*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*118*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*119*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*120*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*121*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*122*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*123*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*124*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*125*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*126*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_DCS_PARAM */
        /*0  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*1  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*2  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*3  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*4  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*5  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*6  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*7  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*8  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*9  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*10 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*11 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*12 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*13 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*14 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*15 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*16 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*17 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*18 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*19 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*20 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*21 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*22 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*23 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*29 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*30 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*31 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_DCS_INTERMEDIATE    << 4),
        /*48 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*49 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*50 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*51 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*52 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*53 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*54 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*55 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*56 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*57 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*58 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*59 */  VTRECV_ACTION_PARAM              | (0                                 << 4),
        /*60 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*61 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*62 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*63 */  0                                | (VTRECV_STATE_DCS_IGNORE          << 4),
        /*64 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*65 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*66 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*67 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*68 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*69 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*70 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*71 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*72 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*73 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*74 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*75 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*76 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*77 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*78 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*79 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*80 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*81 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*82 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*83 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*84 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*85 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*86 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*87 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*88 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*89 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*90 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*91 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*92 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*93 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*94 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*95 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*96 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*97 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*98 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*99 */  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*100*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*101*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*102*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*103*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*104*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*105*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*106*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*107*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*108*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*109*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*110*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*111*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*112*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*113*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*114*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*115*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*116*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*117*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*118*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*119*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*120*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*121*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*122*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*123*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*124*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*125*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*126*/  0                                | (VTRECV_STATE_DCS_PASSTHROUGH     << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_DCS_PASSTHROUGH */
        /*0  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*1  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*2  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*3  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*4  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*5  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*6  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*7  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*8  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*9  */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*10 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*11 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*12 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*13 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*14 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*15 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*16 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*17 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*18 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*19 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*20 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*21 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*22 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*23 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*29 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*30 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*31 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*32 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*33 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*34 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*35 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*36 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*37 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*38 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*39 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*40 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*41 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*42 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*43 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*44 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*45 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*46 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*47 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*48 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*49 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*50 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*51 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*52 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*53 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*54 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*55 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*56 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*57 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*58 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*59 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*60 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*61 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*62 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*63 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*64 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*65 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*66 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*67 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*68 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*69 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*70 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*71 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*72 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*73 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*74 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*75 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*76 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*77 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*78 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*79 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*80 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*81 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*82 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*83 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*84 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*85 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*86 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*87 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*88 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*89 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*90 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*91 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*92 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*93 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*94 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*95 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*96 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*97 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*98 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*99 */  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*100*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*101*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*102*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*103*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*104*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*105*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*106*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*107*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*108*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*109*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*110*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*111*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*112*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*113*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*114*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*115*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*116*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*117*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*118*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*119*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*120*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*121*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*122*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*123*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*124*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*125*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*126*/  VTRECV_ACTION_PUT                | (0                                 << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /*156*/  0                                | (VTRECV_STATE_GROUND              << 4),
    },
    {  /* VTRECV_STATE_ESCAPE */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4),
        /*48 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*49 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*50 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*51 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*52 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*53 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*54 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*55 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*56 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*57 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*58 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*59 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*60 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*61 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*62 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*63 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*64 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*65 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*66 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*67 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*68 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*69 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*70 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*71 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*72 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*73 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*74 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*75 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*76 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*77 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*78 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*79 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*80 */  0                                | (VTRECV_STATE_DCS_ENTRY           << 4),
        /*81 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*82 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*83 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*84 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*85 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*86 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*87 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*88 */  0                                | (VTRECV_STATE_SOS_PM_APC_STRING   << 4),
        /*89 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*90 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*91 */  0                                | (VTRECV_STATE_CSI_ENTRY           << 4),
        /*92 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*93 */  0                                | (VTRECV_STATE_OSC_STRING          << 4),
        /*94 */  0                                | (VTRECV_STATE_SOS_PM_APC_STRING   << 4),
        /*95 */  0                                | (VTRECV_STATE_SOS_PM_APC_STRING   << 4),
        /*96 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*97 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*98 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*99 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*100*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*101*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*102*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*103*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*104*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*105*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*106*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*107*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*108*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*109*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*110*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*111*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*112*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*113*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*114*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*115*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*116*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*117*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*118*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*119*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*120*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*121*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*122*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*123*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*124*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*125*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*126*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_ESCAPE_INTERMEDIATE */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*33 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*34 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*35 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*36 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*37 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*38 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*39 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*40 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*41 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*42 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*43 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*44 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*45 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*46 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*47 */  VTRECV_ACTION_COLLECT            | (0                                 << 4),
        /*48 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*49 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*50 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*51 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*52 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*53 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*54 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*55 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*56 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*57 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*58 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*59 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*60 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*61 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*62 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*63 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*64 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*65 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*66 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*67 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*68 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*69 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*70 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*71 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*72 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*73 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*74 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*75 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*76 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*77 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*78 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*79 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*80 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*81 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*82 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*83 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*84 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*85 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*86 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*87 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*88 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*89 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*90 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*91 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*92 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*93 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*94 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*95 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*96 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*97 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*98 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*99 */  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*100*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*101*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*102*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*103*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*104*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*105*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*106*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*107*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*108*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*109*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*110*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*111*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*112*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*113*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*114*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*115*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*116*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*117*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*118*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*119*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*120*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*121*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*122*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*123*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*124*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*125*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*126*/  VTRECV_ACTION_ESC_DISPATCH       | (VTRECV_STATE_GROUND              << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
    },
    {  /* VTRECV_STATE_GROUND */
        /*0  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*1  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*2  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*3  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*4  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*5  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*6  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*7  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*8  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*9  */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*10 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*11 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*12 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*13 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*14 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*15 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*16 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*17 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*18 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*19 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*20 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*21 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*22 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*23 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*29 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*30 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*31 */  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*32 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*33 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*34 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*35 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*36 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*37 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*38 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*39 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*40 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*41 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*42 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*43 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*44 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*45 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*46 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*47 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*48 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*49 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*50 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*51 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*52 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*53 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*54 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*55 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*56 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*57 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*58 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*59 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*60 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*61 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*62 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*63 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*64 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*65 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*66 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*67 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*68 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*69 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*70 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*71 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*72 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*73 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*74 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*75 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*76 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*77 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*78 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*79 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*80 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*81 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*82 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*83 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*84 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*85 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*86 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*87 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*88 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*89 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*90 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*91 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*92 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*93 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*94 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*95 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*96 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*97 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*98 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*99 */  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*100*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*101*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*102*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*103*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*104*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*105*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*106*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*107*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*108*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*109*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*110*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*111*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*112*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*113*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*114*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*115*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*116*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*117*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*118*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*119*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*120*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*121*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*122*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*123*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*124*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*125*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*126*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*127*/  VTRECV_ACTION_PRINT              | (0                                 << 4),
        /*128*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*129*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*130*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*131*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*132*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*133*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*134*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*135*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*136*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*137*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*138*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*139*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*140*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*141*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*142*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*143*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*145*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*146*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*147*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*148*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*149*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*150*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*151*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*152*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*153*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        /*154*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
        0,
        /*156*/  VTRECV_ACTION_EXECUTE            | (0                                 << 4),
    },
    {  /* VTRECV_STATE_OSC_STRING */
        /*0  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*1  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*2  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*3  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*4  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*5  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*6  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*7  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*8  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*9  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*10 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*11 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*12 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*13 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*14 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*15 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*16 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*17 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*18 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*19 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*20 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*21 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*22 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*23 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*29 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*30 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*31 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*32 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*33 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*34 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*35 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*36 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*37 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*38 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*39 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*40 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*41 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*42 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*43 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*44 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*45 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*46 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*47 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*48 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*49 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*50 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*51 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*52 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*53 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*54 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*55 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*56 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*57 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*58 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*59 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*60 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*61 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*62 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*63 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*64 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*65 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*66 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*67 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*68 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*69 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*70 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*71 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*72 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*73 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*74 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*75 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*76 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*77 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*78 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*79 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*80 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*81 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*82 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*83 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*84 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*85 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*86 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*87 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*88 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*89 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*90 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*91 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*92 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*93 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*94 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*95 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*96 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*97 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*98 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*99 */  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*100*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*101*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*102*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*103*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*104*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*105*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*106*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*107*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*108*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*109*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*110*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*111*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*112*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*113*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*114*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*115*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*116*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*117*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*118*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*119*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*120*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*121*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*122*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*123*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*124*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*125*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*126*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        /*127*/  VTRECV_ACTION_OSC_PUT            | (0                                 << 4),
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /*156*/  0                                | (VTRECV_STATE_GROUND              << 4),
    },
    {  /* VTRECV_STATE_SOS_PM_APC_STRING */
        /*0  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*1  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*2  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*3  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*4  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*5  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*6  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*7  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*8  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*9  */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*10 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*11 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*12 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*13 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*14 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*15 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*16 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*17 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*18 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*19 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*20 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*21 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*22 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*23 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        /*25 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        /*28 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*29 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*30 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*31 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*32 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*33 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*34 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*35 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*36 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*37 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*38 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*39 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*40 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*41 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*42 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*43 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*44 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*45 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*46 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*47 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*48 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*49 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*50 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*51 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*52 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*53 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*54 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*55 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*56 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*57 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*58 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*59 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*60 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*61 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*62 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*63 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*64 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*65 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*66 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*67 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*68 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*69 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*70 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*71 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*72 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*73 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*74 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*75 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*76 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*77 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*78 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*79 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*80 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*81 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*82 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*83 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*84 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*85 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*86 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*87 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*88 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*89 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*90 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*91 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*92 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*93 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*94 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*95 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*96 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*97 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*98 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*99 */  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*100*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*101*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*102*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*103*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*104*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*105*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*106*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*107*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*108*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*109*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*110*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*111*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*112*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*113*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*114*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*115*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*116*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*117*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*118*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*119*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*120*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*121*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*122*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*123*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*124*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*125*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*126*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        /*127*/  VTRECV_ACTION_IGNORE             | (0                                 << 4),
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        /*156*/  0                                | (VTRECV_STATE_GROUND              << 4),
    },
};
#else
typedef struct {
    int state;
    unsigned char code_start;
    unsigned char code_end;
    state_change_t state_change;
} state_table_t;

static const state_table_t table[] = {
    /*
     * ANYWHERE
     */
    {VTRECV_STATE_ANYWHERE,             0x18, 0x18, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x1a, 0x1a, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x80, 0x8f, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x91, 0x97, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x99, 0x99, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x9a, 0x9a, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x9c, 0x9c, VTRECV_ACTION_EXECUTE       | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x1b, 0x1b, 0                           | (VTRECV_STATE_ESCAPE              << 4)},
    {VTRECV_STATE_ANYWHERE,             0x98, 0x98, 0                           | (VTRECV_STATE_SOS_PM_APC_STRING   << 4)},
    {VTRECV_STATE_ANYWHERE,             0x9e, 0x9e, 0                           | (VTRECV_STATE_SOS_PM_APC_STRING   << 4)},
    {VTRECV_STATE_ANYWHERE,             0x9f, 0x9f, 0                           | (VTRECV_STATE_SOS_PM_APC_STRING   << 4)},
    {VTRECV_STATE_ANYWHERE,             0x90, 0x90, 0                           | (VTRECV_STATE_DCS_ENTRY           << 4)},
    {VTRECV_STATE_ANYWHERE,             0x9d, 0x9d, 0                           | (VTRECV_STATE_OSC_STRING          << 4)},
    {VTRECV_STATE_ANYWHERE,             0x9b, 0x9b, 0                           | (VTRECV_STATE_CSI_ENTRY           << 4)},
    /*
     * GROUND
     */
    {VTRECV_STATE_GROUND,               0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_GROUND,               0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_GROUND,               0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_GROUND,               0x20, 0x7f, VTRECV_ACTION_PRINT         | (0                                << 4)},
    {VTRECV_STATE_GROUND,               0x80, 0x8f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_GROUND,               0x91, 0x9a, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_GROUND,               0x9c, 0x9c, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    /*
     * ESCAPE
     */
    {VTRECV_STATE_ESCAPE,               0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE,               0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE,               0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE,               0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_ESCAPE,               0x20, 0x2f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_ESCAPE_INTERMEDIATE << 4)},
    {VTRECV_STATE_ESCAPE,               0x30, 0x4f, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ESCAPE,               0x51, 0x57, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ESCAPE,               0x59, 0x59, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ESCAPE,               0x5a, 0x5a, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ESCAPE,               0x5c, 0x5c, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ESCAPE,               0x60, 0x7e, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    {VTRECV_STATE_ESCAPE,               0x5b, 0x5b, 0                           | (VTRECV_STATE_CSI_ENTRY           << 4)},
    {VTRECV_STATE_ESCAPE,               0x5d, 0x5d, 0                           | (VTRECV_STATE_OSC_STRING          << 4)},
    {VTRECV_STATE_ESCAPE,               0x50, 0x50, 0                           | (VTRECV_STATE_DCS_ENTRY           << 4)},
    {VTRECV_STATE_ESCAPE,               0x58, 0x58, 0                           | (VTRECV_STATE_SOS_PM_APC_STRING   << 4)},
    {VTRECV_STATE_ESCAPE,               0x5e, 0x5e, 0                           | (VTRECV_STATE_SOS_PM_APC_STRING   << 4)},
    {VTRECV_STATE_ESCAPE,               0x5f, 0x5f, 0                           | (VTRECV_STATE_SOS_PM_APC_STRING   << 4)},
    /*
     * ESCAPE_INTERMEDIATE
     */
    {VTRECV_STATE_ESCAPE_INTERMEDIATE,  0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE_INTERMEDIATE,  0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE_INTERMEDIATE,  0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE_INTERMEDIATE,  0x20, 0x2f, VTRECV_ACTION_COLLECT       | (0                                << 4)},
    {VTRECV_STATE_ESCAPE_INTERMEDIATE,  0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_ESCAPE_INTERMEDIATE,  0x30, 0x7e, VTRECV_ACTION_ESC_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    /*
     * CSI_ENTRY
     */
    {VTRECV_STATE_CSI_ENTRY,            0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x20, 0x2f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_CSI_INTERMEDIATE    << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x3a, 0x3a, 0                           | (VTRECV_STATE_CSI_IGNORE          << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x30, 0x39, VTRECV_ACTION_PARAM         | (VTRECV_STATE_CSI_PARAM           << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x3b, 0x3b, VTRECV_ACTION_PARAM         | (VTRECV_STATE_CSI_PARAM           << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x3c, 0x3f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_CSI_PARAM           << 4)},
    {VTRECV_STATE_CSI_ENTRY,            0x40, 0x7e, VTRECV_ACTION_CSI_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    /*
     * CSI_IGNORE
     */
    {VTRECV_STATE_CSI_IGNORE,           0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_IGNORE,           0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_IGNORE,           0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_IGNORE,           0x20, 0x3f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_CSI_IGNORE,           0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_CSI_IGNORE,           0x40, 0x7e, 0                           | (VTRECV_STATE_GROUND              << 4)},
    /*
     * CSI_PARAM
     */
    {VTRECV_STATE_CSI_PARAM,            0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x30, 0x39, VTRECV_ACTION_PARAM         | (0                                << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x3b, 0x3b, VTRECV_ACTION_PARAM         | (0                                << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x3a, 0x3a, 0                           | (VTRECV_STATE_CSI_IGNORE          << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x3c, 0x3f, 0                           | (VTRECV_STATE_CSI_IGNORE          << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x20, 0x2f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_CSI_INTERMEDIATE    << 4)},
    {VTRECV_STATE_CSI_PARAM,            0x40, 0x7e, VTRECV_ACTION_CSI_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    /*
     * CSI_INTERMEDIATE
     */
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x00, 0x17, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x19, 0x19, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x1c, 0x1f, VTRECV_ACTION_EXECUTE       | (0                                << 4)},
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x20, 0x2f, VTRECV_ACTION_COLLECT       | (0                                << 4)},
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x30, 0x3f, 0                           | (VTRECV_STATE_CSI_IGNORE          << 4)},
    {VTRECV_STATE_CSI_INTERMEDIATE,     0x40, 0x7e, VTRECV_ACTION_CSI_DISPATCH  | (VTRECV_STATE_GROUND              << 4)},
    /*
     * DCS_ENTRY
     */
    {VTRECV_STATE_DCS_ENTRY,            0x00, 0x17, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x19, 0x19, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x1c, 0x1f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x3a, 0x3a, 0                           | (VTRECV_STATE_DCS_IGNORE          << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x20, 0x2f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_DCS_INTERMEDIATE    << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x30, 0x39, VTRECV_ACTION_PARAM         | (VTRECV_STATE_DCS_PARAM           << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x3b, 0x3b, VTRECV_ACTION_PARAM         | (VTRECV_STATE_DCS_PARAM           << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x3c, 0x3f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_DCS_PARAM           << 4)},
    {VTRECV_STATE_DCS_ENTRY,            0x40, 0x7e, 0                           | (VTRECV_STATE_DCS_PASSTHROUGH     << 4)},
    /*
     * DCS_INTERMEDIATE
     */
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x00, 0x17, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x19, 0x19, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x1c, 0x1f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x20, 0x2f, VTRECV_ACTION_COLLECT       | (0                                << 4)},
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x30, 0x3f, 0                           | (VTRECV_STATE_DCS_IGNORE          << 4)},
    {VTRECV_STATE_DCS_INTERMEDIATE,     0x40, 0x7e, 0                           | (VTRECV_STATE_DCS_PASSTHROUGH     << 4)},
    /*
     * DCS_IGNORE
     */
    {VTRECV_STATE_DCS_IGNORE,           0x00, 0x17, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_IGNORE,           0x19, 0x19, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_IGNORE,           0x1c, 0x1f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_IGNORE,           0x20, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_IGNORE,           0x9c, 0x9c, 0                           | (VTRECV_STATE_GROUND              << 4)},
    /*
     * DCS_PARAM
     */
    {VTRECV_STATE_DCS_PARAM,            0x00, 0x17, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x19, 0x19, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x1c, 0x1f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x30, 0x39, VTRECV_ACTION_PARAM         | (0                                << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x3b, 0x3b, VTRECV_ACTION_PARAM         | (0                                << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x3a, 0x3a, 0                           | (VTRECV_STATE_DCS_IGNORE          << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x3c, 0x3f, 0                           | (VTRECV_STATE_DCS_IGNORE          << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x20, 0x2f, VTRECV_ACTION_COLLECT       | (VTRECV_STATE_DCS_INTERMEDIATE    << 4)},
    {VTRECV_STATE_DCS_PARAM,            0x40, 0x7e, 0                           | (VTRECV_STATE_DCS_PASSTHROUGH     << 4)},
    /*
     * DCS_PASSTHROUGH
     */
    {VTRECV_STATE_DCS_PASSTHROUGH,      0x00, 0x17, VTRECV_ACTION_PUT           | (0                                << 4)},
    {VTRECV_STATE_DCS_PASSTHROUGH,      0x19, 0x19, VTRECV_ACTION_PUT           | (0                                << 4)},
    {VTRECV_STATE_DCS_PASSTHROUGH,      0x1c, 0x1f, VTRECV_ACTION_PUT           | (0                                << 4)},
    {VTRECV_STATE_DCS_PASSTHROUGH,      0x20, 0x7e, VTRECV_ACTION_PUT           | (0                                << 4)},
    {VTRECV_STATE_DCS_PASSTHROUGH,      0x7f, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_DCS_PASSTHROUGH,      0x9c, 0x9c, 0                           | (VTRECV_STATE_GROUND              << 4)},
    /*
     * SOS_PM_APC_STRING
     */
    {VTRECV_STATE_SOS_PM_APC_STRING,    0x00, 0x17, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_SOS_PM_APC_STRING,    0x19, 0x19, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_SOS_PM_APC_STRING,    0x1c, 0x1f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_SOS_PM_APC_STRING,    0x20, 0x7f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_SOS_PM_APC_STRING,    0x9c, 0x9c, 0                           | (VTRECV_STATE_GROUND              << 4)},
    /*
     * OSC_STRING
     */
    {VTRECV_STATE_OSC_STRING,           0x00, 0x17, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_OSC_STRING,           0x19, 0x19, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_OSC_STRING,           0x1c, 0x1f, VTRECV_ACTION_IGNORE        | (0                                << 4)},
    {VTRECV_STATE_OSC_STRING,           0x20, 0x7f, VTRECV_ACTION_OSC_PUT       | (0                                << 4)},
    {VTRECV_STATE_OSC_STRING,           0x9c, 0x9c, 0                           | (VTRECV_STATE_GROUND              << 4)},
};
#endif

static const vtrecv_action_t ENTRY_ACTIONS[] = {
    (vtrecv_action_t)0  /* none for ANYWHERE */,
    VTRECV_ACTION_CLEAR, /* CSI_ENTRY */
    (vtrecv_action_t)0  /* none for CSI_IGNORE */,
    (vtrecv_action_t)0  /* none for CSI_INTERMEDIATE */,
    (vtrecv_action_t)0  /* none for CSI_PARAM */,
    VTRECV_ACTION_CLEAR, /* DCS_ENTRY */
    (vtrecv_action_t)0  /* none for DCS_IGNORE */,
    (vtrecv_action_t)0  /* none for DCS_INTERMEDIATE */,
    (vtrecv_action_t)0  /* none for DCS_PARAM */,
    VTRECV_ACTION_HOOK, /* DCS_PASSTHROUGH */
    VTRECV_ACTION_CLEAR, /* ESCAPE */
    (vtrecv_action_t)0  /* none for ESCAPE_INTERMEDIATE */,
    (vtrecv_action_t)0  /* none for GROUND */,
    VTRECV_ACTION_OSC_START, /* OSC_STRING */
    (vtrecv_action_t)0  /* none for SOS_PM_APC_STRING */,
};

static const vtrecv_action_t EXIT_ACTIONS[] = {
    (vtrecv_action_t)0  /* none for ANYWHERE */,
    (vtrecv_action_t)0  /* none for CSI_ENTRY */,
    (vtrecv_action_t)0  /* none for CSI_IGNORE */,
    (vtrecv_action_t)0  /* none for CSI_INTERMEDIATE */,
    (vtrecv_action_t)0  /* none for CSI_PARAM */,
    (vtrecv_action_t)0  /* none for DCS_ENTRY */,
    (vtrecv_action_t)0  /* none for DCS_IGNORE */,
    (vtrecv_action_t)0  /* none for DCS_INTERMEDIATE */,
    (vtrecv_action_t)0  /* none for DCS_PARAM */,
    VTRECV_ACTION_UNHOOK, /* DCS_PASSTHROUGH */
    (vtrecv_action_t)0  /* none for ESCAPE */,
    (vtrecv_action_t)0  /* none for ESCAPE_INTERMEDIATE */,
    (vtrecv_action_t)0  /* none for GROUND */,
    VTRECV_ACTION_OSC_END, /* OSC_STRING */
    (vtrecv_action_t)0  /* none for SOS_PM_APC_STRING */,
};

state_change_t GET_STATE_TABLE(const int state, const int ch)
{
#if (USE_ORIGINAL_LUT==1)
    /*
     * テーブル参照による実現。
     * 固定時間で動作するが、コードサイズは比較的大きい。
     */
    return STATE_TABLE[state][ch];
#else
    /*
     * プログラムによる線形探索バージョン。
     * テーブルの後方にあるデータになるほど動作は遅い。
     * コードサイズはテーブル参照よりも小さい。
     */
    const int N = sizeof(table) / sizeof(table[0]);
    const state_table_t *tp = &table[0];
    int i;
    for (i = 0; i < N; i++) {
        if (tp->state == state) {
            if ((tp->code_start <= ch) && (ch <= tp->code_end)) {
                return tp->state_change;
            }
        }
        tp++;
    }
    return 0;
#endif
}

vtrecv_action_t GET_ENTRY_ACTIONS(const int state)
{
    return ENTRY_ACTIONS[state];
}

vtrecv_action_t GET_EXIT_ACTIONS(const int state)
{
    return EXIT_ACTIONS[state];
}

void vtrecv_init(vtrecv_t *parser, vtrecv_callback_t cb)
{
    parser->state                 = VTRECV_STATE_GROUND;
    parser->intermediate_chars[0] = '\0';
    parser->num_params            = 0;
    parser->ignore_flagged        = 0;
    parser->cb                    = cb;
}

static void do_action(vtrecv_t *parser, vtrecv_action_t action, char ch)
{
    /* Some actions we handle internally (like parsing parameters), others
     * we hand to our client for processing */

    switch(action) {
        case VTRECV_ACTION_PRINT:
        case VTRECV_ACTION_EXECUTE:
        case VTRECV_ACTION_HOOK:
        case VTRECV_ACTION_PUT:
        case VTRECV_ACTION_OSC_START:
        case VTRECV_ACTION_OSC_PUT:
        case VTRECV_ACTION_OSC_END:
        case VTRECV_ACTION_UNHOOK:
        case VTRECV_ACTION_CSI_DISPATCH:
        case VTRECV_ACTION_ESC_DISPATCH:
            parser->cb(parser, action, ch);
            break;

        case VTRECV_ACTION_IGNORE:
            /* do nothing */
            break;

        case VTRECV_ACTION_COLLECT:
            {
                /* Append the character to the intermediate params */
                int num_intermediate_chars = vtrecv_strlen((char*)parser->intermediate_chars);

                if(num_intermediate_chars + 1 > MAX_INTERMEDIATE_CHARS)
                    parser->ignore_flagged = 1;
                else
                    parser->intermediate_chars[num_intermediate_chars++] = ch;

                break;
            }

        case VTRECV_ACTION_PARAM:
            {
                /* process the param character */
                if(ch == ';')
                {
                    parser->num_params += 1;
                    parser->params[parser->num_params-1] = 0;
                }
                else
                {
                    /* the character is a digit */
                    int current_param;

                    if(parser->num_params == 0)
                    {
                        parser->num_params = 1;
                        parser->params[0]  = 0;
                    }

                    current_param = parser->num_params - 1;
                    parser->params[current_param] *= 10;
                    parser->params[current_param] += (ch - '0');
                }

                break;
            }

        case VTRECV_ACTION_CLEAR:
            parser->intermediate_chars[0] = '\0';
            parser->num_params            = 0;
            parser->ignore_flagged        = 0;
            break;

        default:
            // Internal error: Unknown action.
            break;
    }
}

static void do_state_change(vtrecv_t *parser, state_change_t change, char ch)
{
    /* A state change is an action and/or a new state to transition to. */

    vtrecv_state_t  new_state = STATE(change);
    vtrecv_action_t action    = ACTION(change);


    if(new_state)
    {
        /* Perform up to three actions:
         *   1. the exit action of the old state
         *   2. the action associated with the transition
         *   3. the entry actionk of the new action
         */

        vtrecv_action_t exit_action = GET_EXIT_ACTIONS(parser->state);
        vtrecv_action_t entry_action = GET_ENTRY_ACTIONS(new_state);

        if(exit_action)
            do_action(parser, exit_action, 0);

        if(action)
            do_action(parser, action, ch);

        if(entry_action)
            do_action(parser, entry_action, 0);

        parser->state = new_state;
    }
    else
    {
        do_action(parser, action, ch);
    }
}

void vtrecv_execute(vtrecv_t *parser, unsigned char *data, int len)
{
    int i;
    for (i = 0; i < len; i++) {
        unsigned char ch = data[i];

        /* If a transition is defined from the "anywhere" state, always
         * use that.  Otherwise use the transition from the current state. */

        state_change_t change = GET_STATE_TABLE(VTRECV_STATE_ANYWHERE, ch);

        if(!change)
            change = GET_STATE_TABLE(parser->state, ch);

        do_state_change(parser, change, data[i]);
    }
}

