diff --git a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go index 6714d703123..2a052fc79f4 100644 --- a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go +++ b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go @@ -2060,6 +2060,161 @@ func testScheduler(t *testing.T) { onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusCancelled) onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusCancelled) }) + t.Run("cleanup migrations by context", func(t *testing.T) { + // Submit two migrations with the same context and a non-zero retain-artifacts window so + // they remain eligible for the CLEANUP query after completion. + t1uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT1Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --retain-artifacts=1h", executeStrategy: "vtctl", migrationContext: "ctx-cleanup-by-context", skipWait: true}) + t2uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT2Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --retain-artifacts=1h", executeStrategy: "vtctl", migrationContext: "ctx-cleanup-by-context", skipWait: true}) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusComplete) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusComplete) + + // A non-matching context cleans up nothing. + onlineddl.CheckCleanupContextMigrations(t, &vtParams, "ctx-cleanup-by-context-other", 0) + + // Cleanup by context: both migrations must be marked for cleanup. + onlineddl.CheckCleanupContextMigrations(t, &vtParams, "ctx-cleanup-by-context", 2) + }) + t.Run("complete migrations by context", func(t *testing.T) { + // Submit two migrations with the same context, both postponed so they stay running. + t1uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT1Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-completion", executeStrategy: "vtctl", migrationContext: "ctx-complete-by-context", skipWait: true}) + t2uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT2Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-completion", executeStrategy: "vtctl", migrationContext: "ctx-complete-by-context", skipWait: true}) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusRunning) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusRunning) + + // A non-matching context completes nothing. + onlineddl.CheckCompleteContextMigrations(t, &vtParams, "ctx-complete-by-context-other", 0) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusRunning) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusRunning) + + // Complete by context: both migrations must be completed. + onlineddl.CheckCompleteContextMigrations(t, &vtParams, "ctx-complete-by-context", 2) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusComplete) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusComplete) + }) + t.Run("postpone-complete migrations by context", func(t *testing.T) { + // Use --postpone-launch so migrations stay in queued state until we explicitly launch them, + // giving us time to set postpone_completion first. + t1uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT1Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-launch", executeStrategy: "vtctl", migrationContext: "ctx-postpone-complete-by-context", skipWait: true}) + t2uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT2Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-launch", executeStrategy: "vtctl", migrationContext: "ctx-postpone-complete-by-context", skipWait: true}) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusQueued) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusQueued) + // LaunchMigrations uses a query that requires reviewed_timestamp IS NOT NULL. + onlineddl.WaitForMigrationReviewedTimestamp(t, &vtParams, shards, t1uuid, normalWaitTime) + onlineddl.WaitForMigrationReviewedTimestamp(t, &vtParams, shards, t2uuid, normalWaitTime) + + // A non-matching context postpones nothing. + onlineddl.CheckPostponeCompleteContextMigrations(t, &vtParams, "ctx-postpone-complete-by-context-other", 0) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusQueued) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusQueued) + + // Postpone-complete by context: both migrations must be postponed. + onlineddl.CheckPostponeCompleteContextMigrations(t, &vtParams, "ctx-postpone-complete-by-context", 2) + + // Now launch the migrations. They will run but not complete because postpone_completion is set. + onlineddl.CheckLaunchContextMigrations(t, &vtParams, "ctx-postpone-complete-by-context", 2) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusRunning) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusRunning) + + // Migrations must stay running: postpone_completion prevents them from completing. + time.Sleep(ensureStateNotChangedTime) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusRunning) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusRunning) + + // Complete by context: both migrations must now complete. + onlineddl.CheckCompleteContextMigrations(t, &vtParams, "ctx-postpone-complete-by-context", 2) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusComplete) + }) + t.Run("force-cutover migrations by context", func(t *testing.T) { + // Use --postpone-launch so migrations stay in queued state. Using --postpone-completion + // instead risks the migration completing between FORCE_CUTOVER CONTEXT and CANCEL CONTEXT, + // causing WaitForMigrationStatus(cancelled) to hang for the full timeout. + t1uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT1Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-launch", executeStrategy: "vtctl", migrationContext: "ctx-force-cutover-by-context", skipWait: true}) + t2uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT2Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-launch", executeStrategy: "vtctl", migrationContext: "ctx-force-cutover-by-context", skipWait: true}) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusQueued) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusQueued) + + // A non-matching context force-cuts-over nothing. + onlineddl.CheckForceCutOverContextMigrations(t, &vtParams, "ctx-force-cutover-by-context-other", 0) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusQueued) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusQueued) + + // Force-cutover by context: both migrations must be marked. + onlineddl.CheckForceCutOverContextMigrations(t, &vtParams, "ctx-force-cutover-by-context", 2) + + // Clean up. + onlineddl.CheckCancelContextMigrations(t, &vtParams, "ctx-force-cutover-by-context", 2) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusCancelled, schema.OnlineDDLStatusFailed) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusCancelled, schema.OnlineDDLStatusFailed) + }) + t.Run("launch migrations by context", func(t *testing.T) { + // Submit two migrations with the same context, launch-postponed so they sit in queued state. + t1uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT1Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-launch", executeStrategy: "vtctl", migrationContext: "ctx-launch-by-context", skipWait: true}) + t2uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT2Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-launch", executeStrategy: "vtctl", migrationContext: "ctx-launch-by-context", skipWait: true}) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusQueued) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusQueued) + // LaunchMigrations uses a query that requires reviewed_timestamp IS NOT NULL. + onlineddl.WaitForMigrationReviewedTimestamp(t, &vtParams, shards, t1uuid, normalWaitTime) + onlineddl.WaitForMigrationReviewedTimestamp(t, &vtParams, shards, t2uuid, normalWaitTime) + + // A non-matching context launches nothing. + onlineddl.CheckLaunchContextMigrations(t, &vtParams, "ctx-launch-by-context-other", 0) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusQueued) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusQueued) + + // Launch by context: both migrations must be launched. + onlineddl.CheckLaunchContextMigrations(t, &vtParams, "ctx-launch-by-context", 2) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t1uuid, schema.OnlineDDLStatusComplete) + onlineddl.CheckMigrationStatus(t, &vtParams, shards, t2uuid, schema.OnlineDDLStatusComplete) + }) + t.Run("throttle/unthrottle migrations by context", func(t *testing.T) { + // Submit two migrations with the same context, both postponed so they stay running. + t1uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT1Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-completion", executeStrategy: "vtctl", migrationContext: "ctx-throttle-by-context", skipWait: true}) + t2uuid = testOnlineDDLStatement(t, &testOnlineDDLStatementParams{ddlStatement: trivialAlterT2Statement, ddlStrategy: ddlStrategy + " --allow-concurrent --postpone-completion", executeStrategy: "vtctl", migrationContext: "ctx-throttle-by-context", skipWait: true}) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusRunning) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusRunning) + + // Throttle by context. + onlineddl.ThrottleContextMigrations(t, &vtParams, "ctx-throttle-by-context") + time.Sleep(ensureStateNotChangedTime) + // Verify both migrations are throttled. + rs := onlineddl.ReadMigrations(t, &vtParams, t1uuid) + require.NotNil(t, rs) + for _, row := range rs.Named().Rows { + assert.EqualValues(t, 1.0, row.AsFloat64("user_throttle_ratio", 0)) + } + rs = onlineddl.ReadMigrations(t, &vtParams, t2uuid) + require.NotNil(t, rs) + for _, row := range rs.Named().Rows { + assert.EqualValues(t, 1.0, row.AsFloat64("user_throttle_ratio", 0)) + } + + // Unthrottle by context. + onlineddl.UnthrottleContextMigrations(t, &vtParams, "ctx-throttle-by-context") + time.Sleep(ensureStateNotChangedTime) + // Verify both migrations are unthrottled. + rs = onlineddl.ReadMigrations(t, &vtParams, t1uuid) + require.NotNil(t, rs) + for _, row := range rs.Named().Rows { + assert.EqualValues(t, 0, row.AsFloat64("user_throttle_ratio", 0)) + } + rs = onlineddl.ReadMigrations(t, &vtParams, t2uuid) + require.NotNil(t, rs) + for _, row := range rs.Named().Rows { + assert.EqualValues(t, 0, row.AsFloat64("user_throttle_ratio", 0)) + } + + // Clean up: cancel the postponed migrations. + onlineddl.CheckCancelContextMigrations(t, &vtParams, "ctx-throttle-by-context", 2) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusCancelled, schema.OnlineDDLStatusFailed) + onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t2uuid, normalWaitTime, schema.OnlineDDLStatusCancelled, schema.OnlineDDLStatusFailed) + }) } func testSingleton(t *testing.T) { diff --git a/go/test/endtoend/onlineddl/vtgate_util.go b/go/test/endtoend/onlineddl/vtgate_util.go index d367e4e71ef..52efe7f3fa6 100644 --- a/go/test/endtoend/onlineddl/vtgate_util.go +++ b/go/test/endtoend/onlineddl/vtgate_util.go @@ -224,6 +224,17 @@ func CheckLaunchMigration(t *testing.T, vtParams *mysql.ConnParams, shards []clu } } +// CheckCompleteContextMigrations completes all pending migrations with a given context and expects number of affected rows. +// A negative value for expectCount indicates "don't care, no need to check" +func CheckCompleteContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string, expectCount int) { + query := fmt.Sprintf("alter vitess_migration complete context '%s'", migrationContext) + r := VtgateExecQuery(t, vtParams, query, "") + + if expectCount >= 0 { + assert.Equal(t, expectCount, int(r.RowsAffected)) + } +} + // CheckCompleteAllMigrations completes all pending migrations and expect number of affected rows // A negative value for expectCount indicates "don't care, no need to check" func CheckCompleteAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expectCount int) { @@ -235,6 +246,17 @@ func CheckCompleteAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expect } } +// CheckPostponeCompleteContextMigrations postpones completion of all pending migrations with a given context and expects number of affected rows. +// A negative value for expectCount indicates "don't care, no need to check" +func CheckPostponeCompleteContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string, expectCount int) { + query := fmt.Sprintf("alter vitess_migration postpone complete context '%s'", migrationContext) + r := VtgateExecQuery(t, vtParams, query, "") + + if expectCount >= 0 { + assert.Equal(t, expectCount, int(r.RowsAffected)) + } +} + // CheckPostponeCompleteAllMigrations postpones all pending migrations and expect number of affected rows // A negative value for expectCount indicates "don't care, no need to check" func CheckPostponeCompleteAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expectCount int) { @@ -268,6 +290,18 @@ func CheckCancelContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migr } } +// CheckCleanupContextMigrations cleans up terminal migrations with a given context and expects number of affected rows. +// A negative value for expectCount indicates "don't care, no need to check" +func CheckCleanupContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string, expectCount int) uint64 { + query := fmt.Sprintf("alter vitess_migration cleanup context '%s'", migrationContext) + r := VtgateExecQuery(t, vtParams, query, "") + + if expectCount >= 0 { + assert.Equal(t, expectCount, int(r.RowsAffected)) + } + return r.RowsAffected +} + // CheckCleanupAllMigrations cleans up all applicable migrations and expect number of affected rows // A negative value for expectCount indicates "don't care, no need to check" func CheckCleanupAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expectCount int) uint64 { @@ -280,6 +314,17 @@ func CheckCleanupAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expectC return r.RowsAffected } +// CheckLaunchContextMigrations launches all queued postponed migrations with a given context and expects number of affected rows. +// A negative value for expectCount indicates "don't care, no need to check" +func CheckLaunchContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string, expectCount int) { + query := fmt.Sprintf("alter vitess_migration launch context '%s'", migrationContext) + r := VtgateExecQuery(t, vtParams, query, "") + + if expectCount >= 0 { + assert.Equal(t, expectCount, int(r.RowsAffected)) + } +} + // CheckLaunchAllMigrations launches all queued posponed migrations and expect number of affected rows // A negative value for expectCount indicates "don't care, no need to check" func CheckLaunchAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expectCount int) { @@ -291,6 +336,17 @@ func CheckLaunchAllMigrations(t *testing.T, vtParams *mysql.ConnParams, expectCo } } +// CheckForceCutOverContextMigrations marks all pending migrations with a given context for forced cut-over and expects number of affected rows. +// A negative value for expectCount indicates "don't care, no need to check" +func CheckForceCutOverContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string, expectCount int) { + query := fmt.Sprintf("alter vitess_migration force_cutover context '%s'", migrationContext) + r := VtgateExecQuery(t, vtParams, query, "") + + if expectCount >= 0 { + assert.Equal(t, expectCount, int(r.RowsAffected)) + } +} + // CheckForceMigrationCutOver marks a migration for forced cut-over, and expects success by counting affected rows. func CheckForceMigrationCutOver(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, expectPossible bool) { query, err := sqlparser.ParseAndBind("alter vitess_migration %a force_cutover", @@ -389,6 +445,49 @@ func WaitForMigrationStatus(t *testing.T, vtParams *mysql.ConnParams, shards []c } } +// WaitForMigrationReviewedTimestamp waits until reviewed_timestamp is set for the given +// migration on all shards. This is needed before LaunchMigrations, which uses a query +// that requires reviewed_timestamp IS NOT NULL. +func WaitForMigrationReviewedTimestamp(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, timeout time.Duration) { + t.Helper() + shardNames := map[string]bool{} + for _, shard := range shards { + shardNames[shard.Name] = true + } + query, err := sqlparser.ParseAndBind("show vitess_migrations like %a", + sqltypes.StringBindVariable(uuid), + ) + require.NoError(t, err) + + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + ticker := time.NewTicker(time.Second) + defer ticker.Stop() + + for { + countReviewed := 0 + r := VtgateExecQuery(t, vtParams, query, "") + for _, row := range r.Named().Rows { + shardName := row["shard"].ToString() + if !shardNames[shardName] { + continue + } + if row["migration_uuid"].ToString() == uuid && row["reviewed_timestamp"].ToString() != "" { + countReviewed++ + } + } + if countReviewed == len(shards) { + return + } + select { + case <-ctx.Done(): + require.Failf(t, "timed out", "waiting for reviewed_timestamp on migration %s", uuid) + return + case <-ticker.C: + } + } +} + // CheckMigrationArtifacts verifies given migration exists, and checks if it has artifacts func CheckMigrationArtifacts(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, expectArtifacts bool) { r := ReadMigrations(t, vtParams, uuid) @@ -431,12 +530,24 @@ func ThrottleAllMigrations(t *testing.T, vtParams *mysql.ConnParams) { _ = VtgateExecQuery(t, vtParams, query, "") } +// ThrottleContextMigrations throttles all pending migrations with a given context. +func ThrottleContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string) { + query := fmt.Sprintf("alter vitess_migration throttle context '%s' expire '24h' ratio 1", migrationContext) + _ = VtgateExecQuery(t, vtParams, query, "") +} + // UnthrottleAllMigrations cancels migration throttling func UnthrottleAllMigrations(t *testing.T, vtParams *mysql.ConnParams) { query := "alter vitess_migration unthrottle all" _ = VtgateExecQuery(t, vtParams, query, "") } +// UnthrottleContextMigrations unthrottles all pending migrations with a given context. +func UnthrottleContextMigrations(t *testing.T, vtParams *mysql.ConnParams, migrationContext string) { + query := fmt.Sprintf("alter vitess_migration unthrottle context '%s'", migrationContext) + _ = VtgateExecQuery(t, vtParams, query, "") +} + // CheckThrottledApps checks for existence or non-existence of an app in the throttled apps list func CheckThrottledApps(t *testing.T, vtParams *mysql.ConnParams, throttlerApp throttlerapp.Name, expectFind bool) bool { ctx, cancel := context.WithTimeout(context.Background(), ThrottledAppsTimeout) diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index cdad1b7e52b..b2f75adcb93 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -321,19 +321,35 @@ func (node *AlterMigration) Format(buf *TrackedBuffer) { case CleanupMigrationType: alterType = "cleanup" case CleanupAllMigrationType: - alterType = "cleanup all" + if node.Context != "" { + alterType = "cleanup" + } else { + alterType = "cleanup all" + } case LaunchMigrationType: alterType = "launch" case LaunchAllMigrationType: - alterType = "launch all" + if node.Context != "" { + alterType = "launch" + } else { + alterType = "launch all" + } case CompleteMigrationType: alterType = "complete" case CompleteAllMigrationType: - alterType = "complete all" + if node.Context != "" { + alterType = "complete" + } else { + alterType = "complete all" + } case PostponeCompleteMigrationType: alterType = "postpone complete" case PostponeCompleteAllMigrationType: - alterType = "postpone complete all" + if node.Context != "" { + alterType = "postpone complete" + } else { + alterType = "postpone complete all" + } case CancelMigrationType: alterType = "cancel" case CancelAllMigrationType: @@ -345,15 +361,27 @@ func (node *AlterMigration) Format(buf *TrackedBuffer) { case ThrottleMigrationType: alterType = "throttle" case ThrottleAllMigrationType: - alterType = "throttle all" + if node.Context != "" { + alterType = "throttle" + } else { + alterType = "throttle all" + } case UnthrottleMigrationType: alterType = "unthrottle" case UnthrottleAllMigrationType: - alterType = "unthrottle all" + if node.Context != "" { + alterType = "unthrottle" + } else { + alterType = "unthrottle all" + } case ForceCutOverMigrationType: alterType = "force_cutover" case ForceCutOverAllMigrationType: - alterType = "force_cutover all" + if node.Context != "" { + alterType = "force_cutover" + } else { + alterType = "force_cutover all" + } case SetCutOverThresholdMigrationType: alterType = "cutover_threshold" } @@ -361,15 +389,15 @@ func (node *AlterMigration) Format(buf *TrackedBuffer) { if node.Threshold != "" { buf.astPrintf(node, " %#s", encodeSQLString(node.Threshold)) } + if node.Context != "" { + buf.astPrintf(node, " context %#s", encodeSQLString(node.Context)) + } if node.Expire != "" { buf.astPrintf(node, " expire %#s", encodeSQLString(node.Expire)) } if node.Ratio != nil { buf.astPrintf(node, " ratio %v", node.Ratio) } - if node.Context != "" { - buf.astPrintf(node, " context %#s", encodeSQLString(node.Context)) - } if node.Shards != "" { buf.astPrintf(node, " vitess_shards %#s", encodeSQLString(node.Shards)) } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index aca352910b5..e0ce935ed69 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -446,19 +446,35 @@ func (node *AlterMigration) FormatFast(buf *TrackedBuffer) { case CleanupMigrationType: alterType = "cleanup" case CleanupAllMigrationType: - alterType = "cleanup all" + if node.Context != "" { + alterType = "cleanup" + } else { + alterType = "cleanup all" + } case LaunchMigrationType: alterType = "launch" case LaunchAllMigrationType: - alterType = "launch all" + if node.Context != "" { + alterType = "launch" + } else { + alterType = "launch all" + } case CompleteMigrationType: alterType = "complete" case CompleteAllMigrationType: - alterType = "complete all" + if node.Context != "" { + alterType = "complete" + } else { + alterType = "complete all" + } case PostponeCompleteMigrationType: alterType = "postpone complete" case PostponeCompleteAllMigrationType: - alterType = "postpone complete all" + if node.Context != "" { + alterType = "postpone complete" + } else { + alterType = "postpone complete all" + } case CancelMigrationType: alterType = "cancel" case CancelAllMigrationType: @@ -470,15 +486,27 @@ func (node *AlterMigration) FormatFast(buf *TrackedBuffer) { case ThrottleMigrationType: alterType = "throttle" case ThrottleAllMigrationType: - alterType = "throttle all" + if node.Context != "" { + alterType = "throttle" + } else { + alterType = "throttle all" + } case UnthrottleMigrationType: alterType = "unthrottle" case UnthrottleAllMigrationType: - alterType = "unthrottle all" + if node.Context != "" { + alterType = "unthrottle" + } else { + alterType = "unthrottle all" + } case ForceCutOverMigrationType: alterType = "force_cutover" case ForceCutOverAllMigrationType: - alterType = "force_cutover all" + if node.Context != "" { + alterType = "force_cutover" + } else { + alterType = "force_cutover all" + } case SetCutOverThresholdMigrationType: alterType = "cutover_threshold" } @@ -488,6 +516,10 @@ func (node *AlterMigration) FormatFast(buf *TrackedBuffer) { buf.WriteByte(' ') buf.WriteString(encodeSQLString(node.Threshold)) } + if node.Context != "" { + buf.WriteString(" context ") + buf.WriteString(encodeSQLString(node.Context)) + } if node.Expire != "" { buf.WriteString(" expire ") buf.WriteString(encodeSQLString(node.Expire)) @@ -496,10 +528,6 @@ func (node *AlterMigration) FormatFast(buf *TrackedBuffer) { buf.WriteString(" ratio ") node.Ratio.FormatFast(buf) } - if node.Context != "" { - buf.WriteString(" context ") - buf.WriteString(encodeSQLString(node.Context)) - } if node.Shards != "" { buf.WriteString(" vitess_shards ") buf.WriteString(encodeSQLString(node.Shards)) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 88baa247715..a8e4e4483f9 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2658,6 +2658,8 @@ var validSQL = []struct { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' cleanup", }, { input: "alter vitess_migration cleanup all", +}, { + input: "alter vitess_migration cleanup context 'some-context'", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' launch", }, { @@ -2666,6 +2668,8 @@ var validSQL = []struct { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' launch vitess_shards '-40,40-80'", }, { input: "alter vitess_migration launch all", +}, { + input: "alter vitess_migration launch context 'some-context'", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' complete", }, { @@ -2674,14 +2678,20 @@ var validSQL = []struct { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' complete vitess_shards '-40,40-80'", }, { input: "alter vitess_migration complete all", +}, { + input: "alter vitess_migration complete context 'some-context'", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' postpone complete", }, { input: "alter vitess_migration postpone complete all", +}, { + input: "alter vitess_migration postpone complete context 'some-context'", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' cancel", }, { input: "alter vitess_migration force_cutover all", +}, { + input: "alter vitess_migration force_cutover context 'some-context'", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' force_cutover", }, { @@ -2705,8 +2715,18 @@ var validSQL = []struct { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' unthrottle", }, { input: "alter vitess_migration throttle all", +}, { + input: "alter vitess_migration throttle context 'some-context'", +}, { + input: "alter vitess_migration throttle context 'some-context' expire '1h'", +}, { + input: "alter vitess_migration throttle context 'some-context' ratio 0.7", +}, { + input: "alter vitess_migration throttle context 'some-context' expire '1h' ratio 0.7", }, { input: "alter vitess_migration unthrottle all", +}, { + input: "alter vitess_migration unthrottle context 'some-context'", }, { input: "alter vitess_migration throttle all expire '1h'", }, { @@ -6492,6 +6512,30 @@ var invalidSQL = []struct { }{{ input: "alter vitess_migration cancel context ''", output: "migration context cannot be empty at position 41", +}, { + input: "alter vitess_migration cleanup context ''", + output: "migration context cannot be empty at position 42", +}, { + input: "alter vitess_migration launch context ''", + output: "migration context cannot be empty at position 41", +}, { + input: "alter vitess_migration complete context ''", + output: "migration context cannot be empty at position 43", +}, { + input: "alter vitess_migration postpone complete context ''", + output: "migration context cannot be empty at position 52", +}, { + input: "alter vitess_migration force_cutover context ''", + output: "migration context cannot be empty at position 48", +}, { + input: "alter vitess_migration throttle context ''", + output: "migration context cannot be empty at position 43", +}, { + input: "alter vitess_migration throttle context '' expire '1h' ratio 0.7", + output: "migration context cannot be empty at position 65 near '0.7'", +}, { + input: "alter vitess_migration unthrottle context ''", + output: "migration context cannot be empty at position 45", }, { input: "select : from t", output: "syntax error at position 9 near ':'", diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index c8618eb126a..e34be451efc 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1664,19 +1664,19 @@ var yyExca = [...]int16{ 381, 237, -2, 597, -1, 66, - 40, 903, - 268, 903, - 279, 903, - 315, 917, - 316, 917, - -2, 905, + 40, 910, + 268, 910, + 279, 910, + 315, 924, + 316, 924, + -2, 912, -1, 71, - 270, 941, - -2, 939, + 270, 948, + -2, 946, -1, 124, 1, 192, 805, 192, - -2, 1774, + -2, 1781, -1, 135, 1, 230, 805, 230, @@ -1694,38 +1694,38 @@ var yyExca = [...]int16{ 180, 102, -2, 104, -1, 1017, - 97, 1786, - -2, 1602, + 97, 1793, + -2, 1609, -1, 1018, - 97, 1787, - 240, 1791, - -2, 1603, + 97, 1794, + 240, 1798, + -2, 1610, -1, 1019, - 240, 1790, + 240, 1797, -2, 103, -1, 1105, - 67, 1015, - -2, 1028, + 67, 1022, + -2, 1035, -1, 1110, - 267, 1766, - -2, 1672, + 267, 1773, + -2, 1679, -1, 1196, - 278, 1229, - 283, 1229, + 278, 1236, + 283, 1236, -2, 493, -1, 1284, 1, 654, 805, 654, -2, 237, -1, 1456, - 240, 1791, - -2, 1603, + 240, 1798, + -2, 1610, -1, 1669, - 67, 1016, - -2, 1032, + 67, 1023, + -2, 1039, -1, 1670, - 67, 1017, - -2, 1033, + 67, 1024, + -2, 1040, -1, 1752, 151, 237, 195, 237, @@ -1736,15 +1736,15 @@ var yyExca = [...]int16{ 273, 482, -2, 586, -1, 1838, - 278, 1230, - 283, 1230, + 278, 1237, + 283, 1237, -2, 494, -1, 2469, - 240, 1795, - -2, 1789, + 240, 1802, + -2, 1796, -1, 2470, - 240, 1791, - -2, 1787, + 240, 1798, + -2, 1794, -1, 2592, 151, 237, 195, 237, @@ -1753,88 +1753,88 @@ var yyExca = [...]int16{ -1, 2599, 29, 258, -2, 260, - -1, 3071, - 97, 1730, - -2, 1008, - -1, 3091, + -1, 3077, + 97, 1737, + -2, 1015, + -1, 3097, 88, 162, 98, 162, - -2, 1096, - -1, 3156, - 780, 780, - -2, 754, - -1, 3405, - 57, 1722, - -2, 1716, - -1, 3728, - 99, 1663, - -2, 1668, - -1, 4255, - 780, 780, - -2, 768, - -1, 4295, + -2, 1103, + -1, 3162, + 780, 787, + -2, 761, + -1, 3418, + 57, 1729, + -2, 1723, + -1, 3743, + 99, 1670, + -2, 1675, + -1, 4271, + 780, 787, + -2, 775, + -1, 4311, 17, 110, 18, 110, 167, 91, - -2, 929, - -1, 4352, + -2, 936, + -1, 4368, 167, 92, -2, 110, - -1, 4372, - 100, 712, - 106, 712, - 116, 712, - 197, 712, - 198, 712, - 199, 712, - 200, 712, - 201, 712, - 202, 712, - 203, 712, - 204, 712, - 205, 712, - 206, 712, - 207, 712, - 208, 712, - 209, 712, - 210, 712, - 211, 712, - 212, 712, - 213, 712, - 214, 712, - 215, 712, - 216, 712, - 217, 712, - 218, 712, - 219, 712, - 220, 712, - 221, 712, - 222, 712, - 223, 712, - 224, 712, - 225, 712, - 226, 712, - 227, 712, - 228, 712, - 229, 712, - 230, 712, - 231, 712, - 232, 712, - 233, 712, - 234, 712, - 235, 712, - 236, 712, - 237, 712, - 238, 712, - -2, 2201, - -1, 4445, + -1, 4388, + 100, 719, + 106, 719, + 116, 719, + 197, 719, + 198, 719, + 199, 719, + 200, 719, + 201, 719, + 202, 719, + 203, 719, + 204, 719, + 205, 719, + 206, 719, + 207, 719, + 208, 719, + 209, 719, + 210, 719, + 211, 719, + 212, 719, + 213, 719, + 214, 719, + 215, 719, + 216, 719, + 217, 719, + 218, 719, + 219, 719, + 220, 719, + 221, 719, + 222, 719, + 223, 719, + 224, 719, + 225, 719, + 226, 719, + 227, 719, + 228, 719, + 229, 719, + 230, 719, + 231, 719, + 232, 719, + 233, 719, + 234, 719, + 235, 719, + 236, 719, + 237, 719, + 238, 719, + -2, 2208, + -1, 4461, 165, 97, 167, 97, -2, 110, - -1, 4529, + -1, 4545, 167, 96, -2, 110, - -1, 4535, + -1, 4551, 17, 110, 18, 110, -2, 101, @@ -2148,16 +2148,16 @@ var yyExcaIdx = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2181,8 +2181,8 @@ var yyExcaIdx = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2213,9 +2213,9 @@ var yyExcaIdx = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2266,127 +2266,129 @@ var yyExcaIdx = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, - 0, 0, 0, 0, 0, 376, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 370, 0, 0, 0, 0, + 0, 376, 0, 0, 0, } const yyPrivate = 57344 -const yyLast = 63760 +const yyLast = 63932 var yyAct = [...]int16{ - 1033, 3893, 4352, 4492, 4353, 92, 981, 4354, 4487, 4476, - 3894, 4505, 3895, 4237, 982, 4493, 840, 4422, 3533, 4334, - 4423, 4370, 2588, 4450, 3356, 2274, 3686, 1960, 3842, 1755, - 4287, 3547, 3458, 3465, 2498, 4494, 4499, 4216, 2649, 4139, - 3502, 3419, 2466, 3511, 3936, 4214, 3516, 1028, 3513, 3512, - 3510, 1020, 3515, 3514, 3254, 3830, 3339, 3473, 2659, 2262, - 3530, 3531, 3228, 2161, 812, 3062, 132, 1021, 3763, 2559, - 3049, 90, 2562, 3253, 3716, 9, 3406, 3067, 3417, 2540, - 807, 2500, 3126, 3423, 806, 2628, 3153, 3420, 2176, 3201, - 3555, 1103, 1228, 92, 2633, 2690, 1166, 3034, 3128, 3127, - 2576, 3740, 3077, 1130, 1100, 1854, 47, 2563, 3947, 3055, - 174, 1138, 3033, 3007, 1103, 3023, 2454, 2564, 3190, 2519, - 45, 2422, 3726, 2208, 1812, 2258, 160, 2668, 2421, 2549, - 2296, 2635, 1176, 986, 1836, 3119, 1186, 1741, 46, 3093, - 1178, 809, 3751, 1162, 1035, 1719, 1704, 2528, 1650, 3422, - 111, 112, 2566, 1469, 2302, 2222, 2233, 1394, 983, 1377, - 2758, 1204, 1367, 1687, 1109, 1955, 810, 1191, 1843, 1173, - 1197, 2624, 1194, 1174, 1170, 1192, 2541, 1193, 822, 1740, - 1148, 1113, 3931, 1725, 3005, 2625, 817, 1125, 1150, 1277, - 107, 2310, 3923, 1672, 2329, 1126, 1452, 1428, 2173, 1108, - 14, 1342, 13, 2199, 12, 3687, 1098, 106, 2134, 178, - 143, 144, 1288, 1107, 138, 136, 137, 89, 1828, 99, - 1111, 1143, 4350, 1282, 1102, 799, 1106, 1478, 1473, 6, - 1328, 1142, 4477, 3831, 113, 3499, 4271, 114, 2661, 2662, - 2663, 2661, 3144, 732, 3176, 3175, 1276, 1132, 2705, 3823, - 1097, 4394, 1706, 3218, 3219, 1230, 2762, 4266, 4267, 1352, - 1129, 2215, 4272, 2214, 1357, 2495, 2496, 139, 1247, 1248, - 1249, 1368, 1252, 1253, 1254, 1255, 1233, 145, 1258, 1259, - 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, - 1270, 1271, 1272, 1273, 1274, 1167, 2213, 1117, 2212, 1920, - 1158, 2211, 2210, 800, 1299, 3898, 3898, 2167, 1101, 1208, - 1157, 1298, 1115, 4, 3521, 1118, 1183, 3141, 3003, 4, - 1207, 3402, 4245, 3146, 1099, 2694, 1702, 3518, 3788, 4426, - 795, 1241, 3521, 1131, 729, 2772, 730, 3343, 4524, 1234, - 1237, 1238, 3051, 4421, 4467, 139, 1709, 3166, 3690, 3689, - 1182, 1181, 1180, 1707, 2537, 1250, 4481, 1034, 4398, 101, - 2536, 118, 119, 120, 1391, 123, 201, 1388, 1683, 4267, - 778, 3169, 202, 2693, 3519, 724, 1710, 4217, 1156, 1160, - 985, 4396, 4480, 1708, 4397, 2968, 1096, 797, 798, 2220, - 140, 3576, 3519, 4349, 4135, 91, 4134, 1091, 1092, 1093, - 1094, 3897, 3897, 3525, 1105, 1232, 183, 4395, 1110, 3836, - 1231, 4392, 3837, 139, 1184, 4436, 4145, 778, 3855, 3066, - 1408, 3525, 1409, 1410, 1379, 2779, 2765, 778, 3843, 91, - 91, 4331, 2650, 3938, 1145, 1146, 2687, 4144, 2267, 4375, - 3602, 2530, 129, 3455, 3456, 3102, 1411, 3071, 3101, 3004, - 3070, 3103, 3107, 2583, 2584, 1156, 1160, 985, 2192, 2193, - 91, 3454, 762, 93, 3217, 1742, 180, 1743, 2776, 181, - 3854, 2582, 1390, 3188, 3187, 1347, 1318, 1407, 1306, 101, - 2692, 3071, 103, 1089, 3070, 1307, 1088, 1323, 1324, 1355, - 1362, 1354, 2180, 1306, 3147, 200, 2777, 1305, 2297, 4238, - 1307, 3114, 1319, 1312, 778, 1304, 2130, 2602, 2601, 778, - 748, 3737, 103, 101, 101, 3551, 2338, 3549, 3058, 3059, - 3584, 3582, 3275, 2644, 1372, 1738, 3556, 1395, 791, 2770, - 3522, 778, 2195, 746, 2191, 778, 796, 1429, 789, 2730, - 778, 1910, 3191, 4187, 101, 4188, 3189, 2638, 3522, 2728, - 1281, 3154, 1289, 1290, 1654, 2669, 2520, 3029, 3810, 1698, - 3573, 2497, 1339, 1430, 1431, 1432, 1433, 1434, 1435, 1436, - 1438, 1437, 1439, 1440, 743, 2172, 2544, 4380, 802, 1389, - 2544, 2712, 1371, 758, 1251, 1293, 1911, 1356, 1912, 1351, - 127, 1285, 1292, 1321, 1322, 1346, 2710, 4378, 753, 1378, - 779, 1335, 1325, 1337, 1320, 1313, 4427, 4385, 4386, 1294, - 1345, 2181, 756, 2518, 3552, 776, 3550, 3475, 3476, 974, - 3388, 1326, 184, 777, 4379, 1149, 2520, 4428, 3389, 3196, - 2162, 190, 795, 3043, 2734, 3044, 2735, 2713, 2736, 2709, - 2330, 2672, 1334, 1336, 3825, 2332, 1405, 779, 1353, 2337, - 2333, 2131, 2711, 2334, 2335, 2336, 1344, 779, 2331, 2339, - 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2294, 128, - 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, - 4462, 4463, 764, 1327, 733, 3824, 735, 749, 769, 2737, - 770, 781, 792, 780, 739, 773, 2773, 737, 2774, 763, - 130, 741, 750, 742, 3276, 774, 775, 765, 766, 768, - 736, 767, 2637, 747, 1358, 1257, 738, 751, 752, 755, - 759, 760, 761, 757, 754, 1256, 745, 782, 2708, 4119, - 3902, 2560, 1188, 1226, 779, 1159, 1153, 1151, 3474, 779, - 1187, 1225, 1224, 1223, 1188, 1222, 1221, 1168, 1220, 1219, - 3477, 1175, 1214, 1179, 1657, 1821, 1227, 1332, 3142, 3477, - 4525, 779, 1333, 175, 129, 779, 1171, 3497, 1401, 1280, - 779, 1200, 1739, 1171, 1236, 1171, 1199, 1393, 1144, 1169, - 1199, 3342, 1338, 4534, 1235, 2542, 2543, 2529, 1956, 2542, - 2543, 3197, 2286, 2275, 2276, 2277, 2278, 2288, 2279, 2280, - 2281, 2293, 2289, 2282, 2283, 2290, 2291, 2292, 2284, 2285, - 2287, 2698, 1159, 1153, 1151, 2697, 3148, 1952, 1380, 1331, - 1244, 3729, 3392, 3178, 3028, 1103, 1453, 1458, 1459, 2527, - 1462, 1464, 1465, 1466, 1467, 1468, 3738, 1471, 1472, 1474, - 1474, 2729, 1474, 1474, 1479, 1479, 1479, 1482, 1483, 1484, + 1033, 3909, 3911, 3910, 1028, 92, 4508, 1020, 4369, 2262, + 4368, 4503, 4492, 4370, 4521, 4253, 982, 840, 981, 3546, + 4509, 4438, 2588, 4386, 4439, 4466, 3701, 4303, 3369, 2274, + 4350, 1960, 3857, 1755, 3560, 4510, 2498, 3471, 3478, 4515, + 3515, 3432, 3952, 4230, 90, 9, 3845, 3352, 3267, 2500, + 4232, 3544, 3486, 4155, 2659, 812, 3543, 3068, 3073, 3436, + 3433, 3741, 3755, 3241, 986, 3963, 3266, 2540, 2161, 46, + 1228, 3568, 132, 1021, 2562, 3778, 3430, 2559, 3419, 3731, + 3055, 806, 2628, 807, 2649, 2176, 3132, 3196, 2466, 3214, + 3159, 1103, 3040, 92, 2633, 3134, 3133, 1166, 2576, 3524, + 2690, 3083, 1130, 2564, 47, 2519, 3529, 3526, 3525, 1100, + 3061, 3523, 3528, 3029, 1103, 3039, 3013, 2454, 1854, 174, + 1138, 2422, 45, 3527, 2563, 2258, 1836, 1812, 2208, 160, + 2296, 2421, 1176, 2549, 2635, 3125, 1186, 1109, 2668, 1741, + 809, 3099, 1162, 1719, 1035, 3435, 1191, 3766, 1687, 111, + 983, 1704, 2566, 1178, 1650, 1102, 112, 1106, 1469, 2528, + 2302, 2233, 2222, 1394, 1377, 1367, 810, 1204, 2764, 1955, + 107, 822, 1843, 1173, 1170, 1194, 1197, 3947, 1132, 1174, + 3011, 2624, 1192, 1193, 1740, 817, 2625, 1148, 1150, 3939, + 1725, 1277, 1126, 106, 2329, 1125, 1113, 1108, 1672, 2310, + 1428, 1452, 14, 1342, 13, 2199, 12, 2173, 2134, 1098, + 138, 2541, 136, 1129, 137, 1107, 3702, 114, 178, 143, + 1828, 144, 1143, 1288, 99, 799, 1111, 113, 1473, 1282, + 4366, 1328, 6, 1230, 4493, 3846, 89, 2661, 2662, 2663, + 1142, 1478, 3512, 2661, 3182, 3181, 1247, 1248, 1249, 1276, + 1252, 1253, 1254, 1255, 2297, 4287, 1258, 1259, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, + 1272, 1273, 1274, 3150, 1167, 2705, 139, 1117, 732, 145, + 3838, 4288, 1368, 4410, 1097, 1233, 3803, 1706, 3231, 1299, + 3232, 2768, 1357, 3914, 4282, 4283, 1352, 2495, 2496, 3534, + 2215, 1118, 1920, 800, 2214, 3914, 2213, 1115, 4, 1157, + 2212, 2211, 2210, 2167, 4, 1208, 3534, 1099, 1298, 729, + 3147, 730, 4261, 1207, 3009, 2778, 3415, 1101, 4540, 3531, + 1391, 4442, 1709, 1388, 802, 1158, 2694, 1241, 1131, 4497, + 3057, 795, 1234, 1237, 1238, 1702, 1182, 3152, 1181, 1707, + 1180, 1183, 3356, 4483, 139, 4414, 118, 119, 120, 3532, + 123, 101, 1710, 4437, 3705, 4496, 3704, 202, 1683, 778, + 724, 4412, 201, 2537, 778, 2536, 3532, 3175, 4233, 1708, + 2974, 4413, 797, 798, 2693, 2220, 3591, 4365, 3538, 3913, + 1250, 4151, 1091, 1092, 1093, 1094, 140, 4411, 4150, 1105, + 1232, 3913, 1231, 1110, 3851, 3538, 4283, 3852, 3172, 4452, + 4161, 4408, 183, 1184, 3871, 1156, 1160, 985, 2771, 762, + 1096, 1379, 139, 3858, 1156, 1160, 985, 4347, 2650, 1145, + 1146, 2687, 4160, 2267, 4391, 3617, 2530, 129, 1390, 1034, + 1408, 3010, 1409, 1410, 3467, 2162, 2785, 795, 3230, 3108, + 91, 91, 3107, 2782, 2582, 3109, 3468, 3469, 3113, 2583, + 2584, 2192, 2193, 1742, 778, 1743, 1411, 748, 91, 4396, + 3194, 3870, 180, 778, 3072, 181, 3193, 1318, 1407, 2692, + 3954, 1347, 1089, 1281, 1088, 1289, 1290, 1323, 1324, 4394, + 746, 2180, 1355, 1354, 1362, 1395, 4254, 3120, 1319, 4401, + 4402, 200, 3077, 3077, 778, 3076, 3076, 3153, 2130, 3488, + 3489, 1312, 1306, 3564, 1306, 3535, 4395, 2783, 1293, 1307, + 103, 1307, 778, 2644, 3562, 1292, 2602, 2601, 3064, 3065, + 778, 743, 3535, 1305, 101, 101, 3288, 778, 3599, 3597, + 758, 1304, 1294, 1372, 2776, 1389, 2191, 2638, 1738, 2544, + 1395, 791, 101, 2195, 796, 753, 1429, 4468, 4469, 4470, + 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 756, + 789, 3197, 776, 91, 3569, 2544, 93, 2338, 3195, 3588, + 777, 1251, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, + 1437, 1439, 1440, 2497, 2731, 1654, 1378, 3160, 3035, 779, + 1320, 1346, 1325, 4203, 779, 4204, 2669, 3401, 4443, 3825, + 2181, 2518, 3565, 1313, 1405, 3402, 1345, 1698, 2740, 127, + 2741, 1326, 2742, 3563, 2520, 103, 1351, 2520, 184, 4444, + 3487, 2712, 1321, 1322, 1339, 3840, 2172, 190, 3049, 764, + 3050, 733, 3490, 735, 749, 769, 1910, 770, 781, 2710, + 780, 739, 773, 2131, 737, 1285, 763, 101, 741, 750, + 742, 1371, 774, 775, 765, 766, 768, 736, 767, 1405, + 747, 1149, 3209, 738, 751, 752, 755, 759, 760, 761, + 757, 754, 2294, 745, 782, 1356, 2779, 2713, 2780, 1353, + 1344, 1911, 2709, 1912, 779, 130, 3752, 3839, 128, 1327, + 2743, 2330, 1280, 779, 1257, 2711, 2332, 1256, 2708, 4135, + 2337, 2333, 2637, 1187, 2334, 2335, 2336, 1188, 3289, 2331, + 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 3202, + 2672, 3918, 2560, 1188, 779, 1226, 1401, 1225, 1224, 2738, + 1223, 3490, 1358, 1222, 1221, 1393, 1220, 1219, 1214, 1657, + 1821, 1227, 779, 4541, 3510, 2736, 1171, 1171, 2542, 2543, + 779, 3148, 1200, 1199, 1171, 4550, 2529, 779, 1169, 175, + 1236, 2734, 1159, 1153, 1151, 1956, 1199, 1144, 2733, 3210, + 1235, 1159, 1153, 1151, 2542, 2543, 2698, 2697, 1952, 1380, + 1244, 1401, 3744, 129, 2729, 1739, 3355, 3405, 3184, 2727, + 2725, 3034, 2527, 2526, 2525, 4426, 2286, 2275, 2276, 2277, + 2278, 2288, 2279, 2280, 2281, 2293, 2289, 2282, 2283, 2290, + 2291, 2292, 2284, 2285, 2287, 1103, 1453, 1458, 1459, 3154, + 1462, 1464, 1465, 1466, 1467, 1468, 3170, 1471, 1472, 1474, + 1474, 2163, 1474, 1474, 1479, 1479, 1479, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, @@ -2399,1156 +2401,1173 @@ var yyAct = [...]int16{ 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, - 1605, 1291, 1463, 4244, 3145, 1606, 94, 1608, 1609, 1610, - 1611, 1612, 1706, 1340, 1454, 1446, 1447, 1448, 1449, 1479, - 1479, 1479, 1479, 1479, 1479, 1460, 3940, 3939, 1185, 3168, - 2691, 1360, 3674, 1450, 1619, 1620, 1621, 1622, 1623, 1624, - 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 4290, 1348, - 3574, 100, 130, 3853, 1369, 783, 2163, 176, 3821, 3041, - 1359, 3116, 3896, 3896, 188, 1152, 1206, 2778, 1302, 1283, - 1308, 1309, 1310, 1311, 3523, 3524, 771, 3167, 1940, 1922, - 1921, 1923, 1924, 1925, 1206, 100, 100, 3527, 1206, 1217, - 1215, 772, 3523, 3524, 1349, 1350, 101, 1443, 1475, 1443, - 1476, 1477, 1480, 1481, 2641, 3527, 196, 1303, 3786, 3787, - 3789, 1842, 1387, 2777, 2526, 1647, 100, 3008, 3010, 2525, - 3164, 1653, 3200, 1400, 1397, 1398, 1399, 1404, 1406, 1403, - 1103, 1402, 2521, 1953, 1103, 1109, 1297, 4509, 723, 1316, - 1103, 1396, 1152, 4410, 4409, 2642, 4522, 3186, 4498, 1283, - 3185, 1444, 1445, 2640, 4390, 4233, 3777, 3759, 3098, 177, - 182, 179, 185, 186, 187, 189, 191, 192, 193, 194, - 1206, 3351, 1939, 3061, 2980, 195, 197, 198, 199, 1395, - 2270, 1205, 2689, 4384, 1644, 3820, 1729, 2643, 135, 3056, - 1607, 1296, 3350, 92, 3222, 2589, 2794, 1643, 731, 1205, - 1443, 2639, 1440, 1205, 1243, 1109, 3453, 2805, 92, 1694, - 1411, 1701, 1697, 2720, 2715, 2717, 2718, 2716, 2721, 2722, - 2723, 2724, 1423, 3371, 2719, 1329, 4382, 2174, 2135, 1121, - 1343, 4383, 1841, 1683, 1301, 4501, 1663, 1664, 4488, 4258, - 111, 112, 1410, 1281, 1275, 3369, 1613, 1614, 1615, 1616, - 1617, 1618, 1218, 1216, 1644, 1433, 1434, 1435, 1436, 1438, - 1437, 1439, 1440, 1661, 1109, 1411, 2311, 1665, 1751, 1229, - 3816, 1651, 3750, 1102, 2531, 2204, 1949, 1744, 1206, 1109, - 4528, 4405, 3249, 1815, 2312, 1205, 2550, 2551, 3229, 4516, - 1705, 1199, 1202, 1203, 2303, 1171, 3203, 3039, 1405, 1196, - 1200, 3202, 4250, 3009, 4365, 3203, 1818, 1819, 1820, 1279, - 3202, 1945, 4437, 1942, 1943, 1941, 1946, 1947, 1948, 2805, - 3956, 1834, 1944, 1281, 3794, 1691, 46, 114, 1206, 1936, - 3793, 1937, 1693, 1692, 1938, 1750, 2676, 2303, 1662, 2814, - 1851, 46, 1850, 1648, 1840, 1685, 2686, 1827, 2684, 1660, - 1856, 1962, 1857, 1688, 1859, 1861, 1217, 1101, 1865, 1867, - 1869, 1871, 1873, 1700, 1690, 1887, 1099, 1315, 2681, 1846, - 1206, 1215, 1905, 1895, 1896, 2681, 1698, 4429, 1317, 1901, - 1902, 4507, 1294, 3231, 4508, 1330, 4506, 1695, 2136, 1659, - 1300, 2688, 1284, 1205, 1844, 1844, 1848, 1735, 1736, 1199, - 1202, 1203, 1845, 1171, 4301, 1807, 4526, 1196, 1200, 1116, - 1408, 2685, 1409, 1410, 92, 3778, 201, 92, 2683, 1206, - 1401, 126, 1930, 1883, 3591, 2309, 1886, 1928, 1888, 1195, - 1825, 1823, 1837, 4225, 1278, 3849, 1411, 3850, 1824, 1682, - 140, 1409, 1410, 1205, 1128, 1242, 1381, 1666, 2456, 1239, - 4511, 1891, 1408, 4302, 1409, 1410, 183, 2458, 2182, 3241, - 3240, 3239, 1280, 101, 3233, 1411, 3237, 4431, 3232, 4127, - 3230, 1935, 1683, 1032, 4126, 3235, 2178, 1128, 1411, 1429, - 2308, 3221, 4226, 2236, 3234, 1205, 4117, 1957, 1958, 2200, - 1209, 1199, 2200, 1929, 3867, 1211, 1683, 3866, 1927, 1212, - 1210, 3801, 4527, 3236, 3238, 1430, 1431, 1432, 1433, 1434, - 1435, 1436, 1438, 1437, 1439, 1440, 180, 3800, 1917, 181, - 3790, 1213, 2265, 2265, 139, 2228, 2263, 2263, 3500, 1182, - 1181, 1180, 3493, 3214, 1205, 2266, 1037, 1038, 1039, 1209, - 1199, 3208, 1280, 2238, 1211, 200, 1161, 46, 1212, 1210, - 46, 3124, 1408, 2140, 1409, 1410, 3123, 2349, 2239, 1441, - 1442, 2237, 1645, 3122, 2647, 2137, 1109, 1683, 3400, 1931, - 1915, 2165, 1435, 1436, 1438, 1437, 1439, 1440, 1411, 2141, - 1914, 4442, 1683, 1913, 2175, 1903, 2148, 2149, 2150, 1916, - 2756, 4440, 1683, 2226, 2227, 2784, 2785, 1897, 2241, 1894, - 2243, 2244, 2245, 2246, 2247, 2248, 2250, 2252, 2253, 2254, - 2255, 2256, 2257, 1893, 2203, 1644, 2201, 2203, 2202, 2201, - 2205, 2202, 1892, 1408, 2242, 1409, 1410, 2298, 1643, 4345, - 1683, 1863, 1658, 2235, 4343, 1683, 1127, 1128, 1408, 795, - 1409, 1410, 1454, 1408, 2455, 1409, 1410, 2138, 1408, 1411, - 1409, 1410, 4530, 2240, 2142, 2754, 2144, 2145, 2146, 2147, - 2304, 1374, 2469, 2151, 1411, 2467, 3783, 1738, 795, 1411, - 4465, 3211, 184, 795, 1411, 2166, 3105, 1471, 795, 4430, - 2269, 190, 2373, 1817, 4478, 2365, 1408, 4253, 1409, 1410, - 2657, 1408, 2656, 1409, 1410, 2179, 4252, 4341, 1683, 1683, - 1429, 4229, 4200, 1683, 4246, 2313, 2314, 2315, 2316, 2655, - 4228, 2654, 1411, 4227, 2457, 4198, 1683, 1411, 2653, 2327, - 2652, 2851, 4154, 2855, 1712, 2348, 1430, 1431, 1432, 1433, - 1434, 1435, 1436, 1438, 1437, 1439, 1440, 2535, 2226, 2227, - 2224, 2225, 1655, 1656, 108, 1400, 1397, 1398, 1399, 1404, - 1406, 1403, 4122, 1402, 1408, 109, 1409, 1410, 2853, 1408, - 4107, 1409, 1410, 1396, 2810, 2223, 2568, 2465, 1407, 1683, - 2472, 2473, 1408, 1713, 1409, 1410, 4106, 111, 112, 3955, - 1411, 92, 4417, 1683, 2469, 1411, 3953, 2556, 3863, 1727, - 1417, 1418, 1419, 1420, 1421, 1422, 1416, 1413, 1411, 111, - 112, 1683, 1817, 1683, 4153, 1746, 1407, 1683, 2599, 1642, - 2515, 1641, 2234, 175, 2502, 1640, 1683, 1817, 4330, 1808, - 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1437, 1439, 1440, - 1126, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1437, - 1439, 1440, 1176, 2809, 1168, 1122, 1838, 1817, 4311, 1817, - 4307, 4111, 1109, 1123, 1847, 3798, 2590, 1408, 1849, 1409, - 1410, 1852, 1853, 1855, 1855, 3782, 1855, 3557, 1855, 1855, - 1176, 1864, 1855, 1855, 1855, 1855, 1855, 2609, 2610, 2611, - 2594, 3554, 2490, 1411, 2523, 1884, 1885, 3553, 1168, 3496, - 2574, 1890, 3495, 2593, 101, 2516, 3194, 1127, 1128, 2570, - 1408, 3192, 1409, 1410, 4207, 1683, 1117, 3834, 4243, 2522, - 3133, 2532, 4130, 1683, 46, 2603, 3120, 2604, 2605, 2606, - 2607, 2608, 2630, 1932, 1639, 2612, 1411, 2670, 1817, 4118, - 4110, 2614, 1633, 2545, 2616, 2617, 2618, 2619, 2636, 1954, - 2554, 3834, 1683, 1959, 1158, 1817, 3832, 3735, 2579, 2580, - 1429, 2597, 2793, 2508, 1157, 2509, 2578, 2681, 1683, 2596, - 2667, 2595, 2767, 4195, 1683, 3756, 1683, 110, 1429, 2760, - 2748, 1425, 2646, 1426, 3461, 2747, 1430, 1431, 1432, 1433, - 1434, 1435, 1436, 1438, 1437, 1439, 1440, 2841, 1427, 1441, - 1442, 1424, 2703, 1645, 1430, 1431, 1432, 1433, 1434, 1435, - 1436, 1438, 1437, 1439, 1440, 2675, 2627, 2702, 2678, 4149, - 2679, 3155, 2631, 2695, 2539, 2645, 2620, 2622, 2623, 2503, - 1408, 2168, 1409, 1410, 1208, 3462, 2132, 1429, 1926, 4177, - 1683, 3138, 2197, 1683, 1844, 1207, 1918, 1908, 2673, 2674, - 2363, 2677, 2631, 4432, 2598, 2696, 1411, 2699, 2935, 1683, - 3464, 2700, 2701, 1430, 1431, 1432, 1433, 1434, 1435, 1436, - 1438, 1437, 1439, 1440, 3486, 3485, 1408, 1904, 1409, 1410, - 3459, 1900, 108, 3483, 3484, 3715, 1683, 176, 110, 91, - 48, 49, 93, 109, 188, 2707, 1408, 2706, 1409, 1410, - 3475, 3476, 1411, 2259, 1899, 3708, 1683, 3460, 98, 1408, - 1898, 1409, 1410, 52, 81, 82, 1714, 79, 83, 3705, - 1683, 3749, 1411, 1408, 3025, 1409, 1410, 3481, 3482, 80, - 2446, 2447, 2448, 2449, 2450, 1411, 196, 1408, 110, 1409, - 1410, 103, 1408, 3466, 1409, 1410, 4407, 2471, 1341, 1411, - 2474, 2475, 3703, 1683, 1683, 1407, 3666, 1683, 3753, 2740, - 4285, 67, 1408, 1411, 1409, 1410, 4242, 4257, 1411, 3664, - 1683, 3481, 3480, 101, 4521, 3063, 1408, 3094, 1409, 1410, - 3063, 3660, 1683, 3074, 1683, 1817, 2492, 4221, 1411, 177, - 182, 179, 185, 186, 187, 189, 191, 192, 193, 194, - 3657, 1683, 1411, 3024, 2755, 195, 197, 198, 199, 1408, - 3074, 1409, 1410, 1408, 3073, 1409, 1410, 3655, 1683, 2777, - 3177, 3474, 1408, 88, 1409, 1410, 1408, 3752, 1409, 1410, - 4114, 1811, 3158, 3477, 3694, 1411, 3653, 1683, 1408, 1411, - 1409, 1410, 3651, 1683, 3151, 3152, 3095, 3566, 1411, 3094, - 3649, 1683, 1411, 3074, 3647, 1683, 3097, 1408, 3749, 1409, - 1410, 2782, 1717, 3448, 1411, 2268, 1683, 2468, 1817, 1816, - 1103, 1103, 1103, 2777, 1408, 3074, 1409, 1410, 1408, 116, - 1409, 1410, 2682, 1411, 3645, 1683, 1408, 3251, 1409, 1410, - 1464, 3483, 1464, 1408, 3374, 1409, 1410, 1811, 1810, 1408, - 1411, 1409, 1410, 3817, 1411, 1753, 1752, 1408, 2797, 1409, - 1410, 1408, 1411, 1409, 1410, 3643, 1683, 2507, 3095, 1411, - 95, 59, 62, 61, 64, 1411, 78, 1104, 2777, 87, - 84, 3418, 4297, 1411, 1716, 2469, 2581, 1411, 2467, 2935, - 2838, 1408, 3749, 1409, 1410, 2837, 2681, 2681, 4296, 3641, - 1683, 2524, 2664, 2800, 1407, 3639, 1683, 3463, 2548, 1408, - 2534, 1409, 1410, 4298, 66, 97, 96, 1411, 1699, 76, - 77, 63, 1408, 2493, 1409, 1410, 2761, 85, 86, 103, - 3637, 1683, 2268, 2206, 3802, 1411, 1727, 2190, 2766, 2468, - 2769, 1408, 2185, 1409, 1410, 3635, 1683, 1951, 1411, 1737, - 3633, 1683, 1715, 1190, 2775, 1189, 1408, 4388, 1409, 1410, - 4313, 101, 1408, 1168, 1409, 1410, 3125, 1411, 4141, 2783, - 2790, 4108, 2792, 4295, 69, 3968, 70, 71, 72, 73, - 133, 2795, 1411, 2796, 2789, 3815, 3812, 1408, 1411, 1409, - 1410, 3803, 3804, 3805, 3796, 3503, 2791, 3607, 2786, 2787, - 2788, 3606, 1408, 1813, 1409, 1410, 2235, 1408, 2629, 1409, - 1410, 3631, 1683, 1411, 4473, 3629, 1683, 2798, 3505, 3501, - 3398, 1175, 1408, 3159, 1409, 1410, 117, 2651, 1411, 3627, - 1683, 2626, 2750, 1411, 2764, 2621, 2752, 116, 2615, 115, - 65, 2613, 1933, 1168, 1839, 2753, 2813, 110, 1411, 1175, - 1847, 1835, 1809, 1847, 2801, 1847, 131, 2979, 3613, 1683, - 3129, 2680, 3589, 1683, 3130, 1283, 3000, 1683, 1408, 117, - 1409, 1410, 1408, 3548, 1409, 1410, 4142, 2998, 1683, 2644, - 116, 2763, 115, 3764, 3765, 2506, 1408, 4471, 1409, 1410, - 3011, 4424, 4265, 2170, 1411, 4182, 1168, 2967, 1411, 3767, - 3734, 2259, 2849, 3733, 3732, 2259, 2259, 1684, 1686, 2973, - 1683, 3418, 1411, 1683, 3130, 1408, 3393, 1409, 1410, 1408, - 2741, 1409, 1410, 1408, 1103, 1409, 1410, 3440, 3438, 3770, - 2950, 1683, 3441, 3439, 1408, 3769, 1409, 1410, 3437, 2942, - 1683, 1411, 2265, 2933, 1683, 1411, 2263, 3436, 728, 1411, - 3069, 3072, 4261, 1879, 3014, 94, 1683, 4143, 2538, 2568, - 1411, 2171, 1103, 3090, 3806, 4415, 1408, 3758, 1409, 1410, - 3070, 1119, 1711, 3012, 3467, 2512, 3379, 3378, 3471, 3015, - 1408, 3017, 1409, 1410, 1875, 2234, 3470, 1408, 4224, 1409, - 1410, 3946, 1411, 3742, 2931, 1683, 1408, 3948, 1409, 1410, - 1408, 3741, 1409, 1410, 3745, 3404, 1411, 2918, 1683, 3048, - 1880, 1881, 1882, 1411, 3064, 3407, 3409, 3807, 3808, 3809, - 3472, 1109, 1411, 1120, 3410, 3068, 1411, 801, 1950, 3468, - 1109, 3088, 3002, 3032, 3469, 1087, 1651, 1876, 1877, 1878, - 2916, 1683, 3442, 3057, 3083, 3084, 3479, 2914, 1683, 3112, - 3134, 1408, 3193, 1409, 1410, 1246, 3027, 2912, 1683, 3030, - 2733, 2732, 2311, 2731, 1408, 100, 1409, 1410, 3922, 1705, - 3921, 3046, 1245, 3163, 3115, 3117, 3031, 1411, 3118, 1644, - 2312, 1136, 2727, 46, 3060, 2726, 2725, 3092, 2910, 1683, - 1411, 4413, 3087, 3108, 3022, 3089, 1135, 1408, 3567, 1409, - 1410, 3086, 3045, 3129, 1408, 3096, 1409, 1410, 108, 3099, - 2908, 1683, 3174, 3215, 1408, 1373, 1409, 1410, 3106, 109, - 3132, 4447, 2636, 1411, 3920, 3135, 3136, 2906, 1683, 3165, - 1411, 2904, 1683, 140, 3747, 2902, 1683, 2231, 2229, 2230, - 1411, 3121, 2550, 2551, 4503, 1408, 110, 1409, 1410, 2900, - 1683, 3397, 3109, 2744, 108, 4206, 3131, 4348, 4137, 115, - 110, 3478, 2898, 1683, 1163, 109, 2533, 1408, 3139, 1409, - 1410, 1411, 1177, 3171, 2896, 1683, 4449, 3377, 2894, 1683, - 4448, 1827, 116, 75, 1408, 3376, 1409, 1410, 1408, 3717, - 1409, 1410, 1408, 1411, 1409, 1410, 3150, 2177, 2781, 2820, - 4205, 3160, 3161, 3772, 2771, 2189, 1408, 2188, 1409, 1410, - 1411, 3225, 3226, 3170, 1411, 2184, 2835, 3213, 1411, 1408, - 1364, 1409, 1410, 4185, 2892, 1683, 3954, 3952, 2890, 1683, - 3951, 1408, 1411, 1409, 1410, 1408, 117, 1409, 1410, 3933, - 3195, 3813, 2888, 1683, 3746, 1411, 3172, 116, 117, 115, - 3744, 3506, 2665, 3710, 3198, 3242, 1822, 1411, 1134, 116, - 1408, 1411, 1409, 1410, 3223, 3932, 3727, 2886, 1683, 3063, - 3906, 2884, 1683, 3025, 2306, 2879, 1683, 4475, 4474, 2307, - 2468, 1408, 3279, 1409, 1410, 1408, 1411, 1409, 1410, 3260, - 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 1408, - 2839, 1409, 1410, 2875, 1683, 2759, 2504, 1411, 3706, 3277, - 1408, 1411, 1409, 1410, 5, 1731, 1730, 2369, 1722, 3243, - 2873, 1683, 1721, 4474, 1408, 1411, 1409, 1410, 1408, 3227, - 1409, 1410, 1408, 4475, 1409, 1410, 1411, 3244, 4230, 2866, - 1683, 121, 122, 3781, 4294, 2864, 1683, 1, 3, 8, - 1411, 3224, 1095, 1376, 1411, 105, 2803, 1375, 1411, 3337, - 1408, 3785, 1409, 1410, 4377, 1408, 2802, 1409, 1410, 3281, - 3204, 117, 3205, 744, 3672, 2494, 2455, 1408, 2455, 1409, - 1410, 3668, 116, 1649, 115, 4425, 1411, 4373, 4374, 1919, - 1909, 1411, 110, 3604, 3844, 2420, 1408, 2452, 1409, 1410, - 4138, 3934, 1408, 1411, 1409, 1410, 3935, 3937, 3509, 3207, - 2671, 3811, 3209, 3355, 2634, 3344, 2568, 1198, 165, 3346, - 2591, 2592, 1411, 1408, 2492, 1409, 1410, 2484, 1411, 4325, - 125, 1408, 3270, 1409, 1410, 1164, 3603, 124, 1408, 1201, - 1409, 1410, 3595, 1314, 1684, 2491, 2457, 3317, 2457, 1411, - 1408, 2666, 1409, 1410, 3835, 3113, 2600, 1411, 3425, 1759, - 92, 3593, 1757, 1758, 1411, 2568, 2568, 2568, 2568, 2568, - 3327, 3328, 3329, 3330, 3331, 1756, 1411, 1761, 3345, 3381, - 3347, 1760, 4289, 3575, 2568, 2517, 2996, 2568, 3384, 2840, - 3673, 2194, 790, 1408, 3355, 1409, 1410, 784, 1639, 1408, - 3354, 1409, 1410, 1637, 203, 3430, 1745, 3373, 1635, 1723, - 3367, 1636, 1634, 1962, 1638, 2183, 3447, 1366, 1408, 1411, - 1409, 1410, 3019, 1365, 3212, 1411, 3382, 1363, 3380, 2187, - 1240, 1109, 734, 3487, 2704, 3035, 3036, 3037, 3394, 3395, - 3396, 3391, 740, 1408, 1411, 1409, 1410, 3526, 1461, 2570, - 2995, 3052, 3411, 3412, 2169, 3375, 3449, 3534, 3100, 3450, - 3368, 3370, 3372, 3539, 1155, 1147, 1108, 2991, 3429, 1411, - 1124, 3538, 3431, 3535, 2505, 3434, 3016, 2990, 3443, 1154, - 1107, 111, 112, 3432, 3433, 2989, 3435, 4115, 3451, 3426, - 3739, 3403, 3405, 1106, 3050, 3408, 2988, 3401, 2570, 2570, - 2570, 2570, 2570, 4223, 3945, 4446, 2987, 1408, 3457, 1409, - 1410, 3488, 3491, 3492, 2648, 3421, 3489, 2570, 3490, 4312, - 2570, 3110, 3421, 1718, 1408, 3693, 1409, 1410, 2812, 2301, - 1451, 816, 2567, 1411, 1408, 987, 1409, 1410, 3507, 1703, - 3901, 2986, 1408, 3528, 1409, 1410, 2636, 3545, 2221, 814, - 1411, 813, 811, 1408, 3137, 1409, 1410, 2977, 3018, 3065, - 1411, 1415, 1414, 1408, 1022, 1409, 1410, 3006, 1411, 1732, - 2976, 3078, 3561, 3076, 2975, 1179, 3558, 3075, 3560, 1411, - 2742, 2575, 3157, 3766, 3762, 4369, 1847, 1847, 3565, 1411, - 3529, 3162, 3570, 2569, 2565, 3245, 3026, 973, 1408, 2974, - 1409, 1410, 972, 3508, 2971, 823, 815, 805, 3173, 3580, - 2966, 1036, 971, 3414, 1408, 3416, 1409, 1410, 2959, 3596, - 3597, 3598, 3599, 3600, 1411, 970, 2958, 1408, 3536, 1409, - 1410, 1408, 3537, 1409, 1410, 2957, 3040, 1696, 4414, 1464, - 1411, 3399, 3042, 1464, 3577, 3578, 3111, 3579, 2956, 3387, - 3581, 1392, 3583, 1411, 3585, 1668, 1408, 1411, 1409, 1410, - 3718, 1408, 3720, 1409, 1410, 1671, 2513, 1408, 1689, 1409, - 1410, 3572, 4248, 2955, 2780, 1408, 3728, 1409, 1410, 3571, - 3601, 2954, 1411, 1408, 3688, 1409, 1410, 1411, 1667, 4255, - 3517, 3692, 1408, 1411, 1409, 1410, 3079, 3082, 3083, 3084, - 3080, 1411, 3081, 3085, 3829, 1408, 3498, 1409, 1410, 1411, - 3156, 2658, 74, 2259, 2953, 3424, 50, 4215, 1411, 2952, - 4286, 965, 962, 3903, 3904, 3905, 3340, 3319, 3341, 3321, - 1408, 1411, 1409, 1410, 4268, 3719, 3725, 3721, 1408, 2568, - 1409, 1410, 4269, 961, 4270, 3332, 3333, 3334, 3335, 3723, - 2358, 1386, 3779, 2951, 1383, 3140, 1411, 2945, 3539, 2196, - 104, 2944, 3736, 2259, 1411, 2943, 3538, 40, 3535, 39, - 3780, 1408, 3743, 1409, 1410, 2940, 1408, 38, 1409, 1410, - 3695, 37, 3697, 3698, 3699, 36, 3761, 30, 3748, 29, - 28, 27, 26, 3768, 33, 3757, 23, 1411, 25, 3563, - 3564, 3771, 1411, 2939, 24, 3775, 3776, 3773, 2938, 22, - 1408, 3774, 1409, 1410, 1408, 4485, 1409, 1410, 1408, 4486, - 1409, 1410, 1408, 4515, 1409, 1410, 4351, 4291, 2936, 3520, - 4420, 4502, 1408, 134, 1409, 1410, 1411, 4451, 4412, 4411, - 1411, 4362, 4491, 4357, 1411, 60, 57, 55, 1411, 142, - 3797, 141, 3799, 58, 3791, 3792, 2929, 56, 1411, 54, - 1408, 53, 1409, 1410, 1286, 1408, 2926, 1409, 1410, 51, - 2924, 102, 2570, 35, 2922, 34, 21, 20, 3338, 19, - 18, 2881, 17, 16, 15, 1408, 1411, 1409, 1410, 11, - 2468, 1411, 10, 43, 42, 2861, 41, 32, 3839, 3840, - 31, 2860, 3822, 3841, 44, 7, 3826, 3827, 3828, 2, - 3143, 1411, 2660, 1408, 0, 1409, 1410, 2856, 0, 0, - 3851, 1855, 0, 1408, 0, 1409, 1410, 1408, 0, 1409, - 1410, 1408, 0, 1409, 1410, 0, 3818, 3819, 1408, 1411, - 1409, 1410, 0, 0, 0, 0, 2854, 0, 3857, 1411, - 0, 0, 1408, 1411, 1409, 1410, 0, 1411, 1408, 0, - 1409, 1410, 0, 0, 1411, 0, 0, 0, 0, 2799, - 0, 2468, 3868, 2804, 1408, 2846, 1409, 1410, 1411, 3428, - 0, 2817, 1855, 0, 1411, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2807, 0, 2808, 0, - 1411, 0, 0, 1408, 2816, 1409, 1410, 3919, 2818, 2819, - 3926, 3909, 3928, 3910, 3911, 3912, 0, 2825, 2826, 2827, - 2828, 2829, 2830, 2831, 2832, 2833, 2834, 3899, 2836, 1411, - 0, 0, 1408, 0, 1409, 1410, 0, 0, 1408, 0, - 1409, 1410, 0, 3425, 0, 0, 92, 3929, 3425, 0, - 0, 2842, 2843, 2844, 2845, 0, 2847, 2848, 1411, 2850, - 0, 1168, 0, 2852, 1411, 0, 0, 2857, 2858, 1179, - 2859, 0, 0, 2862, 2863, 2865, 2867, 2868, 2869, 2870, - 2871, 2872, 2874, 2876, 2877, 2878, 2880, 0, 2882, 2883, - 2885, 2887, 2889, 2891, 2893, 2895, 2897, 2899, 2901, 2903, - 2905, 2907, 2909, 2911, 2913, 2915, 2917, 2919, 2920, 2921, - 2265, 2923, 4121, 2925, 2263, 2927, 2928, 1109, 2930, 2932, - 2934, 3962, 3970, 3961, 2937, 3960, 3959, 3957, 2941, 3971, - 3972, 3950, 2946, 2947, 2948, 2949, 3974, 3949, 3930, 0, - 0, 0, 0, 0, 0, 2960, 2961, 2962, 2963, 2964, - 2965, 0, 3862, 2969, 2970, 0, 2811, 0, 0, 0, - 2972, 2806, 4113, 4112, 0, 2978, 0, 0, 0, 0, - 0, 2981, 2982, 2983, 2984, 2985, 4140, 0, 0, 46, - 4132, 0, 2992, 2993, 0, 2994, 4133, 0, 2997, 2999, - 2517, 0, 3001, 0, 4179, 0, 4180, 3964, 3421, 0, - 4128, 0, 3013, 3927, 0, 0, 4123, 4124, 4125, 0, - 0, 0, 0, 1408, 1645, 1409, 1410, 0, 1408, 0, - 1409, 1410, 3079, 3082, 3083, 3084, 3080, 0, 3081, 3085, - 0, 0, 3764, 3765, 0, 3047, 2265, 0, 0, 1411, - 2263, 0, 0, 0, 1411, 0, 4116, 1808, 4183, 0, - 4186, 4231, 3425, 0, 4189, 0, 0, 0, 3966, 0, - 0, 0, 0, 0, 0, 0, 1482, 1483, 1484, 1485, - 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, - 1496, 1497, 1498, 1499, 1500, 1502, 1503, 1504, 1505, 1506, - 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, - 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, - 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, - 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, - 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, - 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, - 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, - 1577, 1578, 1579, 1581, 1582, 1583, 1584, 1585, 1586, 1587, - 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1602, - 1603, 1604, 1605, 1619, 1620, 1621, 1622, 1623, 1624, 1625, - 1626, 1627, 1628, 1629, 1630, 1631, 1632, 4234, 4184, 4236, - 3424, 4232, 4203, 4213, 4212, 3424, 1673, 0, 0, 4209, - 4249, 4211, 0, 0, 0, 1179, 1179, 0, 0, 0, - 0, 1681, 0, 0, 1674, 0, 0, 1673, 92, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1681, 0, 0, 1674, 0, 0, 0, 2510, - 2511, 1680, 1678, 1679, 1675, 3206, 1676, 3890, 3845, 3846, - 3847, 3848, 0, 0, 0, 0, 0, 0, 4239, 4120, - 1669, 1670, 1680, 1678, 1679, 1675, 4254, 1676, 0, 1677, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4251, 0, 0, 0, 1109, - 1677, 0, 0, 4256, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 4293, 0, 4235, 4292, 0, - 3255, 3256, 3257, 3258, 3259, 0, 0, 0, 0, 4309, - 0, 4274, 0, 0, 4275, 0, 0, 0, 0, 4241, - 3274, 0, 4300, 0, 0, 0, 0, 0, 0, 4284, - 0, 0, 0, 0, 0, 0, 4299, 0, 0, 0, - 0, 46, 4303, 0, 0, 0, 0, 4338, 0, 0, - 0, 0, 4259, 0, 0, 0, 4314, 0, 0, 0, - 0, 0, 0, 0, 0, 4323, 92, 4324, 0, 4317, - 4140, 4327, 4322, 0, 4319, 4318, 4316, 0, 4321, 4320, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3424, - 0, 0, 0, 4346, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4364, 4363, 0, 0, 3924, 0, - 3924, 0, 4338, 4368, 0, 4376, 4381, 0, 0, 4404, - 0, 0, 0, 92, 46, 4393, 0, 4406, 0, 0, - 0, 0, 4391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4304, 0, 0, 4305, 3963, 0, 4403, 3965, - 0, 0, 0, 0, 0, 0, 4408, 0, 0, 3421, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4419, 0, 0, 0, 0, 0, 803, 92, 0, - 4445, 0, 0, 0, 0, 1962, 0, 0, 4434, 0, - 4435, 0, 0, 0, 0, 4438, 0, 0, 0, 46, - 0, 4444, 4219, 0, 0, 1179, 0, 4464, 4356, 4466, - 0, 4472, 4468, 4470, 4338, 0, 92, 0, 4489, 0, - 4406, 4131, 0, 0, 3539, 0, 0, 4479, 0, 0, - 0, 0, 3538, 2468, 3535, 4500, 4490, 0, 2265, 0, - 0, 0, 2263, 0, 0, 0, 0, 4247, 0, 3427, - 4469, 4399, 0, 4504, 0, 0, 46, 4510, 4512, 0, - 0, 0, 92, 0, 0, 4517, 0, 0, 3445, 4520, - 4310, 0, 0, 0, 0, 0, 0, 0, 4523, 0, - 0, 0, 0, 0, 0, 0, 0, 92, 0, 4529, - 0, 0, 0, 1133, 0, 4532, 1139, 1139, 0, 4433, - 92, 92, 0, 4535, 4406, 4536, 92, 0, 0, 3924, - 4406, 46, 0, 0, 4537, 0, 3924, 4538, 3924, 4180, - 0, 0, 0, 0, 0, 0, 0, 4222, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2265, 0, 0, 0, 2263, 0, 0, 46, - 0, 0, 0, 0, 4533, 0, 0, 0, 1179, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1645, 0, 0, 0, 0, 46, 0, 0, 0, 0, - 3569, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 46, 0, 3586, 3587, 0, 3588, 3590, 3592, 0, 0, - 0, 0, 0, 46, 46, 0, 0, 0, 0, 46, - 0, 0, 0, 0, 0, 0, 4263, 0, 0, 0, - 0, 0, 0, 3605, 4273, 0, 0, 0, 3608, 0, - 3610, 3611, 3612, 3614, 3615, 3616, 3617, 3618, 3619, 3620, - 3621, 3622, 3623, 3624, 3625, 3626, 3628, 3630, 3632, 3634, - 3636, 3638, 3640, 3642, 3644, 3646, 3648, 3650, 3652, 3654, - 3656, 3658, 3659, 3661, 3662, 3663, 3665, 0, 1179, 3667, - 0, 3669, 3670, 3671, 0, 0, 3675, 3676, 3677, 3678, - 3679, 3680, 3681, 3682, 3683, 3684, 3685, 0, 1645, 0, - 0, 0, 0, 0, 0, 3691, 0, 0, 0, 3696, - 0, 1179, 0, 3700, 3701, 0, 0, 3702, 3704, 0, - 3707, 3709, 0, 3711, 3712, 3713, 3714, 0, 0, 0, - 0, 0, 0, 3722, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1429, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4280, 0, 0, - 0, 0, 0, 0, 0, 3754, 3755, 4288, 0, 3760, + 1605, 1463, 1348, 4260, 1291, 1606, 1454, 1608, 1609, 1610, + 1611, 1612, 783, 1359, 1340, 1446, 1447, 1448, 1449, 1479, + 1479, 1479, 1479, 1479, 1479, 1460, 1450, 1185, 3151, 2691, + 3122, 1706, 1360, 771, 1619, 1620, 1621, 1622, 1623, 1624, + 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 772, 4306, + 3912, 3753, 3689, 1302, 3869, 1308, 1309, 1310, 1311, 3536, + 3537, 3203, 3912, 176, 3047, 1369, 3801, 3802, 3804, 3589, + 188, 2739, 3540, 3956, 3955, 4400, 3536, 3537, 1387, 1349, + 1350, 130, 1922, 1921, 1923, 1924, 1925, 2737, 2784, 3540, + 3174, 1400, 1397, 1398, 1399, 1404, 1406, 1403, 1475, 1402, + 1476, 1477, 1152, 2735, 2641, 1303, 100, 100, 1109, 1396, + 2732, 1152, 196, 1206, 3836, 1647, 1480, 1481, 4398, 94, + 1335, 1653, 1337, 4399, 100, 1206, 2730, 101, 1643, 1283, + 1103, 2728, 2726, 1217, 1103, 1215, 1443, 1443, 3173, 1206, + 1103, 1283, 2783, 2521, 1953, 2642, 1400, 1397, 1398, 1399, + 1404, 1406, 1403, 2640, 1402, 1297, 3213, 723, 1206, 1842, + 4425, 1334, 1336, 1316, 1396, 177, 182, 179, 185, 186, + 187, 189, 191, 192, 193, 194, 4514, 4538, 1109, 1444, + 1445, 195, 197, 198, 199, 3192, 1644, 2643, 3191, 1694, + 4406, 4249, 1697, 92, 1661, 2689, 3792, 3774, 1665, 1206, + 3364, 2639, 3104, 3067, 1102, 2986, 2270, 3242, 92, 3014, + 3016, 1729, 3363, 1940, 1607, 1296, 3062, 1701, 731, 2720, + 2715, 2717, 2718, 2716, 2721, 2722, 2723, 2724, 1205, 100, + 2719, 135, 1440, 3235, 2800, 1663, 2589, 1109, 1751, 111, + 1205, 3835, 1664, 1443, 3466, 2811, 112, 1411, 1423, 4525, + 2311, 1939, 1109, 1815, 1205, 2174, 1644, 46, 1243, 1121, + 1613, 1614, 1615, 1616, 1617, 1618, 1410, 1683, 2312, 1343, + 3384, 1651, 46, 1205, 4517, 4274, 1332, 1329, 1209, 1199, + 1841, 1333, 3382, 1211, 1818, 1819, 1820, 1212, 1210, 1411, + 1705, 1408, 4544, 1409, 1410, 1229, 1218, 3831, 1216, 3765, + 4546, 1338, 3244, 1281, 1206, 1691, 2531, 114, 1301, 1213, + 2204, 1949, 1693, 1692, 1205, 1281, 1275, 1411, 1645, 1209, + 1199, 1744, 1834, 4421, 1211, 3216, 3262, 4504, 1212, 1210, + 3215, 1685, 4381, 4266, 1750, 4532, 1409, 1410, 1331, 3216, + 1905, 1662, 1659, 1648, 3215, 1206, 2303, 2303, 2135, 2820, + 1827, 1895, 1896, 2811, 1660, 1962, 1698, 1901, 1902, 1099, + 1411, 1846, 1294, 1856, 1688, 1857, 1887, 1859, 1861, 1700, + 1690, 1865, 1867, 1869, 1871, 1873, 1101, 3045, 3254, 3253, + 3252, 1279, 1206, 3246, 4453, 3250, 3972, 3245, 1848, 3243, + 1695, 1315, 3809, 3808, 3248, 3015, 2676, 1851, 1735, 1736, + 1844, 1844, 1317, 3247, 2688, 1850, 1845, 201, 1936, 2309, + 1937, 2681, 4165, 1938, 92, 1883, 1807, 92, 1886, 1205, + 1888, 1840, 3249, 3251, 2686, 1199, 1202, 1203, 2684, 1171, + 3787, 140, 3606, 1196, 1200, 1284, 1217, 1330, 1215, 1825, + 1824, 1823, 1666, 1837, 4445, 2681, 1945, 183, 1942, 1943, + 1941, 1946, 1947, 1948, 2685, 1195, 1935, 1944, 4542, 2200, + 1205, 1116, 2200, 2182, 1300, 3793, 1199, 1202, 1203, 1408, + 1171, 1409, 1410, 2178, 1196, 1200, 1683, 4317, 46, 2265, + 2265, 46, 2263, 2263, 2308, 2266, 1891, 1408, 2683, 1409, + 1410, 1957, 1958, 4523, 1930, 1411, 4524, 1205, 4522, 1242, + 126, 101, 4241, 1239, 1683, 4527, 1278, 180, 2136, 1408, + 181, 1409, 1410, 1411, 1429, 3864, 3234, 3865, 4423, 2816, + 1928, 2236, 1280, 1917, 4447, 1182, 4318, 1181, 2228, 1180, + 1037, 1038, 1039, 139, 1280, 1411, 200, 4143, 4142, 1109, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1437, 1439, - 1440, 1179, 0, 4306, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2468, 2468, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4358, 4366, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4371, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3833, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1440, 4242, 4133, 2140, 4543, 4458, 1683, 3883, 3882, 1643, + 1408, 2349, 1409, 1410, 1128, 1929, 2137, 1435, 1436, 1438, + 1437, 1439, 1440, 2165, 3816, 3815, 4456, 1683, 3805, 3513, + 2141, 2226, 2227, 2790, 2791, 3413, 1411, 2148, 2149, 2150, + 3506, 1927, 3227, 2175, 1916, 3221, 3130, 2241, 2815, 2243, + 2244, 2245, 2246, 2247, 2248, 2250, 2252, 2253, 2254, 2255, + 2256, 2257, 1408, 3129, 1409, 1410, 2203, 1644, 2201, 2203, + 2202, 2201, 2205, 2202, 2242, 1161, 2235, 2298, 1408, 3128, + 1409, 1410, 2138, 1408, 1454, 1409, 1410, 3264, 1411, 2142, + 2647, 2144, 2145, 2146, 2147, 1931, 2455, 1915, 2151, 4361, + 1683, 2762, 2304, 1914, 1411, 1408, 2240, 1409, 1410, 1411, + 2166, 1913, 1903, 184, 1897, 1894, 2469, 1893, 1429, 2467, + 1892, 1425, 190, 1426, 1863, 2760, 1658, 1471, 1127, 1128, + 2179, 1411, 2373, 1374, 2365, 2269, 795, 1738, 1427, 1441, + 1442, 1424, 1817, 4494, 1430, 1431, 1432, 1433, 1434, 1435, + 1436, 1438, 1437, 1439, 1440, 2238, 1408, 4481, 1409, 1410, + 4446, 2457, 1429, 2313, 2314, 2315, 2316, 4269, 4359, 1683, + 2239, 1441, 1442, 2237, 1429, 2348, 2799, 2327, 4433, 1683, + 4357, 1683, 1411, 1712, 4268, 2861, 1683, 2535, 1430, 1431, + 1432, 1433, 1434, 1435, 1436, 1438, 1437, 1439, 1440, 1645, + 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1437, 1439, + 1440, 3798, 3224, 795, 795, 4245, 2568, 2465, 1817, 1683, + 2472, 2473, 1717, 1407, 1683, 1408, 111, 1409, 1410, 4244, + 1128, 92, 1713, 112, 2456, 1817, 4346, 1408, 2469, 1409, + 1410, 2556, 1408, 2458, 1409, 1410, 2363, 1408, 111, 1409, + 1410, 1411, 1817, 4327, 175, 112, 1817, 4323, 2599, 1032, + 3111, 4243, 795, 1411, 2502, 4216, 1683, 1683, 1411, 2515, + 1429, 4138, 2657, 1411, 2656, 1109, 2590, 1126, 4223, 1683, + 2570, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1437, + 1439, 1440, 1176, 4123, 1716, 46, 1430, 1431, 1432, 1433, + 1434, 1435, 1436, 1438, 1437, 1439, 1440, 1433, 1434, 1435, + 1436, 1438, 1437, 1439, 1440, 2609, 2610, 2611, 2490, 2523, + 1176, 2655, 1408, 2654, 1409, 1410, 2446, 2447, 2448, 2449, + 2450, 2594, 2226, 2227, 2224, 2225, 1117, 4122, 108, 4214, + 1683, 3849, 4259, 2471, 2234, 2574, 2474, 2475, 1411, 109, + 2516, 1408, 2593, 1409, 1410, 1122, 2508, 3971, 2509, 2223, + 3969, 2522, 4448, 1123, 2653, 3879, 2652, 2670, 2603, 2630, + 2604, 2605, 2606, 2607, 2608, 2859, 2532, 1411, 2612, 1642, + 2597, 1641, 2492, 2636, 2614, 1407, 1683, 2616, 2617, 2618, + 2619, 2545, 4146, 1683, 4211, 1683, 1408, 2554, 1409, 1410, + 4193, 1683, 4262, 1157, 2580, 2579, 2578, 1127, 1128, 2857, + 1683, 2667, 1640, 3730, 1683, 4170, 2596, 2595, 1408, 1682, + 1409, 1410, 1411, 1817, 4134, 2847, 2646, 3723, 1683, 1158, + 1431, 1432, 1433, 1434, 1435, 1436, 1438, 1437, 1439, 1440, + 3849, 1683, 1817, 3847, 1411, 3813, 3797, 2675, 3720, 1683, + 2678, 1408, 2679, 1409, 1410, 3718, 1683, 1408, 3571, 1409, + 1410, 3570, 2631, 3567, 2695, 3566, 2627, 2620, 2622, 2623, + 1408, 2645, 1409, 1410, 2681, 1683, 4169, 1411, 3771, 1683, + 1208, 2941, 1683, 1411, 1408, 3509, 1409, 1410, 1207, 1683, + 1844, 3508, 2631, 2674, 2673, 2677, 1411, 2699, 117, 3499, + 3498, 2700, 2701, 3496, 3497, 1408, 2696, 1409, 1410, 116, + 1411, 115, 1408, 117, 1409, 1410, 3681, 1683, 176, 110, + 3208, 2707, 3679, 1683, 116, 188, 115, 3494, 3495, 3764, + 1639, 1411, 3675, 1683, 4127, 1637, 3672, 1683, 1411, 3207, + 1635, 3206, 2706, 1636, 1634, 1408, 1638, 1409, 1410, 3670, + 1683, 1408, 1085, 1409, 1410, 3494, 3493, 1023, 1086, 1037, + 1038, 1039, 1024, 3080, 1683, 1025, 1026, 196, 1027, 2550, + 2551, 1411, 3204, 1408, 3201, 1409, 1410, 1411, 3200, 1408, + 3199, 1409, 1410, 3198, 3139, 1683, 1040, 1041, 3126, 1408, + 1639, 1409, 1410, 1408, 1633, 1409, 1410, 2783, 3183, 1411, + 1683, 1811, 3164, 2746, 2773, 1411, 1408, 2766, 1409, 1410, + 3157, 3158, 4126, 4351, 2754, 1411, 2268, 1683, 3750, 1411, + 177, 182, 179, 185, 186, 187, 189, 191, 192, 193, + 194, 2753, 1411, 2703, 2702, 2539, 195, 197, 198, 199, + 3668, 1683, 1407, 2503, 2761, 3666, 1683, 4301, 2168, 1042, + 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, + 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 4355, 3031, 1408, 2132, 1409, 1410, 1408, 1926, 1409, + 1410, 2788, 1408, 110, 1409, 1410, 110, 1918, 3664, 1683, + 1103, 1103, 1103, 3662, 1683, 3100, 1908, 1904, 1900, 1411, + 1899, 3660, 1683, 1411, 1898, 3474, 3658, 1683, 1411, 1714, + 1464, 1341, 1464, 3656, 1683, 91, 48, 49, 93, 3069, + 3654, 1683, 3161, 3555, 1817, 1816, 3652, 1683, 2803, 3100, + 116, 3650, 1683, 3768, 98, 3648, 1683, 1811, 1810, 52, + 81, 82, 3069, 79, 83, 1408, 3431, 1409, 1410, 1683, + 1408, 3030, 1409, 1410, 4258, 80, 3475, 3764, 1408, 2469, + 1409, 1410, 2467, 1408, 3101, 1409, 1410, 103, 1753, 1752, + 1408, 1411, 1409, 1410, 3103, 2682, 1411, 1408, 3144, 1409, + 1410, 3477, 3079, 1408, 1411, 1409, 1410, 67, 1408, 1411, + 1409, 1410, 1408, 2598, 1409, 1410, 1411, 3080, 3101, 101, + 101, 3472, 3767, 1411, 2767, 1407, 3556, 3557, 2783, 1411, + 1408, 2772, 1409, 1410, 1411, 2775, 3646, 1683, 1411, 2806, + 3764, 3488, 3489, 3644, 1683, 4273, 1817, 4237, 3473, 3080, + 2781, 3709, 3461, 3642, 1683, 2809, 1411, 3628, 1683, 2796, + 2681, 2798, 2783, 3080, 3581, 2808, 2789, 3496, 3387, 88, + 2801, 2581, 2802, 3604, 1683, 2941, 2844, 2770, 2843, 2795, + 2681, 2792, 2793, 2794, 3479, 2664, 2797, 1104, 2548, 2235, + 2534, 1699, 2493, 1408, 3817, 1409, 1410, 2268, 2206, 2804, + 1408, 4130, 1409, 1410, 3006, 1683, 2190, 2756, 2185, 1951, + 1408, 2758, 1409, 1410, 1408, 1737, 1409, 1410, 1715, 1411, + 2759, 1190, 1408, 108, 1409, 1410, 1411, 1879, 1189, 110, + 1408, 4404, 1409, 1410, 109, 4329, 1411, 4157, 4124, 103, + 1411, 3984, 2819, 3004, 1683, 133, 3830, 2985, 1411, 2979, + 1683, 3818, 3819, 3820, 3827, 3516, 1411, 1408, 3811, 1409, + 1410, 1408, 3487, 1409, 1410, 3622, 95, 59, 62, 61, + 64, 101, 78, 3621, 3490, 87, 84, 2956, 1683, 1813, + 3017, 2973, 2629, 1411, 1880, 1881, 1882, 1411, 3135, 2265, + 3518, 3514, 2263, 3136, 3020, 1683, 3411, 2855, 2948, 1683, + 1408, 3165, 1409, 1410, 2626, 2621, 1408, 2615, 1409, 1410, + 66, 97, 96, 2613, 1103, 76, 77, 63, 1283, 2939, + 1683, 1933, 1839, 85, 86, 1835, 1411, 1809, 3561, 2937, + 1683, 3018, 1411, 131, 1408, 4158, 1409, 1410, 3779, 3780, + 3075, 3078, 3136, 2644, 2769, 2826, 2924, 1683, 2506, 2568, + 4489, 2170, 1103, 3096, 4487, 1408, 4440, 1409, 1410, 4281, + 1411, 4198, 2841, 3782, 3749, 3748, 3021, 3747, 3023, 68, + 69, 3785, 70, 71, 72, 73, 1408, 3821, 1409, 1410, + 3431, 1411, 2922, 1683, 1109, 3074, 1408, 3054, 1409, 1410, + 2920, 1683, 3406, 1109, 2747, 3453, 3070, 3784, 3476, 3450, + 3454, 3449, 1411, 1408, 46, 1409, 1410, 4277, 728, 3038, + 3451, 1711, 1411, 3093, 4159, 3452, 3095, 2918, 1683, 2171, + 2538, 2916, 1683, 3094, 3392, 4431, 1651, 1119, 3008, 1411, + 3822, 3823, 3824, 2512, 3063, 3455, 65, 3089, 3090, 1408, + 3773, 1409, 1410, 3076, 3391, 4240, 3964, 1408, 3962, 1409, + 1410, 3037, 3121, 3123, 2914, 1683, 3124, 2234, 3033, 1705, + 3757, 3036, 1875, 3169, 3028, 1411, 3052, 3417, 3756, 2912, + 1683, 1644, 3066, 1411, 1408, 3760, 1409, 1410, 1408, 1120, + 1409, 1410, 3098, 2910, 1683, 3051, 4353, 801, 3138, 3938, + 3092, 3937, 3114, 3141, 3142, 1950, 1087, 3102, 2908, 1683, + 1411, 3105, 3180, 3492, 1411, 3118, 3140, 2636, 3112, 1246, + 1136, 1408, 2311, 1409, 1410, 1876, 1877, 1878, 2906, 1683, + 3762, 3115, 4429, 1245, 4352, 1135, 1408, 3582, 1409, 1410, + 2312, 3127, 2904, 1683, 3135, 3420, 3422, 1411, 2902, 1683, + 1408, 3228, 1409, 1410, 3423, 3936, 2900, 1683, 108, 3137, + 1373, 94, 1411, 108, 110, 1408, 4463, 1409, 1410, 109, + 2898, 1683, 3145, 3171, 109, 3725, 1411, 3177, 140, 4519, + 2492, 2550, 2551, 3721, 1827, 1408, 110, 1409, 1410, 2896, + 1683, 1411, 4364, 3166, 3167, 2894, 1683, 3410, 2750, 1408, + 4465, 1409, 1410, 4153, 3491, 1408, 1163, 1409, 1410, 3156, + 2533, 1411, 3205, 1408, 1177, 1409, 1410, 2892, 1683, 4464, + 3732, 3238, 3239, 2177, 3176, 1411, 2787, 1408, 3226, 1409, + 1410, 1411, 1408, 3390, 1409, 1410, 2189, 2188, 3178, 1411, + 1408, 3389, 1409, 1410, 2890, 1683, 1408, 2184, 1409, 1410, + 2885, 1683, 1408, 1411, 1409, 1410, 2881, 1683, 1411, 1364, + 2879, 1683, 3255, 115, 116, 3211, 1411, 4222, 4221, 2872, + 1683, 100, 1411, 3236, 1408, 3480, 1409, 1410, 1411, 3484, + 4201, 2870, 1683, 2231, 2229, 2230, 3970, 3483, 3273, 3274, + 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3968, 3687, + 1411, 1408, 3967, 1409, 1410, 3949, 3828, 1408, 3290, 1409, + 1410, 3832, 3761, 1408, 3759, 1409, 1410, 1408, 3519, 1409, + 1410, 3485, 2665, 1822, 1134, 3256, 1408, 1411, 1409, 1410, + 3481, 3683, 2807, 1411, 3240, 3482, 117, 3619, 1408, 1411, + 1409, 1410, 3257, 1411, 3618, 3948, 3742, 116, 3610, 115, + 117, 3069, 1411, 3608, 3922, 3031, 1408, 3237, 1409, 1410, + 3292, 116, 4491, 4490, 1411, 3350, 2845, 1408, 3220, 1409, + 1410, 3222, 2765, 2504, 3131, 3294, 1731, 3217, 1730, 3218, + 1722, 1721, 1411, 4490, 2455, 3002, 2455, 4491, 1408, 75, + 1409, 1410, 4246, 1411, 1408, 3001, 1409, 1410, 117, 121, + 122, 1408, 3796, 1409, 1410, 1408, 5, 1409, 1410, 116, + 1408, 115, 1409, 1410, 1411, 3357, 3359, 3, 4310, 110, + 1411, 1, 2568, 8, 105, 1095, 1376, 1411, 1375, 3800, + 1408, 1411, 1409, 1410, 4393, 2997, 1411, 1684, 1686, 744, + 2494, 3283, 1408, 1649, 1409, 1410, 4441, 4389, 2996, 2457, + 4390, 2457, 1408, 3330, 1409, 1410, 1411, 3258, 1408, 1919, + 1409, 1410, 1909, 3859, 3438, 3368, 92, 2420, 1411, 4154, + 3950, 2568, 2568, 2568, 2568, 2568, 3951, 3394, 1411, 3340, + 3341, 3342, 3343, 3344, 1411, 3358, 2570, 3360, 3953, 3522, + 2568, 2671, 1408, 2568, 1409, 1410, 3397, 1417, 1418, 1419, + 1420, 1421, 1422, 1416, 1413, 1408, 3367, 1409, 1410, 3826, + 1109, 3443, 2634, 1198, 165, 2591, 2592, 4341, 1411, 3380, + 125, 1164, 124, 1962, 3460, 1201, 3386, 1314, 2666, 3850, + 1106, 1411, 3393, 3404, 3119, 2570, 2570, 2570, 2570, 2570, + 2600, 3395, 2995, 1759, 1757, 1758, 3368, 3407, 3408, 3409, + 1756, 1761, 1760, 3539, 2570, 2994, 4305, 2570, 3590, 3424, + 3425, 2846, 3688, 3547, 3462, 2194, 790, 3463, 784, 2993, + 1108, 203, 3381, 3383, 3385, 3445, 3446, 2992, 3448, 3551, + 3548, 3552, 2983, 3456, 1745, 1723, 111, 3442, 1107, 3332, + 2183, 3334, 3464, 112, 2982, 3444, 3504, 3505, 3447, 1408, + 1366, 1409, 1410, 1365, 2981, 3225, 1363, 3345, 3346, 3347, + 3348, 2980, 1408, 3434, 1409, 1410, 2977, 2187, 1240, 3502, + 3434, 3503, 3501, 3470, 734, 1411, 1408, 3500, 1409, 1410, + 2704, 740, 1461, 2972, 1408, 2169, 1409, 1410, 1411, 1408, + 3388, 1409, 1410, 3106, 1155, 3520, 1147, 2636, 1124, 3541, + 2505, 1408, 1411, 1409, 1410, 2965, 3022, 3558, 1154, 4131, + 1411, 1408, 3439, 1409, 1410, 1411, 3754, 3572, 1408, 3416, + 1409, 1410, 3427, 1408, 3429, 1409, 1410, 1411, 3418, 3056, + 3421, 3414, 2964, 4239, 3573, 3961, 2963, 1411, 4462, 3576, + 1408, 3575, 1409, 1410, 1411, 4328, 3116, 1718, 3580, 1411, + 3708, 3521, 2818, 2301, 1451, 816, 2567, 987, 3585, 3542, + 1703, 3917, 1408, 2221, 1409, 1410, 1411, 814, 813, 3595, + 811, 3024, 3071, 1415, 1414, 3611, 3612, 3613, 3614, 3615, + 1022, 3012, 1732, 3084, 3082, 3081, 2962, 2748, 1411, 1408, + 2961, 1409, 1410, 1408, 2575, 1409, 1410, 3781, 2960, 3777, + 1429, 4385, 1464, 2959, 2569, 2565, 1464, 2958, 3032, 973, + 3592, 3593, 972, 3594, 823, 1411, 3596, 2957, 3598, 1411, + 3600, 815, 805, 3733, 1036, 3735, 1430, 1431, 1432, 1433, + 1434, 1435, 1436, 1438, 1437, 1439, 1440, 971, 970, 3743, + 3549, 3703, 3586, 1408, 3550, 1409, 1410, 1408, 3707, 1409, + 1410, 3046, 1696, 2951, 2306, 1408, 4430, 1409, 1410, 2307, + 1408, 3412, 1409, 1410, 1408, 3048, 1409, 1410, 2950, 1411, + 3117, 3400, 1392, 1411, 1408, 1668, 1409, 1410, 1671, 2513, + 1689, 1411, 3587, 4264, 2786, 3616, 1411, 1667, 4271, 3530, + 1411, 3740, 3844, 3511, 3162, 2658, 74, 2369, 2949, 50, + 1411, 4231, 2568, 3734, 4302, 3736, 965, 962, 2946, 3738, + 1408, 3919, 1409, 1410, 2945, 3794, 3920, 3921, 3353, 3354, + 4284, 4285, 961, 2944, 4286, 1408, 2358, 1409, 1410, 2942, + 1386, 3551, 3548, 3552, 3795, 3751, 1411, 3758, 1383, 3772, + 3146, 3776, 3710, 2196, 3712, 3713, 3714, 3578, 3579, 3763, + 104, 1411, 40, 3437, 2935, 1408, 39, 1409, 1410, 2932, + 3790, 3791, 38, 3783, 37, 1408, 2570, 1409, 1410, 2930, + 3786, 1408, 36, 1409, 1410, 2928, 3789, 2452, 3788, 2887, + 1408, 1411, 1409, 1410, 30, 29, 1408, 28, 1409, 1410, + 27, 1411, 26, 33, 2867, 3806, 3807, 1411, 23, 25, + 2866, 3812, 24, 3814, 2862, 22, 1411, 2484, 4501, 4502, + 4531, 1408, 1411, 1409, 1410, 4367, 1408, 4307, 1409, 1410, + 3533, 2294, 2860, 4436, 1684, 2491, 1408, 4518, 1409, 1410, + 134, 4467, 1408, 4428, 1409, 1410, 1408, 1411, 1409, 1410, + 2852, 4427, 1411, 3837, 4378, 4507, 4373, 3841, 3842, 3843, + 60, 1408, 1411, 1409, 1410, 57, 55, 1408, 1411, 1409, + 1410, 1408, 1411, 1409, 1410, 2517, 142, 3854, 3855, 141, + 58, 56, 3856, 54, 53, 1286, 51, 1411, 102, 1408, + 35, 1409, 1410, 1411, 2823, 3866, 34, 1411, 21, 20, + 3867, 19, 1673, 18, 17, 16, 15, 1408, 11, 1409, + 1410, 3873, 10, 43, 42, 1411, 41, 1681, 32, 2817, + 1674, 31, 3833, 3834, 2812, 3085, 3088, 3089, 3090, 3086, + 44, 3087, 3091, 1411, 7, 3779, 3780, 2, 3149, 2660, + 3884, 0, 0, 1645, 0, 2510, 2511, 1680, 1678, 1679, + 1675, 1408, 1676, 1409, 1410, 2286, 2275, 2276, 2277, 2278, + 2288, 2279, 2280, 2281, 2293, 2289, 2282, 2283, 2290, 2291, + 2292, 2284, 2285, 2287, 0, 1677, 1408, 1411, 1409, 1410, + 0, 1408, 3935, 1409, 1410, 3942, 0, 3944, 0, 0, + 3925, 1673, 3926, 3927, 3928, 0, 0, 0, 0, 0, + 0, 0, 1411, 3915, 2648, 0, 1681, 1411, 0, 1674, + 3085, 3088, 3089, 3090, 3086, 0, 3087, 3091, 3438, 0, + 0, 92, 0, 3438, 3945, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1669, 1670, 1680, 1678, 1679, 1675, + 0, 1676, 2265, 0, 0, 2263, 0, 3986, 0, 0, + 0, 0, 3946, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1677, 1109, 3978, 3966, 3976, 3965, + 0, 0, 0, 0, 0, 3973, 0, 3975, 0, 3977, + 3878, 0, 0, 0, 0, 46, 0, 4137, 0, 0, + 0, 0, 0, 0, 0, 0, 3987, 3988, 0, 0, + 0, 0, 3990, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4129, 4128, 0, 0, 0, 0, 0, + 0, 0, 0, 4144, 0, 0, 0, 0, 0, 0, + 4148, 4149, 0, 0, 0, 0, 0, 0, 0, 4139, + 4140, 4141, 4196, 4195, 0, 3434, 0, 0, 3980, 2265, + 0, 0, 2263, 0, 4199, 3943, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3906, 0, + 0, 0, 0, 0, 0, 0, 0, 4156, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4202, 0, 0, + 0, 4205, 0, 0, 0, 0, 0, 4247, 3438, 0, + 0, 0, 0, 0, 4132, 0, 3982, 0, 0, 0, + 0, 0, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, + 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, + 1500, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, + 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, + 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, + 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, + 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, + 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, + 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1581, + 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, + 1592, 1593, 1594, 1595, 1596, 1602, 1603, 1604, 1605, 1619, + 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, + 1630, 1631, 1632, 4248, 4229, 4219, 4228, 4200, 4250, 0, + 0, 0, 4225, 0, 4227, 0, 4265, 0, 4252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4267, + 0, 0, 0, 4270, 0, 0, 4251, 4255, 1109, 4272, + 0, 0, 0, 0, 4235, 0, 0, 3437, 0, 2805, + 0, 0, 3437, 2810, 0, 0, 0, 0, 46, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2813, 92, 2814, 0, + 0, 0, 0, 0, 2822, 4309, 0, 0, 2824, 2825, + 4308, 4290, 0, 0, 4291, 4325, 0, 2831, 2832, 2833, + 2834, 2835, 2836, 2837, 2838, 2839, 2840, 0, 2842, 0, + 0, 0, 4316, 4300, 0, 0, 4136, 0, 4257, 0, + 4315, 0, 0, 0, 0, 4434, 0, 0, 4319, 0, + 0, 2848, 2849, 2850, 2851, 1777, 2853, 2854, 0, 2856, + 0, 46, 4330, 2858, 0, 4354, 0, 2863, 2864, 0, + 2865, 4275, 92, 2868, 2869, 2871, 2873, 2874, 2875, 2876, + 2877, 2878, 2880, 2882, 2883, 2884, 2886, 4340, 2888, 2889, + 2891, 2893, 2895, 2897, 2899, 2901, 2903, 2905, 2907, 2909, + 2911, 2913, 2915, 2917, 2919, 2921, 2923, 2925, 2926, 2927, + 4380, 2929, 4362, 2931, 4379, 2933, 2934, 4339, 2936, 2938, + 2940, 4384, 4156, 4343, 2943, 4420, 4392, 4397, 2947, 92, + 4354, 4333, 2952, 2953, 2954, 2955, 46, 4422, 4338, 4335, + 4334, 4407, 4409, 4332, 4337, 2966, 2967, 2968, 2969, 2970, + 2971, 4419, 1645, 2975, 2976, 4336, 4321, 3434, 0, 0, + 2978, 4320, 0, 0, 0, 2984, 4424, 0, 0, 0, + 0, 2987, 2988, 2989, 2990, 2991, 0, 3437, 0, 0, + 0, 4435, 2998, 2999, 92, 3000, 0, 0, 3003, 3005, + 2517, 0, 3007, 46, 4461, 1962, 0, 0, 4450, 0, + 4451, 2265, 3019, 0, 2263, 4454, 4485, 4460, 4279, 0, + 0, 0, 0, 0, 1764, 4480, 4289, 4482, 4484, 0, + 0, 4488, 92, 4486, 4505, 0, 0, 4372, 0, 4326, + 4422, 0, 4354, 0, 0, 3053, 0, 0, 0, 0, + 3551, 3548, 3552, 4506, 4495, 803, 4516, 0, 46, 0, + 0, 0, 0, 0, 0, 0, 4415, 0, 0, 0, + 0, 4520, 0, 0, 0, 0, 4526, 4528, 92, 0, + 0, 0, 0, 0, 4533, 0, 0, 0, 0, 0, + 1645, 4536, 0, 0, 0, 0, 46, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 4539, 0, 0, 0, + 0, 0, 0, 4545, 4548, 2265, 92, 92, 2263, 1778, + 4549, 4552, 92, 4553, 4422, 4196, 4554, 4551, 4449, 0, + 4422, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 46, 0, 0, 4263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, + 0, 1133, 0, 0, 1139, 1139, 0, 0, 0, 0, + 46, 46, 0, 0, 0, 0, 46, 1791, 1794, 1795, + 1796, 1797, 1798, 1799, 0, 1800, 1801, 1803, 1804, 1802, + 1805, 1806, 1779, 1780, 1781, 1782, 1762, 1763, 1792, 0, + 1765, 0, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, + 1774, 0, 0, 1775, 1783, 1784, 1785, 1786, 0, 1787, + 1788, 1789, 1790, 0, 0, 1776, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3219, 0, 0, 0, 0, 0, 0, 0, 140, + 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 0, 0, 0, 161, 3268, 3269, 3270, 3271, + 3272, 1777, 0, 0, 0, 0, 0, 0, 0, 201, + 0, 0, 0, 0, 0, 180, 3287, 0, 181, 0, + 3155, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 140, 0, 162, 0, 0, 0, 0, + 149, 150, 172, 171, 200, 0, 0, 0, 0, 183, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1817, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 173, 0, 0, 0, 0, 0, 161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, + 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1793, 0, 0, 0, 0, + 0, 0, 0, 0, 1830, 1831, 172, 171, 200, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 147, + 169, 154, 146, 0, 167, 168, 0, 0, 0, 0, + 1764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 190, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 158, 156, 151, 152, + 153, 157, 0, 0, 0, 0, 0, 0, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 1832, 169, 3440, 1829, 0, 167, 168, + 0, 0, 0, 0, 0, 1778, 0, 0, 0, 0, + 0, 0, 0, 0, 3458, 184, 0, 0, 0, 0, + 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4288, 0, 0, - 0, 0, 0, 0, 0, 0, 91, 48, 49, 93, - 0, 0, 3852, 0, 0, 3856, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, - 52, 81, 82, 0, 79, 83, 0, 0, 1179, 0, - 0, 0, 0, 0, 0, 0, 80, 0, 0, 3869, - 0, 0, 0, 0, 1808, 0, 0, 0, 103, 0, - 0, 0, 0, 0, 0, 2294, 0, 4371, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 0, 1652, 0, 0, 0, 4366, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3892, 0, 0, 0, 0, 0, 0, - 0, 4418, 0, 0, 0, 0, 3900, 0, 0, 0, - 0, 1777, 0, 3907, 0, 0, 0, 0, 0, 0, - 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 726, 4488, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4366, 0, 0, 0, 0, 0, 0, 1090, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, - 2275, 2276, 2277, 2278, 2288, 2279, 2280, 2281, 2293, 2289, - 2282, 2283, 2290, 2291, 2292, 2284, 2285, 2287, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 95, 59, 62, - 61, 64, 1412, 78, 0, 0, 87, 84, 0, 4297, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4296, 0, 0, 0, 4129, - 0, 0, 0, 1470, 0, 0, 0, 0, 4136, 0, - 4298, 66, 97, 96, 0, 0, 76, 77, 63, 0, - 1764, 0, 0, 0, 85, 86, 0, 0, 4146, 4147, - 4148, 0, 4150, 0, 4151, 4152, 0, 0, 0, 0, - 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, - 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, - 4175, 4176, 0, 4178, 4181, 0, 0, 0, 0, 0, - 4295, 69, 0, 70, 71, 72, 73, 0, 0, 4190, - 4191, 4192, 4193, 4194, 4196, 4197, 4199, 4201, 4202, 4204, - 0, 0, 0, 4208, 0, 0, 0, 4210, 0, 0, - 0, 0, 0, 0, 4220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 0, 0, 4240, 0, 0, 0, 0, 0, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3149, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 140, 0, 162, 0, 0, 0, + 0, 0, 175, 0, 0, 0, 0, 1652, 0, 0, 0, 0, 0, 1791, 1794, 1795, 1796, 1797, 1798, 1799, - 183, 1800, 1801, 1803, 1804, 1802, 1805, 1806, 1779, 1780, + 0, 1800, 1801, 1803, 1804, 1802, 1805, 1806, 1779, 1780, 1781, 1782, 1762, 1763, 1792, 0, 1765, 0, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 0, 0, 1775, - 1783, 1784, 1785, 1786, 173, 1787, 1788, 1789, 1790, 0, - 161, 1776, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 94, 181, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 140, 0, 162, 0, - 0, 0, 0, 0, 0, 1830, 1831, 172, 171, 200, - 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1720, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, - 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 0, 1814, 181, 0, 0, 0, 4264, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 100, 0, 0, 0, 0, 149, 150, 172, - 171, 200, 0, 4279, 0, 0, 0, 0, 0, 4282, - 0, 4283, 0, 166, 1832, 169, 0, 1829, 0, 167, - 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 4308, 0, 0, - 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4332, 4333, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4340, 4342, 4344, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1793, 0, 0, 0, 0, 0, 0, 0, 2133, - 0, 0, 0, 1018, 4367, 166, 147, 169, 154, 146, - 75, 167, 168, 0, 0, 4389, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 0, 0, 0, 0, 0, 0, 0, 190, 155, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 158, 156, 151, 152, 153, 157, 0, - 0, 0, 0, 0, 206, 148, 0, 206, 0, 4416, - 0, 788, 0, 0, 159, 0, 794, 175, 1287, 0, - 1295, 0, 0, 0, 0, 0, 0, 206, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4439, 4441, 4443, 0, 206, 2216, 2217, 2218, 2219, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2232, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 206, 0, 0, 794, 0, 794, 0, 0, - 0, 0, 0, 0, 4484, 0, 0, 0, 0, 0, - 0, 0, 1382, 0, 0, 0, 2271, 2272, 0, 0, - 0, 0, 2295, 0, 0, 2299, 2300, 0, 0, 175, - 2305, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4513, 4514, 0, 2317, 2318, 2319, 2320, 2321, - 2322, 2323, 2324, 2325, 2326, 0, 2328, 0, 170, 0, - 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2359, 0, - 2364, 0, 2366, 2367, 2368, 0, 2370, 2371, 2372, 4531, - 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, - 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, - 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, - 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, - 2414, 2415, 2416, 2417, 2418, 2419, 2423, 2424, 2425, 2426, - 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, - 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 0, - 170, 0, 0, 0, 2451, 0, 2453, 0, 2459, 2460, - 2461, 2462, 2463, 2464, 0, 0, 0, 163, 0, 0, - 164, 0, 0, 0, 0, 0, 0, 2476, 2477, 2478, - 2479, 2480, 2481, 2482, 2483, 0, 2485, 2486, 2487, 2488, - 2489, 0, 0, 0, 0, 0, 0, 0, 201, 0, - 0, 176, 0, 0, 0, 0, 0, 0, 188, 1826, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 162, 0, 1139, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 196, 0, 0, 0, 0, 0, 0, 0, 0, 163, - 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 173, 0, 2546, 2547, 0, 0, 161, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 176, 0, 0, 0, 0, 180, 0, - 188, 181, 2587, 177, 182, 179, 185, 186, 187, 189, - 191, 192, 193, 194, 0, 0, 0, 0, 0, 195, - 197, 198, 199, 1830, 1831, 172, 171, 200, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1734, 0, - 0, 0, 0, 0, 0, 0, 0, 2632, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1754, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 177, 182, 179, 185, 186, - 187, 189, 191, 192, 193, 194, 0, 0, 0, 0, - 0, 195, 197, 198, 199, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 1832, 169, 0, 1829, 0, 167, 168, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 1889, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1934, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2129, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2139, 0, - 0, 0, 0, 0, 0, 2143, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2154, 2155, 2156, 2157, - 2158, 2159, 2160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 206, 0, 206, - 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2209, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1085, 0, 0, 0, 0, 1023, 1086, 1037, 1038, 1039, - 1024, 0, 0, 1025, 1026, 0, 1027, 0, 0, 0, + 1783, 1784, 1785, 1786, 0, 1787, 1788, 1789, 1790, 0, + 0, 1776, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1090, 0, 3584, 0, 0, 175, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3601, 3602, 0, 3603, 3605, + 3607, 0, 0, 170, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3620, 0, 0, 0, + 0, 3623, 0, 3625, 3626, 3627, 3629, 3630, 3631, 3632, + 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3643, + 3645, 3647, 3649, 3651, 3653, 3655, 3657, 3659, 3661, 3663, + 3665, 3667, 3669, 3671, 3673, 3674, 3676, 3677, 3678, 3680, + 0, 0, 3682, 0, 3684, 3685, 3686, 0, 0, 3690, + 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, + 1412, 0, 0, 0, 0, 0, 0, 170, 3706, 0, + 0, 0, 3711, 0, 0, 0, 3715, 3716, 0, 0, + 3717, 3719, 163, 3722, 3724, 164, 3726, 3727, 3728, 3729, + 0, 1470, 0, 0, 0, 0, 3737, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, + 0, 0, 0, 188, 0, 1777, 0, 0, 0, 1018, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1793, 0, 0, 0, 0, 0, 0, 3769, 3770, + 0, 0, 3775, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 163, 0, 0, 164, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 206, 0, 0, 206, 0, 0, 0, 788, 0, 0, + 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, + 176, 0, 0, 206, 0, 0, 0, 188, 177, 182, + 179, 185, 186, 187, 189, 191, 192, 193, 194, 0, + 206, 0, 0, 0, 195, 197, 198, 199, 1085, 0, + 0, 0, 0, 1023, 1086, 1037, 1038, 1039, 1024, 0, + 0, 1025, 1026, 3848, 1027, 0, 0, 794, 206, 196, + 0, 794, 0, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 1040, 1041, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1764, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3868, 0, 0, + 3872, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 182, 179, 185, 186, 187, 189, 191, + 192, 193, 194, 0, 0, 0, 0, 0, 195, 197, + 198, 199, 0, 0, 3885, 1042, 1043, 1044, 1045, 1046, + 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, + 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, + 1077, 1078, 1079, 1080, 1081, 1082, 1083, 4355, 0, 1778, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1720, 0, 0, 0, 0, 0, 0, 0, 3908, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3916, 0, 0, 0, 0, 0, 0, 3923, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3555, + 0, 0, 1814, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1791, 1794, 1795, + 1796, 1797, 1798, 1799, 0, 1800, 1801, 1803, 1804, 1802, + 1805, 1806, 1779, 1780, 1781, 1782, 1762, 1763, 1792, 0, + 1765, 0, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, + 1774, 0, 0, 1775, 1783, 1784, 1785, 1786, 0, 1787, + 1788, 1789, 1790, 0, 0, 1776, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3556, 3557, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4145, 0, 0, 2133, 0, 0, + 0, 0, 0, 4152, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1287, 0, 1295, 4162, 4163, 4164, 0, 4166, 0, + 4167, 4168, 0, 0, 0, 0, 4171, 4172, 4173, 4174, + 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, + 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 0, 4194, + 4197, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4206, 4207, 4208, 4209, 4210, + 4212, 4213, 4215, 4217, 4218, 4220, 0, 0, 0, 4224, + 0, 0, 0, 4226, 0, 1382, 0, 0, 0, 0, + 4236, 0, 0, 2216, 2217, 2218, 2219, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2232, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4256, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2271, 2272, 0, 0, 0, 0, + 2295, 0, 0, 2299, 2300, 1793, 0, 0, 2305, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2317, 2318, 2319, 2320, 2321, 2322, 2323, + 2324, 2325, 2326, 0, 2328, 0, 0, 0, 2350, 2351, + 2352, 2353, 2354, 2355, 2356, 2357, 2359, 0, 2364, 0, + 2366, 2367, 2368, 0, 2370, 2371, 2372, 0, 2374, 2375, + 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, + 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, + 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, + 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, + 2416, 2417, 2418, 2419, 2423, 2424, 2425, 2426, 2427, 2428, + 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, + 2439, 2440, 2441, 2442, 2443, 2444, 2445, 0, 0, 0, + 0, 0, 2451, 206, 2453, 206, 2459, 2460, 2461, 2462, + 2463, 2464, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4353, 0, 0, 2476, 2477, 2478, 2479, 2480, + 2481, 2482, 2483, 0, 2485, 2486, 2487, 2488, 2489, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4280, 0, 201, 0, 0, + 4352, 0, 0, 0, 0, 0, 0, 0, 1826, 0, + 0, 0, 0, 0, 1139, 0, 794, 206, 0, 4295, + 0, 140, 0, 162, 0, 4298, 0, 4299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, + 0, 0, 0, 0, 0, 1456, 0, 0, 0, 0, + 0, 0, 0, 4324, 0, 0, 0, 0, 0, 0, + 0, 0, 2546, 2547, 0, 0, 0, 0, 0, 0, + 0, 173, 0, 0, 0, 0, 0, 161, 4348, 4349, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2587, 1734, 4356, 4358, 4360, 0, 0, 180, 0, 0, + 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1754, 0, 0, 0, 0, 0, 0, + 4383, 0, 1830, 1831, 172, 171, 200, 0, 0, 0, + 0, 4405, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2632, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4432, 0, 0, 1889, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4455, 4457, 4459, 0, + 0, 0, 0, 1934, 0, 0, 0, 0, 0, 0, + 166, 1832, 169, 0, 1829, 0, 167, 168, 0, 0, + 0, 0, 0, 0, 0, 2129, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, + 4500, 2139, 190, 0, 0, 0, 0, 0, 2143, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2154, + 2155, 2156, 2157, 2158, 2159, 2160, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4529, 4530, + 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, + 0, 0, 794, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 206, 0, 0, 4547, 0, 0, 0, 0, + 0, 2209, 0, 0, 0, 0, 0, 1017, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 794, + 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 206, 0, 0, 0, 794, + 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 794, 0, 794, 0, 0, 0, + 793, 0, 0, 0, 794, 0, 0, 1456, 794, 0, + 0, 794, 794, 794, 794, 0, 794, 0, 794, 794, + 0, 794, 794, 794, 794, 794, 794, 0, 0, 0, + 0, 0, 0, 0, 1456, 794, 794, 1456, 794, 1456, + 206, 794, 1085, 0, 0, 1128, 0, 0, 1086, 0, + 0, 0, 0, 0, 0, 793, 0, 0, 2264, 793, + 206, 793, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 794, 0, 206, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 794, + 0, 0, 0, 794, 0, 170, 206, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 0, 1042, + 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, + 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 0, 794, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1085, 206, 0, 0, 0, 0, 1086, 0, + 0, 0, 0, 0, 163, 0, 0, 164, 2264, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2821, + 0, 0, 0, 0, 0, 0, 0, 0, 176, 2827, + 2828, 2829, 2830, 794, 0, 188, 0, 0, 0, 2552, + 2553, 0, 0, 1456, 0, 0, 0, 0, 2557, 2558, + 0, 2561, 0, 0, 2209, 0, 0, 0, 0, 0, + 0, 1456, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1470, 0, 0, 196, 0, 1042, + 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, + 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 182, 179, 185, 186, 187, 189, 191, 192, 193, + 194, 0, 0, 0, 0, 0, 195, 197, 198, 199, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 91, 48, 49, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 52, 81, 82, 0, + 79, 83, 0, 0, 0, 0, 0, 2470, 0, 0, + 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 206, 0, 0, 0, 101, 794, 0, 0, + 0, 2209, 0, 0, 0, 0, 0, 2714, 0, 0, + 0, 0, 0, 0, 1720, 0, 0, 0, 0, 2744, + 2745, 0, 0, 2749, 0, 0, 2752, 0, 0, 0, + 0, 794, 0, 0, 0, 0, 0, 0, 0, 206, + 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1040, 1041, 0, 0, 0, 0, - 794, 206, 0, 0, 1085, 0, 0, 0, 0, 1023, - 1086, 1037, 1038, 1039, 1024, 0, 0, 1025, 1026, 0, - 1027, 4335, 0, 0, 0, 0, 0, 0, 0, 1456, - 0, 0, 0, 0, 0, 0, 0, 0, 1040, 1041, + 0, 206, 206, 0, 0, 4504, 794, 0, 0, 2470, + 206, 206, 0, 206, 0, 206, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 1042, 1043, 1044, - 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, - 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 4339, - 0, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, - 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 4339, 0, 0, 0, 0, 0, 0, - 0, 3542, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 163, 0, 0, 164, 0, + 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3542, 0, 0, 0, 176, - 0, 2815, 0, 0, 0, 0, 188, 0, 0, 0, - 0, 2821, 2822, 2823, 2824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3543, 3544, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 0, 0, 1470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2552, 2553, 3543, 3544, - 0, 0, 0, 0, 0, 2557, 2558, 0, 2561, 0, - 0, 2209, 206, 0, 0, 0, 794, 794, 0, 0, - 0, 177, 182, 179, 185, 186, 187, 189, 191, 192, - 193, 194, 0, 0, 0, 0, 206, 195, 197, 198, - 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 95, 59, 62, 61, 64, 0, 78, + 0, 794, 87, 84, 0, 4313, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 794, 0, 0, 0, 206, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 794, + 0, 4312, 0, 794, 0, 0, 0, 0, 0, 794, + 794, 0, 0, 794, 0, 794, 4314, 66, 97, 96, + 0, 794, 76, 77, 63, 0, 0, 0, 0, 0, + 85, 86, 2755, 0, 0, 0, 0, 0, 2757, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, + 0, 794, 0, 0, 0, 794, 794, 2763, 0, 1361, + 0, 0, 1370, 0, 0, 0, 4311, 69, 0, 70, + 71, 72, 73, 0, 3233, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 0, 0, 0, 0, 0, 206, + 0, 3259, 3260, 3261, 0, 0, 3263, 0, 0, 3265, + 0, 206, 206, 1455, 0, 206, 0, 206, 206, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3284, + 3285, 3286, 0, 65, 0, 0, 0, 0, 3291, 0, + 0, 0, 0, 3293, 0, 0, 3295, 3296, 3297, 0, + 0, 0, 3298, 3299, 0, 0, 3300, 0, 3301, 0, + 0, 0, 0, 0, 0, 3302, 0, 3303, 0, 0, + 0, 3304, 0, 3305, 0, 0, 3306, 0, 3307, 0, + 3308, 0, 3309, 0, 3310, 0, 3311, 0, 3312, 0, + 3313, 0, 3314, 0, 3315, 0, 3316, 0, 3317, 0, + 3318, 0, 3319, 0, 3320, 0, 3321, 0, 3322, 0, + 3323, 0, 0, 0, 3324, 0, 3325, 0, 3326, 0, + 0, 3327, 0, 3328, 0, 3329, 0, 2423, 3331, 0, + 0, 3333, 0, 0, 3335, 3336, 3337, 3338, 0, 0, + 0, 0, 3339, 2423, 2423, 2423, 2423, 2423, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3349, 0, + 0, 0, 0, 0, 0, 0, 3362, 0, 0, 3366, + 0, 0, 0, 0, 0, 0, 0, 0, 3370, 3371, + 3372, 3373, 3374, 3375, 0, 0, 0, 3376, 3377, 0, + 3378, 0, 3379, 0, 206, 0, 0, 0, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1139, 0, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, - 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 794, 0, - 794, 0, 0, 0, 0, 0, 0, 0, 794, 0, - 0, 1456, 794, 0, 0, 794, 794, 794, 794, 0, - 794, 0, 794, 794, 0, 794, 794, 794, 794, 794, - 794, 0, 0, 0, 0, 0, 0, 0, 1456, 794, - 794, 1456, 794, 1456, 206, 794, 1720, 1085, 0, 0, - 1128, 0, 0, 1086, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2264, 206, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 794, 0, 206, - 0, 0, 0, 0, 0, 0, 0, 0, 2209, 0, - 0, 0, 0, 794, 2714, 0, 0, 794, 0, 0, - 206, 206, 0, 0, 0, 0, 2738, 2739, 0, 0, - 2743, 0, 0, 2746, 0, 0, 0, 206, 0, 0, - 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, - 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 0, 0, 1042, 1043, 1044, 1045, 1046, 1047, - 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, - 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, - 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 794, 0, 0, 0, - 0, 0, 0, 0, 4337, 0, 0, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 0, 0, 0, 0, 794, 3428, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 793, 793, 3459, 0, 0, 0, 0, 0, 0, 0, + 0, 792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4336, 0, 0, 0, 0, 0, 4337, 0, - 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1456, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1456, 4336, 0, 0, 0, - 3220, 0, 0, 0, 0, 0, 0, 0, 0, 2749, - 0, 0, 0, 0, 0, 2751, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3246, 3247, 3248, - 0, 0, 3250, 0, 0, 3252, 0, 0, 0, 0, - 0, 0, 0, 0, 2757, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3271, 3272, 3273, 0, 0, - 0, 0, 0, 0, 3278, 0, 0, 0, 0, 3280, - 0, 0, 3282, 3283, 3284, 0, 0, 0, 3285, 3286, - 0, 0, 3287, 0, 3288, 0, 0, 0, 0, 0, - 0, 3289, 0, 3290, 0, 0, 0, 3291, 0, 3292, - 0, 0, 3293, 0, 3294, 0, 3295, 0, 3296, 0, - 3297, 0, 3298, 0, 3299, 0, 3300, 0, 3301, 0, - 3302, 0, 3303, 0, 3304, 0, 3305, 0, 3306, 0, - 3307, 2470, 3308, 0, 3309, 0, 3310, 0, 0, 0, - 3311, 0, 3312, 0, 3313, 0, 0, 3314, 0, 3315, - 0, 3316, 0, 2423, 3318, 0, 0, 3320, 0, 0, - 3322, 3323, 3324, 3325, 0, 0, 0, 0, 3326, 2423, - 2423, 2423, 2423, 2423, 0, 0, 206, 0, 0, 0, - 0, 794, 0, 0, 3336, 0, 0, 0, 0, 0, - 0, 0, 3349, 0, 0, 3353, 0, 0, 0, 0, - 0, 0, 0, 0, 3357, 3358, 3359, 3360, 3361, 3362, - 0, 0, 0, 3363, 3364, 794, 3365, 0, 3366, 0, - 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1139, 0, 0, 206, 206, 0, 0, 0, - 794, 0, 0, 2470, 206, 206, 0, 206, 0, 206, - 206, 0, 0, 0, 0, 0, 0, 91, 48, 49, - 93, 0, 0, 0, 0, 0, 0, 794, 0, 0, - 0, 3415, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 52, 81, 82, 0, 79, 83, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 3446, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 0, 0, 0, 0, 0, 0, 0, 793, 1456, 0, + 2470, 0, 0, 0, 0, 0, 0, 0, 0, 3517, + 0, 0, 0, 793, 0, 0, 1168, 0, 0, 0, + 1175, 0, 1179, 0, 0, 0, 0, 793, 0, 0, + 0, 3097, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, + 0, 0, 793, 0, 793, 0, 0, 0, 0, 0, + 0, 0, 793, 0, 0, 1455, 793, 0, 0, 793, + 793, 793, 793, 0, 793, 0, 793, 793, 0, 793, + 793, 793, 793, 793, 793, 0, 0, 0, 0, 0, + 0, 0, 1455, 793, 793, 1455, 793, 1455, 0, 793, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 48, 49, 93, 0, 0, 0, 0, 0, 0, + 3609, 0, 0, 0, 0, 0, 0, 0, 0, 98, + 0, 793, 0, 0, 52, 81, 82, 0, 79, 83, + 0, 0, 0, 0, 0, 0, 0, 793, 3624, 0, + 80, 793, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 0, 0, 3185, 3186, 3187, 3188, + 3189, 3190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 101, 4537, 2164, 0, 0, 0, + 0, 0, 0, 0, 2209, 3212, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2164, 206, 0, 0, 0, 0, 2186, 0, + 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, + 793, 3229, 794, 0, 88, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 794, 794, 794, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 0, 0, 0, 67, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 101, 0, 0, 0, 0, 0, 794, 0, 0, - 0, 0, 0, 794, 794, 3504, 0, 794, 0, 794, - 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 206, 0, + 0, 793, 0, 206, 0, 0, 0, 0, 0, 0, + 0, 1455, 0, 0, 0, 0, 0, 0, 0, 0, + 2273, 0, 0, 0, 0, 0, 0, 0, 0, 1455, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 95, 59, 62, 61, 64, 0, 78, 0, 0, + 87, 84, 0, 4313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4312, + 3829, 0, 0, 0, 794, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4314, 66, 97, 96, 0, 0, + 76, 77, 63, 0, 0, 794, 0, 0, 85, 86, + 0, 0, 794, 3853, 0, 0, 794, 794, 0, 0, + 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1456, 794, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 206, 206, + 206, 206, 206, 206, 4311, 69, 0, 70, 71, 72, + 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3874, 0, 3875, 0, 3876, 793, 3877, 0, 0, 0, + 0, 0, 0, 0, 3880, 3881, 206, 206, 0, 0, + 0, 0, 0, 0, 3886, 0, 0, 0, 0, 0, + 0, 3398, 3399, 0, 3403, 0, 0, 0, 3887, 0, + 3888, 0, 3889, 0, 3890, 0, 3891, 0, 3892, 0, + 3893, 65, 3894, 206, 3895, 793, 3896, 0, 3897, 0, + 3898, 0, 3899, 0, 3900, 0, 3901, 0, 3902, 0, + 0, 3903, 0, 0, 0, 3904, 0, 3905, 0, 794, + 0, 0, 0, 3907, 0, 0, 0, 0, 0, 793, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3924, 0, 0, 0, 0, + 0, 0, 0, 0, 3929, 0, 3930, 3931, 0, 3932, + 0, 3933, 0, 0, 793, 0, 3934, 793, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 88, 91, 48, 49, 93, 0, 0, 0, 0, - 794, 0, 0, 0, 0, 794, 0, 0, 0, 794, - 794, 98, 0, 0, 0, 0, 52, 81, 82, 0, - 79, 83, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 80, 0, 0, 0, 0, 0, 3091, 0, - 0, 0, 0, 0, 103, 0, 0, 206, 0, 0, - 0, 0, 0, 206, 0, 0, 0, 0, 0, 3594, - 0, 0, 0, 0, 67, 206, 206, 0, 0, 206, - 0, 206, 206, 0, 0, 0, 101, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3609, 95, 59, - 62, 61, 64, 0, 78, 0, 0, 87, 84, 0, - 4297, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1017, 4296, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, - 0, 4298, 66, 97, 96, 0, 0, 76, 77, 63, - 0, 0, 0, 0, 0, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3974, 0, 0, 0, 0, 94, 0, 3545, 0, + 0, 0, 0, 0, 0, 3983, 0, 0, 3985, 0, + 0, 0, 3559, 0, 0, 0, 0, 0, 0, 0, + 3989, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4125, 3574, 793, + 0, 3577, 0, 0, 0, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1381, 0, 0, 0, 0, + 0, 793, 0, 0, 0, 0, 0, 793, 793, 0, + 0, 793, 0, 793, 794, 0, 0, 0, 0, 793, + 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3179, 3180, 3181, 3182, 3183, 3184, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, - 0, 4295, 69, 0, 70, 71, 72, 73, 0, 0, - 0, 0, 0, 0, 0, 2209, 3199, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 793, 0, 0, 794, 0, 793, + 0, 0, 0, 793, 793, 0, 0, 0, 0, 0, + 0, 206, 0, 206, 206, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 95, 59, 62, 61, 64, 0, 78, - 0, 0, 87, 84, 0, 0, 0, 0, 0, 0, - 0, 0, 3216, 793, 0, 0, 0, 793, 206, 793, - 0, 0, 0, 0, 206, 0, 0, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 97, 96, - 0, 0, 76, 77, 63, 0, 0, 0, 0, 0, - 85, 86, 0, 206, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 206, 0, 0, 0, 0, 794, 3814, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 68, 69, 0, 70, - 71, 72, 73, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3838, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1777, 0, - 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, - 0, 0, 1456, 0, 2470, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 3858, 0, 3859, - 0, 3860, 0, 3861, 0, 0, 0, 0, 0, 0, - 0, 3864, 3865, 0, 0, 0, 0, 0, 0, 0, - 0, 3870, 0, 0, 0, 0, 0, 0, 0, 1817, - 0, 0, 0, 0, 0, 3871, 0, 3872, 0, 3873, - 0, 3874, 0, 3875, 0, 3876, 0, 3877, 0, 3878, - 0, 3879, 0, 3880, 0, 3881, 0, 3882, 0, 3883, - 0, 3884, 0, 3885, 0, 3886, 0, 0, 3887, 0, - 0, 0, 3888, 0, 3889, 0, 0, 0, 0, 0, - 3891, 0, 0, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 3385, 3386, 0, 3390, 0, 0, 0, 0, - 0, 0, 3908, 0, 0, 0, 0, 0, 94, 0, - 0, 3913, 0, 3914, 3915, 0, 3916, 0, 3917, 0, - 0, 0, 0, 3918, 0, 0, 0, 1764, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3958, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3967, 0, 0, 3969, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3973, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 0, 0, 4109, 0, 0, 206, 0, 0, - 0, 0, 0, 0, 0, 206, 0, 0, 100, 0, - 0, 0, 1778, 0, 0, 0, 794, 0, 0, 3532, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 794, - 794, 794, 206, 3546, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, - 0, 0, 3559, 0, 0, 3562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 206, 0, 0, 0, 0, 206, 0, 1777, - 1791, 1794, 1795, 1796, 1797, 1798, 1799, 0, 1800, 1801, - 1803, 1804, 1802, 1805, 1806, 1779, 1780, 1781, 1782, 1762, - 1763, 1792, 0, 1765, 0, 1766, 1767, 1768, 1769, 1770, - 1771, 1772, 1773, 1774, 0, 0, 1775, 1783, 1784, 1785, - 1786, 0, 1787, 1788, 1789, 1790, 75, 0, 1776, 0, - 4218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 794, 0, + 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, + 0, 0, 1456, 0, 4234, 794, 0, 0, 794, 1456, + 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, + 0, 0, 206, 0, 0, 0, 0, 206, 0, 206, + 0, 0, 206, 206, 206, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3739, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 3745, 3746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 794, - 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, - 794, 794, 0, 0, 0, 794, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, + 1456, 0, 0, 0, 0, 794, 0, 0, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1456, 794, 0, 0, 0, 0, 0, 0, 975, - 0, 0, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3724, 0, 0, 0, 0, 0, 0, 0, 1764, 0, - 0, 0, 0, 0, 206, 206, 0, 3730, 3731, 0, + 206, 0, 0, 206, 0, 975, 0, 0, 3810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 204, 0, 0, 727, 0, 0, 0, 1361, 0, 0, - 1370, 206, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, - 0, 0, 793, 0, 0, 0, 0, 794, 0, 0, - 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1140, 1140, - 0, 1455, 3795, 1778, 0, 0, 0, 0, 727, 0, - 0, 0, 0, 0, 0, 0, 0, 4262, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 794, 1793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1655, 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4276, 0, 0, 4277, 0, 4278, 0, - 0, 1791, 1794, 1795, 1796, 1797, 1798, 1799, 0, 1800, - 1801, 1803, 1804, 1802, 1805, 1806, 1779, 1780, 1781, 1782, - 1762, 1763, 1792, 0, 1765, 0, 1766, 1767, 1768, 1769, - 1770, 1771, 1772, 1773, 1774, 0, 0, 1775, 1783, 1784, - 1785, 1786, 0, 1787, 1788, 1789, 1790, 0, 0, 1776, + 0, 4278, 0, 0, 0, 0, 0, 0, 1727, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1370, 1746, 0, 1114, 0, 0, 0, + 0, 0, 793, 0, 0, 0, 0, 0, 1808, 0, + 0, 0, 0, 0, 1140, 1140, 0, 4292, 0, 0, + 4293, 0, 4294, 0, 727, 0, 0, 0, 0, 0, + 794, 0, 0, 1168, 0, 1838, 0, 0, 0, 0, + 0, 0, 0, 1847, 0, 0, 0, 1849, 0, 0, + 1852, 1853, 1855, 1855, 0, 1855, 0, 1855, 1855, 0, + 1864, 1855, 1855, 1855, 1855, 1855, 0, 0, 206, 0, + 0, 0, 0, 0, 1884, 1885, 1455, 1168, 793, 0, + 1890, 0, 0, 0, 0, 206, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4387, 0, 0, 0, 794, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, - 0, 206, 206, 0, 206, 0, 0, 0, 0, 4400, - 0, 4401, 0, 4402, 0, 0, 0, 0, 0, 0, + 0, 0, 1932, 0, 0, 0, 0, 0, 4371, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1954, 0, + 0, 0, 1959, 0, 0, 4403, 0, 0, 0, 0, + 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3957, 0, 0, 3958, 3959, 3960, 0, 0, + 0, 0, 0, 4416, 0, 4417, 0, 4418, 0, 0, + 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, - 1456, 0, 0, 794, 0, 0, 794, 1456, 206, 206, - 206, 206, 206, 0, 3941, 0, 0, 3942, 3943, 3944, - 206, 0, 0, 0, 0, 206, 0, 206, 793, 793, - 206, 206, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4482, 0, - 4483, 0, 0, 0, 0, 793, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 0, 0, 1456, 0, - 0, 793, 0, 794, 0, 0, 0, 0, 206, 0, - 0, 0, 0, 0, 0, 793, 0, 0, 0, 1793, - 0, 0, 206, 0, 0, 0, 4518, 4519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 793, 206, 793, 0, 206, 0, 0, 0, 0, 0, - 793, 0, 0, 1455, 793, 0, 0, 793, 793, 793, - 793, 0, 793, 0, 793, 793, 0, 793, 793, 793, - 793, 793, 793, 0, 0, 0, 0, 0, 0, 0, - 1455, 793, 793, 1455, 793, 1455, 0, 793, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, + 0, 2197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 793, 0, 0, 0, 793, + 0, 794, 794, 794, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4498, 0, 4499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 2164, 0, 0, 0, 0, 0, + 4534, 4535, 0, 0, 0, 0, 0, 0, 0, 0, + 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 793, 793, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 91, 48, 49, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2164, 0, 0, 0, 0, 0, 2186, 0, 0, 206, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, - 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 52, 81, 82, 0, 79, 83, 0, 3110, 0, 0, + 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, + 0, 0, 0, 794, 0, 794, 0, 206, 103, 0, + 0, 0, 0, 0, 206, 0, 0, 206, 206, 206, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, + 0, 0, 0, 0, 1456, 0, 2468, 0, 206, 0, + 101, 794, 793, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, + 793, 0, 0, 0, 793, 793, 0, 0, 0, 793, + 0, 0, 0, 0, 0, 0, 2507, 0, 0, 0, + 88, 0, 0, 0, 0, 1455, 793, 0, 0, 0, + 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 206, 0, 0, 794, 0, 0, 0, + 2524, 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 727, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, - 0, 0, 206, 0, 0, 0, 0, 0, 0, 1455, - 0, 0, 0, 0, 0, 0, 1085, 0, 2273, 0, - 0, 1023, 1086, 1037, 1038, 1039, 1024, 1455, 0, 1025, - 1026, 206, 1027, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4260, 0, 0, - 1040, 1041, 0, 0, 0, 0, 0, 727, 0, 794, - 794, 0, 0, 0, 0, 0, 0, 1085, 0, 0, - 0, 0, 0, 1086, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2264, 0, 1457, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 794, 794, 794, 794, 0, 0, 0, 0, - 0, 0, 0, 1042, 1043, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, - 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, - 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 1042, 1043, 1044, 1045, 1046, 1047, - 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, - 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, - 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 0, 3542, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1727, 4276, 0, 2468, 0, + 0, 0, 0, 0, 0, 0, 3223, 2164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1168, 0, 0, 0, 0, 95, 59, 62, + 61, 64, 0, 78, 0, 0, 87, 84, 0, 4313, + 0, 0, 0, 0, 0, 794, 0, 793, 0, 727, + 0, 727, 794, 0, 794, 4312, 0, 0, 0, 0, + 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, + 4314, 66, 97, 96, 0, 0, 76, 77, 63, 0, + 1175, 0, 0, 0, 85, 86, 2651, 0, 0, 0, + 0, 0, 0, 0, 794, 0, 0, 793, 0, 0, + 0, 0, 1168, 0, 0, 0, 0, 0, 1175, 1847, + 0, 0, 1847, 0, 1847, 0, 0, 0, 0, 0, + 2680, 0, 0, 727, 0, 0, 0, 0, 0, 0, + 4311, 69, 0, 70, 71, 72, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, + 0, 1457, 0, 0, 0, 1168, 0, 0, 0, 0, + 2259, 0, 0, 0, 2259, 2259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 794, 0, 794, 0, 206, 0, 0, 0, - 0, 0, 793, 206, 0, 793, 206, 206, 206, 0, - 3543, 3544, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1456, 0, 0, 0, 206, 0, 793, - 794, 0, 0, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, + 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 794, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 794, - 0, 0, 1114, 793, 0, 0, 0, 0, 0, 0, - 0, 0, 206, 0, 0, 794, 0, 0, 0, 793, - 0, 0, 0, 0, 0, 793, 793, 794, 0, 793, - 0, 793, 0, 727, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, + 1455, 0, 94, 793, 0, 0, 793, 1455, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 793, 0, 0, 0, 0, 793, 0, 0, - 0, 793, 793, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1457, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, - 794, 0, 794, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 1457, 0, 0, 1457, 0, 1457, - 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1456, 794, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1906, 0, 794, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3507, 0, + 0, 0, 0, 794, 2470, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 793, 0, 0, 1455, 0, + 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, + 0, 0, 100, 794, 794, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 206, 794, 0, 0, 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1961, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, - 727, 0, 0, 0, 0, 0, 0, 0, 0, 2152, - 2153, 727, 727, 727, 727, 727, 727, 727, 0, 0, + 0, 0, 0, 2777, 0, 0, 0, 0, 0, 727, + 3583, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 794, 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 794, 0, 0, 1457, 0, 0, 0, 0, 0, 2468, + 75, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1457, 0, 0, 1457, 0, 1457, 727, 0, 0, 0, + 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1906, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, - 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 206, 0, 0, + 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 794, 206, 0, 0, 0, + 0, 0, 1961, 727, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, + 0, 0, 0, 0, 0, 0, 727, 794, 0, 0, + 0, 0, 0, 0, 0, 2152, 2153, 727, 727, 727, + 727, 727, 727, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1457, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1370, 0, 0, 0, 0, 0, 0, 0, 0, - 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1456, 794, 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 2470, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1455, 0, 793, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3799, 0, 727, + 0, 0, 0, 101, 0, 0, 1085, 0, 0, 0, + 0, 1023, 1086, 1037, 1038, 1039, 1024, 0, 0, 1025, + 1026, 0, 1027, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 793, 793, 1032, 0, + 1040, 1041, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1457, + 0, 3025, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3041, 3042, 3043, 1457, 0, 793, + 793, 793, 793, 0, 0, 0, 0, 0, 0, 0, + 3058, 3553, 3554, 0, 0, 0, 0, 0, 0, 2164, + 0, 0, 0, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, + 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, + 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 794, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 206, 794, 0, 0, 0, 1961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3143, 0, 0, 0, 3555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 1906, 1085, 0, 0, 0, 0, 1023, 1086, - 1037, 1038, 1039, 1024, 0, 0, 1025, 1026, 1140, 1027, + 0, 0, 0, 1961, 1179, 0, 0, 0, 0, 0, + 0, 3163, 0, 0, 0, 1847, 1847, 0, 0, 0, + 3168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3179, 0, 0, + 0, 793, 0, 793, 0, 0, 0, 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 794, 0, 206, 1032, 0, 1040, 1041, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 794, 1114, + 0, 0, 0, 0, 1140, 0, 0, 0, 0, 0, + 3556, 3557, 1455, 0, 0, 0, 0, 0, 0, 793, + 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 727, 727, 0, 0, 0, 0, 0, 0, 1961, - 727, 727, 0, 727, 0, 727, 2577, 0, 3540, 3541, - 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, - 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, - 1082, 1083, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, - 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, - 0, 793, 793, 793, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, - 0, 0, 0, 0, 3542, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 727, 727, 0, + 0, 0, 0, 0, 0, 1961, 727, 727, 0, 727, + 0, 727, 2577, 0, 0, 0, 0, 0, 793, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2259, 0, + 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 988, 0, 0, 0, 0, 0, 992, 0, 0, 0, + 989, 990, 0, 0, 0, 991, 993, 0, 2259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, + 793, 0, 793, 0, 0, 0, 0, 0, 0, 0, + 1085, 793, 0, 0, 0, 1023, 1086, 1037, 1038, 1039, + 1024, 0, 0, 1025, 1026, 0, 1027, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3543, 3544, 0, - 0, 0, 0, 727, 0, 0, 0, 0, 0, 727, - 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 727, 727, 0, 0, 727, 0, 2745, 727, 0, - 0, 793, 0, 0, 0, 0, 0, 0, 793, 0, - 0, 0, 793, 793, 0, 0, 0, 793, 0, 0, + 0, 0, 793, 0, 1040, 1041, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3351, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2468, 0, 0, 0, 727, + 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 727, 727, 0, + 0, 727, 0, 2751, 727, 0, 1855, 1042, 1043, 1044, + 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, + 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 0, + 0, 0, 0, 0, 0, 0, 2468, 0, 0, 0, + 0, 0, 0, 0, 3441, 0, 0, 1855, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1455, 793, 0, 0, 0, 0, 0, + 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3555, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 988, 0, 0, - 0, 0, 0, 992, 0, 0, 0, 989, 990, 0, - 0, 0, 991, 993, 0, 0, 0, 0, 3210, 2164, + 0, 0, 0, 0, 0, 0, 1168, 0, 0, 0, + 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 727, 793, 0, 0, 3556, 3557, 727, 0, 0, 0, + 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1455, 793, 0, 793, 0, 0, + 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, + 0, 793, 793, 0, 0, 2774, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, - 727, 0, 0, 0, 0, 0, 0, 0, 0, 793, + 0, 793, 793, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2768, + 0, 0, 0, 0, 1457, 0, 1961, 0, 0, 0, + 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 0, 0, 1457, 0, - 1961, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1179, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, - 0, 0, 1455, 0, 0, 793, 0, 0, 793, 1455, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, + 0, 0, 0, 0, 0, 0, 0, 1906, 0, 0, + 3860, 3861, 3862, 3863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 727, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3494, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, - 1455, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, - 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3568, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, - 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3940, 0, 3940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1457, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 727, 727, 727, 727, 727, 727, + 3979, 0, 0, 3981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, + 0, 0, 727, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, + 0, 0, 0, 0, 0, 4147, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1457, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 727, - 727, 727, 727, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 727, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3784, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, + 0, 0, 0, 0, 3940, 0, 0, 0, 0, 0, + 0, 3940, 0, 3940, 0, 0, 0, 0, 0, 0, + 0, 0, 4238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 793, 793, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 793, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1140, 727, 0, 727, + 727, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1179, 0, 0, 0, 0, 1457, 0, + 0, 0, 0, 0, 0, 1457, 727, 727, 727, 727, + 727, 0, 0, 0, 0, 0, 0, 0, 3457, 0, + 0, 0, 0, 1906, 0, 727, 1179, 0, 727, 3465, + 1961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4011, 4013, 4012, 4078, 4079, 4080, 4081, 4082, 4083, 4084, + 4014, 4015, 865, 0, 0, 0, 1457, 0, 0, 0, + 0, 0, 4296, 0, 0, 0, 727, 0, 0, 0, + 0, 0, 4304, 0, 0, 0, 0, 0, 0, 0, + 727, 0, 0, 0, 0, 0, 1179, 0, 4322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 727, 0, 0, 727, + 0, 0, 2468, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 793, 0, 0, 0, - 0, 0, 0, 0, 1140, 727, 0, 727, 727, 0, - 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1455, 0, 0, 0, 0, - 0, 0, 793, 0, 0, 793, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1457, 0, 0, 0, - 0, 0, 0, 1457, 727, 727, 727, 727, 727, 0, - 0, 0, 0, 0, 0, 0, 3444, 0, 0, 0, - 0, 1906, 0, 727, 0, 0, 727, 3452, 1961, 0, + 0, 0, 4374, 4382, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4387, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1457, 0, 0, 0, 0, 0, + 0, 0, 4304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1808, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4019, + 0, 727, 727, 4382, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4027, 4028, 0, 0, 4103, 4102, + 4101, 0, 0, 4099, 4100, 4098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, - 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, - 0, 0, 793, 0, 793, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4382, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4104, 988, 0, 841, 842, 4105, + 4106, 992, 4107, 844, 845, 989, 990, 0, 839, 843, + 991, 993, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4008, 4009, 4010, + 4016, 4017, 4018, 4029, 4076, 4077, 4085, 4087, 944, 4086, + 4088, 4089, 4090, 4093, 4094, 4095, 4096, 4091, 4092, 4097, + 3991, 3995, 3992, 3993, 3994, 4006, 3996, 3997, 3998, 3999, + 4000, 4001, 4002, 4003, 4004, 4005, 4007, 4108, 4109, 4110, + 4111, 4112, 4113, 4022, 4026, 4025, 4023, 4024, 4020, 4021, + 4048, 4047, 4049, 4050, 4051, 4052, 4053, 4054, 4056, 4055, + 4057, 4058, 4059, 4060, 4061, 4062, 4030, 4031, 4034, 4035, + 4033, 4032, 4036, 4045, 4046, 4037, 4038, 4039, 4040, 4041, + 4042, 4044, 4043, 4063, 4064, 4065, 4066, 4067, 4069, 4068, + 4072, 4073, 4071, 4070, 4075, 4074, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 994, + 0, 995, 0, 0, 999, 0, 0, 0, 1001, 1000, + 0, 1002, 964, 963, 0, 0, 996, 997, 0, 998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1906, 0, 0, 0, 0, 0, 0, + 727, 0, 0, 727, 727, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1457, 0, 0, 0, 1906, 4114, 4115, 4116, 4117, 4118, + 4119, 4120, 4121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 727, 727, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, - 0, 0, 3995, 3997, 3996, 4062, 4063, 4064, 4065, 4066, - 4067, 4068, 3998, 3999, 865, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1455, 793, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 793, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4003, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 4011, 4012, 0, 0, - 4087, 4086, 4085, 0, 0, 4083, 4084, 4082, 0, 0, - 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, - 0, 0, 1906, 0, 0, 0, 0, 0, 0, 727, - 0, 0, 727, 727, 727, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 793, 0, 0, 0, 0, 1457, - 0, 0, 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4088, 988, 0, 841, - 842, 4089, 4090, 992, 4091, 844, 845, 989, 990, 0, - 839, 843, 991, 993, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1906, 3992, - 3993, 3994, 4000, 4001, 4002, 4013, 4060, 4061, 4069, 4071, - 944, 4070, 4072, 4073, 4074, 4077, 4078, 4079, 4080, 4075, - 4076, 4081, 3975, 3979, 3976, 3977, 3978, 3990, 3980, 3981, - 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3991, 4092, - 4093, 4094, 4095, 4096, 4097, 4006, 4010, 4009, 4007, 4008, - 4004, 4005, 4032, 4031, 4033, 4034, 4035, 4036, 4037, 4038, - 4040, 4039, 4041, 4042, 4043, 4044, 4045, 4046, 4014, 4015, - 4018, 4019, 4017, 4016, 4020, 4029, 4030, 4021, 4022, 4023, - 4024, 4025, 4026, 4028, 4027, 4047, 4048, 4049, 4050, 4051, - 4053, 4052, 4056, 4057, 4055, 4054, 4059, 4058, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 994, 0, 995, 0, 0, 999, 0, 0, 0, - 1001, 1000, 0, 1002, 964, 963, 0, 0, 996, 997, - 0, 998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4098, 4099, 4100, - 4101, 4102, 4103, 4104, 4105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3556,351 +3575,34 @@ var yyAct = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1906, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2112, 2091, 574, 0, 2032, 2115, 1996, 2018, 2125, - 2021, 2024, 2069, 1971, 2047, 449, 2015, 2000, 1966, 2009, - 1967, 1998, 2034, 291, 2004, 1995, 2093, 2051, 2114, 393, - 288, 1973, 1964, 215, 547, 2001, 464, 2020, 214, 2072, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 2121, 397, 2057, 668, 538, 432, - 1457, 0, 0, 2098, 2097, 2025, 2036, 2103, 2045, 2084, - 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 4326, 4328, - 553, 1019, 0, 0, 0, 0, 4329, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 2012, 2063, 658, 2110, 2013, 2065, 286, 348, 293, 285, - 629, 2122, 2102, 1970, 2044, 2109, 2039, 645, 1906, 0, - 242, 2113, 2038, 0, 2068, 0, 2128, 1965, 2059, 0, - 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, 0, 0, - 0, 0, 0, 0, 2035, 2046, 2081, 2085, 2028, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 2002, 0, - 2055, 0, 0, 0, 1977, 1969, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1961, 0, 0, 0, 0, 0, 0, 0, 2033, 0, - 0, 0, 0, 1982, 0, 2003, 2082, 0, 1963, 320, - 1974, 433, 278, 0, 490, 1994, 326, 342, 1980, 2010, - 2111, 2099, 2100, 2101, 1979, 2089, 2106, 2029, 679, 2108, - 2027, 2026, 2076, 1978, 2096, 2019, 392, 1976, 357, 208, - 237, 0, 2017, 445, 498, 513, 2095, 2094, 1999, 2011, - 274, 2008, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 2054, 2074, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 1975, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 1993, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 2090, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 2079, 2127, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 1987, 1992, 1985, 0, 275, 276, 2060, - 622, 1988, 1986, 2049, 2050, 1989, 2118, 2119, 2120, 2104, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 2083, 1981, - 0, 1990, 1991, 429, 2092, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 2053, 207, 233, 395, 2123, 491, - 311, 700, 667, 524, 662, 217, 235, 1984, 283, 1997, - 2007, 0, 2014, 2022, 2023, 2037, 2040, 2041, 2042, 2043, - 2061, 2062, 2064, 2073, 2075, 2078, 2080, 2087, 2105, 2126, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 2070, 2031, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 2052, - 2058, 409, 302, 329, 347, 2067, 666, 544, 240, 503, - 313, 270, 2086, 2088, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 2048, 2077, - 403, 623, 624, 343, 2112, 2091, 574, 0, 2032, 2115, - 1996, 2018, 2125, 2021, 2024, 2069, 1971, 2047, 449, 2015, - 2000, 1966, 2009, 1967, 1998, 2034, 291, 2004, 1995, 2093, - 2051, 2114, 393, 288, 1973, 1964, 215, 547, 2001, 464, - 2020, 214, 2072, 527, 273, 404, 401, 632, 304, 294, - 290, 269, 344, 414, 461, 564, 455, 2121, 397, 2057, - 668, 538, 432, 0, 0, 0, 2098, 2097, 2025, 2036, - 2103, 2045, 2084, 2030, 2071, 1983, 2056, 2116, 2016, 2066, - 2117, 350, 267, 352, 213, 446, 539, 309, 0, 0, - 0, 0, 0, 553, 205, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, - 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, - 390, 363, 372, 2012, 2063, 658, 2110, 2013, 2065, 286, - 348, 293, 285, 629, 2122, 2102, 1970, 2044, 2109, 2039, - 645, 0, 0, 242, 2113, 2038, 0, 2068, 0, 2128, - 1965, 2059, 0, 1968, 1972, 2124, 2107, 2005, 2006, 296, - 0, 0, 0, 0, 0, 0, 0, 2035, 2046, 2081, - 2085, 2028, 0, 426, 0, 0, 0, 0, 0, 3453, - 0, 2002, 0, 2055, 0, 0, 0, 1977, 1969, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2033, 0, 0, 0, 0, 1982, 0, 2003, 2082, - 0, 1963, 320, 1974, 433, 278, 0, 490, 1994, 326, - 342, 1980, 2010, 2111, 2099, 2100, 2101, 1979, 2089, 2106, - 2029, 679, 2108, 2027, 2026, 2076, 1978, 2096, 2019, 392, - 1976, 357, 208, 237, 0, 2017, 445, 498, 513, 2095, - 2094, 1999, 2011, 274, 2008, 509, 459, 653, 247, 307, - 495, 466, 507, 474, 310, 2054, 2074, 508, 399, 634, - 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, - 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, - 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, - 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, - 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, - 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, - 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, - 241, 672, 232, 1975, 671, 441, 633, 644, 424, 411, - 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, - 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, - 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, - 249, 252, 1993, 300, 303, 305, 306, 314, 317, 327, - 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, - 487, 478, 479, 504, 510, 511, 2090, 543, 627, 651, - 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, - 692, 440, 336, 536, 360, 400, 2079, 2127, 458, 512, - 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, - 239, 528, 626, 250, 271, 210, 1987, 1992, 1985, 0, - 275, 276, 2060, 622, 1988, 1986, 2049, 2050, 1989, 2118, - 2119, 2120, 2104, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, - 561, 2083, 1981, 0, 1990, 1991, 429, 2092, 640, 641, - 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, - 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, - 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, - 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, - 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, - 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, - 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, - 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, - 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, - 590, 601, 612, 596, 584, 577, 585, 2053, 207, 233, - 395, 2123, 491, 311, 700, 667, 524, 662, 217, 235, - 1984, 283, 1997, 2007, 0, 2014, 2022, 2023, 2037, 2040, - 2041, 2042, 2043, 2061, 2062, 2064, 2073, 2075, 2078, 2080, - 2087, 2105, 2126, 209, 211, 220, 234, 246, 251, 258, - 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, - 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, - 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, - 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, - 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, - 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, - 413, 463, 489, 628, 2070, 2031, 324, 325, 480, 481, - 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, - 472, 405, 2052, 2058, 409, 302, 329, 347, 2067, 666, - 544, 240, 503, 313, 270, 2086, 2088, 222, 261, 243, - 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, - 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, - 467, 2048, 2077, 403, 623, 624, 343, 2112, 2091, 574, - 0, 2032, 2115, 1996, 2018, 2125, 2021, 2024, 2069, 1971, - 2047, 449, 2015, 2000, 1966, 2009, 1967, 1998, 2034, 291, - 2004, 1995, 2093, 2051, 2114, 393, 288, 1973, 1964, 215, - 547, 2001, 464, 2020, 214, 2072, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 2121, 397, 2057, 668, 538, 432, 0, 0, 0, 2098, - 2097, 2025, 2036, 2103, 2045, 2084, 2030, 2071, 1983, 2056, - 2116, 2016, 2066, 2117, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 2012, 2063, 658, 2110, - 2013, 2065, 286, 348, 293, 285, 629, 2122, 2102, 1970, - 2044, 2109, 2039, 645, 0, 0, 242, 2113, 2038, 0, - 2068, 0, 2128, 1965, 2059, 0, 1968, 1972, 2124, 2107, - 2005, 2006, 296, 0, 0, 0, 0, 0, 0, 0, - 2035, 2046, 2081, 2085, 2028, 0, 426, 0, 0, 0, - 0, 0, 3413, 0, 2002, 0, 2055, 0, 0, 0, - 1977, 1969, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2033, 0, 0, 0, 0, 1982, - 0, 2003, 2082, 0, 1963, 320, 1974, 433, 278, 0, - 490, 1994, 326, 342, 1980, 2010, 2111, 2099, 2100, 2101, - 1979, 2089, 2106, 2029, 679, 2108, 2027, 2026, 2076, 1978, - 2096, 2019, 392, 1976, 357, 208, 237, 0, 2017, 445, - 498, 513, 2095, 2094, 1999, 2011, 274, 2008, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 2054, 2074, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 1975, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 1993, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 2090, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 2079, - 2127, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 1987, - 1992, 1985, 0, 275, 276, 2060, 622, 1988, 1986, 2049, - 2050, 1989, 2118, 2119, 2120, 2104, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 2083, 1981, 0, 1990, 1991, 429, - 2092, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 2053, 207, 233, 395, 2123, 491, 311, 700, 667, 524, - 662, 217, 235, 1984, 283, 1997, 2007, 0, 2014, 2022, - 2023, 2037, 2040, 2041, 2042, 2043, 2061, 2062, 2064, 2073, - 2075, 2078, 2080, 2087, 2105, 2126, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 2070, 2031, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 2052, 2058, 409, 302, 329, - 347, 2067, 666, 544, 240, 503, 313, 270, 2086, 2088, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 2048, 2077, 403, 623, 624, 343, - 2112, 2091, 574, 0, 2032, 2115, 1996, 2018, 2125, 2021, - 2024, 2069, 1971, 2047, 449, 2015, 2000, 1966, 2009, 1967, - 1998, 2034, 291, 2004, 1995, 2093, 2051, 2114, 393, 288, - 1973, 1964, 215, 547, 2001, 464, 2020, 214, 2072, 527, - 273, 404, 401, 632, 304, 294, 290, 269, 344, 414, - 461, 564, 455, 2121, 397, 2057, 668, 538, 432, 0, - 0, 0, 2098, 2097, 2025, 2036, 2103, 2045, 2084, 2030, - 2071, 1983, 2056, 2116, 2016, 2066, 2117, 350, 267, 352, - 213, 446, 539, 309, 0, 0, 0, 0, 0, 553, - 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 260, 0, 0, 0, 378, 387, 386, - 366, 367, 369, 371, 377, 384, 390, 363, 372, 2012, - 2063, 658, 2110, 2013, 2065, 286, 348, 293, 285, 629, - 2122, 2102, 1970, 2044, 2109, 2039, 645, 0, 0, 242, - 2113, 2038, 0, 2068, 0, 2128, 1965, 2059, 0, 1968, - 1972, 2124, 2107, 2005, 2006, 296, 0, 0, 0, 0, - 0, 0, 0, 2035, 2046, 2081, 2085, 2028, 0, 426, - 0, 0, 0, 0, 0, 2555, 0, 2002, 0, 2055, - 0, 0, 0, 1977, 1969, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, - 0, 0, 1982, 0, 2003, 2082, 0, 1963, 320, 1974, - 433, 278, 0, 490, 1994, 326, 342, 1980, 2010, 2111, - 2099, 2100, 2101, 1979, 2089, 2106, 2029, 679, 2108, 2027, - 2026, 2076, 1978, 2096, 2019, 392, 1976, 357, 208, 237, - 0, 2017, 445, 498, 513, 2095, 2094, 1999, 2011, 274, - 2008, 509, 459, 653, 247, 307, 495, 466, 507, 474, - 310, 2054, 2074, 508, 399, 634, 486, 650, 680, 681, - 284, 439, 664, 568, 673, 698, 238, 281, 453, 552, - 656, 535, 427, 630, 631, 356, 534, 318, 212, 396, - 686, 236, 519, 398, 257, 245, 636, 661, 322, 272, - 312, 493, 0, 266, 693, 224, 563, 647, 254, 523, - 0, 0, 701, 262, 546, 659, 648, 226, 643, 545, - 423, 353, 354, 225, 0, 494, 289, 316, 0, 0, - 279, 448, 638, 639, 277, 702, 241, 672, 232, 1975, - 671, 441, 633, 644, 424, 411, 231, 642, 422, 410, - 361, 382, 383, 301, 331, 483, 402, 484, 330, 332, - 435, 434, 436, 218, 657, 676, 0, 219, 0, 540, - 660, 703, 488, 223, 227, 248, 249, 252, 1993, 300, - 303, 305, 306, 314, 317, 327, 328, 337, 339, 394, - 408, 415, 437, 452, 482, 476, 487, 478, 479, 504, - 510, 511, 2090, 543, 627, 651, 665, 678, 684, 685, - 687, 688, 689, 690, 691, 694, 692, 440, 336, 536, - 360, 400, 2079, 2127, 458, 512, 255, 655, 537, 244, - 621, 428, 438, 263, 265, 264, 239, 528, 626, 250, - 271, 210, 1987, 1992, 1985, 0, 275, 276, 2060, 622, - 1988, 1986, 2049, 2050, 1989, 2118, 2119, 2120, 2104, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 699, 554, 560, - 555, 556, 557, 558, 559, 0, 561, 2083, 1981, 0, - 1990, 1991, 429, 2092, 640, 641, 722, 412, 526, 652, - 362, 376, 379, 368, 388, 0, 389, 364, 365, 370, - 373, 374, 375, 380, 381, 385, 391, 268, 221, 420, - 430, 625, 338, 228, 229, 230, 570, 571, 572, 573, - 669, 670, 674, 216, 499, 500, 501, 502, 315, 663, - 333, 506, 505, 358, 359, 406, 485, 586, 588, 599, - 603, 605, 607, 613, 616, 587, 589, 600, 604, 606, - 608, 614, 617, 576, 578, 580, 582, 595, 594, 591, - 619, 620, 597, 602, 581, 593, 598, 611, 618, 615, - 575, 579, 583, 592, 610, 609, 590, 601, 612, 596, - 584, 577, 585, 2053, 207, 233, 395, 2123, 491, 311, - 700, 667, 524, 662, 217, 235, 1984, 283, 1997, 2007, - 0, 2014, 2022, 2023, 2037, 2040, 2041, 2042, 2043, 2061, - 2062, 2064, 2073, 2075, 2078, 2080, 2087, 2105, 2126, 209, - 211, 220, 234, 246, 251, 258, 282, 297, 299, 308, - 321, 334, 335, 345, 346, 349, 355, 407, 416, 417, - 418, 419, 442, 443, 444, 447, 450, 451, 454, 456, - 457, 460, 465, 469, 470, 471, 473, 475, 477, 492, - 497, 514, 515, 516, 517, 518, 521, 522, 529, 530, - 531, 532, 533, 541, 542, 548, 549, 550, 551, 562, - 635, 637, 654, 675, 682, 520, 413, 463, 489, 628, - 2070, 2031, 324, 325, 480, 481, 340, 341, 696, 697, - 323, 649, 683, 646, 695, 677, 472, 405, 2052, 2058, - 409, 302, 329, 347, 2067, 666, 544, 240, 503, 313, - 270, 2086, 2088, 222, 261, 243, 280, 295, 298, 351, - 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, - 565, 566, 567, 569, 425, 287, 467, 2048, 2077, 403, - 623, 624, 343, 2112, 2091, 574, 0, 2032, 2115, 1996, - 2018, 2125, 2021, 2024, 2069, 1971, 2047, 449, 2015, 2000, - 1966, 2009, 1967, 1998, 2034, 291, 2004, 1995, 2093, 2051, - 2114, 393, 288, 1973, 1964, 215, 547, 2001, 464, 2020, - 214, 2072, 527, 273, 404, 401, 632, 304, 294, 290, - 269, 344, 414, 461, 564, 455, 2121, 397, 2057, 668, - 538, 432, 0, 0, 0, 2098, 2097, 2025, 2036, 2103, - 2045, 2084, 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, - 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, - 0, 0, 553, 205, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, - 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, - 363, 372, 2012, 2063, 658, 2110, 2013, 2065, 286, 348, - 293, 285, 629, 2122, 2102, 1970, 2044, 2109, 2039, 645, - 0, 0, 242, 2113, 2038, 0, 2068, 0, 2128, 1965, - 2059, 0, 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, - 0, 0, 0, 0, 0, 0, 2035, 2046, 2081, 2085, - 2028, 0, 426, 0, 0, 0, 0, 0, 0, 0, - 2002, 0, 2055, 0, 0, 0, 1977, 1969, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2112, 2091, 574, 0, 2032, 2115, 1996, + 2018, 2125, 2021, 2024, 2069, 1971, 2047, 449, 2015, 2000, + 1966, 2009, 1967, 1998, 2034, 291, 2004, 1995, 2093, 2051, + 2114, 393, 288, 1973, 1964, 215, 547, 2001, 464, 2020, + 214, 2072, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 2121, 397, 2057, 668, + 538, 432, 1457, 0, 0, 2098, 2097, 2025, 2036, 2103, + 2045, 2084, 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 4342, 4344, 553, 1019, 0, 0, 0, 0, 4345, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 2012, 2063, 658, 2110, 2013, 2065, 286, 348, + 293, 285, 629, 2122, 2102, 1970, 2044, 2109, 2039, 645, + 1906, 0, 242, 2113, 2038, 0, 2068, 0, 2128, 1965, + 2059, 0, 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, + 0, 0, 0, 0, 0, 0, 2035, 2046, 2081, 2085, + 2028, 0, 426, 0, 0, 0, 0, 0, 0, 0, + 2002, 0, 2055, 0, 0, 0, 1977, 1969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1961, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 1982, 0, 2003, 2082, 0, 1963, 320, 1974, 433, 278, 0, 490, 1994, 326, 342, 1980, 2010, 2111, 2099, 2100, 2101, 1979, 2089, 2106, 2029, @@ -3966,7 +3668,7 @@ var yyAct = [...]int16{ 397, 2057, 668, 538, 432, 0, 0, 0, 2098, 2097, 2025, 2036, 2103, 2045, 2084, 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 0, 553, 795, 0, 0, 0, + 0, 0, 0, 0, 0, 553, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, 2012, 2063, 658, 2110, 2013, @@ -3975,7 +3677,7 @@ var yyAct = [...]int16{ 0, 2128, 1965, 2059, 0, 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, 0, 0, 0, 0, 0, 0, 2035, 2046, 2081, 2085, 2028, 0, 426, 0, 0, 0, 0, - 0, 0, 0, 2002, 0, 2055, 0, 0, 0, 1977, + 0, 3466, 0, 2002, 0, 2055, 0, 0, 0, 1977, 1969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4045,7 +3747,7 @@ var yyAct = [...]int16{ 564, 455, 2121, 397, 2057, 668, 538, 432, 0, 0, 0, 2098, 2097, 2025, 2036, 2103, 2045, 2084, 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, 350, 267, 352, 213, - 446, 539, 309, 0, 0, 0, 0, 0, 553, 1019, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, 2012, 2063, @@ -4054,7 +3756,7 @@ var yyAct = [...]int16{ 2038, 0, 2068, 0, 2128, 1965, 2059, 0, 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, 0, 0, 0, 0, 0, 0, 2035, 2046, 2081, 2085, 2028, 0, 426, 0, - 0, 0, 0, 0, 0, 0, 2002, 0, 2055, 0, + 0, 0, 0, 0, 3426, 0, 2002, 0, 2055, 0, 0, 0, 1977, 1969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4116,151 +3818,310 @@ var yyAct = [...]int16{ 2086, 2088, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, 2048, 2077, 403, 623, - 624, 343, 574, 0, 837, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 449, 0, 0, 0, 824, 0, - 0, 0, 291, 0, 829, 0, 0, 0, 393, 288, - 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, - 273, 404, 401, 632, 304, 294, 290, 269, 344, 414, - 461, 564, 455, 836, 397, 0, 668, 538, 432, 0, - 0, 0, 0, 0, 0, 0, 0, 831, 832, 0, - 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, - 213, 446, 539, 309, 0, 101, 0, 0, 1085, 553, - 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, 0, - 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, 868, - 934, 935, 936, 937, 938, 939, 940, 870, 871, 865, - 1032, 658, 1040, 1041, 0, 286, 348, 293, 285, 629, - 0, 0, 2360, 2361, 2362, 0, 645, 0, 0, 242, - 0, 0, 0, 0, 0, 0, 0, 804, 821, 0, - 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, - 0, 0, 0, 818, 819, 0, 0, 0, 0, 979, - 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, 1046, - 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, - 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, - 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, - 1077, 1078, 1079, 1080, 1081, 1082, 1083, 830, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, - 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, - 0, 0, 0, 0, 978, 0, 0, 679, 0, 0, - 976, 0, 0, 0, 0, 392, 0, 357, 208, 237, - 0, 0, 445, 498, 513, 0, 0, 0, 0, 1029, - 0, 509, 459, 653, 247, 307, 495, 466, 507, 474, - 310, 0, 0, 508, 399, 634, 486, 650, 680, 681, - 284, 439, 664, 568, 673, 698, 238, 281, 453, 552, - 656, 535, 427, 630, 631, 356, 534, 318, 212, 396, - 686, 236, 519, 398, 257, 245, 636, 661, 322, 272, - 312, 493, 0, 266, 693, 224, 563, 647, 254, 523, - 0, 0, 701, 262, 546, 659, 648, 226, 643, 545, - 423, 353, 354, 225, 0, 494, 289, 316, 0, 0, - 279, 448, 1030, 1031, 277, 702, 875, 672, 232, 0, - 671, 441, 633, 644, 424, 411, 231, 642, 422, 410, - 361, 883, 884, 301, 331, 960, 959, 958, 330, 332, - 956, 957, 955, 218, 657, 676, 0, 219, 0, 540, - 660, 703, 488, 223, 227, 248, 249, 252, 0, 300, - 303, 305, 306, 314, 317, 327, 328, 337, 339, 394, - 408, 415, 437, 452, 482, 476, 487, 478, 479, 504, - 510, 511, 0, 543, 627, 651, 665, 678, 684, 685, - 687, 688, 689, 690, 691, 694, 692, 440, 336, 536, - 360, 400, 0, 0, 458, 512, 255, 655, 537, 244, - 621, 428, 438, 263, 265, 264, 239, 528, 626, 250, - 271, 966, 988, 977, 841, 842, 967, 968, 992, 969, - 844, 845, 989, 990, 838, 839, 843, 991, 993, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 699, 554, 560, - 555, 556, 557, 558, 559, 0, 561, 980, 827, 826, - 0, 833, 834, 0, 863, 864, 866, 872, 873, 874, - 885, 932, 933, 941, 943, 944, 942, 945, 946, 947, - 950, 951, 952, 953, 948, 949, 954, 846, 850, 847, - 848, 849, 861, 851, 852, 853, 854, 855, 856, 857, - 858, 859, 860, 862, 1003, 1004, 1005, 1006, 1007, 1008, - 878, 882, 881, 879, 880, 876, 877, 904, 903, 905, - 906, 907, 908, 909, 910, 912, 911, 913, 914, 915, - 916, 917, 918, 886, 887, 890, 891, 889, 888, 892, - 901, 902, 893, 894, 895, 896, 897, 898, 900, 899, - 919, 920, 921, 922, 923, 925, 924, 928, 929, 927, - 926, 931, 930, 825, 207, 233, 395, 0, 491, 311, - 700, 667, 524, 662, 217, 235, 994, 283, 995, 0, - 0, 999, 0, 0, 0, 1001, 1000, 0, 1002, 964, - 963, 0, 0, 996, 997, 0, 998, 0, 0, 209, - 211, 220, 234, 246, 251, 258, 282, 297, 299, 308, - 321, 334, 335, 345, 346, 349, 355, 407, 416, 417, - 418, 419, 442, 443, 444, 447, 450, 451, 454, 456, - 457, 460, 465, 469, 470, 471, 473, 475, 477, 492, - 497, 514, 515, 516, 517, 518, 521, 522, 529, 530, - 531, 532, 533, 541, 542, 548, 549, 550, 551, 562, - 635, 637, 654, 675, 682, 520, 413, 463, 489, 628, - 0, 0, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 323, 649, 683, 646, 695, 677, 472, 405, 0, 0, - 409, 302, 329, 347, 0, 666, 544, 240, 503, 313, - 270, 1084, 0, 222, 261, 243, 280, 295, 298, 351, - 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, - 565, 566, 567, 569, 425, 287, 467, 0, 0, 403, - 623, 624, 343, 574, 0, 837, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 824, - 0, 0, 0, 291, 0, 829, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 836, 397, 0, 668, 538, 432, - 0, 0, 0, 0, 0, 0, 0, 0, 831, 832, - 0, 0, 0, 0, 0, 0, 2585, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 101, 0, 0, 1085, - 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, - 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, - 868, 934, 935, 936, 937, 938, 939, 940, 870, 871, - 865, 1032, 658, 1040, 1041, 2586, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 804, 821, - 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 818, 819, 0, 0, 0, 0, - 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, - 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, - 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, - 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 830, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 978, 0, 0, 679, 0, - 0, 976, 0, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 1029, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 1030, 1031, 277, 702, 875, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 883, 884, 301, 331, 960, 959, 958, 330, - 332, 956, 957, 955, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, + 624, 343, 2112, 2091, 574, 0, 2032, 2115, 1996, 2018, + 2125, 2021, 2024, 2069, 1971, 2047, 449, 2015, 2000, 1966, + 2009, 1967, 1998, 2034, 291, 2004, 1995, 2093, 2051, 2114, + 393, 288, 1973, 1964, 215, 547, 2001, 464, 2020, 214, + 2072, 527, 273, 404, 401, 632, 304, 294, 290, 269, + 344, 414, 461, 564, 455, 2121, 397, 2057, 668, 538, + 432, 0, 0, 0, 2098, 2097, 2025, 2036, 2103, 2045, + 2084, 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, 350, + 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, + 0, 553, 1019, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, + 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, + 372, 2012, 2063, 658, 2110, 2013, 2065, 286, 348, 293, + 285, 629, 2122, 2102, 1970, 2044, 2109, 2039, 645, 0, + 0, 242, 2113, 2038, 0, 2068, 0, 2128, 1965, 2059, + 0, 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, 0, + 0, 0, 0, 0, 0, 2035, 2046, 2081, 2085, 2028, + 0, 426, 0, 0, 0, 0, 0, 2555, 0, 2002, + 0, 2055, 0, 0, 0, 1977, 1969, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2033, + 0, 0, 0, 0, 1982, 0, 2003, 2082, 0, 1963, + 320, 1974, 433, 278, 0, 490, 1994, 326, 342, 1980, + 2010, 2111, 2099, 2100, 2101, 1979, 2089, 2106, 2029, 679, + 2108, 2027, 2026, 2076, 1978, 2096, 2019, 392, 1976, 357, + 208, 237, 0, 2017, 445, 498, 513, 2095, 2094, 1999, + 2011, 274, 2008, 509, 459, 653, 247, 307, 495, 466, + 507, 474, 310, 2054, 2074, 508, 399, 634, 486, 650, + 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, + 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, + 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, + 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, + 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, + 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, + 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, + 232, 1975, 671, 441, 633, 644, 424, 411, 231, 642, + 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, + 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, + 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, + 1993, 300, 303, 305, 306, 314, 317, 327, 328, 337, + 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, + 479, 504, 510, 511, 2090, 543, 627, 651, 665, 678, + 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, + 336, 536, 360, 400, 2079, 2127, 458, 512, 255, 655, + 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, + 626, 250, 271, 210, 1987, 1992, 1985, 0, 275, 276, + 2060, 622, 1988, 1986, 2049, 2050, 1989, 2118, 2119, 2120, + 2104, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, + 554, 560, 555, 556, 557, 558, 559, 0, 561, 2083, + 1981, 0, 1990, 1991, 429, 2092, 640, 641, 722, 412, + 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, + 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, + 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, + 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, + 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, + 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, + 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, + 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, + 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, + 612, 596, 584, 577, 585, 2053, 207, 233, 395, 2123, + 491, 311, 700, 667, 524, 662, 217, 235, 1984, 283, + 1997, 2007, 0, 2014, 2022, 2023, 2037, 2040, 2041, 2042, + 2043, 2061, 2062, 2064, 2073, 2075, 2078, 2080, 2087, 2105, + 2126, 209, 211, 220, 234, 246, 251, 258, 282, 297, + 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, + 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, + 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, + 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, + 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, + 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, + 489, 628, 2070, 2031, 324, 325, 480, 481, 340, 341, + 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, + 2052, 2058, 409, 302, 329, 347, 2067, 666, 544, 240, + 503, 313, 270, 2086, 2088, 222, 261, 243, 280, 295, + 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, + 256, 525, 565, 566, 567, 569, 425, 287, 467, 2048, + 2077, 403, 623, 624, 343, 2112, 2091, 574, 0, 2032, + 2115, 1996, 2018, 2125, 2021, 2024, 2069, 1971, 2047, 449, + 2015, 2000, 1966, 2009, 1967, 1998, 2034, 291, 2004, 1995, + 2093, 2051, 2114, 393, 288, 1973, 1964, 215, 547, 2001, + 464, 2020, 214, 2072, 527, 273, 404, 401, 632, 304, + 294, 290, 269, 344, 414, 461, 564, 455, 2121, 397, + 2057, 668, 538, 432, 0, 0, 0, 2098, 2097, 2025, + 2036, 2103, 2045, 2084, 2030, 2071, 1983, 2056, 2116, 2016, + 2066, 2117, 350, 267, 352, 213, 446, 539, 309, 0, + 0, 0, 0, 0, 553, 205, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 0, 0, 260, 0, + 0, 0, 378, 387, 386, 366, 367, 369, 371, 377, + 384, 390, 363, 372, 2012, 2063, 658, 2110, 2013, 2065, + 286, 348, 293, 285, 629, 2122, 2102, 1970, 2044, 2109, + 2039, 645, 0, 0, 242, 2113, 2038, 0, 2068, 0, + 2128, 1965, 2059, 0, 1968, 1972, 2124, 2107, 2005, 2006, + 296, 0, 0, 0, 0, 0, 0, 0, 2035, 2046, + 2081, 2085, 2028, 0, 426, 0, 0, 0, 0, 0, + 0, 0, 2002, 0, 2055, 0, 0, 0, 1977, 1969, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2033, 0, 0, 0, 0, 1982, 0, 2003, + 2082, 0, 1963, 320, 1974, 433, 278, 0, 490, 1994, + 326, 342, 1980, 2010, 2111, 2099, 2100, 2101, 1979, 2089, + 2106, 2029, 679, 2108, 2027, 2026, 2076, 1978, 2096, 2019, + 392, 1976, 357, 208, 237, 0, 2017, 445, 498, 513, + 2095, 2094, 1999, 2011, 274, 2008, 509, 459, 653, 247, + 307, 495, 466, 507, 474, 310, 2054, 2074, 508, 399, + 634, 486, 650, 680, 681, 284, 439, 664, 568, 673, + 698, 238, 281, 453, 552, 656, 535, 427, 630, 631, + 356, 534, 318, 212, 396, 686, 236, 519, 398, 257, + 245, 636, 661, 322, 272, 312, 493, 0, 266, 693, + 224, 563, 647, 254, 523, 0, 0, 701, 262, 546, + 659, 648, 226, 643, 545, 423, 353, 354, 225, 0, + 494, 289, 316, 0, 0, 279, 448, 638, 639, 277, + 702, 241, 672, 232, 1975, 671, 441, 633, 644, 424, + 411, 231, 642, 422, 410, 361, 382, 383, 301, 331, + 483, 402, 484, 330, 332, 435, 434, 436, 218, 657, + 676, 0, 219, 0, 540, 660, 703, 488, 223, 227, + 248, 249, 252, 1993, 300, 303, 305, 306, 314, 317, + 327, 328, 337, 339, 394, 408, 415, 437, 452, 482, + 476, 487, 478, 479, 504, 510, 511, 2090, 543, 627, + 651, 665, 678, 684, 685, 687, 688, 689, 690, 691, + 694, 692, 440, 336, 536, 360, 400, 2079, 2127, 458, + 512, 255, 655, 537, 244, 621, 428, 438, 263, 265, + 264, 239, 528, 626, 250, 271, 210, 1987, 1992, 1985, + 0, 275, 276, 2060, 622, 1988, 1986, 2049, 2050, 1989, + 2118, 2119, 2120, 2104, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 699, 554, 560, 555, 556, 557, 558, 559, + 0, 561, 2083, 1981, 0, 1990, 1991, 429, 2092, 640, + 641, 722, 412, 526, 652, 362, 376, 379, 368, 388, + 0, 389, 364, 365, 370, 373, 374, 375, 380, 381, + 385, 391, 268, 221, 420, 430, 625, 338, 228, 229, + 230, 570, 571, 572, 573, 669, 670, 674, 216, 499, + 500, 501, 502, 315, 663, 333, 506, 505, 358, 359, + 406, 485, 586, 588, 599, 603, 605, 607, 613, 616, + 587, 589, 600, 604, 606, 608, 614, 617, 576, 578, + 580, 582, 595, 594, 591, 619, 620, 597, 602, 581, + 593, 598, 611, 618, 615, 575, 579, 583, 592, 610, + 609, 590, 601, 612, 596, 584, 577, 585, 2053, 207, + 233, 395, 2123, 491, 311, 700, 667, 524, 662, 217, + 235, 1984, 283, 1997, 2007, 0, 2014, 2022, 2023, 2037, + 2040, 2041, 2042, 2043, 2061, 2062, 2064, 2073, 2075, 2078, + 2080, 2087, 2105, 2126, 209, 211, 220, 234, 246, 251, + 258, 282, 297, 299, 308, 321, 334, 335, 345, 346, + 349, 355, 407, 416, 417, 418, 419, 442, 443, 444, + 447, 450, 451, 454, 456, 457, 460, 465, 469, 470, + 471, 473, 475, 477, 492, 497, 514, 515, 516, 517, + 518, 521, 522, 529, 530, 531, 532, 533, 541, 542, + 548, 549, 550, 551, 562, 635, 637, 654, 675, 682, + 520, 413, 463, 489, 628, 2070, 2031, 324, 325, 480, + 481, 340, 341, 696, 697, 323, 649, 683, 646, 695, + 677, 472, 405, 2052, 2058, 409, 302, 329, 347, 2067, + 666, 544, 240, 503, 313, 270, 2086, 2088, 222, 261, + 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, + 292, 259, 496, 256, 525, 565, 566, 567, 569, 425, + 287, 467, 2048, 2077, 403, 623, 624, 343, 2112, 2091, + 574, 0, 2032, 2115, 1996, 2018, 2125, 2021, 2024, 2069, + 1971, 2047, 449, 2015, 2000, 1966, 2009, 1967, 1998, 2034, + 291, 2004, 1995, 2093, 2051, 2114, 393, 288, 1973, 1964, + 215, 547, 2001, 464, 2020, 214, 2072, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 2121, 397, 2057, 668, 538, 432, 0, 0, 0, + 2098, 2097, 2025, 2036, 2103, 2045, 2084, 2030, 2071, 1983, + 2056, 2116, 2016, 2066, 2117, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 0, 553, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 2012, 2063, 658, + 2110, 2013, 2065, 286, 348, 293, 285, 629, 2122, 2102, + 1970, 2044, 2109, 2039, 645, 0, 0, 242, 2113, 2038, + 0, 2068, 0, 2128, 1965, 2059, 0, 1968, 1972, 2124, + 2107, 2005, 2006, 296, 0, 0, 0, 0, 0, 0, + 0, 2035, 2046, 2081, 2085, 2028, 0, 426, 0, 0, + 0, 0, 0, 0, 0, 2002, 0, 2055, 0, 0, + 0, 1977, 1969, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, + 1982, 0, 2003, 2082, 0, 1963, 320, 1974, 433, 278, + 0, 490, 1994, 326, 342, 1980, 2010, 2111, 2099, 2100, + 2101, 1979, 2089, 2106, 2029, 679, 2108, 2027, 2026, 2076, + 1978, 2096, 2019, 392, 1976, 357, 208, 237, 0, 2017, + 445, 498, 513, 2095, 2094, 1999, 2011, 274, 2008, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 2054, + 2074, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 1975, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 1993, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 2090, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 2079, 2127, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 1987, 1992, 1985, 0, 275, 276, 2060, 622, 1988, 1986, + 2049, 2050, 1989, 2118, 2119, 2120, 2104, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 2083, 1981, 0, 1990, 1991, + 429, 2092, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 2053, 207, 233, 395, 2123, 491, 311, 700, 667, + 524, 662, 217, 235, 1984, 283, 1997, 2007, 0, 2014, + 2022, 2023, 2037, 2040, 2041, 2042, 2043, 2061, 2062, 2064, + 2073, 2075, 2078, 2080, 2087, 2105, 2126, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 2070, 2031, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 2052, 2058, 409, 302, + 329, 347, 2067, 666, 544, 240, 503, 313, 270, 2086, + 2088, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 2048, 2077, 403, 623, 624, + 343, 2112, 2091, 574, 0, 2032, 2115, 1996, 2018, 2125, + 2021, 2024, 2069, 1971, 2047, 449, 2015, 2000, 1966, 2009, + 1967, 1998, 2034, 291, 2004, 1995, 2093, 2051, 2114, 393, + 288, 1973, 1964, 215, 547, 2001, 464, 2020, 214, 2072, + 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, + 414, 461, 564, 455, 2121, 397, 2057, 668, 538, 432, + 0, 0, 0, 2098, 2097, 2025, 2036, 2103, 2045, 2084, + 2030, 2071, 1983, 2056, 2116, 2016, 2066, 2117, 350, 267, + 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, + 553, 1019, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, + 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, + 2012, 2063, 658, 2110, 2013, 2065, 286, 348, 293, 285, + 629, 2122, 2102, 1970, 2044, 2109, 2039, 645, 0, 0, + 242, 2113, 2038, 0, 2068, 0, 2128, 1965, 2059, 0, + 1968, 1972, 2124, 2107, 2005, 2006, 296, 0, 0, 0, + 0, 0, 0, 0, 2035, 2046, 2081, 2085, 2028, 0, + 426, 0, 0, 0, 0, 0, 0, 0, 2002, 0, + 2055, 0, 0, 0, 1977, 1969, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2033, 0, + 0, 0, 0, 1982, 0, 2003, 2082, 0, 1963, 320, + 1974, 433, 278, 0, 490, 1994, 326, 342, 1980, 2010, + 2111, 2099, 2100, 2101, 1979, 2089, 2106, 2029, 679, 2108, + 2027, 2026, 2076, 1978, 2096, 2019, 392, 1976, 357, 208, + 237, 0, 2017, 445, 498, 513, 2095, 2094, 1999, 2011, + 274, 2008, 509, 459, 653, 247, 307, 495, 466, 507, + 474, 310, 2054, 2074, 508, 399, 634, 486, 650, 680, + 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, + 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, + 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, + 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, + 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, + 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, + 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, + 1975, 671, 441, 633, 644, 424, 411, 231, 642, 422, + 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, + 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, + 540, 660, 703, 488, 223, 227, 248, 249, 252, 1993, 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, + 504, 510, 511, 2090, 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, + 536, 360, 400, 2079, 2127, 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 966, 988, 977, 841, 842, 967, 968, 992, - 969, 844, 845, 989, 990, 838, 839, 843, 991, 993, + 250, 271, 210, 1987, 1992, 1985, 0, 275, 276, 2060, + 622, 1988, 1986, 2049, 2050, 1989, 2118, 2119, 2120, 2104, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 980, 827, - 826, 0, 833, 834, 0, 863, 864, 866, 872, 873, - 874, 885, 932, 933, 941, 943, 944, 942, 945, 946, - 947, 950, 951, 952, 953, 948, 949, 954, 846, 850, - 847, 848, 849, 861, 851, 852, 853, 854, 855, 856, - 857, 858, 859, 860, 862, 1003, 1004, 1005, 1006, 1007, - 1008, 878, 882, 881, 879, 880, 876, 877, 904, 903, - 905, 906, 907, 908, 909, 910, 912, 911, 913, 914, - 915, 916, 917, 918, 886, 887, 890, 891, 889, 888, - 892, 901, 902, 893, 894, 895, 896, 897, 898, 900, - 899, 919, 920, 921, 922, 923, 925, 924, 928, 929, - 927, 926, 931, 930, 825, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 994, 283, 995, - 0, 0, 999, 0, 0, 0, 1001, 1000, 0, 1002, - 964, 963, 0, 0, 996, 997, 0, 998, 0, 0, + 560, 555, 556, 557, 558, 559, 0, 561, 2083, 1981, + 0, 1990, 1991, 429, 2092, 640, 641, 722, 412, 526, + 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, + 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, + 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, + 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, + 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, + 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, + 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, + 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, + 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, + 596, 584, 577, 585, 2053, 207, 233, 395, 2123, 491, + 311, 700, 667, 524, 662, 217, 235, 1984, 283, 1997, + 2007, 0, 2014, 2022, 2023, 2037, 2040, 2041, 2042, 2043, + 2061, 2062, 2064, 2073, 2075, 2078, 2080, 2087, 2105, 2126, 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, @@ -4268,25 +4129,104 @@ var yyAct = [...]int16{ 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 1009, 1010, 1011, 1012, 1013, 1014, 1015, - 1016, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 1084, 0, 222, 261, 243, 280, 295, 298, + 628, 2070, 2031, 324, 325, 480, 481, 340, 341, 696, + 697, 323, 649, 683, 646, 695, 677, 472, 405, 2052, + 2058, 409, 302, 329, 347, 2067, 666, 544, 240, 503, + 313, 270, 2086, 2088, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 0, 0, - 403, 623, 624, 343, 91, 574, 0, 837, 0, 0, + 525, 565, 566, 567, 569, 425, 287, 467, 2048, 2077, + 403, 623, 624, 343, 574, 0, 837, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, + 824, 0, 0, 0, 291, 0, 829, 0, 0, 0, + 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, + 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, + 344, 414, 461, 564, 455, 836, 397, 0, 668, 538, + 432, 0, 0, 0, 0, 0, 0, 0, 0, 831, + 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, + 267, 352, 213, 446, 539, 309, 0, 101, 0, 0, + 1085, 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, + 1024, 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, + 869, 868, 934, 935, 936, 937, 938, 939, 940, 870, + 871, 865, 1032, 658, 1040, 1041, 0, 286, 348, 293, + 285, 629, 0, 0, 2360, 2361, 2362, 0, 645, 0, + 0, 242, 0, 0, 0, 0, 0, 0, 0, 804, + 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 426, 0, 0, 0, 818, 819, 0, 0, 0, + 0, 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, + 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, + 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 830, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, + 0, 0, 0, 0, 0, 0, 978, 0, 0, 679, + 0, 0, 976, 0, 0, 0, 0, 392, 0, 357, + 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, + 0, 1029, 0, 509, 459, 653, 247, 307, 495, 466, + 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, + 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, + 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, + 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, + 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, + 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, + 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, + 0, 0, 279, 448, 1030, 1031, 277, 702, 875, 672, + 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, + 422, 410, 361, 883, 884, 301, 331, 960, 959, 958, + 330, 332, 956, 957, 955, 218, 657, 676, 0, 219, + 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, + 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, + 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, + 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, + 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, + 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, + 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, + 626, 250, 271, 966, 988, 977, 841, 842, 967, 968, + 992, 969, 844, 845, 989, 990, 838, 839, 843, 991, + 993, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, + 554, 560, 555, 556, 557, 558, 559, 0, 561, 980, + 827, 826, 0, 833, 834, 0, 863, 864, 866, 872, + 873, 874, 885, 932, 933, 941, 943, 944, 942, 945, + 946, 947, 950, 951, 952, 953, 948, 949, 954, 846, + 850, 847, 848, 849, 861, 851, 852, 853, 854, 855, + 856, 857, 858, 859, 860, 862, 1003, 1004, 1005, 1006, + 1007, 1008, 878, 882, 881, 879, 880, 876, 877, 904, + 903, 905, 906, 907, 908, 909, 910, 912, 911, 913, + 914, 915, 916, 917, 918, 886, 887, 890, 891, 889, + 888, 892, 901, 902, 893, 894, 895, 896, 897, 898, + 900, 899, 919, 920, 921, 922, 923, 925, 924, 928, + 929, 927, 926, 931, 930, 825, 207, 233, 395, 0, + 491, 311, 700, 667, 524, 662, 217, 235, 994, 283, + 995, 0, 0, 999, 0, 0, 0, 1001, 1000, 0, + 1002, 964, 963, 0, 0, 996, 997, 0, 998, 0, + 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, + 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, + 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, + 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, + 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, + 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, + 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, + 489, 628, 0, 0, 1009, 1010, 1011, 1012, 1013, 1014, + 1015, 1016, 323, 649, 683, 646, 695, 677, 472, 405, + 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, + 503, 313, 270, 1084, 0, 222, 261, 243, 280, 295, + 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, + 256, 525, 565, 566, 567, 569, 425, 287, 467, 0, + 0, 403, 623, 624, 343, 574, 0, 837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 824, 0, 0, 0, 291, 0, 829, 0, 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, - 269, 344, 414, 461, 564, 455, 1646, 397, 0, 668, + 269, 344, 414, 461, 564, 455, 836, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, - 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, + 831, 832, 0, 0, 0, 0, 0, 0, 2585, 0, 350, 267, 352, 213, 446, 539, 309, 0, 101, 0, 0, 1085, 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, 868, 934, 935, 936, 937, 938, 939, 940, - 870, 871, 865, 1032, 658, 1040, 1041, 0, 286, 348, + 870, 871, 865, 1032, 658, 1040, 1041, 2586, 286, 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, @@ -4337,7 +4277,7 @@ var yyAct = [...]int16{ 889, 888, 892, 901, 902, 893, 894, 895, 896, 897, 898, 900, 899, 919, 920, 921, 922, 923, 925, 924, 928, 929, 927, 926, 931, 930, 825, 207, 233, 395, - 100, 491, 311, 700, 667, 524, 662, 217, 235, 994, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 994, 283, 995, 0, 0, 999, 0, 0, 0, 1001, 1000, 0, 1002, 964, 963, 0, 0, 996, 997, 0, 998, 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, @@ -4353,95 +4293,16 @@ var yyAct = [...]int16{ 240, 503, 313, 270, 1084, 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, - 0, 0, 403, 623, 624, 343, 574, 0, 837, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 449, 0, - 0, 0, 824, 0, 0, 0, 291, 0, 829, 0, - 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, - 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, - 290, 269, 344, 414, 461, 564, 455, 836, 397, 0, - 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, - 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, - 0, 350, 267, 352, 213, 446, 539, 309, 0, 101, - 0, 0, 1085, 553, 1019, 808, 985, 1023, 1086, 1037, - 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, 0, - 984, 867, 869, 868, 934, 935, 936, 937, 938, 939, - 940, 870, 871, 865, 1032, 658, 1040, 1041, 0, 286, - 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, - 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, - 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 426, 0, 0, 0, 818, 819, 0, - 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, - 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, - 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, - 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 830, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, - 342, 0, 0, 0, 0, 0, 0, 0, 978, 0, - 0, 679, 0, 0, 976, 0, 0, 0, 0, 392, - 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, - 0, 0, 0, 1029, 0, 509, 459, 653, 247, 307, - 495, 466, 507, 474, 310, 4315, 0, 508, 399, 634, - 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, - 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, - 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, - 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, - 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, - 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, - 289, 316, 0, 0, 279, 448, 1030, 1031, 277, 702, - 875, 672, 232, 0, 671, 441, 633, 644, 424, 411, - 231, 642, 422, 410, 361, 883, 884, 301, 331, 960, - 959, 958, 330, 332, 956, 957, 955, 218, 657, 676, - 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, - 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, - 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, - 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, - 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, - 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, - 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, - 239, 528, 626, 250, 271, 966, 988, 977, 841, 842, - 967, 968, 992, 969, 844, 845, 989, 990, 838, 839, - 843, 991, 993, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, - 561, 980, 827, 826, 0, 833, 834, 0, 863, 864, - 866, 872, 873, 874, 885, 932, 933, 941, 943, 944, - 942, 945, 946, 947, 950, 951, 952, 953, 948, 949, - 954, 846, 850, 847, 848, 849, 861, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 862, 1003, 1004, - 1005, 1006, 1007, 1008, 878, 882, 881, 879, 880, 876, - 877, 904, 903, 905, 906, 907, 908, 909, 910, 912, - 911, 913, 914, 915, 916, 917, 918, 886, 887, 890, - 891, 889, 888, 892, 901, 902, 893, 894, 895, 896, - 897, 898, 900, 899, 919, 920, 921, 922, 923, 925, - 924, 928, 929, 927, 926, 931, 930, 825, 207, 233, - 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, - 994, 283, 995, 0, 0, 999, 0, 0, 0, 1001, - 1000, 0, 1002, 964, 963, 0, 0, 996, 997, 0, - 998, 0, 0, 209, 211, 220, 234, 246, 251, 258, - 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, - 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, - 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, - 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, - 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, - 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, - 413, 463, 489, 628, 0, 0, 1009, 1010, 1011, 1012, - 1013, 1014, 1015, 1016, 323, 649, 683, 646, 695, 677, - 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, - 544, 240, 503, 313, 270, 1084, 0, 222, 261, 243, - 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, - 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, - 467, 0, 0, 403, 623, 624, 343, 574, 0, 837, + 0, 0, 403, 623, 624, 343, 91, 574, 0, 837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, 824, 0, 0, 0, 291, 0, 829, 0, 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, 304, - 294, 290, 269, 344, 414, 461, 564, 455, 836, 397, + 294, 290, 269, 344, 414, 461, 564, 455, 1646, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, 0, - 101, 0, 1683, 1085, 553, 1019, 808, 985, 1023, 1086, + 101, 0, 0, 1085, 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, 868, 934, 935, 936, 937, 938, 939, 940, 870, 871, 865, 1032, 658, 1040, 1041, 0, @@ -4495,7 +4356,7 @@ var yyAct = [...]int16{ 890, 891, 889, 888, 892, 901, 902, 893, 894, 895, 896, 897, 898, 900, 899, 919, 920, 921, 922, 923, 925, 924, 928, 929, 927, 926, 931, 930, 825, 207, - 233, 395, 0, 491, 311, 700, 667, 524, 662, 217, + 233, 395, 100, 491, 311, 700, 667, 524, 662, 217, 235, 994, 283, 995, 0, 0, 999, 0, 0, 0, 1001, 1000, 0, 1002, 964, 963, 0, 0, 996, 997, 0, 998, 0, 0, 209, 211, 220, 234, 246, 251, @@ -4529,7 +4390,7 @@ var yyAct = [...]int16{ 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 818, - 819, 2514, 0, 0, 0, 979, 0, 820, 0, 0, + 819, 0, 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, @@ -4540,7 +4401,7 @@ var yyAct = [...]int16{ 978, 0, 0, 679, 0, 0, 976, 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, 1029, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, + 247, 307, 495, 466, 507, 474, 310, 4331, 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, @@ -4599,7 +4460,7 @@ var yyAct = [...]int16{ 836, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 101, 0, 0, 1085, 553, 1019, 808, 985, + 309, 0, 101, 0, 1683, 1085, 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, 868, 934, 935, 936, 937, 938, 939, 940, 870, 871, 865, 1032, 658, 1040, @@ -4608,7 +4469,7 @@ var yyAct = [...]int16{ 0, 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, - 818, 819, 1141, 0, 0, 0, 979, 0, 820, 0, + 818, 819, 0, 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, @@ -4687,7 +4548,7 @@ var yyAct = [...]int16{ 0, 0, 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, - 0, 818, 819, 1137, 0, 0, 0, 979, 0, 820, + 0, 818, 819, 2514, 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, @@ -4766,7 +4627,7 @@ var yyAct = [...]int16{ 0, 0, 0, 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, - 0, 0, 818, 819, 0, 0, 0, 0, 979, 0, + 0, 0, 818, 819, 1141, 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, @@ -4845,12 +4706,12 @@ var yyAct = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, - 0, 0, 0, 818, 819, 0, 0, 0, 0, 979, + 0, 0, 0, 818, 819, 1137, 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, - 1077, 1078, 1079, 1080, 1081, 1082, 1083, 3352, 0, 0, + 1077, 1078, 1079, 1080, 1081, 1082, 1083, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 978, 0, 0, 679, 0, 0, @@ -4929,7 +4790,7 @@ var yyAct = [...]int16{ 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, - 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 3348, 0, + 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 978, 0, 0, 679, 0, @@ -4995,12 +4856,12 @@ var yyAct = [...]int16{ 432, 0, 0, 0, 0, 0, 0, 0, 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, 0, 101, 0, 0, - 1085, 553, 1019, 1160, 985, 1023, 1086, 1037, 1038, 1039, + 1085, 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, 868, 934, 935, 936, 937, 938, 939, 940, 870, 871, 865, 1032, 658, 1040, 1041, 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 242, 0, 0, 0, 0, 0, 0, 0, 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 818, 819, 0, 0, 0, @@ -5008,7 +4869,7 @@ var yyAct = [...]int16{ 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 830, + 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 3365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 978, 0, 0, 679, @@ -5074,13 +4935,13 @@ var yyAct = [...]int16{ 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, 0, 101, 0, - 0, 1085, 553, 1019, 1160, 985, 1023, 1086, 1037, 1038, + 0, 1085, 553, 1019, 808, 985, 1023, 1086, 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, 0, 984, 867, 869, 868, 934, 935, 936, 937, 938, 939, 940, 870, 871, 865, 1032, 658, 1040, 1041, 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, - 0, 821, 0, 835, 0, 0, 0, 0, 296, 0, + 804, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 818, 819, 0, 0, 0, 0, 979, 0, 820, 0, 0, 828, 1042, 1043, @@ -5088,7 +4949,7 @@ var yyAct = [...]int16{ 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, - 2251, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 978, 0, 0, 679, 0, 0, 976, 0, 0, 0, 0, 392, 0, @@ -5167,7 +5028,7 @@ var yyAct = [...]int16{ 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 2249, 0, 0, 0, 0, 0, 0, 0, 0, + 1083, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 978, 0, 0, 679, 0, 0, 976, 0, 0, 0, 0, 392, @@ -5223,113 +5084,35 @@ var yyAct = [...]int16{ 544, 240, 503, 313, 270, 1084, 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, - 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, - 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, - 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, - 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, - 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, - 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, - 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, - 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, - 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, - 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, - 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, - 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1205, 679, 0, 0, 0, - 0, 0, 1202, 1203, 392, 1171, 357, 208, 237, 1196, - 1200, 445, 498, 513, 0, 0, 0, 0, 274, 0, - 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, - 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, - 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, - 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, - 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, - 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, - 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, - 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, - 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, - 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, - 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, - 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, - 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, - 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, - 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, - 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, - 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, - 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, - 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, - 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, - 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, - 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, - 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, - 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, - 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, - 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, - 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, - 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, - 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, - 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, - 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, - 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, - 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, - 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, - 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, - 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, - 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, - 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, - 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, - 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, - 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, - 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, - 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, - 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, - 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, - 566, 567, 569, 425, 287, 467, 91, 574, 403, 623, - 624, 343, 0, 0, 0, 0, 0, 0, 0, 449, - 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, + 467, 0, 0, 403, 623, 624, 343, 574, 0, 837, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, + 0, 0, 0, 824, 0, 0, 0, 291, 0, 829, 0, 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, 304, - 294, 290, 269, 344, 414, 461, 564, 455, 103, 397, + 294, 290, 269, 344, 414, 461, 564, 455, 836, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, 0, - 101, 0, 0, 0, 553, 205, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 253, 0, 0, 260, 0, - 0, 0, 378, 387, 386, 366, 367, 369, 371, 377, - 384, 390, 363, 372, 0, 0, 658, 0, 0, 0, + 101, 0, 0, 1085, 553, 1019, 1160, 985, 1023, 1086, + 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, 1027, + 0, 984, 867, 869, 868, 934, 935, 936, 937, 938, + 939, 940, 870, 871, 865, 1032, 658, 1040, 1041, 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 426, 0, 0, 0, 818, 819, + 0, 0, 0, 0, 979, 0, 820, 0, 0, 828, + 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, + 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, + 1082, 1083, 2251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, - 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, + 326, 342, 0, 0, 0, 0, 0, 0, 0, 978, + 0, 0, 679, 0, 0, 976, 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, 513, - 0, 0, 0, 0, 274, 0, 509, 459, 653, 247, + 0, 0, 0, 0, 1029, 0, 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, 631, @@ -5337,10 +5120,10 @@ var yyAct = [...]int16{ 245, 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, 0, - 494, 289, 316, 0, 0, 279, 448, 638, 639, 277, - 702, 241, 672, 232, 0, 671, 441, 633, 644, 424, - 411, 231, 642, 422, 410, 361, 382, 383, 301, 331, - 483, 402, 484, 330, 332, 435, 434, 436, 218, 657, + 494, 289, 316, 0, 0, 279, 448, 1030, 1031, 277, + 702, 875, 672, 232, 0, 671, 441, 633, 644, 424, + 411, 231, 642, 422, 410, 361, 883, 884, 301, 331, + 960, 959, 958, 330, 332, 956, 957, 955, 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, 482, @@ -5348,145 +5131,67 @@ var yyAct = [...]int16{ 651, 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, 265, - 264, 239, 528, 626, 250, 271, 210, 0, 0, 0, - 0, 275, 276, 0, 622, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 704, 705, 706, 707, 708, 709, + 264, 239, 528, 626, 250, 271, 966, 988, 977, 841, + 842, 967, 968, 992, 969, 844, 845, 989, 990, 838, + 839, 843, 991, 993, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, 559, - 0, 561, 0, 0, 0, 0, 0, 429, 0, 640, - 641, 722, 412, 526, 652, 362, 376, 379, 368, 388, - 0, 389, 364, 365, 370, 373, 374, 375, 380, 381, - 385, 391, 268, 221, 420, 430, 625, 338, 228, 229, - 230, 570, 571, 572, 573, 669, 670, 674, 216, 499, - 500, 501, 502, 315, 663, 333, 506, 505, 358, 359, - 406, 485, 586, 588, 599, 603, 605, 607, 613, 616, - 587, 589, 600, 604, 606, 608, 614, 617, 576, 578, - 580, 582, 595, 594, 591, 619, 620, 597, 602, 581, - 593, 598, 611, 618, 615, 575, 579, 583, 592, 610, - 609, 590, 601, 612, 596, 584, 577, 585, 0, 207, - 233, 395, 100, 491, 311, 700, 667, 524, 662, 217, - 235, 0, 283, 0, 0, 0, 0, 0, 0, 2572, - 0, 0, 2571, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 209, 211, 220, 234, 246, 251, + 0, 561, 980, 827, 826, 0, 833, 834, 0, 863, + 864, 866, 872, 873, 874, 885, 932, 933, 941, 943, + 944, 942, 945, 946, 947, 950, 951, 952, 953, 948, + 949, 954, 846, 850, 847, 848, 849, 861, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 860, 862, 1003, + 1004, 1005, 1006, 1007, 1008, 878, 882, 881, 879, 880, + 876, 877, 904, 903, 905, 906, 907, 908, 909, 910, + 912, 911, 913, 914, 915, 916, 917, 918, 886, 887, + 890, 891, 889, 888, 892, 901, 902, 893, 894, 895, + 896, 897, 898, 900, 899, 919, 920, 921, 922, 923, + 925, 924, 928, 929, 927, 926, 931, 930, 825, 207, + 233, 395, 0, 491, 311, 700, 667, 524, 662, 217, + 235, 994, 283, 995, 0, 0, 999, 0, 0, 0, + 1001, 1000, 0, 1002, 964, 963, 0, 0, 996, 997, + 0, 998, 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, 682, - 520, 413, 463, 489, 628, 0, 0, 324, 325, 480, - 481, 340, 341, 696, 697, 323, 649, 683, 646, 695, + 520, 413, 463, 489, 628, 0, 0, 1009, 1010, 1011, + 1012, 1013, 1014, 1015, 1016, 323, 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, 0, - 666, 544, 240, 503, 313, 270, 0, 0, 222, 261, + 666, 544, 240, 503, 313, 270, 1084, 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, 425, - 287, 467, 574, 0, 403, 623, 624, 343, 0, 0, - 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, - 0, 0, 291, 0, 0, 0, 0, 0, 393, 288, - 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, - 273, 404, 401, 632, 304, 294, 290, 269, 344, 414, - 461, 564, 455, 0, 397, 0, 668, 538, 432, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, - 213, 446, 539, 309, 0, 0, 0, 0, 0, 553, - 795, 0, 0, 0, 0, 4498, 0, 0, 0, 0, - 253, 0, 0, 260, 0, 0, 0, 378, 387, 386, - 366, 367, 369, 371, 377, 384, 390, 363, 372, 0, - 0, 658, 0, 0, 0, 286, 348, 293, 285, 629, - 0, 0, 0, 0, 0, 0, 645, 0, 0, 242, - 0, 0, 0, 0, 0, 0, 0, 4496, 0, 0, - 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, - 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, - 4497, 4365, 4495, 0, 0, 0, 0, 679, 0, 0, - 0, 0, 0, 0, 0, 392, 0, 357, 208, 237, - 0, 0, 445, 498, 513, 0, 0, 0, 0, 274, - 0, 509, 459, 653, 247, 307, 495, 466, 507, 474, - 310, 0, 0, 508, 399, 634, 486, 650, 680, 681, - 284, 439, 664, 568, 673, 698, 238, 281, 453, 552, - 656, 535, 427, 630, 631, 356, 534, 318, 212, 396, - 686, 236, 519, 398, 257, 245, 636, 661, 322, 272, - 312, 493, 0, 266, 693, 224, 563, 647, 254, 523, - 0, 0, 701, 262, 546, 659, 648, 226, 643, 545, - 423, 353, 354, 225, 0, 494, 289, 316, 0, 0, - 279, 448, 638, 639, 277, 702, 241, 672, 232, 0, - 671, 441, 633, 644, 424, 411, 231, 642, 422, 410, - 361, 382, 383, 301, 331, 483, 402, 484, 330, 332, - 435, 434, 436, 218, 657, 676, 0, 219, 0, 540, - 660, 703, 488, 223, 227, 248, 249, 252, 0, 300, - 303, 305, 306, 314, 317, 327, 328, 337, 339, 394, - 408, 415, 437, 452, 482, 476, 487, 478, 479, 504, - 510, 511, 0, 543, 627, 651, 665, 678, 684, 685, - 687, 688, 689, 690, 691, 694, 692, 440, 336, 536, - 360, 400, 0, 0, 458, 512, 255, 655, 537, 244, - 621, 428, 438, 263, 265, 264, 239, 528, 626, 250, - 271, 210, 0, 0, 0, 0, 275, 276, 0, 622, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 699, 554, 560, - 555, 556, 557, 558, 559, 0, 561, 0, 0, 0, - 0, 0, 429, 0, 640, 641, 722, 412, 526, 652, - 362, 376, 379, 368, 388, 0, 389, 364, 365, 370, - 373, 374, 375, 380, 381, 385, 391, 268, 221, 420, - 430, 625, 338, 228, 229, 230, 570, 571, 572, 573, - 669, 670, 674, 216, 499, 500, 501, 502, 315, 663, - 333, 506, 505, 358, 359, 406, 485, 586, 588, 599, - 603, 605, 607, 613, 616, 587, 589, 600, 604, 606, - 608, 614, 617, 576, 578, 580, 582, 595, 594, 591, - 619, 620, 597, 602, 581, 593, 598, 611, 618, 615, - 575, 579, 583, 592, 610, 609, 590, 601, 612, 596, - 584, 577, 585, 0, 207, 233, 395, 0, 491, 311, - 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, - 211, 220, 234, 246, 251, 258, 282, 297, 299, 308, - 321, 334, 335, 345, 346, 349, 355, 407, 416, 417, - 418, 419, 442, 443, 444, 447, 450, 451, 454, 456, - 457, 460, 465, 469, 470, 471, 473, 475, 477, 492, - 497, 514, 515, 516, 517, 518, 521, 522, 529, 530, - 531, 532, 533, 541, 542, 548, 549, 550, 551, 562, - 635, 637, 654, 675, 682, 520, 413, 463, 489, 628, - 0, 0, 324, 325, 480, 481, 340, 341, 696, 697, - 323, 649, 683, 646, 695, 677, 472, 405, 0, 0, - 409, 302, 329, 347, 0, 666, 544, 240, 503, 313, - 270, 0, 0, 222, 261, 243, 280, 295, 298, 351, - 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, - 565, 566, 567, 569, 425, 287, 467, 91, 574, 403, - 623, 624, 343, 0, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, + 287, 467, 0, 0, 403, 623, 624, 343, 574, 0, + 837, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 449, 0, 0, 0, 824, 0, 0, 0, 291, 0, + 829, 0, 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 103, + 304, 294, 290, 269, 344, 414, 461, 564, 455, 836, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 831, 832, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 101, 0, 1683, 0, 553, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, + 0, 101, 0, 0, 1085, 553, 1019, 1160, 985, 1023, + 1086, 1037, 1038, 1039, 1024, 0, 253, 1025, 1026, 260, + 1027, 0, 984, 867, 869, 868, 934, 935, 936, 937, + 938, 939, 940, 870, 871, 865, 1032, 658, 1040, 1041, 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 821, 0, 835, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 426, 0, 0, 0, 818, + 819, 0, 0, 0, 0, 979, 0, 820, 0, 0, + 828, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 2249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, + 978, 0, 0, 679, 0, 0, 976, 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, + 513, 0, 0, 0, 0, 1029, 0, 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, @@ -5494,10 +5199,10 @@ var yyAct = [...]int16{ 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, + 0, 494, 289, 316, 0, 0, 279, 448, 1030, 1031, + 277, 702, 875, 672, 232, 0, 671, 441, 633, 644, + 424, 411, 231, 642, 422, 410, 361, 883, 884, 301, + 331, 960, 959, 958, 330, 332, 956, 957, 955, 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, @@ -5505,56 +5210,56 @@ var yyAct = [...]int16{ 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, + 265, 264, 239, 528, 626, 250, 271, 966, 988, 977, + 841, 842, 967, 968, 992, 969, 844, 845, 989, 990, + 838, 839, 843, 991, 993, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 100, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, + 559, 0, 561, 980, 827, 826, 0, 833, 834, 0, + 863, 864, 866, 872, 873, 874, 885, 932, 933, 941, + 943, 944, 942, 945, 946, 947, 950, 951, 952, 953, + 948, 949, 954, 846, 850, 847, 848, 849, 861, 851, + 852, 853, 854, 855, 856, 857, 858, 859, 860, 862, + 1003, 1004, 1005, 1006, 1007, 1008, 878, 882, 881, 879, + 880, 876, 877, 904, 903, 905, 906, 907, 908, 909, + 910, 912, 911, 913, 914, 915, 916, 917, 918, 886, + 887, 890, 891, 889, 888, 892, 901, 902, 893, 894, + 895, 896, 897, 898, 900, 899, 919, 920, 921, 922, + 923, 925, 924, 928, 929, 927, 926, 931, 930, 825, + 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, + 217, 235, 994, 283, 995, 0, 0, 999, 0, 0, + 0, 1001, 1000, 0, 1002, 964, 963, 0, 0, 996, + 997, 0, 998, 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, + 682, 520, 413, 463, 489, 628, 0, 0, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 323, 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, + 0, 666, 544, 240, 503, 313, 270, 1084, 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 1726, 0, + 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 1728, + 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 1408, 0, 1409, 1410, 0, 0, + 242, 0, 1206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5562,9 +5267,9 @@ var yyAct = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1205, 679, 0, + 0, 0, 0, 0, 1202, 1203, 392, 1171, 357, 208, + 237, 1196, 1200, 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, @@ -5615,3093 +5320,3411 @@ var yyAct = [...]int16{ 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, + 525, 565, 566, 567, 569, 425, 287, 467, 91, 574, 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 3383, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, + 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, + 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, + 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, + 103, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 101, 0, 0, 0, 553, 205, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, + 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, + 309, 0, 101, 0, 0, 0, 553, 205, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, + 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, + 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, + 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, + 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, + 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, - 2572, 0, 0, 2571, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, + 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, + 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, + 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, + 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, + 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, + 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, + 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, + 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, + 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, + 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, + 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, + 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, + 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, + 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, + 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, + 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, + 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, + 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, + 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, + 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, + 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, + 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, + 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, + 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, + 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, + 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, + 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, + 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, + 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, + 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, + 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, + 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, + 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, + 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, + 0, 207, 233, 395, 100, 491, 311, 700, 667, 524, + 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, + 0, 2572, 0, 0, 2571, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, + 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, + 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, + 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, + 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, + 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, + 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, + 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, + 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, + 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, + 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, + 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, + 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, + 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, + 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, + 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, + 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, + 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, + 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, + 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, + 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, + 0, 553, 795, 0, 0, 0, 0, 4514, 0, 0, + 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, + 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, + 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, + 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, + 0, 242, 0, 0, 0, 0, 0, 0, 0, 4512, + 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, - 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 4359, 4360, - 4361, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 101, 0, 0, 0, 553, 205, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, + 0, 0, 4513, 4381, 4511, 0, 0, 0, 0, 679, + 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, + 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, + 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, + 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, + 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, + 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, + 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, + 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, + 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, + 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, + 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, + 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, + 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, + 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, + 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, + 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, + 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, + 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, + 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, + 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, + 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, + 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, + 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, + 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, + 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, + 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, + 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, + 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, + 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, + 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, + 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, + 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, + 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, + 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, + 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, + 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, + 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, + 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, + 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, + 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, + 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, + 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, + 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, + 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, + 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, + 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, + 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, + 256, 525, 565, 566, 567, 569, 425, 287, 467, 91, + 574, 403, 623, 624, 343, 0, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 103, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, - 2572, 0, 0, 2571, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 2501, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 101, 0, 1683, 0, 553, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 1907, - 553, 205, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 2499, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 100, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 1726, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 1728, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 1408, 0, 1409, 1410, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 1749, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 0, 0, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 1747, 553, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 0, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 3396, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, - 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, - 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 101, 0, 0, 0, 553, 205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 0, 0, 0, 0, 392, 1171, 357, 208, - 237, 1169, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 2501, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 2572, 0, 0, 2571, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 1907, 553, 205, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 0, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, + 4375, 4376, 4377, 0, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 0, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 1683, 0, - 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 101, 0, 0, 0, 553, 205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 3925, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 2572, 0, 0, 2571, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 2501, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 1907, 553, 205, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 2260, 553, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 679, 0, 0, 0, 0, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 2499, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 3053, - 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 1749, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3054, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 1747, 553, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 0, 553, 795, 0, 0, 0, - 0, 3020, 0, 0, 0, 0, 253, 0, 0, 260, - 3021, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 0, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, + 0, 0, 0, 0, 0, 0, 0, 1165, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 0, 0, 0, 0, 392, 1171, + 357, 208, 237, 1169, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 2501, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, - 553, 785, 786, 787, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 1907, 553, 205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 0, 553, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 1683, 0, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 4365, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 679, 0, 0, 0, 3941, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, - 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 2260, 553, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 4281, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 3059, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 0, 0, 0, 1907, 553, 205, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 0, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 574, 0, 403, 623, 624, 343, 0, - 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 291, 0, 0, 0, 0, 0, 393, - 288, 0, 0, 215, 547, 0, 464, 0, 214, 0, - 527, 273, 404, 401, 632, 304, 294, 290, 269, 344, - 414, 461, 564, 455, 0, 397, 0, 668, 538, 432, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 0, 553, 795, 0, + 0, 0, 0, 3026, 0, 0, 0, 0, 253, 0, + 0, 260, 3027, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 350, 267, - 352, 213, 446, 539, 309, 0, 0, 0, 0, 0, - 553, 795, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 253, 0, 0, 260, 0, 0, 0, 378, 387, - 386, 366, 367, 369, 371, 377, 384, 390, 363, 372, - 0, 0, 658, 0, 0, 0, 286, 348, 293, 285, - 629, 0, 0, 0, 0, 0, 0, 645, 0, 0, - 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, - 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, - 0, 0, 3925, 0, 0, 0, 392, 0, 357, 208, - 237, 0, 0, 445, 498, 513, 0, 0, 0, 0, - 274, 0, 509, 459, 653, 247, 307, 495, 466, 507, - 474, 310, 0, 0, 508, 399, 634, 486, 650, 680, - 681, 284, 439, 664, 568, 673, 698, 238, 281, 453, - 552, 656, 535, 427, 630, 631, 356, 534, 318, 212, - 396, 686, 236, 519, 398, 257, 245, 636, 661, 322, - 272, 312, 493, 0, 266, 693, 224, 563, 647, 254, - 523, 0, 0, 701, 262, 546, 659, 648, 226, 643, - 545, 423, 353, 354, 225, 0, 494, 289, 316, 0, - 0, 279, 448, 638, 639, 277, 702, 241, 672, 232, - 0, 671, 441, 633, 644, 424, 411, 231, 642, 422, - 410, 361, 382, 383, 301, 331, 483, 402, 484, 330, - 332, 435, 434, 436, 218, 657, 676, 0, 219, 0, - 540, 660, 703, 488, 223, 227, 248, 249, 252, 0, - 300, 303, 305, 306, 314, 317, 327, 328, 337, 339, - 394, 408, 415, 437, 452, 482, 476, 487, 478, 479, - 504, 510, 511, 0, 543, 627, 651, 665, 678, 684, - 685, 687, 688, 689, 690, 691, 694, 692, 440, 336, - 536, 360, 400, 0, 0, 458, 512, 255, 655, 537, - 244, 621, 428, 438, 263, 265, 264, 239, 528, 626, - 250, 271, 210, 0, 0, 0, 0, 275, 276, 0, - 622, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 699, 554, - 560, 555, 556, 557, 558, 559, 0, 561, 0, 0, - 0, 0, 0, 429, 0, 640, 641, 722, 412, 526, - 652, 362, 376, 379, 368, 388, 0, 389, 364, 365, - 370, 373, 374, 375, 380, 381, 385, 391, 268, 221, - 420, 430, 625, 338, 228, 229, 230, 570, 571, 572, - 573, 669, 670, 674, 216, 499, 500, 501, 502, 315, - 663, 333, 506, 505, 358, 359, 406, 485, 586, 588, - 599, 603, 605, 607, 613, 616, 587, 589, 600, 604, - 606, 608, 614, 617, 576, 578, 580, 582, 595, 594, - 591, 619, 620, 597, 602, 581, 593, 598, 611, 618, - 615, 575, 579, 583, 592, 610, 609, 590, 601, 612, - 596, 584, 577, 585, 0, 207, 233, 395, 0, 491, - 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 0, 553, 785, 786, 787, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 211, 220, 234, 246, 251, 258, 282, 297, 299, - 308, 321, 334, 335, 345, 346, 349, 355, 407, 416, - 417, 418, 419, 442, 443, 444, 447, 450, 451, 454, - 456, 457, 460, 465, 469, 470, 471, 473, 475, 477, - 492, 497, 514, 515, 516, 517, 518, 521, 522, 529, - 530, 531, 532, 533, 541, 542, 548, 549, 550, 551, - 562, 635, 637, 654, 675, 682, 520, 413, 463, 489, - 628, 0, 0, 324, 325, 480, 481, 340, 341, 696, - 697, 323, 649, 683, 646, 695, 677, 472, 405, 0, - 0, 409, 302, 329, 347, 0, 666, 544, 240, 503, - 313, 270, 0, 0, 222, 261, 243, 280, 295, 298, - 351, 421, 431, 462, 468, 319, 292, 259, 496, 256, - 525, 565, 566, 567, 569, 425, 287, 467, 574, 0, - 403, 623, 624, 343, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 291, 0, - 0, 0, 0, 0, 393, 288, 0, 0, 215, 547, - 0, 464, 0, 214, 0, 527, 273, 404, 401, 632, - 304, 294, 290, 269, 344, 414, 461, 564, 455, 0, - 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 267, 352, 213, 446, 539, 309, - 0, 101, 0, 0, 0, 553, 795, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 253, 0, 0, 260, - 0, 0, 0, 378, 387, 386, 366, 367, 369, 371, - 377, 384, 390, 363, 372, 0, 0, 658, 0, 0, - 0, 286, 348, 293, 285, 629, 0, 0, 0, 0, - 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 0, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 320, 0, 433, 278, 0, 490, - 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, - 0, 392, 0, 357, 208, 237, 0, 0, 445, 498, - 513, 0, 0, 0, 0, 274, 0, 509, 459, 653, - 247, 307, 495, 466, 507, 474, 310, 0, 0, 508, - 399, 634, 486, 650, 680, 681, 284, 439, 664, 568, - 673, 698, 238, 281, 453, 552, 656, 535, 427, 630, - 631, 356, 534, 318, 212, 396, 686, 236, 519, 398, - 257, 245, 636, 661, 322, 272, 312, 493, 0, 266, - 693, 224, 563, 647, 254, 523, 0, 0, 701, 262, - 546, 659, 648, 226, 643, 545, 423, 353, 354, 225, - 0, 494, 289, 316, 0, 0, 279, 448, 638, 639, - 277, 702, 241, 672, 232, 0, 671, 441, 633, 644, - 424, 411, 231, 642, 422, 410, 361, 382, 383, 301, - 331, 483, 402, 484, 330, 332, 435, 434, 436, 218, - 657, 676, 0, 219, 0, 540, 660, 703, 488, 223, - 227, 248, 249, 252, 0, 300, 303, 305, 306, 314, - 317, 327, 328, 337, 339, 394, 408, 415, 437, 452, - 482, 476, 487, 478, 479, 504, 510, 511, 0, 543, - 627, 651, 665, 678, 684, 685, 687, 688, 689, 690, - 691, 694, 692, 440, 336, 536, 360, 400, 0, 0, - 458, 512, 255, 655, 537, 244, 621, 428, 438, 263, - 265, 264, 239, 528, 626, 250, 271, 210, 0, 0, - 0, 0, 275, 276, 0, 622, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 699, 554, 560, 555, 556, 557, 558, - 559, 0, 561, 0, 0, 0, 0, 0, 429, 0, - 640, 641, 722, 412, 526, 652, 362, 376, 379, 368, - 388, 0, 389, 364, 365, 370, 373, 374, 375, 380, - 381, 385, 391, 268, 221, 420, 430, 625, 338, 228, - 229, 230, 570, 571, 572, 573, 669, 670, 674, 216, - 499, 500, 501, 502, 315, 663, 333, 506, 505, 358, - 359, 406, 485, 586, 588, 599, 603, 605, 607, 613, - 616, 587, 589, 600, 604, 606, 608, 614, 617, 576, - 578, 580, 582, 595, 594, 591, 619, 620, 597, 602, - 581, 593, 598, 611, 618, 615, 575, 579, 583, 592, - 610, 609, 590, 601, 612, 596, 584, 577, 585, 0, - 207, 233, 395, 0, 491, 311, 700, 667, 524, 662, - 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 211, 220, 234, 246, - 251, 258, 282, 297, 299, 308, 321, 334, 335, 345, - 346, 349, 355, 407, 416, 417, 418, 419, 442, 443, - 444, 447, 450, 451, 454, 456, 457, 460, 465, 469, - 470, 471, 473, 475, 477, 492, 497, 514, 515, 516, - 517, 518, 521, 522, 529, 530, 531, 532, 533, 541, - 542, 548, 549, 550, 551, 562, 635, 637, 654, 675, - 682, 520, 413, 463, 489, 628, 0, 0, 324, 325, - 480, 481, 340, 341, 696, 697, 323, 649, 683, 646, - 695, 677, 472, 405, 0, 0, 409, 302, 329, 347, - 0, 666, 544, 240, 503, 313, 270, 0, 0, 222, - 261, 243, 280, 295, 298, 351, 421, 431, 462, 468, - 319, 292, 259, 496, 256, 525, 565, 566, 567, 569, - 425, 287, 467, 0, 574, 403, 623, 624, 343, 2573, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 205, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 0, 553, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 4381, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 0, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 1728, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 4297, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 205, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 0, 0, 0, 1907, 553, 205, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 2207, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 2198, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 574, 0, 403, 623, 624, + 343, 0, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, + 0, 393, 288, 0, 0, 215, 547, 0, 464, 0, + 214, 0, 527, 273, 404, 401, 632, 304, 294, 290, + 269, 344, 414, 461, 564, 455, 0, 397, 0, 668, + 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 350, 267, 352, 213, 446, 539, 309, 0, 0, 0, + 0, 0, 553, 795, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 253, 0, 0, 260, 0, 0, 0, + 378, 387, 386, 366, 367, 369, 371, 377, 384, 390, + 363, 372, 0, 0, 658, 0, 0, 0, 286, 348, + 293, 285, 629, 0, 0, 0, 0, 0, 0, 645, + 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 1874, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 679, 0, 0, 0, 3941, 0, 0, 0, 392, 0, + 357, 208, 237, 0, 0, 445, 498, 513, 0, 0, + 0, 0, 274, 0, 509, 459, 653, 247, 307, 495, + 466, 507, 474, 310, 0, 0, 508, 399, 634, 486, + 650, 680, 681, 284, 439, 664, 568, 673, 698, 238, + 281, 453, 552, 656, 535, 427, 630, 631, 356, 534, + 318, 212, 396, 686, 236, 519, 398, 257, 245, 636, + 661, 322, 272, 312, 493, 0, 266, 693, 224, 563, + 647, 254, 523, 0, 0, 701, 262, 546, 659, 648, + 226, 643, 545, 423, 353, 354, 225, 0, 494, 289, + 316, 0, 0, 279, 448, 638, 639, 277, 702, 241, + 672, 232, 0, 671, 441, 633, 644, 424, 411, 231, + 642, 422, 410, 361, 382, 383, 301, 331, 483, 402, + 484, 330, 332, 435, 434, 436, 218, 657, 676, 0, + 219, 0, 540, 660, 703, 488, 223, 227, 248, 249, + 252, 0, 300, 303, 305, 306, 314, 317, 327, 328, + 337, 339, 394, 408, 415, 437, 452, 482, 476, 487, + 478, 479, 504, 510, 511, 0, 543, 627, 651, 665, + 678, 684, 685, 687, 688, 689, 690, 691, 694, 692, + 440, 336, 536, 360, 400, 0, 0, 458, 512, 255, + 655, 537, 244, 621, 428, 438, 263, 265, 264, 239, + 528, 626, 250, 271, 210, 0, 0, 0, 0, 275, + 276, 0, 622, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 699, 554, 560, 555, 556, 557, 558, 559, 0, 561, + 0, 0, 0, 0, 0, 429, 0, 640, 641, 722, + 412, 526, 652, 362, 376, 379, 368, 388, 0, 389, + 364, 365, 370, 373, 374, 375, 380, 381, 385, 391, + 268, 221, 420, 430, 625, 338, 228, 229, 230, 570, + 571, 572, 573, 669, 670, 674, 216, 499, 500, 501, + 502, 315, 663, 333, 506, 505, 358, 359, 406, 485, + 586, 588, 599, 603, 605, 607, 613, 616, 587, 589, + 600, 604, 606, 608, 614, 617, 576, 578, 580, 582, + 595, 594, 591, 619, 620, 597, 602, 581, 593, 598, + 611, 618, 615, 575, 579, 583, 592, 610, 609, 590, + 601, 612, 596, 584, 577, 585, 0, 207, 233, 395, + 0, 491, 311, 700, 667, 524, 662, 217, 235, 0, + 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 211, 220, 234, 246, 251, 258, 282, + 297, 299, 308, 321, 334, 335, 345, 346, 349, 355, + 407, 416, 417, 418, 419, 442, 443, 444, 447, 450, + 451, 454, 456, 457, 460, 465, 469, 470, 471, 473, + 475, 477, 492, 497, 514, 515, 516, 517, 518, 521, + 522, 529, 530, 531, 532, 533, 541, 542, 548, 549, + 550, 551, 562, 635, 637, 654, 675, 682, 520, 413, + 463, 489, 628, 0, 0, 324, 325, 480, 481, 340, + 341, 696, 697, 323, 649, 683, 646, 695, 677, 472, + 405, 0, 0, 409, 302, 329, 347, 0, 666, 544, + 240, 503, 313, 270, 0, 0, 222, 261, 243, 280, + 295, 298, 351, 421, 431, 462, 468, 319, 292, 259, + 496, 256, 525, 565, 566, 567, 569, 425, 287, 467, + 574, 0, 403, 623, 624, 343, 0, 0, 0, 0, + 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, + 291, 0, 0, 0, 0, 0, 393, 288, 0, 0, + 215, 547, 0, 464, 0, 214, 0, 527, 273, 404, + 401, 632, 304, 294, 290, 269, 344, 414, 461, 564, + 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 267, 352, 213, 446, + 539, 309, 0, 101, 0, 0, 0, 553, 795, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 0, + 0, 260, 0, 0, 0, 378, 387, 386, 366, 367, + 369, 371, 377, 384, 390, 363, 372, 0, 0, 658, + 0, 0, 0, 286, 348, 293, 285, 629, 0, 0, + 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 1872, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 433, 278, + 0, 490, 0, 326, 342, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, + 0, 0, 0, 392, 0, 357, 208, 237, 0, 0, + 445, 498, 513, 0, 0, 0, 0, 274, 0, 509, + 459, 653, 247, 307, 495, 466, 507, 474, 310, 0, + 0, 508, 399, 634, 486, 650, 680, 681, 284, 439, + 664, 568, 673, 698, 238, 281, 453, 552, 656, 535, + 427, 630, 631, 356, 534, 318, 212, 396, 686, 236, + 519, 398, 257, 245, 636, 661, 322, 272, 312, 493, + 0, 266, 693, 224, 563, 647, 254, 523, 0, 0, + 701, 262, 546, 659, 648, 226, 643, 545, 423, 353, + 354, 225, 0, 494, 289, 316, 0, 0, 279, 448, + 638, 639, 277, 702, 241, 672, 232, 0, 671, 441, + 633, 644, 424, 411, 231, 642, 422, 410, 361, 382, + 383, 301, 331, 483, 402, 484, 330, 332, 435, 434, + 436, 218, 657, 676, 0, 219, 0, 540, 660, 703, + 488, 223, 227, 248, 249, 252, 0, 300, 303, 305, + 306, 314, 317, 327, 328, 337, 339, 394, 408, 415, + 437, 452, 482, 476, 487, 478, 479, 504, 510, 511, + 0, 543, 627, 651, 665, 678, 684, 685, 687, 688, + 689, 690, 691, 694, 692, 440, 336, 536, 360, 400, + 0, 0, 458, 512, 255, 655, 537, 244, 621, 428, + 438, 263, 265, 264, 239, 528, 626, 250, 271, 210, + 0, 0, 0, 0, 275, 276, 0, 622, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 699, 554, 560, 555, 556, + 557, 558, 559, 0, 561, 0, 0, 0, 0, 0, + 429, 0, 640, 641, 722, 412, 526, 652, 362, 376, + 379, 368, 388, 0, 389, 364, 365, 370, 373, 374, + 375, 380, 381, 385, 391, 268, 221, 420, 430, 625, + 338, 228, 229, 230, 570, 571, 572, 573, 669, 670, + 674, 216, 499, 500, 501, 502, 315, 663, 333, 506, + 505, 358, 359, 406, 485, 586, 588, 599, 603, 605, + 607, 613, 616, 587, 589, 600, 604, 606, 608, 614, + 617, 576, 578, 580, 582, 595, 594, 591, 619, 620, + 597, 602, 581, 593, 598, 611, 618, 615, 575, 579, + 583, 592, 610, 609, 590, 601, 612, 596, 584, 577, + 585, 0, 207, 233, 395, 0, 491, 311, 700, 667, + 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 211, 220, + 234, 246, 251, 258, 282, 297, 299, 308, 321, 334, + 335, 345, 346, 349, 355, 407, 416, 417, 418, 419, + 442, 443, 444, 447, 450, 451, 454, 456, 457, 460, + 465, 469, 470, 471, 473, 475, 477, 492, 497, 514, + 515, 516, 517, 518, 521, 522, 529, 530, 531, 532, + 533, 541, 542, 548, 549, 550, 551, 562, 635, 637, + 654, 675, 682, 520, 413, 463, 489, 628, 0, 0, + 324, 325, 480, 481, 340, 341, 696, 697, 323, 649, + 683, 646, 695, 677, 472, 405, 0, 0, 409, 302, + 329, 347, 0, 666, 544, 240, 503, 313, 270, 0, + 0, 222, 261, 243, 280, 295, 298, 351, 421, 431, + 462, 468, 319, 292, 259, 496, 256, 525, 565, 566, + 567, 569, 425, 287, 467, 0, 574, 403, 623, 624, + 343, 2573, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 1870, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 1728, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 1868, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 2207, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 2198, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 1874, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 1872, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 1870, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 1866, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 1868, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 1862, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 1866, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 1860, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 1862, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 1858, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 1860, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 1833, 0, 0, - 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 1858, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 1733, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 205, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 1833, + 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 101, 0, 0, - 0, 553, 1019, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 1733, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 205, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 205, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 101, + 0, 0, 0, 553, 1019, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1385, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 1384, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 205, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 205, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1112, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1385, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 1384, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 205, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 205, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1112, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 205, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 725, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 795, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 725, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 795, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 4372, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 795, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 4388, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 795, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 574, 0, 403, 623, 624, 343, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, - 393, 288, 0, 0, 215, 547, 0, 464, 0, 214, - 0, 527, 273, 404, 401, 632, 304, 294, 290, 269, - 344, 414, 461, 564, 455, 0, 397, 0, 668, 538, - 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 350, - 267, 352, 213, 446, 539, 309, 0, 0, 0, 0, - 0, 553, 1019, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 0, 0, 260, 0, 0, 0, 378, - 387, 386, 366, 367, 369, 371, 377, 384, 390, 363, - 372, 0, 0, 658, 0, 0, 0, 286, 348, 293, - 285, 629, 0, 0, 0, 0, 0, 0, 645, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 574, 0, 403, 623, + 624, 343, 0, 0, 0, 0, 0, 0, 449, 0, + 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, + 0, 0, 393, 288, 0, 0, 215, 547, 0, 464, + 0, 214, 0, 527, 273, 404, 401, 632, 304, 294, + 290, 269, 344, 414, 461, 564, 455, 0, 397, 0, + 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 350, 267, 352, 213, 446, 539, 309, 0, 0, + 0, 0, 0, 553, 1019, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 253, 0, 0, 260, 0, 0, + 0, 378, 387, 386, 366, 367, 369, 371, 377, 384, + 390, 363, 372, 0, 0, 658, 0, 0, 0, 286, + 348, 293, 285, 629, 0, 0, 0, 0, 0, 0, + 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 320, 0, 433, 278, 0, 490, 0, 326, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, - 0, 0, 0, 0, 0, 0, 0, 392, 0, 357, - 208, 237, 0, 0, 445, 498, 513, 0, 0, 0, - 0, 274, 0, 509, 459, 653, 247, 307, 495, 466, - 507, 474, 310, 0, 0, 508, 399, 634, 486, 650, - 680, 681, 284, 439, 664, 568, 673, 698, 238, 281, - 453, 552, 656, 535, 427, 630, 631, 356, 534, 318, - 212, 396, 686, 236, 519, 398, 257, 245, 636, 661, - 322, 272, 312, 493, 0, 266, 693, 224, 563, 647, - 254, 523, 0, 0, 701, 262, 546, 659, 648, 226, - 643, 545, 423, 353, 354, 225, 0, 494, 289, 316, - 0, 0, 279, 448, 638, 639, 277, 702, 241, 672, - 232, 0, 671, 441, 633, 644, 424, 411, 231, 642, - 422, 410, 361, 382, 383, 301, 331, 483, 402, 484, - 330, 332, 435, 434, 436, 218, 657, 676, 0, 219, - 0, 540, 660, 703, 488, 223, 227, 248, 249, 252, - 0, 300, 303, 305, 306, 314, 317, 327, 328, 337, - 339, 394, 408, 415, 437, 452, 482, 476, 487, 478, - 479, 504, 510, 511, 0, 543, 627, 651, 665, 678, - 684, 685, 687, 688, 689, 690, 691, 694, 692, 440, - 336, 536, 360, 400, 0, 0, 458, 512, 255, 655, - 537, 244, 621, 428, 438, 263, 265, 264, 239, 528, - 626, 250, 271, 210, 0, 0, 0, 0, 275, 276, - 0, 622, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 699, - 554, 560, 555, 556, 557, 558, 559, 0, 561, 0, - 0, 0, 0, 0, 429, 0, 640, 641, 722, 412, - 526, 652, 362, 376, 379, 368, 388, 0, 389, 364, - 365, 370, 373, 374, 375, 380, 381, 385, 391, 268, - 221, 420, 430, 625, 338, 228, 229, 230, 570, 571, - 572, 573, 669, 670, 674, 216, 499, 500, 501, 502, - 315, 663, 333, 506, 505, 358, 359, 406, 485, 586, - 588, 599, 603, 605, 607, 613, 616, 587, 589, 600, - 604, 606, 608, 614, 617, 576, 578, 580, 582, 595, - 594, 591, 619, 620, 597, 602, 581, 593, 598, 611, - 618, 615, 575, 579, 583, 592, 610, 609, 590, 601, - 612, 596, 584, 577, 585, 0, 207, 233, 395, 0, - 491, 311, 700, 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 209, 211, 220, 234, 246, 251, 258, 282, 297, - 299, 308, 321, 334, 335, 345, 346, 349, 355, 407, - 416, 417, 418, 419, 442, 443, 444, 447, 450, 451, - 454, 456, 457, 460, 465, 469, 470, 471, 473, 475, - 477, 492, 497, 514, 515, 516, 517, 518, 521, 522, - 529, 530, 531, 532, 533, 541, 542, 548, 549, 550, - 551, 562, 635, 637, 654, 675, 682, 520, 413, 463, - 489, 628, 0, 0, 324, 325, 480, 481, 340, 341, - 696, 697, 323, 649, 683, 646, 695, 677, 472, 405, - 0, 0, 409, 302, 329, 347, 0, 666, 544, 240, - 503, 313, 270, 0, 0, 222, 261, 243, 280, 295, - 298, 351, 421, 431, 462, 468, 319, 292, 259, 496, - 256, 525, 565, 566, 567, 569, 425, 287, 467, 574, - 0, 403, 623, 624, 343, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 291, - 0, 0, 0, 0, 0, 393, 288, 0, 0, 215, - 547, 0, 464, 0, 214, 0, 527, 273, 404, 401, - 632, 304, 294, 290, 269, 344, 414, 461, 564, 455, - 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, + 0, 0, 320, 0, 433, 278, 0, 490, 0, 326, + 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 679, 0, 0, 0, 0, 0, 0, 0, 392, + 0, 357, 208, 237, 0, 0, 445, 498, 513, 0, + 0, 0, 0, 274, 0, 509, 459, 653, 247, 307, + 495, 466, 507, 474, 310, 0, 0, 508, 399, 634, + 486, 650, 680, 681, 284, 439, 664, 568, 673, 698, + 238, 281, 453, 552, 656, 535, 427, 630, 631, 356, + 534, 318, 212, 396, 686, 236, 519, 398, 257, 245, + 636, 661, 322, 272, 312, 493, 0, 266, 693, 224, + 563, 647, 254, 523, 0, 0, 701, 262, 546, 659, + 648, 226, 643, 545, 423, 353, 354, 225, 0, 494, + 289, 316, 0, 0, 279, 448, 638, 639, 277, 702, + 241, 672, 232, 0, 671, 441, 633, 644, 424, 411, + 231, 642, 422, 410, 361, 382, 383, 301, 331, 483, + 402, 484, 330, 332, 435, 434, 436, 218, 657, 676, + 0, 219, 0, 540, 660, 703, 488, 223, 227, 248, + 249, 252, 0, 300, 303, 305, 306, 314, 317, 327, + 328, 337, 339, 394, 408, 415, 437, 452, 482, 476, + 487, 478, 479, 504, 510, 511, 0, 543, 627, 651, + 665, 678, 684, 685, 687, 688, 689, 690, 691, 694, + 692, 440, 336, 536, 360, 400, 0, 0, 458, 512, + 255, 655, 537, 244, 621, 428, 438, 263, 265, 264, + 239, 528, 626, 250, 271, 210, 0, 0, 0, 0, + 275, 276, 0, 622, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 699, 554, 560, 555, 556, 557, 558, 559, 0, + 561, 0, 0, 0, 0, 0, 429, 0, 640, 641, + 722, 412, 526, 652, 362, 376, 379, 368, 388, 0, + 389, 364, 365, 370, 373, 374, 375, 380, 381, 385, + 391, 268, 221, 420, 430, 625, 338, 228, 229, 230, + 570, 571, 572, 573, 669, 670, 674, 216, 499, 500, + 501, 502, 315, 663, 333, 506, 505, 358, 359, 406, + 485, 586, 588, 599, 603, 605, 607, 613, 616, 587, + 589, 600, 604, 606, 608, 614, 617, 576, 578, 580, + 582, 595, 594, 591, 619, 620, 597, 602, 581, 593, + 598, 611, 618, 615, 575, 579, 583, 592, 610, 609, + 590, 601, 612, 596, 584, 577, 585, 0, 207, 233, + 395, 0, 491, 311, 700, 667, 524, 662, 217, 235, + 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 267, 352, 213, 446, 539, - 309, 0, 0, 0, 0, 0, 553, 205, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 253, 0, 0, - 260, 0, 0, 0, 378, 387, 386, 366, 367, 369, - 371, 377, 384, 390, 363, 372, 0, 0, 658, 0, - 0, 0, 286, 348, 293, 285, 629, 0, 0, 0, - 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, + 0, 0, 0, 209, 211, 220, 234, 246, 251, 258, + 282, 297, 299, 308, 321, 334, 335, 345, 346, 349, + 355, 407, 416, 417, 418, 419, 442, 443, 444, 447, + 450, 451, 454, 456, 457, 460, 465, 469, 470, 471, + 473, 475, 477, 492, 497, 514, 515, 516, 517, 518, + 521, 522, 529, 530, 531, 532, 533, 541, 542, 548, + 549, 550, 551, 562, 635, 637, 654, 675, 682, 520, + 413, 463, 489, 628, 0, 0, 324, 325, 480, 481, + 340, 341, 696, 697, 323, 649, 683, 646, 695, 677, + 472, 405, 0, 0, 409, 302, 329, 347, 0, 666, + 544, 240, 503, 313, 270, 0, 0, 222, 261, 243, + 280, 295, 298, 351, 421, 431, 462, 468, 319, 292, + 259, 496, 256, 525, 565, 566, 567, 569, 425, 287, + 467, 574, 0, 403, 623, 624, 343, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, + 0, 291, 0, 0, 0, 0, 0, 393, 288, 0, + 0, 215, 547, 0, 464, 0, 214, 0, 527, 273, + 404, 401, 632, 304, 294, 290, 269, 344, 414, 461, + 564, 455, 0, 397, 0, 668, 538, 432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 350, 267, 352, 213, + 446, 539, 309, 0, 0, 0, 0, 0, 553, 205, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, + 0, 0, 260, 0, 0, 0, 378, 387, 386, 366, + 367, 369, 371, 377, 384, 390, 363, 372, 0, 0, + 658, 0, 0, 0, 286, 348, 293, 285, 629, 0, + 0, 0, 0, 0, 0, 645, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 320, 0, 433, 278, 0, - 490, 0, 326, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, - 0, 0, 392, 0, 357, 208, 237, 0, 0, 445, - 498, 513, 0, 0, 0, 0, 274, 0, 509, 459, - 653, 247, 307, 495, 466, 507, 474, 310, 0, 0, - 508, 399, 634, 486, 650, 680, 681, 284, 439, 664, - 568, 673, 698, 238, 281, 453, 552, 656, 535, 427, - 630, 631, 356, 534, 318, 212, 396, 686, 236, 519, - 398, 257, 245, 636, 661, 322, 272, 312, 493, 0, - 266, 693, 224, 563, 647, 254, 523, 0, 0, 701, - 262, 546, 659, 648, 226, 643, 545, 423, 353, 354, - 225, 0, 494, 289, 316, 0, 0, 279, 448, 638, - 639, 277, 702, 241, 672, 232, 0, 671, 441, 633, - 644, 424, 411, 231, 642, 422, 410, 361, 382, 383, - 301, 331, 483, 402, 484, 330, 332, 435, 434, 436, - 218, 657, 676, 0, 219, 0, 540, 660, 703, 488, - 223, 227, 248, 249, 252, 0, 300, 303, 305, 306, - 314, 317, 327, 328, 337, 339, 394, 408, 415, 437, - 452, 482, 476, 487, 478, 479, 504, 510, 511, 0, - 543, 627, 651, 665, 678, 684, 685, 687, 688, 689, - 690, 691, 694, 692, 440, 336, 536, 360, 400, 0, - 0, 458, 512, 255, 655, 537, 244, 621, 428, 438, - 263, 265, 264, 239, 528, 626, 250, 271, 210, 0, - 0, 0, 0, 275, 276, 0, 622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 699, 554, 560, 555, 556, 557, - 558, 559, 0, 561, 0, 0, 0, 0, 0, 429, - 0, 640, 641, 722, 412, 526, 652, 362, 376, 379, - 368, 388, 0, 389, 364, 365, 370, 373, 374, 375, - 380, 381, 385, 391, 268, 221, 420, 430, 625, 338, - 228, 229, 230, 570, 571, 572, 573, 669, 670, 674, - 216, 499, 500, 501, 502, 315, 663, 333, 506, 505, - 358, 359, 406, 485, 586, 588, 599, 603, 605, 607, - 613, 616, 587, 589, 600, 604, 606, 608, 614, 617, - 576, 578, 580, 582, 595, 594, 591, 619, 620, 597, - 602, 581, 593, 598, 611, 618, 615, 575, 579, 583, - 592, 610, 609, 590, 601, 612, 596, 584, 577, 585, - 0, 207, 233, 395, 0, 491, 311, 700, 667, 524, - 662, 217, 235, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 209, 211, 220, 234, - 246, 251, 258, 282, 297, 299, 308, 321, 334, 335, - 345, 346, 349, 355, 407, 416, 417, 418, 419, 442, - 443, 444, 447, 450, 451, 454, 456, 457, 460, 465, - 469, 470, 471, 473, 475, 477, 492, 497, 514, 515, - 516, 517, 518, 521, 522, 529, 530, 531, 532, 533, - 541, 542, 548, 549, 550, 551, 562, 635, 637, 654, - 675, 682, 520, 413, 463, 489, 628, 0, 0, 324, - 325, 480, 481, 340, 341, 696, 697, 323, 649, 683, - 646, 695, 677, 472, 405, 0, 0, 409, 302, 329, - 347, 0, 666, 544, 240, 503, 313, 270, 0, 0, - 222, 261, 243, 280, 295, 298, 351, 421, 431, 462, - 468, 319, 292, 259, 496, 256, 525, 565, 566, 567, - 569, 425, 287, 467, 0, 0, 403, 623, 624, 343, + 0, 0, 0, 0, 0, 0, 0, 320, 0, 433, + 278, 0, 490, 0, 326, 342, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, + 0, 0, 0, 0, 392, 0, 357, 208, 237, 0, + 0, 445, 498, 513, 0, 0, 0, 0, 274, 0, + 509, 459, 653, 247, 307, 495, 466, 507, 474, 310, + 0, 0, 508, 399, 634, 486, 650, 680, 681, 284, + 439, 664, 568, 673, 698, 238, 281, 453, 552, 656, + 535, 427, 630, 631, 356, 534, 318, 212, 396, 686, + 236, 519, 398, 257, 245, 636, 661, 322, 272, 312, + 493, 0, 266, 693, 224, 563, 647, 254, 523, 0, + 0, 701, 262, 546, 659, 648, 226, 643, 545, 423, + 353, 354, 225, 0, 494, 289, 316, 0, 0, 279, + 448, 638, 639, 277, 702, 241, 672, 232, 0, 671, + 441, 633, 644, 424, 411, 231, 642, 422, 410, 361, + 382, 383, 301, 331, 483, 402, 484, 330, 332, 435, + 434, 436, 218, 657, 676, 0, 219, 0, 540, 660, + 703, 488, 223, 227, 248, 249, 252, 0, 300, 303, + 305, 306, 314, 317, 327, 328, 337, 339, 394, 408, + 415, 437, 452, 482, 476, 487, 478, 479, 504, 510, + 511, 0, 543, 627, 651, 665, 678, 684, 685, 687, + 688, 689, 690, 691, 694, 692, 440, 336, 536, 360, + 400, 0, 0, 458, 512, 255, 655, 537, 244, 621, + 428, 438, 263, 265, 264, 239, 528, 626, 250, 271, + 210, 0, 0, 0, 0, 275, 276, 0, 622, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 699, 554, 560, 555, + 556, 557, 558, 559, 0, 561, 0, 0, 0, 0, + 0, 429, 0, 640, 641, 722, 412, 526, 652, 362, + 376, 379, 368, 388, 0, 389, 364, 365, 370, 373, + 374, 375, 380, 381, 385, 391, 268, 221, 420, 430, + 625, 338, 228, 229, 230, 570, 571, 572, 573, 669, + 670, 674, 216, 499, 500, 501, 502, 315, 663, 333, + 506, 505, 358, 359, 406, 485, 586, 588, 599, 603, + 605, 607, 613, 616, 587, 589, 600, 604, 606, 608, + 614, 617, 576, 578, 580, 582, 595, 594, 591, 619, + 620, 597, 602, 581, 593, 598, 611, 618, 615, 575, + 579, 583, 592, 610, 609, 590, 601, 612, 596, 584, + 577, 585, 0, 207, 233, 395, 0, 491, 311, 700, + 667, 524, 662, 217, 235, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 211, + 220, 234, 246, 251, 258, 282, 297, 299, 308, 321, + 334, 335, 345, 346, 349, 355, 407, 416, 417, 418, + 419, 442, 443, 444, 447, 450, 451, 454, 456, 457, + 460, 465, 469, 470, 471, 473, 475, 477, 492, 497, + 514, 515, 516, 517, 518, 521, 522, 529, 530, 531, + 532, 533, 541, 542, 548, 549, 550, 551, 562, 635, + 637, 654, 675, 682, 520, 413, 463, 489, 628, 0, + 0, 324, 325, 480, 481, 340, 341, 696, 697, 323, + 649, 683, 646, 695, 677, 472, 405, 0, 0, 409, + 302, 329, 347, 0, 666, 544, 240, 503, 313, 270, + 0, 0, 222, 261, 243, 280, 295, 298, 351, 421, + 431, 462, 468, 319, 292, 259, 496, 256, 525, 565, + 566, 567, 569, 425, 287, 467, 0, 0, 403, 623, + 624, 343, } var yyPact = [...]int32{ - -1000, -1000, -576, -1000, 7579, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -573, -1000, 2242, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2741, 2996, -1000, -1000, -1000, + -1000, 2992, -1000, 522, -1000, 2456, 2368, 2752, 4673, -1000, + 63127, 860, -1000, 59987, -440, 992, 223, 41931, -1000, 221, + -1000, 197, 61557, 202, -1000, -1000, -1000, -1000, -440, 24629, + 2664, 38, 36, 63127, -1000, -1000, -1000, -1000, -356, 2948, + 2394, -1000, 455, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 59202, -1000, -1000, -1000, 1320, -1000, 2763, 2746, 2630, 1050, + 1825, -1000, 2848, 2394, -1000, 24629, 2910, 2702, 23838, 23047, + 506, -1000, -1000, 322, 166, -1000, 2787, 37221, 63127, -1000, + -1000, 45856, 2795, 61557, -1000, 2752, -1000, -1000, -1000, 218, + -1000, 413, 2350, -1000, 2343, -1000, 1121, 975, 444, 964, + 962, 443, 442, 440, 439, 436, 434, 433, 431, 452, + -1000, 1097, 1097, -241, -243, 1365, 502, 489, 489, 1199, + 520, 2703, 2689, -1000, -1000, 1097, 1097, 1097, 386, 1097, + 1097, 1097, 1097, 395, 392, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1019, 2752, 341, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 2737, 2969, -1000, -1000, -1000, - -1000, 2934, -1000, 493, -1000, 2369, 2293, 2707, 5470, -1000, - 62955, 841, -1000, 59815, -425, 972, 266, 41759, -1000, 189, - -1000, 174, 61385, 184, -1000, -1000, -1000, -1000, -425, 24457, - 2593, 40, 37, 62955, -1000, -1000, -1000, -1000, -390, 2846, - 2274, -1000, 417, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 59030, -1000, -1000, -1000, 1268, -1000, 2723, 2691, 2564, 1020, - 1765, -1000, 2744, 2274, -1000, 24457, 2844, 2663, 23666, 22875, - 507, -1000, -1000, 276, 171, -1000, 2745, 37049, 62955, -1000, - -1000, 45684, 2753, 61385, -1000, 2707, -1000, -1000, -1000, 219, - -1000, 440, 2267, -1000, 2265, -1000, 1095, 1187, 448, 919, - 918, 445, 444, 442, 441, 439, 438, 437, 429, 457, - -1000, 1071, 1071, -233, -238, 1374, 506, 502, 502, 1145, - 550, 2642, 2625, -1000, -1000, 1071, 1071, 1071, 389, 1071, - 1071, 1071, 1071, 413, 403, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 947, 2707, 277, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -8750,133 +8773,133 @@ var yyPact = [...]int32{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 63127, 217, 63127, -1000, 945, 858, -1000, + -1000, -444, 1258, 1258, 95, 1258, 1258, 1258, 1258, 196, + 1093, 31, -1000, 183, 317, 172, 384, 1228, 823, -1000, + -1000, 318, 1228, 2151, -1000, 1063, 375, 170, 2848, 1258, + 1258, -1000, -136, 374, 69, 68, 370, -23, -1000, 2848, + 1228, 1554, 73, 2842, 239, -1000, 346, 185, -1000, 2733, + -1000, -1000, -1000, -1000, 1550, -1000, -1000, -1000, -1000, -43, + 519, -1000, -1000, -1000, -1000, -1000, 61557, 58417, 290, -1000, + -1000, 299, 2064, 1612, 24629, 2939, 1038, -1000, -1000, 1482, + 1018, -1000, -1000, -1000, -1000, -1000, 907, -1000, 27002, 27002, + 27002, 27002, -1000, -1000, 2243, 57632, 2243, 2243, 27002, 2243, + 27002, 2243, 2243, 2243, 2243, 24629, 2243, 2243, 2243, 2243, + -1000, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + -1000, -1000, -1000, -1000, 2243, 944, 2243, 2243, 2243, 2243, + 2243, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2243, 2243, + 2243, 2243, 2243, 2243, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, -1000, -1000, -1000, + 2014, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1950, 1832, + 1801, 1799, -1000, 19883, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 62955, 284, 62955, -1000, 921, 839, -1000, - -1000, -451, 1184, 1184, 59, 1184, 1184, 1184, 1184, 188, - 1069, 30, -1000, 187, 278, 172, 368, 1176, 334, -1000, - -1000, 246, 1176, 2008, -1000, 1024, 341, 164, 2744, 1184, - 1184, -1000, -173, 333, 67, 65, 272, -51, -1000, 2744, - 1176, 1507, 69, 2803, 228, -1000, 267, 166, -1000, 2688, - -1000, -1000, -1000, -1000, 1528, -1000, -1000, -1000, -1000, -40, - 548, -1000, -1000, -1000, -1000, -1000, 61385, 58245, 324, -1000, - -1000, 331, 2017, 1267, 24457, 1592, 1012, -1000, -1000, 1782, - 975, -1000, -1000, -1000, -1000, -1000, 879, -1000, 26830, 26830, - 26830, 26830, -1000, -1000, 1767, 57460, 1767, 1767, 26830, 1767, - 26830, 1767, 1767, 1767, 1767, 24457, 1767, 1767, 1767, 1767, - -1000, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - -1000, -1000, -1000, -1000, 1767, 920, 1767, 1767, 1767, 1767, - 1767, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1767, 1767, - 1767, 1767, 1767, 1767, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, -1000, -1000, -1000, - 1802, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3008, 1685, - 1681, 1679, -1000, 19711, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2243, -1000, -1000, -1000, 63127, -1000, + 2243, 263, 61557, 61557, 448, 1539, -1000, -1000, 2848, 2394, + -1000, 2948, 2934, 455, -1000, 3713, 2006, 2416, 1688, 2394, + 1007, 2313, 63127, -1000, 2368, 228, -1000, -1000, -1000, -347, + -364, 2562, 1652, 2149, 2340, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1716, 24629, -1000, -1000, 2972, 2971, 32511, + 941, 2969, 2967, 56847, -1000, 506, 506, 2337, 446, 1, + -1000, -1000, -1000, -1000, 1123, 36436, -1000, -1000, -1000, -1000, + -1000, 2787, 455, -1000, 2210, 63127, -1000, -1000, 5318, 61557, + -1000, 2450, -1000, 2179, -1000, 2402, 24629, 455, 2166, -1000, + -1000, -1000, -1000, 1097, 1097, 1097, -1000, 451, 2909, 4673, + 6125, -1000, -1000, -1000, 56062, 2448, 61557, -1000, 2445, -1000, + 1238, 977, 956, 956, 61557, -1000, -1000, 62342, 61557, 1222, + 1214, 61557, 61557, 61557, 61557, -1000, 55277, -1000, 54492, 53707, + 1537, 61557, 52922, 52137, 51352, 50567, 49782, -1000, 2646, -1000, + 2411, -1000, -1000, -1000, 62342, 61557, 61557, 62342, 61557, 62342, + 63127, 61557, -1000, -1000, 371, -1000, -1000, 1533, 1530, 1528, + 1097, 1097, 1527, 2144, 2140, 2138, 1097, 1097, 1525, 2137, + 44286, 2136, 362, 1524, 1516, 1510, 1457, 2127, 266, 2118, + 1454, 1428, 1508, 61557, 2444, 63127, -1000, 298, 1134, 1083, + -1000, -1000, -1000, 1113, 2752, 2663, 2331, 518, 847, 61557, + 503, 503, 503, 61557, -1000, -1000, 15923, 63127, 238, -1000, + 2114, 24629, -1000, 1299, 1228, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1258, 63127, 1299, -1000, -1000, -1000, 1228, 1258, + 63127, 1258, 1258, 1258, 1258, 1228, 1228, 1228, 1258, 63127, + 63127, 63127, 63127, 63127, 63127, 63127, 63127, 63127, 345, 1063, + 1258, -449, -1000, 2068, -1000, -1000, -1000, 2552, -1000, -1000, + -1000, -1000, 321, -1000, 1046, 1046, 2806, 2806, -1000, -1000, + 1258, 176, -1000, -1000, 345, 2830, 2330, -1000, -1000, -1000, + 1554, 2820, 2819, -1000, -1000, -1000, 2328, -1000, 191, -4, + 201, -1000, 48997, 560, 1112, -1000, 560, -1000, -1000, -1000, + -1000, -1000, 2320, 48212, -1000, -450, -451, -452, -456, -1000, + -1000, -1000, -458, -462, -1000, -1000, -1000, 24629, 24629, 24629, + 24629, -278, 1036, 1720, 27002, 2850, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 24629, 1374, 1514, 27002, 27002, 27002, 27002, + 27002, 27002, 27002, 28584, 27793, 27002, 27002, 27002, 27002, 27002, + 27002, -1000, -1000, 39576, 6652, 6652, 1018, 1018, 1018, 1018, + -1000, -203, 2319, 62342, -1000, -1000, -1000, 936, 24629, 24629, + 1018, -1000, 1554, 3204, 19883, 24629, 24629, 24629, 24629, 1153, + 1612, 62342, 24629, -1000, 1688, -1000, -1000, -1000, -1000, 1347, + -1000, -1000, 1192, 2704, 2704, 2704, 2704, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 2704, 24629, 200, + 200, 305, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 18300, 24629, 24629, 27002, 24629, 24629, 24629, 1688, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 1688, 24629, 1647, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 17509, 24629, 24629, + 24629, 24629, 24629, -1000, -1000, -1000, -1000, -1000, -1000, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, 24629, 1688, 24629, 24629, + 24629, 24629, 24629, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 2021, 1831, 1645, 2243, 24629, -1000, 2314, + -1000, -167, 35651, 24629, 2063, 2964, 2480, 61557, -1000, -1000, + -1000, -1000, 2848, -1000, 2848, 2021, 3624, 2586, 22256, -1000, + -1000, 3624, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2190, -1000, 303, 846, 2446, + 298, 61557, 536, 535, 534, 494, -1000, -93, 1108, 63127, + 2313, 2791, -1000, 2312, -1000, -1000, 2243, -1000, -314, -1000, + -316, 2570, 2055, 379, -1000, 1546, 24629, 24629, 2310, -1000, + 2058, 63127, 63127, -1000, -278, -1000, 47427, -1000, -1000, 15130, + 63127, 63127, 428, 63127, -1000, 34866, 46642, 313, -1000, 1, + 2293, -1000, -9, -6, 19091, 1011, -1000, -1000, -1000, -1000, + 455, -1000, 1365, 29369, 2234, 1011, 115, -1000, -1000, -1000, + 2402, -1000, 2402, 2402, 2402, 2402, 2402, 379, 379, 379, + 2402, -1000, -1000, -1000, -1000, 2436, 2402, 2430, -1000, 2402, + 2402, 2402, 2402, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2428, 2428, 2428, 2427, 2427, 2405, 2405, 478, -1000, 24629, + 435, 45856, 2760, 1503, 1607, -211, -1000, 61557, 1784, 1741, + 1692, -1000, -562, 2307, -1000, -1000, 2908, -1000, -1000, 1162, + 1267, 1265, 1016, 61557, 277, 426, -1000, 479, -1000, 45856, + 61557, 1213, 956, 61557, -1000, 61557, -1000, -1000, -1000, -1000, + -1000, 61557, -1000, -1000, 2302, -1000, 2282, 1317, 1257, 1283, + 1253, 2302, -1000, -1000, -208, 2302, -1000, 2302, -1000, 2302, + -1000, 2302, -1000, 2302, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1128, 320, -352, 61557, 277, 517, -1000, + 516, 39576, -1000, -1000, -1000, 39576, 39576, -1000, -1000, -1000, + -1000, 2054, 2053, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1767, -1000, -1000, -1000, 62955, -1000, - 1767, 222, 61385, 61385, 453, 1495, -1000, -1000, 2744, 2274, - -1000, 2846, 2834, 417, -1000, 4109, 2424, 2015, 1570, 2274, - 1027, 2230, 62955, -1000, 2293, 209, -1000, -1000, -1000, -343, - -350, 2513, 1643, 1976, 2264, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 2196, 24457, -1000, -1000, 2913, 2909, 32339, - 916, 2907, 2906, 56675, -1000, 507, 507, 2261, 423, 3, - -1000, -1000, -1000, -1000, 1079, 36264, -1000, -1000, -1000, -1000, - -1000, 2745, 417, -1000, 2167, 62955, -1000, -1000, 8252, 61385, - -1000, 2365, -1000, 2159, -1000, 2316, 24457, 417, 2130, -1000, - -1000, -1000, -1000, 1071, 1071, 1071, -1000, 456, 2842, 5470, - 6036, -1000, -1000, -1000, 55890, 2364, 61385, -1000, 2357, -1000, - 1161, 929, 901, 901, 61385, -1000, -1000, 62170, 61385, 1159, - 1157, 61385, 61385, 61385, 61385, -1000, 55105, -1000, 54320, 53535, - 1494, 61385, 52750, 51965, 51180, 50395, 49610, -1000, 2558, -1000, - 2527, -1000, -1000, -1000, 62170, 61385, 61385, 62170, 61385, 62170, - 62955, 61385, -1000, -1000, 358, -1000, -1000, 1485, 1476, 1462, - 1071, 1071, 1460, 1970, 1964, 1941, 1071, 1071, 1448, 1937, - 44114, 1907, 257, 1446, 1443, 1433, 1452, 1906, 263, 1898, - 1361, 1356, 1432, 61385, 2355, 62955, -1000, 240, 1055, 948, - -1000, -1000, -1000, 1078, 2707, 2586, 2259, 547, 836, 61385, - 516, 516, 516, 61385, -1000, -1000, 15751, 62955, 236, -1000, - 1896, 24457, -1000, 1179, 1176, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1184, 62955, 1179, -1000, -1000, -1000, 1176, 1184, - 62955, 1184, 1184, 1184, 1184, 1176, 1176, 1176, 1184, 62955, - 62955, 62955, 62955, 62955, 62955, 62955, 62955, 62955, 530, 1024, - 1184, -455, -1000, 1891, -1000, -1000, -1000, 2484, -1000, -1000, - -1000, -1000, 260, -1000, 1018, 1018, 2780, 2780, -1000, -1000, - 1184, 177, -1000, -1000, 530, 2798, 2254, -1000, -1000, -1000, - 1507, 2790, 2788, -1000, -1000, -1000, 2249, -1000, 179, -7, - 180, -1000, 48825, 447, 1077, -1000, 447, -1000, -1000, -1000, - -1000, -1000, 2245, 48040, -1000, -460, -461, -464, -466, -1000, - -1000, -1000, -499, -501, -1000, -1000, -1000, 24457, 24457, 24457, - 24457, -274, 999, 1576, 26830, 2704, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 24457, 1336, 1352, 26830, 26830, 26830, 26830, - 26830, 26830, 26830, 28412, 27621, 26830, 26830, 26830, 26830, 26830, - 26830, -1000, -1000, 39404, 9127, 9127, 975, 975, 975, 975, - -1000, -198, 2244, 62170, -1000, -1000, -1000, 910, 24457, 24457, - 975, -1000, 1507, 4658, 19711, 24457, 24457, 24457, 24457, 1101, - 1267, 62170, 24457, -1000, 1570, -1000, -1000, -1000, -1000, 1343, - -1000, -1000, 1208, 2644, 2644, 2644, 2644, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 2644, 24457, 139, - 139, 291, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 18128, 24457, 24457, 26830, 24457, 24457, 24457, 1570, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 1570, 24457, 1311, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 17337, 24457, 24457, - 24457, 24457, 24457, -1000, -1000, -1000, -1000, -1000, -1000, 24457, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 1570, 24457, 24457, - 24457, 24457, 24457, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 2467, 1687, 1678, 1767, 24457, -1000, 2235, - -1000, -199, 35479, 24457, 1889, 2897, 2407, 61385, -1000, -1000, - -1000, -1000, 2744, -1000, 2744, 2467, 4088, 2518, 22084, -1000, - -1000, 4088, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1904, -1000, 305, 835, 2383, - 240, 61385, 821, 816, 561, 515, -1000, -88, 1076, 62955, - 2230, 2747, -1000, 2222, -1000, -1000, 1767, -1000, -329, -1000, - -335, 2498, 1884, 380, -1000, 1504, 24457, 24457, 2220, -1000, - 1225, 62955, 62955, -1000, -274, -1000, 47255, -1000, -1000, 14958, - 62955, 62955, 427, 62955, -1000, 34694, 46470, 353, -1000, 3, - 2198, -1000, 8, -12, 18919, 970, -1000, -1000, -1000, -1000, - 417, -1000, 1374, 29197, 1915, 970, 96, -1000, -1000, -1000, - 2316, -1000, 2316, 2316, 2316, 2316, 2316, 380, 380, 380, - 2316, -1000, -1000, -1000, -1000, 2354, 2316, 2351, -1000, 2316, - 2316, 2316, 2316, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -520, 63127, -1000, 306, 398, 382, 364, 63127, + 856, 757, 756, 751, 258, 735, 728, 712, 696, 296, + 388, 63127, 63127, 503, 2527, 63127, 2778, 63127, 63127, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2348, 2348, 2348, 2344, 2344, 2321, 2321, 495, -1000, 24457, - 435, 45684, 2721, 1427, 1438, -207, -1000, 61385, 1588, 1579, - 1560, -1000, -561, 2214, -1000, -1000, 2838, -1000, -1000, 987, - 1200, 1185, 1236, 61385, 226, 337, -1000, 488, -1000, 45684, - 61385, 1153, 901, 61385, -1000, 61385, -1000, -1000, -1000, -1000, - -1000, 61385, -1000, -1000, 2208, -1000, 2209, 1247, 1177, 1240, - 1175, 2208, -1000, -1000, -203, 2208, -1000, 2208, -1000, 2208, - -1000, 2208, -1000, 2208, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1115, 321, -363, 61385, 226, 545, -1000, - 541, 39404, -1000, -1000, -1000, 39404, 39404, -1000, -1000, -1000, - -1000, 1877, 1862, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -547, 62955, -1000, 235, 418, 329, 314, 62955, - 850, 2653, 2652, 2649, 213, 496, 2630, 2628, 2627, 312, - 377, 62955, 62955, 516, 2443, 62955, 2733, 62955, 62955, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -8891,304 +8914,303 @@ var yyPact = [...]int32{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2051, 2034, -1000, 1612, 63127, -1000, -1000, 1258, -1000, -1000, + 63127, 1258, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1258, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1542, 2243, 1518, -1000, -1000, -1000, -1000, 63127, + -1000, -1000, -1000, 2963, 2027, 2963, -1000, -478, -1000, -1000, + -1000, -1000, 2476, 2848, -222, 239, -1000, 2024, -1000, 63127, + -43, 188, -1000, -1000, 61557, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -67, -1000, 354, -11, 419, -1000, + -1000, -1000, -1000, -1000, 2809, -1000, 1612, 1149, 1078, 1036, + 2243, -1000, -1000, 1419, -1000, -1000, -1000, -1000, -1000, 2243, + 2243, 2243, -1000, -1000, -1000, -1000, -1000, 1374, 27002, 27002, + 27002, 1538, 912, 1634, 1619, 1767, 1642, 1642, 1350, 27002, + 1350, 27002, 1010, 1010, 1010, 1010, 1010, -1000, -1000, -1000, + -1000, -1000, -1000, 2014, -1000, 2010, -1000, 2243, 62342, 2038, + 17509, 2913, 2287, 1688, 1030, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 3576, 1688, 2064, 1688, 1470, + 3571, 1154, -1000, 24629, 1688, 3546, -1000, -1000, 1688, 1688, + 24629, -1000, -1000, 24629, 24629, 24629, 24629, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 24629, 1607, 2300, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2298, 2957, + 1916, 1607, 1607, 1607, 1607, 3502, 1607, 1607, 24629, 1910, + -1000, -1000, -1000, 1807, 3484, 1526, 3466, 1607, 1607, -1000, + 1607, 3462, 3456, 1688, 2793, 2781, 1607, 1607, 1607, 1607, + 1607, 2772, 2768, 1607, 1607, 2762, 1607, 3441, 1607, 2756, + 2729, 2707, 2701, 2682, 2668, 2660, 2654, 2640, 2620, 2605, + 2591, 2576, 2543, 2539, 2512, 2504, 2468, 1607, 1607, 1607, + 3437, 1607, 3431, 1607, 3421, 1607, 1607, 3416, 2451, 2441, + 1688, 2297, -1000, 3391, 1607, 3385, 3376, 3370, 2420, 3360, + 3330, 3315, 1607, 1607, 1607, 2399, 3279, 3269, 3265, 3260, + 3252, 3248, 3198, 3194, 3167, 1607, 1645, 1645, 1645, 1645, + 1645, 3145, -284, 1607, 1688, -1000, -1000, -1000, -1000, 3128, + 2371, 3123, 3116, 3106, 3094, 1688, 2243, 935, -1000, -1000, + -1000, 1645, 1688, 1688, 1645, 1645, 3089, 3081, 3067, 3054, + 2960, 2947, 1607, 1607, -1000, 1607, 2907, 2897, 2365, 2326, + 1688, -1000, 1645, 63127, -1000, -435, -1000, -24, 1094, 2243, + -1000, 44286, 1688, -1000, 6502, -1000, 1431, -1000, -1000, -1000, + -1000, -1000, 41146, 2193, -1000, -1000, -1000, -1000, 494, 532, + 270, 494, 298, 306, 2475, 61557, 61557, 61557, 63127, 1188, + -1000, 538, -1000, 2243, -486, 21465, -1000, -1000, -1000, 379, + 93, 40361, 990, 990, 123, -1000, 1612, 1612, 24629, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 933, 2941, 2941, 437, + 2243, -1000, 2285, 3683, -1000, -1000, -1000, 2787, 30155, -1000, + -1000, 2243, 2243, 63127, 2250, 2216, -1000, 932, -1000, 1555, + 2293, 1, -15, -1000, -1000, -1000, -1000, 1612, -1000, 1680, + -1000, 429, 360, -1000, 486, -1000, -1000, -1000, -1000, 2677, + 84, -1000, -1000, -1000, 353, 379, -1000, -1000, 379, -1000, + -1000, -1000, -1000, 2008, -1000, 2008, -1000, -1000, -1000, -1000, + -1000, 1492, -1000, -1000, -1000, -1000, 1476, -1000, -1000, 1459, + -1000, -1000, 2885, 2470, 435, -1000, -1000, 1097, 2004, -1000, + -1000, 2679, 1097, 1097, 61557, -1000, -1000, 2219, 2760, -1000, + 2, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -525, 194, + 410, -1000, -1000, -1000, 4767, 61557, 2032, -1000, 267, -1000, + 2163, -1000, 61557, -1000, 2023, 2424, 61557, 61557, -1000, -1000, + -1000, 61557, 2243, -1000, -1000, -1000, -1000, 569, 2747, 372, + -1000, -1000, -302, -1000, -1000, 277, 267, 62342, 61557, 1011, + -1000, -1000, -1000, -1000, -1000, -552, 2019, 529, 63127, 63127, + 63127, 63127, 63127, 63127, 909, -1000, -1000, 22, 16, 242, + -1000, 229, -1000, -1000, 2003, -1000, 2000, -1000, 1998, -1000, + 1994, 686, 1992, -1000, 229, 1961, -1000, 1959, -1000, 1940, + -1000, -1000, -1000, 359, 509, -1000, 63127, 63127, 1028, -1000, + -1000, -1000, -1000, -1000, -1000, 1228, -1000, 1228, -1000, -1000, + -1000, 1688, -1000, -1000, 2848, 1458, -1000, 2848, 1632, 345, + -1000, 1455, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 2723, 63127, -16, -483, -1000, -479, 24629, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1328, 911, 1634, 27002, + 27002, 3204, 3204, 27002, -1000, -1000, -1000, 981, 981, 39576, + -1000, 27002, 24629, -1000, -1000, 24629, 24629, 24629, 1129, -1000, + 24629, 1443, -1000, 24629, -1000, -284, 1645, 1607, 1607, 1607, + 1607, -284, -284, -284, -284, -284, -284, -284, -284, -284, + -284, 2247, -1000, 24629, 24629, 24629, 1688, 340, -1000, -1000, + -1000, -284, 24629, -1000, -1000, 2951, -1000, 24629, -1000, 39576, + 24629, 24629, 24629, -1000, -1000, -1000, 24629, 24629, -1000, -1000, + 24629, -1000, 24629, -1000, -1000, -1000, -1000, -1000, -1000, 24629, + -1000, 24629, -1000, -1000, -1000, 24629, -1000, 24629, -1000, -1000, + 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, 24629, -1000, -1000, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, -1000, 24629, -1000, 24629, -1000, 24629, + -1000, 24629, 24629, -1000, 24629, 24629, 24629, -1000, 24629, 24629, + 24629, 24629, -1000, -1000, -1000, -1000, 24629, 24629, 24629, 24629, + 24629, 24629, 24629, 24629, 24629, 24629, -1000, -1000, -1000, -1000, + -1000, -1000, 24629, -1000, 45856, 81, -284, 1647, 81, 1647, + 26211, 943, 931, 25420, -1000, 24629, 16716, -1000, -1000, -1000, + -1000, -1000, 24629, 24629, 24629, 24629, 24629, 24629, -1000, -1000, + -1000, 24629, 24629, -1000, 24629, -1000, 24629, -1000, -1000, -1000, + -1000, -1000, 1094, -1000, 942, 930, 956, 61557, -1000, -1000, + -1000, -1000, 2290, -1000, 2824, -1000, 2599, 2579, 2946, 2941, + 24629, 33296, -1000, 63127, 63127, 288, 63127, 306, 528, 2525, + -1000, 2475, 2475, 2475, -1000, 2777, -1000, 2419, 1452, -1000, + -1000, -1000, -1000, -1000, -426, -1000, 2633, 2700, 990, 990, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14337, 2848, 24629, + 2848, 2513, 62342, 2243, -1000, 31726, -1000, -1000, 61557, 62342, + 34866, 34866, 34866, 34866, 34866, -1000, 2544, 2542, -1000, 2553, + 2538, 2578, 63127, 2021, 1985, -1000, 24629, 38006, 2284, 34866, + -1000, -1000, 34866, 63127, 13544, -1000, -1000, -20, -12, -1000, + -1000, -1000, -1000, 1365, -1000, -1000, 2209, 2785, 2674, -1000, + -1000, -1000, -1000, -1000, -1000, 1977, -1000, 1949, 2289, 1925, + 1921, 320, -1000, 2421, 2716, 1097, 1097, -1000, 1453, -1000, + 1554, 1911, 1905, -1000, -1000, -1000, 476, -1000, -1000, -560, + 1442, 2414, 2383, 24629, 2413, 2904, 2268, 61557, -1000, -1000, + 62342, -1000, 264, -1000, 435, 61557, -1000, -1000, -1000, 426, + 63127, -1000, 9876, -1000, -1000, -1000, 267, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 63127, 2460, -1000, -1000, -1000, -1000, + -1000, 214, 203, 1885, 1883, -1000, 231, 1881, -1000, -1000, + -1000, -1000, -1000, 1878, -1000, 231, 229, -1000, -1000, -1000, + 63127, 1014, 2470, 63127, -1000, -1000, -1000, 1258, 1258, -1000, + -1000, -1000, 2806, -1000, -1000, 2286, -1000, -1000, -1000, -1000, + 2709, -1000, 1554, 1607, 27002, 27002, -1000, 1018, -1000, -1000, + 400, -260, 2402, 2402, -1000, 2402, 2405, -1000, 2402, 175, + 2402, 174, 2402, -1000, -1000, 1688, 1688, -1000, 1645, 2295, + 1375, 2865, -1000, 1612, 24629, 2860, -1000, -1000, -284, -284, + -284, -284, -284, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -100, 2856, 2849, 1607, -1000, 2396, 2388, + -1000, 1607, 24629, 1607, 1688, 2279, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 2275, 2265, + 2258, 2177, 2173, 2168, 2162, 2155, 2148, 2143, 2135, 2130, + 2067, 2062, 1971, 1958, 1607, 1607, 1954, 1607, 1944, 1938, + -1000, 1612, 1645, 2843, 1645, 1607, 1607, 2811, 285, 1607, + 1903, 1903, 1903, 1903, 1903, 1645, 1645, 1645, 1645, 1607, + 61557, -1000, -284, -1000, -1000, -331, -333, -1000, 1688, -284, + 2273, 27002, 1607, 27002, 27002, 27002, 1607, 1688, -1000, -1000, + 1877, 1870, 2695, 1849, 1607, 2687, 1607, 1607, 1607, 1835, + -1000, 2803, 2243, 2803, 2243, 2803, 1896, 1431, 63127, -1000, + -1000, -1000, -1000, 2941, 2935, -1000, -1000, 2271, 2243, -1000, + -1000, -1000, -1000, -1000, 523, 63127, 63127, 2500, 2498, 2497, + -1000, 2039, -1000, -1000, 93, 637, -1000, 2625, 2700, -1000, + 2900, 2638, 2898, -1000, -1000, -1000, -1000, -1000, 1612, -1000, + -1000, 2706, 2199, -1000, 1101, 2244, -1000, -1000, 21465, 1900, + 2595, 927, 1896, 2262, 3683, 2471, 2496, 3598, -1000, -1000, + -1000, -1000, 2540, -1000, 2514, -1000, -1000, 2368, -1000, 1302, + 428, 34866, 2239, 2239, -1000, 926, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1303, 9876, 2995, -1000, 1866, -1000, 1631, + 250, 1441, -1000, -1000, 1097, 1097, -1000, 1210, 1209, -1000, + 63127, 2381, -1000, 379, 1865, 379, 1438, -1000, -1000, 1437, + -1000, -1000, -1000, -1000, 2378, 2561, -1000, -1000, -1000, -1000, + 289, 2377, 2892, -1000, 24629, 2369, 1099, 2822, 61557, 61557, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1845, 1840, -1000, 1267, 62955, -1000, -1000, 1184, -1000, -1000, - 62955, 1184, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1184, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1522, 1767, 1457, -1000, -1000, -1000, -1000, 62955, - -1000, -1000, -1000, 2896, 1839, 2896, -1000, -513, -1000, -1000, - -1000, -1000, 2403, 2744, -214, 228, -1000, 1832, -1000, 62955, - -40, 173, -1000, -1000, 61385, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -57, -1000, 953, 4, 398, -1000, - -1000, -1000, -1000, -1000, 2781, -1000, 1267, 1254, 1054, 999, - 1767, -1000, -1000, 1431, -1000, -1000, -1000, -1000, -1000, 1767, - 1767, 1767, -1000, -1000, -1000, -1000, -1000, 1336, 26830, 26830, - 26830, 1764, 874, 1841, 1619, 1607, 1040, 1040, 1355, 26830, - 1355, 26830, 980, 980, 980, 980, 980, -1000, -1000, -1000, - -1000, -1000, -1000, 1802, -1000, 1794, -1000, 1767, 62170, 2127, - 17337, 2435, 2878, 1570, 992, -1000, -1000, -1000, -1000, -1000, + -1000, 905, 1097, -500, 385, 323, 1097, 1097, 1097, -567, + -1000, -1000, 1864, 1862, -1000, -235, -1000, 24629, -1000, -1000, + -1000, -1000, -1000, 1393, 1393, 1832, 1801, 1799, -1000, 2368, + -216, 61557, 61557, 61557, 61557, -1000, -1000, -1000, -1000, 1378, + -1000, -1000, -1000, 231, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 345, -1000, -1000, -1000, -1000, 1018, 1688, 387, -226, + 1688, -1000, -1000, 379, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 24629, -1000, 24629, -1000, 24629, 1612, + 24629, -1000, -1000, -1000, -1000, -1000, 2848, 1785, 24629, 24629, + -1000, 1421, 1420, -284, 1607, -1000, -1000, -1000, 24629, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 3773, 1570, 2017, 1570, 1715, - 3768, 1144, -1000, 24457, 1570, 3593, -1000, -1000, 1570, 1570, - 24457, -1000, -1000, 24457, 24457, 24457, 24457, 1438, 1438, 1438, - 1438, 1438, 1438, 1438, 1438, 1438, 1438, 24457, 1438, 2207, + -1000, -1000, 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, 24629, -1000, + 24629, -1000, 24629, -1000, -1000, 24629, -1000, -1000, -1000, 24629, + -1000, 24629, -1000, 24629, -1000, -1000, -1000, 24629, 269, 981, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2202, 2891, - 1928, 1438, 1438, 1438, 1438, 3587, 1438, 1438, 24457, 1672, - -1000, -1000, -1000, 1640, 3558, 1514, 3529, 1438, 1438, -1000, - 1438, 3513, 3507, 1570, 2857, 2851, 1438, 1438, 1438, 1438, - 1438, 2832, 2815, 1438, 1438, 2787, 1438, 3493, 1438, 2783, - 2779, 2754, 2740, 2736, 2690, 2686, 2674, 2661, 2647, 2643, - 2639, 2622, 2600, 2569, 2559, 2552, 2519, 1438, 1438, 1438, - 3486, 1438, 3482, 1438, 3478, 1438, 1438, 3468, 2506, 2455, - 1570, 2201, -1000, 3440, 1438, 3420, 3415, 3387, 2451, 3377, - 3373, 3369, 1438, 1438, 1438, 2442, 3365, 3331, 3326, 3293, - 3285, 3260, 3247, 3238, 3230, 1438, 1678, 1678, 1678, 1678, - 1678, 3222, -279, 1438, 1570, -1000, -1000, -1000, -1000, 3216, - 2421, 3211, 3186, 3182, 3169, 1570, 1767, 904, -1000, -1000, - -1000, 1678, 1570, 1570, 1678, 1678, 3153, 3118, 3108, 3097, - 3089, 3079, 1438, 1438, -1000, 1438, 3062, 2998, 2389, 2378, - 1570, -1000, 1678, 62955, -1000, -441, -1000, -16, 1002, 1767, - -1000, 44114, 1570, -1000, 6857, -1000, 1344, -1000, -1000, -1000, - -1000, -1000, 40974, 2065, -1000, -1000, -1000, -1000, 515, 555, - 229, 515, 240, 235, 2401, 61385, 61385, 61385, 62955, 1108, - -1000, 533, -1000, 1767, -521, 21293, -1000, -1000, -1000, 380, - 74, 40189, 963, 963, 113, -1000, 1267, 1267, 24457, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 903, 2859, 2859, 382, - 1767, -1000, 2137, 3329, -1000, -1000, -1000, 2745, 29983, -1000, - -1000, 1767, 1767, 62955, 2190, 2118, -1000, 888, -1000, 1535, - 2198, 3, -19, -1000, -1000, -1000, -1000, 1267, -1000, 1546, - -1000, 428, 354, -1000, 497, -1000, -1000, -1000, -1000, 2611, - 88, -1000, -1000, -1000, 384, 380, -1000, -1000, 380, -1000, - -1000, -1000, -1000, 1786, -1000, 1786, -1000, -1000, -1000, -1000, - -1000, 1426, -1000, -1000, -1000, -1000, 1419, -1000, -1000, 1414, - -1000, -1000, 2277, 2432, 435, -1000, -1000, 1071, 1780, -1000, - -1000, 2613, 1071, 1071, 61385, -1000, -1000, 1902, 2721, -1000, - -1, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -556, 170, - 397, -1000, -1000, -1000, 5378, 61385, 2106, -1000, 221, -1000, - 1882, -1000, 61385, -1000, 2093, 2336, 61385, 61385, -1000, -1000, - -1000, 61385, 1767, -1000, -1000, -1000, -1000, 823, 2703, 311, - -1000, -1000, -308, -1000, -1000, 226, 221, 62170, 61385, 970, - -1000, -1000, -1000, -1000, -1000, -552, 2081, 554, 62955, 62955, - 62955, 62955, 62955, 62955, 871, -1000, -1000, 20, 19, 210, - -1000, 200, -1000, -1000, 1771, -1000, -1000, -1000, 2619, 1766, - -1000, 200, -1000, -1000, -1000, -1000, -1000, 316, 521, -1000, - 62955, 62955, 994, -1000, -1000, -1000, -1000, -1000, -1000, 1176, - -1000, 1176, -1000, -1000, -1000, 1570, -1000, -1000, 2744, 1404, - -1000, 2744, 1541, 530, -1000, 1396, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 2685, 62955, 0, -518, - -1000, -515, 24457, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1293, 872, 1841, 26830, 26830, 4658, 4658, 26830, -1000, -1000, - -1000, 1062, 1062, 39404, -1000, 26830, 24457, -1000, -1000, 24457, - 24457, 24457, 1085, -1000, 24457, 2083, -1000, 24457, -1000, -279, - 1678, 1438, 1438, 1438, 1438, -279, -279, -279, -279, -279, - -279, -279, -279, -279, -279, 2216, -1000, 24457, 24457, 24457, - 1570, 326, -1000, -1000, -1000, -279, 24457, -1000, -1000, 2873, - -1000, 24457, -1000, 39404, 24457, 24457, 24457, -1000, -1000, -1000, - 24457, 24457, -1000, -1000, 24457, -1000, 24457, -1000, -1000, -1000, - -1000, -1000, -1000, 24457, -1000, 24457, -1000, -1000, -1000, 24457, - -1000, 24457, -1000, -1000, 24457, -1000, 24457, -1000, 24457, -1000, - 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, - 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, - 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, - -1000, -1000, 24457, -1000, 24457, -1000, 24457, -1000, -1000, 24457, - -1000, 24457, -1000, 24457, -1000, 24457, 24457, -1000, 24457, 24457, - 24457, -1000, 24457, 24457, 24457, 24457, -1000, -1000, -1000, -1000, - 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, 24457, - -1000, -1000, -1000, -1000, -1000, -1000, 24457, -1000, 45684, 66, - -279, 1311, 66, 1311, 26039, 923, 902, 25248, -1000, 24457, - 16544, -1000, -1000, -1000, -1000, -1000, 24457, 24457, 24457, 24457, - 24457, 24457, -1000, -1000, -1000, 24457, 24457, -1000, 24457, -1000, - 24457, -1000, -1000, -1000, -1000, -1000, 1002, -1000, 905, 883, - 901, 61385, -1000, -1000, -1000, -1000, 2156, -1000, 2768, -1000, - 2522, 2521, 2864, 2859, 24457, 33124, -1000, 62955, 62955, 301, - 62955, 235, 553, 2439, -1000, 2401, 2401, 2401, -1000, 2731, - -1000, 2333, 1435, -1000, -1000, -1000, -1000, -1000, -431, -1000, - 2561, 2570, 963, 963, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 14165, 2744, 24457, 2744, 2434, 62170, 1767, -1000, 31554, - -1000, -1000, 61385, 62170, 34694, 34694, 34694, 34694, 34694, -1000, - 2480, 2471, -1000, 2461, 2460, 2575, 62955, 2467, 2045, -1000, - 24457, 37834, 2135, 34694, -1000, -1000, 34694, 62955, 13372, -1000, - -1000, -3, -25, -1000, -1000, -1000, -1000, 1374, -1000, -1000, - 1908, 2742, 2607, -1000, -1000, -1000, -1000, -1000, -1000, 2033, - -1000, 1989, 2153, 1945, 1936, 321, -1000, 2382, 2675, 1071, - 1071, -1000, 1395, -1000, 1507, 1762, 1759, -1000, -1000, -1000, - 489, -1000, -1000, -567, 1391, 2332, 2313, 24457, 2331, 2837, - 2047, 61385, -1000, -1000, 62170, -1000, 262, -1000, 435, 61385, - -1000, -1000, -1000, 337, 62955, -1000, 9973, -1000, -1000, -1000, - 221, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 62955, 2395, - -1000, -1000, -1000, -1000, -1000, 207, 205, 1757, 1751, -1000, - 183, 1737, -1000, -1000, -1000, 183, -1000, 62955, 985, 2432, - 62955, -1000, -1000, -1000, 1184, 1184, -1000, -1000, -1000, 2780, - -1000, -1000, 2109, -1000, -1000, -1000, -1000, 2670, -1000, 1507, - 1438, 26830, 26830, -1000, 975, -1000, -1000, 381, -255, 2316, - 2316, -1000, 2316, 2321, -1000, 2316, 157, 2316, 156, 2316, - -1000, -1000, 1570, 1570, -1000, 1678, 2374, 1367, 2973, -1000, - 1267, 24457, 2954, -1000, -1000, -279, -279, -279, -279, -279, + -1000, 1688, 427, -1000, -1000, -1000, 2945, -1000, 1688, 24629, + 3204, -1000, 3204, 3204, 3204, -1000, -1000, -1000, 24629, -1000, + 24629, 24629, -1000, 24629, -1000, 24629, -1000, -1000, -1000, -1000, + 24629, 2243, 2688, 45071, 2243, 45071, 2243, 38006, -1000, -1000, + 2935, 2933, 2891, 301, 63127, -1000, -1000, 63127, 63127, 63127, + -1000, 2607, 2606, 2606, 2625, -1000, 2888, 2884, -1000, 1780, + 2872, 1777, 1203, -1000, 62342, 24629, -1000, 2243, 44286, -1000, + 438, 61557, 2243, -1000, 61557, -1000, 2851, -1000, -1000, 24629, + 2364, -1000, 24629, -1000, -1000, -1000, -1000, 6652, 2941, 2239, + -1000, -1000, 1027, -1000, 24629, -1000, 11601, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1757, 1713, -1000, -1000, + 2361, 24629, -1000, -1000, -1000, 2033, 1955, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 426, -556, 2322, + 61557, 1415, -1000, 1845, 2268, 402, 2243, 1691, 1097, 1097, + 1097, 1401, 1400, 44286, 1814, -1000, 61557, 456, -1000, 426, + -1000, -245, -252, 1607, -1000, -1000, 2784, -1000, 16716, -1000, + -1000, 2360, 2467, -1000, -1000, -1000, -1000, -1000, -1000, 2564, + -206, -231, -1000, -1000, 1607, 1607, 1607, 1284, 1688, -1000, + 1607, 1607, 1897, 1836, -1000, -1000, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607, + 1607, 1607, 1607, 1607, 1607, 1607, 1645, 1822, -1000, 269, + 1688, 2494, -1000, -1000, 6652, -1000, -1000, 2851, 2866, 81, + -1000, -1000, 274, 81, 1612, 1138, 1688, 1688, 1138, 1816, + 1607, 1761, 1687, 1607, 1607, 38791, -1000, 2854, 2853, 1700, + -1000, -1000, 45071, 1700, 45071, 1094, 2933, -292, 24629, 24629, + 1688, 2269, -1000, 61557, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2603, 1385, -1000, -1000, -1000, -1000, 1681, 1649, -1000, + 1635, -1000, 2985, -1000, 1612, -1000, 2243, 2243, -1000, 921, + 2244, -1000, 2848, 1612, 61557, 1612, 77, 2851, -1000, 1607, + -1000, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, + 2243, 2243, -1000, -1000, 61557, 2195, -1000, -1000, 1763, 169, + -1000, 1823, 2268, -1000, -1000, 1000, -1000, 24629, -1000, 44286, + 1604, 1587, -1000, -1000, -1000, -1000, -567, -1000, -1000, -1000, + -1000, -1000, -1000, 455, 2267, -1000, 1077, 61557, 63127, -1000, + 2557, -1000, -1000, -1000, -1000, 24629, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -95, 2948, 2905, 1438, -1000, 2314, 2310, -1000, 1438, 24457, - 1438, 1570, 2370, 1438, 1438, 1438, 1438, 1438, 1438, 1438, - 1438, 1438, 1438, 1438, 1438, 2341, 2327, 2323, 2262, 2257, - 2242, 2217, 2211, 2177, 2146, 2116, 2112, 2104, 2098, 2079, - 2062, 1438, 1438, 2043, 1438, 2031, 2018, -1000, 1267, 1678, - 2893, 1678, 1438, 1438, 2886, 265, 1438, 1920, 1920, 1920, - 1920, 1920, 1678, 1678, 1678, 1678, 1438, 61385, -1000, -279, - -1000, -1000, -348, -349, -1000, 1570, -279, 2096, 26830, 1438, - 26830, 26830, 26830, 1438, 1570, -1000, -1000, 2014, 1981, 2820, - 1967, 1438, 2765, 1438, 1438, 1438, 1947, -1000, 2772, 1767, - 2772, 1767, 2772, 1829, 1344, 62955, -1000, -1000, -1000, -1000, - 2859, 2855, -1000, -1000, 2072, 1767, -1000, -1000, -1000, -1000, - -1000, 552, 62955, 62955, 2427, 2426, 2423, -1000, 1818, -1000, - -1000, 74, 452, -1000, 2548, 2570, -1000, 2836, 2557, 2830, - -1000, -1000, -1000, -1000, -1000, 1267, -1000, -1000, 2710, 2204, - -1000, 1074, 2089, -1000, -1000, 21293, 1837, 2512, 887, 1829, - 2120, 3329, 2406, 2422, 3855, -1000, -1000, -1000, -1000, 2468, - -1000, 2462, -1000, -1000, 2293, -1000, 2715, 427, 34694, 2115, - 2115, -1000, 886, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1253, 9973, 2936, -1000, 1735, -1000, 1536, 292, 1383, -1000, - -1000, 1071, 1071, -1000, 1147, 1141, -1000, 62955, 2307, -1000, - 380, 1725, 380, 1380, -1000, -1000, 1364, -1000, -1000, -1000, - -1000, 2308, 2538, -1000, -1000, -1000, -1000, 238, 2299, 2827, - -1000, 24457, 2298, 1072, 2164, 61385, 61385, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 849, 1071, - -531, 373, 332, 1071, 1071, 1071, -569, -1000, -1000, 1817, - 1813, -1000, -230, -1000, 24457, -1000, -1000, -1000, -1000, -1000, - 1399, 1399, 1685, 1681, 1679, -1000, 2293, -211, 61385, 61385, - 61385, 61385, -1000, -1000, -1000, -1000, 1298, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 530, -1000, -1000, -1000, - -1000, 975, 1570, 386, -222, 1570, -1000, -1000, 380, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 24457, - -1000, 24457, -1000, 24457, 1267, 24457, -1000, -1000, -1000, -1000, - -1000, 2744, 1658, 24457, 24457, -1000, 1360, 1357, -279, 1438, - -1000, -1000, -1000, 24457, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 24457, -1000, 24457, - -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, - -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, - -1000, 24457, -1000, 24457, -1000, 24457, -1000, 24457, -1000, -1000, - 24457, -1000, -1000, -1000, 24457, -1000, 24457, -1000, 24457, -1000, - -1000, -1000, 24457, 269, 1062, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1570, 426, -1000, -1000, - -1000, 2861, -1000, 1570, 24457, 4658, -1000, 4658, 4658, 4658, - -1000, -1000, -1000, 24457, -1000, 24457, 24457, -1000, 24457, -1000, - 24457, -1000, -1000, -1000, -1000, 24457, 1767, 2657, 44899, 1767, - 44899, 1767, 37834, -1000, -1000, 2855, 2853, 2825, 254, 62955, - -1000, -1000, 62955, 62955, 62955, -1000, 2540, 2547, 2547, 2548, - -1000, 2816, 2813, -1000, 1656, 2812, 1649, 1137, -1000, 62170, - 24457, -1000, 1767, 44114, -1000, 416, 61385, 1767, -1000, 61385, - -1000, 2769, -1000, -1000, 24457, 2288, -1000, 24457, -1000, -1000, - -1000, -1000, 9127, 2859, 2115, -1000, -1000, 989, -1000, 24457, - -1000, 11713, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1646, 1630, -1000, -1000, 2284, 24457, -1000, -1000, -1000, - 1801, 1722, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 337, -558, 2091, 61385, 1349, -1000, 1800, 2047, - 422, 1767, 1622, 1071, 1071, 1071, 1337, 1332, 44114, 1784, - -1000, 61385, 474, -1000, 337, -1000, -247, -249, 1438, -1000, - -1000, 2739, -1000, 16544, -1000, -1000, 2281, 2398, -1000, -1000, - -1000, -1000, -1000, 2497, -201, -225, -1000, -1000, 1438, 1438, - 1438, 1881, 1570, -1000, 1438, 1438, 1675, 1593, -1000, -1000, - 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, - 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, - 1678, 1901, -1000, 269, 1570, 2418, -1000, -1000, 9127, -1000, - -1000, 2769, 2809, 66, -1000, -1000, 214, 66, 1267, 1104, - 1570, 1570, 1104, 1835, 1438, 1587, 1574, 1438, 1438, 38619, - -1000, 2786, 2741, 1776, -1000, -1000, 44899, 1776, 44899, 1002, - 2853, -293, 24457, 24457, 1570, 2049, -1000, 61385, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 2536, 1316, -1000, -1000, -1000, - -1000, 1583, 1580, -1000, 1571, -1000, 2931, -1000, 1267, -1000, - 1767, 1767, -1000, 885, 2089, -1000, 2744, 1267, 61385, 1267, - 80, 2769, -1000, 1438, -1000, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, - 1767, 1767, 1767, 1767, 1767, 1767, -1000, -1000, 61385, 2027, - -1000, -1000, 1779, 169, -1000, 1575, 2047, -1000, -1000, 969, - -1000, 24457, -1000, 44114, 1566, 1557, -1000, -1000, -1000, -1000, - -569, -1000, -1000, -1000, -1000, -1000, -1000, 417, 2029, -1000, - 1041, 61385, 62955, -1000, 2492, -1000, -1000, -1000, -1000, 24457, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 24629, -1000, 1688, 2492, -1000, -357, -1000, + -519, 24629, -284, -1000, -1000, -284, -1000, -1000, -1000, -1000, + -1000, 24629, -1000, -1000, 24629, -1000, 24629, -1000, -1000, 1700, + -1000, -1000, -1000, 43501, -1000, 1700, -1000, 1700, -1000, -292, + -1000, 2069, -1000, 61557, 1612, 380, 9033, 301, 5318, -1000, + 1360, -1000, -1000, -1000, -1000, -1000, 62342, 61557, 2244, 61557, + -1000, -1000, 1678, 1688, 2243, 2848, -1000, 1674, -1000, -1000, + 2358, 2383, -1000, -1000, -1000, 20674, -1000, -1000, -1000, -1000, + -1000, 247, -211, 16716, 12751, 1657, -1000, -212, 1607, 1645, + -1000, -468, -1000, -1000, -1000, -1000, 1972, -1000, -1000, 2064, + -1000, -1000, 1602, 1590, 1521, -1000, -1000, -1000, -1000, -1000, + -1000, -292, -1000, -1000, 2773, -1000, -257, -1000, -575, -1000, + -1000, 9033, 24629, 34081, 42716, -1000, -1000, -1000, -1000, 1951, + 1640, -1000, -1000, -1000, 38006, 60772, -1000, -201, 357, 24629, + 2354, 1688, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 920, -1000, -1000, -1000, 2460, -229, -1000, -1000, + -1000, 5368, -490, -311, -327, 27002, -1000, 24629, -1000, 24629, + -1000, 24629, -1000, 61557, 2243, -1000, -1000, 1126, 9033, -1000, + -575, 1324, 4734, 872, 540, -1000, -1000, -1000, 2705, -1000, + -1000, 2577, -1000, -1000, -1000, 1600, -1000, 4258, -342, 2489, + -1000, -96, -1000, -1000, -1000, 1282, 1580, -1000, 1387, -1000, + -1000, -1000, -1000, 1783, 61557, -1000, 15923, -216, -232, 1196, + -1000, -1000, -1000, -1000, -1000, 3204, 1448, 1427, 1607, -1000, + 61557, -1000, -1000, 9033, 2740, 2802, 2783, -1000, 86, 86, + 1577, -1000, -1000, 60772, -348, 1011, 6652, -1000, 2487, 2483, + 2955, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -569, 1564, + -1000, -1000, -1000, 5368, -343, -1000, 24629, -1000, 24629, -1000, + 1688, 6919, -1000, 9876, 30940, 1039, -1000, 1076, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 24457, -1000, 1570, - 2415, -1000, -394, -1000, -538, 24457, -279, -1000, -1000, -279, - -1000, -1000, -1000, -1000, -1000, 24457, -1000, -1000, 24457, -1000, - 24457, -1000, -1000, 1776, -1000, -1000, -1000, 43329, -1000, 1776, - -1000, 1776, -1000, -293, -1000, 2022, -1000, 61385, 1267, 379, - 7444, 254, 8252, -1000, 1287, -1000, -1000, -1000, -1000, -1000, - 62170, 61385, 2089, 61385, -1000, -1000, 1721, 1570, 1767, 2744, - -1000, 1719, -1000, -1000, 2273, 2313, -1000, -1000, -1000, 20502, - -1000, -1000, -1000, -1000, -1000, 280, -207, 16544, 12579, 1689, - -1000, -208, 1438, 1678, -1000, -505, -1000, -1000, -1000, -1000, - 6370, -1000, -1000, 2017, -1000, -1000, 1569, 1506, 1501, -1000, - -1000, -1000, -1000, -1000, -1000, -293, -1000, -1000, 2738, -1000, - -251, -1000, -583, -1000, -1000, 7444, 24457, 33909, 42544, -1000, - -1000, -1000, -1000, 1983, 1674, -1000, -1000, -1000, 37834, 60600, - -1000, -196, 465, 24457, 2270, 1570, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 884, -1000, -1000, -1000, - 2395, -229, -1000, -1000, -1000, 6414, -522, -301, -324, 26830, - -1000, 24457, -1000, 24457, -1000, 24457, -1000, 61385, 1767, -1000, - -1000, 1084, 7444, -1000, -583, 1942, 7931, 856, 848, -1000, - -1000, -1000, 2664, -1000, -1000, 2507, -1000, -1000, -1000, 1654, - -1000, 5064, -362, 2414, -1000, -98, -1000, -1000, -1000, 1215, - 1549, -1000, 1330, -1000, -1000, -1000, -1000, 1914, 61385, -1000, - 15751, -211, -226, 1124, -1000, -1000, -1000, -1000, -1000, 4658, - 1463, 1453, 1438, -1000, 61385, -1000, -1000, 7444, 2695, 2763, - 2759, -1000, 199, 199, 1540, -1000, -1000, 60600, -357, 970, - 9127, -1000, 2410, 2337, 2870, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -571, 1555, -1000, -1000, -1000, 6414, -326, -1000, - 24457, -1000, 24457, -1000, 1570, 4963, -1000, 9973, 30768, 1011, - -1000, 1037, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2724, 80, - -1000, 2926, -1000, 2915, 1070, 1070, -1000, 1313, -571, -1000, - -1000, -1000, 1438, 1438, -1000, 1094, 1042, -1000, 24457, 24457, - -1000, 2036, -1000, -1000, -1000, -1000, 859, -1000, -1000, -1000, - -1000, 9076, -367, -1000, -1000, -1000, -1000, -1000, 480, 1340, - -1000, -1000, -1000, -1000, -1000, 1083, 7444, -1000, 1458, 1438, - -1000, 30768, -1000, -1000, 9127, -1000, -1000, -1000, 511, 7444, - 7444, -1000, -1000, 270, -1000, 7444, 270, -1000, -1000, + -1000, -1000, -1000, -1000, 2759, 77, -1000, 2980, -1000, 2975, + 1182, 1182, -1000, 1368, -569, -1000, -1000, -1000, 1607, 1607, + -1000, 1140, 1131, -1000, 24629, 24629, -1000, 7727, -1000, -1000, + -1000, -1000, 890, -1000, -1000, -1000, -1000, 10340, -377, -1000, + -1000, -1000, -1000, -1000, 473, 1392, -1000, -1000, -1000, -1000, + -1000, 1095, 9033, -1000, 1106, 1607, -1000, 30940, -1000, -1000, + 6652, -1000, -1000, -1000, 493, 9033, 9033, -1000, -1000, 257, + -1000, 9033, 257, -1000, -1000, } var yyPgo = [...]int16{ - 0, 3622, 3620, 40, 9, 53, 52, 3619, 2954, 3615, - 3614, 2958, 3610, 203, 3607, 3606, 3604, 3603, 3602, 3599, - 204, 202, 200, 3594, 3593, 3592, 3590, 3589, 3587, 3586, - 3585, 3583, 75, 106, 133, 120, 217, 219, 3581, 3579, - 71, 181, 220, 3574, 3571, 3569, 3567, 3563, 126, 218, - 99, 98, 211, 3561, 3559, 82, 3557, 3556, 3555, 3553, - 3552, 3, 15, 36, 35, 3551, 3549, 3548, 23, 3547, - 216, 215, 214, 1158, 3543, 209, 127, 58, 3541, 3540, - 3539, 3537, 7, 4, 3536, 2, 3533, 8, 3529, 3525, - 3519, 3514, 3508, 3506, 3504, 3502, 3501, 3500, 3499, 3497, - 3495, 3491, 3487, 3479, 3477, 312, 3470, 3469, 38, 3465, - 89, 3464, 3461, 3460, 3454, 3453, 19, 3452, 3444, 26, - 54, 73, 3438, 3436, 56, 3435, 3434, 3433, 3432, 3431, - 30, 3430, 37, 3427, 45, 3426, 3422, 136, 3421, 3420, - 3416, 55, 3414, 3400, 3399, 25, 194, 3398, 3390, 157, - 3384, 88, 198, 3382, 160, 3381, 191, 234, 3378, 2558, - 3376, 111, 3375, 3365, 3361, 193, 189, 223, 3359, 119, - 3356, 3352, 3351, 3348, 163, 3347, 3346, 4407, 3342, 3338, - 14, 18, 141, 3335, 3322, 166, 6, 67, 3321, 51, - 59, 3317, 3316, 16, 80, 3315, 116, 3312, 3307, 115, - 72, 3306, 107, 117, 3304, 3303, 21, 13, 3295, 10, - 1, 12, 68, 3294, 3293, 123, 3291, 3290, 3287, 102, - 3283, 3281, 5064, 3279, 100, 152, 113, 74, 3277, 184, - 65, 3274, 3272, 3271, 3269, 3268, 3262, 64, 3261, 3259, - 3258, 156, 498, 130, 3250, 3249, 149, 357, 144, 83, - 146, 3245, 178, 3242, 158, 86, 3241, 196, 3240, 3239, - 154, 153, 3238, 3235, 122, 182, 206, 3233, 104, 145, - 129, 260, 103, 190, 3231, 3229, 3215, 108, 70, 3214, - 3213, 3207, 3205, 197, 3204, 3202, 76, 3201, 101, 3200, - 207, 3199, 140, 66, 3197, 192, 186, 3189, 84, 187, - 3186, 3184, 3180, 69, 105, 78, 41, 3175, 179, 188, - 137, 176, 3174, 3168, 87, 3165, 3164, 3158, 77, 221, - 1391, 342, 3152, 3144, 304, 201, 165, 147, 95, 3143, - 212, 3142, 3140, 3139, 63, 3137, 3134, 3133, 3127, 162, - 3125, 24, 5713, 619, 205, 42, 183, 3119, 3116, 8419, - 27, 81, 34, 3114, 230, 3107, 142, 143, 3102, 3101, - 225, 125, 180, 62, 3100, 3099, 3093, 3092, 29, 3091, - 3087, 3085, 3073, 3072, 3069, 50, 49, 48, 124, 227, - 79, 22, 109, 185, 171, 85, 3066, 3065, 3064, 135, - 96, 3061, 177, 175, 167, 161, 3053, 208, 168, 134, - 3049, 92, 46, 3047, 3045, 3040, 3039, 110, 3031, 3030, - 3028, 3027, 173, 169, 131, 97, 3024, 94, 112, 170, - 174, 60, 3021, 61, 3020, 3018, 43, 210, 44, 3017, - 3016, 3011, 39, 3010, 28, 121, 128, 3005, 7715, 3004, - 31, 246, 172, 3000, 2999, 11, 17, 20, 2998, 2997, - 2995, 2993, 148, 2985, 2983, 2974, 2971, 33, 57, 32, - 47, 118, 155, 90, 2967, 2963, 159, 2962, 2957, 0, - 1409, 139, 2924, 228, -} - -//line sql.y:9565 + 0, 3689, 3688, 40, 12, 123, 112, 3687, 3028, 3684, + 3680, 3027, 3671, 205, 3668, 3666, 3664, 3663, 3662, 3658, + 206, 204, 202, 3656, 3655, 3654, 3653, 3651, 3649, 3648, + 3646, 3640, 45, 104, 64, 122, 236, 224, 3638, 3636, + 44, 196, 226, 3635, 3634, 3633, 3631, 3630, 129, 220, + 96, 95, 221, 3629, 3626, 86, 3616, 3615, 3610, 3606, + 3605, 6, 20, 39, 35, 3604, 3601, 3593, 25, 3591, + 214, 212, 210, 1201, 3590, 218, 138, 54, 3587, 3583, + 3580, 3577, 13, 8, 3575, 10, 3570, 11, 3569, 3568, + 3565, 3562, 3559, 3558, 3553, 3552, 3550, 3547, 3545, 3544, + 3532, 3524, 3522, 3516, 3512, 307, 3510, 3503, 84, 3500, + 89, 3498, 3490, 3486, 3484, 3482, 30, 3481, 3480, 26, + 48, 66, 3479, 3478, 47, 3477, 3476, 3471, 3467, 3466, + 27, 3464, 50, 3461, 43, 3459, 3456, 136, 3455, 3454, + 3453, 46, 3452, 3449, 3448, 29, 194, 3447, 3445, 163, + 3444, 85, 207, 3443, 168, 3442, 199, 227, 3440, 2628, + 3439, 120, 3438, 3435, 3432, 198, 191, 229, 3431, 105, + 3430, 3425, 3421, 3416, 148, 3412, 3411, 4485, 3404, 3400, + 16, 19, 140, 3398, 3397, 166, 18, 73, 3384, 7, + 9, 3382, 3381, 17, 83, 3374, 117, 3372, 3369, 113, + 74, 3368, 124, 103, 3365, 3364, 23, 15, 3361, 3, + 1, 2, 75, 3359, 3357, 128, 3354, 3347, 3345, 101, + 3344, 3343, 5087, 3342, 98, 152, 116, 79, 3341, 180, + 57, 3340, 3334, 3333, 3332, 3331, 3330, 55, 3328, 3327, + 3323, 161, 254, 130, 3321, 3320, 145, 439, 144, 59, + 151, 3317, 171, 3316, 150, 90, 3315, 201, 3314, 3313, + 160, 158, 3312, 3310, 61, 177, 209, 3307, 109, 143, + 133, 213, 102, 170, 3306, 3305, 3298, 65, 80, 3295, + 3293, 3291, 3290, 200, 3289, 3288, 78, 3279, 62, 3276, + 193, 3272, 153, 72, 3269, 189, 185, 3268, 81, 195, + 3266, 3260, 3258, 77, 118, 76, 41, 3256, 184, 188, + 139, 211, 3254, 3253, 60, 3250, 3245, 3242, 58, 222, + 1470, 340, 3241, 3240, 289, 203, 169, 159, 100, 3237, + 223, 3234, 3228, 3227, 68, 3216, 3215, 3213, 3210, 165, + 3200, 28, 5359, 7518, 216, 88, 190, 3195, 3194, 8575, + 31, 49, 36, 3181, 231, 3178, 147, 142, 3176, 3175, + 225, 125, 187, 63, 3172, 3171, 3168, 3166, 33, 3162, + 3161, 3160, 3155, 3154, 3153, 111, 108, 107, 127, 241, + 67, 22, 110, 186, 181, 82, 3150, 3144, 3139, 135, + 97, 3138, 183, 182, 146, 167, 3137, 208, 172, 126, + 3135, 70, 106, 3132, 3131, 3130, 3127, 119, 3126, 3125, + 3124, 3123, 179, 173, 134, 92, 3122, 94, 115, 176, + 174, 56, 3119, 51, 3101, 3099, 99, 219, 42, 3098, + 3086, 3080, 53, 3079, 32, 121, 131, 3077, 6487, 3073, + 34, 249, 175, 3072, 3069, 14, 21, 24, 3060, 3057, + 3056, 3053, 154, 3050, 3049, 3044, 3039, 38, 52, 37, + 4, 87, 162, 71, 3038, 3036, 164, 3035, 3031, 0, + 1939, 141, 3016, 228, +} + +//line sql.y:9644 type yyData = [6]uintptr var yyZeroData yyData @@ -11242,67 +11264,68 @@ var yyR1 = [...]int16{ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 137, 137, 138, - 138, 138, 138, 140, 140, 140, 422, 422, 77, 77, - 3, 3, 205, 207, 208, 208, 206, 206, 206, 206, - 206, 206, 79, 79, 78, 78, 210, 209, 211, 211, - 211, 1, 1, 2, 2, 4, 4, 427, 427, 427, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 137, 137, 138, 138, 138, 138, + 140, 140, 140, 422, 422, 77, 77, 3, 3, 205, + 207, 208, 208, 206, 206, 206, 206, 206, 206, 79, + 79, 78, 78, 210, 209, 211, 211, 211, 1, 1, + 2, 2, 4, 4, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 427, 427, 388, - 388, 388, 421, 421, 423, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 143, 142, 142, 141, 144, - 144, 144, 144, 144, 144, 144, 144, 425, 425, 425, - 80, 80, 426, 375, 376, 377, 5, 6, 402, 424, - 153, 153, 27, 43, 43, 28, 28, 28, 28, 28, - 29, 29, 90, 93, 93, 91, 91, 91, 91, 91, + 427, 427, 427, 427, 427, 427, 388, 388, 388, 421, + 421, 423, 139, 139, 139, 139, 139, 139, 139, 139, + 139, 139, 143, 142, 142, 141, 144, 144, 144, 144, + 144, 144, 144, 144, 425, 425, 425, 80, 80, 426, + 375, 376, 377, 5, 6, 402, 424, 153, 153, 27, + 43, 43, 28, 28, 28, 28, 28, 29, 29, 90, + 93, 93, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, - 91, 91, 91, 91, 333, 333, 334, 334, 334, 334, - 334, 334, 335, 335, 336, 336, 337, 337, 338, 338, - 339, 339, 339, 339, 340, 340, 152, 152, 154, 154, - 151, 151, 151, 322, 322, 331, 331, 321, 321, 354, - 354, 354, 324, 324, 324, 325, 325, 454, 454, 454, - 316, 316, 92, 92, 92, 355, 355, 355, 355, 95, - 95, 464, 464, 465, 465, 466, 466, 466, 96, 97, - 97, 358, 358, 359, 359, 98, 99, 111, 111, 111, - 111, 111, 112, 112, 112, 112, 112, 112, 136, 136, - 136, 13, 13, 13, 13, 107, 107, 107, 12, 12, - 14, 94, 94, 101, 451, 451, 452, 453, 453, 453, - 453, 102, 104, 30, 30, 30, 30, 30, 30, 164, - 164, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 159, 159, 159, 150, 150, 472, 105, - 106, 106, 157, 157, 157, 147, 147, 147, 156, 156, - 156, 15, 15, 16, 301, 301, 17, 17, 163, 163, - 162, 162, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 160, 160, 160, 161, 161, 161, 347, - 347, 347, 346, 346, 199, 199, 199, 201, 200, 200, - 202, 202, 203, 203, 203, 203, 253, 253, 225, 225, - 293, 293, 294, 294, 292, 292, 300, 300, 295, 295, - 295, 295, 304, 304, 204, 204, 204, 204, 212, 212, - 213, 213, 214, 214, 357, 357, 352, 352, 352, 351, - 351, 218, 218, 218, 220, 219, 219, 219, 219, 221, - 221, 223, 223, 222, 222, 224, 229, 229, 228, 228, - 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, - 230, 230, 177, 177, 177, 177, 177, 177, 177, 177, - 462, 462, 191, 191, 191, 191, 191, 191, 191, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 283, 283, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 91, 333, 333, 334, 334, 334, 334, 334, 334, 335, + 335, 336, 336, 337, 337, 338, 338, 339, 339, 339, + 339, 340, 340, 152, 152, 154, 154, 151, 151, 151, + 322, 322, 331, 331, 321, 321, 354, 354, 354, 324, + 324, 324, 325, 325, 454, 454, 454, 316, 316, 92, + 92, 92, 355, 355, 355, 355, 95, 95, 464, 464, + 465, 465, 466, 466, 466, 96, 97, 97, 358, 358, + 359, 359, 98, 99, 111, 111, 111, 111, 111, 112, + 112, 112, 112, 112, 112, 136, 136, 136, 13, 13, + 13, 13, 107, 107, 107, 12, 12, 14, 94, 94, + 101, 451, 451, 452, 453, 453, 453, 453, 102, 104, + 30, 30, 30, 30, 30, 30, 164, 164, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 159, 159, 159, 150, 150, 472, 105, 106, 106, 157, + 157, 157, 147, 147, 147, 156, 156, 156, 15, 15, + 16, 301, 301, 17, 17, 163, 163, 162, 162, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 160, 160, 160, 161, 161, 161, 347, 347, 347, 346, + 346, 199, 199, 199, 201, 200, 200, 202, 202, 203, + 203, 203, 203, 253, 253, 225, 225, 293, 293, 294, + 294, 292, 292, 300, 300, 295, 295, 295, 295, 304, + 304, 204, 204, 204, 204, 212, 212, 213, 213, 214, + 214, 357, 357, 352, 352, 352, 351, 351, 218, 218, + 218, 220, 219, 219, 219, 219, 221, 221, 223, 223, + 222, 222, 224, 229, 229, 228, 228, 226, 226, 226, + 226, 226, 226, 227, 227, 227, 227, 230, 230, 177, + 177, 177, 177, 177, 177, 177, 177, 462, 462, 191, + 191, 191, 191, 191, 191, 191, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 283, 283, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 258, 258, 257, 257, 113, 113, 113, 114, - 114, 115, 115, 115, 115, 115, 116, 116, 116, 116, - 116, 116, 116, 118, 118, 117, 117, 244, 244, 344, - 344, 119, 120, 120, 121, 121, 124, 124, 123, 122, - 122, 128, 128, 125, 125, 127, 127, 126, 129, 129, - 130, 131, 131, 317, 317, 231, 231, 240, 240, 240, - 240, 232, 232, 233, 233, 233, 233, 233, 233, 241, - 241, 241, 252, 242, 242, 238, 238, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 258, + 258, 257, 257, 113, 113, 113, 114, 114, 115, 115, + 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, + 118, 118, 117, 117, 244, 244, 344, 344, 119, 120, + 120, 121, 121, 124, 124, 123, 122, 122, 128, 128, + 125, 125, 127, 127, 126, 129, 129, 130, 131, 131, + 317, 317, 231, 231, 240, 240, 240, 240, 232, 232, + 233, 233, 233, 233, 233, 233, 241, 241, 241, 252, + 242, 242, 238, 238, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, @@ -11321,39 +11344,39 @@ var yyR1 = [...]int16{ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 196, 196, 196, 196, 263, 263, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 184, 184, 197, 197, 197, 197, 198, 198, - 198, 198, 198, 198, 198, 364, 364, 145, 145, 145, + 237, 237, 237, 237, 237, 237, 237, 237, 196, 196, + 196, 196, 263, 263, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 184, + 184, 197, 197, 197, 197, 198, 198, 198, 198, 198, + 198, 198, 364, 364, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, - 145, 145, 145, 145, 145, 145, 145, 146, 146, 146, + 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 473, 473, 379, 379, 379, - 239, 239, 239, 239, 239, 155, 155, 155, 155, 155, - 361, 361, 361, 365, 365, 365, 363, 363, 363, 363, - 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 363, 366, 366, 261, 261, 148, 148, 259, 259, 260, - 262, 262, 254, 254, 254, 254, 256, 256, 235, 235, - 235, 264, 264, 367, 367, 265, 265, 132, 133, 133, - 134, 134, 266, 266, 268, 267, 267, 269, 270, 270, - 270, 271, 271, 272, 272, 272, 55, 55, 55, 55, - 55, 50, 50, 50, 50, 51, 51, 51, 51, 166, - 166, 167, 167, 167, 169, 169, 168, 168, 108, 108, - 109, 109, 109, 431, 431, 430, 430, 428, 429, 429, - 429, 429, 174, 174, 175, 176, 176, 176, 171, 171, - 172, 172, 290, 290, 290, 290, 290, 290, 290, 273, - 273, 273, 273, 302, 302, 299, 299, 281, 281, 281, - 277, 277, 279, 279, 279, 280, 280, 280, 278, 287, - 287, 289, 289, 288, 288, 284, 284, 285, 285, 286, - 286, 286, 282, 282, 234, 234, 234, 234, 234, 318, - 318, 291, 291, 291, 291, 356, 356, 356, 305, 305, - 245, 245, 246, 246, 250, 250, 249, 249, 247, 248, - 251, 251, 195, 306, 306, 314, 311, 311, 312, 312, - 348, 348, 348, 348, 315, 315, 330, 330, 326, 326, - 327, 327, 319, 319, 320, 320, 320, 332, 332, 332, - 103, 243, 243, 418, 418, 415, 343, 343, 345, 345, - 349, 349, 353, 353, 350, 350, 10, 467, 467, 467, + 146, 146, 473, 473, 379, 379, 379, 239, 239, 239, + 239, 239, 155, 155, 155, 155, 155, 361, 361, 361, + 365, 365, 365, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 366, 366, + 261, 261, 148, 148, 259, 259, 260, 262, 262, 254, + 254, 254, 254, 256, 256, 235, 235, 235, 264, 264, + 367, 367, 265, 265, 132, 133, 133, 134, 134, 266, + 266, 268, 267, 267, 269, 270, 270, 270, 271, 271, + 272, 272, 272, 55, 55, 55, 55, 55, 50, 50, + 50, 50, 51, 51, 51, 51, 166, 166, 167, 167, + 167, 169, 169, 168, 168, 108, 108, 109, 109, 109, + 431, 431, 430, 430, 428, 429, 429, 429, 429, 174, + 174, 175, 176, 176, 176, 171, 171, 172, 172, 290, + 290, 290, 290, 290, 290, 290, 273, 273, 273, 273, + 302, 302, 299, 299, 281, 281, 281, 277, 277, 279, + 279, 279, 280, 280, 280, 278, 287, 287, 289, 289, + 288, 288, 284, 284, 285, 285, 286, 286, 286, 282, + 282, 234, 234, 234, 234, 234, 318, 318, 291, 291, + 291, 291, 356, 356, 356, 305, 305, 245, 245, 246, + 246, 250, 250, 249, 249, 247, 248, 251, 251, 195, + 306, 306, 314, 311, 311, 312, 312, 348, 348, 348, + 348, 315, 315, 330, 330, 326, 326, 327, 327, 319, + 319, 320, 320, 320, 332, 332, 332, 103, 243, 243, + 418, 418, 415, 343, 343, 345, 345, 349, 349, 353, + 353, 350, 350, 10, 467, 467, 467, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, @@ -11370,8 +11393,7 @@ var yyR1 = [...]int16{ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 342, 342, 342, 342, - 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 341, 341, 341, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, @@ -11422,7 +11444,8 @@ var yyR1 = [...]int16{ 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 469, 470, 360, + 342, 342, 342, 342, 342, 342, 342, 342, 342, 469, + 470, 360, } var yyR2 = [...]int8{ @@ -11492,120 +11515,121 @@ var yyR2 = [...]int8{ 3, 4, 3, 3, 1, 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 4, 4, 2, 11, 3, 6, 8, 6, 6, 6, - 13, 8, 6, 6, 10, 7, 5, 5, 5, 5, - 7, 5, 5, 7, 5, 6, 6, 5, 6, 5, - 7, 7, 5, 5, 5, 5, 6, 0, 6, 5, - 6, 4, 5, 0, 8, 9, 0, 3, 0, 1, - 0, 3, 8, 4, 1, 3, 3, 6, 7, 7, - 8, 4, 0, 1, 0, 1, 3, 3, 1, 1, - 2, 1, 1, 0, 2, 0, 2, 5, 3, 7, - 4, 4, 4, 4, 3, 3, 3, 7, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 2, 0, - 2, 2, 1, 3, 2, 0, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 1, 3, 3, 0, - 2, 2, 2, 2, 2, 2, 2, 4, 4, 3, - 0, 1, 4, 3, 4, 4, 3, 3, 3, 2, - 1, 3, 3, 3, 5, 7, 7, 6, 5, 5, - 3, 2, 4, 5, 5, 3, 3, 7, 3, 3, - 3, 3, 4, 7, 5, 2, 4, 4, 4, 4, - 4, 5, 5, 4, 4, 4, 4, 4, 4, 4, - 4, 2, 2, 4, 4, 4, 4, 4, 2, 3, - 3, 3, 3, 3, 5, 3, 3, 3, 2, 3, - 4, 3, 6, 7, 4, 4, 2, 3, 3, 4, - 4, 4, 4, 4, 3, 3, 4, 3, 6, 5, - 2, 5, 3, 5, 0, 1, 2, 1, 3, 1, - 2, 1, 0, 2, 1, 3, 0, 1, 1, 3, - 1, 1, 1, 2, 0, 3, 0, 2, 0, 2, - 0, 3, 3, 0, 1, 0, 1, 1, 1, 0, - 2, 2, 0, 2, 2, 0, 2, 0, 1, 1, - 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, - 3, 0, 1, 1, 3, 3, 2, 2, 1, 1, - 5, 0, 1, 0, 1, 2, 3, 0, 3, 3, - 3, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 4, 4, - 4, 2, 2, 3, 1, 3, 2, 1, 2, 1, - 2, 2, 4, 3, 3, 6, 4, 7, 6, 1, - 3, 2, 2, 2, 2, 1, 1, 1, 3, 2, - 1, 1, 1, 0, 1, 1, 0, 3, 0, 2, - 0, 2, 1, 2, 2, 0, 1, 1, 0, 1, - 1, 5, 5, 4, 0, 2, 4, 4, 0, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 2, 3, 5, 0, - 1, 2, 1, 1, 0, 2, 1, 2, 1, 3, - 1, 1, 1, 4, 3, 1, 1, 2, 3, 7, - 0, 3, 0, 1, 1, 3, 1, 3, 1, 1, - 3, 3, 1, 3, 4, 4, 4, 3, 2, 4, - 0, 1, 0, 2, 0, 1, 0, 1, 2, 1, - 1, 1, 2, 2, 1, 2, 3, 2, 3, 2, - 2, 2, 1, 1, 3, 3, 0, 1, 1, 2, - 6, 5, 6, 6, 5, 5, 0, 2, 3, 3, - 0, 2, 3, 3, 3, 2, 3, 1, 3, 6, - 1, 1, 3, 4, 3, 4, 4, 4, 1, 3, - 4, 5, 6, 3, 4, 5, 6, 3, 4, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 5, 5, - 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, - 1, 3, 1, 1, 1, 2, 2, 2, 2, 1, - 1, 2, 7, 7, 6, 6, 2, 2, 5, 6, - 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 4, 2, 4, 0, 1, 2, 5, 0, 3, 0, - 1, 4, 4, 2, 1, 0, 0, 1, 1, 2, - 2, 1, 1, 2, 2, 0, 1, 1, 1, 1, - 5, 1, 3, 0, 3, 1, 1, 1, 2, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 4, 6, 4, 4, 8, - 8, 6, 8, 6, 5, 4, 10, 2, 2, 1, - 2, 2, 2, 2, 2, 5, 6, 6, 6, 6, - 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 8, 4, 8, 8, 6, 5, 4, 4, 4, - 5, 7, 4, 4, 7, 4, 4, 6, 6, 6, - 8, 6, 6, 4, 4, 3, 4, 6, 6, 4, - 4, 6, 4, 6, 4, 4, 4, 4, 4, 4, - 6, 4, 6, 4, 4, 4, 6, 4, 6, 4, - 4, 6, 4, 6, 4, 6, 8, 4, 6, 8, + 13, 8, 6, 6, 10, 7, 5, 5, 5, 6, + 5, 7, 5, 6, 5, 7, 5, 6, 6, 6, + 7, 5, 6, 5, 7, 7, 8, 5, 5, 6, + 5, 5, 6, 6, 0, 6, 5, 6, 4, 5, + 0, 8, 9, 0, 3, 0, 1, 0, 3, 8, + 4, 1, 3, 3, 6, 7, 7, 8, 4, 0, + 1, 0, 1, 3, 3, 1, 1, 2, 1, 1, + 0, 2, 0, 2, 5, 3, 7, 4, 4, 4, + 4, 3, 3, 3, 7, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 0, 2, 2, 1, + 3, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 1, 3, 3, 0, 2, 2, 2, + 2, 2, 2, 2, 4, 4, 3, 0, 1, 4, + 3, 4, 4, 3, 3, 3, 2, 1, 3, 3, + 3, 5, 7, 7, 6, 5, 5, 3, 2, 4, + 5, 5, 3, 3, 7, 3, 3, 3, 3, 4, + 7, 5, 2, 4, 4, 4, 4, 4, 5, 5, + 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, + 4, 4, 4, 4, 4, 2, 3, 3, 3, 3, + 3, 5, 3, 3, 3, 2, 3, 4, 3, 6, + 7, 4, 4, 2, 3, 3, 4, 4, 4, 4, + 4, 3, 3, 4, 3, 6, 5, 2, 5, 3, + 5, 0, 1, 2, 1, 3, 1, 2, 1, 0, + 2, 1, 3, 0, 1, 1, 3, 1, 1, 1, + 2, 0, 3, 0, 2, 0, 2, 0, 3, 3, + 0, 1, 0, 1, 1, 1, 0, 2, 2, 0, + 2, 2, 0, 2, 0, 1, 1, 1, 1, 2, + 1, 3, 1, 1, 1, 1, 1, 3, 0, 1, + 1, 3, 3, 2, 2, 1, 1, 5, 0, 1, + 0, 1, 2, 3, 0, 3, 3, 3, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 4, 4, 4, 2, 2, + 3, 1, 3, 2, 1, 2, 1, 2, 2, 4, + 3, 3, 6, 4, 7, 6, 1, 3, 2, 2, + 2, 2, 1, 1, 1, 3, 2, 1, 1, 1, + 0, 1, 1, 0, 3, 0, 2, 0, 2, 1, + 2, 2, 0, 1, 1, 0, 1, 1, 5, 5, + 4, 0, 2, 4, 4, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 2, 3, 5, 0, 1, 2, 1, + 1, 0, 2, 1, 2, 1, 3, 1, 1, 1, + 4, 3, 1, 1, 2, 3, 7, 0, 3, 0, + 1, 1, 3, 1, 3, 1, 1, 3, 3, 1, + 3, 4, 4, 4, 3, 2, 4, 0, 1, 0, + 2, 0, 1, 0, 1, 2, 1, 1, 1, 2, + 2, 1, 2, 3, 2, 3, 2, 2, 2, 1, + 1, 3, 3, 0, 1, 1, 2, 6, 5, 6, + 6, 5, 5, 0, 2, 3, 3, 0, 2, 3, + 3, 3, 2, 3, 1, 3, 6, 1, 1, 3, + 4, 3, 4, 4, 4, 1, 3, 4, 5, 6, + 3, 4, 5, 6, 3, 4, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 5, 5, 3, 3, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 2, 2, 2, 2, 1, 1, 2, 7, + 7, 6, 6, 2, 2, 5, 6, 3, 3, 1, + 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 4, 2, 4, + 0, 1, 2, 5, 0, 3, 0, 1, 4, 4, + 2, 1, 0, 0, 1, 1, 2, 2, 1, 1, + 2, 2, 0, 1, 1, 1, 1, 5, 1, 3, + 0, 3, 1, 1, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 4, 6, 4, 4, 8, 8, 6, 8, + 6, 5, 4, 10, 2, 2, 1, 2, 2, 2, + 2, 2, 5, 6, 6, 6, 6, 6, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 8, 4, + 8, 8, 6, 5, 4, 4, 4, 5, 7, 4, + 4, 7, 4, 4, 6, 6, 6, 8, 6, 6, + 4, 4, 3, 4, 6, 6, 4, 4, 6, 4, + 6, 4, 4, 4, 4, 4, 4, 6, 4, 6, + 4, 4, 4, 6, 4, 6, 4, 4, 6, 4, + 6, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, - 6, 8, 4, 4, 4, 6, 4, 6, 4, 8, - 6, 4, 4, 6, 4, 6, 8, 4, 6, 8, - 4, 4, 6, 8, 6, 4, 6, 6, 8, 10, - 7, 8, 8, 9, 4, 4, 4, 4, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, - 4, 4, 4, 4, 6, 4, 6, 5, 9, 6, - 9, 8, 6, 8, 8, 8, 6, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 2, 6, 8, 10, - 12, 14, 6, 8, 8, 10, 12, 14, 6, 8, - 10, 12, 6, 8, 4, 4, 3, 4, 6, 6, - 4, 6, 4, 6, 8, 0, 2, 1, 1, 1, + 4, 4, 6, 4, 6, 4, 8, 6, 4, 4, + 6, 4, 6, 8, 4, 6, 8, 4, 4, 6, + 8, 6, 4, 6, 6, 8, 10, 7, 8, 8, + 9, 4, 4, 4, 4, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 4, 4, 4, 4, 4, + 4, 6, 4, 6, 5, 9, 6, 9, 8, 6, + 8, 8, 8, 6, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 2, 6, 8, 10, 12, 14, 6, + 8, 8, 10, 12, 14, 6, 8, 10, 12, 6, + 8, 4, 4, 3, 4, 6, 6, 4, 6, 4, + 6, 8, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 2, 0, 2, 3, - 4, 4, 4, 4, 4, 0, 3, 4, 7, 3, - 1, 1, 1, 0, 5, 5, 2, 3, 1, 2, - 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, - 1, 0, 1, 0, 1, 0, 2, 1, 2, 4, - 0, 2, 1, 1, 3, 5, 1, 1, 1, 2, - 2, 0, 4, 0, 2, 0, 2, 2, 1, 3, - 0, 1, 0, 1, 3, 1, 3, 2, 0, 1, - 1, 0, 1, 2, 4, 4, 0, 2, 2, 1, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, - 1, 3, 3, 3, 0, 3, 1, 1, 0, 4, - 0, 1, 1, 0, 1, 1, 3, 3, 0, 1, - 1, 1, 0, 1, 3, 1, 3, 2, 1, 1, - 0, 1, 2, 3, 4, 2, 3, 4, 4, 9, - 3, 5, 2, 3, 1, 1, 1, 0, 3, 3, - 0, 1, 0, 2, 2, 0, 2, 2, 2, 0, - 2, 1, 2, 3, 3, 0, 2, 1, 2, 3, - 4, 3, 0, 1, 3, 1, 6, 5, 4, 1, - 1, 1, 3, 3, 5, 0, 2, 5, 0, 5, - 1, 3, 1, 3, 1, 3, 1, 2, 3, 4, - 1, 1, 1, 1, 3, 3, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 0, 2, - 0, 3, 0, 1, 0, 1, 1, 0, 1, 1, - 5, 0, 1, 0, 1, 2, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 1, 3, 0, 1, 1, + 1, 1, 0, 2, 0, 2, 3, 4, 4, 4, + 4, 4, 0, 3, 4, 7, 3, 1, 1, 1, + 0, 5, 5, 2, 3, 1, 2, 2, 1, 2, + 1, 2, 2, 1, 2, 2, 1, 1, 0, 1, + 0, 1, 0, 2, 1, 2, 4, 0, 2, 1, + 1, 3, 5, 1, 1, 1, 2, 2, 0, 4, + 0, 2, 0, 2, 2, 1, 3, 0, 1, 0, + 1, 3, 1, 3, 2, 0, 1, 1, 0, 1, + 2, 4, 4, 0, 2, 2, 1, 1, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 1, 3, 3, + 3, 0, 3, 1, 1, 0, 4, 0, 1, 1, + 0, 1, 1, 3, 3, 0, 1, 1, 1, 0, + 1, 3, 1, 3, 2, 1, 1, 0, 1, 2, + 3, 4, 2, 3, 4, 4, 9, 3, 5, 2, + 3, 1, 1, 1, 0, 3, 3, 0, 1, 0, + 2, 2, 0, 2, 2, 2, 0, 2, 1, 2, + 3, 3, 0, 2, 1, 2, 3, 4, 3, 0, + 1, 3, 1, 6, 5, 4, 1, 1, 1, 3, + 3, 5, 0, 2, 5, 0, 5, 1, 3, 1, + 3, 1, 3, 1, 2, 3, 4, 1, 1, 1, + 1, 3, 3, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, + 1, 0, 1, 1, 0, 1, 1, 5, 0, 1, + 0, 1, 2, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -11674,7 +11698,7 @@ var yyR2 = [...]int8{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, + 1, 0, } var yyChk = [...]int16{ @@ -11950,344 +11974,346 @@ var yyChk = [...]int16{ -328, 679, 159, 736, 688, -390, -76, 270, 270, -361, -361, -361, 100, 100, -323, 795, -215, -169, 310, 310, 267, 323, 267, 323, -222, 334, 337, 335, 336, 344, - 333, 338, 339, 340, 341, 43, 43, 43, 336, 345, - 43, 43, 43, 43, 322, 324, 326, 312, -222, -222, - -326, 87, -217, -222, 30, -349, -222, 100, 100, -222, - -324, -222, -324, -324, 103, -469, 103, -222, -154, 19, - 100, -154, 769, 88, -271, 640, -339, 100, -349, -466, - 356, -343, 392, 753, 755, -149, 464, 98, 639, 27, - -150, 27, -469, -462, 134, 135, -252, -252, -252, -241, - -182, -185, -182, 158, 292, -182, -182, -469, -254, -470, - -345, 29, 98, 88, -470, 185, 98, -470, -470, 98, - 19, 98, -262, -260, 165, -177, -470, 98, -470, -470, - -242, -177, -177, -177, -177, -470, -470, -470, -470, -470, - -470, -470, -470, -470, -470, -242, -470, 98, 98, 19, - -365, 29, -470, -470, -470, -470, 98, -470, -470, -261, - -470, 19, -470, 88, 98, 179, 98, -470, -470, -470, - 98, 98, -470, -470, 98, -470, 98, -470, -470, -470, - -470, -470, -470, 98, -470, 98, -470, -470, -470, 98, - -470, 98, -470, -470, 98, -470, 98, -470, 98, -470, + 333, 338, 339, 340, 341, 43, 345, 43, 345, 43, + 345, 336, 345, 43, 43, 345, 43, 345, 43, 345, + 322, 324, 326, 312, -222, -222, -326, 87, -217, -222, + 30, -349, -222, 100, 100, -222, -324, -222, -324, -324, + 103, -469, 103, -222, -154, 19, 100, -154, 769, 88, + -271, 640, -339, 100, -349, -466, 356, -343, 392, 753, + 755, -149, 464, 98, 639, 27, -150, 27, -469, -462, + 134, 135, -252, -252, -252, -241, -182, -185, -182, 158, + 292, -182, -182, -469, -254, -470, -345, 29, 98, 88, + -470, 185, 98, -470, -470, 98, 19, 98, -262, -260, + 165, -177, -470, 98, -470, -470, -242, -177, -177, -177, + -177, -470, -470, -470, -470, -470, -470, -470, -470, -470, + -470, -242, -470, 98, 98, 19, -365, 29, -470, -470, + -470, -470, 98, -470, -470, -261, -470, 19, -470, 88, + 98, 179, 98, -470, -470, -470, 98, 98, -470, -470, + 98, -470, 98, -470, -470, -470, -470, -470, -470, 98, + -470, 98, -470, -470, -470, 98, -470, 98, -470, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, - -470, -470, 98, -470, 98, -470, 98, -470, -470, 98, - -470, 98, -470, 98, -470, 98, 98, -470, 98, 98, - 98, -470, 98, 98, 98, 98, -470, -470, -470, -470, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - -470, -470, -470, -470, -470, -470, 98, -120, 664, -470, - -470, 98, -470, 98, 98, 98, 98, 98, -470, -469, - 240, -470, -470, -470, -470, -470, 98, 98, 98, 98, - 98, 98, -470, -470, -470, 98, 98, -470, 98, -470, - 98, -470, -452, 759, 465, -229, -228, -226, 85, 271, - 86, -469, -351, -470, -190, -298, -300, -298, -235, -343, - 107, 116, -273, -199, 98, 19, -201, -327, 269, 328, - -327, -174, -169, -418, -415, -343, -343, -343, -349, 159, - -176, 496, -171, 100, 102, -252, -250, -470, -380, -278, - -284, -321, -343, 100, 196, -382, 196, -382, 405, 406, - -269, 240, -230, 20, -230, -234, 37, -318, -32, -469, - 68, 65, -469, 37, 98, -218, -220, -219, -221, 77, - 81, 83, 78, 79, 80, 84, -357, -34, -200, -34, - -469, -222, -215, -471, 19, 88, -471, 98, 240, -310, - -313, 467, 464, 470, -438, 100, -137, 98, -407, -394, - -274, -170, 48, -387, 413, -380, 647, -380, -380, -389, - 100, -389, 107, 107, 107, 99, -55, -50, -51, 38, - 92, -414, -401, 100, 47, -401, -401, -343, 99, -270, - -109, 318, 759, -2, 798, 804, 153, 97, 419, 23, - -292, 98, 99, -255, 330, 99, -139, -343, 99, 97, - -399, -399, -343, -469, 267, 36, 36, 736, 688, 679, - -76, -255, -254, -343, -381, 797, 796, 99, 269, -222, - -222, -222, -222, -222, -222, 249, 246, 454, 454, 336, - -461, 342, 100, 43, 100, -461, 313, 270, -215, -222, - 98, -110, 286, 281, -354, -354, -470, -271, 107, -271, - -438, 100, -336, -334, 107, 38, -222, 464, 771, 769, - -177, 158, 292, -194, -185, -145, -145, -182, -363, 196, - 378, 291, 376, 372, 392, 383, 411, 374, 412, 369, - 368, 367, -363, -361, -182, -242, -177, -177, -177, 167, - -177, 164, -177, -121, -120, -470, -470, -470, -470, -470, - -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, - -266, -177, -177, -177, -470, 196, 378, -121, -177, 19, - -177, -361, -177, -177, -177, -177, -177, -177, -177, -177, + 98, -470, 98, -470, 98, -470, -470, -470, 98, -470, + 98, -470, 98, -470, -470, 98, -470, 98, -470, 98, + -470, 98, 98, -470, 98, 98, 98, -470, 98, 98, + 98, 98, -470, -470, -470, -470, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, -470, -470, -470, -470, + -470, -470, 98, -120, 664, -470, -470, 98, -470, 98, + 98, 98, 98, 98, -470, -469, 240, -470, -470, -470, + -470, -470, 98, 98, 98, 98, 98, 98, -470, -470, + -470, 98, 98, -470, 98, -470, 98, -470, -452, 759, + 465, -229, -228, -226, 85, 271, 86, -469, -351, -470, + -190, -298, -300, -298, -235, -343, 107, 116, -273, -199, + 98, 19, -201, -327, 269, 328, -327, -174, -169, -418, + -415, -343, -343, -343, -349, 159, -176, 496, -171, 100, + 102, -252, -250, -470, -380, -278, -284, -321, -343, 100, + 196, -382, 196, -382, 405, 406, -269, 240, -230, 20, + -230, -234, 37, -318, -32, -469, 68, 65, -469, 37, + 98, -218, -220, -219, -221, 77, 81, 83, 78, 79, + 80, 84, -357, -34, -200, -34, -469, -222, -215, -471, + 19, 88, -471, 98, 240, -310, -313, 467, 464, 470, + -438, 100, -137, 98, -407, -394, -274, -170, 48, -387, + 413, -380, 647, -380, -380, -389, 100, -389, 107, 107, + 107, 99, -55, -50, -51, 38, 92, -414, -401, 100, + 47, -401, -401, -343, 99, -270, -109, 318, 759, -2, + 798, 804, 153, 97, 419, 23, -292, 98, 99, -255, + 330, 99, -139, -343, 99, 97, -399, -399, -343, -469, + 267, 36, 36, 736, 688, 679, -76, -255, -254, -343, + -381, 797, 796, 99, 269, -222, -222, -222, -222, -222, + -222, 249, 246, 454, 454, 336, -461, 342, 100, 100, + 100, 100, 43, 345, 100, -461, 100, 100, 100, 313, + 270, -215, -222, 98, -110, 286, 281, -354, -354, -470, + -271, 107, -271, -438, 100, -336, -334, 107, 38, -222, + 464, 771, 769, -177, 158, 292, -194, -185, -145, -145, + -182, -363, 196, 378, 291, 376, 372, 392, 383, 411, + 374, 412, 369, 368, 367, -363, -361, -182, -242, -177, + -177, -177, 167, -177, 164, -177, -121, -120, -470, -470, + -470, -470, -470, -121, -121, -121, -121, -121, -121, -121, + -121, -121, -121, -266, -177, -177, -177, -470, 196, 378, + -121, -177, 19, -177, -361, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, - -177, -177, -177, -177, -177, -177, -177, -435, -177, -242, - -177, -242, -177, -177, -177, -177, -177, -436, -436, -436, - -436, -436, -242, -242, -242, -242, -177, -469, -343, -124, - -123, -122, 715, 271, -120, -196, -124, -196, 239, -177, - 239, 239, 239, -177, -243, -345, -341, -177, -177, -177, - -177, -177, -177, -177, -177, -177, -177, -226, -395, 310, - -395, 310, -395, -304, 98, -315, 27, 19, 65, 65, - -199, -230, -161, 35, -200, -222, -222, -168, 319, 327, - -222, -169, 269, 87, -418, -418, -418, 30, 97, -172, - 103, -281, 752, -287, 54, -285, -286, 55, -282, 56, - 64, -382, -382, 187, -271, -177, -271, -305, 87, -306, - -314, -254, -246, -249, -247, -469, -291, -470, -343, -304, - -306, -202, -203, -203, -202, -203, 77, 77, 77, 82, - 77, 82, 77, -219, -349, -470, -177, -352, 88, -200, - -200, -224, -349, 187, 464, 468, 469, -407, -459, 132, - 159, 36, 87, 409, 112, -457, 195, 676, 731, 736, - 688, 680, 722, -458, 273, 152, 153, 285, 29, 49, - 99, 98, 99, 98, 99, 99, 98, -329, -328, -51, - -50, -401, -401, 107, -438, 100, 100, 278, -140, 802, - 107, 97, -3, 92, -177, 97, 24, -390, -254, -425, - -375, -426, -376, -377, -5, -6, -402, -143, 65, 112, - -80, 52, 268, 782, 783, 141, -469, 795, -417, -292, - -421, -423, -222, -181, -469, -193, -179, -178, -180, -186, - 185, 186, 291, 374, 375, -255, -222, -440, 88, 310, - 409, 310, 409, 100, 100, -463, 343, 100, -463, -222, - -110, -55, -222, -324, -324, -151, 98, 38, -438, -470, - -194, -185, -155, 179, 639, -366, 646, -378, -378, -378, - -385, -378, 364, -378, 364, -378, -470, -470, -470, 98, - -470, 27, -470, 98, -177, 98, -121, -121, -121, -121, - -121, -148, 535, 98, 98, -470, 97, 97, -470, -177, - -470, -470, -470, 98, -470, -470, -470, -470, -470, -470, - -470, -470, -470, -470, -470, -470, -470, 98, -470, 98, - -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, - -470, 98, -470, 98, -470, 98, -470, 98, -470, 98, - -470, 98, -470, 98, -470, 98, -470, 98, -470, -470, - 98, -470, -470, -470, 98, -470, 98, -470, 98, -470, - -470, -470, 98, -364, 737, -470, -470, -470, -470, -470, - -470, -470, -470, -470, -470, -470, -119, -344, -120, 697, - 697, -470, -120, -263, 98, -182, -470, -182, -182, -182, - -470, -470, -470, 98, -470, 98, 98, -470, 98, -470, - 98, -470, -470, -470, -470, 98, -227, 27, -469, -227, - -469, -227, -470, -298, -222, -230, -264, 21, -469, 269, - -222, -222, 87, 87, 87, 99, -278, 59, 384, -289, - -288, 63, 55, -286, 24, 57, 24, 34, -305, 98, - 168, -356, 98, 29, -470, -470, 98, -318, 65, 240, - -470, -230, -213, -212, 87, 88, -214, 87, -212, 77, - 77, -293, 98, -303, -200, -230, -230, 240, 132, -469, - -181, 17, 100, 100, -438, -456, 786, 787, 36, 788, - 107, -401, -401, 153, 153, -222, 97, -380, 100, -380, - 107, 107, 36, 93, 94, 95, 36, 89, 90, 91, - 320, -422, 97, 24, -177, 97, 168, 99, -292, -292, - 306, 179, -401, 780, 312, 312, -401, -401, -401, -142, - -141, 802, 99, -470, 98, -388, 639, 642, -177, -187, - -187, -293, -434, 639, -439, -343, -343, -343, -343, 107, - 109, -334, -470, 637, 84, 640, -470, -380, -177, -177, - -177, -177, -271, 100, -177, -177, 107, 107, -121, -470, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, + -435, -177, -242, -177, -242, -177, -177, -177, -177, -177, + -436, -436, -436, -436, -436, -242, -242, -242, -242, -177, + -469, -343, -124, -123, -122, 715, 271, -120, -196, -124, + -196, 239, -177, 239, 239, 239, -177, -243, -345, -341, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, - -242, -177, -470, -210, -209, -211, 763, 132, 36, -363, - -470, -244, 304, -127, -126, -125, 19, -470, -177, -145, - -145, -145, -145, -177, -177, -177, -177, -177, -177, -469, - 77, 23, 21, -295, -343, 273, -469, -295, -469, -352, - -264, -265, 22, 24, -431, -430, -428, -429, 179, 743, - 742, -222, -222, -222, -222, -279, 61, -277, 60, -277, - -288, 24, 24, 100, 24, 100, 153, -314, -177, -249, - -351, -318, -32, -343, -246, -343, -266, -177, 97, -177, - -190, -230, -230, -177, -237, 559, 561, 562, 563, 560, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 564, 575, 536, 537, 538, 119, 121, 120, 129, 130, - 539, 540, 541, 378, 587, 588, 582, 585, 586, 584, - 583, 393, 394, 542, 605, 606, 610, 609, 607, 608, - 611, 614, 615, 616, 617, 618, 619, 621, 620, 612, - 613, 590, 589, 591, 592, 593, 594, 595, 596, 598, - 597, 599, 600, 601, 602, 603, 604, 622, 623, 624, - 625, 626, 628, 627, 632, 631, 629, 630, 634, 633, - 543, 544, 122, 123, 124, 125, 126, 127, 128, 545, - 548, 546, 549, 550, 551, 556, 557, 552, 553, 554, - 555, 558, 404, 402, 403, 399, 398, 397, 483, 488, - 489, 491, 576, 577, 578, 579, 580, 581, 744, 745, - 746, 747, 748, 749, 750, 751, 100, 100, 97, -177, - 99, 99, -421, -77, 99, -294, -292, 107, 99, 307, - -247, -469, 100, -401, -401, -401, 107, 107, -351, -470, - 98, -343, -458, -423, 643, 643, -470, 29, -433, -432, - -345, 97, 88, 70, 638, 641, -470, -470, -470, 98, - -470, -470, -470, 99, 99, -470, -470, -470, -470, -470, + -226, -395, 310, -395, 310, -395, -304, 98, -315, 27, + 19, 65, 65, -199, -230, -161, 35, -200, -222, -222, + -168, 319, 327, -222, -169, 269, 87, -418, -418, -418, + 30, 97, -172, 103, -281, 752, -287, 54, -285, -286, + 55, -282, 56, 64, -382, -382, 187, -271, -177, -271, + -305, 87, -306, -314, -254, -246, -249, -247, -469, -291, + -470, -343, -304, -306, -202, -203, -203, -202, -203, 77, + 77, 77, 82, 77, 82, 77, -219, -349, -470, -177, + -352, 88, -200, -200, -224, -349, 187, 464, 468, 469, + -407, -459, 132, 159, 36, 87, 409, 112, -457, 195, + 676, 731, 736, 688, 680, 722, -458, 273, 152, 153, + 285, 29, 49, 99, 98, 99, 98, 99, 99, 98, + -329, -328, -51, -50, -401, -401, 107, -438, 100, 100, + 278, -140, 802, 107, 97, -3, 92, -177, 97, 24, + -390, -254, -425, -375, -426, -376, -377, -5, -6, -402, + -143, 65, 112, -80, 52, 268, 782, 783, 141, -469, + 795, -417, -292, -421, -423, -222, -181, -469, -193, -179, + -178, -180, -186, 185, 186, 291, 374, 375, -255, -222, + -440, 88, 310, 409, 310, 409, 100, 100, -463, 343, + 100, 100, -463, -461, -222, -110, -55, -222, -324, -324, + -151, 98, 38, -438, -470, -194, -185, -155, 179, 639, + -366, 646, -378, -378, -378, -385, -378, 364, -378, 364, + -378, -470, -470, -470, 98, -470, 27, -470, 98, -177, + 98, -121, -121, -121, -121, -121, -148, 535, 98, 98, + -470, 97, 97, -470, -177, -470, -470, -470, 98, -470, + -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, + -470, -470, 98, -470, 98, -470, 98, -470, 98, -470, + 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, + 98, -470, 98, -470, 98, -470, 98, -470, 98, -470, + 98, -470, 98, -470, -470, 98, -470, -470, -470, 98, + -470, 98, -470, 98, -470, -470, -470, 98, -364, 737, + -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, + -470, -119, -344, -120, 697, 697, -470, -120, -263, 98, + -182, -470, -182, -182, -182, -470, -470, -470, 98, -470, + 98, 98, -470, 98, -470, 98, -470, -470, -470, -470, + 98, -227, 27, -469, -227, -469, -227, -470, -298, -222, + -230, -264, 21, -469, 269, -222, -222, 87, 87, 87, + 99, -278, 59, 384, -289, -288, 63, 55, -286, 24, + 57, 24, 34, -305, 98, 168, -356, 98, 29, -470, + -470, 98, -318, 65, 240, -470, -230, -213, -212, 87, + 88, -214, 87, -212, 77, 77, -293, 98, -303, -200, + -230, -230, 240, 132, -469, -181, 17, 100, 100, -438, + -456, 786, 787, 36, 788, 107, -401, -401, 153, 153, + -222, 97, -380, 100, -380, 107, 107, 36, 93, 94, + 95, 36, 89, 90, 91, 320, -422, 97, 24, -177, + 97, 168, 99, -292, -292, 306, 179, -401, 780, 312, + 312, -401, -401, -401, -142, -141, 802, 99, -470, 98, + -388, 639, 642, -177, -187, -187, -293, -434, 639, -439, + -343, -343, -343, -343, 107, 109, -463, -334, -470, 637, + 84, 640, -470, -380, -177, -177, -177, -177, -271, 100, + -177, -177, 107, 107, -121, -470, -177, -177, -177, -177, + -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, + -177, -177, -177, -177, -177, -177, -242, -177, -470, -210, + -209, -211, 763, 132, 36, -363, -470, -244, 304, -127, + -126, -125, 19, -470, -177, -145, -145, -145, -145, -177, + -177, -177, -177, -177, -177, -469, 77, 23, 21, -295, + -343, 273, -469, -295, -469, -352, -264, -265, 22, 24, + -431, -430, -428, -429, 179, 743, 742, -222, -222, -222, + -222, -279, 61, -277, 60, -277, -288, 24, 24, 100, + 24, 100, 153, -314, -177, -249, -351, -318, -32, -343, + -246, -343, -266, -177, 97, -177, -190, -230, -230, -177, + -237, 559, 561, 562, 563, 560, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 564, 575, 536, 537, + 538, 119, 121, 120, 129, 130, 539, 540, 541, 378, + 587, 588, 582, 585, 586, 584, 583, 393, 394, 542, + 605, 606, 610, 609, 607, 608, 611, 614, 615, 616, + 617, 618, 619, 621, 620, 612, 613, 590, 589, 591, + 592, 593, 594, 595, 596, 598, 597, 599, 600, 601, + 602, 603, 604, 622, 623, 624, 625, 626, 628, 627, + 632, 631, 629, 630, 634, 633, 543, 544, 122, 123, + 124, 125, 126, 127, 128, 545, 548, 546, 549, 550, + 551, 556, 557, 552, 553, 554, 555, 558, 404, 402, + 403, 399, 398, 397, 483, 488, 489, 491, 576, 577, + 578, 579, 580, 581, 744, 745, 746, 747, 748, 749, + 750, 751, 100, 100, 97, -177, 99, 99, -421, -77, + 99, -294, -292, 107, 99, 307, -247, -469, 100, -401, + -401, -401, 107, 107, -351, -470, 98, -343, -458, -423, + 643, 643, -470, 29, -433, -432, -345, 97, 88, 70, + 638, 641, -470, -470, -470, 98, -470, -470, -470, 99, + 99, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, -470, - -470, -470, -470, -470, -470, -470, -470, 98, -470, -209, - -211, -470, 87, -190, -266, 24, -124, 329, 331, -124, - -470, -470, -470, -470, -470, 98, -470, -470, 98, -470, - 98, -470, -470, -295, -470, 24, 24, 98, -470, -295, - -470, -295, -229, -265, -134, -133, -132, 670, -177, -242, - -470, 98, -343, -280, 62, 87, 136, 100, 100, 100, - 17, -469, -246, 240, -356, -271, -292, -207, 419, -266, - -470, -292, 99, 99, 804, 153, 99, -247, -153, -469, - 303, -351, 100, 100, -141, -144, -32, 98, 168, -292, - -222, 70, -177, -242, -470, 87, 651, 763, -118, -117, - -114, 774, 800, -242, -120, -120, -177, -177, -177, -470, - -343, 273, -470, -470, -134, 98, -131, -130, -343, -367, - 639, -81, -82, -83, -8, 347, 272, 256, 287, -428, - -368, 87, 136, -306, -292, -356, -343, 99, -470, -469, - -271, 99, -275, 97, -3, 303, -375, -426, -376, -377, - -5, -6, -402, -108, -432, -406, -349, -345, 100, 107, - 99, 639, -470, -470, -116, 161, 772, 734, -186, 239, - -470, 98, -470, 98, -470, 98, -132, 98, 29, 644, - 805, -84, -85, -83, -82, -177, -292, -59, -343, 259, - 260, 261, -65, -63, -64, 263, -343, -470, -352, -208, - -206, -343, 694, -449, -448, 635, -459, -455, 132, 159, - 112, -457, 731, 736, 688, 142, 143, -177, 97, -470, - 240, -440, 640, -116, 773, 708, 682, 708, 682, -182, - -177, -177, -177, -130, -469, 167, -83, 164, -368, 258, - 265, -66, -67, 37, -173, 68, -470, 98, 27, -368, - -79, 705, -446, -447, 87, -450, 427, 704, 725, 132, - 100, 107, 99, -292, -350, -434, 641, 158, -145, -470, - 98, -470, 98, -470, -119, -85, -276, 36, 27, 27, - -68, -69, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, -68, 100, -206, 701, -381, -190, - -447, 87, -446, 87, 18, 17, -4, 803, 99, -116, - 708, 682, -177, -177, -470, -89, -88, -87, 166, -469, - -181, -60, -61, -62, -64, 264, 159, 262, 107, -63, - -62, 168, -78, 30, -207, -445, 286, 281, 284, 37, - -445, 107, -4, -470, -470, -86, 165, -87, -177, -177, - -82, 98, 257, -186, 705, 280, 36, 132, 167, -85, - 164, -470, -61, -190, 272, -85, -210, -209, -209, + -470, -470, -470, 98, -470, -209, -211, -470, 87, -190, + -266, 24, -124, 329, 331, -124, -470, -470, -470, -470, + -470, 98, -470, -470, 98, -470, 98, -470, -470, -295, + -470, 24, 24, 98, -470, -295, -470, -295, -229, -265, + -134, -133, -132, 670, -177, -242, -470, 98, -343, -280, + 62, 87, 136, 100, 100, 100, 17, -469, -246, 240, + -356, -271, -292, -207, 419, -266, -470, -292, 99, 99, + 804, 153, 99, -247, -153, -469, 303, -351, 100, 100, + -141, -144, -32, 98, 168, -292, -222, 70, -177, -242, + -470, 87, 651, 763, -118, -117, -114, 774, 800, -242, + -120, -120, -177, -177, -177, -470, -343, 273, -470, -470, + -134, 98, -131, -130, -343, -367, 639, -81, -82, -83, + -8, 347, 272, 256, 287, -428, -368, 87, 136, -306, + -292, -356, -343, 99, -470, -469, -271, 99, -275, 97, + -3, 303, -375, -426, -376, -377, -5, -6, -402, -108, + -432, -406, -349, -345, 100, 107, 99, 639, -470, -470, + -116, 161, 772, 734, -186, 239, -470, 98, -470, 98, + -470, 98, -132, 98, 29, 644, 805, -84, -85, -83, + -82, -177, -292, -59, -343, 259, 260, 261, -65, -63, + -64, 263, -343, -470, -352, -208, -206, -343, 694, -449, + -448, 635, -459, -455, 132, 159, 112, -457, 731, 736, + 688, 142, 143, -177, 97, -470, 240, -440, 640, -116, + 773, 708, 682, 708, 682, -182, -177, -177, -177, -130, + -469, 167, -83, 164, -368, 258, 265, -66, -67, 37, + -173, 68, -470, 98, 27, -368, -79, 705, -446, -447, + 87, -450, 427, 704, 725, 132, 100, 107, 99, -292, + -350, -434, 641, 158, -145, -470, 98, -470, 98, -470, + -119, -85, -276, 36, 27, 27, -68, -69, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + -68, 100, -206, 701, -381, -190, -447, 87, -446, 87, + 18, 17, -4, 803, 99, -116, 708, 682, -177, -177, + -470, -89, -88, -87, 166, -469, -181, -60, -61, -62, + -64, 264, 159, 262, 107, -63, -62, 168, -78, 30, + -207, -445, 286, 281, 284, 37, -445, 107, -4, -470, + -470, -86, 165, -87, -177, -177, -82, 98, 257, -186, + 705, 280, 36, 132, 167, -85, 164, -470, -61, -190, + 272, -85, -210, -209, -209, } var yyDef = [...]int16{ - 1008, -2, 1, 2, -2, 1010, 1008, 4, 5, 7, + 1015, -2, 1, 2, -2, 1017, 1015, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 131, 133, 134, 1008, 1008, - 1008, 0, 1008, 1774, 196, 0, 1070, -2, -2, 1008, - 1792, 0, 1008, 0, 1003, 0, -2, 923, 929, 0, - 938, -2, 0, 0, 1008, 1008, 2484, 2484, 1003, 0, - 0, 0, 0, 0, 1008, 1008, 1008, 1008, 1797, 1622, - 111, 1008, 0, 151, 152, 1008, 958, 959, 960, 126, - 0, 2482, 148, 1008, 1009, 3, 132, 136, 0, 0, - 0, 119, 1631, 0, 139, 0, 0, 1012, 0, 0, - 1772, 1008, 1008, 0, -2, 193, 1094, 0, 0, 1775, - 1776, 0, 0, 0, 199, -2, 231, 232, 233, 0, - 238, 687, 600, 652, 598, 637, -2, 586, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 603, 475, 475, 0, 0, -2, 586, 586, 586, 1777, + 38, 39, 40, 41, 42, 131, 133, 134, 1015, 1015, + 1015, 0, 1015, 1781, 196, 0, 1077, -2, -2, 1015, + 1799, 0, 1015, 0, 1010, 0, -2, 930, 936, 0, + 945, -2, 0, 0, 1015, 1015, 2491, 2491, 1010, 0, + 0, 0, 0, 0, 1015, 1015, 1015, 1015, 1804, 1629, + 111, 1015, 0, 151, 152, 1015, 965, 966, 967, 126, + 0, 2489, 148, 1015, 1016, 3, 132, 136, 0, 0, + 0, 119, 1638, 0, 139, 0, 0, 1019, 0, 0, + 1779, 1015, 1015, 0, -2, 193, 1101, 0, 0, 1782, + 1783, 0, 0, 0, 199, -2, 231, 232, 233, 0, + 238, 694, 600, 652, 598, 637, -2, 586, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 603, 475, 475, 0, 0, -2, 586, 586, 586, 1784, 0, 0, 0, 634, 537, 475, 475, 475, 0, 475, 475, 475, 475, 0, 0, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, - 475, 475, 1649, 237, 1793, 1790, 1791, 1966, 1967, 1968, - 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, - 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, - 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, - 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, - 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, - 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, - 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, - 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, - 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, - 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, - 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, - 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, - 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, - 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, - 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, - 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, - 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, - 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, - 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, - 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, - 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, - 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, - 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, - 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, - 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, - 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, - 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, - 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, - 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, - 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, - 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, - 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, - 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, - 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, - 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, - 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, - 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, - 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, - 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, - 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, - 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, - 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, - 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, - 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, - 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, - 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, - 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, - 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, - 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, - 2479, 2480, 2481, 0, 1766, 0, 801, 1113, 0, 1004, - 1005, 0, 912, 912, 0, 912, 912, 912, 912, 0, - 0, 0, 815, 0, 0, 0, 0, 909, 0, 831, - 832, 0, 909, 0, 838, 915, 0, 0, 1631, 912, - 912, 848, 0, 0, 0, 0, 0, 0, 856, 1631, - 909, 0, 0, 882, 886, 870, 0, 0, 1756, 0, - 906, 904, 918, 919, 922, 925, 926, 927, 928, 931, - 0, 942, 945, 1786, 1787, 103, 0, 947, 952, 971, - 972, 0, 106, 1273, 0, 1137, 0, 1148, -2, 1159, - 1176, 1177, 1178, 1179, 1180, 1182, 1183, 1184, 0, 0, - 0, 0, 1189, 1190, 0, 0, 0, 0, 0, 1253, - 0, 0, 0, 0, 2188, 1593, 0, 0, 1555, 1555, - 1289, 1555, 1555, 1557, 1557, 1557, 2027, 2179, 2189, 2384, - 1980, 1987, 1988, 1989, 2329, 2330, 2331, 2332, 2428, 2429, - 2433, 2097, 1975, 2399, 2400, 0, 2481, 2137, 2145, 2146, - 2122, 2131, 2171, 2285, 2411, 2000, 2165, 2244, 2092, 2117, - 2118, 2264, 2265, 2141, 2142, 2121, 2335, 2337, 2353, 2354, - 2339, 2341, 2350, 2356, 2361, 2340, 2352, 2357, 2370, 2374, - 2377, 2378, 2379, 2347, 2345, 2358, 2362, 2364, 2366, 2372, - 2375, 2348, 2346, 2359, 2363, 2365, 2367, 2373, 2376, 2334, - 2338, 2342, 2351, 2369, 2349, 2368, 2343, 2355, 2360, 2371, - 2344, 2336, 2135, 2138, 2125, 2126, 2128, 2130, 2136, 2143, - 2149, 2127, 2148, 2147, 0, 2123, 2124, 2129, 2140, 2144, - 2132, 2133, 2134, 2139, 2150, 2195, 2194, 2193, 2243, 2161, - 2242, 0, 0, 0, 0, 0, 1969, 2034, 2035, 2381, - 1477, 1478, 1479, 1480, 0, 0, 0, 0, 0, 0, - 0, 364, 365, 1606, 1607, 105, 1272, 1752, 1557, 1557, - 1557, 1557, 1557, 1557, 1211, 1212, 1213, 1214, 1215, 1241, - 1242, 1248, 1249, 2258, 2259, 2260, 2261, 2074, 2422, 2083, - 2084, 2239, 2240, 2099, 2100, 2455, 2456, -2, -2, -2, - 306, 307, 308, 309, 310, 311, 312, 313, 0, 2033, - 2397, 2398, 302, 0, 1750, 1751, 369, 366, 367, 368, - 1255, 1256, 322, 323, 324, 325, 326, 327, 328, 329, + 475, 475, 1656, 237, 1800, 1797, 1798, 1973, 1974, 1975, + 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, + 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, + 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, + 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, + 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, + 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, + 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, + 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, + 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, + 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, + 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, + 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, + 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, + 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, + 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, + 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, + 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, + 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, + 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, + 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, + 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, + 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, + 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, + 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, + 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, + 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, + 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, + 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, + 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, + 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, + 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, + 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, + 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, + 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, + 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, + 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, + 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, + 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, + 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, + 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, + 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, + 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, + 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, + 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, + 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, + 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, + 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, + 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, + 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, + 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, + 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, + 2486, 2487, 2488, 0, 1773, 0, 808, 1120, 0, 1011, + 1012, 0, 919, 919, 0, 919, 919, 919, 919, 0, + 0, 0, 822, 0, 0, 0, 0, 916, 0, 838, + 839, 0, 916, 0, 845, 922, 0, 0, 1638, 919, + 919, 855, 0, 0, 0, 0, 0, 0, 863, 1638, + 916, 0, 0, 889, 893, 877, 0, 0, 1763, 0, + 913, 911, 925, 926, 929, 932, 933, 934, 935, 938, + 0, 949, 952, 1793, 1794, 103, 0, 954, 959, 978, + 979, 0, 106, 1280, 0, 1144, 0, 1155, -2, 1166, + 1183, 1184, 1185, 1186, 1187, 1189, 1190, 1191, 0, 0, + 0, 0, 1196, 1197, 0, 0, 0, 0, 0, 1260, + 0, 0, 0, 0, 2195, 1600, 0, 0, 1562, 1562, + 1296, 1562, 1562, 1564, 1564, 1564, 2034, 2186, 2196, 2391, + 1987, 1994, 1995, 1996, 2336, 2337, 2338, 2339, 2435, 2436, + 2440, 2104, 1982, 2406, 2407, 0, 2488, 2144, 2152, 2153, + 2129, 2138, 2178, 2292, 2418, 2007, 2172, 2251, 2099, 2124, + 2125, 2271, 2272, 2148, 2149, 2128, 2342, 2344, 2360, 2361, + 2346, 2348, 2357, 2363, 2368, 2347, 2359, 2364, 2377, 2381, + 2384, 2385, 2386, 2354, 2352, 2365, 2369, 2371, 2373, 2379, + 2382, 2355, 2353, 2366, 2370, 2372, 2374, 2380, 2383, 2341, + 2345, 2349, 2358, 2376, 2356, 2375, 2350, 2362, 2367, 2378, + 2351, 2343, 2142, 2145, 2132, 2133, 2135, 2137, 2143, 2150, + 2156, 2134, 2155, 2154, 0, 2130, 2131, 2136, 2147, 2151, + 2139, 2140, 2141, 2146, 2157, 2202, 2201, 2200, 2250, 2168, + 2249, 0, 0, 0, 0, 0, 1976, 2041, 2042, 2388, + 1484, 1485, 1486, 1487, 0, 0, 0, 0, 0, 0, + 0, 364, 365, 1613, 1614, 105, 1279, 1759, 1564, 1564, + 1564, 1564, 1564, 1564, 1218, 1219, 1220, 1221, 1222, 1248, + 1249, 1255, 1256, 2265, 2266, 2267, 2268, 2081, 2429, 2090, + 2091, 2246, 2247, 2106, 2107, 2462, 2463, -2, -2, -2, + 306, 307, 308, 309, 310, 311, 312, 313, 0, 2040, + 2404, 2405, 302, 0, 1757, 1758, 369, 366, 367, 368, + 1262, 1263, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 0, 371, 372, 2484, 0, 981, - 0, 0, 0, 0, 0, 0, 1798, 1799, 1631, 0, - 1623, 1622, 124, 0, 1008, -2, 0, 0, 0, 0, - -2, 108, 0, 113, 1070, 0, 1011, 138, 137, 1682, - 1685, 0, 0, 0, 1692, 1694, 1695, 1696, 102, 120, - 1632, 128, 130, 1633, 0, 1013, 1014, 0, 0, 1049, - 0, 0, 0, 0, 1773, 1772, 1772, 168, 0, 0, - 169, 189, 190, 191, 0, 0, 175, 176, 1758, 1759, - 104, 1094, 0, 1095, 0, 0, 249, 250, 0, 1229, - 502, 0, 245, 0, 495, 434, 0, 0, 0, 1074, + 360, 361, 362, 363, 0, 371, 372, 2491, 0, 988, + 0, 0, 0, 0, 0, 0, 1805, 1806, 1638, 0, + 1630, 1629, 124, 0, 1015, -2, 0, 0, 0, 0, + -2, 108, 0, 113, 1077, 0, 1018, 138, 137, 1689, + 1692, 0, 0, 0, 1699, 1701, 1702, 1703, 102, 120, + 1639, 128, 130, 1640, 0, 1020, 1021, 0, 0, 1056, + 0, 0, 0, 0, 1780, 1779, 1779, 168, 0, 0, + 169, 189, 190, 191, 0, 0, 175, 176, 1765, 1766, + 104, 1101, 0, 1102, 0, 0, 249, 250, 0, 1236, + 502, 0, 245, 0, 495, 434, 0, 0, 0, 1081, 234, 235, 236, 475, 475, 475, 649, 0, 0, 237, 237, 607, 608, 609, 0, 0, -2, 500, 0, 587, 0, 0, 489, 489, 493, 491, 492, 0, 0, 0, 0, 0, 0, 0, 0, 626, 0, 627, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 748, 0, 476, + 0, 0, 0, 0, 0, 0, 0, 755, 0, 476, 0, 647, 648, 538, 0, 0, 0, 0, 0, 0, - 0, 0, 1778, 1779, 0, 624, 625, 0, 0, 0, + 0, 0, 1785, 1786, 0, 624, 625, 0, 0, 0, 475, 475, 0, 0, 0, 0, 475, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 225, 1672, 0, 0, - 226, 227, 1650, 0, -2, 0, 792, 0, 0, 0, - 1768, 1768, 1768, 0, 1767, 800, 0, 0, 0, 805, - 0, 0, 806, 0, 909, 864, 907, 908, 808, 809, - 810, 811, 912, 0, 0, 484, 485, 486, 909, 912, - 0, 912, 912, 912, 912, 909, 909, 909, 912, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 915, - 912, 0, 839, 0, 840, 841, 842, 843, 845, 846, - 847, 849, 0, 851, 896, 896, 900, 900, 857, 858, - 912, 0, 865, 867, 0, 894, 887, 888, 890, 891, - 892, 874, 872, 1757, 924, 930, 932, 933, 0, 0, - 943, 946, 965, 110, 2082, 951, 110, 953, 954, 955, - 956, 957, 983, 984, 989, 0, 0, 0, 0, 995, - 996, 997, 0, 0, 1000, 1001, 1002, 0, 0, 0, - 0, 0, 1135, 0, 0, 1261, 1262, 1263, 1264, 1265, - 1266, 1267, 1268, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 225, 1679, 0, 0, + 226, 227, 1657, 0, -2, 0, 799, 0, 0, 0, + 1775, 1775, 1775, 0, 1774, 807, 0, 0, 0, 812, + 0, 0, 813, 0, 916, 871, 914, 915, 815, 816, + 817, 818, 919, 0, 0, 484, 485, 486, 916, 919, + 0, 919, 919, 919, 919, 916, 916, 916, 919, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, + 919, 0, 846, 0, 847, 848, 849, 850, 852, 853, + 854, 856, 0, 858, 903, 903, 907, 907, 864, 865, + 919, 0, 872, 874, 0, 901, 894, 895, 897, 898, + 899, 881, 879, 1764, 931, 937, 939, 940, 0, 0, + 950, 953, 972, 110, 2089, 958, 110, 960, 961, 962, + 963, 964, 990, 991, 996, 0, 0, 0, 0, 1002, + 1003, 1004, 0, 0, 1007, 1008, 1009, 0, 0, 0, + 0, 0, 1142, 0, 0, 1268, 1269, 1270, 1271, 1272, + 1273, 1274, 1275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1160, 1161, 0, 0, 0, 1185, 1186, 1187, 1188, - 1191, 0, 1202, 0, 1204, 1602, -2, 0, 0, 0, - 1196, 1197, 0, 0, 0, 1781, 1781, 0, 0, 0, - 1594, 0, 0, 1287, 0, 1288, 1290, 1291, 1292, 0, - 1293, 1294, 1018, 1018, 1018, 1018, 1018, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1018, 0, 0, + 0, 1167, 1168, 0, 0, 0, 1192, 1193, 1194, 1195, + 1198, 0, 1209, 0, 1211, 1609, -2, 0, 0, 0, + 1203, 1204, 0, 0, 0, 1788, 1788, 0, 0, 0, + 1601, 0, 0, 1294, 0, 1295, 1297, 1298, 1299, 0, + 1300, 1301, 1025, 1025, 1025, 1025, 1025, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1781, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12295,83 +12321,83 @@ var yyDef = [...]int16{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1781, 0, 0, 1781, - 1781, 0, 0, 294, 295, 296, 297, 298, 299, 0, + 0, 0, 0, 0, 0, 0, 1788, 0, 0, 1788, + 1788, 0, 0, 294, 295, 296, 297, 298, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, 314, 315, 316, 317, 318, 373, - 319, 320, 321, 1272, 0, 0, 1008, 0, 107, 973, - 974, 0, 1096, 1781, 0, 0, 1024, 0, 1796, 118, - 127, 129, 1631, 122, 1631, 0, 1028, 0, 0, -2, - -2, 1029, 1030, 1034, 1035, 1036, 1037, 1038, 1039, 1040, - 1041, 1042, 115, 2483, 116, 0, 135, 1654, 0, 1649, - 1672, 0, 0, 0, 0, 1770, 1673, 0, 0, 0, - 109, 0, 140, 141, 1740, 1744, 0, 1683, 0, 1686, - 0, 0, 0, 448, 1690, 0, 0, 0, 1624, 1625, - 1628, 0, 0, 1046, 2185, 1050, 0, 1052, 1053, 0, - 0, 0, 166, 0, 1112, 0, 0, 0, 177, 0, - 179, 180, 0, 0, 0, 459, 1760, 1761, 1762, 1763, + 319, 320, 321, 1279, 0, 0, 1015, 0, 107, 980, + 981, 0, 1103, 1788, 0, 0, 1031, 0, 1803, 118, + 127, 129, 1638, 122, 1638, 0, 1035, 0, 0, -2, + -2, 1036, 1037, 1041, 1042, 1043, 1044, 1045, 1046, 1047, + 1048, 1049, 115, 2490, 116, 0, 135, 1661, 0, 1656, + 1679, 0, 0, 0, 0, 1777, 1680, 0, 0, 0, + 109, 0, 140, 141, 1747, 1751, 0, 1690, 0, 1693, + 0, 0, 0, 448, 1697, 0, 0, 0, 1631, 1632, + 1635, 0, 0, 1053, 2192, 1057, 0, 1059, 1060, 0, + 0, 0, 166, 0, 1119, 0, 0, 0, 177, 0, + 179, 180, 0, 0, 0, 459, 1767, 1768, 1769, 1770, 0, 194, -2, 482, 0, 459, 443, 381, 382, 383, 434, 385, 434, 434, 434, 434, 434, 448, 448, 448, 434, 417, 418, 419, 420, 0, 434, 0, 402, 434, 434, 434, 434, 424, 425, 426, 427, 428, 429, 430, 431, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 436, 436, 436, 436, 436, 440, 440, 0, 1230, 0, - 463, 0, 1628, 0, 0, 1658, 1071, 0, 0, 0, - 0, 650, 698, 601, 638, 651, 0, 604, 605, -2, + 436, 436, 436, 436, 436, 440, 440, 0, 1237, 0, + 463, 0, 1635, 0, 0, 1665, 1078, 0, 0, 0, + 0, 650, 705, 601, 638, 651, 0, 604, 605, -2, 0, 0, 586, 0, 588, 0, 483, 0, -2, 0, 493, 0, 489, 493, 490, 493, 481, 494, 628, 629, - 630, 0, 632, 633, 728, 1082, 0, 0, 0, 0, - 0, 734, 735, 736, 0, 738, 739, 740, 741, 742, - 743, 744, 745, 746, 747, 639, 640, 641, 642, 643, + 630, 0, 632, 633, 735, 1089, 0, 0, 0, 0, + 0, 741, 742, 743, 0, 745, 746, 747, 748, 749, + 750, 751, 752, 753, 754, 639, 640, 641, 642, 643, 644, 645, 646, 0, 0, 0, 0, 588, 0, 635, 0, 0, 539, 540, 541, 0, 0, 544, 545, 546, - 547, 0, 0, 550, 551, 552, 1099, 1100, 553, 554, + 547, 0, 0, 550, 551, 552, 1106, 1107, 553, 554, 579, 580, 581, 555, 556, 557, 558, 559, 560, 561, 573, 574, 575, 576, 577, 578, 562, 563, 564, 565, - 566, 567, 570, 0, 219, 1654, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1768, 0, 0, 0, 0, 0, 1027, - 1114, 1794, 1795, 1800, 1801, 1802, 1803, 1804, 1805, 1806, - 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, - 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, - 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, - 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, - 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, - 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, - 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, - 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, - 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, - 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, - 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, - 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, - 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, - 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, - 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 802, - 0, 0, 913, 914, 0, 487, 488, 912, 812, 862, - 0, 912, 816, 863, 817, 819, 818, 820, 833, 834, - 912, 823, 910, 911, 824, 825, 826, 827, 828, 829, - 830, 866, 877, 879, 881, 835, 836, 837, 916, 0, - 920, 921, 850, 898, 0, 898, 854, 0, 855, 859, - 860, 861, 883, 1631, 0, 0, 893, 0, 875, 0, - 0, 0, 936, 937, 0, 944, 968, 966, 967, 969, - 961, 962, 963, 964, 0, 970, 0, 0, 986, 162, - 991, 992, 993, 994, 1006, 999, 1274, 1132, 1133, 1134, - 0, 1136, 1142, 0, 1257, 1259, 1140, 1141, 1144, 0, - 0, 0, 1138, 1149, 1269, 1270, 1271, 0, 0, 0, - 0, 0, 1153, 1157, 1162, 1163, 1164, 1165, 1166, 0, - 1167, 0, 1170, 1171, 1172, 1173, 1174, 1175, 1181, 1570, - 1571, 1572, 1200, 374, 375, 0, 1201, 0, 0, 0, - 0, 0, 0, 0, 0, 1517, 1518, 1519, 1520, 1521, - 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, - 1532, 1533, 1534, 1535, 1536, 1273, 0, 1782, 0, 0, - 0, 1600, 1597, 0, 0, 0, 1556, 1558, 0, 0, - 0, 1019, 1020, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, - 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 0, 0, - 1573, 0, 0, 0, 0, 0, 0, 0, 1593, 0, - 1206, 1207, 1208, 0, 0, 0, 0, 0, 0, 1335, + 566, 567, 570, 0, 219, 1661, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1775, 0, 0, 0, 0, 0, 1034, + 1121, 1801, 1802, 1807, 1808, 1809, 1810, 1811, 1812, 1813, + 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, + 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, + 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, + 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, + 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, + 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, + 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, + 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, + 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, + 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, + 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, + 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, + 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, + 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, + 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, + 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 809, + 0, 0, 920, 921, 0, 487, 488, 919, 819, 869, + 0, 919, 823, 870, 824, 826, 825, 827, 840, 841, + 919, 830, 917, 918, 831, 832, 833, 834, 835, 836, + 837, 873, 884, 886, 888, 842, 843, 844, 923, 0, + 927, 928, 857, 905, 0, 905, 861, 0, 862, 866, + 867, 868, 890, 1638, 0, 0, 900, 0, 882, 0, + 0, 0, 943, 944, 0, 951, 975, 973, 974, 976, + 968, 969, 970, 971, 0, 977, 0, 0, 993, 162, + 998, 999, 1000, 1001, 1013, 1006, 1281, 1139, 1140, 1141, + 0, 1143, 1149, 0, 1264, 1266, 1147, 1148, 1151, 0, + 0, 0, 1145, 1156, 1276, 1277, 1278, 0, 0, 0, + 0, 0, 1160, 1164, 1169, 1170, 1171, 1172, 1173, 0, + 1174, 0, 1177, 1178, 1179, 1180, 1181, 1182, 1188, 1577, + 1578, 1579, 1207, 374, 375, 0, 1208, 0, 0, 0, + 0, 0, 0, 0, 0, 1524, 1525, 1526, 1527, 1528, + 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, + 1539, 1540, 1541, 1542, 1543, 1280, 0, 1789, 0, 0, + 0, 1607, 1604, 0, 0, 0, 1563, 1565, 0, 0, + 0, 1026, 1027, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, + 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 0, 0, + 1580, 0, 0, 0, 0, 0, 0, 0, 1600, 0, + 1213, 1214, 1215, 0, 0, 0, 0, 0, 0, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12380,215 +12406,217 @@ var yyDef = [...]int16{ 0, 210, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1481, 1482, 1483, 1484, 0, - 0, 0, 0, 0, 0, 0, 1604, 0, 1788, -2, + 0, 0, 0, 0, 0, 1488, 1489, 1490, 1491, 0, + 0, 0, 0, 0, 0, 0, 1611, 0, 1795, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1506, 0, 0, 0, 0, 0, - 0, 1748, 0, 0, 976, 977, 979, 0, 1116, 0, - 1097, 0, 0, 982, 0, 1023, 0, 1026, 121, 123, - 1032, 1033, 0, 1054, 1043, 1044, 1031, 117, 1770, 0, - 0, 1770, 1672, 1654, 1783, 0, 0, 0, 0, 0, - 200, 0, 112, 0, 0, 0, 1684, 1687, 1688, 448, - 1715, 0, 457, 457, 454, 1693, 1634, 1635, 0, 1627, - 1629, 1630, 142, 143, 1051, 1047, 0, 1130, 1130, 0, - 0, 1111, 0, 1058, 1060, 1061, 1062, 1094, 0, 1065, - 1066, 0, 0, 0, 0, 0, 164, 1113, 170, 0, + 0, 0, 0, 0, 1513, 0, 0, 0, 0, 0, + 0, 1755, 0, 0, 983, 984, 986, 0, 1123, 0, + 1104, 0, 0, 989, 0, 1030, 0, 1033, 121, 123, + 1039, 1040, 0, 1061, 1050, 1051, 1038, 117, 1777, 0, + 0, 1777, 1679, 1661, 1790, 0, 0, 0, 0, 0, + 200, 0, 112, 0, 0, 0, 1691, 1694, 1695, 448, + 1722, 0, 457, 457, 454, 1700, 1641, 1642, 0, 1634, + 1636, 1637, 142, 143, 1058, 1054, 0, 1137, 1137, 0, + 0, 1118, 0, 1065, 1067, 1068, 1069, 1101, 0, 1072, + 1073, 0, 0, 0, 0, 0, 164, 1120, 170, 0, 178, 0, 0, 183, 184, 171, 172, 173, 174, 0, - 195, 687, -2, 534, 251, 253, 254, 255, 246, -2, + 195, 694, -2, 534, 251, 253, 254, 255, 246, -2, 446, 444, 445, 384, 448, 448, 410, 411, 448, 413, 414, 415, 416, 0, 422, 0, 403, 404, 405, 406, 395, 0, 396, 397, 398, 438, 0, 399, 400, 0, - 401, 501, 0, 1636, 464, 465, 467, 475, 0, 470, - 471, 0, 475, 475, 0, 496, 497, 0, 1628, 198, - 1660, 1075, 239, 240, 241, 242, 243, 244, 723, 0, - 0, 699, 721, 722, 237, 0, 0, 247, 590, 589, - 0, 755, 0, 499, 0, 0, 493, 493, 478, 479, - 631, 0, 0, 730, 731, 732, 733, 0, 0, 0, + 401, 501, 0, 1643, 464, 465, 467, 475, 0, 470, + 471, 0, 475, 475, 0, 496, 497, 0, 1635, 198, + 1667, 1082, 239, 240, 241, 242, 243, 244, 730, 0, + 0, 706, 728, 729, 237, 0, 0, 247, 590, 589, + 0, 762, 0, 499, 0, 0, 493, 493, 478, 479, + 631, 0, 0, 737, 738, 739, 740, 0, 0, 0, 617, 528, 0, 618, 619, 588, 590, 0, 0, 459, 542, 543, 548, 549, 568, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 666, 667, 669, 672, 0, - 677, 592, 682, 684, 0, 668, 671, 674, 0, 0, - 679, 592, 683, 685, 1651, 1652, 1653, 0, 0, 793, - 0, 0, 525, 160, 1769, 798, 799, 803, 804, 909, - 822, 909, 814, 821, 876, 0, 880, 844, 1631, 0, - 897, 1631, 0, 0, 869, 0, 889, 871, 873, 934, - 935, 940, 948, 949, 950, 990, 0, 0, 0, 0, - 998, 0, 0, 1143, 1258, 1260, 1145, 1146, 1147, 1150, - 0, 1154, 1158, 0, 0, 0, 0, 0, 1205, 1203, - 1604, 0, 0, 0, 1254, 0, 0, 1277, 1278, 0, - 0, 0, 0, 1598, 0, 0, 1285, 0, 1559, 1235, - 0, 0, 0, 0, 0, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1622, 1312, 0, 0, 0, - 0, 0, 1317, 1318, 1319, 1235, 0, 1322, 1323, 0, - 1325, 0, 1326, 0, 0, 0, 0, 1333, 1334, 1336, - 0, 0, 1339, 1340, 0, 1342, 0, 1344, 1345, 1346, - 1347, 1348, 1349, 0, 1351, 0, 1353, 1354, 1355, 0, - 1357, 0, 1359, 1360, 0, 1362, 0, 1364, 0, 1367, - 0, 1370, 0, 1373, 0, 1376, 0, 1379, 0, 1382, - 0, 1385, 0, 1388, 0, 1391, 0, 1394, 0, 1397, - 0, 1400, 0, 1403, 0, 1406, 0, 1409, 0, 1412, - 1413, 1414, 0, 1416, 0, 1418, 0, 1421, 1422, 0, - 1424, 0, 1427, 0, 1430, 0, 0, 1431, 0, 0, - 0, 1435, 0, 0, 0, 0, 1444, 1445, 1446, 1447, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1458, 1459, 1460, 1461, 1462, 1463, 0, 1465, 0, 1236, - 0, 0, 1236, 0, 0, 0, 0, 0, 1275, 1781, - 0, 1560, 1561, 1562, 1563, 1564, 0, 0, 0, 0, - 0, 0, 1504, 1505, 1507, 0, 0, 1510, 0, 1512, - 0, 1749, 975, 978, 980, 1068, 1117, 1118, 0, 0, - 0, 0, 1098, 1780, 1021, 1022, 1025, 1076, 0, 1608, - 0, 0, 1054, 1130, 0, 0, 1056, 0, 0, 0, - 0, 1654, 0, 0, 1784, 1783, 1783, 1783, 224, 0, - 1674, 1675, 1680, 1678, 1679, 114, 1741, 1745, 1697, 1691, - 1709, 1722, 457, 457, 451, 452, 458, 453, 455, 456, - 1626, 0, 1631, 0, 1631, 1738, 0, 0, 1725, 0, - 1729, -2, 0, 0, 0, 0, 0, 0, 0, 1101, - 0, 0, 1104, 0, 0, 0, 0, 1066, 0, 1067, - 0, -2, 0, 0, 158, 159, 0, 0, 0, 181, - 182, 0, 0, 188, 460, 461, 228, 237, 536, 252, - 509, 0, 0, 380, 447, 407, 408, 409, 412, 0, - 432, 0, 0, 0, 0, 530, 197, 1640, 1639, 475, - 475, 466, 0, 469, 0, 0, 0, 1785, 435, 498, - 0, 1661, 1662, 693, 0, 0, 700, 0, 0, 0, - 599, 0, 610, 611, 0, 727, -2, 789, 463, 0, - 477, 480, 1083, 0, 0, 612, 0, 615, 616, 529, - 590, 621, 622, 636, 623, 571, 572, 569, 0, 201, - 657, 659, 663, 658, 662, 0, 0, 0, 0, 675, - 594, 0, 686, 676, 678, 594, 655, 0, 525, 1636, - 0, 797, 526, 527, 912, 912, 878, 852, 899, 900, - 901, 902, 868, 884, 895, 985, 163, 0, 988, 0, - 0, 0, 0, 1151, 1155, 1168, 1169, 1565, 1591, 434, - 434, 1578, 434, 440, 1581, 434, 1583, 434, 1586, 434, - 1589, 1590, 0, 0, 1198, 0, 0, 0, 0, 1284, - 1601, 0, 0, 1295, 1234, 1235, 1235, 1235, 1235, 1235, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1595, 0, 0, 0, 1316, 0, 0, 1320, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 212, 213, 0, - 0, 0, 0, 0, 0, 1515, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1229, 1233, 0, - 1237, 1238, 0, 0, 1467, 0, 0, 1485, 0, 0, - 0, 0, 0, 0, 0, 1605, 1789, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1119, 1126, 0, - 1126, 0, 1126, 0, 0, 0, 1764, 1765, 1609, 1610, - 1130, 1611, 1045, 1055, 1057, 0, 216, 1655, 1656, 1657, - 215, 0, 0, 0, 0, 0, 0, 1771, 0, 1677, - 1681, 1715, 0, 1708, 0, -2, 1717, 0, 0, 0, - 1723, 449, 450, 1048, 144, 1131, 145, 149, 0, 1738, - 1753, 0, 1735, 1742, 1746, 0, 0, 0, 1731, 0, - 1130, 1059, 1090, 1092, 0, 1087, 1102, 1103, 1105, 0, - 1107, 0, 1109, 1110, 1070, 1064, 0, 166, 0, 1130, - 1130, 165, 0, 1115, 185, 186, 187, 535, 256, 261, - 0, 0, 0, 266, 0, 268, 0, 0, 0, 273, - 274, 475, 475, 510, 0, 377, 379, 0, 0, 259, - 448, 0, 448, 0, 439, 441, 0, 511, 531, 1637, - 1638, 0, 0, 468, 472, 473, 474, 0, 696, 0, - 724, 0, 0, 0, 0, 0, 0, 248, 591, 756, - 757, 758, 759, 760, 761, 762, 763, 764, 0, 475, - 0, 0, 0, 475, 475, 475, 0, 781, 462, 0, - 0, 752, 749, 613, 0, 292, 293, 300, 301, 303, - 0, 0, 0, 0, 0, 620, 1070, 204, 0, 0, - 0, 0, 665, 670, 673, 680, 0, 593, 681, 794, - 795, 796, 161, 807, 813, 853, 0, 987, 1007, 1139, - 1152, 1156, 0, 0, 0, 0, 1592, 1576, 448, 1579, - 1580, 1582, 1584, 1585, 1587, 1588, 1194, 1195, 1199, 0, - 1281, 0, 1283, 0, 1599, 0, 1296, 1297, 1298, 1299, - 1300, 1631, 0, 0, 0, 1315, 0, 0, 1235, 0, - 1328, 1327, 1329, 0, 1331, 1332, 1337, 1338, 1341, 1343, - 1350, 1352, 1356, 1358, 1361, 1363, 1365, 0, 1368, 0, - 1371, 0, 1374, 0, 1377, 0, 1380, 0, 1383, 0, - 1386, 0, 1389, 0, 1392, 0, 1395, 0, 1398, 0, - 1401, 0, 1404, 0, 1407, 0, 1410, 0, 1415, 1417, - 0, 1420, 1423, 1425, 0, 1428, 0, 1432, 0, 1434, - 1436, 1437, 0, 0, 0, 1448, 1449, 1450, 1451, 1452, - 1453, 1454, 1455, 1456, 1457, 1464, 0, 1227, 1466, 1239, - 1240, 1245, 1469, 0, 0, 0, 1472, 0, 0, 0, - 1476, 1276, 1487, 0, 1492, 0, 0, 1498, 0, 1502, - 0, 1508, 1509, 1511, 1513, 0, 0, 0, 0, 0, - 0, 0, 1096, 1077, 125, 1611, 1615, 0, -2, 0, - 218, 220, 0, 0, 0, 1676, 1702, 1700, 1700, 1710, - 1711, 0, 0, 1718, 0, 0, 0, 0, 150, 0, - 0, 1724, 0, 0, 1747, 0, 0, 0, 1730, 0, - 167, 1622, 1084, 1091, 0, 0, 1085, 0, 1086, 1106, - 1108, 1063, 0, 1130, 1130, 156, 157, 0, 262, 0, - 264, 0, 267, 269, 270, 271, 277, 278, 279, 280, - 272, 0, 0, 376, 378, 0, 0, 421, 433, 423, - 0, 0, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, - 1659, 688, 0, 698, 0, 1072, 0, 691, 0, 602, - 0, 0, 0, 475, 475, 475, 0, 0, 0, 0, - 766, 0, 0, 729, 0, 737, 0, 0, 0, 304, - 305, 0, 656, 0, 202, 203, 0, 0, 661, 595, - 596, 885, 1192, 0, 0, 0, 1193, 1577, 0, 0, - 0, 0, 0, 1596, 0, 0, 0, 0, 1321, 1324, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1440, 0, 0, 0, 718, 719, 0, 1516, - 1232, 1622, 0, 1236, 1246, 1247, 0, 1236, 1486, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1127, 0, 0, 0, 1078, 1079, 0, 0, 0, 1116, - 1615, 1620, 0, 0, 0, 1664, 1665, 0, 1669, 1670, - 1671, 217, 221, 222, 223, 1705, 0, 1698, 1701, 1699, - 1712, 0, 0, 1719, 0, 1721, 0, 1754, 1755, 1743, - 1736, 0, 1728, 1733, 1735, 1732, 1631, 1088, 0, 1093, - 0, 1622, 155, 0, 265, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 276, 0, 0, - 437, 442, 0, 0, 689, 0, 1073, 701, 692, 0, - 779, 0, 783, 0, 0, 0, 786, 787, 788, 765, - 0, 769, 503, 753, 750, 751, 614, 0, 205, 206, - 0, 0, 0, 1566, 0, 1569, 1279, 1282, 1280, 0, - 1311, 1313, 1314, 1574, 1575, 1330, 1366, 1369, 1372, 1375, - 1378, 1381, 1384, 1387, 1390, 1393, 1396, 1399, 1402, 1405, - 1408, 1411, 1419, 1426, 1429, 1433, 1438, 0, 1441, 0, - 0, 1442, 0, 720, 1223, 0, 0, 1243, 1244, 0, - 1471, 1473, 1474, 1475, 1488, 0, 1493, 1494, 0, 1499, - 0, 1503, 1514, 0, 1121, 1128, 1129, 0, 1124, 0, - 1125, 0, 1069, 1620, 147, 1621, 1618, 0, 1616, 1613, - 110, 1668, 0, 1689, 0, 1703, 1704, 1713, 1714, 1720, - 0, 0, 1735, 0, 1727, 153, 0, 0, 0, 1631, - 263, 0, 283, 697, 0, 700, 690, 777, 778, 0, - 790, 782, 784, 785, 767, -2, 1658, 0, 0, 0, - 664, 1567, 0, 0, 1443, 0, 716, 717, 1231, 1224, - 0, 1209, 1210, 1228, 1468, 1470, 0, 0, 0, 1120, - 1080, 1081, 1122, 1123, 146, 0, 1617, 1251, 0, 1612, - 0, 214, 89, 90, 43, -2, 0, 0, 0, 1666, - 1667, 1706, 1707, 1739, 0, 1726, 1734, 1089, 1096, 0, - 154, 516, 509, 0, 0, 0, 770, 771, 772, 773, - 774, 775, 776, 653, 207, 208, 0, 583, 584, 585, - 201, 0, 1286, 1439, 1225, 0, 0, 0, 0, 0, - 1489, 0, 1495, 0, 1500, 0, 1619, 0, 0, 1614, - 88, 0, -2, 93, 0, 0, 0, 0, 1074, 67, - 68, 69, 50, 74, 75, 83, 77, 1737, 702, 0, - 704, 0, -2, 504, 517, 0, 257, 284, 285, 0, - 0, 288, 0, 290, 291, 281, 282, 0, 0, 791, - 0, 204, 0, 0, 1216, 1217, 1218, 1219, 1221, 0, - 0, 0, 0, 1252, 1229, 44, 94, 110, 85, 0, - 0, 49, 51, 0, 0, 84, 703, 0, 0, 459, - 0, 713, 505, 506, 0, 512, 513, 514, 515, 286, - 287, 289, 725, 0, 582, 660, 1568, 0, 0, 1490, - 0, 1496, 0, 1501, 0, -2, 46, 0, 0, 0, - 52, 0, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 53, 76, 705, 706, 714, 0, - 507, 0, 508, 0, 0, 0, 694, 0, 725, 1226, - 1220, 1222, 0, 0, 1250, 95, 98, 100, 0, 0, - 87, 110, 71, 78, 79, 80, 0, 82, 72, 73, - 48, 0, 0, 715, 711, 518, 520, 521, 0, 0, - 519, 726, 695, 1491, 1497, 0, 110, 99, 0, 0, - 47, 0, 81, 54, 0, 522, 523, 524, 0, -2, - 110, 86, 70, 707, 45, -2, 708, 709, 710, + 0, 0, 0, 0, 0, 666, 667, 670, 674, 0, + 681, 592, 687, 690, 0, 668, 0, 672, 0, 676, + 0, 0, 0, 683, 592, 0, 688, 0, 691, 0, + 1658, 1659, 1660, 0, 0, 800, 0, 0, 525, 160, + 1776, 805, 806, 810, 811, 916, 829, 916, 821, 828, + 883, 0, 887, 851, 1638, 0, 904, 1638, 0, 0, + 876, 0, 896, 878, 880, 941, 942, 947, 955, 956, + 957, 997, 0, 0, 0, 0, 1005, 0, 0, 1150, + 1265, 1267, 1152, 1153, 1154, 1157, 0, 1161, 1165, 0, + 0, 0, 0, 0, 1212, 1210, 1611, 0, 0, 0, + 1261, 0, 0, 1284, 1285, 0, 0, 0, 0, 1605, + 0, 0, 1292, 0, 1566, 1242, 0, 0, 0, 0, + 0, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1629, 1319, 0, 0, 0, 0, 0, 1324, 1325, + 1326, 1242, 0, 1329, 1330, 0, 1332, 0, 1333, 0, + 0, 0, 0, 1340, 1341, 1343, 0, 0, 1346, 1347, + 0, 1349, 0, 1351, 1352, 1353, 1354, 1355, 1356, 0, + 1358, 0, 1360, 1361, 1362, 0, 1364, 0, 1366, 1367, + 0, 1369, 0, 1371, 0, 1374, 0, 1377, 0, 1380, + 0, 1383, 0, 1386, 0, 1389, 0, 1392, 0, 1395, + 0, 1398, 0, 1401, 0, 1404, 0, 1407, 0, 1410, + 0, 1413, 0, 1416, 0, 1419, 1420, 1421, 0, 1423, + 0, 1425, 0, 1428, 1429, 0, 1431, 0, 1434, 0, + 1437, 0, 0, 1438, 0, 0, 0, 1442, 0, 0, + 0, 0, 1451, 1452, 1453, 1454, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1465, 1466, 1467, 1468, + 1469, 1470, 0, 1472, 0, 1243, 0, 0, 1243, 0, + 0, 0, 0, 0, 1282, 1788, 0, 1567, 1568, 1569, + 1570, 1571, 0, 0, 0, 0, 0, 0, 1511, 1512, + 1514, 0, 0, 1517, 0, 1519, 0, 1756, 982, 985, + 987, 1075, 1124, 1125, 0, 0, 0, 0, 1105, 1787, + 1028, 1029, 1032, 1083, 0, 1615, 0, 0, 1061, 1137, + 0, 0, 1063, 0, 0, 0, 0, 1661, 0, 0, + 1791, 1790, 1790, 1790, 224, 0, 1681, 1682, 1687, 1685, + 1686, 114, 1748, 1752, 1704, 1698, 1716, 1729, 457, 457, + 451, 452, 458, 453, 455, 456, 1633, 0, 1638, 0, + 1638, 1745, 0, 0, 1732, 0, 1736, -2, 0, 0, + 0, 0, 0, 0, 0, 1108, 0, 0, 1111, 0, + 0, 0, 0, 1073, 0, 1074, 0, -2, 0, 0, + 158, 159, 0, 0, 0, 181, 182, 0, 0, 188, + 460, 461, 228, 237, 536, 252, 509, 0, 0, 380, + 447, 407, 408, 409, 412, 0, 432, 0, 0, 0, + 0, 530, 197, 1647, 1646, 475, 475, 466, 0, 469, + 0, 0, 0, 1792, 435, 498, 0, 1668, 1669, 700, + 0, 0, 707, 0, 0, 0, 599, 0, 610, 611, + 0, 734, -2, 796, 463, 0, 477, 480, 1090, 0, + 0, 612, 0, 615, 616, 529, 590, 621, 622, 636, + 623, 571, 572, 569, 0, 201, 657, 659, 663, 658, + 662, 0, 0, 0, 0, 678, 594, 0, 693, 669, + 673, 677, 679, 0, 682, 594, 592, 689, 692, 655, + 0, 525, 1643, 0, 804, 526, 527, 919, 919, 885, + 859, 906, 907, 908, 909, 875, 891, 902, 992, 163, + 0, 995, 0, 0, 0, 0, 1158, 1162, 1175, 1176, + 1572, 1598, 434, 434, 1585, 434, 440, 1588, 434, 1590, + 434, 1593, 434, 1596, 1597, 0, 0, 1205, 0, 0, + 0, 0, 1291, 1608, 0, 0, 1302, 1241, 1242, 1242, + 1242, 1242, 1242, 1308, 1309, 1310, 1311, 1312, 1313, 1314, + 1315, 1316, 1317, 1602, 0, 0, 0, 1323, 0, 0, + 1327, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 212, 213, 0, 0, 0, 0, 0, 0, 1522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1236, 1240, 0, 1244, 1245, 0, 0, 1474, 0, 0, + 1492, 0, 0, 0, 0, 0, 0, 0, 1612, 1796, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1126, 1133, 0, 1133, 0, 1133, 0, 0, 0, 1771, + 1772, 1616, 1617, 1137, 1618, 1052, 1062, 1064, 0, 216, + 1662, 1663, 1664, 215, 0, 0, 0, 0, 0, 0, + 1778, 0, 1684, 1688, 1722, 0, 1715, 0, -2, 1724, + 0, 0, 0, 1730, 449, 450, 1055, 144, 1138, 145, + 149, 0, 1745, 1760, 0, 1742, 1749, 1753, 0, 0, + 0, 1738, 0, 1137, 1066, 1097, 1099, 0, 1094, 1109, + 1110, 1112, 0, 1114, 0, 1116, 1117, 1077, 1071, 0, + 166, 0, 1137, 1137, 165, 0, 1122, 185, 186, 187, + 535, 256, 261, 0, 0, 0, 266, 0, 268, 0, + 0, 0, 273, 274, 475, 475, 510, 0, 377, 379, + 0, 0, 259, 448, 0, 448, 0, 439, 441, 0, + 511, 531, 1644, 1645, 0, 0, 468, 472, 473, 474, + 0, 703, 0, 731, 0, 0, 0, 0, 0, 0, + 248, 591, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 0, 475, 0, 0, 0, 475, 475, 475, 0, + 788, 462, 0, 0, 759, 756, 613, 0, 292, 293, + 300, 301, 303, 0, 0, 0, 0, 0, 620, 1077, + 204, 0, 0, 0, 0, 665, 671, 675, 684, 0, + 593, 680, 685, 594, 801, 802, 803, 161, 814, 820, + 860, 0, 994, 1014, 1146, 1159, 1163, 0, 0, 0, + 0, 1599, 1583, 448, 1586, 1587, 1589, 1591, 1592, 1594, + 1595, 1201, 1202, 1206, 0, 1288, 0, 1290, 0, 1606, + 0, 1303, 1304, 1305, 1306, 1307, 1638, 0, 0, 0, + 1322, 0, 0, 1242, 0, 1335, 1334, 1336, 0, 1338, + 1339, 1344, 1345, 1348, 1350, 1357, 1359, 1363, 1365, 1368, + 1370, 1372, 0, 1375, 0, 1378, 0, 1381, 0, 1384, + 0, 1387, 0, 1390, 0, 1393, 0, 1396, 0, 1399, + 0, 1402, 0, 1405, 0, 1408, 0, 1411, 0, 1414, + 0, 1417, 0, 1422, 1424, 0, 1427, 1430, 1432, 0, + 1435, 0, 1439, 0, 1441, 1443, 1444, 0, 0, 0, + 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, + 1471, 0, 1234, 1473, 1246, 1247, 1252, 1476, 0, 0, + 0, 1479, 0, 0, 0, 1483, 1283, 1494, 0, 1499, + 0, 0, 1505, 0, 1509, 0, 1515, 1516, 1518, 1520, + 0, 0, 0, 0, 0, 0, 0, 1103, 1084, 125, + 1618, 1622, 0, -2, 0, 218, 220, 0, 0, 0, + 1683, 1709, 1707, 1707, 1717, 1718, 0, 0, 1725, 0, + 0, 0, 0, 150, 0, 0, 1731, 0, 0, 1754, + 0, 0, 0, 1737, 0, 167, 1629, 1091, 1098, 0, + 0, 1092, 0, 1093, 1113, 1115, 1070, 0, 1137, 1137, + 156, 157, 0, 262, 0, 264, 0, 267, 269, 270, + 271, 277, 278, 279, 280, 272, 0, 0, 376, 378, + 0, 0, 421, 433, 423, 0, 0, 1648, 1649, 1650, + 1651, 1652, 1653, 1654, 1655, 1666, 695, 0, 705, 0, + 1079, 0, 698, 0, 602, 0, 0, 0, 475, 475, + 475, 0, 0, 0, 0, 773, 0, 0, 736, 0, + 744, 0, 0, 0, 304, 305, 0, 656, 0, 202, + 203, 0, 0, 661, 595, 596, 686, 892, 1199, 0, + 0, 0, 1200, 1584, 0, 0, 0, 0, 0, 1603, + 0, 0, 0, 0, 1328, 1331, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1447, 0, + 0, 0, 725, 726, 0, 1523, 1239, 1629, 0, 1243, + 1253, 1254, 0, 1243, 1493, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1134, 0, 0, 0, + 1085, 1086, 0, 0, 0, 1123, 1622, 1627, 0, 0, + 0, 1671, 1672, 0, 1676, 1677, 1678, 217, 221, 222, + 223, 1712, 0, 1705, 1708, 1706, 1719, 0, 0, 1726, + 0, 1728, 0, 1761, 1762, 1750, 1743, 0, 1735, 1740, + 1742, 1739, 1638, 1095, 0, 1100, 0, 1629, 155, 0, + 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 275, 276, 0, 0, 437, 442, 0, 0, + 696, 0, 1080, 708, 699, 0, 786, 0, 790, 0, + 0, 0, 793, 794, 795, 772, 0, 776, 503, 760, + 757, 758, 614, 0, 205, 206, 0, 0, 0, 1573, + 0, 1576, 1286, 1289, 1287, 0, 1318, 1320, 1321, 1581, + 1582, 1337, 1373, 1376, 1379, 1382, 1385, 1388, 1391, 1394, + 1397, 1400, 1403, 1406, 1409, 1412, 1415, 1418, 1426, 1433, + 1436, 1440, 1445, 0, 1448, 0, 0, 1449, 0, 727, + 1230, 0, 0, 1250, 1251, 0, 1478, 1480, 1481, 1482, + 1495, 0, 1500, 1501, 0, 1506, 0, 1510, 1521, 0, + 1128, 1135, 1136, 0, 1131, 0, 1132, 0, 1076, 1627, + 147, 1628, 1625, 0, 1623, 1620, 110, 1675, 0, 1696, + 0, 1710, 1711, 1720, 1721, 1727, 0, 0, 1742, 0, + 1734, 153, 0, 0, 0, 1638, 263, 0, 283, 704, + 0, 707, 697, 784, 785, 0, 797, 789, 791, 792, + 774, -2, 1665, 0, 0, 0, 664, 1574, 0, 0, + 1450, 0, 723, 724, 1238, 1231, 0, 1216, 1217, 1235, + 1475, 1477, 0, 0, 0, 1127, 1087, 1088, 1129, 1130, + 146, 0, 1624, 1258, 0, 1619, 0, 214, 89, 90, + 43, -2, 0, 0, 0, 1673, 1674, 1713, 1714, 1746, + 0, 1733, 1741, 1096, 1103, 0, 154, 516, 509, 0, + 0, 0, 777, 778, 779, 780, 781, 782, 783, 653, + 207, 208, 0, 583, 584, 585, 201, 0, 1293, 1446, + 1232, 0, 0, 0, 0, 0, 1496, 0, 1502, 0, + 1507, 0, 1626, 0, 0, 1621, 88, 0, -2, 93, + 0, 0, 0, 0, 1081, 67, 68, 69, 50, 74, + 75, 83, 77, 1744, 709, 0, 711, 0, -2, 504, + 517, 0, 257, 284, 285, 0, 0, 288, 0, 290, + 291, 281, 282, 0, 0, 798, 0, 204, 0, 0, + 1223, 1224, 1225, 1226, 1228, 0, 0, 0, 0, 1259, + 1236, 44, 94, 110, 85, 0, 0, 49, 51, 0, + 0, 84, 710, 0, 0, 459, 0, 720, 505, 506, + 0, 512, 513, 514, 515, 286, 287, 289, 732, 0, + 582, 660, 1575, 0, 0, 1497, 0, 1503, 0, 1508, + 0, -2, 46, 0, 0, 0, 52, 0, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 53, 76, 712, 713, 721, 0, 507, 0, 508, 0, + 0, 0, 701, 0, 732, 1233, 1227, 1229, 0, 0, + 1257, 95, 98, 100, 0, 0, 87, 110, 71, 78, + 79, 80, 0, 82, 72, 73, 48, 0, 0, 722, + 718, 518, 520, 521, 0, 0, 519, 733, 702, 1498, + 1504, 0, 110, 99, 0, 0, 47, 0, 81, 54, + 0, 522, 523, 524, 0, -2, 110, 86, 70, 714, + 45, -2, 715, 716, 717, } var yyTok1 = [...]int16{ @@ -18053,9 +18081,24 @@ yydefault: } yyVAL.setstatement(yyLOCAL) case 669: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement //line sql.y:3736 + { + if yyDollar[6].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + yyLOCAL = &AlterMigration{ + Type: CleanupAllMigrationType, + Context: yyDollar[6].str(), + } + } + yyVAL.setstatement(yyLOCAL) + case 670: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:3747 { yyLOCAL = &AlterMigration{ Type: LaunchMigrationType, @@ -18063,10 +18106,10 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 670: + case 671: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3743 +//line sql.y:3754 { yyLOCAL = &AlterMigration{ Type: LaunchMigrationType, @@ -18075,20 +18118,35 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 671: + case 672: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3751 +//line sql.y:3762 { yyLOCAL = &AlterMigration{ Type: LaunchAllMigrationType, } } yyVAL.setstatement(yyLOCAL) - case 672: + case 673: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3768 + { + if yyDollar[6].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + yyLOCAL = &AlterMigration{ + Type: LaunchAllMigrationType, + Context: yyDollar[6].str(), + } + } + yyVAL.setstatement(yyLOCAL) + case 674: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3757 +//line sql.y:3779 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -18096,10 +18154,10 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 673: + case 675: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3764 +//line sql.y:3786 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -18108,20 +18166,35 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 674: + case 676: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3772 +//line sql.y:3794 { yyLOCAL = &AlterMigration{ Type: CompleteAllMigrationType, } } yyVAL.setstatement(yyLOCAL) - case 675: + case 677: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3800 + { + if yyDollar[6].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + yyLOCAL = &AlterMigration{ + Type: CompleteAllMigrationType, + Context: yyDollar[6].str(), + } + } + yyVAL.setstatement(yyLOCAL) + case 678: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3778 +//line sql.y:3811 { yyLOCAL = &AlterMigration{ Type: PostponeCompleteMigrationType, @@ -18129,20 +18202,35 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 676: + case 679: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3785 +//line sql.y:3818 { yyLOCAL = &AlterMigration{ Type: PostponeCompleteAllMigrationType, } } yyVAL.setstatement(yyLOCAL) - case 677: + case 680: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:3824 + { + if yyDollar[7].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + yyLOCAL = &AlterMigration{ + Type: PostponeCompleteAllMigrationType, + Context: yyDollar[7].str(), + } + } + yyVAL.setstatement(yyLOCAL) + case 681: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3791 +//line sql.y:3835 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -18150,10 +18238,10 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 678: + case 682: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3798 +//line sql.y:3842 { if yyDollar[6].str() == "" { yylex.Error("migration context cannot be empty") @@ -18165,20 +18253,20 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 679: + case 683: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3809 +//line sql.y:3853 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.setstatement(yyLOCAL) - case 680: + case 684: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3815 +//line sql.y:3859 { yyLOCAL = &AlterMigration{ Type: ThrottleMigrationType, @@ -18188,22 +18276,39 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 681: - yyDollar = yyS[yypt-7 : yypt+1] + case 685: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:3868 + { + yyLOCAL = &AlterMigration{ + Type: ThrottleAllMigrationType, + Expire: yyDollar[6].str(), + Ratio: yyDollar[7].literal(), + } + } + yyVAL.setstatement(yyLOCAL) + case 686: + yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:3824 +//line sql.y:3876 { + if yyDollar[6].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } yyLOCAL = &AlterMigration{ - Type: ThrottleAllMigrationType, - Expire: yyDollar[6].str(), - Ratio: yyDollar[7].literal(), + Type: ThrottleAllMigrationType, + Context: yyDollar[6].str(), + Expire: yyDollar[7].str(), + Ratio: yyDollar[8].literal(), } } yyVAL.setstatement(yyLOCAL) - case 682: + case 687: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3832 +//line sql.y:3889 { yyLOCAL = &AlterMigration{ Type: UnthrottleMigrationType, @@ -18211,20 +18316,35 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 683: + case 688: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3839 +//line sql.y:3896 { yyLOCAL = &AlterMigration{ Type: UnthrottleAllMigrationType, } } yyVAL.setstatement(yyLOCAL) - case 684: + case 689: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3902 + { + if yyDollar[6].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + yyLOCAL = &AlterMigration{ + Type: UnthrottleAllMigrationType, + Context: yyDollar[6].str(), + } + } + yyVAL.setstatement(yyLOCAL) + case 690: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3845 +//line sql.y:3913 { yyLOCAL = &AlterMigration{ Type: ForceCutOverMigrationType, @@ -18232,20 +18352,35 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 685: + case 691: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3852 +//line sql.y:3920 { yyLOCAL = &AlterMigration{ Type: ForceCutOverAllMigrationType, } } yyVAL.setstatement(yyLOCAL) - case 686: + case 692: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3926 + { + if yyDollar[6].str() == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + yyLOCAL = &AlterMigration{ + Type: ForceCutOverAllMigrationType, + Context: yyDollar[6].str(), + } + } + yyVAL.setstatement(yyLOCAL) + case 693: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3858 +//line sql.y:3937 { yyLOCAL = &AlterMigration{ Type: SetCutOverThresholdMigrationType, @@ -18254,18 +18389,18 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 687: + case 694: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3867 +//line sql.y:3946 { yyLOCAL = nil } yyVAL.setpartitionOption(yyLOCAL) - case 688: + case 695: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3871 +//line sql.y:3950 { yyDollar[3].partitionOption().Partitions = yyDollar[4].integer() yyDollar[3].partitionOption().SubPartition = yyDollar[5].subPartition() @@ -18273,10 +18408,10 @@ yydefault: yyLOCAL = yyDollar[3].partitionOption() } yyVAL.setpartitionOption(yyLOCAL) - case 689: + case 696: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3880 +//line sql.y:3959 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].boolean(), @@ -18285,10 +18420,10 @@ yydefault: } } yyVAL.setpartitionOption(yyLOCAL) - case 690: + case 697: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3888 +//line sql.y:3967 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].boolean(), @@ -18298,10 +18433,10 @@ yydefault: } } yyVAL.setpartitionOption(yyLOCAL) - case 691: + case 698: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3897 +//line sql.y:3976 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByType(), @@ -18309,10 +18444,10 @@ yydefault: } } yyVAL.setpartitionOption(yyLOCAL) - case 692: + case 699: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3904 +//line sql.y:3983 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByType(), @@ -18320,18 +18455,18 @@ yydefault: } } yyVAL.setpartitionOption(yyLOCAL) - case 693: + case 700: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3912 +//line sql.y:3991 { yyLOCAL = nil } yyVAL.setsubPartition(yyLOCAL) - case 694: + case 701: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3916 +//line sql.y:3995 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].boolean(), @@ -18341,10 +18476,10 @@ yydefault: } } yyVAL.setsubPartition(yyLOCAL) - case 695: + case 702: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3925 +//line sql.y:4004 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].boolean(), @@ -18355,681 +18490,681 @@ yydefault: } } yyVAL.setsubPartition(yyLOCAL) - case 696: + case 703: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3937 +//line sql.y:4016 { yyLOCAL = nil } yyVAL.setpartDefs(yyLOCAL) - case 697: + case 704: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3941 +//line sql.y:4020 { yyLOCAL = yyDollar[2].partDefs() } yyVAL.setpartDefs(yyLOCAL) - case 698: + case 705: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3946 +//line sql.y:4025 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 699: + case 706: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3950 +//line sql.y:4029 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 700: + case 707: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3955 +//line sql.y:4034 { yyLOCAL = 0 } yyVAL.setinteger(yyLOCAL) - case 701: + case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3959 +//line sql.y:4038 { yyLOCAL = convertStringToInt(yyDollar[3].str()) } yyVAL.setinteger(yyLOCAL) - case 702: + case 709: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3965 +//line sql.y:4044 { yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].expr(), Filter: yyDollar[5].expr(), Columns: yyDollar[6].jtColumnList(), Alias: yyDollar[8].identifierCS()} } yyVAL.settableExpr(yyLOCAL) - case 703: + case 710: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3971 +//line sql.y:4050 { yyLOCAL = yyDollar[3].jtColumnList() } yyVAL.setjtColumnList(yyLOCAL) - case 704: + case 711: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3977 +//line sql.y:4056 { yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinition()} } yyVAL.setjtColumnList(yyLOCAL) - case 705: + case 712: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3981 +//line sql.y:4060 { yyLOCAL = append(yyDollar[1].jtColumnList(), yyDollar[3].jtColumnDefinition()) } yyVAL.setjtColumnList(yyLOCAL) - case 706: + case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3987 +//line sql.y:4066 { yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].identifierCI()}} } yyVAL.setjtColumnDefinition(yyLOCAL) - case 707: + case 714: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3991 +//line sql.y:4070 { yyDollar[2].columnType().Options = &ColumnTypeOptions{Collate: yyDollar[3].str()} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI(), Type: yyDollar[2].columnType(), JtColExists: yyDollar[4].boolean(), Path: yyDollar[6].expr()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.setjtColumnDefinition(yyLOCAL) - case 708: + case 715: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3997 +//line sql.y:4076 { yyDollar[2].columnType().Options = &ColumnTypeOptions{Collate: yyDollar[3].str()} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI(), Type: yyDollar[2].columnType(), JtColExists: yyDollar[4].boolean(), Path: yyDollar[6].expr(), EmptyOnResponse: yyDollar[7].jtOnResponse()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.setjtColumnDefinition(yyLOCAL) - case 709: + case 716: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:4003 +//line sql.y:4082 { yyDollar[2].columnType().Options = &ColumnTypeOptions{Collate: yyDollar[3].str()} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI(), Type: yyDollar[2].columnType(), JtColExists: yyDollar[4].boolean(), Path: yyDollar[6].expr(), ErrorOnResponse: yyDollar[7].jtOnResponse()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.setjtColumnDefinition(yyLOCAL) - case 710: + case 717: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:4009 +//line sql.y:4088 { yyDollar[2].columnType().Options = &ColumnTypeOptions{Collate: yyDollar[3].str()} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI(), Type: yyDollar[2].columnType(), JtColExists: yyDollar[4].boolean(), Path: yyDollar[6].expr(), EmptyOnResponse: yyDollar[7].jtOnResponse(), ErrorOnResponse: yyDollar[8].jtOnResponse()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.setjtColumnDefinition(yyLOCAL) - case 711: + case 718: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:4015 +//line sql.y:4094 { jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].expr(), Columns: yyDollar[4].jtColumnList()} yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath} } yyVAL.setjtColumnDefinition(yyLOCAL) - case 712: + case 719: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4021 +//line sql.y:4100 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 713: + case 720: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4025 +//line sql.y:4104 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 714: + case 721: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4029 +//line sql.y:4108 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 715: + case 722: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4033 +//line sql.y:4112 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 716: + case 723: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:4039 +//line sql.y:4118 { yyLOCAL = yyDollar[1].jtOnResponse() } yyVAL.setjtOnResponse(yyLOCAL) - case 717: + case 724: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:4045 +//line sql.y:4124 { yyLOCAL = yyDollar[1].jtOnResponse() } yyVAL.setjtOnResponse(yyLOCAL) - case 718: + case 725: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:4051 +//line sql.y:4130 { yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType} } yyVAL.setjtOnResponse(yyLOCAL) - case 719: + case 726: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:4055 +//line sql.y:4134 { yyLOCAL = &JtOnResponse{ResponseType: NullJSONType} } yyVAL.setjtOnResponse(yyLOCAL) - case 720: + case 727: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:4059 +//line sql.y:4138 { yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].expr()} } yyVAL.setjtOnResponse(yyLOCAL) - case 721: + case 728: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:4065 +//line sql.y:4144 { yyLOCAL = RangeType } yyVAL.setpartitionByType(yyLOCAL) - case 722: + case 729: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:4069 +//line sql.y:4148 { yyLOCAL = ListType } yyVAL.setpartitionByType(yyLOCAL) - case 723: + case 730: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:4074 +//line sql.y:4153 { yyLOCAL = -1 } yyVAL.setinteger(yyLOCAL) - case 724: + case 731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:4078 +//line sql.y:4157 { yyLOCAL = convertStringToInt(yyDollar[2].str()) } yyVAL.setinteger(yyLOCAL) - case 725: + case 732: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:4083 +//line sql.y:4162 { yyLOCAL = -1 } yyVAL.setinteger(yyLOCAL) - case 726: + case 733: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:4087 +//line sql.y:4166 { yyLOCAL = convertStringToInt(yyDollar[2].str()) } yyVAL.setinteger(yyLOCAL) - case 727: + case 734: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4093 +//line sql.y:4172 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDef()}} } yyVAL.setpartSpec(yyLOCAL) - case 728: + case 735: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4097 +//line sql.y:4176 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 729: + case 736: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4101 +//line sql.y:4180 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitions(), Definitions: yyDollar[6].partDefs()} } yyVAL.setpartSpec(yyLOCAL) - case 730: + case 737: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4105 +//line sql.y:4184 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 731: + case 738: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4109 +//line sql.y:4188 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 732: + case 739: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4113 +//line sql.y:4192 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 733: + case 740: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4117 +//line sql.y:4196 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 734: + case 741: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4121 +//line sql.y:4200 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 735: + case 742: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4125 +//line sql.y:4204 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 736: + case 743: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4129 +//line sql.y:4208 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str())} } yyVAL.setpartSpec(yyLOCAL) - case 737: + case 744: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4133 +//line sql.y:4212 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].identifierCI()}, TableName: yyDollar[6].tableName(), WithoutValidation: yyDollar[7].boolean()} } yyVAL.setpartSpec(yyLOCAL) - case 738: + case 745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4137 +//line sql.y:4216 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 739: + case 746: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4141 +//line sql.y:4220 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 740: + case 747: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4145 +//line sql.y:4224 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 741: + case 748: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4149 +//line sql.y:4228 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 742: + case 749: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4153 +//line sql.y:4232 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 743: + case 750: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4157 +//line sql.y:4236 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 744: + case 751: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4161 +//line sql.y:4240 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 745: + case 752: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4165 +//line sql.y:4244 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 746: + case 753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4169 +//line sql.y:4248 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitions()} } yyVAL.setpartSpec(yyLOCAL) - case 747: + case 754: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4173 +//line sql.y:4252 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.setpartSpec(yyLOCAL) - case 748: + case 755: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:4177 +//line sql.y:4256 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.setpartSpec(yyLOCAL) - case 749: + case 756: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4182 +//line sql.y:4261 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 750: + case 757: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4186 +//line sql.y:4265 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 751: + case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4190 +//line sql.y:4269 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 752: + case 759: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:4196 +//line sql.y:4275 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDef()} } yyVAL.setpartDefs(yyLOCAL) - case 753: + case 760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:4200 +//line sql.y:4279 { yyLOCAL = append(yyDollar[1].partDefs(), yyDollar[3].partDef()) } yyVAL.setpartDefs(yyLOCAL) - case 754: + case 761: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4206 +//line sql.y:4285 { yyVAL.partDef().Options = yyDollar[2].partitionDefinitionOptions() } - case 755: + case 762: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4211 +//line sql.y:4290 { yyLOCAL = &PartitionDefinitionOptions{} } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 756: + case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4215 +//line sql.y:4294 { yyDollar[1].partitionDefinitionOptions().ValueRange = yyDollar[2].partitionValueRange() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 757: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4220 +//line sql.y:4299 { yyDollar[1].partitionDefinitionOptions().Comment = yyDollar[2].literal() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 758: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4225 +//line sql.y:4304 { yyDollar[1].partitionDefinitionOptions().Engine = yyDollar[2].partitionEngine() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 759: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4230 +//line sql.y:4309 { yyDollar[1].partitionDefinitionOptions().DataDirectory = yyDollar[2].literal() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 760: + case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4235 +//line sql.y:4314 { yyDollar[1].partitionDefinitionOptions().IndexDirectory = yyDollar[2].literal() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 761: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4240 +//line sql.y:4319 { yyDollar[1].partitionDefinitionOptions().MaxRows = ptr.Of(yyDollar[2].integer()) yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 762: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4245 +//line sql.y:4324 { yyDollar[1].partitionDefinitionOptions().MinRows = ptr.Of(yyDollar[2].integer()) yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 763: + case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4250 +//line sql.y:4329 { yyDollar[1].partitionDefinitionOptions().TableSpace = yyDollar[2].str() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 764: + case 771: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:4255 +//line sql.y:4334 { yyDollar[1].partitionDefinitionOptions().SubPartitionDefinitions = yyDollar[2].subPartitionDefinitions() yyLOCAL = yyDollar[1].partitionDefinitionOptions() } yyVAL.setpartitionDefinitionOptions(yyLOCAL) - case 765: + case 772: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:4261 +//line sql.y:4340 { yyLOCAL = yyDollar[2].subPartitionDefinitions() } yyVAL.setsubPartitionDefinitions(yyLOCAL) - case 766: + case 773: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:4267 +//line sql.y:4346 { yyLOCAL = SubPartitionDefinitions{yyDollar[1].subPartitionDefinition()} } yyVAL.setsubPartitionDefinitions(yyLOCAL) - case 767: + case 774: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:4271 +//line sql.y:4350 { yyLOCAL = append(yyDollar[1].subPartitionDefinitions(), yyDollar[3].subPartitionDefinition()) } yyVAL.setsubPartitionDefinitions(yyLOCAL) - case 768: + case 775: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SubPartitionDefinition -//line sql.y:4277 +//line sql.y:4356 { yyLOCAL = &SubPartitionDefinition{Name: yyDollar[2].identifierCI(), Options: yyDollar[3].subPartitionDefinitionOptions()} } yyVAL.setsubPartitionDefinition(yyLOCAL) - case 769: + case 776: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4282 +//line sql.y:4361 { yyLOCAL = &SubPartitionDefinitionOptions{} } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 770: + case 777: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4286 +//line sql.y:4365 { yyDollar[1].subPartitionDefinitionOptions().Comment = yyDollar[2].literal() yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 771: + case 778: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4291 +//line sql.y:4370 { yyDollar[1].subPartitionDefinitionOptions().Engine = yyDollar[2].partitionEngine() yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 772: + case 779: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4296 +//line sql.y:4375 { yyDollar[1].subPartitionDefinitionOptions().DataDirectory = yyDollar[2].literal() yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 773: + case 780: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4301 +//line sql.y:4380 { yyDollar[1].subPartitionDefinitionOptions().IndexDirectory = yyDollar[2].literal() yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 774: + case 781: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4306 +//line sql.y:4385 { yyDollar[1].subPartitionDefinitionOptions().MaxRows = ptr.Of(yyDollar[2].integer()) yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 775: + case 782: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4311 +//line sql.y:4390 { yyDollar[1].subPartitionDefinitionOptions().MinRows = ptr.Of(yyDollar[2].integer()) yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 776: + case 783: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:4316 +//line sql.y:4395 { yyDollar[1].subPartitionDefinitionOptions().TableSpace = yyDollar[2].str() yyLOCAL = yyDollar[1].subPartitionDefinitionOptions() } yyVAL.setsubPartitionDefinitionOptions(yyLOCAL) - case 777: + case 784: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:4323 +//line sql.y:4402 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -19037,10 +19172,10 @@ yydefault: } } yyVAL.setpartitionValueRange(yyLOCAL) - case 778: + case 785: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:4330 +//line sql.y:4409 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -19048,10 +19183,10 @@ yydefault: } } yyVAL.setpartitionValueRange(yyLOCAL) - case 779: + case 786: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:4337 +//line sql.y:4416 { yyLOCAL = &PartitionValueRange{ Type: InType, @@ -19059,138 +19194,138 @@ yydefault: } } yyVAL.setpartitionValueRange(yyLOCAL) - case 780: + case 787: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4345 +//line sql.y:4424 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 781: + case 788: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4349 +//line sql.y:4428 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 782: + case 789: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionEngine -//line sql.y:4355 +//line sql.y:4434 { yyLOCAL = &PartitionEngine{Storage: yyDollar[1].boolean(), Name: yyDollar[4].identifierCS().String()} } yyVAL.setpartitionEngine(yyLOCAL) - case 783: + case 790: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:4361 +//line sql.y:4440 { yyLOCAL = NewStrLiteral(yyDollar[3].str()) } yyVAL.setliteral(yyLOCAL) - case 784: + case 791: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:4367 +//line sql.y:4446 { yyLOCAL = NewStrLiteral(yyDollar[4].str()) } yyVAL.setliteral(yyLOCAL) - case 785: + case 792: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:4373 +//line sql.y:4452 { yyLOCAL = NewStrLiteral(yyDollar[4].str()) } yyVAL.setliteral(yyLOCAL) - case 786: + case 793: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:4379 +//line sql.y:4458 { yyLOCAL = convertStringToInt(yyDollar[3].str()) } yyVAL.setinteger(yyLOCAL) - case 787: + case 794: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:4385 +//line sql.y:4464 { yyLOCAL = convertStringToInt(yyDollar[3].str()) } yyVAL.setinteger(yyLOCAL) - case 788: + case 795: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:4391 +//line sql.y:4470 { yyLOCAL = yyDollar[3].identifierCS().String() } yyVAL.setstr(yyLOCAL) - case 789: + case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:4397 +//line sql.y:4476 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].identifierCI()} } yyVAL.setpartDef(yyLOCAL) - case 790: + case 797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4403 +//line sql.y:4482 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 791: + case 798: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:4407 +//line sql.y:4486 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 792: + case 799: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4413 +//line sql.y:4492 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairs()} } yyVAL.setstatement(yyLOCAL) - case 793: + case 800: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:4419 +//line sql.y:4498 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName(), ToTable: yyDollar[3].tableName()}} } yyVAL.setrenameTablePairs(yyLOCAL) - case 794: + case 801: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:4423 +//line sql.y:4502 { yyLOCAL = append(yyDollar[1].renameTablePairs(), &RenameTablePair{FromTable: yyDollar[3].tableName(), ToTable: yyDollar[5].tableName()}) } yyVAL.setrenameTablePairs(yyLOCAL) - case 795: + case 802: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4429 +//line sql.y:4508 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNames(), IfExists: yyDollar[5].boolean(), Comments: Comments(yyDollar[2].strs()).Parsed(), Temp: yyDollar[3].boolean()} } yyVAL.setstatement(yyLOCAL) - case 796: + case 803: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4433 +//line sql.y:4512 { // Change this to an alter statement if yyDollar[4].identifierCI().Lowered() == "primary" { @@ -19200,450 +19335,450 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 797: + case 804: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4442 +//line sql.y:4521 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNames(), Comments: Comments(yyDollar[2].strs()).Parsed(), IfExists: yyDollar[4].boolean()} } yyVAL.setstatement(yyLOCAL) - case 798: + case 805: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4446 +//line sql.y:4525 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs()).Parsed(), DBName: yyDollar[5].identifierCS(), IfExists: yyDollar[4].boolean()} } yyVAL.setstatement(yyLOCAL) - case 799: + case 806: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4450 +//line sql.y:4529 { yyLOCAL = &DropProcedure{Comments: Comments(yyDollar[2].strs()).Parsed(), Name: yyDollar[5].tableName(), IfExists: yyDollar[4].boolean()} } yyVAL.setstatement(yyLOCAL) - case 800: + case 807: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4456 +//line sql.y:4535 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName()} } yyVAL.setstatement(yyLOCAL) - case 801: + case 808: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4460 +//line sql.y:4539 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName()} } yyVAL.setstatement(yyLOCAL) - case 802: + case 809: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4466 +//line sql.y:4545 { yyLOCAL = &Analyze{IsLocal: yyDollar[2].boolean(), Table: yyDollar[4].tableName()} } yyVAL.setstatement(yyLOCAL) - case 803: + case 810: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4472 +//line sql.y:4551 { yyLOCAL = &PurgeBinaryLogs{To: string(yyDollar[5].str())} } yyVAL.setstatement(yyLOCAL) - case 804: + case 811: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4476 +//line sql.y:4555 { yyLOCAL = &PurgeBinaryLogs{Before: string(yyDollar[5].str())} } yyVAL.setstatement(yyLOCAL) - case 805: + case 812: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4482 +//line sql.y:4561 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 806: + case 813: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4486 +//line sql.y:4565 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 807: + case 814: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4490 +//line sql.y:4569 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].boolean(), Command: Column, Tbl: yyDollar[5].tableName(), DbName: yyDollar[6].identifierCS(), Filter: yyDollar[7].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 808: + case 815: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4494 +//line sql.y:4573 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 809: + case 816: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4498 +//line sql.y:4577 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 810: + case 817: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4502 +//line sql.y:4581 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 811: + case 818: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4506 +//line sql.y:4585 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 812: + case 819: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4510 +//line sql.y:4589 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 813: + case 820: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4514 +//line sql.y:4593 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName(), DbName: yyDollar[6].identifierCS(), Filter: yyDollar[7].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 814: + case 821: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4518 +//line sql.y:4597 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].identifierCS(), Filter: yyDollar[5].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 815: + case 822: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4522 +//line sql.y:4601 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.setstatement(yyLOCAL) - case 816: + case 823: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4526 +//line sql.y:4605 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 817: + case 824: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4530 +//line sql.y:4609 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 818: + case 825: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4534 +//line sql.y:4613 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 819: + case 826: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4538 +//line sql.y:4617 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 820: + case 827: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4542 +//line sql.y:4621 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 821: + case 828: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4546 +//line sql.y:4625 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].identifierCS(), Filter: yyDollar[5].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 822: + case 829: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4550 +//line sql.y:4629 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].boolean(), DbName: yyDollar[4].identifierCS(), Filter: yyDollar[5].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 823: + case 830: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4554 +//line sql.y:4633 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].identifierCS(), Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 824: + case 831: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4558 +//line sql.y:4637 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 825: + case 832: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4562 +//line sql.y:4641 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 826: + case 833: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4566 +//line sql.y:4645 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 827: + case 834: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4570 +//line sql.y:4649 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 828: + case 835: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4574 +//line sql.y:4653 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 829: + case 836: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4578 +//line sql.y:4657 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 830: + case 837: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4582 +//line sql.y:4661 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 831: + case 838: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4586 +//line sql.y:4665 { yyLOCAL = &Show{&ShowBasic{Command: Engines}} } yyVAL.setstatement(yyLOCAL) - case 832: + case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4590 +//line sql.y:4669 { yyLOCAL = &Show{&ShowBasic{Command: Plugins}} } yyVAL.setstatement(yyLOCAL) - case 833: + case 840: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4594 +//line sql.y:4673 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].identifierCS()}} } yyVAL.setstatement(yyLOCAL) - case 834: + case 841: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4598 +//line sql.y:4677 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].identifierCS()}} } yyVAL.setstatement(yyLOCAL) - case 835: + case 842: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4602 +//line sql.y:4681 { yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 836: + case 843: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4606 +//line sql.y:4685 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilter(), DbName: yyDollar[3].identifierCS()}} } yyVAL.setstatement(yyLOCAL) - case 837: + case 844: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4610 +//line sql.y:4689 { yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str())} } yyVAL.setstatement(yyLOCAL) - case 838: + case 845: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4614 +//line sql.y:4693 { yyLOCAL = &ShowThrottledApps{} } yyVAL.setstatement(yyLOCAL) - case 839: + case 846: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4618 +//line sql.y:4697 { yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 840: + case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4622 +//line sql.y:4701 { yyLOCAL = &ShowThrottlerStatus{} } yyVAL.setstatement(yyLOCAL) - case 841: + case 848: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4626 +//line sql.y:4705 { yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}} } yyVAL.setstatement(yyLOCAL) - case 842: + case 849: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4630 +//line sql.y:4709 { yyLOCAL = &Show{&ShowBasic{Command: VschemaKeyspaces}} } yyVAL.setstatement(yyLOCAL) - case 843: + case 850: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4634 +//line sql.y:4713 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}} } yyVAL.setstatement(yyLOCAL) - case 844: + case 851: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4638 +//line sql.y:4717 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 845: + case 852: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4642 +//line sql.y:4721 { yyLOCAL = &Show{&ShowBasic{Command: Warnings, Limit: yyDollar[3].limit()}} } yyVAL.setstatement(yyLOCAL) - case 846: + case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4646 +//line sql.y:4725 { yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 847: + case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4650 +//line sql.y:4729 { yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 848: + case 855: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4654 +//line sql.y:4733 { yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}} } yyVAL.setstatement(yyLOCAL) - case 849: + case 856: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4658 +//line sql.y:4737 { yyLOCAL = &Show{&ShowBinaryLogs{}} } yyVAL.setstatement(yyLOCAL) - case 850: + case 857: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4662 +//line sql.y:4741 { yyLOCAL = &Show{&ShowReplicationSourceStatus{}} } yyVAL.setstatement(yyLOCAL) - case 851: + case 858: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4666 +//line sql.y:4745 { yyLOCAL = &Show{&ShowReplicationSourceStatus{Legacy: true}} } yyVAL.setstatement(yyLOCAL) - case 852: + case 859: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4670 +//line sql.y:4749 { yyLOCAL = &Show{&ShowBinlogEvents{ IsRelaylog: false, @@ -19653,10 +19788,10 @@ yydefault: }} } yyVAL.setstatement(yyLOCAL) - case 853: + case 860: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4679 +//line sql.y:4758 { yyLOCAL = &Show{&ShowBinlogEvents{ IsRelaylog: true, @@ -19667,1348 +19802,1348 @@ yydefault: }} } yyVAL.setstatement(yyLOCAL) - case 854: + case 861: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4689 +//line sql.y:4768 { yyLOCAL = &Show{&ShowReplicationStatus{Channel: yyDollar[4].str()}} } yyVAL.setstatement(yyLOCAL) - case 855: + case 862: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4693 +//line sql.y:4772 { yyLOCAL = &Show{&ShowReplicationStatus{Legacy: true, Channel: yyDollar[4].str()}} } yyVAL.setstatement(yyLOCAL) - case 856: + case 863: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4697 +//line sql.y:4776 { yyLOCAL = &Show{&ShowReplicas{}} } yyVAL.setstatement(yyLOCAL) - case 857: + case 864: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4701 +//line sql.y:4780 { yyLOCAL = &Show{&ShowReplicas{Legacy: true}} } yyVAL.setstatement(yyLOCAL) - case 858: + case 865: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4705 +//line sql.y:4784 { yyLOCAL = &Show{&ShowBasic{Command: Errors, Limit: yyDollar[3].limit()}} } yyVAL.setstatement(yyLOCAL) - case 859: + case 866: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4709 +//line sql.y:4788 { yyLOCAL = &Show{&ShowBasic{Command: Events, DbName: yyDollar[3].identifierCS(), Filter: yyDollar[4].showFilter()}} } yyVAL.setstatement(yyLOCAL) - case 860: + case 867: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4713 +//line sql.y:4792 { yyLOCAL = &Show{&ShowEngine{EngineName: yyDollar[3].identifierCI().Lowered(), Action: "status"}} } yyVAL.setstatement(yyLOCAL) - case 861: + case 868: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4717 +//line sql.y:4796 { yyLOCAL = &Show{&ShowEngine{EngineName: yyDollar[3].identifierCI().Lowered(), Action: "mutex"}} } yyVAL.setstatement(yyLOCAL) - case 862: + case 869: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4721 +//line sql.y:4800 { yyLOCAL = &Show{&ShowBasic{Command: FunctionC, Tbl: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 863: + case 870: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4725 +//line sql.y:4804 { yyLOCAL = &Show{&ShowBasic{Command: ProcedureC, Tbl: yyDollar[4].tableName()}} } yyVAL.setstatement(yyLOCAL) - case 864: + case 871: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4729 +//line sql.y:4808 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].boolean(), Command: ProcessList}} } yyVAL.setstatement(yyLOCAL) - case 865: + case 872: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4733 +//line sql.y:4812 { yyLOCAL = &Show{&ShowBasic{Command: Engines}} } yyVAL.setstatement(yyLOCAL) - case 866: + case 873: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4737 +//line sql.y:4816 { yyLOCAL = &Show{&ShowCreateUser{User: yyDollar[4].userOrRole()}} } yyVAL.setstatement(yyLOCAL) - case 867: + case 874: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4741 +//line sql.y:4820 { sg := &ShowGrants{User: yyDollar[3].userOrRole()} yyLOCAL = &Show{sg} } yyVAL.setstatement(yyLOCAL) - case 868: + case 875: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4746 +//line sql.y:4825 { yyLOCAL = &Show{&ShowGrants{User: yyDollar[4].userOrRole(), UsingRole: yyDollar[6].userOrRoles()}} } yyVAL.setstatement(yyLOCAL) - case 869: + case 876: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4750 +//line sql.y:4829 { yyLOCAL = &Show{&ShowProfile{Types: yyDollar[3].strs(), ForQuery: yyDollar[4].literal(), Limit: yyDollar[5].limit()}} } yyVAL.setstatement(yyLOCAL) - case 870: + case 877: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4754 +//line sql.y:4833 { yyLOCAL = &Show{&ShowBasic{Command: Profiles}} } yyVAL.setstatement(yyLOCAL) - case 871: + case 878: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4758 +//line sql.y:4837 { yyLOCAL = &Show{&ShowTransactionStatus{TransactionID: string(yyDollar[5].str())}} } yyVAL.setstatement(yyLOCAL) - case 872: + case 879: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4762 +//line sql.y:4841 { yyLOCAL = &Show{&ShowTransactionStatus{}} } yyVAL.setstatement(yyLOCAL) - case 873: + case 880: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4766 +//line sql.y:4845 { yyLOCAL = &Show{&ShowTransactionStatus{Keyspace: yyDollar[5].identifierCS().String()}} } yyVAL.setstatement(yyLOCAL) - case 874: + case 881: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4771 +//line sql.y:4850 { } - case 875: + case 882: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4773 +//line sql.y:4852 { } - case 876: + case 883: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4777 +//line sql.y:4856 { yyLOCAL = &UserOrRole{Name: new(string(yyDollar[1].str())), Host: new(string(formatUserOrRoleHost(yyDollar[2].str())))} } yyVAL.setuserOrRole(yyLOCAL) - case 877: + case 884: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4781 +//line sql.y:4860 { yyLOCAL = &UserOrRole{Name: new(string(yyDollar[1].str()))} } yyVAL.setuserOrRole(yyLOCAL) - case 878: + case 885: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4785 +//line sql.y:4864 { yyLOCAL = new(UserOrRole) } yyVAL.setuserOrRole(yyLOCAL) - case 879: + case 886: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4789 +//line sql.y:4868 { yyLOCAL = new(UserOrRole) } yyVAL.setuserOrRole(yyLOCAL) - case 880: + case 887: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4793 +//line sql.y:4872 { yyLOCAL = &UserOrRole{Name: new(string(yyDollar[1].identifierCI().String())), Host: new(string(formatUserOrRoleHost(yyDollar[2].str())))} } yyVAL.setuserOrRole(yyLOCAL) - case 881: + case 888: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4797 +//line sql.y:4876 { yyLOCAL = &UserOrRole{Name: new(string(yyDollar[1].identifierCI().String()))} } yyVAL.setuserOrRole(yyLOCAL) - case 882: + case 889: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4803 +//line sql.y:4882 { yyLOCAL = nil } yyVAL.setuserOrRole(yyLOCAL) - case 883: + case 890: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *UserOrRole -//line sql.y:4807 +//line sql.y:4886 { yyLOCAL = yyDollar[2].userOrRole() } yyVAL.setuserOrRole(yyLOCAL) - case 884: + case 891: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []UserOrRole -//line sql.y:4813 +//line sql.y:4892 { yyLOCAL = []UserOrRole{*yyDollar[1].userOrRole()} } yyVAL.setuserOrRoles(yyLOCAL) - case 885: + case 892: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []UserOrRole -//line sql.y:4817 +//line sql.y:4896 { yyLOCAL = append(yyDollar[1].userOrRoles(), *yyDollar[3].userOrRole()) } yyVAL.setuserOrRoles(yyLOCAL) - case 886: + case 893: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line sql.y:4823 +//line sql.y:4902 { yyLOCAL = nil } yyVAL.setstrs(yyLOCAL) - case 887: + case 894: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line sql.y:4827 +//line sql.y:4906 { yyLOCAL = yyDollar[1].strs() } yyVAL.setstrs(yyLOCAL) - case 888: + case 895: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line sql.y:4833 +//line sql.y:4912 { yyLOCAL = []string{yyDollar[1].str()} } yyVAL.setstrs(yyLOCAL) - case 889: + case 896: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line sql.y:4837 +//line sql.y:4916 { yyLOCAL = append(yyDollar[1].strs(), yyDollar[3].str()) } yyVAL.setstrs(yyLOCAL) - case 890: + case 897: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4843 +//line sql.y:4922 { yyLOCAL = "all" } yyVAL.setstr(yyLOCAL) - case 891: + case 898: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4847 +//line sql.y:4926 { yyLOCAL = "memory" } yyVAL.setstr(yyLOCAL) - case 892: + case 899: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4851 +//line sql.y:4930 { yyLOCAL = yyDollar[1].identifierCI().String() } yyVAL.setstr(yyLOCAL) - case 893: + case 900: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:4855 +//line sql.y:4934 { yyLOCAL = yyDollar[1].identifierCI().String() + " " + yyDollar[2].identifierCI().String() } yyVAL.setstr(yyLOCAL) - case 894: + case 901: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:4861 +//line sql.y:4940 { yyLOCAL = nil } yyVAL.setliteral(yyLOCAL) - case 895: + case 902: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:4865 +//line sql.y:4944 { yyLOCAL = NewIntLiteral(yyDollar[3].str()) } yyVAL.setliteral(yyLOCAL) - case 896: + case 903: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:4871 +//line sql.y:4950 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 897: + case 904: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:4875 +//line sql.y:4954 { yyLOCAL = string(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 898: + case 905: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4881 +//line sql.y:4960 { yyLOCAL = nil } yyVAL.setexpr(yyLOCAL) - case 899: + case 906: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4885 +//line sql.y:4964 { yyLOCAL = NewIntLiteral(yyDollar[2].str()) } yyVAL.setexpr(yyLOCAL) - case 900: + case 907: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:4891 +//line sql.y:4970 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 901: + case 908: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:4895 +//line sql.y:4974 { yyLOCAL = yyDollar[3].identifierCI().String() } yyVAL.setstr(yyLOCAL) - case 902: + case 909: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:4899 +//line sql.y:4978 { yyLOCAL = string(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 903: + case 910: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:4905 +//line sql.y:4984 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 904: + case 911: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4909 +//line sql.y:4988 { yyLOCAL = "extended " } yyVAL.setstr(yyLOCAL) - case 905: + case 912: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4915 +//line sql.y:4994 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 906: + case 913: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4919 +//line sql.y:4998 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 907: + case 914: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4925 +//line sql.y:5004 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 908: + case 915: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4929 +//line sql.y:5008 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 909: + case 916: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:4935 +//line sql.y:5014 { yyLOCAL = NewIdentifierCS("") } yyVAL.setidentifierCS(yyLOCAL) - case 910: + case 917: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:4939 +//line sql.y:5018 { yyLOCAL = yyDollar[2].identifierCS() } yyVAL.setidentifierCS(yyLOCAL) - case 911: + case 918: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:4943 +//line sql.y:5022 { yyLOCAL = yyDollar[2].identifierCS() } yyVAL.setidentifierCS(yyLOCAL) - case 912: + case 919: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4949 +//line sql.y:5028 { yyLOCAL = nil } yyVAL.setshowFilter(yyLOCAL) - case 913: + case 920: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4953 +//line sql.y:5032 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str())} } yyVAL.setshowFilter(yyLOCAL) - case 914: + case 921: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4957 +//line sql.y:5036 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].expr()} } yyVAL.setshowFilter(yyLOCAL) - case 915: + case 922: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4963 +//line sql.y:5042 { yyLOCAL = nil } yyVAL.setshowFilter(yyLOCAL) - case 916: + case 923: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4967 +//line sql.y:5046 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str())} } yyVAL.setshowFilter(yyLOCAL) - case 917: + case 924: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL struct{} -//line sql.y:4973 +//line sql.y:5052 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 918: + case 925: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:4977 +//line sql.y:5056 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 919: + case 926: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:4981 +//line sql.y:5060 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 920: + case 927: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4987 +//line sql.y:5066 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 921: + case 928: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:4991 +//line sql.y:5070 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 922: + case 929: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4997 +//line sql.y:5076 { yyLOCAL = &Use{DBName: yyDollar[2].identifierCS()} } yyVAL.setstatement(yyLOCAL) - case 923: + case 930: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5001 +//line sql.y:5080 { yyLOCAL = &Use{DBName: IdentifierCS{v: ""}} } yyVAL.setstatement(yyLOCAL) - case 924: + case 931: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:5005 +//line sql.y:5084 { yyLOCAL = &Use{DBName: NewIdentifierCS(yyDollar[2].identifierCS().String() + "@" + string(yyDollar[3].str()))} } yyVAL.setstatement(yyLOCAL) - case 925: + case 932: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5012 +//line sql.y:5091 { yyLOCAL = NewIdentifierCS(string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 926: + case 933: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5016 +//line sql.y:5095 { yyLOCAL = NewIdentifierCS("@" + string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 927: + case 934: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5020 +//line sql.y:5099 { yyLOCAL = NewIdentifierCS("@@" + string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 928: + case 935: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5024 +//line sql.y:5103 { yyLOCAL = NewIdentifierCS(string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 929: + case 936: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5031 +//line sql.y:5110 { yyLOCAL = &Begin{Type: BeginStmt} } yyVAL.setstatement(yyLOCAL) - case 930: + case 937: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:5035 +//line sql.y:5114 { yyLOCAL = &Begin{Type: StartTransactionStmt, TxAccessModes: yyDollar[3].txAccessModes()} } yyVAL.setstatement(yyLOCAL) - case 931: + case 938: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:5040 +//line sql.y:5119 { yyLOCAL = nil } yyVAL.settxAccessModes(yyLOCAL) - case 932: + case 939: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:5044 +//line sql.y:5123 { yyLOCAL = yyDollar[1].txAccessModes() } yyVAL.settxAccessModes(yyLOCAL) - case 933: + case 940: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:5050 +//line sql.y:5129 { yyLOCAL = []TxAccessMode{yyDollar[1].txAccessMode()} } yyVAL.settxAccessModes(yyLOCAL) - case 934: + case 941: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:5054 +//line sql.y:5133 { yyLOCAL = append(yyDollar[1].txAccessModes(), yyDollar[3].txAccessMode()) } yyVAL.settxAccessModes(yyLOCAL) - case 935: + case 942: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:5060 +//line sql.y:5139 { yyLOCAL = WithConsistentSnapshot } yyVAL.settxAccessMode(yyLOCAL) - case 936: + case 943: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:5064 +//line sql.y:5143 { yyLOCAL = ReadWrite } yyVAL.settxAccessMode(yyLOCAL) - case 937: + case 944: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:5068 +//line sql.y:5147 { yyLOCAL = ReadOnly } yyVAL.settxAccessMode(yyLOCAL) - case 938: + case 945: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5075 +//line sql.y:5154 { yyLOCAL = &Commit{} } yyVAL.setstatement(yyLOCAL) - case 939: + case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5081 +//line sql.y:5160 { yyLOCAL = &Rollback{} } yyVAL.setstatement(yyLOCAL) - case 940: + case 947: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:5085 +//line sql.y:5164 { yyLOCAL = &SRollback{Name: yyDollar[5].identifierCI()} } yyVAL.setstatement(yyLOCAL) - case 941: + case 948: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL struct{} -//line sql.y:5090 +//line sql.y:5169 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 942: + case 949: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:5092 +//line sql.y:5171 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 943: + case 950: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL struct{} -//line sql.y:5095 +//line sql.y:5174 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 944: + case 951: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:5097 +//line sql.y:5176 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 945: + case 952: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:5101 +//line sql.y:5180 { yyLOCAL = &Savepoint{Name: yyDollar[2].identifierCI()} } yyVAL.setstatement(yyLOCAL) - case 946: + case 953: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:5107 +//line sql.y:5186 { yyLOCAL = &Release{Name: yyDollar[3].identifierCI()} } yyVAL.setstatement(yyLOCAL) - case 947: + case 954: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:5112 +//line sql.y:5191 { yyLOCAL = EmptyType } yyVAL.setexplainType(yyLOCAL) - case 948: + case 955: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:5116 +//line sql.y:5195 { yyLOCAL = JSONType } yyVAL.setexplainType(yyLOCAL) - case 949: + case 956: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:5120 +//line sql.y:5199 { yyLOCAL = TreeType } yyVAL.setexplainType(yyLOCAL) - case 950: + case 957: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:5124 +//line sql.y:5203 { yyLOCAL = TraditionalType } yyVAL.setexplainType(yyLOCAL) - case 951: + case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:5128 +//line sql.y:5207 { yyLOCAL = AnalyzeType } yyVAL.setexplainType(yyLOCAL) - case 952: + case 959: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL VExplainType -//line sql.y:5133 +//line sql.y:5212 { yyLOCAL = PlanVExplainType } yyVAL.setvexplainType(yyLOCAL) - case 953: + case 960: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:5137 +//line sql.y:5216 { yyLOCAL = PlanVExplainType } yyVAL.setvexplainType(yyLOCAL) - case 954: + case 961: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:5141 +//line sql.y:5220 { yyLOCAL = AllVExplainType } yyVAL.setvexplainType(yyLOCAL) - case 955: + case 962: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:5145 +//line sql.y:5224 { yyLOCAL = QueriesVExplainType } yyVAL.setvexplainType(yyLOCAL) - case 956: + case 963: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:5149 +//line sql.y:5228 { yyLOCAL = TraceVExplainType } yyVAL.setvexplainType(yyLOCAL) - case 957: + case 964: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:5153 +//line sql.y:5232 { yyLOCAL = KeysVExplainType } yyVAL.setvexplainType(yyLOCAL) - case 958: + case 965: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5159 +//line sql.y:5238 { yyLOCAL = yyDollar[1].str() } yyVAL.setstr(yyLOCAL) - case 959: + case 966: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5163 +//line sql.y:5242 { yyLOCAL = yyDollar[1].str() } yyVAL.setstr(yyLOCAL) - case 960: + case 967: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5167 +//line sql.y:5246 { yyLOCAL = yyDollar[1].str() } yyVAL.setstr(yyLOCAL) - case 961: + case 968: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5173 +//line sql.y:5252 { yyLOCAL = yyDollar[1].tableStmt() } yyVAL.setstatement(yyLOCAL) - case 962: + case 969: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5177 +//line sql.y:5256 { yyLOCAL = yyDollar[1].statement() } yyVAL.setstatement(yyLOCAL) - case 963: + case 970: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5181 +//line sql.y:5260 { yyLOCAL = yyDollar[1].statement() } yyVAL.setstatement(yyLOCAL) - case 964: + case 971: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:5185 +//line sql.y:5264 { yyLOCAL = yyDollar[1].statement() } yyVAL.setstatement(yyLOCAL) - case 965: + case 972: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:5190 +//line sql.y:5269 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 966: + case 973: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5194 +//line sql.y:5273 { yyLOCAL = yyDollar[1].identifierCI().val } yyVAL.setstr(yyLOCAL) - case 967: + case 974: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5198 +//line sql.y:5277 { yyLOCAL = encodeSQLString(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 968: + case 975: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5204 +//line sql.y:5283 { yyLOCAL = &ExplainTab{Table: yyDollar[3].tableName(), Wild: yyDollar[4].str()} } yyVAL.setstatement(yyLOCAL) - case 969: + case 976: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5208 +//line sql.y:5287 { yyLOCAL = &ExplainStmt{Type: yyDollar[3].explainType(), Statement: yyDollar[4].statement(), Comments: Comments(yyDollar[2].strs()).Parsed()} } yyVAL.setstatement(yyLOCAL) - case 970: + case 977: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5214 +//line sql.y:5293 { yyLOCAL = &VExplainStmt{Type: yyDollar[3].vexplainType(), Statement: yyDollar[4].statement(), Comments: Comments(yyDollar[2].strs()).Parsed()} } yyVAL.setstatement(yyLOCAL) - case 971: + case 978: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:5220 +//line sql.y:5299 { yyLOCAL = &OtherAdmin{} } yyVAL.setstatement(yyLOCAL) - case 972: + case 979: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:5224 +//line sql.y:5303 { yyLOCAL = &OtherAdmin{} } yyVAL.setstatement(yyLOCAL) - case 973: + case 980: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:5230 +//line sql.y:5309 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypes()} } yyVAL.setstatement(yyLOCAL) - case 974: + case 981: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:5236 +//line sql.y:5315 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockType()} } yyVAL.settableAndLockTypes(yyLOCAL) - case 975: + case 982: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:5240 +//line sql.y:5319 { yyLOCAL = append(yyDollar[1].tableAndLockTypes(), yyDollar[3].tableAndLockType()) } yyVAL.settableAndLockTypes(yyLOCAL) - case 976: + case 983: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:5246 +//line sql.y:5325 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableName(), Lock: yyDollar[2].lockType()} } yyVAL.settableAndLockType(yyLOCAL) - case 977: + case 984: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:5252 +//line sql.y:5331 { yyLOCAL = Read } yyVAL.setlockType(yyLOCAL) - case 978: + case 985: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:5256 +//line sql.y:5335 { yyLOCAL = ReadLocal } yyVAL.setlockType(yyLOCAL) - case 979: + case 986: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:5260 +//line sql.y:5339 { yyLOCAL = Write } yyVAL.setlockType(yyLOCAL) - case 980: + case 987: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:5264 +//line sql.y:5343 { yyLOCAL = LowPriorityWrite } yyVAL.setlockType(yyLOCAL) - case 981: + case 988: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:5270 +//line sql.y:5349 { yyLOCAL = &UnlockTables{} } yyVAL.setstatement(yyLOCAL) - case 982: + case 989: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5276 +//line sql.y:5355 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs()).Parsed(), UUID: string(yyDollar[4].str())} } yyVAL.setstatement(yyLOCAL) - case 983: + case 990: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:5282 +//line sql.y:5361 { yyLOCAL = &Flush{IsLocal: yyDollar[2].boolean(), FlushOptions: yyDollar[3].strs()} } yyVAL.setstatement(yyLOCAL) - case 984: + case 991: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:5286 +//line sql.y:5365 { yyLOCAL = &Flush{IsLocal: yyDollar[2].boolean()} } yyVAL.setstatement(yyLOCAL) - case 985: + case 992: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:5290 +//line sql.y:5369 { yyLOCAL = &Flush{IsLocal: yyDollar[2].boolean(), WithLock: true} } yyVAL.setstatement(yyLOCAL) - case 986: + case 993: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5294 +//line sql.y:5373 { yyLOCAL = &Flush{IsLocal: yyDollar[2].boolean(), TableNames: yyDollar[4].tableNames()} } yyVAL.setstatement(yyLOCAL) - case 987: + case 994: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:5298 +//line sql.y:5377 { yyLOCAL = &Flush{IsLocal: yyDollar[2].boolean(), TableNames: yyDollar[4].tableNames(), WithLock: true} } yyVAL.setstatement(yyLOCAL) - case 988: + case 995: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:5302 +//line sql.y:5381 { yyLOCAL = &Flush{IsLocal: yyDollar[2].boolean(), TableNames: yyDollar[4].tableNames(), ForExport: true} } yyVAL.setstatement(yyLOCAL) - case 989: + case 996: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line sql.y:5308 +//line sql.y:5387 { yyLOCAL = []string{yyDollar[1].str()} } yyVAL.setstrs(yyLOCAL) - case 990: + case 997: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []string -//line sql.y:5312 +//line sql.y:5391 { yyLOCAL = append(yyDollar[1].strs(), yyDollar[3].str()) } yyVAL.setstrs(yyLOCAL) - case 991: + case 998: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:5318 +//line sql.y:5397 { yyLOCAL = string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 992: + case 999: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:5322 +//line sql.y:5401 { yyLOCAL = string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 993: + case 1000: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:5326 +//line sql.y:5405 { yyLOCAL = string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 994: + case 1001: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:5330 +//line sql.y:5409 { yyLOCAL = string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 995: + case 1002: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5334 +//line sql.y:5413 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 996: + case 1003: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5338 +//line sql.y:5417 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 997: + case 1004: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5342 +//line sql.y:5421 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 998: + case 1005: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:5346 +//line sql.y:5425 { yyLOCAL = string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) + yyDollar[3].str() } yyVAL.setstr(yyLOCAL) - case 999: + case 1006: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:5350 +//line sql.y:5429 { yyLOCAL = string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 1000: + case 1007: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5354 +//line sql.y:5433 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1001: + case 1008: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5358 +//line sql.y:5437 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1002: + case 1009: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5362 +//line sql.y:5441 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1003: + case 1010: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:5367 +//line sql.y:5446 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1004: + case 1011: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:5371 +//line sql.y:5450 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1005: + case 1012: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:5375 +//line sql.y:5454 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1006: + case 1013: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:5380 +//line sql.y:5459 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1007: + case 1014: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:5384 +//line sql.y:5463 { yyLOCAL = " " + string(yyDollar[1].str()) + " " + string(yyDollar[2].str()) + " " + yyDollar[3].identifierCI().String() } yyVAL.setstr(yyLOCAL) - case 1008: + case 1015: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5389 +//line sql.y:5468 { setAllowComments(yylex, true) } - case 1009: + case 1016: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []string -//line sql.y:5393 +//line sql.y:5472 { yyLOCAL = yyDollar[2].strs() setAllowComments(yylex, false) } yyVAL.setstrs(yyLOCAL) - case 1010: + case 1017: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line sql.y:5399 +//line sql.y:5478 { yyLOCAL = nil } yyVAL.setstrs(yyLOCAL) - case 1011: + case 1018: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []string -//line sql.y:5403 +//line sql.y:5482 { yyLOCAL = append(yyDollar[1].strs(), yyDollar[2].str()) } yyVAL.setstrs(yyLOCAL) - case 1012: + case 1019: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:5409 +//line sql.y:5488 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1013: + case 1020: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:5413 +//line sql.y:5492 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1014: + case 1021: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:5417 +//line sql.y:5496 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1015: + case 1022: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:5422 +//line sql.y:5501 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1016: + case 1023: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5426 +//line sql.y:5505 { yyLOCAL = SQLNoCacheStr } yyVAL.setstr(yyLOCAL) - case 1017: + case 1024: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5430 +//line sql.y:5509 { yyLOCAL = SQLCacheStr } yyVAL.setstr(yyLOCAL) - case 1018: + case 1025: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:5435 +//line sql.y:5514 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1019: + case 1026: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:5439 +//line sql.y:5518 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1020: + case 1027: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:5443 +//line sql.y:5522 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1021: + case 1028: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:5449 +//line sql.y:5528 { yyLOCAL = &PrepareStmt{Name: yyDollar[3].identifierCI(), Comments: Comments(yyDollar[2].strs()).Parsed(), Statement: yyDollar[5].expr()} } yyVAL.setstatement(yyLOCAL) - case 1022: + case 1029: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:5453 +//line sql.y:5532 { yyLOCAL = &PrepareStmt{ Name: yyDollar[3].identifierCI(), @@ -21017,676 +21152,676 @@ yydefault: } } yyVAL.setstatement(yyLOCAL) - case 1023: + case 1030: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5463 +//line sql.y:5542 { yyLOCAL = &ExecuteStmt{Name: yyDollar[3].identifierCI(), Comments: Comments(yyDollar[2].strs()).Parsed(), Arguments: yyDollar[4].variables()} } yyVAL.setstatement(yyLOCAL) - case 1024: + case 1031: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*Variable -//line sql.y:5468 +//line sql.y:5547 { yyLOCAL = nil } yyVAL.setvariables(yyLOCAL) - case 1025: + case 1032: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*Variable -//line sql.y:5472 +//line sql.y:5551 { yyLOCAL = yyDollar[2].variables() } yyVAL.setvariables(yyLOCAL) - case 1026: + case 1033: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5478 +//line sql.y:5557 { yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs()).Parsed(), Name: yyDollar[4].identifierCI()} } yyVAL.setstatement(yyLOCAL) - case 1027: + case 1034: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:5482 +//line sql.y:5561 { yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs()).Parsed(), Name: yyDollar[4].identifierCI()} } yyVAL.setstatement(yyLOCAL) - case 1028: + case 1035: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []string -//line sql.y:5487 +//line sql.y:5566 { yyLOCAL = nil } yyVAL.setstrs(yyLOCAL) - case 1029: + case 1036: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line sql.y:5491 +//line sql.y:5570 { yyLOCAL = yyDollar[1].strs() } yyVAL.setstrs(yyLOCAL) - case 1030: + case 1037: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []string -//line sql.y:5497 +//line sql.y:5576 { yyLOCAL = []string{yyDollar[1].str()} } yyVAL.setstrs(yyLOCAL) - case 1031: + case 1038: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []string -//line sql.y:5501 +//line sql.y:5580 { yyLOCAL = append(yyDollar[1].strs(), yyDollar[2].str()) } yyVAL.setstrs(yyLOCAL) - case 1032: + case 1039: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5507 +//line sql.y:5586 { yyLOCAL = SQLNoCacheStr } yyVAL.setstr(yyLOCAL) - case 1033: + case 1040: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5511 +//line sql.y:5590 { yyLOCAL = SQLCacheStr } yyVAL.setstr(yyLOCAL) - case 1034: + case 1041: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5515 +//line sql.y:5594 { yyLOCAL = DistinctStr } yyVAL.setstr(yyLOCAL) - case 1035: + case 1042: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5519 +//line sql.y:5598 { yyLOCAL = DistinctStr } yyVAL.setstr(yyLOCAL) - case 1036: + case 1043: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5523 +//line sql.y:5602 { yyLOCAL = HighPriorityStr } yyVAL.setstr(yyLOCAL) - case 1037: + case 1044: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5527 +//line sql.y:5606 { yyLOCAL = StraightJoinHint } yyVAL.setstr(yyLOCAL) - case 1038: + case 1045: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5531 +//line sql.y:5610 { yyLOCAL = SQLBufferResultStr } yyVAL.setstr(yyLOCAL) - case 1039: + case 1046: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5535 +//line sql.y:5614 { yyLOCAL = SQLSmallResultStr } yyVAL.setstr(yyLOCAL) - case 1040: + case 1047: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5539 +//line sql.y:5618 { yyLOCAL = SQLBigResultStr } yyVAL.setstr(yyLOCAL) - case 1041: + case 1048: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5543 +//line sql.y:5622 { yyLOCAL = SQLCalcFoundRowsStr } yyVAL.setstr(yyLOCAL) - case 1042: + case 1049: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:5547 +//line sql.y:5626 { yyLOCAL = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } yyVAL.setstr(yyLOCAL) - case 1043: + case 1050: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *SelectExprs -//line sql.y:5553 +//line sql.y:5632 { yyLOCAL = &SelectExprs{Exprs: []SelectExpr{&StarExpr{}}} } yyVAL.setselectExprs(yyLOCAL) - case 1044: + case 1051: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *SelectExprs -//line sql.y:5557 +//line sql.y:5636 { yyLOCAL = &SelectExprs{Exprs: []SelectExpr{yyDollar[1].selectExpr()}} } yyVAL.setselectExprs(yyLOCAL) - case 1045: + case 1052: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectExprs -//line sql.y:5561 +//line sql.y:5640 { res := yyDollar[1].selectExprs() res.Exprs = append(res.Exprs, yyDollar[3].selectExpr()) yyLOCAL = res } yyVAL.setselectExprs(yyLOCAL) - case 1046: + case 1053: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:5569 +//line sql.y:5648 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].expr(), As: yyDollar[2].identifierCI()} } yyVAL.setselectExpr(yyLOCAL) - case 1047: + case 1054: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:5573 +//line sql.y:5652 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].identifierCS()}} } yyVAL.setselectExpr(yyLOCAL) - case 1048: + case 1055: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:5577 +//line sql.y:5656 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].identifierCS(), Name: yyDollar[3].identifierCS()}} } yyVAL.setselectExpr(yyLOCAL) - case 1049: + case 1056: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:5582 +//line sql.y:5661 { yyLOCAL = IdentifierCI{} } yyVAL.setidentifierCI(yyLOCAL) - case 1050: + case 1057: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:5586 +//line sql.y:5665 { yyLOCAL = yyDollar[1].identifierCI() } yyVAL.setidentifierCI(yyLOCAL) - case 1051: + case 1058: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:5590 +//line sql.y:5669 { yyLOCAL = yyDollar[2].identifierCI() } yyVAL.setidentifierCI(yyLOCAL) - case 1053: + case 1060: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:5597 +//line sql.y:5676 { yyLOCAL = NewIdentifierCI(string(yyDollar[1].str())) } yyVAL.setidentifierCI(yyLOCAL) - case 1054: + case 1061: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:5602 +//line sql.y:5681 { yyLOCAL = nil } yyVAL.settableExprs(yyLOCAL) - case 1055: + case 1062: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:5605 +//line sql.y:5684 { yyLOCAL = nil } yyVAL.settableExprs(yyLOCAL) - case 1056: + case 1063: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:5609 +//line sql.y:5688 { yyLOCAL = yyDollar[1].tableExprs() } yyVAL.settableExprs(yyLOCAL) - case 1057: + case 1064: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:5615 +//line sql.y:5694 { yyLOCAL = yyDollar[2].tableExprs() } yyVAL.settableExprs(yyLOCAL) - case 1058: + case 1065: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:5621 +//line sql.y:5700 { yyLOCAL = TableExprs{yyDollar[1].tableExpr()} } yyVAL.settableExprs(yyLOCAL) - case 1059: + case 1066: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExprs -//line sql.y:5625 +//line sql.y:5704 { yyLOCAL = append(yyDollar[1].tableExprs(), yyDollar[3].tableExpr()) } yyVAL.settableExprs(yyLOCAL) - case 1062: + case 1069: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5635 +//line sql.y:5714 { yyLOCAL = yyDollar[1].aliasedTableName() } yyVAL.settableExpr(yyLOCAL) - case 1063: + case 1070: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5639 +//line sql.y:5718 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTable(), As: yyDollar[3].identifierCS(), Columns: yyDollar[4].columns()} } yyVAL.settableExpr(yyLOCAL) - case 1064: + case 1071: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5643 +//line sql.y:5722 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprs()} } yyVAL.settableExpr(yyLOCAL) - case 1065: + case 1072: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5647 +//line sql.y:5726 { yyLOCAL = yyDollar[1].tableExpr() } yyVAL.settableExpr(yyLOCAL) - case 1066: + case 1073: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:5653 +//line sql.y:5732 { yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[1].tableStmt()} } yyVAL.setderivedTable(yyLOCAL) - case 1067: + case 1074: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:5657 +//line sql.y:5736 { yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[2].tableStmt()} } yyVAL.setderivedTable(yyLOCAL) - case 1068: + case 1075: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:5663 +//line sql.y:5742 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName(), As: yyDollar[2].identifierCS(), Hints: yyDollar[3].indexHints()} } yyVAL.setaliasedTableName(yyLOCAL) - case 1069: + case 1076: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:5667 +//line sql.y:5746 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName(), Partitions: yyDollar[4].partitions(), As: yyDollar[6].identifierCS(), Hints: yyDollar[7].indexHints()} } yyVAL.setaliasedTableName(yyLOCAL) - case 1070: + case 1077: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:5672 +//line sql.y:5751 { yyLOCAL = nil } yyVAL.setcolumns(yyLOCAL) - case 1071: + case 1078: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:5676 +//line sql.y:5755 { yyLOCAL = yyDollar[2].columns() } yyVAL.setcolumns(yyLOCAL) - case 1072: + case 1079: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:5681 +//line sql.y:5760 { yyLOCAL = nil } yyVAL.setcolumns(yyLOCAL) - case 1073: + case 1080: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5685 +//line sql.y:5764 { yyLOCAL = yyDollar[1].columns() } yyVAL.setcolumns(yyLOCAL) - case 1074: + case 1081: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5691 +//line sql.y:5770 { yyLOCAL = Columns{yyDollar[1].identifierCI()} } yyVAL.setcolumns(yyLOCAL) - case 1075: + case 1082: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:5695 +//line sql.y:5774 { yyLOCAL = append(yyDollar[1].columns(), yyDollar[3].identifierCI()) } yyVAL.setcolumns(yyLOCAL) - case 1076: + case 1083: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*Variable -//line sql.y:5701 +//line sql.y:5780 { yyLOCAL = []*Variable{yyDollar[1].variable()} } yyVAL.setvariables(yyLOCAL) - case 1077: + case 1084: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*Variable -//line sql.y:5705 +//line sql.y:5784 { yyLOCAL = append(yyDollar[1].variables(), yyDollar[3].variable()) } yyVAL.setvariables(yyLOCAL) - case 1078: + case 1085: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5711 +//line sql.y:5790 { yyLOCAL = Columns{yyDollar[1].identifierCI()} } yyVAL.setcolumns(yyLOCAL) - case 1079: + case 1086: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5715 +//line sql.y:5794 { yyLOCAL = Columns{NewIdentifierCI(string(yyDollar[1].str()))} } yyVAL.setcolumns(yyLOCAL) - case 1080: + case 1087: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:5719 +//line sql.y:5798 { yyLOCAL = append(yyDollar[1].columns(), yyDollar[3].identifierCI()) } yyVAL.setcolumns(yyLOCAL) - case 1081: + case 1088: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:5723 +//line sql.y:5802 { yyLOCAL = append(yyDollar[1].columns(), NewIdentifierCI(string(yyDollar[3].str()))) } yyVAL.setcolumns(yyLOCAL) - case 1082: + case 1089: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:5729 +//line sql.y:5808 { yyLOCAL = Partitions{yyDollar[1].identifierCI()} } yyVAL.setpartitions(yyLOCAL) - case 1083: + case 1090: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Partitions -//line sql.y:5733 +//line sql.y:5812 { yyLOCAL = append(yyDollar[1].partitions(), yyDollar[3].identifierCI()) } yyVAL.setpartitions(yyLOCAL) - case 1084: + case 1091: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5746 +//line sql.y:5825 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr(), Join: yyDollar[2].joinType(), RightExpr: yyDollar[3].tableExpr(), Condition: yyDollar[4].joinCondition()} } yyVAL.settableExpr(yyLOCAL) - case 1085: + case 1092: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5750 +//line sql.y:5829 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr(), Join: yyDollar[2].joinType(), RightExpr: yyDollar[3].tableExpr(), Condition: yyDollar[4].joinCondition()} } yyVAL.settableExpr(yyLOCAL) - case 1086: + case 1093: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5754 +//line sql.y:5833 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr(), Join: yyDollar[2].joinType(), RightExpr: yyDollar[3].tableExpr(), Condition: yyDollar[4].joinCondition()} } yyVAL.settableExpr(yyLOCAL) - case 1087: + case 1094: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5758 +//line sql.y:5837 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr(), Join: yyDollar[2].joinType(), RightExpr: yyDollar[3].tableExpr()} } yyVAL.settableExpr(yyLOCAL) - case 1088: + case 1095: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *JoinCondition -//line sql.y:5764 +//line sql.y:5843 { yyLOCAL = &JoinCondition{On: yyDollar[2].expr()} } yyVAL.setjoinCondition(yyLOCAL) - case 1089: + case 1096: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *JoinCondition -//line sql.y:5766 +//line sql.y:5845 { yyLOCAL = &JoinCondition{Using: yyDollar[3].columns()} } yyVAL.setjoinCondition(yyLOCAL) - case 1090: + case 1097: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *JoinCondition -//line sql.y:5770 +//line sql.y:5849 { yyLOCAL = &JoinCondition{} } yyVAL.setjoinCondition(yyLOCAL) - case 1091: + case 1098: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JoinCondition -//line sql.y:5772 +//line sql.y:5851 { yyLOCAL = yyDollar[1].joinCondition() } yyVAL.setjoinCondition(yyLOCAL) - case 1092: + case 1099: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *JoinCondition -//line sql.y:5776 +//line sql.y:5855 { yyLOCAL = &JoinCondition{} } yyVAL.setjoinCondition(yyLOCAL) - case 1093: + case 1100: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *JoinCondition -//line sql.y:5778 +//line sql.y:5857 { yyLOCAL = &JoinCondition{On: yyDollar[2].expr()} } yyVAL.setjoinCondition(yyLOCAL) - case 1094: + case 1101: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL struct{} -//line sql.y:5781 +//line sql.y:5860 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 1095: + case 1102: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:5783 +//line sql.y:5862 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 1096: + case 1103: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5786 +//line sql.y:5865 { yyLOCAL = NewIdentifierCS("") } yyVAL.setidentifierCS(yyLOCAL) - case 1097: + case 1104: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5790 +//line sql.y:5869 { yyLOCAL = yyDollar[1].identifierCS() } yyVAL.setidentifierCS(yyLOCAL) - case 1098: + case 1105: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5794 +//line sql.y:5873 { yyLOCAL = yyDollar[2].identifierCS() } yyVAL.setidentifierCS(yyLOCAL) - case 1100: + case 1107: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:5801 +//line sql.y:5880 { yyLOCAL = NewIdentifierCS(string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 1101: + case 1108: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:5807 +//line sql.y:5886 { yyLOCAL = NormalJoinType } yyVAL.setjoinType(yyLOCAL) - case 1102: + case 1109: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5811 +//line sql.y:5890 { yyLOCAL = NormalJoinType } yyVAL.setjoinType(yyLOCAL) - case 1103: + case 1110: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5815 +//line sql.y:5894 { yyLOCAL = NormalJoinType } yyVAL.setjoinType(yyLOCAL) - case 1104: + case 1111: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:5821 +//line sql.y:5900 { yyLOCAL = StraightJoinType } yyVAL.setjoinType(yyLOCAL) - case 1105: + case 1112: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5827 +//line sql.y:5906 { yyLOCAL = LeftJoinType } yyVAL.setjoinType(yyLOCAL) - case 1106: + case 1113: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:5831 +//line sql.y:5910 { yyLOCAL = LeftJoinType } yyVAL.setjoinType(yyLOCAL) - case 1107: + case 1114: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5835 +//line sql.y:5914 { yyLOCAL = RightJoinType } yyVAL.setjoinType(yyLOCAL) - case 1108: + case 1115: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:5839 +//line sql.y:5918 { yyLOCAL = RightJoinType } yyVAL.setjoinType(yyLOCAL) - case 1109: + case 1116: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5845 +//line sql.y:5924 { yyLOCAL = NaturalJoinType } yyVAL.setjoinType(yyLOCAL) - case 1110: + case 1117: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5849 +//line sql.y:5928 { if yyDollar[2].joinType() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -21695,678 +21830,678 @@ yydefault: } } yyVAL.setjoinType(yyLOCAL) - case 1111: + case 1118: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableName -//line sql.y:5859 +//line sql.y:5938 { yyLOCAL = yyDollar[2].tableName() } yyVAL.settableName(yyLOCAL) - case 1112: + case 1119: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableName -//line sql.y:5863 +//line sql.y:5942 { yyLOCAL = yyDollar[1].tableName() } yyVAL.settableName(yyLOCAL) - case 1113: + case 1120: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableName -//line sql.y:5869 +//line sql.y:5948 { yyLOCAL = TableName{Name: yyDollar[1].identifierCS()} } yyVAL.settableName(yyLOCAL) - case 1114: + case 1121: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableName -//line sql.y:5873 +//line sql.y:5952 { yyLOCAL = TableName{Qualifier: yyDollar[1].identifierCS(), Name: yyDollar[3].identifierCS()} } yyVAL.settableName(yyLOCAL) - case 1115: + case 1122: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableName -//line sql.y:5879 +//line sql.y:5958 { yyLOCAL = TableName{Name: yyDollar[1].identifierCS()} } yyVAL.settableName(yyLOCAL) - case 1116: + case 1123: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5884 +//line sql.y:5963 { yyLOCAL = nil } yyVAL.setindexHints(yyLOCAL) - case 1117: + case 1124: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5888 +//line sql.y:5967 { yyLOCAL = yyDollar[1].indexHints() } yyVAL.setindexHints(yyLOCAL) - case 1118: + case 1125: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5894 +//line sql.y:5973 { yyLOCAL = IndexHints{yyDollar[1].indexHint()} } yyVAL.setindexHints(yyLOCAL) - case 1119: + case 1126: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5898 +//line sql.y:5977 { yyLOCAL = append(yyDollar[1].indexHints(), yyDollar[2].indexHint()) } yyVAL.setindexHints(yyLOCAL) - case 1120: + case 1127: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5904 +//line sql.y:5983 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForType(), Indexes: yyDollar[5].columns()} } yyVAL.setindexHint(yyLOCAL) - case 1121: + case 1128: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5908 +//line sql.y:5987 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForType()} } yyVAL.setindexHint(yyLOCAL) - case 1122: + case 1129: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5912 +//line sql.y:5991 { yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForType(), Indexes: yyDollar[5].columns()} } yyVAL.setindexHint(yyLOCAL) - case 1123: + case 1130: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5916 +//line sql.y:5995 { yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForType(), Indexes: yyDollar[5].columns()} } yyVAL.setindexHint(yyLOCAL) - case 1124: + case 1131: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5920 +//line sql.y:5999 { yyLOCAL = &IndexHint{Type: UseVindexOp, Indexes: yyDollar[4].columns()} } yyVAL.setindexHint(yyLOCAL) - case 1125: + case 1132: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5924 +//line sql.y:6003 { yyLOCAL = &IndexHint{Type: IgnoreVindexOp, Indexes: yyDollar[4].columns()} } yyVAL.setindexHint(yyLOCAL) - case 1126: + case 1133: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5929 +//line sql.y:6008 { yyLOCAL = NoForType } yyVAL.setindexHintForType(yyLOCAL) - case 1127: + case 1134: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5933 +//line sql.y:6012 { yyLOCAL = JoinForType } yyVAL.setindexHintForType(yyLOCAL) - case 1128: + case 1135: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5937 +//line sql.y:6016 { yyLOCAL = OrderByForType } yyVAL.setindexHintForType(yyLOCAL) - case 1129: + case 1136: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5941 +//line sql.y:6020 { yyLOCAL = GroupByForType } yyVAL.setindexHintForType(yyLOCAL) - case 1130: + case 1137: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:5947 +//line sql.y:6026 { yyLOCAL = nil } yyVAL.setexpr(yyLOCAL) - case 1131: + case 1138: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5951 +//line sql.y:6030 { yyLOCAL = yyDollar[2].expr() } yyVAL.setexpr(yyLOCAL) - case 1132: + case 1139: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5958 +//line sql.y:6037 { yyLOCAL = &OrExpr{Left: yyDollar[1].expr(), Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1133: + case 1140: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5962 +//line sql.y:6041 { yyLOCAL = &XorExpr{Left: yyDollar[1].expr(), Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1134: + case 1141: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5966 +//line sql.y:6045 { yyLOCAL = &AndExpr{Left: yyDollar[1].expr(), Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1135: + case 1142: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5970 +//line sql.y:6049 { yyLOCAL = &NotExpr{Expr: yyDollar[2].expr()} } yyVAL.setexpr(yyLOCAL) - case 1136: + case 1143: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5974 +//line sql.y:6053 { yyLOCAL = &IsExpr{Left: yyDollar[1].expr(), Right: yyDollar[3].isExprOperator()} } yyVAL.setexpr(yyLOCAL) - case 1137: + case 1144: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5978 +//line sql.y:6057 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1138: + case 1145: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5982 +//line sql.y:6061 { yyLOCAL = &AssignmentExpr{Left: yyDollar[1].variable(), Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1139: + case 1146: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5986 +//line sql.y:6065 { yyLOCAL = &MemberOfExpr{Value: yyDollar[1].expr(), JSONArr: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1140: + case 1147: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5992 +//line sql.y:6071 { } - case 1141: + case 1148: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5995 +//line sql.y:6074 { } - case 1142: + case 1149: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6000 +//line sql.y:6079 { yyLOCAL = &IsExpr{Left: yyDollar[1].expr(), Right: IsNullOp} } yyVAL.setexpr(yyLOCAL) - case 1143: + case 1150: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6004 +//line sql.y:6083 { yyLOCAL = &IsExpr{Left: yyDollar[1].expr(), Right: IsNotNullOp} } yyVAL.setexpr(yyLOCAL) - case 1144: + case 1151: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6008 +//line sql.y:6087 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: yyDollar[2].comparisonExprOperator(), Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1145: + case 1152: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6012 +//line sql.y:6091 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: yyDollar[2].comparisonExprOperator(), Modifier: Any, Right: yyDollar[4].subquery()} } yyVAL.setexpr(yyLOCAL) - case 1146: + case 1153: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6016 +//line sql.y:6095 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: yyDollar[2].comparisonExprOperator(), Modifier: Any, Right: yyDollar[4].subquery()} } yyVAL.setexpr(yyLOCAL) - case 1147: + case 1154: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6020 +//line sql.y:6099 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: yyDollar[2].comparisonExprOperator(), Modifier: All, Right: yyDollar[4].subquery()} } yyVAL.setexpr(yyLOCAL) - case 1148: + case 1155: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6024 +//line sql.y:6103 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1149: + case 1156: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6030 +//line sql.y:6109 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: InOp, Right: yyDollar[3].colTuple()} } yyVAL.setexpr(yyLOCAL) - case 1150: + case 1157: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6034 +//line sql.y:6113 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: NotInOp, Right: yyDollar[4].colTuple()} } yyVAL.setexpr(yyLOCAL) - case 1151: + case 1158: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6038 +//line sql.y:6117 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].expr(), IsBetween: true, From: yyDollar[3].expr(), To: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1152: + case 1159: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6042 +//line sql.y:6121 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].expr(), IsBetween: false, From: yyDollar[4].expr(), To: yyDollar[6].expr()} } yyVAL.setexpr(yyLOCAL) - case 1153: + case 1160: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6046 +//line sql.y:6125 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: LikeOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1154: + case 1161: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6050 +//line sql.y:6129 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: NotLikeOp, Right: yyDollar[4].expr()} } yyVAL.setexpr(yyLOCAL) - case 1155: + case 1162: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6054 +//line sql.y:6133 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: LikeOp, Right: yyDollar[3].expr(), Escape: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1156: + case 1163: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6058 +//line sql.y:6137 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: NotLikeOp, Right: yyDollar[4].expr(), Escape: yyDollar[6].expr()} } yyVAL.setexpr(yyLOCAL) - case 1157: + case 1164: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6062 +//line sql.y:6141 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: RegexpOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1158: + case 1165: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6066 +//line sql.y:6145 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].expr(), Operator: NotRegexpOp, Right: yyDollar[4].expr()} } yyVAL.setexpr(yyLOCAL) - case 1159: + case 1166: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6070 +//line sql.y:6149 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1160: + case 1167: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6076 +//line sql.y:6155 { } - case 1161: + case 1168: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:6079 +//line sql.y:6158 { } - case 1162: + case 1169: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6085 +//line sql.y:6164 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: BitOrOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1163: + case 1170: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6089 +//line sql.y:6168 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: BitAndOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1164: + case 1171: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6093 +//line sql.y:6172 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: ShiftLeftOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1165: + case 1172: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6097 +//line sql.y:6176 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: ShiftRightOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1166: + case 1173: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6101 +//line sql.y:6180 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: PlusOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1167: + case 1174: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6105 +//line sql.y:6184 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: MinusOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1168: + case 1175: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6109 +//line sql.y:6188 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAdd, Date: yyDollar[1].expr(), Unit: yyDollar[5].intervalType(), Interval: yyDollar[4].expr()} } yyVAL.setexpr(yyLOCAL) - case 1169: + case 1176: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6113 +//line sql.y:6192 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinarySub, Date: yyDollar[1].expr(), Unit: yyDollar[5].intervalType(), Interval: yyDollar[4].expr()} } yyVAL.setexpr(yyLOCAL) - case 1170: + case 1177: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6117 +//line sql.y:6196 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: MultOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1171: + case 1178: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6121 +//line sql.y:6200 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: DivOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1172: + case 1179: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6125 +//line sql.y:6204 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: ModOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1173: + case 1180: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6129 +//line sql.y:6208 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: IntDivOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1174: + case 1181: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6133 +//line sql.y:6212 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: ModOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1175: + case 1182: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6137 +//line sql.y:6216 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].expr(), Operator: BitXorOp, Right: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1176: + case 1183: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6141 +//line sql.y:6220 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1177: + case 1184: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6147 +//line sql.y:6226 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1178: + case 1185: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6151 +//line sql.y:6230 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1179: + case 1186: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6155 +//line sql.y:6234 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1180: + case 1187: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6159 +//line sql.y:6238 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1181: + case 1188: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6163 +//line sql.y:6242 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].expr(), Collation: yyDollar[3].str()} } yyVAL.setexpr(yyLOCAL) - case 1182: + case 1189: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6167 +//line sql.y:6246 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1183: + case 1190: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6171 +//line sql.y:6250 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1184: + case 1191: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6175 +//line sql.y:6254 { yyLOCAL = yyDollar[1].variable() } yyVAL.setexpr(yyLOCAL) - case 1185: + case 1192: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6179 +//line sql.y:6258 { yyLOCAL = yyDollar[2].expr() // TODO: do we really want to ignore unary '+' before any kind of literals? } yyVAL.setexpr(yyLOCAL) - case 1186: + case 1193: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6183 +//line sql.y:6262 { yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].expr()} } yyVAL.setexpr(yyLOCAL) - case 1187: + case 1194: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6187 +//line sql.y:6266 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].expr()} } yyVAL.setexpr(yyLOCAL) - case 1188: + case 1195: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6191 +//line sql.y:6270 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].expr()} } yyVAL.setexpr(yyLOCAL) - case 1189: + case 1196: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6195 +//line sql.y:6274 { yyLOCAL = yyDollar[1].subquery() } yyVAL.setexpr(yyLOCAL) - case 1190: + case 1197: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6199 +//line sql.y:6278 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1191: + case 1198: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6203 +//line sql.y:6282 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subquery()} } yyVAL.setexpr(yyLOCAL) - case 1192: + case 1199: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6207 +//line sql.y:6286 { yyLOCAL = &MatchExpr{Columns: yyDollar[2].colNames(), Expr: yyDollar[5].expr(), Option: yyDollar[6].matchExprOption()} } yyVAL.setexpr(yyLOCAL) - case 1193: + case 1200: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6211 +//line sql.y:6290 { yyLOCAL = &CastExpr{Expr: yyDollar[3].expr(), Type: yyDollar[5].convertType(), Array: yyDollar[6].boolean()} } yyVAL.setexpr(yyLOCAL) - case 1194: + case 1201: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6215 +//line sql.y:6294 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].expr(), Type: yyDollar[5].convertType()} } yyVAL.setexpr(yyLOCAL) - case 1195: + case 1202: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6219 +//line sql.y:6298 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].expr(), Type: yyDollar[5].str()} } yyVAL.setexpr(yyLOCAL) - case 1196: + case 1203: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6223 +//line sql.y:6302 { // From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary // To convert a string expression to a binary string, these constructs are equivalent: @@ -22375,3240 +22510,3240 @@ yydefault: yyLOCAL = &ConvertExpr{Expr: yyDollar[2].expr(), Type: &ConvertType{Type: yyDollar[1].str()}} } yyVAL.setexpr(yyLOCAL) - case 1197: + case 1204: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6231 +//line sql.y:6310 { yyLOCAL = &Default{ColName: yyDollar[2].str()} } yyVAL.setexpr(yyLOCAL) - case 1198: + case 1205: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6235 +//line sql.y:6314 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAddLeft, Date: yyDollar[5].expr(), Unit: yyDollar[3].intervalType(), Interval: yyDollar[2].expr()} } yyVAL.setexpr(yyLOCAL) - case 1199: + case 1206: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6239 +//line sql.y:6318 { yyLOCAL = &IntervalFuncExpr{Expr: yyDollar[3].expr(), Exprs: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1200: + case 1207: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6243 +//line sql.y:6322 { yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[1].expr(), PathList: []Expr{yyDollar[3].expr()}} } yyVAL.setexpr(yyLOCAL) - case 1201: + case 1208: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6247 +//line sql.y:6326 { yyLOCAL = &JSONUnquoteExpr{JSONValue: &JSONExtractExpr{JSONDoc: yyDollar[1].expr(), PathList: []Expr{yyDollar[3].expr()}}} } yyVAL.setexpr(yyLOCAL) - case 1202: + case 1209: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColName -//line sql.y:6253 +//line sql.y:6332 { yyLOCAL = yyDollar[1].colNames() } yyVAL.setcolNames(yyLOCAL) - case 1203: + case 1210: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*ColName -//line sql.y:6257 +//line sql.y:6336 { yyLOCAL = yyDollar[2].colNames() } yyVAL.setcolNames(yyLOCAL) - case 1204: + case 1211: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColName -//line sql.y:6263 +//line sql.y:6342 { yyLOCAL = []*ColName{yyDollar[1].colName()} } yyVAL.setcolNames(yyLOCAL) - case 1205: + case 1212: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*ColName -//line sql.y:6267 +//line sql.y:6346 { yyLOCAL = append(yyDollar[1].colNames(), yyDollar[3].colName()) } yyVAL.setcolNames(yyLOCAL) - case 1206: + case 1213: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:6273 +//line sql.y:6352 { yyLOCAL = BothTrimType } yyVAL.settrimType(yyLOCAL) - case 1207: + case 1214: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:6277 +//line sql.y:6356 { yyLOCAL = LeadingTrimType } yyVAL.settrimType(yyLOCAL) - case 1208: + case 1215: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:6281 +//line sql.y:6360 { yyLOCAL = TrailingTrimType } yyVAL.settrimType(yyLOCAL) - case 1209: + case 1216: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:6287 +//line sql.y:6366 { yyLOCAL = FrameRowsType } yyVAL.setframeUnitType(yyLOCAL) - case 1210: + case 1217: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:6291 +//line sql.y:6370 { yyLOCAL = FrameRangeType } yyVAL.setframeUnitType(yyLOCAL) - case 1211: + case 1218: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:6298 +//line sql.y:6377 { yyLOCAL = CumeDistExprType } yyVAL.setargumentLessWindowExprType(yyLOCAL) - case 1212: + case 1219: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:6302 +//line sql.y:6381 { yyLOCAL = DenseRankExprType } yyVAL.setargumentLessWindowExprType(yyLOCAL) - case 1213: + case 1220: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:6306 +//line sql.y:6385 { yyLOCAL = PercentRankExprType } yyVAL.setargumentLessWindowExprType(yyLOCAL) - case 1214: + case 1221: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:6310 +//line sql.y:6389 { yyLOCAL = RankExprType } yyVAL.setargumentLessWindowExprType(yyLOCAL) - case 1215: + case 1222: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:6314 +//line sql.y:6393 { yyLOCAL = RowNumberExprType } yyVAL.setargumentLessWindowExprType(yyLOCAL) - case 1216: + case 1223: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6320 +//line sql.y:6399 { yyLOCAL = &FramePoint{Type: CurrentRowType} } yyVAL.setframePoint(yyLOCAL) - case 1217: + case 1224: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6324 +//line sql.y:6403 { yyLOCAL = &FramePoint{Type: UnboundedPrecedingType} } yyVAL.setframePoint(yyLOCAL) - case 1218: + case 1225: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6328 +//line sql.y:6407 { yyLOCAL = &FramePoint{Type: UnboundedFollowingType} } yyVAL.setframePoint(yyLOCAL) - case 1219: + case 1226: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6332 +//line sql.y:6411 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[1].expr()} } yyVAL.setframePoint(yyLOCAL) - case 1220: + case 1227: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6336 +//line sql.y:6415 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[2].expr(), Unit: yyDollar[3].intervalType()} } yyVAL.setframePoint(yyLOCAL) - case 1221: + case 1228: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6340 +//line sql.y:6419 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[1].expr()} } yyVAL.setframePoint(yyLOCAL) - case 1222: + case 1229: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:6344 +//line sql.y:6423 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[2].expr(), Unit: yyDollar[3].intervalType()} } yyVAL.setframePoint(yyLOCAL) - case 1223: + case 1230: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:6349 +//line sql.y:6428 { yyLOCAL = nil } yyVAL.setframeClause(yyLOCAL) - case 1224: + case 1231: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:6353 +//line sql.y:6432 { yyLOCAL = yyDollar[1].frameClause() } yyVAL.setframeClause(yyLOCAL) - case 1225: + case 1232: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:6359 +//line sql.y:6438 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitType(), Start: yyDollar[2].framePoint()} } yyVAL.setframeClause(yyLOCAL) - case 1226: + case 1233: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:6363 +//line sql.y:6442 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitType(), Start: yyDollar[3].framePoint(), End: yyDollar[5].framePoint()} } yyVAL.setframeClause(yyLOCAL) - case 1227: + case 1234: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []Expr -//line sql.y:6368 +//line sql.y:6447 { yyLOCAL = nil } yyVAL.setexprs(yyLOCAL) - case 1228: + case 1235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []Expr -//line sql.y:6372 +//line sql.y:6451 { yyLOCAL = yyDollar[3].exprs() } yyVAL.setexprs(yyLOCAL) - case 1229: + case 1236: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:6377 +//line sql.y:6456 { yyLOCAL = IdentifierCI{} } yyVAL.setidentifierCI(yyLOCAL) - case 1230: + case 1237: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:6381 +//line sql.y:6460 { yyLOCAL = yyDollar[1].identifierCI() } yyVAL.setidentifierCI(yyLOCAL) - case 1231: + case 1238: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *WindowSpecification -//line sql.y:6387 +//line sql.y:6466 { yyLOCAL = &WindowSpecification{Name: yyDollar[1].identifierCI(), PartitionClause: yyDollar[2].exprs(), OrderClause: yyDollar[3].orderBy(), FrameClause: yyDollar[4].frameClause()} } yyVAL.setwindowSpecification(yyLOCAL) - case 1232: + case 1239: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OverClause -//line sql.y:6393 +//line sql.y:6472 { yyLOCAL = &OverClause{WindowSpec: yyDollar[3].windowSpecification()} } yyVAL.setoverClause(yyLOCAL) - case 1233: + case 1240: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OverClause -//line sql.y:6397 +//line sql.y:6476 { yyLOCAL = &OverClause{WindowName: yyDollar[2].identifierCI()} } yyVAL.setoverClause(yyLOCAL) - case 1234: + case 1241: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *OverClause -//line sql.y:6403 +//line sql.y:6482 { yyLOCAL = yyDollar[1].overClause() } yyVAL.setoverClause(yyLOCAL) - case 1235: + case 1242: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *OverClause -//line sql.y:6407 +//line sql.y:6486 { yyLOCAL = nil } yyVAL.setoverClause(yyLOCAL) - case 1236: + case 1243: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:6412 +//line sql.y:6491 { yyLOCAL = nil } yyVAL.setnullTreatmentClause(yyLOCAL) - case 1238: + case 1245: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:6419 +//line sql.y:6498 { yyLOCAL = &NullTreatmentClause{yyDollar[1].nullTreatmentType()} } yyVAL.setnullTreatmentClause(yyLOCAL) - case 1239: + case 1246: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:6425 +//line sql.y:6504 { yyLOCAL = RespectNullsType } yyVAL.setnullTreatmentType(yyLOCAL) - case 1240: + case 1247: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:6429 +//line sql.y:6508 { yyLOCAL = IgnoreNullsType } yyVAL.setnullTreatmentType(yyLOCAL) - case 1241: + case 1248: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:6435 +//line sql.y:6514 { yyLOCAL = FirstValueExprType } yyVAL.setfirstOrLastValueExprType(yyLOCAL) - case 1242: + case 1249: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:6439 +//line sql.y:6518 { yyLOCAL = LastValueExprType } yyVAL.setfirstOrLastValueExprType(yyLOCAL) - case 1243: + case 1250: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:6445 +//line sql.y:6524 { yyLOCAL = FromFirstType } yyVAL.setfromFirstLastType(yyLOCAL) - case 1244: + case 1251: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:6449 +//line sql.y:6528 { yyLOCAL = FromLastType } yyVAL.setfromFirstLastType(yyLOCAL) - case 1245: + case 1252: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:6454 +//line sql.y:6533 { yyLOCAL = nil } yyVAL.setfromFirstLastClause(yyLOCAL) - case 1247: + case 1254: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:6461 +//line sql.y:6540 { yyLOCAL = &FromFirstLastClause{yyDollar[1].fromFirstLastType()} } yyVAL.setfromFirstLastClause(yyLOCAL) - case 1248: + case 1255: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:6467 +//line sql.y:6546 { yyLOCAL = LagExprType } yyVAL.setlagLeadExprType(yyLOCAL) - case 1249: + case 1256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:6471 +//line sql.y:6550 { yyLOCAL = LeadExprType } yyVAL.setlagLeadExprType(yyLOCAL) - case 1250: + case 1257: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *WindowDefinition -//line sql.y:6477 +//line sql.y:6556 { yyLOCAL = &WindowDefinition{Name: yyDollar[1].identifierCI(), WindowSpec: yyDollar[4].windowSpecification()} } yyVAL.setwindowDefinition(yyLOCAL) - case 1251: + case 1258: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL WindowDefinitions -//line sql.y:6483 +//line sql.y:6562 { yyLOCAL = WindowDefinitions{yyDollar[1].windowDefinition()} } yyVAL.setwindowDefinitions(yyLOCAL) - case 1252: + case 1259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL WindowDefinitions -//line sql.y:6487 +//line sql.y:6566 { yyLOCAL = append(yyDollar[1].windowDefinitions(), yyDollar[3].windowDefinition()) } yyVAL.setwindowDefinitions(yyLOCAL) - case 1253: + case 1260: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:6493 +//line sql.y:6572 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1254: + case 1261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:6497 +//line sql.y:6576 { yyLOCAL = string(yyDollar[2].identifierCI().String()) } yyVAL.setstr(yyLOCAL) - case 1255: + case 1262: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:6503 +//line sql.y:6582 { yyLOCAL = BoolVal(true) } yyVAL.setboolVal(yyLOCAL) - case 1256: + case 1263: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:6507 +//line sql.y:6586 { yyLOCAL = BoolVal(false) } yyVAL.setboolVal(yyLOCAL) - case 1257: + case 1264: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:6514 +//line sql.y:6593 { yyLOCAL = IsTrueOp } yyVAL.setisExprOperator(yyLOCAL) - case 1258: + case 1265: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:6518 +//line sql.y:6597 { yyLOCAL = IsNotTrueOp } yyVAL.setisExprOperator(yyLOCAL) - case 1259: + case 1266: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:6522 +//line sql.y:6601 { yyLOCAL = IsFalseOp } yyVAL.setisExprOperator(yyLOCAL) - case 1260: + case 1267: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:6526 +//line sql.y:6605 { yyLOCAL = IsNotFalseOp } yyVAL.setisExprOperator(yyLOCAL) - case 1261: + case 1268: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6532 +//line sql.y:6611 { yyLOCAL = yyDollar[1].comparisonExprOperator() } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1262: + case 1269: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6536 +//line sql.y:6615 { yyLOCAL = NullSafeEqualOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1263: + case 1270: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6542 +//line sql.y:6621 { yyLOCAL = EqualOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1264: + case 1271: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6546 +//line sql.y:6625 { yyLOCAL = LessThanOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1265: + case 1272: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6550 +//line sql.y:6629 { yyLOCAL = GreaterThanOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1266: + case 1273: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6554 +//line sql.y:6633 { yyLOCAL = LessEqualOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1267: + case 1274: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6558 +//line sql.y:6637 { yyLOCAL = GreaterEqualOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1268: + case 1275: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:6562 +//line sql.y:6641 { yyLOCAL = NotEqualOp } yyVAL.setcomparisonExprOperator(yyLOCAL) - case 1269: + case 1276: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:6568 +//line sql.y:6647 { yyLOCAL = yyDollar[1].valTuple() } yyVAL.setcolTuple(yyLOCAL) - case 1270: + case 1277: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:6572 +//line sql.y:6651 { yyLOCAL = yyDollar[1].subquery() } yyVAL.setcolTuple(yyLOCAL) - case 1271: + case 1278: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:6576 +//line sql.y:6655 { yyLOCAL = ListArg(yyDollar[1].str()[2:]) markBindVariable(yylex, yyDollar[1].str()[2:]) } yyVAL.setcolTuple(yyLOCAL) - case 1272: + case 1279: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Subquery -//line sql.y:6583 +//line sql.y:6662 { yyLOCAL = &Subquery{yyDollar[1].tableStmt()} } yyVAL.setsubquery(yyLOCAL) - case 1273: + case 1280: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []Expr -//line sql.y:6589 +//line sql.y:6668 { yyLOCAL = []Expr{yyDollar[1].expr()} } yyVAL.setexprs(yyLOCAL) - case 1274: + case 1281: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []Expr -//line sql.y:6593 +//line sql.y:6672 { yyLOCAL = append(yyDollar[1].exprs(), yyDollar[3].expr()) } yyVAL.setexprs(yyLOCAL) - case 1275: + case 1282: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6603 +//line sql.y:6682 { yyLOCAL = &FuncExpr{Name: yyDollar[1].identifierCI(), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1276: + case 1283: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6607 +//line sql.y:6686 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].identifierCS(), Name: yyDollar[3].identifierCI(), Exprs: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1277: + case 1284: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6617 +//line sql.y:6696 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("left"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1278: + case 1285: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6621 +//line sql.y:6700 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("right"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1279: + case 1286: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6625 +//line sql.y:6704 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].expr(), From: yyDollar[5].expr(), To: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1280: + case 1287: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6629 +//line sql.y:6708 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].expr(), From: yyDollar[5].expr(), To: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1281: + case 1288: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6633 +//line sql.y:6712 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].expr(), From: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1282: + case 1289: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6637 +//line sql.y:6716 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].expr(), From: yyDollar[5].expr(), To: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1283: + case 1290: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6641 +//line sql.y:6720 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].expr(), From: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1284: + case 1291: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6645 +//line sql.y:6724 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].expr(), Whens: yyDollar[3].whens(), Else: yyDollar[4].expr()} } yyVAL.setexpr(yyLOCAL) - case 1285: + case 1292: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6649 +//line sql.y:6728 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colName()} } yyVAL.setexpr(yyLOCAL) - case 1286: + case 1293: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6653 +//line sql.y:6732 { yyLOCAL = &InsertExpr{Str: yyDollar[3].expr(), Pos: yyDollar[5].expr(), Len: yyDollar[7].expr(), NewStr: yyDollar[9].expr()} } yyVAL.setexpr(yyLOCAL) - case 1287: + case 1294: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6657 +//line sql.y:6736 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI(yyDollar[1].str())} } yyVAL.setexpr(yyLOCAL) - case 1288: + case 1295: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6668 +//line sql.y:6747 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("utc_date")} } yyVAL.setexpr(yyLOCAL) - case 1289: + case 1296: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6672 +//line sql.y:6751 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1290: + case 1297: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6678 +//line sql.y:6757 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("current_date")} } yyVAL.setexpr(yyLOCAL) - case 1291: + case 1298: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6682 +//line sql.y:6761 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("curdate")} } yyVAL.setexpr(yyLOCAL) - case 1292: + case 1299: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6686 +//line sql.y:6765 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_time"), Fsp: yyDollar[2].integer()} } yyVAL.setexpr(yyLOCAL) - case 1293: + case 1300: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6691 +//line sql.y:6770 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("curtime"), Fsp: yyDollar[2].integer()} } yyVAL.setexpr(yyLOCAL) - case 1294: + case 1301: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6696 +//line sql.y:6775 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_time"), Fsp: yyDollar[2].integer()} } yyVAL.setexpr(yyLOCAL) - case 1295: + case 1302: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6700 +//line sql.y:6779 { yyLOCAL = &CountStar{OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1296: + case 1303: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6704 +//line sql.y:6783 { yyLOCAL = &Count{Distinct: yyDollar[3].boolean(), Args: yyDollar[4].exprs(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1297: + case 1304: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6708 +//line sql.y:6787 { yyLOCAL = &Max{Distinct: yyDollar[3].boolean(), Arg: yyDollar[4].expr(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1298: + case 1305: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6712 +//line sql.y:6791 { yyLOCAL = &Min{Distinct: yyDollar[3].boolean(), Arg: yyDollar[4].expr(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1299: + case 1306: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6716 +//line sql.y:6795 { yyLOCAL = &Sum{Distinct: yyDollar[3].boolean(), Arg: yyDollar[4].expr(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1300: + case 1307: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6720 +//line sql.y:6799 { yyLOCAL = &Avg{Distinct: yyDollar[3].boolean(), Arg: yyDollar[4].expr(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1301: + case 1308: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6724 +//line sql.y:6803 { yyLOCAL = &BitAnd{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1302: + case 1309: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6728 +//line sql.y:6807 { yyLOCAL = &BitOr{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1303: + case 1310: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6732 +//line sql.y:6811 { yyLOCAL = &BitXor{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1304: + case 1311: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6736 +//line sql.y:6815 { yyLOCAL = &Std{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1305: + case 1312: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6740 +//line sql.y:6819 { yyLOCAL = &StdDev{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1306: + case 1313: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6744 +//line sql.y:6823 { yyLOCAL = &StdPop{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1307: + case 1314: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6748 +//line sql.y:6827 { yyLOCAL = &StdSamp{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1308: + case 1315: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6752 +//line sql.y:6831 { yyLOCAL = &VarPop{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1309: + case 1316: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6756 +//line sql.y:6835 { yyLOCAL = &VarSamp{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1310: + case 1317: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6760 +//line sql.y:6839 { yyLOCAL = &Variance{Arg: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1311: + case 1318: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6764 +//line sql.y:6843 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].boolean(), Exprs: yyDollar[4].exprs(), OrderBy: yyDollar[5].orderBy(), Separator: yyDollar[6].str(), Limit: yyDollar[7].limit()} } yyVAL.setexpr(yyLOCAL) - case 1312: + case 1319: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6768 +//line sql.y:6847 { yyLOCAL = &AnyValue{Arg: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1313: + case 1320: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6772 +//line sql.y:6851 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprTimestampadd, Date: yyDollar[7].expr(), Interval: yyDollar[5].expr(), Unit: yyDollar[3].intervalType()} } yyVAL.setexpr(yyLOCAL) - case 1314: + case 1321: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6776 +//line sql.y:6855 { yyLOCAL = &TimestampDiffExpr{Unit: yyDollar[3].intervalType(), Expr1: yyDollar[5].expr(), Expr2: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1315: + case 1322: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6780 +//line sql.y:6859 { yyLOCAL = &ExtractFuncExpr{IntervalType: yyDollar[3].intervalType(), Expr: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1316: + case 1323: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6784 +//line sql.y:6863 { yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].expr(), As: yyDollar[4].convertType()} } yyVAL.setexpr(yyLOCAL) - case 1317: + case 1324: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6788 +//line sql.y:6867 { yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1318: + case 1325: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6792 +//line sql.y:6871 { yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1319: + case 1326: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6796 +//line sql.y:6875 { yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1320: + case 1327: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6800 +//line sql.y:6879 { yyLOCAL = &JSONArrayAgg{Expr: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1321: + case 1328: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6804 +//line sql.y:6883 { yyLOCAL = &JSONObjectAgg{Key: yyDollar[3].expr(), Value: yyDollar[5].expr(), OverClause: yyDollar[7].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1322: + case 1329: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6808 +//line sql.y:6887 { yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, Type: LeadingTrimType, StringArg: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1323: + case 1330: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6812 +//line sql.y:6891 { yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, Type: TrailingTrimType, StringArg: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1324: + case 1331: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6816 +//line sql.y:6895 { yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimType(), TrimArg: yyDollar[4].expr(), StringArg: yyDollar[6].expr()} } yyVAL.setexpr(yyLOCAL) - case 1325: + case 1332: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6820 +//line sql.y:6899 { yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1326: + case 1333: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6824 +//line sql.y:6903 { yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1327: + case 1334: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6828 +//line sql.y:6907 { yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprs(), Charset: yyDollar[5].str()} } yyVAL.setexpr(yyLOCAL) - case 1328: + case 1335: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6832 +//line sql.y:6911 { yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].expr(), StringArg: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1329: + case 1336: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6836 +//line sql.y:6915 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].expr(), Str: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1330: + case 1337: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6840 +//line sql.y:6919 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].expr(), Str: yyDollar[5].expr(), Pos: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1331: + case 1338: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6844 +//line sql.y:6923 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].expr(), Str: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1332: + case 1339: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6848 +//line sql.y:6927 { yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].expr(), Timeout: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1333: + case 1340: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6852 +//line sql.y:6931 { yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1334: + case 1341: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6856 +//line sql.y:6935 { yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1335: + case 1342: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6860 +//line sql.y:6939 { yyLOCAL = &LockingFunc{Type: ReleaseAllLocks} } yyVAL.setexpr(yyLOCAL) - case 1336: + case 1343: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6864 +//line sql.y:6943 { yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1337: + case 1344: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6868 +//line sql.y:6947 { yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].expr(), Document: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1338: + case 1345: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6872 +//line sql.y:6951 { yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].expr(), Document: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1339: + case 1346: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6876 +//line sql.y:6955 { yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1340: + case 1347: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6880 +//line sql.y:6959 { yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1341: + case 1348: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6884 +//line sql.y:6963 { yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].expr(), AxisOrderOpt: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1342: + case 1349: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6888 +//line sql.y:6967 { yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1343: + case 1350: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6892 +//line sql.y:6971 { yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].expr(), AxisOrderOpt: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1344: + case 1351: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6896 +//line sql.y:6975 { yyLOCAL = &GeomPropertyFuncExpr{Property: IsEmpty, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1345: + case 1352: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6900 +//line sql.y:6979 { yyLOCAL = &GeomPropertyFuncExpr{Property: IsSimple, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1346: + case 1353: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6904 +//line sql.y:6983 { yyLOCAL = &GeomPropertyFuncExpr{Property: Dimension, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1347: + case 1354: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6908 +//line sql.y:6987 { yyLOCAL = &GeomPropertyFuncExpr{Property: Envelope, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1348: + case 1355: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6912 +//line sql.y:6991 { yyLOCAL = &GeomPropertyFuncExpr{Property: GeometryType, Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1349: + case 1356: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6916 +//line sql.y:6995 { yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1350: + case 1357: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6920 +//line sql.y:6999 { yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].expr(), ValueToSet: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1351: + case 1358: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6924 +//line sql.y:7003 { yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1352: + case 1359: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6928 +//line sql.y:7007 { yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].expr(), ValueToSet: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1353: + case 1360: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6932 +//line sql.y:7011 { yyLOCAL = &LinestrPropertyFuncExpr{Property: EndPoint, Linestring: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1354: + case 1361: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6936 +//line sql.y:7015 { yyLOCAL = &LinestrPropertyFuncExpr{Property: IsClosed, Linestring: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1355: + case 1362: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6940 +//line sql.y:7019 { yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1356: + case 1363: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6944 +//line sql.y:7023 { yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].expr(), PropertyDefArg: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1357: + case 1364: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6948 +//line sql.y:7027 { yyLOCAL = &LinestrPropertyFuncExpr{Property: NumPoints, Linestring: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1358: + case 1365: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6952 +//line sql.y:7031 { yyLOCAL = &LinestrPropertyFuncExpr{Property: PointN, Linestring: yyDollar[3].expr(), PropertyDefArg: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1359: + case 1366: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6956 +//line sql.y:7035 { yyLOCAL = &LinestrPropertyFuncExpr{Property: StartPoint, Linestring: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1360: + case 1367: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6960 +//line sql.y:7039 { yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1361: + case 1368: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6964 +//line sql.y:7043 { yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].expr(), ValueToSet: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1362: + case 1369: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6968 +//line sql.y:7047 { yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1363: + case 1370: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6972 +//line sql.y:7051 { yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].expr(), ValueToSet: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1364: + case 1371: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6976 +//line sql.y:7055 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1365: + case 1372: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6980 +//line sql.y:7059 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1366: + case 1373: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6984 +//line sql.y:7063 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1367: + case 1374: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6988 +//line sql.y:7067 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1368: + case 1375: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6992 +//line sql.y:7071 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1369: + case 1376: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6996 +//line sql.y:7075 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1370: + case 1377: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7000 +//line sql.y:7079 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1371: + case 1378: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7004 +//line sql.y:7083 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1372: + case 1379: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7008 +//line sql.y:7087 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1373: + case 1380: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7012 +//line sql.y:7091 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1374: + case 1381: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7016 +//line sql.y:7095 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1375: + case 1382: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7020 +//line sql.y:7099 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1376: + case 1383: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7024 +//line sql.y:7103 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1377: + case 1384: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7028 +//line sql.y:7107 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1378: + case 1385: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7032 +//line sql.y:7111 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1379: + case 1386: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7036 +//line sql.y:7115 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1380: + case 1387: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7040 +//line sql.y:7119 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1381: + case 1388: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7044 +//line sql.y:7123 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1382: + case 1389: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7048 +//line sql.y:7127 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1383: + case 1390: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7052 +//line sql.y:7131 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1384: + case 1391: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7056 +//line sql.y:7135 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1385: + case 1392: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7060 +//line sql.y:7139 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1386: + case 1393: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7064 +//line sql.y:7143 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1387: + case 1394: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7068 +//line sql.y:7147 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1388: + case 1395: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7072 +//line sql.y:7151 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1389: + case 1396: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7076 +//line sql.y:7155 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1390: + case 1397: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7080 +//line sql.y:7159 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1391: + case 1398: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7084 +//line sql.y:7163 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1392: + case 1399: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7088 +//line sql.y:7167 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1393: + case 1400: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7092 +//line sql.y:7171 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1394: + case 1401: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7096 +//line sql.y:7175 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1395: + case 1402: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7100 +//line sql.y:7179 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1396: + case 1403: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7104 +//line sql.y:7183 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1397: + case 1404: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7108 +//line sql.y:7187 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1398: + case 1405: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7112 +//line sql.y:7191 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1399: + case 1406: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7116 +//line sql.y:7195 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1400: + case 1407: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7120 +//line sql.y:7199 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1401: + case 1408: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7124 +//line sql.y:7203 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1402: + case 1409: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7128 +//line sql.y:7207 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1403: + case 1410: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7132 +//line sql.y:7211 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1404: + case 1411: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7136 +//line sql.y:7215 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1405: + case 1412: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7140 +//line sql.y:7219 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1406: + case 1413: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7144 +//line sql.y:7223 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1407: + case 1414: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7148 +//line sql.y:7227 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1408: + case 1415: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7152 +//line sql.y:7231 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1409: + case 1416: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7156 +//line sql.y:7235 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1410: + case 1417: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7160 +//line sql.y:7239 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1411: + case 1418: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7164 +//line sql.y:7243 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].expr(), Srid: yyDollar[5].expr(), AxisOrderOpt: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1412: + case 1419: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7168 +//line sql.y:7247 { yyLOCAL = &PolygonPropertyFuncExpr{Property: Area, Polygon: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1413: + case 1420: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7172 +//line sql.y:7251 { yyLOCAL = &PolygonPropertyFuncExpr{Property: Centroid, Polygon: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1414: + case 1421: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7176 +//line sql.y:7255 { yyLOCAL = &PolygonPropertyFuncExpr{Property: ExteriorRing, Polygon: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1415: + case 1422: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7180 +//line sql.y:7259 { yyLOCAL = &PolygonPropertyFuncExpr{Property: InteriorRingN, Polygon: yyDollar[3].expr(), PropertyDefArg: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1416: + case 1423: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7184 +//line sql.y:7263 { yyLOCAL = &PolygonPropertyFuncExpr{Property: NumInteriorRings, Polygon: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1417: + case 1424: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7188 +//line sql.y:7267 { yyLOCAL = &GeomCollPropertyFuncExpr{Property: GeometryN, GeomColl: yyDollar[3].expr(), PropertyDefArg: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1418: + case 1425: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7192 +//line sql.y:7271 { yyLOCAL = &GeomCollPropertyFuncExpr{Property: NumGeometries, GeomColl: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1419: + case 1426: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7196 +//line sql.y:7275 { yyLOCAL = &GeoHashFromLatLongExpr{Longitude: yyDollar[3].expr(), Latitude: yyDollar[5].expr(), MaxLength: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1420: + case 1427: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7200 +//line sql.y:7279 { yyLOCAL = &GeoHashFromPointExpr{Point: yyDollar[3].expr(), MaxLength: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1421: + case 1428: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7204 +//line sql.y:7283 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: LatitudeFromHash, GeoHash: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1422: + case 1429: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7208 +//line sql.y:7287 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: LongitudeFromHash, GeoHash: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1423: + case 1430: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7212 +//line sql.y:7291 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: PointFromHash, GeoHash: yyDollar[3].expr(), SridOpt: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1424: + case 1431: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7216 +//line sql.y:7295 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1425: + case 1432: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7220 +//line sql.y:7299 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].expr(), HigherDimHandlerOpt: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1426: + case 1433: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7224 +//line sql.y:7303 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].expr(), HigherDimHandlerOpt: yyDollar[5].expr(), Srid: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1427: + case 1434: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7228 +//line sql.y:7307 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1428: + case 1435: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7232 +//line sql.y:7311 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].expr(), MaxDecimalDigits: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1429: + case 1436: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7236 +//line sql.y:7315 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].expr(), MaxDecimalDigits: yyDollar[5].expr(), Bitmask: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1430: + case 1437: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7240 +//line sql.y:7319 { yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParams()} } yyVAL.setexpr(yyLOCAL) - case 1431: + case 1438: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7244 +//line sql.y:7323 { yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1432: + case 1439: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7248 +//line sql.y:7327 { yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].expr(), Candidate: yyDollar[5].exprs()[0], PathList: yyDollar[5].exprs()[1:]} } yyVAL.setexpr(yyLOCAL) - case 1433: + case 1440: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7252 +//line sql.y:7331 { yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].expr(), OneOrAll: yyDollar[5].expr(), PathList: yyDollar[7].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1434: + case 1441: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7256 +//line sql.y:7335 { yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].expr(), PathList: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1435: + case 1442: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7260 +//line sql.y:7339 { yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1436: + case 1443: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7264 +//line sql.y:7343 { yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].expr(), Path: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1437: + case 1444: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7268 +//line sql.y:7347 { yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].expr(), JSONDoc2: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1438: + case 1445: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7272 +//line sql.y:7351 { yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].expr(), OneOrAll: yyDollar[5].expr(), SearchStr: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1439: + case 1446: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:7276 +//line sql.y:7355 { yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].expr(), OneOrAll: yyDollar[5].expr(), SearchStr: yyDollar[7].expr(), EscapeChar: yyDollar[9].exprs()[0], PathList: yyDollar[9].exprs()[1:]} } yyVAL.setexpr(yyLOCAL) - case 1440: + case 1447: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:7280 +//line sql.y:7359 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].expr(), Path: yyDollar[5].expr(), ReturningType: yyDollar[6].convertType()} } yyVAL.setexpr(yyLOCAL) - case 1441: + case 1448: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7284 +//line sql.y:7363 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].expr(), Path: yyDollar[5].expr(), ReturningType: yyDollar[6].convertType(), EmptyOnResponse: yyDollar[7].jtOnResponse()} } yyVAL.setexpr(yyLOCAL) - case 1442: + case 1449: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7288 +//line sql.y:7367 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].expr(), Path: yyDollar[5].expr(), ReturningType: yyDollar[6].convertType(), ErrorOnResponse: yyDollar[7].jtOnResponse()} } yyVAL.setexpr(yyLOCAL) - case 1443: + case 1450: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:7292 +//line sql.y:7371 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].expr(), Path: yyDollar[5].expr(), ReturningType: yyDollar[6].convertType(), EmptyOnResponse: yyDollar[7].jtOnResponse(), ErrorOnResponse: yyDollar[8].jtOnResponse()} } yyVAL.setexpr(yyLOCAL) - case 1444: + case 1451: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7296 +//line sql.y:7375 { yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1445: + case 1452: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7300 +//line sql.y:7379 { yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1446: + case 1453: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7304 +//line sql.y:7383 { yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1447: + case 1454: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7308 +//line sql.y:7387 { yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1448: + case 1455: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7312 +//line sql.y:7391 { yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].expr(), Path: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1449: + case 1456: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7316 +//line sql.y:7395 { yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].expr(), Params: yyDollar[5].jsonObjectParams()} } yyVAL.setexpr(yyLOCAL) - case 1450: + case 1457: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7320 +//line sql.y:7399 { yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].expr(), Params: yyDollar[5].jsonObjectParams()} } yyVAL.setexpr(yyLOCAL) - case 1451: + case 1458: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7324 +//line sql.y:7403 { yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].expr(), Params: yyDollar[5].jsonObjectParams()} } yyVAL.setexpr(yyLOCAL) - case 1452: + case 1459: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7328 +//line sql.y:7407 { yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].expr(), Params: yyDollar[5].jsonObjectParams()} } yyVAL.setexpr(yyLOCAL) - case 1453: + case 1460: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7332 +//line sql.y:7411 { yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].expr(), Params: yyDollar[5].jsonObjectParams()} } yyVAL.setexpr(yyLOCAL) - case 1454: + case 1461: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7336 +//line sql.y:7415 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].expr(), JSONDocList: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1455: + case 1462: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7340 +//line sql.y:7419 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].expr(), JSONDocList: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1456: + case 1463: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7344 +//line sql.y:7423 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].expr(), JSONDocList: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1457: + case 1464: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7348 +//line sql.y:7427 { yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].expr(), PathList: yyDollar[5].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1458: + case 1465: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7352 +//line sql.y:7431 { yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1459: + case 1466: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7356 +//line sql.y:7435 { yyLOCAL = &MultiPolygonExpr{PolygonParams: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1460: + case 1467: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7360 +//line sql.y:7439 { yyLOCAL = &MultiPointExpr{PointParams: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1461: + case 1468: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7364 +//line sql.y:7443 { yyLOCAL = &MultiLinestringExpr{LinestringParams: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1462: + case 1469: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7368 +//line sql.y:7447 { yyLOCAL = &PolygonExpr{LinestringParams: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1463: + case 1470: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7372 +//line sql.y:7451 { yyLOCAL = &LineStringExpr{PointParams: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1464: + case 1471: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7376 +//line sql.y:7455 { yyLOCAL = &PointExpr{XCordinate: yyDollar[3].expr(), YCordinate: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1465: + case 1472: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7380 +//line sql.y:7459 { yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprType(), OverClause: yyDollar[4].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1466: + case 1473: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7384 +//line sql.y:7463 { yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprType(), Expr: yyDollar[3].expr(), NullTreatmentClause: yyDollar[5].nullTreatmentClause(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1467: + case 1474: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:7388 +//line sql.y:7467 { yyLOCAL = &NtileExpr{N: yyDollar[3].expr(), OverClause: yyDollar[5].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1468: + case 1475: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:7392 +//line sql.y:7471 { yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].expr(), N: yyDollar[5].expr(), FromFirstLastClause: yyDollar[7].fromFirstLastClause(), NullTreatmentClause: yyDollar[8].nullTreatmentClause(), OverClause: yyDollar[9].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1469: + case 1476: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7396 +//line sql.y:7475 { yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprType(), Expr: yyDollar[3].expr(), NullTreatmentClause: yyDollar[5].nullTreatmentClause(), OverClause: yyDollar[6].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1470: + case 1477: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:7400 +//line sql.y:7479 { yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprType(), Expr: yyDollar[3].expr(), N: yyDollar[5].expr(), Default: yyDollar[6].expr(), NullTreatmentClause: yyDollar[8].nullTreatmentClause(), OverClause: yyDollar[9].overClause()} } yyVAL.setexpr(yyLOCAL) - case 1471: + case 1478: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7404 +//line sql.y:7483 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].expr(), Interval: yyDollar[6].expr(), Unit: yyDollar[7].intervalType()} } yyVAL.setexpr(yyLOCAL) - case 1472: + case 1479: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7408 +//line sql.y:7487 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].expr(), Interval: yyDollar[5].expr(), Unit: IntervalNone} } yyVAL.setexpr(yyLOCAL) - case 1473: + case 1480: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7412 +//line sql.y:7491 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateAdd, Date: yyDollar[3].expr(), Interval: yyDollar[6].expr(), Unit: yyDollar[7].intervalType()} } yyVAL.setexpr(yyLOCAL) - case 1474: + case 1481: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7416 +//line sql.y:7495 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateSub, Date: yyDollar[3].expr(), Interval: yyDollar[6].expr(), Unit: yyDollar[7].intervalType()} } yyVAL.setexpr(yyLOCAL) - case 1475: + case 1482: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7420 +//line sql.y:7499 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].expr(), Interval: yyDollar[6].expr(), Unit: yyDollar[7].intervalType()} } yyVAL.setexpr(yyLOCAL) - case 1476: + case 1483: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7424 +//line sql.y:7503 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].expr(), Interval: yyDollar[5].expr(), Unit: IntervalNone} } yyVAL.setexpr(yyLOCAL) - case 1481: + case 1488: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7434 +//line sql.y:7513 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1482: + case 1489: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7438 +//line sql.y:7517 { yyLOCAL = NewIntLiteral(yyDollar[1].str()) } yyVAL.setexpr(yyLOCAL) - case 1483: + case 1490: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7442 +//line sql.y:7521 { yyLOCAL = yyDollar[1].variable() } yyVAL.setexpr(yyLOCAL) - case 1484: + case 1491: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7446 +//line sql.y:7525 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str()[1:]) } yyVAL.setexpr(yyLOCAL) - case 1485: + case 1492: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7451 +//line sql.y:7530 { yyLOCAL = nil } yyVAL.setexpr(yyLOCAL) - case 1486: + case 1493: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7455 +//line sql.y:7534 { yyLOCAL = yyDollar[2].expr() } yyVAL.setexpr(yyLOCAL) - case 1487: + case 1494: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7461 +//line sql.y:7540 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1488: + case 1495: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7465 +//line sql.y:7544 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1489: + case 1496: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:7469 +//line sql.y:7548 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr(), Occurrence: yyDollar[9].expr()} } yyVAL.setexpr(yyLOCAL) - case 1490: + case 1497: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:7473 +//line sql.y:7552 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr(), Occurrence: yyDollar[9].expr(), ReturnOption: yyDollar[11].expr()} } yyVAL.setexpr(yyLOCAL) - case 1491: + case 1498: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr -//line sql.y:7477 +//line sql.y:7556 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr(), Occurrence: yyDollar[9].expr(), ReturnOption: yyDollar[11].expr(), MatchType: yyDollar[13].expr()} } yyVAL.setexpr(yyLOCAL) - case 1492: + case 1499: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7482 +//line sql.y:7561 { yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1493: + case 1500: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7486 +//line sql.y:7565 { yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), MatchType: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1494: + case 1501: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7490 +//line sql.y:7569 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Repl: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1495: + case 1502: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:7494 +//line sql.y:7573 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Repl: yyDollar[7].expr(), Position: yyDollar[9].expr()} } yyVAL.setexpr(yyLOCAL) - case 1496: + case 1503: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:7498 +//line sql.y:7577 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Repl: yyDollar[7].expr(), Position: yyDollar[9].expr(), Occurrence: yyDollar[11].expr()} } yyVAL.setexpr(yyLOCAL) - case 1497: + case 1504: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr -//line sql.y:7502 +//line sql.y:7581 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Repl: yyDollar[7].expr(), Position: yyDollar[9].expr(), Occurrence: yyDollar[11].expr(), MatchType: yyDollar[13].expr()} } yyVAL.setexpr(yyLOCAL) - case 1498: + case 1505: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7507 +//line sql.y:7586 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1499: + case 1506: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7511 +//line sql.y:7590 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1500: + case 1507: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:7515 +//line sql.y:7594 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr(), Occurrence: yyDollar[9].expr()} } yyVAL.setexpr(yyLOCAL) - case 1501: + case 1508: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:7519 +//line sql.y:7598 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].expr(), Pattern: yyDollar[5].expr(), Position: yyDollar[7].expr(), Occurrence: yyDollar[9].expr(), MatchType: yyDollar[11].expr()} } yyVAL.setexpr(yyLOCAL) - case 1502: + case 1509: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7526 +//line sql.y:7605 { yyLOCAL = &ExtractValueExpr{Fragment: yyDollar[3].expr(), XPathExpr: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1503: + case 1510: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7530 +//line sql.y:7609 { yyLOCAL = &UpdateXMLExpr{Target: yyDollar[3].expr(), XPathExpr: yyDollar[5].expr(), NewXML: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1504: + case 1511: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7536 +//line sql.y:7615 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatBytesType, Argument: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1505: + case 1512: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7540 +//line sql.y:7619 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatPicoTimeType, Argument: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1506: + case 1513: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:7544 +//line sql.y:7623 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsCurrentThreadIDType} } yyVAL.setexpr(yyLOCAL) - case 1507: + case 1514: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7548 +//line sql.y:7627 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsThreadIDType, Argument: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1508: + case 1515: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7554 +//line sql.y:7633 { yyLOCAL = >IDFuncExpr{Type: GTIDSubsetType, Set1: yyDollar[3].expr(), Set2: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1509: + case 1516: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7558 +//line sql.y:7637 { yyLOCAL = >IDFuncExpr{Type: GTIDSubtractType, Set1: yyDollar[3].expr(), Set2: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1510: + case 1517: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7562 +//line sql.y:7641 { yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1511: + case 1518: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7566 +//line sql.y:7645 { yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].expr(), Timeout: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1512: + case 1519: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7570 +//line sql.y:7649 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].expr()} } yyVAL.setexpr(yyLOCAL) - case 1513: + case 1520: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:7574 +//line sql.y:7653 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].expr(), Timeout: yyDollar[5].expr()} } yyVAL.setexpr(yyLOCAL) - case 1514: + case 1521: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:7578 +//line sql.y:7657 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].expr(), Timeout: yyDollar[5].expr(), Channel: yyDollar[7].expr()} } yyVAL.setexpr(yyLOCAL) - case 1515: + case 1522: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7583 +//line sql.y:7662 { yyLOCAL = nil } yyVAL.setconvertType(yyLOCAL) - case 1516: + case 1523: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7587 +//line sql.y:7666 { yyLOCAL = yyDollar[2].convertType() } yyVAL.setconvertType(yyLOCAL) - case 1517: + case 1524: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7593 +//line sql.y:7672 { yyLOCAL = IntervalDayHour } yyVAL.setintervalType(yyLOCAL) - case 1518: + case 1525: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7597 +//line sql.y:7676 { yyLOCAL = IntervalDayMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1519: + case 1526: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7601 +//line sql.y:7680 { yyLOCAL = IntervalDayMinute } yyVAL.setintervalType(yyLOCAL) - case 1520: + case 1527: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7605 +//line sql.y:7684 { yyLOCAL = IntervalDaySecond } yyVAL.setintervalType(yyLOCAL) - case 1521: + case 1528: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7609 +//line sql.y:7688 { yyLOCAL = IntervalHourMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1522: + case 1529: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7613 +//line sql.y:7692 { yyLOCAL = IntervalHourMinute } yyVAL.setintervalType(yyLOCAL) - case 1523: + case 1530: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7617 +//line sql.y:7696 { yyLOCAL = IntervalHourSecond } yyVAL.setintervalType(yyLOCAL) - case 1524: + case 1531: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7621 +//line sql.y:7700 { yyLOCAL = IntervalMinuteMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1525: + case 1532: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7625 +//line sql.y:7704 { yyLOCAL = IntervalMinuteSecond } yyVAL.setintervalType(yyLOCAL) - case 1526: + case 1533: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7629 +//line sql.y:7708 { yyLOCAL = IntervalSecondMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1527: + case 1534: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7633 +//line sql.y:7712 { yyLOCAL = IntervalYearMonth } yyVAL.setintervalType(yyLOCAL) - case 1528: + case 1535: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7637 +//line sql.y:7716 { yyLOCAL = IntervalDay } yyVAL.setintervalType(yyLOCAL) - case 1529: + case 1536: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7641 +//line sql.y:7720 { yyLOCAL = IntervalWeek } yyVAL.setintervalType(yyLOCAL) - case 1530: + case 1537: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7645 +//line sql.y:7724 { yyLOCAL = IntervalHour } yyVAL.setintervalType(yyLOCAL) - case 1531: + case 1538: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7649 +//line sql.y:7728 { yyLOCAL = IntervalMinute } yyVAL.setintervalType(yyLOCAL) - case 1532: + case 1539: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7653 +//line sql.y:7732 { yyLOCAL = IntervalMonth } yyVAL.setintervalType(yyLOCAL) - case 1533: + case 1540: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7657 +//line sql.y:7736 { yyLOCAL = IntervalQuarter } yyVAL.setintervalType(yyLOCAL) - case 1534: + case 1541: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7661 +//line sql.y:7740 { yyLOCAL = IntervalSecond } yyVAL.setintervalType(yyLOCAL) - case 1535: + case 1542: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7665 +//line sql.y:7744 { yyLOCAL = IntervalMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1536: + case 1543: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7669 +//line sql.y:7748 { yyLOCAL = IntervalYear } yyVAL.setintervalType(yyLOCAL) - case 1537: + case 1544: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7675 +//line sql.y:7754 { yyLOCAL = IntervalDay } yyVAL.setintervalType(yyLOCAL) - case 1538: + case 1545: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7679 +//line sql.y:7758 { yyLOCAL = IntervalWeek } yyVAL.setintervalType(yyLOCAL) - case 1539: + case 1546: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7683 +//line sql.y:7762 { yyLOCAL = IntervalHour } yyVAL.setintervalType(yyLOCAL) - case 1540: + case 1547: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7687 +//line sql.y:7766 { yyLOCAL = IntervalMinute } yyVAL.setintervalType(yyLOCAL) - case 1541: + case 1548: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7691 +//line sql.y:7770 { yyLOCAL = IntervalMonth } yyVAL.setintervalType(yyLOCAL) - case 1542: + case 1549: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7695 +//line sql.y:7774 { yyLOCAL = IntervalQuarter } yyVAL.setintervalType(yyLOCAL) - case 1543: + case 1550: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7699 +//line sql.y:7778 { yyLOCAL = IntervalSecond } yyVAL.setintervalType(yyLOCAL) - case 1544: + case 1551: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7703 +//line sql.y:7782 { yyLOCAL = IntervalMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1545: + case 1552: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7707 +//line sql.y:7786 { yyLOCAL = IntervalYear } yyVAL.setintervalType(yyLOCAL) - case 1546: + case 1553: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7711 +//line sql.y:7790 { yyLOCAL = IntervalDay } yyVAL.setintervalType(yyLOCAL) - case 1547: + case 1554: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7715 +//line sql.y:7794 { yyLOCAL = IntervalWeek } yyVAL.setintervalType(yyLOCAL) - case 1548: + case 1555: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7719 +//line sql.y:7798 { yyLOCAL = IntervalHour } yyVAL.setintervalType(yyLOCAL) - case 1549: + case 1556: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7723 +//line sql.y:7802 { yyLOCAL = IntervalMinute } yyVAL.setintervalType(yyLOCAL) - case 1550: + case 1557: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7727 +//line sql.y:7806 { yyLOCAL = IntervalMonth } yyVAL.setintervalType(yyLOCAL) - case 1551: + case 1558: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7731 +//line sql.y:7810 { yyLOCAL = IntervalQuarter } yyVAL.setintervalType(yyLOCAL) - case 1552: + case 1559: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7735 +//line sql.y:7814 { yyLOCAL = IntervalSecond } yyVAL.setintervalType(yyLOCAL) - case 1553: + case 1560: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7739 +//line sql.y:7818 { yyLOCAL = IntervalMicrosecond } yyVAL.setintervalType(yyLOCAL) - case 1554: + case 1561: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7743 +//line sql.y:7822 { yyLOCAL = IntervalYear } yyVAL.setintervalType(yyLOCAL) - case 1557: + case 1564: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:7753 +//line sql.y:7832 { yyLOCAL = 0 } yyVAL.setinteger(yyLOCAL) - case 1558: + case 1565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:7757 +//line sql.y:7836 { yyLOCAL = 0 } yyVAL.setinteger(yyLOCAL) - case 1559: + case 1566: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:7761 +//line sql.y:7840 { yyLOCAL = convertStringToInt(yyDollar[2].str()) } yyVAL.setinteger(yyLOCAL) - case 1560: + case 1567: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7771 +//line sql.y:7850 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("if"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1561: + case 1568: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7775 +//line sql.y:7854 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("database"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1562: + case 1569: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7779 +//line sql.y:7858 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("schema"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1563: + case 1570: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7783 +//line sql.y:7862 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("mod"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1564: + case 1571: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7787 +//line sql.y:7866 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("replace"), Exprs: yyDollar[3].exprs()} } yyVAL.setexpr(yyLOCAL) - case 1565: + case 1572: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7793 +//line sql.y:7872 { yyLOCAL = NoOption } yyVAL.setmatchExprOption(yyLOCAL) - case 1566: + case 1573: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7797 +//line sql.y:7876 { yyLOCAL = BooleanModeOpt } yyVAL.setmatchExprOption(yyLOCAL) - case 1567: + case 1574: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7801 +//line sql.y:7880 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.setmatchExprOption(yyLOCAL) - case 1568: + case 1575: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7805 +//line sql.y:7884 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.setmatchExprOption(yyLOCAL) - case 1569: + case 1576: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7809 +//line sql.y:7888 { yyLOCAL = QueryExpansionOpt } yyVAL.setmatchExprOption(yyLOCAL) - case 1570: + case 1577: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:7815 +//line sql.y:7894 { yyLOCAL = string(yyDollar[1].identifierCI().String()) } yyVAL.setstr(yyLOCAL) - case 1571: + case 1578: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:7819 +//line sql.y:7898 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1572: + case 1579: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:7823 +//line sql.y:7902 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1573: + case 1580: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7829 +//line sql.y:7908 { yyLOCAL = nil } yyVAL.setconvertType(yyLOCAL) - case 1574: + case 1581: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7833 +//line sql.y:7912 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str()), Length: ptr.Of(convertStringToInt(yyDollar[4].str()))} } yyVAL.setconvertType(yyLOCAL) - case 1575: + case 1582: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7837 +//line sql.y:7916 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str()), Length: ptr.Of(convertStringToInt(yyDollar[4].str()))} } yyVAL.setconvertType(yyLOCAL) - case 1576: + case 1583: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7843 +//line sql.y:7922 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str()), Length: yyDollar[2].intPtr()} } yyVAL.setconvertType(yyLOCAL) - case 1577: + case 1584: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7847 +//line sql.y:7926 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str()), Length: yyDollar[2].intPtr(), Charset: yyDollar[3].columnCharset()} } yyVAL.setconvertType(yyLOCAL) - case 1578: + case 1585: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7851 +//line sql.y:7930 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1579: + case 1586: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7855 +//line sql.y:7934 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str()), Length: yyDollar[2].intPtr()} } yyVAL.setconvertType(yyLOCAL) - case 1580: + case 1587: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7859 +//line sql.y:7938 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} yyLOCAL.Length = yyDollar[2].LengthScaleOption().Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption().Scale } yyVAL.setconvertType(yyLOCAL) - case 1581: + case 1588: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7865 +//line sql.y:7944 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1582: + case 1589: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7869 +//line sql.y:7948 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str()), Length: yyDollar[2].intPtr()} } yyVAL.setconvertType(yyLOCAL) - case 1583: + case 1590: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7873 +//line sql.y:7952 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1584: + case 1591: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7877 +//line sql.y:7956 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1585: + case 1592: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7881 +//line sql.y:7960 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str()), Length: yyDollar[2].intPtr()} } yyVAL.setconvertType(yyLOCAL) - case 1586: + case 1593: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7885 +//line sql.y:7964 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1587: + case 1594: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7889 +//line sql.y:7968 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1588: + case 1595: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7893 +//line sql.y:7972 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str()), Length: yyDollar[2].intPtr()} } yyVAL.setconvertType(yyLOCAL) - case 1589: + case 1596: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7897 +//line sql.y:7976 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1590: + case 1597: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7901 +//line sql.y:7980 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str())} } yyVAL.setconvertType(yyLOCAL) - case 1591: + case 1598: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7907 +//line sql.y:7986 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1592: + case 1599: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:7911 +//line sql.y:7990 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1593: + case 1600: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7916 +//line sql.y:7995 { yyLOCAL = nil } yyVAL.setexpr(yyLOCAL) - case 1594: + case 1601: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7920 +//line sql.y:7999 { yyLOCAL = yyDollar[1].expr() } yyVAL.setexpr(yyLOCAL) - case 1595: + case 1602: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:7925 +//line sql.y:8004 { yyLOCAL = string("") } yyVAL.setstr(yyLOCAL) - case 1596: + case 1603: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:7929 +//line sql.y:8008 { yyLOCAL = encodeSQLString(yyDollar[2].str()) } yyVAL.setstr(yyLOCAL) - case 1597: + case 1604: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:7935 +//line sql.y:8014 { yyLOCAL = []*When{yyDollar[1].when()} } yyVAL.setwhens(yyLOCAL) - case 1598: + case 1605: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*When -//line sql.y:7939 +//line sql.y:8018 { yyLOCAL = append(yyDollar[1].whens(), yyDollar[2].when()) } yyVAL.setwhens(yyLOCAL) - case 1599: + case 1606: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:7945 +//line sql.y:8024 { yyLOCAL = &When{Cond: yyDollar[2].expr(), Val: yyDollar[4].expr()} } yyVAL.setwhen(yyLOCAL) - case 1600: + case 1607: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7950 +//line sql.y:8029 { yyLOCAL = nil } yyVAL.setexpr(yyLOCAL) - case 1601: + case 1608: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7954 +//line sql.y:8033 { yyLOCAL = yyDollar[2].expr() } yyVAL.setexpr(yyLOCAL) - case 1602: + case 1609: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:7960 +//line sql.y:8039 { yyLOCAL = &ColName{Name: yyDollar[1].identifierCI()} } yyVAL.setcolName(yyLOCAL) - case 1603: + case 1610: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:7964 +//line sql.y:8043 { yyLOCAL = &ColName{Name: NewIdentifierCI(string(yyDollar[1].str()))} } yyVAL.setcolName(yyLOCAL) - case 1604: + case 1611: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:7968 +//line sql.y:8047 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].identifierCS()}, Name: yyDollar[3].identifierCI()} } yyVAL.setcolName(yyLOCAL) - case 1605: + case 1612: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:7972 +//line sql.y:8051 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].identifierCS(), Name: yyDollar[3].identifierCS()}, Name: yyDollar[5].identifierCI()} } yyVAL.setcolName(yyLOCAL) - case 1606: + case 1613: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7978 +//line sql.y:8057 { yyLOCAL = yyDollar[1].colName() } yyVAL.setexpr(yyLOCAL) - case 1607: + case 1614: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7982 +//line sql.y:8061 { yyLOCAL = &Offset{V: convertStringToInt(yyDollar[1].str())} } yyVAL.setexpr(yyLOCAL) - case 1608: + case 1615: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7988 +//line sql.y:8067 { // TODO(sougou): Deprecate this construct. if yyDollar[1].identifierCI().Lowered() != "value" { @@ -25618,542 +25753,542 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.setexpr(yyLOCAL) - case 1609: + case 1616: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7997 +//line sql.y:8076 { yyLOCAL = NewIntLiteral(yyDollar[1].str()) } yyVAL.setexpr(yyLOCAL) - case 1610: + case 1617: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:8001 +//line sql.y:8080 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str()[1:]) } yyVAL.setexpr(yyLOCAL) - case 1611: + case 1618: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *GroupBy -//line sql.y:8006 +//line sql.y:8085 { yyLOCAL = nil } yyVAL.setgroupBy(yyLOCAL) - case 1612: + case 1619: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *GroupBy -//line sql.y:8010 +//line sql.y:8089 { yyLOCAL = &GroupBy{Exprs: yyDollar[3].exprs(), WithRollup: yyDollar[4].boolean()} } yyVAL.setgroupBy(yyLOCAL) - case 1613: + case 1620: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:8015 +//line sql.y:8094 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1614: + case 1621: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:8019 +//line sql.y:8098 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1615: + case 1622: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:8025 +//line sql.y:8104 { yyLOCAL = nil } yyVAL.setexpr(yyLOCAL) - case 1616: + case 1623: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:8029 +//line sql.y:8108 { yyLOCAL = yyDollar[2].expr() } yyVAL.setexpr(yyLOCAL) - case 1617: + case 1624: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *NamedWindow -//line sql.y:8035 +//line sql.y:8114 { yyLOCAL = &NamedWindow{yyDollar[2].windowDefinitions()} } yyVAL.setnamedWindow(yyLOCAL) - case 1618: + case 1625: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:8041 +//line sql.y:8120 { yyLOCAL = NamedWindows{yyDollar[1].namedWindow()} } yyVAL.setnamedWindows(yyLOCAL) - case 1619: + case 1626: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:8045 +//line sql.y:8124 { yyLOCAL = append(yyDollar[1].namedWindows(), yyDollar[3].namedWindow()) } yyVAL.setnamedWindows(yyLOCAL) - case 1620: + case 1627: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:8050 +//line sql.y:8129 { yyLOCAL = nil } yyVAL.setnamedWindows(yyLOCAL) - case 1621: + case 1628: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:8054 +//line sql.y:8133 { yyLOCAL = yyDollar[1].namedWindows() } yyVAL.setnamedWindows(yyLOCAL) - case 1622: + case 1629: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:8059 +//line sql.y:8138 { yyLOCAL = nil } yyVAL.setorderBy(yyLOCAL) - case 1623: + case 1630: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:8063 +//line sql.y:8142 { yyLOCAL = yyDollar[1].orderBy() } yyVAL.setorderBy(yyLOCAL) - case 1624: + case 1631: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:8069 +//line sql.y:8148 { yyLOCAL = yyDollar[3].orderBy() } yyVAL.setorderBy(yyLOCAL) - case 1625: + case 1632: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:8075 +//line sql.y:8154 { yyLOCAL = OrderBy{yyDollar[1].order()} } yyVAL.setorderBy(yyLOCAL) - case 1626: + case 1633: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:8079 +//line sql.y:8158 { yyLOCAL = append(yyDollar[1].orderBy(), yyDollar[3].order()) } yyVAL.setorderBy(yyLOCAL) - case 1627: + case 1634: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:8085 +//line sql.y:8164 { yyLOCAL = &Order{Expr: yyDollar[1].expr(), Direction: yyDollar[2].orderDirection()} } yyVAL.setorder(yyLOCAL) - case 1628: + case 1635: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:8090 +//line sql.y:8169 { yyLOCAL = AscOrder } yyVAL.setorderDirection(yyLOCAL) - case 1629: + case 1636: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:8094 +//line sql.y:8173 { yyLOCAL = AscOrder } yyVAL.setorderDirection(yyLOCAL) - case 1630: + case 1637: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:8098 +//line sql.y:8177 { yyLOCAL = DescOrder } yyVAL.setorderDirection(yyLOCAL) - case 1631: + case 1638: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:8103 +//line sql.y:8182 { yyLOCAL = nil } yyVAL.setlimit(yyLOCAL) - case 1632: + case 1639: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Limit -//line sql.y:8107 +//line sql.y:8186 { yyLOCAL = yyDollar[1].limit() } yyVAL.setlimit(yyLOCAL) - case 1633: + case 1640: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:8113 +//line sql.y:8192 { yyLOCAL = &Limit{Rowcount: yyDollar[2].expr()} } yyVAL.setlimit(yyLOCAL) - case 1634: + case 1641: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:8117 +//line sql.y:8196 { yyLOCAL = &Limit{Offset: yyDollar[2].expr(), Rowcount: yyDollar[4].expr()} } yyVAL.setlimit(yyLOCAL) - case 1635: + case 1642: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:8121 +//line sql.y:8200 { yyLOCAL = &Limit{Offset: yyDollar[4].expr(), Rowcount: yyDollar[2].expr()} } yyVAL.setlimit(yyLOCAL) - case 1636: + case 1643: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:8126 +//line sql.y:8205 { yyLOCAL = nil } yyVAL.setalterOptions(yyLOCAL) - case 1637: + case 1644: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:8130 +//line sql.y:8209 { yyLOCAL = []AlterOption{yyDollar[1].alterOption(), yyDollar[2].alterOption()} } yyVAL.setalterOptions(yyLOCAL) - case 1638: + case 1645: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:8134 +//line sql.y:8213 { yyLOCAL = []AlterOption{yyDollar[1].alterOption(), yyDollar[2].alterOption()} } yyVAL.setalterOptions(yyLOCAL) - case 1639: + case 1646: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:8138 +//line sql.y:8217 { yyLOCAL = []AlterOption{yyDollar[1].alterOption()} } yyVAL.setalterOptions(yyLOCAL) - case 1640: + case 1647: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:8142 +//line sql.y:8221 { yyLOCAL = []AlterOption{yyDollar[1].alterOption()} } yyVAL.setalterOptions(yyLOCAL) - case 1641: + case 1648: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8149 +//line sql.y:8228 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.setalterOption(yyLOCAL) - case 1642: + case 1649: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8153 +//line sql.y:8232 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.setalterOption(yyLOCAL) - case 1643: + case 1650: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8157 +//line sql.y:8236 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.setalterOption(yyLOCAL) - case 1644: + case 1651: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8161 +//line sql.y:8240 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.setalterOption(yyLOCAL) - case 1645: + case 1652: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8167 +//line sql.y:8246 { yyLOCAL = AlgorithmValue(yyDollar[3].str()) } yyVAL.setalterOption(yyLOCAL) - case 1646: + case 1653: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8171 +//line sql.y:8250 { yyLOCAL = AlgorithmValue(yyDollar[3].str()) } yyVAL.setalterOption(yyLOCAL) - case 1647: + case 1654: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8175 +//line sql.y:8254 { yyLOCAL = AlgorithmValue(yyDollar[3].str()) } yyVAL.setalterOption(yyLOCAL) - case 1648: + case 1655: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:8179 +//line sql.y:8258 { yyLOCAL = AlgorithmValue(yyDollar[3].str()) } yyVAL.setalterOption(yyLOCAL) - case 1649: + case 1656: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8184 +//line sql.y:8263 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1651: + case 1658: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8191 +//line sql.y:8270 { yyLOCAL = string(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1652: + case 1659: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8195 +//line sql.y:8274 { yyLOCAL = string(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1653: + case 1660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8199 +//line sql.y:8278 { yyLOCAL = string(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1654: + case 1661: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8204 +//line sql.y:8283 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1655: + case 1662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8208 +//line sql.y:8287 { yyLOCAL = yyDollar[3].str() } yyVAL.setstr(yyLOCAL) - case 1656: + case 1663: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8214 +//line sql.y:8293 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1657: + case 1664: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8218 +//line sql.y:8297 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1658: + case 1665: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8223 +//line sql.y:8302 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1659: + case 1666: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL string -//line sql.y:8227 +//line sql.y:8306 { yyLOCAL = yyDollar[2].str() } yyVAL.setstr(yyLOCAL) - case 1660: + case 1667: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8232 +//line sql.y:8311 { yyLOCAL = "cascaded" } yyVAL.setstr(yyLOCAL) - case 1661: + case 1668: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8236 +//line sql.y:8315 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1662: + case 1669: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8240 +//line sql.y:8319 { yyLOCAL = string(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1663: + case 1670: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*ProcParameter -//line sql.y:8245 +//line sql.y:8324 { yyLOCAL = nil } yyVAL.setprocParams(yyLOCAL) - case 1664: + case 1671: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ProcParameter -//line sql.y:8249 +//line sql.y:8328 { yyLOCAL = yyDollar[1].procParams() } yyVAL.setprocParams(yyLOCAL) - case 1665: + case 1672: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ProcParameter -//line sql.y:8255 +//line sql.y:8334 { yyLOCAL = []*ProcParameter{yyDollar[1].procParam()} } yyVAL.setprocParams(yyLOCAL) - case 1666: + case 1673: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*ProcParameter -//line sql.y:8259 +//line sql.y:8338 { yyLOCAL = append(yyDollar[1].procParams(), yyDollar[3].procParam()) } yyVAL.setprocParams(yyLOCAL) - case 1667: + case 1674: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ProcParameter -//line sql.y:8265 +//line sql.y:8344 { yyLOCAL = &ProcParameter{Mode: yyDollar[1].procParamMode(), Name: yyDollar[2].identifierCI(), Type: yyDollar[3].columnType()} } yyVAL.setprocParam(yyLOCAL) - case 1668: + case 1675: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ProcParameterMode -//line sql.y:8270 +//line sql.y:8349 { yyLOCAL = InMode } yyVAL.setprocParamMode(yyLOCAL) - case 1669: + case 1676: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ProcParameterMode -//line sql.y:8274 +//line sql.y:8353 { yyLOCAL = InMode } yyVAL.setprocParamMode(yyLOCAL) - case 1670: + case 1677: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ProcParameterMode -//line sql.y:8278 +//line sql.y:8357 { yyLOCAL = InoutMode } yyVAL.setprocParamMode(yyLOCAL) - case 1671: + case 1678: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ProcParameterMode -//line sql.y:8282 +//line sql.y:8361 { yyLOCAL = OutMode } yyVAL.setprocParamMode(yyLOCAL) - case 1672: + case 1679: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Definer -//line sql.y:8287 +//line sql.y:8366 { yyLOCAL = nil } yyVAL.setdefiner(yyLOCAL) - case 1674: + case 1681: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:8294 +//line sql.y:8373 { yyLOCAL = yyDollar[3].definer() } yyVAL.setdefiner(yyLOCAL) - case 1675: + case 1682: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Definer -//line sql.y:8300 +//line sql.y:8379 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str()), } } yyVAL.setdefiner(yyLOCAL) - case 1676: + case 1683: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:8306 +//line sql.y:8385 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str()), } } yyVAL.setdefiner(yyLOCAL) - case 1677: + case 1684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Definer -//line sql.y:8312 +//line sql.y:8391 { yyLOCAL = &Definer{ Name: yyDollar[1].str(), @@ -26161,570 +26296,570 @@ yydefault: } } yyVAL.setdefiner(yyLOCAL) - case 1678: + case 1685: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8321 +//line sql.y:8400 { yyLOCAL = encodeSQLString(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1679: + case 1686: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8325 +//line sql.y:8404 { yyLOCAL = formatIdentifier(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1680: + case 1687: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8330 +//line sql.y:8409 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1681: + case 1688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8334 +//line sql.y:8413 { yyLOCAL = formatAddress(yyDollar[1].str()) } yyVAL.setstr(yyLOCAL) - case 1682: + case 1689: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:8340 +//line sql.y:8419 { yyLOCAL = ForUpdateLock } yyVAL.setlock(yyLOCAL) - case 1683: + case 1690: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Lock -//line sql.y:8344 +//line sql.y:8423 { yyLOCAL = ForUpdateLockNoWait } yyVAL.setlock(yyLOCAL) - case 1684: + case 1691: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:8348 +//line sql.y:8427 { yyLOCAL = ForUpdateLockSkipLocked } yyVAL.setlock(yyLOCAL) - case 1685: + case 1692: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:8352 +//line sql.y:8431 { yyLOCAL = ForShareLock } yyVAL.setlock(yyLOCAL) - case 1686: + case 1693: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Lock -//line sql.y:8356 +//line sql.y:8435 { yyLOCAL = ForShareLockNoWait } yyVAL.setlock(yyLOCAL) - case 1687: + case 1694: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:8360 +//line sql.y:8439 { yyLOCAL = ForShareLockSkipLocked } yyVAL.setlock(yyLOCAL) - case 1688: + case 1695: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:8364 +//line sql.y:8443 { yyLOCAL = ShareModeLock } yyVAL.setlock(yyLOCAL) - case 1689: + case 1696: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:8370 +//line sql.y:8449 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str()), Charset: yyDollar[5].columnCharset(), FormatOption: yyDollar[6].str(), ExportOption: yyDollar[7].str(), Manifest: yyDollar[8].str(), Overwrite: yyDollar[9].str()} } yyVAL.setselectInto(yyLOCAL) - case 1690: + case 1697: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:8374 +//line sql.y:8453 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str()), Charset: ColumnCharset{}, FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.setselectInto(yyLOCAL) - case 1691: + case 1698: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:8378 +//line sql.y:8457 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str()), Charset: yyDollar[4].columnCharset(), FormatOption: "", ExportOption: yyDollar[5].str(), Manifest: "", Overwrite: ""} } yyVAL.setselectInto(yyLOCAL) - case 1692: + case 1699: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:8382 +//line sql.y:8461 { yyLOCAL = &SelectInto{Type: IntoVariables, VarList: yyDollar[2].variables()} } yyVAL.setselectInto(yyLOCAL) - case 1693: + case 1700: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*Variable -//line sql.y:8388 +//line sql.y:8467 { yyLOCAL = append(yyDollar[1].variables(), yyDollar[3].variable()) } yyVAL.setvariables(yyLOCAL) - case 1694: + case 1701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*Variable -//line sql.y:8392 +//line sql.y:8471 { yyLOCAL = []*Variable{yyDollar[1].variable()} } yyVAL.setvariables(yyLOCAL) - case 1695: + case 1702: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:8398 +//line sql.y:8477 { yyLOCAL = yyDollar[1].variable() } yyVAL.setvariable(yyLOCAL) - case 1696: + case 1703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Variable -//line sql.y:8402 +//line sql.y:8481 { yyLOCAL = &Variable{Name: createIdentifierCI(yyDollar[1].str()), Scope: NoScope} } yyVAL.setvariable(yyLOCAL) - case 1697: + case 1704: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8407 +//line sql.y:8486 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1698: + case 1705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8411 +//line sql.y:8490 { yyLOCAL = " format csv" + yyDollar[3].str() } yyVAL.setstr(yyLOCAL) - case 1699: + case 1706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8415 +//line sql.y:8494 { yyLOCAL = " format text" + yyDollar[3].str() } yyVAL.setstr(yyLOCAL) - case 1700: + case 1707: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8420 +//line sql.y:8499 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1701: + case 1708: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8424 +//line sql.y:8503 { yyLOCAL = " header" } yyVAL.setstr(yyLOCAL) - case 1702: + case 1709: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8429 +//line sql.y:8508 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1703: + case 1710: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8433 +//line sql.y:8512 { yyLOCAL = " manifest on" } yyVAL.setstr(yyLOCAL) - case 1704: + case 1711: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8437 +//line sql.y:8516 { yyLOCAL = " manifest off" } yyVAL.setstr(yyLOCAL) - case 1705: + case 1712: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8442 +//line sql.y:8521 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1706: + case 1713: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8446 +//line sql.y:8525 { yyLOCAL = " overwrite on" } yyVAL.setstr(yyLOCAL) - case 1707: + case 1714: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8450 +//line sql.y:8529 { yyLOCAL = " overwrite off" } yyVAL.setstr(yyLOCAL) - case 1708: + case 1715: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8456 +//line sql.y:8535 { yyLOCAL = yyDollar[1].str() + yyDollar[2].str() } yyVAL.setstr(yyLOCAL) - case 1709: + case 1716: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8461 +//line sql.y:8540 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1710: + case 1717: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8465 +//line sql.y:8544 { yyLOCAL = " lines" + yyDollar[2].str() } yyVAL.setstr(yyLOCAL) - case 1711: + case 1718: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8471 +//line sql.y:8550 { yyLOCAL = yyDollar[1].str() } yyVAL.setstr(yyLOCAL) - case 1712: + case 1719: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8475 +//line sql.y:8554 { yyLOCAL = yyDollar[1].str() + yyDollar[2].str() } yyVAL.setstr(yyLOCAL) - case 1713: + case 1720: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8481 +//line sql.y:8560 { yyLOCAL = " starting by " + encodeSQLString(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1714: + case 1721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8485 +//line sql.y:8564 { yyLOCAL = " terminated by " + encodeSQLString(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1715: + case 1722: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8490 +//line sql.y:8569 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1716: + case 1723: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8494 +//line sql.y:8573 { yyLOCAL = " " + yyDollar[1].str() + yyDollar[2].str() } yyVAL.setstr(yyLOCAL) - case 1717: + case 1724: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8500 +//line sql.y:8579 { yyLOCAL = yyDollar[1].str() } yyVAL.setstr(yyLOCAL) - case 1718: + case 1725: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8504 +//line sql.y:8583 { yyLOCAL = yyDollar[1].str() + yyDollar[2].str() } yyVAL.setstr(yyLOCAL) - case 1719: + case 1726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8510 +//line sql.y:8589 { yyLOCAL = " terminated by " + encodeSQLString(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1720: + case 1727: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL string -//line sql.y:8514 +//line sql.y:8593 { yyLOCAL = yyDollar[1].str() + " enclosed by " + encodeSQLString(yyDollar[4].str()) } yyVAL.setstr(yyLOCAL) - case 1721: + case 1728: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL string -//line sql.y:8518 +//line sql.y:8597 { yyLOCAL = " escaped by " + encodeSQLString(yyDollar[3].str()) } yyVAL.setstr(yyLOCAL) - case 1722: + case 1729: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL string -//line sql.y:8523 +//line sql.y:8602 { yyLOCAL = "" } yyVAL.setstr(yyLOCAL) - case 1723: + case 1730: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL string -//line sql.y:8527 +//line sql.y:8606 { yyLOCAL = " optionally" } yyVAL.setstr(yyLOCAL) - case 1724: + case 1731: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Insert -//line sql.y:8540 +//line sql.y:8619 { yyLOCAL = &Insert{Rows: yyDollar[2].values(), RowAlias: yyDollar[3].rowAlias()} } yyVAL.setins(yyLOCAL) - case 1725: + case 1732: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:8544 +//line sql.y:8623 { yyLOCAL = &Insert{Rows: yyDollar[1].tableStmt()} } yyVAL.setins(yyLOCAL) - case 1726: + case 1733: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *Insert -//line sql.y:8548 +//line sql.y:8627 { yyLOCAL = &Insert{Columns: yyDollar[2].columns(), Rows: yyDollar[5].values(), RowAlias: yyDollar[6].rowAlias()} } yyVAL.setins(yyLOCAL) - case 1727: + case 1734: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:8552 +//line sql.y:8631 { yyLOCAL = &Insert{Columns: []IdentifierCI{}, Rows: yyDollar[4].values(), RowAlias: yyDollar[5].rowAlias()} } yyVAL.setins(yyLOCAL) - case 1728: + case 1735: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:8556 +//line sql.y:8635 { yyLOCAL = &Insert{Columns: yyDollar[2].columns(), Rows: yyDollar[4].tableStmt()} } yyVAL.setins(yyLOCAL) - case 1731: + case 1738: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:8566 +//line sql.y:8645 { yyLOCAL = Columns{yyDollar[1].identifierCI()} } yyVAL.setcolumns(yyLOCAL) - case 1732: + case 1739: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:8570 +//line sql.y:8649 { yyLOCAL = Columns{yyDollar[3].identifierCI()} } yyVAL.setcolumns(yyLOCAL) - case 1733: + case 1740: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:8574 +//line sql.y:8653 { yyLOCAL = append(yyDollar[1].columns(), yyDollar[3].identifierCI()) } yyVAL.setcolumns(yyLOCAL) - case 1734: + case 1741: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Columns -//line sql.y:8578 +//line sql.y:8657 { yyLOCAL = append(yyDollar[1].columns(), yyDollar[5].identifierCI()) } yyVAL.setcolumns(yyLOCAL) - case 1735: + case 1742: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *RowAlias -//line sql.y:8583 +//line sql.y:8662 { yyLOCAL = nil } yyVAL.setrowAlias(yyLOCAL) - case 1736: + case 1743: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *RowAlias -//line sql.y:8587 +//line sql.y:8666 { yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS()} } yyVAL.setrowAlias(yyLOCAL) - case 1737: + case 1744: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *RowAlias -//line sql.y:8591 +//line sql.y:8670 { yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS(), Columns: yyDollar[4].columns()} } yyVAL.setrowAlias(yyLOCAL) - case 1738: + case 1745: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:8596 +//line sql.y:8675 { yyLOCAL = nil } yyVAL.setupdateExprs(yyLOCAL) - case 1739: + case 1746: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:8600 +//line sql.y:8679 { yyLOCAL = yyDollar[5].updateExprs() } yyVAL.setupdateExprs(yyLOCAL) - case 1740: + case 1747: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:8606 +//line sql.y:8685 { yyLOCAL = Values{yyDollar[1].valTuple()} } yyVAL.setvalues(yyLOCAL) - case 1741: + case 1748: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Values -//line sql.y:8610 +//line sql.y:8689 { yyLOCAL = append(yyDollar[1].values(), yyDollar[3].valTuple()) } yyVAL.setvalues(yyLOCAL) - case 1742: + case 1749: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:8616 +//line sql.y:8695 { yyLOCAL = Values{yyDollar[1].valTuple()} } yyVAL.setvalues(yyLOCAL) - case 1743: + case 1750: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Values -//line sql.y:8620 +//line sql.y:8699 { yyLOCAL = append(yyDollar[1].values(), yyDollar[3].valTuple()) } yyVAL.setvalues(yyLOCAL) - case 1744: + case 1751: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:8626 +//line sql.y:8705 { yyLOCAL = yyDollar[1].valTuple() } yyVAL.setvalTuple(yyLOCAL) - case 1745: + case 1752: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:8630 +//line sql.y:8709 { yyLOCAL = ValTuple{} } yyVAL.setvalTuple(yyLOCAL) - case 1746: + case 1753: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:8636 +//line sql.y:8715 { yyLOCAL = yyDollar[1].valTuple() } yyVAL.setvalTuple(yyLOCAL) - case 1747: + case 1754: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:8640 +//line sql.y:8719 { yyLOCAL = ValTuple{} } yyVAL.setvalTuple(yyLOCAL) - case 1748: + case 1755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:8646 +//line sql.y:8725 { yyLOCAL = ValTuple(yyDollar[2].exprs()) } yyVAL.setvalTuple(yyLOCAL) - case 1749: + case 1756: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL ValTuple -//line sql.y:8652 +//line sql.y:8731 { yyLOCAL = ValTuple(yyDollar[3].exprs()) } yyVAL.setvalTuple(yyLOCAL) - case 1752: + case 1759: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:8662 +//line sql.y:8741 { if len(yyDollar[1].valTuple()) == 1 { yyLOCAL = yyDollar[1].valTuple()[0] @@ -26733,339 +26868,339 @@ yydefault: } } yyVAL.setexpr(yyLOCAL) - case 1753: + case 1760: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:8672 +//line sql.y:8751 { yyLOCAL = UpdateExprs{yyDollar[1].updateExpr()} } yyVAL.setupdateExprs(yyLOCAL) - case 1754: + case 1761: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:8676 +//line sql.y:8755 { yyLOCAL = append(yyDollar[1].updateExprs(), yyDollar[3].updateExpr()) } yyVAL.setupdateExprs(yyLOCAL) - case 1755: + case 1762: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:8682 +//line sql.y:8761 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colName(), Expr: yyDollar[3].expr()} } yyVAL.setupdateExpr(yyLOCAL) - case 1757: + case 1764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL string -//line sql.y:8689 +//line sql.y:8768 { yyLOCAL = "charset" } yyVAL.setstr(yyLOCAL) - case 1760: + case 1767: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:8699 +//line sql.y:8778 { yyLOCAL = NewStrLiteral(yyDollar[1].identifierCI().String()) } yyVAL.setexpr(yyLOCAL) - case 1761: + case 1768: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:8703 +//line sql.y:8782 { yyLOCAL = NewStrLiteral(yyDollar[1].str()) } yyVAL.setexpr(yyLOCAL) - case 1762: + case 1769: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:8707 +//line sql.y:8786 { yyLOCAL = NewStrLiteral("binary") } yyVAL.setexpr(yyLOCAL) - case 1763: + case 1770: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:8711 +//line sql.y:8790 { yyLOCAL = &Default{} } yyVAL.setexpr(yyLOCAL) - case 1766: + case 1773: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:8720 +//line sql.y:8799 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1767: + case 1774: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:8722 +//line sql.y:8801 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1768: + case 1775: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:8725 +//line sql.y:8804 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1769: + case 1776: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:8727 +//line sql.y:8806 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1770: + case 1777: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:8730 +//line sql.y:8809 { yyLOCAL = false } yyVAL.setboolean(yyLOCAL) - case 1771: + case 1778: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:8732 +//line sql.y:8811 { yyLOCAL = true } yyVAL.setboolean(yyLOCAL) - case 1772: + case 1779: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:8735 +//line sql.y:8814 { yyLOCAL = false } yyVAL.setignore(yyLOCAL) - case 1773: + case 1780: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:8737 +//line sql.y:8816 { yyLOCAL = true } yyVAL.setignore(yyLOCAL) - case 1774: + case 1781: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IgnoreOrReplaceType -//line sql.y:8741 +//line sql.y:8820 { yyLOCAL = NoIgnoreOrReplace } yyVAL.setignoreOrReplaceType(yyLOCAL) - case 1775: + case 1782: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IgnoreOrReplaceType -//line sql.y:8743 +//line sql.y:8822 { yyLOCAL = IgnoreType } yyVAL.setignoreOrReplaceType(yyLOCAL) - case 1776: + case 1783: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IgnoreOrReplaceType -//line sql.y:8745 +//line sql.y:8824 { yyLOCAL = ReplaceType } yyVAL.setignoreOrReplaceType(yyLOCAL) - case 1777: + case 1784: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL struct{} -//line sql.y:8748 +//line sql.y:8827 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 1778: + case 1785: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:8750 +//line sql.y:8829 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 1779: + case 1786: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL struct{} -//line sql.y:8752 +//line sql.y:8831 { yyLOCAL = struct{}{} } yyVAL.setempty(yyLOCAL) - case 1780: + case 1787: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:8756 +//line sql.y:8835 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName(), Params: yyDollar[4].exprs()} } yyVAL.setstatement(yyLOCAL) - case 1781: + case 1788: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []Expr -//line sql.y:8761 +//line sql.y:8840 { yyLOCAL = nil } yyVAL.setexprs(yyLOCAL) - case 1782: + case 1789: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []Expr -//line sql.y:8765 +//line sql.y:8844 { yyLOCAL = yyDollar[1].exprs() } yyVAL.setexprs(yyLOCAL) - case 1783: + case 1790: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:8770 +//line sql.y:8849 { yyLOCAL = nil } yyVAL.setindexOptions(yyLOCAL) - case 1784: + case 1791: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:8772 +//line sql.y:8851 { yyLOCAL = []*IndexOption{yyDollar[1].indexOption()} } yyVAL.setindexOptions(yyLOCAL) - case 1785: + case 1792: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:8776 +//line sql.y:8855 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str()), String: string(yyDollar[2].identifierCI().String())} } yyVAL.setindexOption(yyLOCAL) - case 1786: + case 1793: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:8782 +//line sql.y:8861 { yyLOCAL = yyDollar[1].identifierCI() } yyVAL.setidentifierCI(yyLOCAL) - case 1787: + case 1794: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:8786 +//line sql.y:8865 { yyLOCAL = NewIdentifierCI(string(yyDollar[1].str())) } yyVAL.setidentifierCI(yyLOCAL) - case 1789: + case 1796: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCI -//line sql.y:8793 +//line sql.y:8872 { yyLOCAL = NewIdentifierCI(string(yyDollar[1].str())) } yyVAL.setidentifierCI(yyLOCAL) - case 1790: + case 1797: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:8799 +//line sql.y:8878 { yyLOCAL = NewIdentifierCS(string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 1791: + case 1798: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:8803 +//line sql.y:8882 { yyLOCAL = NewIdentifierCS(string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 1792: + case 1799: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:8809 +//line sql.y:8888 { yyLOCAL = NewIdentifierCS("") } yyVAL.setidentifierCS(yyLOCAL) - case 1793: + case 1800: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:8813 +//line sql.y:8892 { yyLOCAL = yyDollar[1].identifierCS() } yyVAL.setidentifierCS(yyLOCAL) - case 1795: + case 1802: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IdentifierCS -//line sql.y:8820 +//line sql.y:8899 { yyLOCAL = NewIdentifierCS(string(yyDollar[1].str())) } yyVAL.setidentifierCS(yyLOCAL) - case 1796: + case 1803: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:8826 +//line sql.y:8905 { yyLOCAL = &Kill{Type: yyDollar[2].killType(), ProcesslistID: convertStringToUInt64(yyDollar[3].str())} } yyVAL.setstatement(yyLOCAL) - case 1797: + case 1804: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL KillType -//line sql.y:8832 +//line sql.y:8911 { yyLOCAL = ConnectionType } yyVAL.setkillType(yyLOCAL) - case 1798: + case 1805: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL KillType -//line sql.y:8836 +//line sql.y:8915 { yyLOCAL = ConnectionType } yyVAL.setkillType(yyLOCAL) - case 1799: + case 1806: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL KillType -//line sql.y:8840 +//line sql.y:8919 { yyLOCAL = QueryType } yyVAL.setkillType(yyLOCAL) - case 2482: + case 2489: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:9551 +//line sql.y:9630 { } - case 2483: + case 2490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:9556 +//line sql.y:9635 { } - case 2484: + case 2491: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:9560 +//line sql.y:9639 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index b38e5f56ff7..9cece70502f 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -3732,6 +3732,17 @@ alter_statement: Type: CleanupAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION CLEANUP CONTEXT STRING + { + if $6 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: CleanupAllMigrationType, + Context: $6, + } + } | ALTER comment_opt VITESS_MIGRATION STRING LAUNCH { $$ = &AlterMigration{ @@ -3753,6 +3764,17 @@ alter_statement: Type: LaunchAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION LAUNCH CONTEXT STRING + { + if $6 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: LaunchAllMigrationType, + Context: $6, + } + } | ALTER comment_opt VITESS_MIGRATION STRING COMPLETE { $$ = &AlterMigration{ @@ -3774,6 +3796,17 @@ alter_statement: Type: CompleteAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION COMPLETE CONTEXT STRING + { + if $6 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: CompleteAllMigrationType, + Context: $6, + } + } | ALTER comment_opt VITESS_MIGRATION STRING POSTPONE COMPLETE { $$ = &AlterMigration{ @@ -3787,6 +3820,17 @@ alter_statement: Type: PostponeCompleteAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION POSTPONE COMPLETE CONTEXT STRING + { + if $7 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: PostponeCompleteAllMigrationType, + Context: $7, + } + } | ALTER comment_opt VITESS_MIGRATION STRING CANCEL { $$ = &AlterMigration{ @@ -3828,6 +3872,19 @@ alter_statement: Ratio: $7, } } +| ALTER comment_opt VITESS_MIGRATION THROTTLE CONTEXT STRING expire_opt ratio_opt + { + if $6 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: ThrottleAllMigrationType, + Context: $6, + Expire: $7, + Ratio: $8, + } + } | ALTER comment_opt VITESS_MIGRATION STRING UNTHROTTLE { $$ = &AlterMigration{ @@ -3841,6 +3898,17 @@ alter_statement: Type: UnthrottleAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION UNTHROTTLE CONTEXT STRING + { + if $6 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: UnthrottleAllMigrationType, + Context: $6, + } + } | ALTER comment_opt VITESS_MIGRATION STRING FORCE_CUTOVER { $$ = &AlterMigration{ @@ -3854,6 +3922,17 @@ alter_statement: Type: ForceCutOverAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION FORCE_CUTOVER CONTEXT STRING + { + if $6 == "" { + yylex.Error("migration context cannot be empty") + return 1 + } + $$ = &AlterMigration{ + Type: ForceCutOverAllMigrationType, + Context: $6, + } + } | ALTER comment_opt VITESS_MIGRATION STRING CUTOVER_THRESHOLD STRING { $$ = &AlterMigration{ diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go index 512882e6217..9691ce16496 100644 --- a/go/vt/vttablet/onlineddl/executor.go +++ b/go/vt/vttablet/onlineddl/executor.go @@ -1779,8 +1779,10 @@ func (e *Executor) ThrottleMigration(ctx context.Context, uuid string, expireStr return emptyResult, nil } -// ThrottleAllMigrations -func (e *Executor) ThrottleAllMigrations(ctx context.Context, expireString string, ratioLiteral *sqlparser.Literal) (result *sqltypes.Result, err error) { +// ThrottleAllMigrations throttles all pending migrations. When migrationContext is non-empty only +// migrations whose migration_context matches are throttled (THROTTLE CONTEXT 'ctx'). When +// migrationContext is empty all pending migrations are throttled (THROTTLE ALL). +func (e *Executor) ThrottleAllMigrations(ctx context.Context, expireString string, ratioLiteral *sqlparser.Literal, migrationContext string) (result *sqltypes.Result, err error) { duration, ratio, err := e.validateThrottleParams(ctx, expireString, ratioLiteral) if err != nil { return nil, err @@ -1788,8 +1790,26 @@ func (e *Executor) ThrottleAllMigrations(ctx context.Context, expireString strin if err := e.lagThrottler.CheckIsOpen(); err != nil { return nil, err } - _ = e.lagThrottler.ThrottleApp(throttlerapp.OnlineDDLName.String(), time.Now().Add(duration), ratio, false) - return emptyResult, nil + if migrationContext == "" { + _ = e.lagThrottler.ThrottleApp(throttlerapp.OnlineDDLName.String(), time.Now().Add(duration), ratio, false) + return emptyResult, nil + } + pendingMigrations, err := e.readPendingMigrations(ctx) + if err != nil { + return nil, err + } + result = &sqltypes.Result{} + for _, pm := range pendingMigrations { + if pm.migrationContext != migrationContext { + continue + } + res, err := e.ThrottleMigration(ctx, pm.uuid, expireString, ratioLiteral) + if err != nil { + return result, err + } + result.AppendResult(res) + } + return result, nil } // UnthrottleMigration @@ -1802,14 +1822,34 @@ func (e *Executor) UnthrottleMigration(ctx context.Context, uuid string) (result return emptyResult, nil } -// UnthrottleAllMigrations -func (e *Executor) UnthrottleAllMigrations(ctx context.Context) (result *sqltypes.Result, err error) { +// UnthrottleAllMigrations unthrottles all pending migrations. When migrationContext is non-empty +// only migrations whose migration_context matches are unthrottled (UNTHROTTLE CONTEXT 'ctx'). When +// migrationContext is empty all pending migrations are unthrottled (UNTHROTTLE ALL). +func (e *Executor) UnthrottleAllMigrations(ctx context.Context, migrationContext string) (result *sqltypes.Result, err error) { if err := e.lagThrottler.CheckIsOpen(); err != nil { return nil, err } - defer e.triggerNextCheckInterval() - _ = e.lagThrottler.UnthrottleApp(throttlerapp.OnlineDDLName.String()) - return emptyResult, nil + if migrationContext == "" { + defer e.triggerNextCheckInterval() + _ = e.lagThrottler.UnthrottleApp(throttlerapp.OnlineDDLName.String()) + return emptyResult, nil + } + pendingMigrations, err := e.readPendingMigrations(ctx) + if err != nil { + return nil, err + } + result = &sqltypes.Result{} + for _, pm := range pendingMigrations { + if pm.migrationContext != migrationContext { + continue + } + res, err := e.UnthrottleMigration(ctx, pm.uuid) + if err != nil { + return result, err + } + result.AppendResult(res) + } + return result, nil } // scheduleNextMigration attempts to schedule a single migration to run next. @@ -4297,10 +4337,12 @@ func (e *Executor) CleanupMigration(ctx context.Context, uuid string) (result *s return rs, nil } -// CleanupMigration sets migration is ready for artifact cleanup. Artifacts are not immediately deleted: -// all we do is set retain_artifacts_seconds to a very small number (it's actually a negative) so that the -// next iteration of gcArtifacts() picks up the migration's artifacts and schedules them for deletion -func (e *Executor) CleanupAllMigrations(ctx context.Context) (result *sqltypes.Result, err error) { +// CleanupAllMigrations marks terminal migrations (complete/cancelled/failed) as ready for artifact +// cleanup by setting retain_artifacts_seconds to a negative value; the next gcArtifacts() run then +// schedules their artifacts for deletion. When migrationContext is non-empty only migrations whose +// migration_context matches are affected (CLEANUP CONTEXT 'ctx'). When migrationContext is empty +// all eligible migrations are affected (CLEANUP ALL). +func (e *Executor) CleanupAllMigrations(ctx context.Context, migrationContext string) (result *sqltypes.Result, err error) { if e.isOpen.Load() == 0 { return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error()) } @@ -4308,7 +4350,18 @@ func (e *Executor) CleanupAllMigrations(ctx context.Context) (result *sqltypes.R e.migrationMutex.Lock() defer e.migrationMutex.Unlock() - rs, err := e.execQuery(ctx, sqlUpdateReadyForCleanupAll) + var rs *sqltypes.Result + if migrationContext == "" { + rs, err = e.execQuery(ctx, sqlUpdateReadyForCleanupAll) + } else { + query, bindErr := sqlparser.ParseAndBind(sqlUpdateReadyForCleanupAllByContext, + sqltypes.StringBindVariable(migrationContext), + ) + if bindErr != nil { + return nil, bindErr + } + rs, err = e.execQuery(ctx, query) + } if err != nil { return nil, err } @@ -4351,28 +4404,36 @@ func (e *Executor) ForceCutOverMigration(ctx context.Context, uuid string) (resu return rs, nil } -// ForceCutOverPendingMigrations sets force_cutover flag for all pending migrations -func (e *Executor) ForceCutOverPendingMigrations(ctx context.Context) (result *sqltypes.Result, err error) { +// ForceCutOverPendingMigrations sets the force_cutover flag for pending migrations. When +// migrationContext is non-empty only migrations whose migration_context matches are affected +// (FORCE_CUTOVER CONTEXT 'ctx'). When migrationContext is empty all pending migrations are +// affected (FORCE_CUTOVER ALL). +func (e *Executor) ForceCutOverPendingMigrations(ctx context.Context, migrationContext string) (result *sqltypes.Result, err error) { if e.isOpen.Load() == 0 { return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error()) } - uuids, err := e.readPendingMigrationsUUIDs(ctx) + pendingMigrations, err := e.readPendingMigrations(ctx) if err != nil { return result, err } - log.Info(fmt.Sprintf("ForceCutOverPendingMigrations: iterating %v migrations", len(uuids))) + log.Info(fmt.Sprintf("ForceCutOverPendingMigrations: iterating %v migrations", len(pendingMigrations))) result = &sqltypes.Result{} - for _, uuid := range uuids { - log.Info("ForceCutOverPendingMigrations: applying to " + uuid) - res, err := e.ForceCutOverMigration(ctx, uuid) + matched := 0 + for _, pm := range pendingMigrations { + if migrationContext != "" && migrationContext != pm.migrationContext { + continue + } + matched++ + log.Info("ForceCutOverPendingMigrations: applying to " + pm.uuid) + res, err := e.ForceCutOverMigration(ctx, pm.uuid) if err != nil { return result, err } result.AppendResult(res) } - log.Info(fmt.Sprintf("ForceCutOverPendingMigrations: done iterating %v migrations", len(uuids))) + log.Info(fmt.Sprintf("ForceCutOverPendingMigrations: done iterating %v migrations, matched %d", len(pendingMigrations), matched)) return result, nil } @@ -4444,29 +4505,36 @@ func (e *Executor) CompleteMigration(ctx context.Context, uuid string, shardsArg return rs, nil } -// CompletePendingMigrations completes all pending migrations (that are expected to run or are running) -// for this keyspace -func (e *Executor) CompletePendingMigrations(ctx context.Context) (result *sqltypes.Result, err error) { +// CompletePendingMigrations completes all pending migrations for this keyspace. When +// migrationContext is non-empty only migrations whose migration_context matches are completed +// (COMPLETE CONTEXT 'ctx'). When migrationContext is empty all pending migrations are completed +// (COMPLETE ALL). +func (e *Executor) CompletePendingMigrations(ctx context.Context, migrationContext string) (result *sqltypes.Result, err error) { if e.isOpen.Load() == 0 { return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error()) } - uuids, err := e.readPendingMigrationsUUIDs(ctx) + pendingMigrations, err := e.readPendingMigrations(ctx) if err != nil { return result, err } - log.Info(fmt.Sprintf("CompletePendingMigrations: iterating %v migrations", len(uuids))) + log.Info(fmt.Sprintf("CompletePendingMigrations: iterating %v migrations", len(pendingMigrations))) result = &sqltypes.Result{} - for _, uuid := range uuids { - log.Info("CompletePendingMigrations: completing " + uuid) - res, err := e.CompleteMigration(ctx, uuid, "") + matched := 0 + for _, pm := range pendingMigrations { + if migrationContext != "" && migrationContext != pm.migrationContext { + continue + } + matched++ + log.Info("CompletePendingMigrations: completing " + pm.uuid) + res, err := e.CompleteMigration(ctx, pm.uuid, "") if err != nil { return result, err } result.AppendResult(res) } - log.Info(fmt.Sprintf("CompletePendingMigrations: done iterating %v migrations", len(uuids))) + log.Info(fmt.Sprintf("CompletePendingMigrations: done iterating %v migrations, matched %d", len(pendingMigrations), matched)) return result, nil } @@ -4498,29 +4566,36 @@ func (e *Executor) PostponeCompleteMigration(ctx context.Context, uuid string) ( return rs, nil } -// PostponeCompletePendingMigrations sets postpone_completion for all pending migrations (that are expected to run or are running) -// for this keyspace -func (e *Executor) PostponeCompletePendingMigrations(ctx context.Context) (result *sqltypes.Result, err error) { +// PostponeCompletePendingMigrations sets postpone_completion for all pending migrations for this +// keyspace. When migrationContext is non-empty only migrations whose migration_context matches are +// affected (POSTPONE COMPLETE CONTEXT 'ctx'). When migrationContext is empty all pending +// migrations are affected (POSTPONE COMPLETE ALL). +func (e *Executor) PostponeCompletePendingMigrations(ctx context.Context, migrationContext string) (result *sqltypes.Result, err error) { if e.isOpen.Load() == 0 { return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error()) } - uuids, err := e.readPendingMigrationsUUIDs(ctx) + pendingMigrations, err := e.readPendingMigrations(ctx) if err != nil { return result, err } - log.Info(fmt.Sprintf("PostponeCompletePendingMigrations: iterating %v migrations", len(uuids))) + log.Info(fmt.Sprintf("PostponeCompletePendingMigrations: iterating %v migrations", len(pendingMigrations))) result = &sqltypes.Result{} - for _, uuid := range uuids { - log.Info("PostponeCompletePendingMigrations: postpone completion of " + uuid) - res, err := e.PostponeCompleteMigration(ctx, uuid) + matched := 0 + for _, pm := range pendingMigrations { + if migrationContext != "" && migrationContext != pm.migrationContext { + continue + } + matched++ + log.Info("PostponeCompletePendingMigrations: postpone completion of " + pm.uuid) + res, err := e.PostponeCompleteMigration(ctx, pm.uuid) if err != nil { return result, err } result.AppendResult(res) } - log.Info(fmt.Sprintf("PostponeCompletePendingMigrations: done iterating %v migrations", len(uuids))) + log.Info(fmt.Sprintf("PostponeCompletePendingMigrations: done iterating %v migrations, matched %d", len(pendingMigrations), matched)) return result, nil } @@ -4556,8 +4631,11 @@ func (e *Executor) LaunchMigration(ctx context.Context, uuid string, shardsArg s return rs, nil } -// LaunchMigrations launches all launch-postponed queued migrations for this keyspace -func (e *Executor) LaunchMigrations(ctx context.Context) (result *sqltypes.Result, err error) { +// LaunchMigrations launches all launch-postponed queued migrations for this keyspace. When +// migrationContext is non-empty only migrations whose migration_context matches are launched +// (LAUNCH CONTEXT 'ctx'). When migrationContext is empty all postponed migrations are launched +// (LAUNCH ALL). +func (e *Executor) LaunchMigrations(ctx context.Context, migrationContext string) (result *sqltypes.Result, err error) { if e.isOpen.Load() == 0 { return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error()) } @@ -4571,6 +4649,10 @@ func (e *Executor) LaunchMigrations(ctx context.Context) (result *sqltypes.Resul result = &sqltypes.Result{} for _, row := range rows { uuid := row["migration_uuid"].ToString() + mc := row["migration_context"].ToString() + if migrationContext != "" && migrationContext != mc { + continue + } log.Info("LaunchMigrations: unpostponing " + uuid) res, err := e.LaunchMigration(ctx, uuid, "") if err != nil { diff --git a/go/vt/vttablet/onlineddl/schema.go b/go/vt/vttablet/onlineddl/schema.go index f267daf1535..f6fc0606efc 100644 --- a/go/vt/vttablet/onlineddl/schema.go +++ b/go/vt/vttablet/onlineddl/schema.go @@ -44,6 +44,7 @@ const ( sqlSelectQueuedMigrations = `SELECT migration_uuid, + migration_context, ddl_action, is_view, is_immediate_operation, @@ -187,6 +188,14 @@ const ( AND cleanup_timestamp IS NULL AND retain_artifacts_seconds > 0 ` + sqlUpdateReadyForCleanupAllByContext = `UPDATE _vt.schema_migrations + SET retain_artifacts_seconds=-1 + WHERE + migration_status IN ('complete', 'cancelled', 'failed') + AND cleanup_timestamp IS NULL + AND retain_artifacts_seconds > 0 + AND migration_context COLLATE utf8mb4_bin=%a + ` sqlUpdateForceCutOver = `UPDATE _vt.schema_migrations SET force_cutover=1 WHERE diff --git a/go/vt/vttablet/tabletserver/query_executor.go b/go/vt/vttablet/tabletserver/query_executor.go index 6e7b3c7f994..a6cfd354dcd 100644 --- a/go/vt/vttablet/tabletserver/query_executor.go +++ b/go/vt/vttablet/tabletserver/query_executor.go @@ -1034,19 +1034,19 @@ func (qre *QueryExecutor) execAlterMigration() (*sqltypes.Result, error) { case sqlparser.CleanupMigrationType: return qre.tsv.onlineDDLExecutor.CleanupMigration(qre.ctx, alterMigration.UUID) case sqlparser.CleanupAllMigrationType: - return qre.tsv.onlineDDLExecutor.CleanupAllMigrations(qre.ctx) + return qre.tsv.onlineDDLExecutor.CleanupAllMigrations(qre.ctx, alterMigration.Context) case sqlparser.LaunchMigrationType: return qre.tsv.onlineDDLExecutor.LaunchMigration(qre.ctx, alterMigration.UUID, alterMigration.Shards) case sqlparser.LaunchAllMigrationType: - return qre.tsv.onlineDDLExecutor.LaunchMigrations(qre.ctx) + return qre.tsv.onlineDDLExecutor.LaunchMigrations(qre.ctx, alterMigration.Context) case sqlparser.CompleteMigrationType: return qre.tsv.onlineDDLExecutor.CompleteMigration(qre.ctx, alterMigration.UUID, alterMigration.Shards) case sqlparser.CompleteAllMigrationType: - return qre.tsv.onlineDDLExecutor.CompletePendingMigrations(qre.ctx) + return qre.tsv.onlineDDLExecutor.CompletePendingMigrations(qre.ctx, alterMigration.Context) case sqlparser.PostponeCompleteMigrationType: return qre.tsv.onlineDDLExecutor.PostponeCompleteMigration(qre.ctx, alterMigration.UUID) case sqlparser.PostponeCompleteAllMigrationType: - return qre.tsv.onlineDDLExecutor.PostponeCompletePendingMigrations(qre.ctx) + return qre.tsv.onlineDDLExecutor.PostponeCompletePendingMigrations(qre.ctx, alterMigration.Context) case sqlparser.CancelMigrationType: return qre.tsv.onlineDDLExecutor.CancelMigration(qre.ctx, alterMigration.UUID, "CANCEL issued by user", true) case sqlparser.CancelAllMigrationType: @@ -1054,15 +1054,15 @@ func (qre *QueryExecutor) execAlterMigration() (*sqltypes.Result, error) { case sqlparser.ThrottleMigrationType: return qre.tsv.onlineDDLExecutor.ThrottleMigration(qre.ctx, alterMigration.UUID, alterMigration.Expire, alterMigration.Ratio) case sqlparser.ThrottleAllMigrationType: - return qre.tsv.onlineDDLExecutor.ThrottleAllMigrations(qre.ctx, alterMigration.Expire, alterMigration.Ratio) + return qre.tsv.onlineDDLExecutor.ThrottleAllMigrations(qre.ctx, alterMigration.Expire, alterMigration.Ratio, alterMigration.Context) case sqlparser.UnthrottleMigrationType: return qre.tsv.onlineDDLExecutor.UnthrottleMigration(qre.ctx, alterMigration.UUID) case sqlparser.UnthrottleAllMigrationType: - return qre.tsv.onlineDDLExecutor.UnthrottleAllMigrations(qre.ctx) + return qre.tsv.onlineDDLExecutor.UnthrottleAllMigrations(qre.ctx, alterMigration.Context) case sqlparser.ForceCutOverMigrationType: return qre.tsv.onlineDDLExecutor.ForceCutOverMigration(qre.ctx, alterMigration.UUID) case sqlparser.ForceCutOverAllMigrationType: - return qre.tsv.onlineDDLExecutor.ForceCutOverPendingMigrations(qre.ctx) + return qre.tsv.onlineDDLExecutor.ForceCutOverPendingMigrations(qre.ctx, alterMigration.Context) case sqlparser.SetCutOverThresholdMigrationType: return qre.tsv.onlineDDLExecutor.SetMigrationCutOverThreshold(qre.ctx, alterMigration.UUID, alterMigration.Threshold) }