diff --git a/include/common/tmsg.h b/include/common/tmsg.h index 8aaf6bfc15c428c4245b818f9502b0cf490cb3e8..d7409da126b2044f8216a08c6a90e58fab4a4ad7 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -1165,6 +1165,9 @@ typedef struct { int32_t vgId; int8_t syncState; int8_t syncRestore; + int64_t syncTerm; + int64_t roleTimeMs; + int64_t startTimeMs; int8_t syncCanRead; int64_t cacheUsage; int64_t numOfTables; @@ -1181,9 +1184,9 @@ typedef struct { } SVnodeLoad; typedef struct { - int8_t syncState; - int8_t syncRestore; + int8_t syncState; int64_t syncTerm; + int8_t syncRestore; int64_t roleTimeMs; } SMnodeLoad; diff --git a/include/libs/sync/sync.h b/include/libs/sync/sync.h index 88ccf562c72eb346fd7901865f9d44229e082c74..8844145652b4cfde0665293743e8b810cee11324 100644 --- a/include/libs/sync/sync.h +++ b/include/libs/sync/sync.h @@ -241,6 +241,7 @@ typedef struct SSyncState { bool canRead; SyncTerm term; int64_t roleTimeMs; + int64_t startTimeMs; } SSyncState; int32_t syncInit(); diff --git a/source/common/src/systable.c b/source/common/src/systable.c index eb8042099fe90129f3d0fbd77bb1254df9604fa6..66a498d15c4d5530f132eae1f2908145b57a1d62 100644 --- a/source/common/src/systable.c +++ b/source/common/src/systable.c @@ -284,7 +284,6 @@ static const SSysDbTableSchema topicSchema[] = { {.name = "type", .bytes = 8 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, }; - static const SSysDbTableSchema subscriptionSchema[] = { {.name = "topic_name", .bytes = TSDB_TOPIC_FNAME_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, {.name = "consumer_group", .bytes = TSDB_CGROUP_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, @@ -295,12 +294,13 @@ static const SSysDbTableSchema subscriptionSchema[] = { }; static const SSysDbTableSchema vnodesSchema[] = { + {.name = "dnode_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, {.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, - {.name = "replica", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT, .sysInfo = true}, + {.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_BINARY, .sysInfo = false}, {.name = "status", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, - {.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, - {.name = "dnode_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = true}, - {.name = "dnode_ep", .bytes = TSDB_EP_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = true}, + {.name = "role_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true}, + {.name = "start_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP, .sysInfo = true}, + {.name = "restored", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL, .sysInfo = true}, }; static const SSysDbTableSchema userUserPrivilegesSchema[] = { diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 362c829dbcf4825b98b6701ee40d191cc2561e9d..d6d9e954e81d8ed8c479889bcf213271ccd112ad 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -1083,8 +1083,8 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tEncodeI64(&encoder, pload->pointsWritten) < 0) return -1; if (tEncodeI32(&encoder, pload->numOfCachedTables) < 0) return -1; if (tEncodeI32(&encoder, reserved) < 0) return -1; - if (tEncodeI64(&encoder, reserved) < 0) return -1; - if (tEncodeI64(&encoder, reserved) < 0) return -1; + if (tEncodeI64(&encoder, pload->roleTimeMs) < 0) return -1; + if (tEncodeI64(&encoder, pload->startTimeMs) < 0) return -1; } // mnode loads @@ -1108,6 +1108,16 @@ int32_t tSerializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tEncodeI64(&encoder, pReq->mload.syncTerm) < 0) return -1; if (tEncodeI64(&encoder, pReq->mload.roleTimeMs) < 0) return -1; if (tEncodeI8(&encoder, pReq->clusterCfg.ttlChangeOnWrite) < 0) return -1; + + // vnode extra + for (int32_t i = 0; i < vlen; ++i) { + SVnodeLoad *pload = taosArrayGet(pReq->pVloads, i); + int64_t reserved = 0; + if (tEncodeI64(&encoder, pload->syncTerm) < 0) return -1; + if (tEncodeI64(&encoder, reserved) < 0) return -1; + if (tEncodeI64(&encoder, reserved) < 0) return -1; + if (tEncodeI64(&encoder, reserved) < 0) return -1; + } tEndEncode(&encoder); int32_t tlen = encoder.pos; @@ -1152,7 +1162,7 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { for (int32_t i = 0; i < vlen; ++i) { SVnodeLoad vload = {0}; - int64_t reserved64 = 0; + vload.syncTerm = -1; int32_t reserved32 = 0; if (tDecodeI32(&decoder, &vload.vgId) < 0) return -1; if (tDecodeI8(&decoder, &vload.syncState) < 0) return -1; @@ -1166,14 +1176,15 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tDecodeI64(&decoder, &vload.pointsWritten) < 0) return -1; if (tDecodeI32(&decoder, &vload.numOfCachedTables) < 0) return -1; if (tDecodeI32(&decoder, (int32_t *)&reserved32) < 0) return -1; - if (tDecodeI64(&decoder, &reserved64) < 0) return -1; - if (tDecodeI64(&decoder, &reserved64) < 0) return -1; + if (tDecodeI64(&decoder, &vload.roleTimeMs) < 0) return -1; + if (tDecodeI64(&decoder, &vload.startTimeMs) < 0) return -1; if (taosArrayPush(pReq->pVloads, &vload) == NULL) { terrno = TSDB_CODE_OUT_OF_MEMORY; return -1; } } + // mnode loads if (tDecodeI8(&decoder, &pReq->mload.syncState) < 0) return -1; if (tDecodeI8(&decoder, &pReq->mload.syncRestore) < 0) return -1; @@ -1204,6 +1215,17 @@ int32_t tDeserializeSStatusReq(void *buf, int32_t bufLen, SStatusReq *pReq) { if (tDecodeI8(&decoder, &pReq->clusterCfg.ttlChangeOnWrite) < 0) return -1; } + // vnode extra + if (!tDecodeIsEnd(&decoder)) { + for (int32_t i = 0; i < vlen; ++i) { + SVnodeLoad *pLoad = taosArrayGet(pReq->pVloads, i); + int64_t reserved = 0; + if (tDecodeI64(&decoder, &pLoad->syncTerm) < 0) return -1; + if (tDecodeI64(&decoder, &reserved) < 0) return -1; + if (tDecodeI64(&decoder, &reserved) < 0) return -1; + if (tDecodeI64(&decoder, &reserved) < 0) return -1; + } + } tEndDecode(&decoder); tDecoderClear(&decoder); return 0; diff --git a/source/dnode/mnode/impl/inc/mndDef.h b/source/dnode/mnode/impl/inc/mndDef.h index c83a40c25dc9079f2e07dba2e1c8ca6796228cdb..5364267567c335e033a38fe358cd88157477a55a 100644 --- a/source/dnode/mnode/impl/inc/mndDef.h +++ b/source/dnode/mnode/impl/inc/mndDef.h @@ -347,8 +347,11 @@ typedef struct { typedef struct { int32_t dnodeId; ESyncState syncState; + int64_t syncTerm; bool syncRestore; bool syncCanRead; + int64_t roleTimeMs; + int64_t startTimeMs; ESyncRole nodeRole; } SVnodeGid; diff --git a/source/dnode/mnode/impl/src/mndDnode.c b/source/dnode/mnode/impl/src/mndDnode.c index 234e81a670e44f0606bdd9163326220278e9ebd3..39285ced5d7967f03c8155691ed10e82098dbaa9 100644 --- a/source/dnode/mnode/impl/src/mndDnode.c +++ b/source/dnode/mnode/impl/src/mndDnode.c @@ -424,6 +424,47 @@ static int32_t mndCheckClusterCfgPara(SMnode *pMnode, SDnodeObj *pDnode, const S return 0; } +static bool mndUpdateVnodeState(int32_t vgId, SVnodeGid *pGid, SVnodeLoad *pVload) { + bool stateChanged = false; + bool roleChanged = pGid->syncState != pVload->syncState || + (pVload->syncTerm != -1 && pGid->syncTerm != pVload->syncTerm) || + pGid->roleTimeMs != pVload->roleTimeMs; + if (roleChanged || pGid->syncRestore != pVload->syncRestore || pGid->syncCanRead != pVload->syncCanRead || + pGid->startTimeMs != pVload->startTimeMs) { + mInfo( + "vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d " + "canRead:%d, dnode:%d", + vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead, syncStr(pVload->syncState), + pVload->syncRestore, pVload->syncCanRead, pGid->dnodeId); + pGid->syncState = pVload->syncState; + pGid->syncTerm = pVload->syncTerm; + pGid->syncRestore = pVload->syncRestore; + pGid->syncCanRead = pVload->syncCanRead; + pGid->startTimeMs = pVload->startTimeMs; + pGid->roleTimeMs = pVload->roleTimeMs; + stateChanged = true; + } + return stateChanged; +} + +static bool mndUpdateMnodeState(SMnodeObj *pObj, SMnodeLoad *pMload) { + bool stateChanged = false; + bool roleChanged = pObj->syncState != pMload->syncState || + (pMload->syncTerm != -1 && pObj->syncTerm != pMload->syncTerm) || + pObj->roleTimeMs != pMload->roleTimeMs; + if (roleChanged || pObj->syncRestore != pMload->syncRestore) { + mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d, syncTerm from %" PRId64 " to %" PRId64, + pObj->id, syncStr(pObj->syncState), syncStr(pMload->syncState), pObj->syncRestore, pMload->syncRestore, + pObj->syncTerm, pMload->syncTerm); + pObj->syncState = pMload->syncState; + pObj->syncTerm = pMload->syncTerm; + pObj->syncRestore = pMload->syncRestore; + pObj->roleTimeMs = pMload->roleTimeMs; + stateChanged = true; + } + return stateChanged; +} + static int32_t mndProcessStatusReq(SRpcMsg *pReq) { SMnode *pMnode = pReq->info.node; SStatusReq statusReq = {0}; @@ -496,26 +537,21 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { pVgroup->compStorage = pVload->compStorage; pVgroup->pointsWritten = pVload->pointsWritten; } - bool roleChanged = false; + bool stateChanged = false; for (int32_t vg = 0; vg < pVgroup->replica; ++vg) { SVnodeGid *pGid = &pVgroup->vnodeGid[vg]; if (pGid->dnodeId == statusReq.dnodeId) { - if (pGid->syncState != pVload->syncState || pGid->syncRestore != pVload->syncRestore || - pGid->syncCanRead != pVload->syncCanRead) { - mInfo( - "vgId:%d, state changed by status msg, old state:%s restored:%d canRead:%d new state:%s restored:%d " - "canRead:%d, dnode:%d", - pVgroup->vgId, syncStr(pGid->syncState), pGid->syncRestore, pGid->syncCanRead, - syncStr(pVload->syncState), pVload->syncRestore, pVload->syncCanRead, pDnode->id); - pGid->syncState = pVload->syncState; - pGid->syncRestore = pVload->syncRestore; - pGid->syncCanRead = pVload->syncCanRead; - roleChanged = true; + if (pVload->startTimeMs == 0) { + pVload->startTimeMs = statusReq.rebootTime; + } + if (pVload->roleTimeMs == 0) { + pVload->roleTimeMs = statusReq.rebootTime; } + stateChanged = mndUpdateVnodeState(pVgroup->vgId, pGid, pVload); break; } } - if (roleChanged) { + if (stateChanged) { SDbObj *pDb = mndAcquireDb(pMnode, pVgroup->dbName); if (pDb != NULL && pDb->stateTs != curMs) { mInfo("db:%s, stateTs changed by status msg, old stateTs:%" PRId64 " new stateTs:%" PRId64, pDb->name, @@ -531,23 +567,10 @@ static int32_t mndProcessStatusReq(SRpcMsg *pReq) { SMnodeObj *pObj = mndAcquireMnode(pMnode, pDnode->id); if (pObj != NULL) { - bool roleChanged = pObj->syncState != statusReq.mload.syncState || - (statusReq.mload.syncTerm != -1 && pObj->syncTerm != statusReq.mload.syncTerm); - bool restoreChanged = pObj->syncRestore != statusReq.mload.syncRestore; - if (roleChanged || restoreChanged) { - mInfo("dnode:%d, mnode syncState from %s to %s, restoreState from %d to %d, syncTerm from %" PRId64 - " to %" PRId64, - pObj->id, syncStr(pObj->syncState), syncStr(statusReq.mload.syncState), pObj->syncRestore, - statusReq.mload.syncRestore, pObj->syncTerm, statusReq.mload.syncTerm); - pObj->syncState = statusReq.mload.syncState; - pObj->syncRestore = statusReq.mload.syncRestore; - pObj->syncTerm = statusReq.mload.syncTerm; + if (statusReq.mload.roleTimeMs == 0) { + statusReq.mload.roleTimeMs = statusReq.rebootTime; } - - if (roleChanged) { - pObj->roleTimeMs = (statusReq.mload.roleTimeMs != 0) ? statusReq.mload.roleTimeMs : taosGetTimestampMs(); - } - + mndUpdateMnodeState(pObj, &statusReq.mload); mndReleaseMnode(pMnode, pObj); } diff --git a/source/dnode/mnode/impl/src/mndMain.c b/source/dnode/mnode/impl/src/mndMain.c index 1071a6cf6ebbe34cf6cd1873f1180ede6c113219..b28ad207ea2f5fdbc012b10e61c87e5fae858f20 100644 --- a/source/dnode/mnode/impl/src/mndMain.c +++ b/source/dnode/mnode/impl/src/mndMain.c @@ -185,7 +185,7 @@ static void mndSetVgroupOffline(SMnode *pMnode, int32_t dnodeId, int64_t curMs) pIter = sdbFetch(pSdb, SDB_VGROUP, pIter, (void **)&pVgroup); if (pIter == NULL) break; - bool roleChanged = false; + bool stateChanged = false; for (int32_t vg = 0; vg < pVgroup->replica; ++vg) { SVnodeGid *pGid = &pVgroup->vnodeGid[vg]; if (pGid->dnodeId == dnodeId) { @@ -197,13 +197,14 @@ static void mndSetVgroupOffline(SMnode *pMnode, int32_t dnodeId, int64_t curMs) pGid->syncState = TAOS_SYNC_STATE_OFFLINE; pGid->syncRestore = 0; pGid->syncCanRead = 0; - roleChanged = true; + pGid->startTimeMs = 0; + stateChanged = true; } break; } } - if (roleChanged) { + if (stateChanged) { SDbObj *pDb = mndAcquireDb(pMnode, pVgroup->dbName); if (pDb != NULL && pDb->stateTs != curMs) { mInfo("db:%s, stateTs changed by offline check, old newTs:%" PRId64 " newTs:%" PRId64, pDb->name, pDb->stateTs, diff --git a/source/dnode/mnode/impl/src/mndMnode.c b/source/dnode/mnode/impl/src/mndMnode.c index 4ee2bc159b4697564a0614d8ff72d8235e071e98..2757578d350119268baada07e66ba9343acad0e7 100644 --- a/source/dnode/mnode/impl/src/mndMnode.c +++ b/source/dnode/mnode/impl/src/mndMnode.c @@ -807,7 +807,6 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB ESdbStatus objStatus = 0; char *pWrite; int64_t curMs = taosGetTimestampMs(); - int64_t dummyTimeMs = 0; pSelfObj = sdbAcquire(pSdb, SDB_MNODE, &pMnode->selfDnodeId); if (pSelfObj == NULL) { @@ -858,16 +857,9 @@ static int32_t mndRetrieveMnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)&pObj->createdTime, false); + int64_t roleTimeMs = (isDnodeOnline) ? pObj->roleTimeMs : 0; pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - if (pObj->syncTerm != pSelfObj->syncTerm || !isDnodeOnline) { - // state of old term / no status report => use dummyTimeMs - if (pObj->syncTerm > pSelfObj->syncTerm) { - mError("mnode:%d has a newer term:%" PRId64 " than me:%" PRId64, pObj->id, pObj->syncTerm, pSelfObj->syncTerm); - } - colDataSetVal(pColInfo, numOfRows, (const char *)&dummyTimeMs, false); - } else { - colDataSetVal(pColInfo, numOfRows, (const char *)&pObj->roleTimeMs, false); - } + colDataSetVal(pColInfo, numOfRows, (const char *)&roleTimeMs, false); numOfRows++; sdbRelease(pSdb, pObj); diff --git a/source/dnode/mnode/impl/src/mndVgroup.c b/source/dnode/mnode/impl/src/mndVgroup.c index f3dded9c76e15f81bea2f7a5ca7313d91910c3a4..406392271cec0241a46ace57d4840aa9d8b8699a 100644 --- a/source/dnode/mnode/impl/src/mndVgroup.c +++ b/source/dnode/mnode/impl/src/mndVgroup.c @@ -961,27 +961,24 @@ static int32_t mndRetrieveVnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB int32_t numOfRows = 0; SVgObj *pVgroup = NULL; int32_t cols = 0; + int64_t curMs = taosGetTimestampMs(); while (numOfRows < rows) { pShow->pIter = sdbFetch(pSdb, SDB_VGROUP, pShow->pIter, (void **)&pVgroup); if (pShow->pIter == NULL) break; for (int32_t i = 0; i < pVgroup->replica && numOfRows < rows; ++i) { - SVnodeGid *pVgid = &pVgroup->vnodeGid[i]; + SVnodeGid *pGid = &pVgroup->vnodeGid[i]; SColumnInfoData *pColInfo = NULL; cols = 0; pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)&pVgroup->vgId, false); - - pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)&pVgroup->replica, false); + colDataSetVal(pColInfo, numOfRows, (const char *)&pGid->dnodeId, false); - char buf[20] = {0}; - STR_TO_VARSTR(buf, syncStr(pVgid->syncState)); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)buf, false); + colDataSetVal(pColInfo, numOfRows, (const char *)&pVgroup->vgId, false); + // db_name const char *dbname = mndGetDbStr(pVgroup->dbName); char b1[TSDB_DB_NAME_LEN + VARSTR_HEADER_SIZE] = {0}; if (dbname != NULL) { @@ -992,20 +989,33 @@ static int32_t mndRetrieveVnodes(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pB pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); colDataSetVal(pColInfo, numOfRows, (const char *)b1, false); + // dnode is online? + SDnodeObj *pDnode = mndAcquireDnode(pMnode, pGid->dnodeId); + if (pDnode == NULL) { + mError("failed to acquire dnode. dnodeId:%d", pGid->dnodeId); + break; + } + bool isDnodeOnline = mndIsDnodeOnline(pDnode, curMs); + + char buf[20] = {0}; + ESyncState syncState = (isDnodeOnline) ? pGid->syncState : TAOS_SYNC_STATE_OFFLINE; + STR_TO_VARSTR(buf, syncStr(syncState)); pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)&pVgid->dnodeId, false); + colDataSetVal(pColInfo, numOfRows, (const char *)buf, false); + + int64_t roleTimeMs = (isDnodeOnline) ? pGid->roleTimeMs : 0; + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataSetVal(pColInfo, numOfRows, (const char *)&roleTimeMs, false); + + int64_t startTimeMs = (isDnodeOnline) ? pGid->startTimeMs : 0; + pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); + colDataSetVal(pColInfo, numOfRows, (const char *)&startTimeMs, false); - SDnodeObj *pDnode = mndAcquireDnode(pMnode, pVgid->dnodeId); - char b2[TSDB_EP_LEN + VARSTR_HEADER_SIZE] = {0}; - if (pDnode != NULL) { - STR_WITH_MAXSIZE_TO_VARSTR(b2, pDnode->ep, TSDB_EP_LEN + VARSTR_HEADER_SIZE); - } else { - STR_WITH_MAXSIZE_TO_VARSTR(b2, "NULL", TSDB_EP_LEN + VARSTR_HEADER_SIZE); - } pColInfo = taosArrayGet(pBlock->pDataBlock, cols++); - colDataSetVal(pColInfo, numOfRows, (const char *)b2, false); + colDataSetVal(pColInfo, numOfRows, (const char *)&pGid->syncRestore, false); numOfRows++; + sdbRelease(pSdb, pDnode); } sdbRelease(pSdb, pVgroup); diff --git a/source/dnode/vnode/src/vnd/vnodeQuery.c b/source/dnode/vnode/src/vnd/vnodeQuery.c index b9880be895cab188e6b158618fa5e8fec1f92329..70663a63753a8b8658ebdcbae1790be9b59f9357 100644 --- a/source/dnode/vnode/src/vnd/vnodeQuery.c +++ b/source/dnode/vnode/src/vnd/vnodeQuery.c @@ -380,6 +380,9 @@ int32_t vnodeGetLoad(SVnode *pVnode, SVnodeLoad *pLoad) { pLoad->vgId = TD_VID(pVnode); pLoad->syncState = state.state; pLoad->syncRestore = state.restored; + pLoad->syncTerm = state.term; + pLoad->roleTimeMs = state.roleTimeMs; + pLoad->startTimeMs = state.startTimeMs; pLoad->syncCanRead = state.canRead; pLoad->cacheUsage = tsdbCacheGetUsage(pVnode); pLoad->numOfCachedTables = tsdbCacheGetElems(pVnode); diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index 5b84e8d26762fd40c71d770a16924d8f96cc8cca..c6387c27873b1f47a293197f0549423631611efc 100755 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -475,8 +475,8 @@ cmd ::= SHOW TAGS FROM table_name_cond(A) from_db_opt(B). cmd ::= SHOW TAGS FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowStmtWithCond(pCxt, QUERY_NODE_SHOW_TAGS_STMT, createIdentifierValueNode(pCxt, &B), createIdentifierValueNode(pCxt, &A), OP_TYPE_EQUAL); } cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM table_name_cond(A) from_db_opt(B). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, A, B, C); } cmd ::= SHOW TABLE TAGS tag_list_opt(C) FROM db_name(B) NK_DOT table_name(A). { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &A), createIdentifierValueNode(pCxt, &B), C); } -cmd ::= SHOW VNODES NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); } -cmd ::= SHOW VNODES NK_STRING(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &A)); } +cmd ::= SHOW VNODES ON DNODE NK_INTEGER(A). { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &A), NULL); } +cmd ::= SHOW VNODES. { pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } // show alive cmd ::= SHOW db_name_cond_opt(A) ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, A, QUERY_NODE_SHOW_DB_ALIVE_STMT); } cmd ::= SHOW CLUSTER ALIVE. { pCxt->pRootNode = createShowAliveStmt(pCxt, NULL, QUERY_NODE_SHOW_CLUSTER_ALIVE_STMT); } diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index c0f901c7e118d091a429f73bb1fc28133e487921..ea331037989cfa7ecb4dab9398fccafa343190a0 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -8073,8 +8073,6 @@ static int32_t rewriteShowVnodes(STranslateContext* pCxt, SQuery* pQuery) { if (TSDB_CODE_SUCCESS == code) { if (NULL != pShow->pDnodeId) { code = createOperatorNode(OP_TYPE_EQUAL, "dnode_id", pShow->pDnodeId, &pStmt->pWhere); - } else { - code = createOperatorNode(OP_TYPE_EQUAL, "dnode_ep", pShow->pDnodeEndpoint, &pStmt->pWhere); } } if (TSDB_CODE_SUCCESS == code) { diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index 1fb803e93deb0d51885c246343777c36f69a49f2..d1fe6d9091959ed686e2a66a426a8e96b8dfe6e7 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -479,18 +479,18 @@ typedef union { #define ParseCTX_FETCH #define ParseCTX_STORE #define YYFALLBACK 1 -#define YYNSTATE 799 +#define YYNSTATE 800 #define YYNRULE 603 #define YYNRULE_WITH_ACTION 603 #define YYNTOKEN 338 -#define YY_MAX_SHIFT 798 -#define YY_MIN_SHIFTREDUCE 1180 -#define YY_MAX_SHIFTREDUCE 1782 -#define YY_ERROR_ACTION 1783 -#define YY_ACCEPT_ACTION 1784 -#define YY_NO_ACTION 1785 -#define YY_MIN_REDUCE 1786 -#define YY_MAX_REDUCE 2388 +#define YY_MAX_SHIFT 799 +#define YY_MIN_SHIFTREDUCE 1181 +#define YY_MAX_SHIFTREDUCE 1783 +#define YY_ERROR_ACTION 1784 +#define YY_ACCEPT_ACTION 1785 +#define YY_NO_ACTION 1786 +#define YY_MIN_REDUCE 1787 +#define YY_MAX_REDUCE 2389 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -559,309 +559,309 @@ typedef union { *********** Begin parsing tables **********************************************/ #define YY_ACTTAB_COUNT (3028) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 734, 2197, 2175, 531, 2017, 2158, 532, 1822, 90, 450, - /* 10 */ 364, 704, 48, 46, 1709, 169, 2183, 1798, 2015, 181, - /* 20 */ 398, 2086, 1556, 41, 40, 368, 2179, 47, 45, 44, - /* 30 */ 43, 42, 66, 1637, 1958, 1554, 2084, 674, 366, 2069, - /* 40 */ 2215, 146, 41, 40, 2256, 2086, 47, 45, 44, 43, - /* 50 */ 42, 2165, 627, 703, 345, 2359, 2175, 391, 401, 2197, - /* 60 */ 2083, 674, 1632, 1581, 2181, 395, 1965, 163, 19, 667, - /* 70 */ 1954, 2365, 188, 380, 697, 1562, 2360, 653, 30, 686, - /* 80 */ 2179, 2015, 652, 358, 536, 2359, 672, 2196, 2364, 2232, - /* 90 */ 533, 2359, 170, 2198, 707, 2200, 2201, 702, 2215, 697, - /* 100 */ 795, 651, 188, 15, 38, 303, 2360, 653, 2363, 2165, - /* 110 */ 647, 703, 2360, 2362, 2011, 2012, 48, 46, 2181, 47, - /* 120 */ 45, 44, 43, 42, 398, 2186, 1556, 1666, 697, 687, - /* 130 */ 1963, 62, 62, 628, 2324, 407, 406, 1637, 1749, 1554, - /* 140 */ 1639, 1640, 221, 1241, 1242, 2196, 534, 2232, 1829, 135, - /* 150 */ 112, 2198, 707, 2200, 2201, 702, 571, 697, 1563, 223, - /* 160 */ 687, 1963, 185, 534, 2285, 1829, 1632, 673, 394, 2281, - /* 170 */ 1612, 1622, 19, 1581, 687, 1963, 1638, 1641, 168, 1562, - /* 180 */ 135, 2188, 190, 626, 1667, 1787, 1904, 576, 567, 566, - /* 190 */ 2313, 1557, 125, 1555, 193, 124, 123, 122, 121, 120, - /* 200 */ 119, 118, 117, 116, 795, 548, 125, 15, 2197, 124, - /* 210 */ 123, 122, 121, 120, 119, 118, 117, 116, 704, 546, - /* 220 */ 1668, 2079, 1562, 1560, 1561, 1786, 1611, 1614, 1615, 1616, - /* 230 */ 1617, 1618, 1619, 1620, 1621, 699, 695, 1630, 1631, 1633, - /* 240 */ 1634, 1635, 1636, 2, 1639, 1640, 686, 2215, 1582, 134, - /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2165, 1238, - /* 260 */ 703, 1237, 37, 396, 1661, 1662, 1663, 1664, 1665, 1669, - /* 270 */ 1670, 1671, 1672, 539, 1612, 1622, 532, 1822, 41, 40, - /* 280 */ 1638, 1641, 47, 45, 44, 43, 42, 248, 285, 285, - /* 290 */ 1584, 247, 1239, 686, 2196, 1557, 2232, 1555, 35, 112, - /* 300 */ 2198, 707, 2200, 2201, 702, 642, 697, 60, 1673, 147, - /* 310 */ 184, 155, 2256, 2285, 624, 2197, 1566, 394, 2281, 44, - /* 320 */ 43, 42, 2004, 1465, 1466, 667, 103, 1560, 1561, 51, - /* 330 */ 1611, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 699, - /* 340 */ 695, 1630, 1631, 1633, 1634, 1635, 1636, 2, 12, 48, - /* 350 */ 46, 1956, 93, 736, 2215, 353, 2008, 398, 378, 1556, - /* 360 */ 605, 1372, 1582, 528, 9, 2165, 1581, 703, 1407, 1408, - /* 370 */ 1637, 526, 1554, 646, 522, 518, 51, 1363, 732, 731, - /* 380 */ 730, 1367, 729, 1369, 1370, 728, 725, 2364, 1378, 722, - /* 390 */ 1380, 1381, 719, 716, 713, 648, 643, 636, 2159, 1632, - /* 400 */ 610, 2196, 2215, 2232, 1583, 19, 112, 2198, 707, 2200, - /* 410 */ 2201, 702, 1562, 697, 589, 588, 587, 207, 185, 575, - /* 420 */ 2285, 579, 141, 583, 394, 2281, 371, 582, 744, 2197, - /* 430 */ 569, 568, 581, 586, 374, 373, 2300, 795, 580, 704, - /* 440 */ 15, 574, 262, 392, 594, 627, 2314, 627, 2359, 62, - /* 450 */ 2359, 1965, 166, 48, 46, 1642, 645, 86, 673, 604, - /* 460 */ 85, 398, 2297, 1556, 2365, 188, 2365, 188, 2215, 2360, - /* 470 */ 653, 2360, 653, 246, 1637, 2300, 1554, 1639, 1640, 2165, - /* 480 */ 1784, 703, 1482, 1483, 454, 2065, 41, 40, 1772, 597, - /* 490 */ 47, 45, 44, 43, 42, 372, 591, 370, 369, 2197, - /* 500 */ 573, 2296, 245, 1632, 575, 460, 2065, 1612, 1622, 704, - /* 510 */ 671, 1831, 2079, 1638, 1641, 2196, 1562, 2232, 1481, 1484, - /* 520 */ 113, 2198, 707, 2200, 2201, 702, 574, 697, 1557, 2017, - /* 530 */ 1555, 202, 12, 285, 2285, 379, 664, 144, 2215, 2282, - /* 540 */ 1583, 795, 70, 2015, 49, 69, 12, 1213, 10, 2165, - /* 550 */ 1584, 703, 205, 413, 487, 2065, 284, 1809, 412, 1315, - /* 560 */ 1560, 1561, 673, 1611, 1614, 1615, 1616, 1617, 1618, 1619, - /* 570 */ 1620, 1621, 699, 695, 1630, 1631, 1633, 1634, 1635, 1636, - /* 580 */ 2, 1639, 1640, 603, 1700, 2196, 1215, 2232, 1218, 1219, - /* 590 */ 112, 2198, 707, 2200, 2201, 702, 601, 697, 599, 1317, - /* 600 */ 627, 210, 2379, 2359, 2285, 1808, 285, 2165, 394, 2281, - /* 610 */ 2048, 1612, 1622, 1238, 682, 1237, 2079, 1638, 1641, 2365, - /* 620 */ 188, 585, 584, 1326, 2360, 653, 62, 237, 140, 612, - /* 630 */ 687, 1963, 1557, 1865, 1555, 2175, 1325, 687, 1963, 666, - /* 640 */ 186, 2293, 2294, 173, 142, 2298, 1239, 249, 2197, 2184, - /* 650 */ 56, 565, 561, 557, 553, 2165, 236, 448, 704, 2179, - /* 660 */ 2321, 1779, 766, 764, 1560, 1561, 754, 1611, 1614, 1615, - /* 670 */ 1616, 1617, 1618, 1619, 1620, 1621, 699, 695, 1630, 1631, - /* 680 */ 1633, 1634, 1635, 1636, 2, 48, 46, 2215, 494, 687, - /* 690 */ 1963, 735, 284, 398, 2300, 1556, 91, 2181, 2165, 234, - /* 700 */ 703, 503, 203, 589, 588, 587, 1637, 697, 1554, 449, - /* 710 */ 579, 141, 583, 442, 444, 441, 582, 1527, 1528, 443, - /* 720 */ 2295, 581, 586, 374, 373, 41, 40, 580, 52, 47, - /* 730 */ 45, 44, 43, 42, 2196, 1632, 2232, 668, 432, 112, - /* 740 */ 2198, 707, 2200, 2201, 702, 440, 697, 158, 1562, 212, - /* 750 */ 211, 2379, 403, 2285, 255, 2010, 2012, 394, 2281, 687, - /* 760 */ 1963, 627, 401, 1778, 2359, 434, 430, 233, 227, 472, - /* 770 */ 1965, 166, 493, 795, 232, 544, 49, 1737, 471, 462, - /* 780 */ 2365, 188, 2148, 285, 627, 2360, 653, 2359, 2017, 48, - /* 790 */ 46, 1952, 166, 225, 388, 1807, 2197, 398, 181, 1556, - /* 800 */ 687, 1963, 2015, 2365, 188, 2017, 704, 55, 2360, 653, - /* 810 */ 1637, 393, 1554, 1639, 1640, 664, 144, 1713, 2070, 2015, - /* 820 */ 477, 1748, 1940, 1581, 639, 638, 1735, 1736, 1738, 1739, - /* 830 */ 1740, 2364, 2130, 404, 2359, 2215, 1806, 664, 144, 1632, - /* 840 */ 2363, 1965, 166, 1612, 1622, 2165, 2165, 698, 703, 1638, - /* 850 */ 1641, 2363, 1562, 41, 40, 2360, 2361, 47, 45, 44, - /* 860 */ 43, 42, 34, 258, 1557, 1939, 1555, 740, 41, 40, - /* 870 */ 2008, 1905, 47, 45, 44, 43, 42, 795, 687, 1963, - /* 880 */ 15, 250, 2196, 2197, 2232, 285, 2165, 171, 2198, 707, - /* 890 */ 2200, 2201, 702, 704, 697, 2334, 1560, 1561, 478, 1611, - /* 900 */ 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 699, 695, - /* 910 */ 1630, 1631, 1633, 1634, 1635, 1636, 2, 1639, 1640, 187, - /* 920 */ 2293, 2294, 2215, 142, 2298, 90, 689, 109, 2257, 1706, - /* 930 */ 687, 1963, 744, 2165, 691, 703, 2257, 742, 1799, 654, - /* 940 */ 2380, 189, 2293, 2294, 145, 142, 2298, 1612, 1622, 1725, - /* 950 */ 547, 1959, 1955, 1638, 1641, 279, 160, 159, 739, 738, - /* 960 */ 737, 157, 687, 1963, 741, 687, 1963, 2008, 1557, 2196, - /* 970 */ 1555, 2232, 2327, 1613, 112, 2198, 707, 2200, 2201, 702, - /* 980 */ 640, 697, 1960, 1647, 36, 684, 2379, 1938, 2285, 1581, - /* 990 */ 41, 40, 394, 2281, 47, 45, 44, 43, 42, 427, - /* 1000 */ 1560, 1561, 1862, 1611, 1614, 1615, 1616, 1617, 1618, 1619, - /* 1010 */ 1620, 1621, 699, 695, 1630, 1631, 1633, 1634, 1635, 1636, - /* 1020 */ 2, 2017, 349, 167, 1579, 687, 1963, 402, 324, 687, - /* 1030 */ 1963, 485, 687, 1963, 501, 2015, 273, 500, 687, 1963, - /* 1040 */ 14, 13, 321, 73, 1581, 251, 72, 687, 1963, 259, - /* 1050 */ 1330, 2216, 670, 468, 1805, 502, 317, 346, 298, 1994, - /* 1060 */ 470, 1218, 1219, 1329, 1804, 1803, 139, 685, 219, 513, - /* 1070 */ 511, 508, 772, 771, 770, 769, 410, 1802, 768, 767, - /* 1080 */ 148, 762, 761, 760, 759, 758, 757, 756, 162, 752, - /* 1090 */ 751, 750, 409, 408, 747, 746, 745, 176, 175, 1801, - /* 1100 */ 687, 1963, 742, 656, 2165, 1584, 367, 1221, 62, 687, - /* 1110 */ 1963, 294, 295, 1580, 2165, 2165, 293, 655, 456, 1556, - /* 1120 */ 304, 160, 159, 739, 738, 737, 157, 2165, 505, 405, - /* 1130 */ 41, 40, 1554, 2151, 47, 45, 44, 43, 42, 1613, - /* 1140 */ 664, 144, 54, 1680, 3, 1800, 1797, 111, 498, 2165, - /* 1150 */ 1796, 492, 491, 490, 489, 484, 483, 482, 481, 480, - /* 1160 */ 476, 475, 474, 473, 348, 465, 464, 463, 1795, 458, - /* 1170 */ 457, 365, 1562, 41, 40, 1948, 166, 47, 45, 44, - /* 1180 */ 43, 42, 420, 1794, 1793, 1792, 1705, 1791, 81, 80, - /* 1190 */ 447, 2197, 742, 200, 1613, 2165, 2165, 795, 1950, 166, - /* 1200 */ 2165, 704, 755, 634, 1790, 1925, 439, 437, 1946, 166, - /* 1210 */ 158, 160, 159, 739, 738, 737, 157, 347, 2165, 2197, - /* 1220 */ 428, 2305, 1700, 426, 422, 418, 415, 440, 1789, 704, - /* 1230 */ 2215, 2352, 1941, 2165, 2165, 2165, 652, 2165, 158, 2359, - /* 1240 */ 451, 2165, 74, 703, 282, 2293, 663, 242, 136, 662, - /* 1250 */ 240, 2359, 2197, 452, 2165, 651, 188, 261, 2215, 577, - /* 1260 */ 2360, 653, 704, 659, 2304, 285, 2017, 651, 188, 2165, - /* 1270 */ 1522, 703, 2360, 653, 1966, 166, 149, 2196, 2165, 2232, - /* 1280 */ 2016, 1313, 112, 2198, 707, 2200, 2201, 702, 1557, 697, - /* 1290 */ 1555, 2215, 84, 260, 2379, 83, 2285, 137, 1525, 50, - /* 1300 */ 394, 2281, 2165, 151, 703, 2196, 150, 2232, 578, 1849, - /* 1310 */ 112, 2198, 707, 2200, 2201, 702, 244, 697, 50, 243, - /* 1320 */ 1560, 1561, 2379, 153, 2285, 266, 152, 1840, 394, 2281, - /* 1330 */ 1311, 590, 607, 158, 606, 50, 94, 165, 2196, 694, - /* 1340 */ 2232, 657, 2197, 112, 2198, 707, 2200, 2201, 702, 592, - /* 1350 */ 697, 1838, 704, 407, 406, 2379, 1565, 2285, 291, 1734, - /* 1360 */ 1832, 394, 2281, 1570, 1781, 1782, 71, 156, 1272, 158, - /* 1370 */ 2197, 14, 13, 595, 1637, 1903, 1563, 1902, 1733, 64, - /* 1380 */ 704, 2215, 1564, 50, 50, 268, 711, 411, 108, 156, - /* 1390 */ 158, 381, 2165, 669, 703, 1479, 2074, 138, 105, 156, - /* 1400 */ 1823, 1828, 748, 1632, 2005, 665, 281, 2317, 1273, 2215, - /* 1410 */ 790, 278, 1, 5, 419, 414, 1562, 362, 296, 1587, - /* 1420 */ 2165, 436, 703, 435, 1291, 195, 679, 300, 2196, 1356, - /* 1430 */ 2232, 196, 2197, 112, 2198, 707, 2200, 2201, 702, 1674, - /* 1440 */ 697, 693, 704, 1623, 316, 2260, 1385, 2285, 749, 1389, - /* 1450 */ 1396, 394, 2281, 438, 198, 1503, 2196, 1394, 2232, 161, - /* 1460 */ 311, 112, 2198, 707, 2200, 2201, 702, 1580, 697, 453, - /* 1470 */ 1289, 2215, 209, 2258, 455, 2285, 1584, 459, 466, 394, - /* 1480 */ 2281, 2075, 2165, 1579, 703, 461, 496, 479, 488, 486, - /* 1490 */ 495, 2067, 497, 506, 1658, 507, 504, 213, 214, 2197, - /* 1500 */ 509, 4, 216, 660, 510, 512, 514, 1585, 530, 704, - /* 1510 */ 529, 613, 537, 540, 1568, 538, 224, 1582, 2196, 226, - /* 1520 */ 2232, 1586, 541, 112, 2198, 707, 2200, 2201, 702, 798, - /* 1530 */ 697, 542, 1571, 1588, 1566, 690, 543, 2285, 2215, 229, - /* 1540 */ 1567, 394, 2281, 310, 545, 231, 88, 89, 549, 2165, - /* 1550 */ 235, 703, 572, 570, 1953, 239, 1949, 241, 1951, 180, - /* 1560 */ 609, 2197, 1947, 114, 1574, 1576, 352, 788, 784, 780, - /* 1570 */ 776, 704, 308, 92, 2139, 2136, 2135, 695, 1630, 1631, - /* 1580 */ 1633, 1634, 1635, 1636, 611, 2196, 154, 2232, 615, 614, - /* 1590 */ 113, 2198, 707, 2200, 2201, 702, 252, 697, 619, 256, - /* 1600 */ 2215, 1510, 312, 2318, 2285, 621, 622, 620, 2284, 2281, - /* 1610 */ 616, 2165, 110, 703, 254, 301, 2328, 631, 641, 637, - /* 1620 */ 677, 2333, 2332, 650, 2197, 384, 644, 264, 267, 629, - /* 1630 */ 2358, 8, 174, 2307, 704, 632, 630, 277, 274, 275, - /* 1640 */ 272, 1700, 661, 385, 658, 143, 1583, 2196, 683, 2232, - /* 1650 */ 1703, 178, 113, 2198, 707, 2200, 2201, 702, 2301, 697, - /* 1660 */ 286, 98, 276, 2215, 1589, 191, 2285, 2080, 313, 675, - /* 1670 */ 692, 2281, 680, 676, 2165, 2094, 703, 2093, 2092, 314, - /* 1680 */ 280, 390, 681, 288, 61, 2197, 2382, 100, 315, 102, - /* 1690 */ 287, 104, 2266, 709, 1964, 701, 2009, 1926, 318, 791, - /* 1700 */ 354, 2157, 342, 2197, 355, 792, 2156, 53, 2155, 253, - /* 1710 */ 705, 794, 2232, 704, 322, 113, 2198, 707, 2200, 2201, - /* 1720 */ 702, 307, 697, 78, 2215, 416, 1547, 320, 2152, 2285, - /* 1730 */ 417, 1548, 194, 357, 2281, 2165, 421, 703, 2150, 425, - /* 1740 */ 327, 2149, 2215, 363, 341, 331, 423, 424, 2147, 429, - /* 1750 */ 2146, 431, 2145, 2165, 433, 703, 1538, 2126, 197, 2125, - /* 1760 */ 199, 1506, 79, 1505, 2197, 2107, 2106, 2105, 2104, 445, - /* 1770 */ 446, 2196, 2103, 2232, 704, 2058, 339, 2198, 707, 2200, - /* 1780 */ 2201, 702, 700, 697, 688, 2250, 1456, 2057, 2054, 2196, - /* 1790 */ 201, 2232, 2053, 82, 170, 2198, 707, 2200, 2201, 702, - /* 1800 */ 2052, 697, 2051, 2215, 206, 204, 2055, 382, 2056, 2050, - /* 1810 */ 2049, 2047, 2046, 2045, 2165, 467, 703, 2044, 469, 2060, - /* 1820 */ 2043, 2042, 2197, 2041, 2040, 2039, 2038, 2037, 2036, 2035, - /* 1830 */ 2034, 2033, 704, 2032, 2031, 2030, 2325, 2029, 208, 2028, - /* 1840 */ 87, 2197, 2027, 2026, 2025, 2059, 2024, 2023, 2022, 2021, - /* 1850 */ 2196, 704, 2232, 2020, 1458, 340, 2198, 707, 2200, 2201, - /* 1860 */ 702, 2215, 697, 499, 2019, 383, 2018, 1868, 1867, 215, - /* 1870 */ 350, 1866, 2165, 1327, 703, 1323, 1331, 217, 218, 1864, - /* 1880 */ 2215, 1861, 1860, 1853, 351, 515, 1842, 516, 1818, 1817, - /* 1890 */ 520, 2165, 519, 703, 517, 521, 523, 525, 527, 1220, - /* 1900 */ 2124, 524, 220, 182, 76, 2114, 2102, 2101, 2196, 222, - /* 1910 */ 2232, 2078, 77, 340, 2198, 707, 2200, 2201, 702, 2185, - /* 1920 */ 697, 2197, 183, 535, 230, 1942, 228, 2196, 1863, 2232, - /* 1930 */ 1859, 704, 333, 2198, 707, 2200, 2201, 702, 550, 697, - /* 1940 */ 551, 552, 2197, 1265, 1857, 554, 555, 556, 1855, 558, - /* 1950 */ 559, 560, 704, 1852, 562, 564, 1837, 1835, 563, 1836, - /* 1960 */ 2215, 1834, 1814, 1944, 1401, 1400, 1943, 1314, 1312, 1310, - /* 1970 */ 1309, 2165, 1308, 703, 1307, 1306, 649, 1301, 1850, 1841, - /* 1980 */ 763, 2215, 63, 1839, 1303, 389, 765, 238, 1813, 1302, - /* 1990 */ 375, 376, 2165, 1300, 703, 377, 593, 1812, 1811, 596, - /* 2000 */ 598, 29, 600, 602, 115, 1532, 1534, 2196, 2197, 2232, - /* 2010 */ 1531, 2123, 171, 2198, 707, 2200, 2201, 702, 701, 697, - /* 2020 */ 1512, 1536, 1514, 67, 2113, 617, 2100, 2099, 2196, 31, - /* 2030 */ 2232, 2364, 633, 340, 2198, 707, 2200, 2201, 702, 20, - /* 2040 */ 697, 17, 1751, 21, 263, 2197, 635, 2215, 23, 6, - /* 2050 */ 57, 22, 7, 271, 265, 704, 618, 270, 2165, 2186, - /* 2060 */ 703, 33, 65, 172, 257, 2381, 2197, 1491, 1490, 24, - /* 2070 */ 1766, 623, 1765, 386, 1770, 269, 704, 625, 1516, 1769, - /* 2080 */ 1732, 1724, 18, 32, 2215, 95, 164, 387, 397, 283, - /* 2090 */ 1771, 1772, 59, 1697, 2196, 2165, 2232, 703, 1696, 339, - /* 2100 */ 2198, 707, 2200, 2201, 702, 2215, 697, 177, 2251, 399, - /* 2110 */ 2098, 2077, 97, 96, 2076, 289, 2165, 25, 703, 290, - /* 2120 */ 1730, 292, 297, 68, 2197, 99, 678, 302, 26, 13, - /* 2130 */ 1572, 2196, 101, 2232, 704, 105, 340, 2198, 707, 2200, - /* 2140 */ 2201, 702, 1649, 697, 1648, 2197, 1659, 299, 2235, 11, - /* 2150 */ 1627, 1625, 2196, 696, 2232, 704, 39, 340, 2198, 707, - /* 2160 */ 2200, 2201, 702, 2215, 697, 1624, 179, 16, 27, 192, - /* 2170 */ 1596, 58, 1604, 28, 2165, 1386, 703, 706, 710, 400, - /* 2180 */ 712, 714, 1383, 708, 2215, 715, 717, 1382, 718, 720, - /* 2190 */ 723, 1379, 721, 726, 1373, 2165, 724, 703, 1371, 727, - /* 2200 */ 1377, 1376, 1375, 2197, 1362, 1374, 733, 106, 305, 107, - /* 2210 */ 608, 1395, 2232, 704, 1391, 335, 2198, 707, 2200, 2201, - /* 2220 */ 702, 75, 697, 1295, 1294, 1293, 1263, 743, 1292, 1290, - /* 2230 */ 1288, 2196, 1287, 2232, 1286, 2197, 325, 2198, 707, 2200, - /* 2240 */ 2201, 702, 2215, 697, 1321, 704, 753, 306, 1284, 1281, - /* 2250 */ 1283, 1282, 1280, 2165, 1279, 703, 1278, 1316, 1318, 1275, - /* 2260 */ 1274, 1271, 1269, 2197, 1270, 1268, 1858, 773, 1856, 774, - /* 2270 */ 775, 1854, 777, 704, 2215, 1851, 781, 778, 779, 785, - /* 2280 */ 1833, 783, 782, 786, 787, 2165, 789, 703, 1210, 2196, - /* 2290 */ 1810, 2232, 309, 793, 323, 2198, 707, 2200, 2201, 702, - /* 2300 */ 1558, 697, 2215, 319, 796, 797, 1785, 1785, 1785, 1785, - /* 2310 */ 1785, 1785, 1785, 2165, 1785, 703, 1785, 1785, 1785, 1785, - /* 2320 */ 1785, 2196, 1785, 2232, 1785, 1785, 326, 2198, 707, 2200, - /* 2330 */ 2201, 702, 1785, 697, 2197, 1785, 1785, 1785, 1785, 1785, - /* 2340 */ 1785, 1785, 1785, 1785, 704, 1785, 1785, 1785, 1785, 2196, - /* 2350 */ 2197, 2232, 1785, 1785, 332, 2198, 707, 2200, 2201, 702, - /* 2360 */ 704, 697, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2370 */ 1785, 1785, 1785, 2215, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2380 */ 1785, 1785, 1785, 1785, 2165, 1785, 703, 1785, 1785, 2215, - /* 2390 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2400 */ 2165, 1785, 703, 1785, 1785, 1785, 1785, 1785, 2197, 1785, - /* 2410 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 704, 1785, - /* 2420 */ 2196, 1785, 2232, 1785, 1785, 336, 2198, 707, 2200, 2201, - /* 2430 */ 702, 1785, 697, 1785, 1785, 1785, 2196, 1785, 2232, 2197, - /* 2440 */ 1785, 328, 2198, 707, 2200, 2201, 702, 2215, 697, 704, - /* 2450 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2165, 1785, - /* 2460 */ 703, 1785, 1785, 1785, 1785, 1785, 2197, 1785, 1785, 1785, - /* 2470 */ 1785, 1785, 1785, 1785, 1785, 1785, 704, 1785, 2215, 1785, - /* 2480 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2165, - /* 2490 */ 1785, 703, 1785, 1785, 2196, 1785, 2232, 2197, 1785, 337, - /* 2500 */ 2198, 707, 2200, 2201, 702, 2215, 697, 704, 1785, 1785, - /* 2510 */ 1785, 1785, 1785, 1785, 1785, 1785, 2165, 1785, 703, 1785, - /* 2520 */ 1785, 1785, 1785, 1785, 1785, 2196, 1785, 2232, 1785, 1785, - /* 2530 */ 329, 2198, 707, 2200, 2201, 702, 2215, 697, 1785, 1785, - /* 2540 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2165, 1785, 703, - /* 2550 */ 1785, 1785, 2196, 1785, 2232, 2197, 1785, 338, 2198, 707, - /* 2560 */ 2200, 2201, 702, 1785, 697, 704, 1785, 1785, 1785, 1785, - /* 2570 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2197, 1785, 1785, - /* 2580 */ 1785, 1785, 1785, 2196, 1785, 2232, 1785, 704, 330, 2198, - /* 2590 */ 707, 2200, 2201, 702, 2215, 697, 1785, 1785, 1785, 1785, - /* 2600 */ 1785, 1785, 1785, 1785, 1785, 2165, 1785, 703, 1785, 1785, - /* 2610 */ 1785, 1785, 1785, 1785, 1785, 1785, 2215, 1785, 1785, 1785, - /* 2620 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2165, 1785, 703, - /* 2630 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2640 */ 1785, 2196, 1785, 2232, 2197, 1785, 343, 2198, 707, 2200, - /* 2650 */ 2201, 702, 1785, 697, 704, 1785, 1785, 1785, 1785, 1785, - /* 2660 */ 1785, 1785, 1785, 2196, 1785, 2232, 1785, 1785, 344, 2198, - /* 2670 */ 707, 2200, 2201, 702, 1785, 697, 2197, 1785, 1785, 1785, - /* 2680 */ 1785, 1785, 1785, 2215, 1785, 1785, 704, 1785, 1785, 1785, - /* 2690 */ 1785, 1785, 1785, 1785, 2165, 1785, 703, 1785, 1785, 1785, - /* 2700 */ 1785, 1785, 2197, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2710 */ 1785, 1785, 704, 1785, 1785, 2215, 1785, 1785, 1785, 1785, - /* 2720 */ 1785, 1785, 1785, 1785, 1785, 1785, 2165, 1785, 703, 1785, - /* 2730 */ 2196, 1785, 2232, 1785, 1785, 2209, 2198, 707, 2200, 2201, - /* 2740 */ 702, 2215, 697, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2750 */ 1785, 1785, 2165, 1785, 703, 1785, 1785, 1785, 1785, 1785, - /* 2760 */ 1785, 1785, 2196, 1785, 2232, 1785, 1785, 2208, 2198, 707, - /* 2770 */ 2200, 2201, 702, 1785, 697, 1785, 1785, 1785, 1785, 1785, - /* 2780 */ 1785, 2197, 1785, 1785, 1785, 1785, 1785, 1785, 2196, 1785, - /* 2790 */ 2232, 704, 1785, 2207, 2198, 707, 2200, 2201, 702, 1785, - /* 2800 */ 697, 1785, 2197, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2810 */ 1785, 1785, 704, 1785, 1785, 1785, 1785, 1785, 2197, 1785, - /* 2820 */ 2215, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 704, 1785, - /* 2830 */ 1785, 2165, 1785, 703, 1785, 1785, 1785, 1785, 1785, 2197, - /* 2840 */ 1785, 2215, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 704, - /* 2850 */ 1785, 1785, 2165, 1785, 703, 1785, 1785, 2215, 1785, 1785, - /* 2860 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2196, 2165, 2232, - /* 2870 */ 703, 1785, 359, 2198, 707, 2200, 2201, 702, 2215, 697, - /* 2880 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2196, 2165, - /* 2890 */ 2232, 703, 1785, 360, 2198, 707, 2200, 2201, 702, 1785, - /* 2900 */ 697, 1785, 1785, 1785, 2196, 1785, 2232, 2197, 1785, 356, - /* 2910 */ 2198, 707, 2200, 2201, 702, 1785, 697, 704, 1785, 1785, - /* 2920 */ 1785, 1785, 1785, 1785, 1785, 2196, 1785, 2232, 1785, 2197, - /* 2930 */ 361, 2198, 707, 2200, 2201, 702, 1785, 697, 1785, 704, - /* 2940 */ 1785, 1785, 1785, 1785, 1785, 1785, 2215, 1785, 1785, 1785, - /* 2950 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2165, 1785, 703, - /* 2960 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2215, 1785, - /* 2970 */ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 2165, - /* 2980 */ 1785, 703, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, - /* 2990 */ 1785, 1785, 1785, 705, 1785, 2232, 1785, 1785, 335, 2198, - /* 3000 */ 707, 2200, 2201, 702, 1785, 697, 1785, 1785, 1785, 1785, - /* 3010 */ 1785, 1785, 1785, 1785, 1785, 2196, 1785, 2232, 1785, 1785, - /* 3020 */ 334, 2198, 707, 2200, 2201, 702, 1785, 697, + /* 0 */ 735, 2198, 2176, 532, 2018, 2159, 533, 1823, 90, 450, + /* 10 */ 364, 705, 48, 46, 1710, 169, 2184, 1799, 2016, 181, + /* 20 */ 398, 2087, 1557, 41, 40, 368, 2180, 47, 45, 44, + /* 30 */ 43, 42, 66, 1638, 1959, 1555, 2085, 675, 366, 2070, + /* 40 */ 2216, 146, 41, 40, 2257, 2087, 47, 45, 44, 43, + /* 50 */ 42, 2166, 628, 704, 345, 2360, 2176, 391, 401, 2198, + /* 60 */ 2084, 675, 1633, 1582, 2182, 395, 1966, 163, 19, 668, + /* 70 */ 1955, 2366, 188, 380, 698, 1563, 2361, 654, 30, 687, + /* 80 */ 2180, 2016, 653, 358, 537, 2360, 2059, 2197, 2365, 2233, + /* 90 */ 534, 2360, 170, 2199, 708, 2201, 2202, 703, 2216, 698, + /* 100 */ 796, 652, 188, 15, 38, 303, 2361, 654, 2364, 2166, + /* 110 */ 673, 704, 2361, 2363, 2012, 2013, 48, 46, 2182, 47, + /* 120 */ 45, 44, 43, 42, 398, 453, 1557, 1667, 698, 688, + /* 130 */ 1964, 62, 62, 629, 2325, 407, 406, 1638, 1750, 1555, + /* 140 */ 1640, 1641, 221, 1242, 1243, 2197, 535, 2233, 1830, 135, + /* 150 */ 112, 2199, 708, 2201, 2202, 703, 572, 698, 1564, 223, + /* 160 */ 688, 1964, 185, 535, 2286, 1830, 1633, 674, 394, 2282, + /* 170 */ 1613, 1623, 19, 1582, 688, 1964, 1639, 1642, 168, 1563, + /* 180 */ 135, 549, 190, 627, 1668, 1788, 1905, 577, 568, 567, + /* 190 */ 2314, 1558, 125, 1556, 193, 124, 123, 122, 121, 120, + /* 200 */ 119, 118, 117, 116, 796, 745, 125, 15, 2198, 124, + /* 210 */ 123, 122, 121, 120, 119, 118, 117, 116, 705, 547, + /* 220 */ 1669, 2080, 648, 1561, 1562, 1787, 1612, 1615, 1616, 1617, + /* 230 */ 1618, 1619, 1620, 1621, 1622, 700, 696, 1631, 1632, 1634, + /* 240 */ 1635, 1636, 1637, 2, 1640, 1641, 687, 2216, 1583, 134, + /* 250 */ 133, 132, 131, 130, 129, 128, 127, 126, 2166, 1239, + /* 260 */ 704, 1238, 37, 396, 1662, 1663, 1664, 1665, 1666, 1670, + /* 270 */ 1671, 1672, 1673, 540, 1613, 1623, 533, 1823, 41, 40, + /* 280 */ 1639, 1642, 47, 45, 44, 43, 42, 248, 285, 285, + /* 290 */ 1585, 247, 1240, 687, 2197, 1558, 2233, 1556, 35, 112, + /* 300 */ 2199, 708, 2201, 2202, 703, 643, 698, 60, 1674, 147, + /* 310 */ 184, 155, 2257, 2286, 625, 2198, 1567, 394, 2282, 44, + /* 320 */ 43, 42, 2005, 1466, 1467, 668, 103, 1561, 1562, 51, + /* 330 */ 1612, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 700, + /* 340 */ 696, 1631, 1632, 1634, 1635, 1636, 1637, 2, 12, 48, + /* 350 */ 46, 1957, 93, 737, 2216, 353, 2009, 398, 378, 1557, + /* 360 */ 606, 1373, 1583, 529, 9, 2166, 1582, 704, 1408, 1409, + /* 370 */ 1638, 527, 1555, 647, 523, 519, 51, 1364, 733, 732, + /* 380 */ 731, 1368, 730, 1370, 1371, 729, 726, 2365, 1379, 723, + /* 390 */ 1381, 1382, 720, 717, 714, 649, 644, 637, 2160, 1633, + /* 400 */ 611, 2197, 2216, 2233, 1584, 19, 112, 2199, 708, 2201, + /* 410 */ 2202, 703, 1563, 698, 590, 589, 588, 207, 185, 576, + /* 420 */ 2286, 580, 141, 584, 394, 2282, 371, 583, 12, 2198, + /* 430 */ 570, 569, 582, 587, 374, 373, 2301, 796, 581, 705, + /* 440 */ 15, 575, 262, 392, 595, 628, 2315, 628, 2360, 62, + /* 450 */ 2360, 1966, 166, 48, 46, 1643, 646, 86, 674, 605, + /* 460 */ 85, 398, 2298, 1557, 2366, 188, 2366, 188, 2216, 2361, + /* 470 */ 654, 2361, 654, 246, 1638, 2301, 1555, 1640, 1641, 2166, + /* 480 */ 1785, 704, 1483, 1484, 455, 2066, 41, 40, 1773, 598, + /* 490 */ 47, 45, 44, 43, 42, 372, 592, 370, 369, 2198, + /* 500 */ 574, 2297, 245, 1633, 576, 461, 2066, 1613, 1623, 705, + /* 510 */ 672, 1832, 2080, 1639, 1642, 2197, 1563, 2233, 1482, 1485, + /* 520 */ 113, 2199, 708, 2201, 2202, 703, 575, 698, 1558, 2018, + /* 530 */ 1556, 202, 255, 285, 2286, 379, 665, 144, 2216, 2283, + /* 540 */ 1584, 796, 70, 2016, 49, 69, 12, 1214, 10, 2166, + /* 550 */ 1585, 704, 205, 413, 488, 2066, 284, 1810, 412, 1316, + /* 560 */ 1561, 1562, 674, 1612, 1615, 1616, 1617, 1618, 1619, 1620, + /* 570 */ 1621, 1622, 700, 696, 1631, 1632, 1634, 1635, 1636, 1637, + /* 580 */ 2, 1640, 1641, 604, 1701, 2197, 1216, 2233, 1219, 1220, + /* 590 */ 112, 2199, 708, 2201, 2202, 703, 602, 698, 600, 1318, + /* 600 */ 628, 210, 2380, 2360, 2286, 1809, 285, 2166, 394, 2282, + /* 610 */ 2049, 1613, 1623, 1239, 683, 1238, 2080, 1639, 1642, 2366, + /* 620 */ 188, 586, 585, 1327, 2361, 654, 62, 237, 140, 613, + /* 630 */ 688, 1964, 1558, 1866, 1556, 2176, 1326, 688, 1964, 667, + /* 640 */ 186, 2294, 2295, 173, 142, 2299, 1240, 249, 2198, 2185, + /* 650 */ 56, 566, 562, 558, 554, 2166, 236, 448, 705, 2180, + /* 660 */ 2322, 1780, 767, 765, 1561, 1562, 1563, 1612, 1615, 1616, + /* 670 */ 1617, 1618, 1619, 1620, 1621, 1622, 700, 696, 1631, 1632, + /* 680 */ 1634, 1635, 1636, 1637, 2, 48, 46, 2216, 495, 688, + /* 690 */ 1964, 736, 284, 398, 2301, 1557, 91, 2182, 2166, 234, + /* 700 */ 704, 504, 203, 590, 589, 588, 1638, 698, 1555, 449, + /* 710 */ 580, 141, 584, 442, 444, 441, 583, 1528, 1529, 443, + /* 720 */ 2296, 582, 587, 374, 373, 41, 40, 581, 52, 47, + /* 730 */ 45, 44, 43, 42, 2197, 1633, 2233, 669, 432, 112, + /* 740 */ 2199, 708, 2201, 2202, 703, 440, 698, 158, 1563, 212, + /* 750 */ 211, 2380, 403, 2286, 699, 2011, 2013, 394, 2282, 688, + /* 760 */ 1964, 628, 401, 1779, 2360, 434, 430, 233, 227, 473, + /* 770 */ 1966, 166, 494, 796, 232, 545, 49, 1738, 472, 463, + /* 780 */ 2366, 188, 2149, 285, 628, 2361, 654, 2360, 2018, 48, + /* 790 */ 46, 1953, 166, 225, 388, 1808, 2198, 398, 181, 1557, + /* 800 */ 688, 1964, 2016, 2366, 188, 2018, 705, 55, 2361, 654, + /* 810 */ 1638, 393, 1555, 1640, 1641, 665, 144, 1714, 2071, 2016, + /* 820 */ 478, 1749, 1941, 1582, 640, 639, 1736, 1737, 1739, 1740, + /* 830 */ 1741, 2365, 2131, 404, 2360, 2216, 1807, 665, 144, 1633, + /* 840 */ 2364, 1966, 166, 1613, 1623, 2166, 2166, 755, 704, 1639, + /* 850 */ 1642, 2364, 1563, 41, 40, 2361, 2362, 47, 45, 44, + /* 860 */ 43, 42, 34, 258, 1558, 1940, 1556, 741, 41, 40, + /* 870 */ 2009, 1906, 47, 45, 44, 43, 42, 796, 688, 1964, + /* 880 */ 15, 250, 2197, 2198, 2233, 285, 2166, 171, 2199, 708, + /* 890 */ 2201, 2202, 703, 705, 698, 2335, 1561, 1562, 479, 1612, + /* 900 */ 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 700, 696, + /* 910 */ 1631, 1632, 1634, 1635, 1636, 1637, 2, 1640, 1641, 187, + /* 920 */ 2294, 2295, 2216, 142, 2299, 90, 690, 109, 2258, 1707, + /* 930 */ 688, 1964, 745, 2166, 692, 704, 2258, 743, 1800, 655, + /* 940 */ 2381, 189, 2294, 2295, 145, 142, 2299, 1613, 1623, 1726, + /* 950 */ 548, 1960, 1956, 1639, 1642, 279, 160, 159, 740, 739, + /* 960 */ 738, 157, 688, 1964, 742, 688, 1964, 2009, 1558, 2197, + /* 970 */ 1556, 2233, 2328, 1614, 112, 2199, 708, 2201, 2202, 703, + /* 980 */ 2187, 698, 1961, 1648, 36, 685, 2380, 1939, 2286, 1582, + /* 990 */ 41, 40, 394, 2282, 47, 45, 44, 43, 42, 427, + /* 1000 */ 1561, 1562, 1863, 1612, 1615, 1616, 1617, 1618, 1619, 1620, + /* 1010 */ 1621, 1622, 700, 696, 1631, 1632, 1634, 1635, 1636, 1637, + /* 1020 */ 2, 2018, 349, 167, 1580, 688, 1964, 402, 324, 688, + /* 1030 */ 1964, 486, 688, 1964, 502, 2016, 2189, 501, 688, 1964, + /* 1040 */ 14, 13, 321, 73, 1582, 251, 72, 688, 1964, 259, + /* 1050 */ 1331, 273, 671, 469, 1806, 503, 317, 346, 298, 1995, + /* 1060 */ 471, 1219, 1220, 1330, 1805, 1804, 139, 686, 219, 514, + /* 1070 */ 512, 509, 773, 772, 771, 770, 410, 1803, 769, 768, + /* 1080 */ 148, 763, 762, 761, 760, 759, 758, 757, 162, 753, + /* 1090 */ 752, 751, 409, 408, 748, 747, 746, 176, 175, 1802, + /* 1100 */ 688, 1964, 743, 657, 2166, 1585, 367, 1222, 62, 688, + /* 1110 */ 1964, 294, 295, 1581, 2166, 2166, 293, 656, 457, 1557, + /* 1120 */ 304, 160, 159, 740, 739, 738, 157, 2166, 506, 405, + /* 1130 */ 41, 40, 1555, 2152, 47, 45, 44, 43, 42, 1614, + /* 1140 */ 665, 144, 54, 1681, 3, 1801, 1798, 111, 499, 2166, + /* 1150 */ 1797, 493, 492, 491, 490, 485, 484, 483, 482, 481, + /* 1160 */ 477, 476, 475, 474, 348, 466, 465, 464, 1796, 459, + /* 1170 */ 458, 365, 1563, 41, 40, 1949, 166, 47, 45, 44, + /* 1180 */ 43, 42, 420, 1795, 1794, 1793, 1706, 1792, 81, 80, + /* 1190 */ 447, 2198, 743, 200, 1614, 2166, 2166, 796, 1951, 166, + /* 1200 */ 2166, 705, 756, 635, 1791, 1926, 439, 437, 1947, 166, + /* 1210 */ 158, 160, 159, 740, 739, 738, 157, 347, 2166, 2198, + /* 1220 */ 428, 2306, 1701, 426, 422, 418, 415, 440, 1790, 705, + /* 1230 */ 2216, 2353, 1942, 2166, 2166, 2166, 653, 2166, 83, 2360, + /* 1240 */ 137, 2166, 74, 704, 282, 2294, 664, 242, 136, 663, + /* 1250 */ 240, 2360, 2198, 695, 2166, 652, 188, 261, 2216, 578, + /* 1260 */ 2361, 654, 705, 158, 2305, 285, 2018, 652, 188, 2166, + /* 1270 */ 1523, 704, 2361, 654, 1967, 166, 149, 2197, 2166, 2233, + /* 1280 */ 2017, 1314, 112, 2199, 708, 2201, 2202, 703, 1558, 698, + /* 1290 */ 1556, 2216, 84, 260, 2380, 151, 2286, 608, 150, 607, + /* 1300 */ 394, 2282, 2166, 579, 704, 2197, 244, 2233, 1850, 243, + /* 1310 */ 112, 2199, 708, 2201, 2202, 703, 153, 698, 50, 152, + /* 1320 */ 1561, 1562, 2380, 1526, 2286, 1312, 50, 1566, 394, 2282, + /* 1330 */ 591, 266, 1782, 1783, 1565, 660, 94, 165, 2197, 158, + /* 1340 */ 2233, 658, 2198, 112, 2199, 708, 2201, 2202, 703, 1841, + /* 1350 */ 698, 1839, 705, 407, 406, 2380, 641, 2286, 50, 291, + /* 1360 */ 1904, 394, 2282, 1571, 71, 156, 158, 14, 13, 64, + /* 1370 */ 2198, 593, 108, 596, 1638, 1903, 1564, 2217, 1735, 411, + /* 1380 */ 705, 2216, 105, 50, 50, 381, 1734, 1273, 749, 712, + /* 1390 */ 156, 268, 2166, 2075, 704, 750, 1833, 158, 1824, 670, + /* 1400 */ 138, 1829, 2006, 1633, 2318, 666, 281, 156, 1659, 2216, + /* 1410 */ 1292, 278, 1, 5, 419, 1588, 1563, 1290, 1480, 296, + /* 1420 */ 2166, 414, 704, 362, 680, 300, 1357, 1274, 2197, 1675, + /* 1430 */ 2233, 436, 2198, 112, 2199, 708, 2201, 2202, 703, 435, + /* 1440 */ 698, 694, 705, 1624, 316, 2261, 791, 2286, 195, 1386, + /* 1450 */ 1390, 394, 2282, 196, 438, 198, 2197, 1397, 2233, 1504, + /* 1460 */ 1395, 112, 2199, 708, 2201, 2202, 703, 161, 698, 311, + /* 1470 */ 1581, 2216, 454, 2259, 209, 2286, 456, 1585, 460, 394, + /* 1480 */ 2282, 2076, 2166, 467, 704, 1569, 462, 497, 1580, 480, + /* 1490 */ 489, 2068, 1568, 487, 496, 498, 214, 508, 507, 2198, + /* 1500 */ 505, 510, 216, 513, 515, 213, 511, 1586, 4, 705, + /* 1510 */ 530, 614, 538, 1583, 224, 531, 541, 539, 2197, 542, + /* 1520 */ 2233, 226, 1587, 112, 2199, 708, 2201, 2202, 703, 799, + /* 1530 */ 698, 543, 1572, 1589, 1567, 691, 544, 2286, 2216, 229, + /* 1540 */ 231, 394, 2282, 310, 550, 546, 88, 571, 89, 2166, + /* 1550 */ 235, 704, 573, 1954, 239, 1950, 241, 1952, 1948, 180, + /* 1560 */ 114, 2198, 2140, 612, 1575, 1577, 352, 789, 785, 781, + /* 1570 */ 777, 705, 308, 2137, 2136, 661, 92, 696, 1631, 1632, + /* 1580 */ 1634, 1635, 1636, 1637, 610, 2197, 154, 2233, 616, 615, + /* 1590 */ 113, 2199, 708, 2201, 2202, 703, 252, 698, 620, 256, + /* 1600 */ 2216, 1511, 622, 623, 2286, 312, 617, 2319, 2285, 2282, + /* 1610 */ 678, 2166, 110, 704, 254, 301, 621, 2329, 632, 642, + /* 1620 */ 264, 638, 651, 267, 2198, 2334, 384, 2333, 645, 276, + /* 1630 */ 272, 8, 2308, 631, 705, 630, 633, 277, 1701, 143, + /* 1640 */ 1584, 659, 662, 2383, 385, 1704, 2302, 2197, 684, 2233, + /* 1650 */ 178, 286, 113, 2199, 708, 2201, 2202, 703, 98, 698, + /* 1660 */ 1590, 2081, 313, 2216, 676, 174, 2286, 274, 275, 677, + /* 1670 */ 693, 2282, 2095, 191, 2166, 2094, 704, 2093, 314, 681, + /* 1680 */ 390, 100, 2359, 288, 315, 2198, 102, 280, 682, 1965, + /* 1690 */ 287, 61, 2267, 104, 710, 702, 2010, 1927, 318, 792, + /* 1700 */ 307, 342, 2158, 2198, 354, 793, 327, 795, 53, 253, + /* 1710 */ 706, 355, 2233, 705, 2157, 113, 2199, 708, 2201, 2202, + /* 1720 */ 703, 2156, 698, 322, 2216, 78, 2153, 320, 416, 2286, + /* 1730 */ 417, 1548, 1549, 357, 2282, 2166, 194, 704, 421, 2151, + /* 1740 */ 341, 331, 2216, 423, 424, 425, 2150, 2148, 363, 2147, + /* 1750 */ 429, 431, 2146, 2166, 433, 704, 1539, 2127, 197, 2126, + /* 1760 */ 199, 1507, 79, 1506, 2198, 2108, 2107, 2106, 445, 446, + /* 1770 */ 2105, 2197, 2104, 2233, 705, 1457, 339, 2199, 708, 2201, + /* 1780 */ 2202, 703, 701, 698, 689, 2251, 2058, 452, 451, 2197, + /* 1790 */ 2055, 2233, 201, 2054, 170, 2199, 708, 2201, 2202, 703, + /* 1800 */ 82, 698, 2053, 2216, 206, 2045, 468, 382, 2052, 2057, + /* 1810 */ 204, 2056, 2051, 2050, 2166, 2048, 704, 2047, 2046, 470, + /* 1820 */ 2061, 2044, 2198, 2043, 2042, 2041, 2040, 2039, 2038, 2037, + /* 1830 */ 2036, 2035, 705, 2034, 2033, 2032, 2326, 2031, 2030, 208, + /* 1840 */ 2029, 2198, 87, 2028, 2027, 2026, 2060, 2025, 2024, 2023, + /* 1850 */ 2197, 705, 2233, 2022, 1459, 340, 2199, 708, 2201, 2202, + /* 1860 */ 703, 2216, 698, 2021, 2020, 383, 500, 2019, 1869, 215, + /* 1870 */ 350, 1868, 2166, 1328, 704, 1867, 1332, 1324, 217, 1865, + /* 1880 */ 2216, 218, 1862, 1861, 351, 516, 1854, 520, 517, 1843, + /* 1890 */ 521, 2166, 524, 704, 518, 522, 528, 1819, 526, 1221, + /* 1900 */ 1818, 2125, 220, 2115, 76, 2103, 222, 525, 2197, 77, + /* 1910 */ 2233, 2102, 228, 340, 2199, 708, 2201, 2202, 703, 2186, + /* 1920 */ 698, 2198, 182, 183, 536, 230, 2079, 2197, 1943, 2233, + /* 1930 */ 1864, 705, 333, 2199, 708, 2201, 2202, 703, 1266, 698, + /* 1940 */ 1860, 551, 2198, 553, 552, 1858, 557, 555, 556, 1856, + /* 1950 */ 559, 560, 705, 561, 1853, 563, 565, 564, 1838, 1836, + /* 1960 */ 2216, 1837, 1835, 1815, 1945, 1401, 1402, 1944, 1315, 1313, + /* 1970 */ 1311, 2166, 1310, 704, 1309, 1302, 650, 1308, 1851, 1307, + /* 1980 */ 764, 2216, 766, 1304, 1842, 389, 63, 1303, 375, 1840, + /* 1990 */ 238, 1301, 2166, 376, 704, 377, 1814, 594, 1813, 1812, + /* 2000 */ 597, 603, 115, 599, 601, 1533, 2124, 2197, 2198, 2233, + /* 2010 */ 1535, 1532, 171, 2199, 708, 2201, 2202, 703, 702, 698, + /* 2020 */ 1537, 29, 67, 1513, 1515, 2114, 618, 2101, 2197, 2100, + /* 2030 */ 2233, 2365, 17, 340, 2199, 708, 2201, 2202, 703, 20, + /* 2040 */ 698, 21, 6, 23, 31, 2198, 65, 2216, 7, 636, + /* 2050 */ 271, 1752, 22, 57, 263, 705, 634, 270, 2166, 2187, + /* 2060 */ 704, 265, 619, 1492, 1733, 2382, 2198, 257, 1491, 283, + /* 2070 */ 624, 1767, 1766, 386, 33, 172, 705, 269, 24, 1771, + /* 2080 */ 32, 164, 1517, 95, 2216, 1725, 1770, 626, 397, 1772, + /* 2090 */ 1773, 387, 59, 177, 2197, 2166, 2233, 704, 97, 339, + /* 2100 */ 2199, 708, 2201, 2202, 703, 2216, 698, 2099, 2252, 399, + /* 2110 */ 2078, 1698, 289, 2077, 1697, 290, 2166, 96, 704, 25, + /* 2120 */ 99, 1731, 292, 297, 2198, 302, 68, 101, 105, 26, + /* 2130 */ 13, 2197, 1650, 2233, 705, 2236, 340, 2199, 708, 2201, + /* 2140 */ 2202, 703, 1649, 698, 1573, 2198, 58, 1660, 179, 1628, + /* 2150 */ 697, 192, 2197, 1626, 2233, 705, 299, 340, 2199, 708, + /* 2160 */ 2201, 2202, 703, 2216, 698, 679, 11, 39, 1605, 709, + /* 2170 */ 1625, 16, 27, 28, 2166, 1597, 704, 18, 1387, 711, + /* 2180 */ 400, 1384, 713, 715, 2216, 716, 718, 1383, 1380, 719, + /* 2190 */ 721, 722, 724, 1374, 725, 2166, 1372, 704, 727, 728, + /* 2200 */ 1363, 1378, 1377, 2198, 305, 734, 1376, 1396, 106, 107, + /* 2210 */ 609, 75, 2233, 705, 1392, 335, 2199, 708, 2201, 2202, + /* 2220 */ 703, 1375, 698, 1264, 1296, 1295, 707, 744, 1294, 1293, + /* 2230 */ 1291, 2197, 1289, 2233, 1288, 2198, 325, 2199, 708, 2201, + /* 2240 */ 2202, 703, 2216, 698, 1287, 705, 1322, 754, 306, 1282, + /* 2250 */ 1285, 1284, 1283, 2166, 1281, 704, 1280, 1279, 1319, 1317, + /* 2260 */ 1276, 1275, 1270, 2198, 1272, 1271, 1269, 1859, 774, 775, + /* 2270 */ 1857, 776, 778, 705, 2216, 1855, 782, 779, 780, 1852, + /* 2280 */ 786, 784, 788, 783, 787, 2166, 1834, 704, 790, 2197, + /* 2290 */ 1211, 2233, 1811, 309, 323, 2199, 708, 2201, 2202, 703, + /* 2300 */ 1559, 698, 2216, 794, 798, 319, 797, 1786, 1786, 1786, + /* 2310 */ 1786, 1786, 1786, 2166, 1786, 704, 1786, 1786, 1786, 1786, + /* 2320 */ 1786, 2197, 1786, 2233, 1786, 1786, 326, 2199, 708, 2201, + /* 2330 */ 2202, 703, 1786, 698, 2198, 1786, 1786, 1786, 1786, 1786, + /* 2340 */ 1786, 1786, 1786, 1786, 705, 1786, 1786, 1786, 1786, 2197, + /* 2350 */ 2198, 2233, 1786, 1786, 332, 2199, 708, 2201, 2202, 703, + /* 2360 */ 705, 698, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2370 */ 1786, 1786, 1786, 2216, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2380 */ 1786, 1786, 1786, 1786, 2166, 1786, 704, 1786, 1786, 2216, + /* 2390 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2400 */ 2166, 1786, 704, 1786, 1786, 1786, 1786, 1786, 2198, 1786, + /* 2410 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 705, 1786, + /* 2420 */ 2197, 1786, 2233, 1786, 1786, 336, 2199, 708, 2201, 2202, + /* 2430 */ 703, 1786, 698, 1786, 1786, 1786, 2197, 1786, 2233, 2198, + /* 2440 */ 1786, 328, 2199, 708, 2201, 2202, 703, 2216, 698, 705, + /* 2450 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2166, 1786, + /* 2460 */ 704, 1786, 1786, 1786, 1786, 1786, 2198, 1786, 1786, 1786, + /* 2470 */ 1786, 1786, 1786, 1786, 1786, 1786, 705, 1786, 2216, 1786, + /* 2480 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2166, + /* 2490 */ 1786, 704, 1786, 1786, 2197, 1786, 2233, 2198, 1786, 337, + /* 2500 */ 2199, 708, 2201, 2202, 703, 2216, 698, 705, 1786, 1786, + /* 2510 */ 1786, 1786, 1786, 1786, 1786, 1786, 2166, 1786, 704, 1786, + /* 2520 */ 1786, 1786, 1786, 1786, 1786, 2197, 1786, 2233, 1786, 1786, + /* 2530 */ 329, 2199, 708, 2201, 2202, 703, 2216, 698, 1786, 1786, + /* 2540 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2166, 1786, 704, + /* 2550 */ 1786, 1786, 2197, 1786, 2233, 2198, 1786, 338, 2199, 708, + /* 2560 */ 2201, 2202, 703, 1786, 698, 705, 1786, 1786, 1786, 1786, + /* 2570 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2198, 1786, 1786, + /* 2580 */ 1786, 1786, 1786, 2197, 1786, 2233, 1786, 705, 330, 2199, + /* 2590 */ 708, 2201, 2202, 703, 2216, 698, 1786, 1786, 1786, 1786, + /* 2600 */ 1786, 1786, 1786, 1786, 1786, 2166, 1786, 704, 1786, 1786, + /* 2610 */ 1786, 1786, 1786, 1786, 1786, 1786, 2216, 1786, 1786, 1786, + /* 2620 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2166, 1786, 704, + /* 2630 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2640 */ 1786, 2197, 1786, 2233, 2198, 1786, 343, 2199, 708, 2201, + /* 2650 */ 2202, 703, 1786, 698, 705, 1786, 1786, 1786, 1786, 1786, + /* 2660 */ 1786, 1786, 1786, 2197, 1786, 2233, 1786, 1786, 344, 2199, + /* 2670 */ 708, 2201, 2202, 703, 1786, 698, 2198, 1786, 1786, 1786, + /* 2680 */ 1786, 1786, 1786, 2216, 1786, 1786, 705, 1786, 1786, 1786, + /* 2690 */ 1786, 1786, 1786, 1786, 2166, 1786, 704, 1786, 1786, 1786, + /* 2700 */ 1786, 1786, 2198, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2710 */ 1786, 1786, 705, 1786, 1786, 2216, 1786, 1786, 1786, 1786, + /* 2720 */ 1786, 1786, 1786, 1786, 1786, 1786, 2166, 1786, 704, 1786, + /* 2730 */ 2197, 1786, 2233, 1786, 1786, 2210, 2199, 708, 2201, 2202, + /* 2740 */ 703, 2216, 698, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2750 */ 1786, 1786, 2166, 1786, 704, 1786, 1786, 1786, 1786, 1786, + /* 2760 */ 1786, 1786, 2197, 1786, 2233, 1786, 1786, 2209, 2199, 708, + /* 2770 */ 2201, 2202, 703, 1786, 698, 1786, 1786, 1786, 1786, 1786, + /* 2780 */ 1786, 2198, 1786, 1786, 1786, 1786, 1786, 1786, 2197, 1786, + /* 2790 */ 2233, 705, 1786, 2208, 2199, 708, 2201, 2202, 703, 1786, + /* 2800 */ 698, 1786, 2198, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2810 */ 1786, 1786, 705, 1786, 1786, 1786, 1786, 1786, 2198, 1786, + /* 2820 */ 2216, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 705, 1786, + /* 2830 */ 1786, 2166, 1786, 704, 1786, 1786, 1786, 1786, 1786, 2198, + /* 2840 */ 1786, 2216, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 705, + /* 2850 */ 1786, 1786, 2166, 1786, 704, 1786, 1786, 2216, 1786, 1786, + /* 2860 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2197, 2166, 2233, + /* 2870 */ 704, 1786, 359, 2199, 708, 2201, 2202, 703, 2216, 698, + /* 2880 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2197, 2166, + /* 2890 */ 2233, 704, 1786, 360, 2199, 708, 2201, 2202, 703, 1786, + /* 2900 */ 698, 1786, 1786, 1786, 2197, 1786, 2233, 2198, 1786, 356, + /* 2910 */ 2199, 708, 2201, 2202, 703, 1786, 698, 705, 1786, 1786, + /* 2920 */ 1786, 1786, 1786, 1786, 1786, 2197, 1786, 2233, 1786, 2198, + /* 2930 */ 361, 2199, 708, 2201, 2202, 703, 1786, 698, 1786, 705, + /* 2940 */ 1786, 1786, 1786, 1786, 1786, 1786, 2216, 1786, 1786, 1786, + /* 2950 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2166, 1786, 704, + /* 2960 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2216, 1786, + /* 2970 */ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 2166, + /* 2980 */ 1786, 704, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, + /* 2990 */ 1786, 1786, 1786, 706, 1786, 2233, 1786, 1786, 335, 2199, + /* 3000 */ 708, 2201, 2202, 703, 1786, 698, 1786, 1786, 1786, 1786, + /* 3010 */ 1786, 1786, 1786, 1786, 1786, 2197, 1786, 2233, 1786, 1786, + /* 3020 */ 334, 2199, 708, 2201, 2202, 703, 1786, 698, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 387, 341, 367, 345, 380, 411, 348, 349, 359, 350, @@ -872,21 +872,21 @@ static const YYCODETYPE yy_lookahead[] = { /* 50 */ 16, 391, 458, 393, 395, 461, 367, 405, 371, 341, /* 60 */ 408, 409, 62, 20, 429, 430, 379, 380, 68, 351, /* 70 */ 381, 477, 478, 386, 439, 75, 482, 483, 44, 20, - /* 80 */ 391, 394, 458, 68, 14, 461, 20, 427, 458, 429, + /* 80 */ 391, 394, 458, 68, 14, 461, 0, 427, 458, 429, /* 90 */ 20, 461, 432, 433, 434, 435, 436, 437, 380, 439, /* 100 */ 100, 477, 478, 103, 447, 448, 482, 483, 478, 391, /* 110 */ 20, 393, 482, 483, 392, 393, 12, 13, 429, 12, - /* 120 */ 13, 14, 15, 16, 20, 47, 22, 112, 439, 350, + /* 120 */ 13, 14, 15, 16, 20, 39, 22, 112, 439, 350, /* 130 */ 351, 103, 103, 473, 474, 12, 13, 33, 104, 35, /* 140 */ 140, 141, 346, 54, 55, 427, 350, 429, 352, 370, /* 150 */ 432, 433, 434, 435, 436, 437, 377, 439, 35, 346, /* 160 */ 350, 351, 444, 350, 446, 352, 62, 350, 450, 451, /* 170 */ 170, 171, 68, 20, 350, 351, 176, 177, 360, 75, - /* 180 */ 370, 103, 464, 48, 169, 0, 368, 377, 355, 356, + /* 180 */ 370, 67, 464, 48, 169, 0, 368, 377, 355, 356, /* 190 */ 472, 191, 21, 193, 370, 24, 25, 26, 27, 28, /* 200 */ 29, 30, 31, 32, 100, 67, 21, 103, 341, 24, /* 210 */ 25, 26, 27, 28, 29, 30, 31, 32, 351, 402, - /* 220 */ 169, 404, 75, 223, 224, 0, 226, 227, 228, 229, + /* 220 */ 169, 404, 20, 223, 224, 0, 226, 227, 228, 229, /* 230 */ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, /* 240 */ 240, 241, 242, 243, 140, 141, 20, 380, 20, 24, /* 250 */ 25, 26, 27, 28, 29, 30, 31, 32, 391, 20, @@ -906,7 +906,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 390 */ 129, 130, 131, 132, 133, 265, 266, 267, 411, 62, /* 400 */ 411, 427, 380, 429, 20, 68, 432, 433, 434, 435, /* 410 */ 436, 437, 75, 439, 70, 71, 72, 62, 444, 115, - /* 420 */ 446, 77, 78, 79, 450, 451, 37, 83, 67, 341, + /* 420 */ 446, 77, 78, 79, 450, 451, 37, 83, 244, 341, /* 430 */ 355, 356, 88, 89, 90, 91, 431, 100, 94, 351, /* 440 */ 103, 137, 172, 371, 4, 458, 472, 458, 461, 103, /* 450 */ 461, 379, 380, 12, 13, 14, 434, 102, 350, 19, @@ -917,7 +917,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 500 */ 111, 457, 62, 62, 115, 350, 351, 170, 171, 351, /* 510 */ 402, 353, 404, 176, 177, 427, 75, 429, 176, 177, /* 520 */ 432, 433, 434, 435, 436, 437, 137, 439, 191, 380, - /* 530 */ 193, 397, 244, 260, 446, 386, 350, 351, 380, 451, + /* 530 */ 193, 397, 387, 260, 446, 386, 350, 351, 380, 451, /* 540 */ 20, 100, 102, 394, 103, 105, 244, 4, 246, 391, /* 550 */ 20, 393, 397, 411, 350, 351, 172, 341, 416, 35, /* 560 */ 223, 224, 350, 226, 227, 228, 229, 230, 231, 232, @@ -948,7 +948,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 810 */ 33, 386, 35, 140, 141, 350, 351, 14, 400, 394, /* 820 */ 370, 104, 0, 20, 270, 271, 272, 273, 274, 275, /* 830 */ 276, 458, 375, 371, 461, 380, 341, 350, 351, 62, - /* 840 */ 3, 379, 380, 170, 171, 391, 391, 387, 393, 176, + /* 840 */ 3, 379, 380, 170, 171, 391, 391, 75, 393, 176, /* 850 */ 177, 478, 75, 8, 9, 482, 483, 12, 13, 14, /* 860 */ 15, 16, 2, 417, 191, 0, 193, 388, 8, 9, /* 870 */ 391, 368, 12, 13, 14, 15, 16, 100, 350, 351, @@ -962,14 +962,14 @@ static const YYCODETYPE yy_lookahead[] = { /* 950 */ 370, 385, 382, 176, 177, 486, 134, 135, 136, 137, /* 960 */ 138, 139, 350, 351, 388, 350, 351, 391, 191, 427, /* 970 */ 193, 429, 401, 170, 432, 433, 434, 435, 436, 437, - /* 980 */ 475, 439, 370, 14, 2, 370, 444, 0, 446, 20, + /* 980 */ 47, 439, 370, 14, 2, 370, 444, 0, 446, 20, /* 990 */ 8, 9, 450, 451, 12, 13, 14, 15, 16, 217, /* 1000 */ 223, 224, 0, 226, 227, 228, 229, 230, 231, 232, /* 1010 */ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, /* 1020 */ 243, 380, 18, 18, 20, 350, 351, 386, 23, 350, - /* 1030 */ 351, 27, 350, 351, 30, 394, 469, 33, 350, 351, + /* 1030 */ 351, 27, 350, 351, 30, 394, 103, 33, 350, 351, /* 1040 */ 1, 2, 37, 38, 20, 370, 41, 350, 351, 370, - /* 1050 */ 22, 380, 370, 49, 341, 51, 372, 52, 370, 375, + /* 1050 */ 22, 469, 370, 49, 341, 51, 372, 52, 370, 375, /* 1060 */ 56, 45, 46, 35, 341, 341, 354, 370, 63, 64, /* 1070 */ 65, 66, 70, 71, 72, 73, 74, 341, 76, 77, /* 1080 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, @@ -987,114 +987,114 @@ static const YYCODETYPE yy_lookahead[] = { /* 1200 */ 391, 351, 366, 353, 341, 369, 201, 202, 379, 380, /* 1210 */ 44, 134, 135, 136, 137, 138, 139, 212, 391, 341, /* 1220 */ 215, 258, 259, 218, 219, 220, 221, 222, 341, 351, - /* 1230 */ 380, 353, 0, 391, 391, 391, 458, 391, 44, 461, - /* 1240 */ 22, 391, 114, 393, 454, 455, 456, 107, 458, 459, - /* 1250 */ 110, 461, 341, 35, 391, 477, 478, 172, 380, 13, + /* 1230 */ 380, 353, 0, 391, 391, 391, 458, 391, 42, 461, + /* 1240 */ 44, 391, 114, 393, 454, 455, 456, 107, 458, 459, + /* 1250 */ 110, 461, 341, 68, 391, 477, 478, 172, 380, 13, /* 1260 */ 482, 483, 351, 44, 353, 260, 380, 477, 478, 391, /* 1270 */ 104, 393, 482, 483, 379, 380, 44, 427, 391, 429, /* 1280 */ 394, 35, 432, 433, 434, 435, 436, 437, 191, 439, - /* 1290 */ 193, 380, 164, 62, 444, 42, 446, 44, 104, 44, - /* 1300 */ 450, 451, 391, 107, 393, 427, 110, 429, 13, 0, + /* 1290 */ 193, 380, 164, 62, 444, 107, 446, 207, 110, 209, + /* 1300 */ 450, 451, 391, 13, 393, 427, 107, 429, 0, 110, /* 1310 */ 432, 433, 434, 435, 436, 437, 107, 439, 44, 110, - /* 1320 */ 223, 224, 444, 107, 446, 44, 110, 0, 450, 451, - /* 1330 */ 35, 22, 207, 44, 209, 44, 105, 172, 427, 68, - /* 1340 */ 429, 282, 341, 432, 433, 434, 435, 436, 437, 22, - /* 1350 */ 439, 0, 351, 12, 13, 444, 35, 446, 44, 104, - /* 1360 */ 0, 450, 451, 22, 140, 141, 44, 44, 35, 44, - /* 1370 */ 341, 1, 2, 22, 33, 367, 35, 367, 104, 44, - /* 1380 */ 351, 380, 35, 44, 44, 104, 44, 354, 103, 44, - /* 1390 */ 44, 410, 391, 104, 393, 104, 401, 44, 113, 44, - /* 1400 */ 349, 351, 13, 62, 390, 460, 479, 401, 75, 380, - /* 1410 */ 50, 452, 463, 262, 49, 412, 75, 428, 104, 20, - /* 1420 */ 391, 421, 393, 206, 35, 426, 104, 104, 427, 104, - /* 1430 */ 429, 359, 341, 432, 433, 434, 435, 436, 437, 104, - /* 1440 */ 439, 100, 351, 104, 104, 444, 104, 446, 13, 104, - /* 1450 */ 104, 450, 451, 421, 359, 189, 427, 104, 429, 104, - /* 1460 */ 414, 432, 433, 434, 435, 436, 437, 20, 439, 351, - /* 1470 */ 35, 380, 42, 444, 398, 446, 20, 351, 396, 450, - /* 1480 */ 451, 401, 391, 20, 393, 398, 169, 350, 398, 351, - /* 1490 */ 396, 350, 396, 101, 223, 363, 99, 362, 350, 341, - /* 1500 */ 98, 48, 350, 284, 361, 350, 350, 20, 347, 351, - /* 1510 */ 343, 1, 343, 421, 193, 347, 359, 20, 427, 359, - /* 1520 */ 429, 20, 393, 432, 433, 434, 435, 436, 437, 19, + /* 1320 */ 223, 224, 444, 104, 446, 35, 44, 35, 450, 451, + /* 1330 */ 22, 44, 140, 141, 35, 44, 105, 172, 427, 44, + /* 1340 */ 429, 282, 341, 432, 433, 434, 435, 436, 437, 0, + /* 1350 */ 439, 0, 351, 12, 13, 444, 475, 446, 44, 44, + /* 1360 */ 367, 450, 451, 22, 44, 44, 44, 1, 2, 44, + /* 1370 */ 341, 22, 103, 22, 33, 367, 35, 380, 104, 354, + /* 1380 */ 351, 380, 113, 44, 44, 410, 104, 35, 13, 44, + /* 1390 */ 44, 104, 391, 401, 393, 13, 0, 44, 349, 104, + /* 1400 */ 44, 351, 390, 62, 401, 460, 479, 44, 223, 380, + /* 1410 */ 35, 452, 463, 262, 49, 20, 75, 35, 104, 104, + /* 1420 */ 391, 412, 393, 428, 104, 104, 104, 75, 427, 104, + /* 1430 */ 429, 421, 341, 432, 433, 434, 435, 436, 437, 206, + /* 1440 */ 439, 100, 351, 104, 104, 444, 50, 446, 426, 104, + /* 1450 */ 104, 450, 451, 359, 421, 359, 427, 104, 429, 189, + /* 1460 */ 104, 432, 433, 434, 435, 436, 437, 104, 439, 414, + /* 1470 */ 20, 380, 351, 444, 42, 446, 398, 20, 351, 450, + /* 1480 */ 451, 401, 391, 396, 393, 193, 398, 169, 20, 350, + /* 1490 */ 398, 350, 193, 351, 396, 396, 350, 363, 101, 341, + /* 1500 */ 99, 98, 350, 350, 350, 362, 361, 20, 48, 351, + /* 1510 */ 343, 1, 343, 20, 359, 347, 421, 347, 427, 393, + /* 1520 */ 429, 359, 20, 432, 433, 434, 435, 436, 437, 19, /* 1530 */ 439, 352, 191, 20, 193, 444, 413, 446, 380, 359, - /* 1540 */ 193, 450, 451, 33, 352, 359, 359, 359, 350, 391, - /* 1550 */ 359, 393, 380, 343, 380, 380, 380, 380, 380, 49, - /* 1560 */ 210, 341, 380, 350, 223, 224, 343, 57, 58, 59, - /* 1570 */ 60, 351, 62, 103, 391, 391, 391, 236, 237, 238, - /* 1580 */ 239, 240, 241, 242, 425, 427, 423, 429, 197, 196, + /* 1540 */ 359, 450, 451, 33, 350, 352, 359, 343, 359, 391, + /* 1550 */ 359, 393, 380, 380, 380, 380, 380, 380, 380, 49, + /* 1560 */ 350, 341, 391, 425, 223, 224, 343, 57, 58, 59, + /* 1570 */ 60, 351, 62, 391, 391, 284, 103, 236, 237, 238, + /* 1580 */ 239, 240, 241, 242, 210, 427, 423, 429, 197, 196, /* 1590 */ 432, 433, 434, 435, 436, 437, 357, 439, 393, 357, - /* 1600 */ 380, 195, 421, 401, 446, 412, 350, 418, 450, 451, - /* 1610 */ 420, 391, 102, 393, 419, 105, 401, 391, 269, 391, - /* 1620 */ 268, 468, 468, 182, 341, 391, 391, 406, 406, 263, - /* 1630 */ 481, 277, 468, 471, 351, 279, 278, 412, 467, 466, - /* 1640 */ 470, 259, 283, 286, 281, 351, 20, 427, 138, 429, - /* 1650 */ 114, 352, 432, 433, 434, 435, 436, 437, 431, 439, - /* 1660 */ 357, 357, 465, 380, 20, 462, 446, 404, 406, 391, - /* 1670 */ 450, 451, 174, 391, 391, 391, 393, 391, 391, 406, - /* 1680 */ 480, 391, 403, 173, 103, 341, 487, 357, 375, 357, - /* 1690 */ 180, 103, 449, 383, 351, 351, 391, 369, 350, 36, - /* 1700 */ 407, 0, 422, 341, 407, 344, 0, 415, 0, 199, - /* 1710 */ 427, 343, 429, 351, 339, 432, 433, 434, 435, 436, - /* 1720 */ 437, 357, 439, 42, 380, 35, 35, 358, 0, 446, - /* 1730 */ 216, 35, 35, 450, 451, 391, 216, 393, 0, 216, - /* 1740 */ 373, 0, 380, 216, 373, 373, 35, 35, 0, 35, - /* 1750 */ 0, 22, 0, 391, 35, 393, 211, 0, 199, 0, - /* 1760 */ 199, 193, 200, 191, 341, 0, 0, 0, 0, 187, - /* 1770 */ 186, 427, 0, 429, 351, 0, 432, 433, 434, 435, - /* 1780 */ 436, 437, 438, 439, 440, 441, 47, 0, 0, 427, - /* 1790 */ 47, 429, 0, 42, 432, 433, 434, 435, 436, 437, - /* 1800 */ 0, 439, 0, 380, 159, 47, 0, 384, 0, 0, - /* 1810 */ 0, 0, 0, 0, 391, 35, 393, 0, 159, 0, + /* 1600 */ 380, 195, 412, 350, 446, 421, 420, 401, 450, 451, + /* 1610 */ 268, 391, 102, 393, 419, 105, 418, 401, 391, 269, + /* 1620 */ 406, 391, 182, 406, 341, 468, 391, 468, 391, 465, + /* 1630 */ 470, 277, 471, 278, 351, 263, 279, 412, 259, 351, + /* 1640 */ 20, 281, 283, 487, 286, 114, 431, 427, 138, 429, + /* 1650 */ 352, 357, 432, 433, 434, 435, 436, 437, 357, 439, + /* 1660 */ 20, 404, 406, 380, 391, 468, 446, 467, 466, 391, + /* 1670 */ 450, 451, 391, 462, 391, 391, 393, 391, 406, 174, + /* 1680 */ 391, 357, 481, 173, 375, 341, 357, 480, 403, 351, + /* 1690 */ 180, 103, 449, 103, 383, 351, 391, 369, 350, 36, + /* 1700 */ 357, 422, 0, 341, 407, 344, 373, 343, 415, 199, + /* 1710 */ 427, 407, 429, 351, 0, 432, 433, 434, 435, 436, + /* 1720 */ 437, 0, 439, 339, 380, 42, 0, 358, 35, 446, + /* 1730 */ 216, 35, 35, 450, 451, 391, 35, 393, 216, 0, + /* 1740 */ 373, 373, 380, 35, 35, 216, 0, 0, 216, 0, + /* 1750 */ 35, 22, 0, 391, 35, 393, 211, 0, 199, 0, + /* 1760 */ 199, 193, 200, 191, 341, 0, 0, 0, 187, 186, + /* 1770 */ 0, 427, 0, 429, 351, 47, 432, 433, 434, 435, + /* 1780 */ 436, 437, 438, 439, 440, 441, 0, 49, 35, 427, + /* 1790 */ 0, 429, 47, 0, 432, 433, 434, 435, 436, 437, + /* 1800 */ 42, 439, 0, 380, 159, 0, 35, 384, 0, 0, + /* 1810 */ 47, 0, 0, 0, 391, 0, 393, 0, 0, 159, /* 1820 */ 0, 0, 341, 0, 0, 0, 0, 0, 0, 0, - /* 1830 */ 0, 0, 351, 0, 0, 0, 474, 0, 47, 0, - /* 1840 */ 42, 341, 0, 0, 0, 0, 0, 0, 0, 0, + /* 1830 */ 0, 0, 351, 0, 0, 0, 474, 0, 0, 47, + /* 1840 */ 0, 341, 42, 0, 0, 0, 0, 0, 0, 0, /* 1850 */ 427, 351, 429, 0, 22, 432, 433, 434, 435, 436, - /* 1860 */ 437, 380, 439, 143, 0, 384, 0, 0, 0, 62, - /* 1870 */ 48, 0, 391, 22, 393, 35, 22, 62, 62, 0, - /* 1880 */ 380, 0, 0, 0, 48, 35, 0, 49, 0, 0, - /* 1890 */ 49, 391, 35, 393, 39, 39, 35, 39, 35, 14, - /* 1900 */ 0, 49, 42, 44, 39, 0, 0, 0, 427, 40, + /* 1860 */ 437, 380, 439, 0, 0, 384, 143, 0, 0, 62, + /* 1870 */ 48, 0, 391, 22, 393, 0, 22, 35, 62, 0, + /* 1880 */ 380, 62, 0, 0, 48, 35, 0, 35, 49, 0, + /* 1890 */ 49, 391, 35, 393, 39, 39, 35, 0, 39, 14, + /* 1900 */ 0, 0, 42, 0, 39, 0, 40, 49, 427, 39, /* 1910 */ 429, 0, 39, 432, 433, 434, 435, 436, 437, 47, - /* 1920 */ 439, 341, 47, 47, 182, 0, 39, 427, 0, 429, - /* 1930 */ 0, 351, 432, 433, 434, 435, 436, 437, 35, 439, - /* 1940 */ 49, 39, 341, 69, 0, 35, 49, 39, 0, 35, - /* 1950 */ 49, 39, 351, 0, 35, 39, 0, 0, 49, 0, - /* 1960 */ 380, 0, 0, 0, 35, 22, 0, 35, 35, 35, - /* 1970 */ 35, 391, 35, 393, 35, 35, 476, 22, 0, 0, - /* 1980 */ 44, 380, 112, 0, 35, 384, 44, 110, 0, 35, - /* 1990 */ 22, 22, 391, 35, 393, 22, 51, 0, 0, 35, - /* 2000 */ 35, 103, 35, 22, 20, 35, 35, 427, 341, 429, - /* 2010 */ 35, 0, 432, 433, 434, 435, 436, 437, 351, 439, - /* 2020 */ 35, 104, 22, 103, 0, 22, 0, 0, 427, 103, - /* 2030 */ 429, 3, 101, 432, 433, 434, 435, 436, 437, 44, - /* 2040 */ 439, 264, 104, 44, 103, 341, 99, 380, 264, 48, - /* 2050 */ 172, 44, 48, 47, 104, 351, 172, 44, 391, 47, - /* 2060 */ 393, 44, 3, 103, 174, 485, 341, 172, 172, 44, - /* 2070 */ 35, 178, 35, 35, 35, 103, 351, 178, 198, 35, - /* 2080 */ 104, 104, 264, 103, 380, 103, 194, 35, 384, 47, - /* 2090 */ 104, 104, 44, 104, 427, 391, 429, 393, 104, 432, - /* 2100 */ 433, 434, 435, 436, 437, 380, 439, 47, 441, 384, - /* 2110 */ 0, 0, 39, 103, 0, 47, 391, 103, 393, 104, - /* 2120 */ 104, 103, 103, 103, 341, 39, 175, 47, 44, 2, - /* 2130 */ 22, 427, 103, 429, 351, 113, 432, 433, 434, 435, - /* 2140 */ 436, 437, 101, 439, 101, 341, 223, 173, 103, 245, - /* 2150 */ 104, 104, 427, 103, 429, 351, 103, 432, 433, 434, - /* 2160 */ 435, 436, 437, 380, 439, 104, 47, 103, 103, 47, - /* 2170 */ 104, 258, 22, 103, 391, 104, 393, 225, 35, 35, - /* 2180 */ 103, 35, 104, 114, 380, 103, 35, 104, 103, 35, - /* 2190 */ 35, 104, 103, 35, 104, 391, 103, 393, 104, 103, - /* 2200 */ 126, 126, 126, 341, 22, 126, 115, 103, 44, 103, - /* 2210 */ 427, 35, 429, 351, 22, 432, 433, 434, 435, 436, - /* 2220 */ 437, 103, 439, 35, 35, 35, 69, 68, 35, 35, + /* 1920 */ 439, 341, 44, 47, 47, 182, 0, 427, 0, 429, + /* 1930 */ 0, 351, 432, 433, 434, 435, 436, 437, 69, 439, + /* 1940 */ 0, 35, 341, 39, 49, 0, 39, 35, 49, 0, + /* 1950 */ 35, 49, 351, 39, 0, 35, 39, 49, 0, 0, + /* 1960 */ 380, 0, 0, 0, 0, 22, 35, 0, 35, 35, + /* 1970 */ 35, 391, 35, 393, 35, 22, 476, 35, 0, 35, + /* 1980 */ 44, 380, 44, 35, 0, 384, 112, 35, 22, 0, + /* 1990 */ 110, 35, 391, 22, 393, 22, 0, 51, 0, 0, + /* 2000 */ 35, 22, 20, 35, 35, 35, 0, 427, 341, 429, + /* 2010 */ 35, 35, 432, 433, 434, 435, 436, 437, 351, 439, + /* 2020 */ 104, 103, 103, 35, 22, 0, 22, 0, 427, 0, + /* 2030 */ 429, 3, 264, 432, 433, 434, 435, 436, 437, 44, + /* 2040 */ 439, 44, 48, 264, 103, 341, 3, 380, 48, 99, + /* 2050 */ 47, 104, 44, 172, 103, 351, 101, 44, 391, 47, + /* 2060 */ 393, 104, 172, 172, 104, 485, 341, 174, 172, 47, + /* 2070 */ 178, 35, 35, 35, 44, 103, 351, 103, 44, 35, + /* 2080 */ 103, 194, 198, 103, 380, 104, 35, 178, 384, 104, + /* 2090 */ 104, 35, 44, 47, 427, 391, 429, 393, 39, 432, + /* 2100 */ 433, 434, 435, 436, 437, 380, 439, 0, 441, 384, + /* 2110 */ 0, 104, 47, 0, 104, 104, 391, 103, 393, 103, + /* 2120 */ 39, 104, 103, 103, 341, 47, 103, 103, 113, 44, + /* 2130 */ 2, 427, 101, 429, 351, 103, 432, 433, 434, 435, + /* 2140 */ 436, 437, 101, 439, 22, 341, 258, 223, 47, 104, + /* 2150 */ 103, 47, 427, 104, 429, 351, 173, 432, 433, 434, + /* 2160 */ 435, 436, 437, 380, 439, 175, 245, 103, 22, 114, + /* 2170 */ 104, 103, 103, 103, 391, 104, 393, 264, 104, 35, + /* 2180 */ 35, 104, 103, 35, 380, 103, 35, 104, 104, 103, + /* 2190 */ 35, 103, 35, 104, 103, 391, 104, 393, 35, 103, + /* 2200 */ 22, 126, 126, 341, 44, 115, 126, 35, 103, 103, + /* 2210 */ 427, 103, 429, 351, 22, 432, 433, 434, 435, 436, + /* 2220 */ 437, 126, 439, 69, 35, 35, 225, 68, 35, 35, /* 2230 */ 35, 427, 35, 429, 35, 341, 432, 433, 434, 435, - /* 2240 */ 436, 437, 380, 439, 75, 351, 97, 44, 35, 22, + /* 2240 */ 436, 437, 380, 439, 35, 351, 75, 97, 44, 22, /* 2250 */ 35, 35, 35, 391, 35, 393, 35, 35, 75, 35, - /* 2260 */ 35, 35, 22, 341, 35, 35, 0, 35, 0, 49, - /* 2270 */ 39, 0, 35, 351, 380, 0, 35, 49, 39, 35, - /* 2280 */ 0, 39, 49, 49, 39, 391, 35, 393, 35, 427, - /* 2290 */ 0, 429, 22, 21, 432, 433, 434, 435, 436, 437, - /* 2300 */ 22, 439, 380, 22, 21, 20, 488, 488, 488, 488, + /* 2260 */ 35, 35, 22, 341, 35, 35, 35, 0, 35, 49, + /* 2270 */ 0, 39, 35, 351, 380, 0, 35, 49, 39, 0, + /* 2280 */ 35, 39, 39, 49, 49, 391, 0, 393, 35, 427, + /* 2290 */ 35, 429, 0, 22, 432, 433, 434, 435, 436, 437, + /* 2300 */ 22, 439, 380, 21, 20, 22, 21, 488, 488, 488, /* 2310 */ 488, 488, 488, 391, 488, 393, 488, 488, 488, 488, /* 2320 */ 488, 427, 488, 429, 488, 488, 432, 433, 434, 435, /* 2330 */ 436, 437, 488, 439, 341, 488, 488, 488, 488, 488, @@ -1202,9 +1202,9 @@ static const YYCODETYPE yy_lookahead[] = { /* 3350 */ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, /* 3360 */ 338, 338, 338, 338, 338, 338, }; -#define YY_SHIFT_COUNT (798) +#define YY_SHIFT_COUNT (799) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2290) +#define YY_SHIFT_MAX (2292) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 1005, 0, 104, 0, 337, 337, 337, 337, 337, 337, /* 10 */ 337, 337, 337, 337, 337, 337, 441, 673, 673, 777, @@ -1214,78 +1214,78 @@ static const unsigned short int yy_shift_ofst[] = { /* 50 */ 673, 273, 346, 523, 226, 29, 625, 29, 226, 226, /* 60 */ 29, 1341, 29, 1341, 1341, 28, 29, 43, 342, 59, /* 70 */ 59, 342, 543, 543, 153, 228, 70, 70, 59, 59, - /* 80 */ 59, 59, 59, 59, 59, 59, 59, 59, 66, 59, - /* 90 */ 59, 138, 43, 59, 59, 90, 43, 59, 66, 59, - /* 100 */ 66, 43, 59, 59, 43, 59, 43, 43, 43, 59, - /* 110 */ 361, 1004, 15, 15, 344, 171, 1097, 1097, 1097, 1097, + /* 80 */ 59, 59, 59, 59, 59, 59, 59, 59, 90, 59, + /* 90 */ 59, 114, 43, 59, 59, 202, 43, 59, 90, 59, + /* 100 */ 90, 43, 59, 59, 43, 59, 43, 43, 43, 59, + /* 110 */ 138, 1004, 15, 15, 344, 171, 1097, 1097, 1097, 1097, /* 120 */ 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, /* 130 */ 1097, 1097, 1097, 1097, 1097, 389, 384, 153, 228, 89, - /* 140 */ 89, 524, 520, 520, 520, 865, 302, 302, 524, 138, - /* 150 */ 43, 43, 43, 43, 515, 288, 43, 147, 43, 147, - /* 160 */ 147, 577, 591, 261, 261, 261, 261, 1510, 633, 185, + /* 140 */ 89, 524, 520, 520, 520, 865, 302, 302, 524, 114, + /* 150 */ 43, 43, 43, 43, 515, 184, 43, 591, 43, 591, + /* 160 */ 591, 577, 772, 261, 261, 261, 261, 1510, 633, 185, /* 170 */ 270, 478, 554, 593, 130, 123, 123, 803, 135, 969, /* 180 */ 239, 530, 1016, 1093, 304, 1085, 963, 325, 837, 963, - /* 190 */ 1100, 925, 1024, 1151, 1365, 1399, 1217, 138, 1399, 138, - /* 200 */ 1266, 1447, 1430, 1456, 1447, 1430, 1317, 1463, 1447, 1463, - /* 210 */ 1430, 1317, 1317, 1392, 1397, 1463, 1402, 1463, 1463, 1463, - /* 220 */ 1487, 1453, 1487, 1453, 1399, 138, 1497, 138, 1501, 1513, - /* 230 */ 138, 1501, 138, 138, 138, 1463, 138, 1487, 43, 43, - /* 240 */ 43, 43, 43, 43, 43, 1463, 1487, 147, 147, 147, - /* 250 */ 1350, 1470, 1399, 361, 1391, 1393, 1497, 361, 1406, 1151, - /* 260 */ 1463, 1456, 1456, 147, 1349, 1352, 147, 1349, 1352, 147, - /* 270 */ 147, 43, 1354, 1441, 1349, 1356, 1358, 1366, 1151, 1357, - /* 280 */ 1359, 1363, 1382, 1447, 1626, 1536, 1501, 361, 361, 1644, - /* 290 */ 1352, 147, 147, 147, 147, 147, 1352, 147, 1498, 361, - /* 300 */ 577, 361, 1447, 1581, 1588, 147, 591, 1463, 361, 1663, + /* 190 */ 1100, 925, 1024, 1151, 1365, 1395, 1233, 114, 1395, 114, + /* 200 */ 1270, 1450, 1432, 1457, 1450, 1432, 1318, 1468, 1450, 1468, + /* 210 */ 1432, 1318, 1318, 1397, 1401, 1468, 1403, 1468, 1468, 1468, + /* 220 */ 1487, 1460, 1487, 1460, 1395, 114, 1493, 114, 1502, 1513, + /* 230 */ 114, 1502, 114, 114, 114, 1468, 114, 1487, 43, 43, + /* 240 */ 43, 43, 43, 43, 43, 1468, 1487, 591, 591, 591, + /* 250 */ 1374, 1473, 1395, 138, 1391, 1393, 1493, 138, 1406, 1151, + /* 260 */ 1468, 1457, 1457, 591, 1350, 1342, 591, 1350, 1342, 591, + /* 270 */ 591, 43, 1354, 1440, 1350, 1357, 1355, 1372, 1151, 1358, + /* 280 */ 1359, 1360, 1379, 1450, 1620, 1531, 1502, 138, 138, 1640, + /* 290 */ 1342, 591, 591, 591, 591, 591, 1342, 591, 1505, 138, + /* 300 */ 577, 138, 1450, 1588, 1590, 591, 772, 1468, 138, 1663, /* 310 */ 1487, 3028, 3028, 3028, 3028, 3028, 3028, 3028, 3028, 3028, /* 320 */ 1002, 594, 225, 34, 440, 717, 845, 822, 860, 982, /* 330 */ 1165, 987, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, /* 340 */ 1122, 1077, 152, 107, 107, 604, 314, 552, 610, 355, /* 350 */ 601, 1028, 562, 513, 977, 977, 305, 1039, 51, 305, - /* 360 */ 305, 305, 1133, 782, 703, 1218, 1253, 1128, 1232, 1140, - /* 370 */ 1196, 1209, 1216, 1246, 1295, 1309, 1327, 1351, 1125, 1166, - /* 380 */ 1194, 1231, 1255, 1274, 1281, 1224, 1059, 1219, 1289, 1291, - /* 390 */ 1314, 1322, 1323, 1325, 1370, 1335, 1271, 1339, 78, 1340, - /* 400 */ 1342, 1345, 1346, 1353, 1355, 1285, 1321, 1347, 1389, 1435, - /* 410 */ 1333, 1360, 1701, 1706, 1708, 1681, 1728, 1690, 1514, 1691, - /* 420 */ 1696, 1697, 1520, 1738, 1711, 1712, 1523, 1741, 1527, 1748, - /* 430 */ 1714, 1750, 1729, 1752, 1719, 1545, 1757, 1559, 1759, 1561, - /* 440 */ 1562, 1568, 1572, 1765, 1766, 1767, 1582, 1584, 1768, 1772, - /* 450 */ 1739, 1775, 1787, 1788, 1743, 1792, 1751, 1800, 1802, 1808, - /* 460 */ 1758, 1806, 1809, 1810, 1811, 1812, 1813, 1645, 1780, 1817, - /* 470 */ 1659, 1819, 1820, 1821, 1823, 1824, 1825, 1826, 1827, 1828, - /* 480 */ 1829, 1830, 1831, 1833, 1834, 1835, 1837, 1791, 1839, 1798, - /* 490 */ 1842, 1843, 1844, 1845, 1846, 1847, 1832, 1848, 1849, 1853, - /* 500 */ 1720, 1864, 1866, 1851, 1822, 1854, 1836, 1867, 1807, 1840, - /* 510 */ 1868, 1815, 1871, 1816, 1879, 1881, 1850, 1838, 1855, 1882, - /* 520 */ 1857, 1841, 1856, 1883, 1861, 1852, 1858, 1886, 1863, 1888, - /* 530 */ 1860, 1865, 1859, 1872, 1875, 1885, 1876, 1889, 1869, 1873, - /* 540 */ 1900, 1905, 1906, 1887, 1742, 1907, 1911, 1925, 1874, 1928, - /* 550 */ 1930, 1903, 1891, 1902, 1944, 1910, 1897, 1908, 1948, 1914, - /* 560 */ 1901, 1912, 1953, 1919, 1909, 1916, 1956, 1957, 1959, 1961, - /* 570 */ 1962, 1963, 1870, 1877, 1929, 1943, 1966, 1932, 1933, 1934, - /* 580 */ 1935, 1937, 1939, 1940, 1936, 1942, 1949, 1954, 1955, 1958, - /* 590 */ 1978, 1968, 1979, 1969, 1945, 1983, 1973, 1964, 1988, 1965, - /* 600 */ 1997, 1967, 1998, 1981, 1984, 1970, 1971, 1975, 1917, 1898, - /* 610 */ 2011, 1878, 1920, 1880, 1985, 2000, 2024, 1892, 2003, 1884, - /* 620 */ 1890, 2026, 2027, 1895, 1893, 1896, 1899, 2028, 1995, 1777, - /* 630 */ 1926, 1938, 1941, 2001, 1931, 2004, 1947, 1950, 1999, 2007, - /* 640 */ 1976, 1960, 1972, 1980, 1977, 2013, 2006, 2012, 1982, 2017, - /* 650 */ 1784, 1986, 1987, 2059, 2025, 1818, 2035, 2037, 2038, 2039, - /* 660 */ 2044, 2052, 1989, 1994, 2042, 1913, 2048, 2060, 2110, 2111, - /* 670 */ 2010, 2073, 1872, 2068, 2014, 2015, 2016, 2018, 2019, 1951, - /* 680 */ 2020, 2114, 2086, 1974, 2029, 2022, 1872, 2080, 2084, 2041, - /* 690 */ 1904, 2043, 2127, 2108, 1923, 2045, 2046, 2050, 2047, 2053, - /* 700 */ 2061, 2119, 2064, 2065, 2122, 2066, 2150, 1952, 2070, 2069, - /* 710 */ 2071, 2143, 2144, 2077, 2078, 2146, 2082, 2083, 2151, 2085, - /* 720 */ 2087, 2154, 2089, 2090, 2155, 2093, 2094, 2158, 2096, 2074, - /* 730 */ 2075, 2076, 2079, 2182, 2091, 2104, 2164, 2106, 2176, 2118, - /* 740 */ 2164, 2164, 2192, 2157, 2159, 2188, 2189, 2190, 2193, 2194, - /* 750 */ 2195, 2197, 2199, 2169, 2149, 2203, 2213, 2215, 2216, 2227, - /* 760 */ 2217, 2219, 2221, 2183, 1936, 2222, 1942, 2224, 2225, 2226, - /* 770 */ 2229, 2240, 2230, 2266, 2232, 2220, 2231, 2268, 2237, 2228, - /* 780 */ 2239, 2271, 2241, 2233, 2242, 2275, 2244, 2234, 2245, 2280, - /* 790 */ 2251, 2253, 2290, 2270, 2272, 2278, 2281, 2283, 2285, + /* 360 */ 305, 305, 1133, 782, 703, 86, 1196, 1128, 1232, 1140, + /* 370 */ 1188, 1199, 1209, 1246, 1290, 1308, 1349, 1351, 1090, 1166, + /* 380 */ 1219, 1231, 1274, 1282, 1287, 1192, 1059, 1291, 1295, 1314, + /* 390 */ 1315, 1320, 1321, 1322, 1366, 1325, 1185, 1339, 933, 1340, + /* 400 */ 1345, 1346, 1353, 1356, 1363, 1269, 1292, 1299, 1375, 1382, + /* 410 */ 1352, 1396, 1702, 1714, 1721, 1683, 1726, 1693, 1514, 1696, + /* 420 */ 1697, 1701, 1522, 1739, 1708, 1709, 1529, 1746, 1532, 1747, + /* 430 */ 1715, 1749, 1729, 1752, 1719, 1545, 1757, 1559, 1759, 1561, + /* 440 */ 1562, 1568, 1572, 1765, 1766, 1767, 1581, 1583, 1770, 1772, + /* 450 */ 1728, 1786, 1753, 1738, 1790, 1745, 1793, 1758, 1802, 1808, + /* 460 */ 1809, 1763, 1811, 1812, 1813, 1815, 1817, 1818, 1645, 1771, + /* 470 */ 1805, 1660, 1820, 1821, 1823, 1824, 1825, 1826, 1827, 1828, + /* 480 */ 1829, 1830, 1831, 1833, 1834, 1835, 1837, 1838, 1792, 1840, + /* 490 */ 1800, 1843, 1844, 1845, 1846, 1847, 1848, 1832, 1849, 1853, + /* 500 */ 1863, 1723, 1864, 1867, 1851, 1822, 1854, 1836, 1868, 1807, + /* 510 */ 1842, 1871, 1816, 1875, 1819, 1879, 1882, 1850, 1839, 1855, + /* 520 */ 1883, 1852, 1841, 1856, 1886, 1857, 1858, 1859, 1889, 1861, + /* 530 */ 1897, 1860, 1865, 1878, 1872, 1876, 1885, 1877, 1900, 1866, + /* 540 */ 1870, 1901, 1903, 1905, 1873, 1743, 1911, 1926, 1928, 1869, + /* 550 */ 1930, 1940, 1906, 1895, 1904, 1945, 1912, 1899, 1907, 1949, + /* 560 */ 1915, 1902, 1914, 1954, 1920, 1908, 1917, 1958, 1959, 1961, + /* 570 */ 1962, 1963, 1964, 1874, 1880, 1931, 1943, 1967, 1933, 1934, + /* 580 */ 1935, 1937, 1939, 1942, 1944, 1936, 1938, 1948, 1952, 1953, + /* 590 */ 1956, 1978, 1966, 1984, 1971, 1946, 1989, 1973, 1965, 1996, + /* 600 */ 1968, 1998, 1969, 1999, 1979, 1982, 1970, 1975, 1976, 1916, + /* 610 */ 1918, 2006, 1881, 1919, 1884, 1988, 2002, 2025, 1887, 2004, + /* 620 */ 1890, 1893, 2027, 2029, 1891, 1892, 1896, 1909, 2028, 1995, + /* 630 */ 1768, 1941, 1947, 1951, 1994, 1955, 2000, 1950, 1957, 1997, + /* 640 */ 2008, 1960, 1972, 1974, 1977, 1981, 2013, 2003, 2012, 1980, + /* 650 */ 2030, 1779, 1985, 1986, 2043, 2034, 1913, 2036, 2037, 2038, + /* 660 */ 2044, 2051, 2056, 2007, 2010, 2022, 1888, 2048, 2046, 2107, + /* 670 */ 2110, 2014, 2059, 1872, 2065, 2016, 2011, 2017, 2019, 2020, + /* 680 */ 1990, 2023, 2113, 2081, 1983, 2024, 2015, 1872, 2078, 2085, + /* 690 */ 2031, 1921, 2041, 2128, 2122, 1924, 2032, 2045, 2047, 2049, + /* 700 */ 2064, 2066, 2101, 2068, 2069, 2104, 2071, 2146, 2001, 2070, + /* 710 */ 2055, 2074, 2144, 2145, 2079, 2077, 2148, 2082, 2083, 2151, + /* 720 */ 2086, 2084, 2155, 2088, 2089, 2157, 2091, 2092, 2163, 2096, + /* 730 */ 2075, 2076, 2080, 2095, 2178, 2090, 2105, 2160, 2106, 2172, + /* 740 */ 2108, 2160, 2160, 2192, 2154, 2159, 2189, 2190, 2193, 2194, + /* 750 */ 2195, 2197, 2199, 2209, 2171, 2150, 2204, 2215, 2216, 2217, + /* 760 */ 2227, 2219, 2221, 2222, 2183, 1936, 2224, 1938, 2225, 2226, + /* 770 */ 2229, 2230, 2240, 2231, 2267, 2233, 2220, 2232, 2270, 2237, + /* 780 */ 2228, 2239, 2275, 2241, 2234, 2242, 2279, 2245, 2235, 2243, + /* 790 */ 2286, 2253, 2255, 2292, 2271, 2282, 2278, 2283, 2285, 2284, }; #define YY_REDUCE_COUNT (319) #define YY_REDUCE_MIN (-406) @@ -1307,104 +1307,104 @@ static const short yy_reduce_ofst[] = { /* 130 */ 843, 844, 846, 863, 887, -68, 5, 418, -278, -167, /* 140 */ 75, 257, 5, 44, 263, -31, 483, 491, 298, 566, /* 150 */ 412, 796, 819, 829, 457, -401, 895, -35, 886, 479, - /* 160 */ 576, 684, 836, -387, 367, 460, -387, 446, 503, 596, - /* 170 */ 571, 469, 505, 712, 567, 1008, 1010, 671, 981, 671, - /* 180 */ 1033, 995, 1051, 1050, 1014, 1006, 945, 945, 927, 945, - /* 190 */ 959, 949, 671, 1003, 989, 1000, 999, 1072, 1032, 1095, - /* 200 */ 1046, 1118, 1076, 1080, 1126, 1087, 1082, 1137, 1138, 1141, - /* 210 */ 1090, 1094, 1096, 1132, 1135, 1148, 1143, 1152, 1155, 1156, - /* 220 */ 1167, 1161, 1169, 1168, 1092, 1157, 1129, 1160, 1179, 1123, - /* 230 */ 1180, 1192, 1186, 1187, 1188, 1198, 1191, 1210, 1172, 1174, - /* 240 */ 1175, 1176, 1177, 1178, 1182, 1213, 1223, 1183, 1184, 1185, - /* 250 */ 1159, 1163, 1181, 1239, 1190, 1195, 1205, 1242, 1189, 1193, - /* 260 */ 1256, 1202, 1215, 1226, 1153, 1221, 1228, 1154, 1222, 1234, - /* 270 */ 1235, 671, 1162, 1170, 1164, 1171, 1173, 1197, 1225, 1199, - /* 280 */ 1149, 1200, 945, 1294, 1227, 1203, 1299, 1303, 1304, 1263, - /* 290 */ 1262, 1278, 1282, 1284, 1286, 1287, 1273, 1290, 1279, 1330, - /* 300 */ 1313, 1332, 1343, 1243, 1310, 1305, 1328, 1348, 1364, 1361, - /* 310 */ 1368, 1292, 1280, 1293, 1297, 1367, 1371, 1372, 1369, 1375, + /* 160 */ 576, 684, 836, -387, 145, 367, -387, 446, 503, 596, + /* 170 */ 571, 469, 881, 712, 582, 993, 1008, 997, 975, 997, + /* 180 */ 1025, 992, 1049, 1050, 1012, 1003, 945, 945, 927, 945, + /* 190 */ 959, 949, 997, 1009, 995, 1010, 1022, 1094, 1033, 1096, + /* 200 */ 1055, 1121, 1078, 1080, 1127, 1088, 1087, 1139, 1142, 1141, + /* 210 */ 1092, 1098, 1099, 1134, 1143, 1146, 1145, 1152, 1153, 1154, + /* 220 */ 1167, 1168, 1169, 1170, 1095, 1155, 1126, 1162, 1179, 1123, + /* 230 */ 1180, 1193, 1181, 1187, 1189, 1194, 1191, 1204, 1172, 1173, + /* 240 */ 1174, 1175, 1176, 1177, 1178, 1210, 1223, 1171, 1182, 1183, + /* 250 */ 1138, 1163, 1184, 1239, 1186, 1195, 1205, 1242, 1198, 1190, + /* 260 */ 1253, 1206, 1216, 1227, 1157, 1214, 1230, 1159, 1217, 1235, + /* 270 */ 1237, 997, 1161, 1160, 1197, 1200, 1202, 1164, 1225, 1156, + /* 280 */ 1201, 1207, 945, 1288, 1215, 1211, 1298, 1294, 1301, 1257, + /* 290 */ 1256, 1273, 1278, 1281, 1284, 1286, 1272, 1289, 1285, 1324, + /* 300 */ 1309, 1329, 1338, 1243, 1311, 1305, 1328, 1348, 1343, 1361, + /* 310 */ 1364, 1293, 1279, 1297, 1304, 1333, 1367, 1368, 1369, 1384, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 10 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 20 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 30 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 40 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 50 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 60 */ 2095, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 70 */ 1783, 1783, 1783, 1783, 2068, 1783, 1783, 1783, 1783, 1783, - /* 80 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 90 */ 1783, 1872, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 100 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 110 */ 1870, 2061, 2287, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 120 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 130 */ 1783, 1783, 1783, 1783, 1783, 1783, 2299, 1783, 1783, 1846, - /* 140 */ 1846, 1783, 2299, 2299, 2299, 1870, 2259, 2259, 1783, 1872, - /* 150 */ 1783, 1783, 1783, 1783, 2129, 1783, 1783, 1783, 1783, 1783, - /* 160 */ 1783, 1993, 1783, 2017, 1783, 1783, 1783, 2121, 1783, 1783, - /* 170 */ 2326, 2383, 1783, 1783, 2329, 1783, 1783, 1783, 1783, 1783, - /* 180 */ 1783, 2073, 1783, 1783, 1945, 2316, 2291, 2305, 2367, 2292, - /* 190 */ 2289, 2310, 1783, 2320, 1783, 1783, 2143, 1872, 1783, 1872, - /* 200 */ 2108, 1783, 2066, 1783, 1783, 2066, 2063, 1783, 1783, 1783, - /* 210 */ 2066, 2063, 2063, 1934, 1930, 1783, 1928, 1783, 1783, 1783, - /* 220 */ 1783, 1830, 1783, 1830, 1783, 1872, 1783, 1872, 1783, 1783, - /* 230 */ 1872, 1783, 1872, 1872, 1872, 1783, 1872, 1783, 1783, 1783, - /* 240 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 250 */ 2141, 2127, 1783, 1870, 2119, 2117, 1783, 1870, 2115, 2320, - /* 260 */ 1783, 1783, 1783, 1783, 2337, 2335, 1783, 2337, 2335, 1783, - /* 270 */ 1783, 1783, 2351, 2347, 2337, 2356, 2353, 2322, 2320, 2386, - /* 280 */ 2373, 2369, 2305, 1783, 1783, 2308, 1783, 1870, 1870, 1783, - /* 290 */ 2335, 1783, 1783, 1783, 1783, 1783, 2335, 1783, 1783, 1870, - /* 300 */ 1783, 1870, 1783, 1783, 1961, 1783, 1783, 1783, 1870, 1815, - /* 310 */ 1783, 2110, 2132, 2091, 2091, 1996, 1996, 1996, 1873, 1788, - /* 320 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 330 */ 1783, 1783, 2350, 2349, 2214, 1783, 2263, 2262, 2261, 2252, - /* 340 */ 2213, 1957, 1783, 2212, 2211, 1783, 1783, 1783, 1783, 1783, - /* 350 */ 1783, 1783, 1783, 1783, 2082, 2081, 2205, 1783, 1783, 2206, - /* 360 */ 2204, 2203, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 370 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 380 */ 1783, 1783, 1783, 1783, 1783, 1783, 2370, 2374, 1783, 1783, - /* 390 */ 1783, 1783, 1783, 1783, 2288, 1783, 1783, 1783, 2187, 1783, - /* 400 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 410 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 420 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 430 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 440 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 450 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 460 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 470 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 480 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 490 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 500 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 510 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 520 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 530 */ 1783, 1783, 1820, 2192, 1783, 1783, 1783, 1783, 1783, 1783, - /* 540 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 550 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 560 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 570 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 580 */ 1783, 1783, 1783, 1783, 1911, 1910, 1783, 1783, 1783, 1783, - /* 590 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 600 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 2196, 1783, - /* 610 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 620 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 2366, 2323, 1783, - /* 630 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 640 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 2187, 1783, 2348, - /* 650 */ 1783, 1783, 2364, 1783, 2368, 1783, 1783, 1783, 1783, 1783, - /* 660 */ 1783, 1783, 2298, 2294, 1783, 1783, 2290, 1783, 1783, 1783, - /* 670 */ 1783, 1783, 2195, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 680 */ 1783, 1783, 1783, 1783, 1783, 1783, 2186, 1783, 2249, 1783, - /* 690 */ 1783, 1783, 2283, 1783, 1783, 2234, 1783, 1783, 1783, 1783, - /* 700 */ 1783, 1783, 1783, 1783, 1783, 2196, 1783, 2199, 1783, 1783, - /* 710 */ 1783, 1783, 1783, 1990, 1783, 1783, 1783, 1783, 1783, 1783, - /* 720 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1974, - /* 730 */ 1972, 1971, 1970, 1783, 1967, 1783, 2003, 1783, 1783, 1783, - /* 740 */ 1999, 1998, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 750 */ 1783, 1783, 1783, 1783, 1783, 1891, 1783, 1783, 1783, 1783, - /* 760 */ 1783, 1783, 1783, 1783, 1883, 1783, 1882, 1783, 1783, 1783, - /* 770 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 780 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, - /* 790 */ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783, + /* 0 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 10 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 20 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 30 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 40 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 50 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 60 */ 2096, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 70 */ 1784, 1784, 1784, 1784, 2069, 1784, 1784, 1784, 1784, 1784, + /* 80 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 90 */ 1784, 1873, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 100 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 110 */ 1871, 2062, 2288, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 120 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 130 */ 1784, 1784, 1784, 1784, 1784, 1784, 2300, 1784, 1784, 1847, + /* 140 */ 1847, 1784, 2300, 2300, 2300, 1871, 2260, 2260, 1784, 1873, + /* 150 */ 1784, 1784, 1784, 1784, 2130, 1784, 1784, 1784, 1784, 1784, + /* 160 */ 1784, 1994, 1784, 2018, 1784, 1784, 1784, 2122, 1784, 1784, + /* 170 */ 2327, 2384, 1784, 1784, 2330, 1784, 1784, 1784, 1784, 1784, + /* 180 */ 1784, 2074, 1784, 1784, 1946, 2317, 2292, 2306, 2368, 2293, + /* 190 */ 2290, 2311, 1784, 2321, 1784, 1784, 2144, 1873, 1784, 1873, + /* 200 */ 2109, 1784, 2067, 1784, 1784, 2067, 2064, 1784, 1784, 1784, + /* 210 */ 2067, 2064, 2064, 1935, 1931, 1784, 1929, 1784, 1784, 1784, + /* 220 */ 1784, 1831, 1784, 1831, 1784, 1873, 1784, 1873, 1784, 1784, + /* 230 */ 1873, 1784, 1873, 1873, 1873, 1784, 1873, 1784, 1784, 1784, + /* 240 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 250 */ 2142, 2128, 1784, 1871, 2120, 2118, 1784, 1871, 2116, 2321, + /* 260 */ 1784, 1784, 1784, 1784, 2338, 2336, 1784, 2338, 2336, 1784, + /* 270 */ 1784, 1784, 2352, 2348, 2338, 2357, 2354, 2323, 2321, 2387, + /* 280 */ 2374, 2370, 2306, 1784, 1784, 2309, 1784, 1871, 1871, 1784, + /* 290 */ 2336, 1784, 1784, 1784, 1784, 1784, 2336, 1784, 1784, 1871, + /* 300 */ 1784, 1871, 1784, 1784, 1962, 1784, 1784, 1784, 1871, 1816, + /* 310 */ 1784, 2111, 2133, 2092, 2092, 1997, 1997, 1997, 1874, 1789, + /* 320 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 330 */ 1784, 1784, 2351, 2350, 2215, 1784, 2264, 2263, 2262, 2253, + /* 340 */ 2214, 1958, 1784, 2213, 2212, 1784, 1784, 1784, 1784, 1784, + /* 350 */ 1784, 1784, 1784, 1784, 2083, 2082, 2206, 1784, 1784, 2207, + /* 360 */ 2205, 2204, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 370 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 380 */ 1784, 1784, 1784, 1784, 1784, 1784, 2371, 2375, 1784, 1784, + /* 390 */ 1784, 1784, 1784, 1784, 2289, 1784, 1784, 1784, 2188, 1784, + /* 400 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 410 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 420 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 430 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 440 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 450 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 460 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 470 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 480 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 490 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 500 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 510 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 520 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 530 */ 1784, 1784, 1784, 1821, 2193, 1784, 1784, 1784, 1784, 1784, + /* 540 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 550 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 560 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 570 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 580 */ 1784, 1784, 1784, 1784, 1784, 1912, 1911, 1784, 1784, 1784, + /* 590 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 600 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2197, + /* 610 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 620 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2367, 2324, + /* 630 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 640 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2188, 1784, + /* 650 */ 2349, 1784, 1784, 2365, 1784, 2369, 1784, 1784, 1784, 1784, + /* 660 */ 1784, 1784, 1784, 2299, 2295, 1784, 1784, 2291, 1784, 1784, + /* 670 */ 1784, 1784, 1784, 2196, 1784, 1784, 1784, 1784, 1784, 1784, + /* 680 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 2187, 1784, 2250, + /* 690 */ 1784, 1784, 1784, 2284, 1784, 1784, 2235, 1784, 1784, 1784, + /* 700 */ 1784, 1784, 1784, 1784, 1784, 1784, 2197, 1784, 2200, 1784, + /* 710 */ 1784, 1784, 1784, 1784, 1991, 1784, 1784, 1784, 1784, 1784, + /* 720 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 730 */ 1975, 1973, 1972, 1971, 1784, 1968, 1784, 2004, 1784, 1784, + /* 740 */ 1784, 2000, 1999, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 750 */ 1784, 1784, 1784, 1784, 1784, 1784, 1892, 1784, 1784, 1784, + /* 760 */ 1784, 1784, 1784, 1784, 1784, 1884, 1784, 1883, 1784, 1784, + /* 770 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 780 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, + /* 790 */ 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, }; /********** End of lemon-generated parsing tables *****************************/ @@ -2616,8 +2616,8 @@ static const char *const yyRuleName[] = { /* 268 */ "cmd ::= SHOW TAGS FROM db_name NK_DOT table_name", /* 269 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt", /* 270 */ "cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name", - /* 271 */ "cmd ::= SHOW VNODES NK_INTEGER", - /* 272 */ "cmd ::= SHOW VNODES NK_STRING", + /* 271 */ "cmd ::= SHOW VNODES ON DNODE NK_INTEGER", + /* 272 */ "cmd ::= SHOW VNODES", /* 273 */ "cmd ::= SHOW db_name_cond_opt ALIVE", /* 274 */ "cmd ::= SHOW CLUSTER ALIVE", /* 275 */ "db_name_cond_opt ::=", @@ -3871,8 +3871,8 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 338, /* (268) cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ 338, /* (269) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ 338, /* (270) cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ - 338, /* (271) cmd ::= SHOW VNODES NK_INTEGER */ - 338, /* (272) cmd ::= SHOW VNODES NK_STRING */ + 338, /* (271) cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ + 338, /* (272) cmd ::= SHOW VNODES */ 338, /* (273) cmd ::= SHOW db_name_cond_opt ALIVE */ 338, /* (274) cmd ::= SHOW CLUSTER ALIVE */ 395, /* (275) db_name_cond_opt ::= */ @@ -4479,8 +4479,8 @@ static const signed char yyRuleInfoNRhs[] = { -6, /* (268) cmd ::= SHOW TAGS FROM db_name NK_DOT table_name */ -7, /* (269) cmd ::= SHOW TABLE TAGS tag_list_opt FROM table_name_cond from_db_opt */ -8, /* (270) cmd ::= SHOW TABLE TAGS tag_list_opt FROM db_name NK_DOT table_name */ - -3, /* (271) cmd ::= SHOW VNODES NK_INTEGER */ - -3, /* (272) cmd ::= SHOW VNODES NK_STRING */ + -5, /* (271) cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ + -2, /* (272) cmd ::= SHOW VNODES */ -3, /* (273) cmd ::= SHOW db_name_cond_opt ALIVE */ -3, /* (274) cmd ::= SHOW CLUSTER ALIVE */ 0, /* (275) db_name_cond_opt ::= */ @@ -6217,14 +6217,14 @@ static YYACTIONTYPE yy_reduce( { pCxt->pRootNode = createShowTableTagsStmt(pCxt, createIdentifierValueNode(pCxt, &yymsp[0].minor.yy129), createIdentifierValueNode(pCxt, &yymsp[-2].minor.yy129), yymsp[-4].minor.yy56); } #line 6218 "sql.c" break; - case 271: /* cmd ::= SHOW VNODES NK_INTEGER */ + case 271: /* cmd ::= SHOW VNODES ON DNODE NK_INTEGER */ #line 478 "sql.y" { pCxt->pRootNode = createShowVnodesStmt(pCxt, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &yymsp[0].minor.yy0), NULL); } #line 6223 "sql.c" break; - case 272: /* cmd ::= SHOW VNODES NK_STRING */ + case 272: /* cmd ::= SHOW VNODES */ #line 479 "sql.y" -{ pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, createValueNode(pCxt, TSDB_DATA_TYPE_VARCHAR, &yymsp[0].minor.yy0)); } +{ pCxt->pRootNode = createShowVnodesStmt(pCxt, NULL, NULL); } #line 6228 "sql.c" break; case 273: /* cmd ::= SHOW db_name_cond_opt ALIVE */ diff --git a/source/libs/parser/test/parShowToUse.cpp b/source/libs/parser/test/parShowToUse.cpp index b7bd0e802ce7d1fa2db009c1971c032762fbd0ed..3e1482d420f2667c3f853a904873baf977ed2233 100644 --- a/source/libs/parser/test/parShowToUse.cpp +++ b/source/libs/parser/test/parShowToUse.cpp @@ -239,9 +239,9 @@ TEST_F(ParserShowToUseTest, showVgroups) { TEST_F(ParserShowToUseTest, showVnodes) { useDb("root", "test"); - run("SHOW VNODES 1"); + run("SHOW VNODES ON DNODE 1"); - run("SHOW VNODES 'node1:7030'"); + run("SHOW VNODES"); } TEST_F(ParserShowToUseTest, splitVgroup) { diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index f1e3c35a49228b9805b12711e8ba6d41f5a44dd9..9108090b87b876defaf4a57b0f5796e09c842ea4 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -509,6 +509,7 @@ SSyncState syncGetState(int64_t rid) { if (pSyncNode != NULL) { state.state = pSyncNode->state; state.roleTimeMs = pSyncNode->roleTimeMs; + state.startTimeMs = pSyncNode->startTime; state.restored = pSyncNode->restoreFinish; if (pSyncNode->vgId != 1) { state.canRead = syncNodeIsReadyForRead(pSyncNode); diff --git a/tests/script/tsim/db/basic1.sim b/tests/script/tsim/db/basic1.sim index 5d7d0bd9e9a682a761ffb33f486545f7028f5bfc..8eb6dce759046973e1367dc95b921a4c9c8f8990 100644 --- a/tests/script/tsim/db/basic1.sim +++ b/tests/script/tsim/db/basic1.sim @@ -107,35 +107,39 @@ if $data30 != 12 then return -1 endi -print =============== show vnodes -sql show vnodes 1 +print =============== show vnodes on dnode 1 +sql show vnodes on dnode 1 if $rows != 9 then return -1 endi -if $data(4)[1] != 1 then - return -1 +if $data10 != 1 then + return -1 endi -if $data(4)[2] != leader then - return -1 +if $data11 != 5 then + return -1 endi -if $data(4)[3] != d2 then - return -1 +if $data12 != d2 then + return -1 endi -if $data(4)[4] != 1 then - return -1 +if $data13 != leader then + return -1 endi -if $data(4)[5] != localhost:7100 then - return -1 +print $data14 +print $data15 + +if $data16 != 1 then + return -1 endi -sql show vnodes 'localhost:7100' +print ================ show vnodes +sql show vnodes if $rows != 9 then - return -1 + return -1 endi print =============== drop database diff --git a/tests/system-test/0-others/show.py b/tests/system-test/0-others/show.py index 5445352f43b1872e544ac0b892ecfd154f0b1392..d9cc4895b13dd361aa5a0448d9edc0b34e50b58a 100644 --- a/tests/system-test/0-others/show.py +++ b/tests/system-test/0-others/show.py @@ -128,7 +128,7 @@ class TDTestCase: continue else: tdLog.exit(f"show create database check failed with {key} {value}") - tdSql.query('show vnodes 1') + tdSql.query('show vnodes on dnode 1') tdSql.checkRows(self.vgroups) tdSql.execute(f'use {self.dbname}')