diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index b724a8b375a..c671e8f5a74 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -47,6 +47,7 @@ type ( SetLimit(*Limit) SetLock(lock Lock) SetInto(into *SelectInto) + SetWith(with *With) MakeDistinct() GetColumnCount() int SetComments(comments Comments) @@ -123,6 +124,18 @@ type ( DefaultVal Expr } + // With contains the lists of common table expression and specifies if it is recursive or not + With struct { + ctes []*CommonTableExpr + Recursive bool + } + + // CommonTableExpr is the structure for supporting common table expressions + CommonTableExpr struct { + TableID TableIdent + Columns Columns + Subquery *Subquery + } // ChangeColumn is used to change the column definition, can also rename the column in alter table command ChangeColumn struct { OldColumn *ColName @@ -211,6 +224,7 @@ type ( Comments Comments SelectExprs SelectExprs Where *Where + With *With GroupBy GroupBy Having *Where OrderBy OrderBy @@ -242,6 +256,7 @@ type ( Right SelectStatement Distinct bool OrderBy OrderBy + With *With Limit *Limit Lock Lock Into *SelectInto @@ -291,6 +306,7 @@ type ( // Update represents an UPDATE statement. // If you add fields here, consider adding them to calls to validateUnshardedRoute. Update struct { + With *With Comments Comments Ignore Ignore TableExprs TableExprs @@ -303,6 +319,7 @@ type ( // Delete represents a DELETE statement. // If you add fields here, consider adding them to calls to validateUnshardedRoute. Delete struct { + With *With Ignore Ignore Comments Comments Targets TableNames diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 375e0116132..8aec8d3c701 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -87,6 +87,8 @@ func CloneSQLNode(in SQLNode) SQLNode { return CloneComments(in) case *Commit: return CloneRefOfCommit(in) + case *CommonTableExpr: + return CloneRefOfCommonTableExpr(in) case *ComparisonExpr: return CloneRefOfComparisonExpr(in) case *ConstraintDefinition: @@ -317,6 +319,8 @@ func CloneSQLNode(in SQLNode) SQLNode { return CloneRefOfWhen(in) case *Where: return CloneRefOfWhere(in) + case *With: + return CloneRefOfWith(in) case *XorExpr: return CloneRefOfXorExpr(in) default: @@ -623,6 +627,18 @@ func CloneRefOfCommit(n *Commit) *Commit { return &out } +// CloneRefOfCommonTableExpr creates a deep clone of the input. +func CloneRefOfCommonTableExpr(n *CommonTableExpr) *CommonTableExpr { + if n == nil { + return nil + } + out := *n + out.TableID = CloneTableIdent(n.TableID) + out.Columns = CloneColumns(n.Columns) + out.Subquery = CloneRefOfSubquery(n.Subquery) + return &out +} + // CloneRefOfComparisonExpr creates a deep clone of the input. func CloneRefOfComparisonExpr(n *ComparisonExpr) *ComparisonExpr { if n == nil { @@ -741,6 +757,7 @@ func CloneRefOfDelete(n *Delete) *Delete { return nil } out := *n + out.With = CloneRefOfWith(n.With) out.Comments = CloneComments(n.Comments) out.Targets = CloneTableNames(n.Targets) out.TableExprs = CloneTableExprs(n.TableExprs) @@ -1382,6 +1399,7 @@ func CloneRefOfSelect(n *Select) *Select { out.Comments = CloneComments(n.Comments) out.SelectExprs = CloneSelectExprs(n.SelectExprs) out.Where = CloneRefOfWhere(n.Where) + out.With = CloneRefOfWith(n.With) out.GroupBy = CloneGroupBy(n.GroupBy) out.Having = CloneRefOfWhere(n.Having) out.OrderBy = CloneOrderBy(n.OrderBy) @@ -1675,6 +1693,7 @@ func CloneRefOfUnion(n *Union) *Union { out.Left = CloneSelectStatement(n.Left) out.Right = CloneSelectStatement(n.Right) out.OrderBy = CloneOrderBy(n.OrderBy) + out.With = CloneRefOfWith(n.With) out.Limit = CloneRefOfLimit(n.Limit) out.Into = CloneRefOfSelectInto(n.Into) return &out @@ -1695,6 +1714,7 @@ func CloneRefOfUpdate(n *Update) *Update { return nil } out := *n + out.With = CloneRefOfWith(n.With) out.Comments = CloneComments(n.Comments) out.TableExprs = CloneTableExprs(n.TableExprs) out.Exprs = CloneUpdateExprs(n.Exprs) @@ -1832,6 +1852,16 @@ func CloneRefOfWhere(n *Where) *Where { return &out } +// CloneRefOfWith creates a deep clone of the input. +func CloneRefOfWith(n *With) *With { + if n == nil { + return nil + } + out := *n + out.ctes = CloneSliceOfRefOfCommonTableExpr(n.ctes) + return &out +} + // CloneRefOfXorExpr creates a deep clone of the input. func CloneRefOfXorExpr(n *XorExpr) *XorExpr { if n == nil { @@ -2568,6 +2598,18 @@ func CloneSliceOfVindexParam(n []VindexParam) []VindexParam { return res } +// CloneSliceOfRefOfCommonTableExpr creates a deep clone of the input. +func CloneSliceOfRefOfCommonTableExpr(n []*CommonTableExpr) []*CommonTableExpr { + if n == nil { + return nil + } + res := make([]*CommonTableExpr, 0, len(n)) + for _, x := range n { + res = append(res, CloneRefOfCommonTableExpr(x)) + } + return res +} + // CloneCollateAndCharset creates a deep clone of the input. func CloneCollateAndCharset(n CollateAndCharset) CollateAndCharset { return *CloneRefOfCollateAndCharset(&n) diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 155409ac6b1..4f92305a8cc 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -218,6 +218,12 @@ func EqualsSQLNode(inA, inB SQLNode) bool { return false } return EqualsRefOfCommit(a, b) + case *CommonTableExpr: + b, ok := inB.(*CommonTableExpr) + if !ok { + return false + } + return EqualsRefOfCommonTableExpr(a, b) case *ComparisonExpr: b, ok := inB.(*ComparisonExpr) if !ok { @@ -908,6 +914,12 @@ func EqualsSQLNode(inA, inB SQLNode) bool { return false } return EqualsRefOfWhere(a, b) + case *With: + b, ok := inB.(*With) + if !ok { + return false + } + return EqualsRefOfWith(a, b) case *XorExpr: b, ok := inB.(*XorExpr) if !ok { @@ -1278,6 +1290,19 @@ func EqualsRefOfCommit(a, b *Commit) bool { return true } +// EqualsRefOfCommonTableExpr does deep equals between the two objects. +func EqualsRefOfCommonTableExpr(a, b *CommonTableExpr) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return EqualsTableIdent(a.TableID, b.TableID) && + EqualsColumns(a.Columns, b.Columns) && + EqualsRefOfSubquery(a.Subquery, b.Subquery) +} + // EqualsRefOfComparisonExpr does deep equals between the two objects. func EqualsRefOfComparisonExpr(a, b *ComparisonExpr) bool { if a == b { @@ -1424,7 +1449,8 @@ func EqualsRefOfDelete(a, b *Delete) bool { if a == nil || b == nil { return false } - return a.Ignore == b.Ignore && + return EqualsRefOfWith(a.With, b.With) && + a.Ignore == b.Ignore && EqualsComments(a.Comments, b.Comments) && EqualsTableNames(a.Targets, b.Targets) && EqualsTableExprs(a.TableExprs, b.TableExprs) && @@ -2177,6 +2203,7 @@ func EqualsRefOfSelect(a, b *Select) bool { EqualsComments(a.Comments, b.Comments) && EqualsSelectExprs(a.SelectExprs, b.SelectExprs) && EqualsRefOfWhere(a.Where, b.Where) && + EqualsRefOfWith(a.With, b.With) && EqualsGroupBy(a.GroupBy, b.GroupBy) && EqualsRefOfWhere(a.Having, b.Having) && EqualsOrderBy(a.OrderBy, b.OrderBy) && @@ -2519,6 +2546,7 @@ func EqualsRefOfUnion(a, b *Union) bool { EqualsSelectStatement(a.Left, b.Left) && EqualsSelectStatement(a.Right, b.Right) && EqualsOrderBy(a.OrderBy, b.OrderBy) && + EqualsRefOfWith(a.With, b.With) && EqualsRefOfLimit(a.Limit, b.Limit) && a.Lock == b.Lock && EqualsRefOfSelectInto(a.Into, b.Into) @@ -2543,7 +2571,8 @@ func EqualsRefOfUpdate(a, b *Update) bool { if a == nil || b == nil { return false } - return EqualsComments(a.Comments, b.Comments) && + return EqualsRefOfWith(a.With, b.With) && + EqualsComments(a.Comments, b.Comments) && a.Ignore == b.Ignore && EqualsTableExprs(a.TableExprs, b.TableExprs) && EqualsUpdateExprs(a.Exprs, b.Exprs) && @@ -2694,6 +2723,18 @@ func EqualsRefOfWhere(a, b *Where) bool { EqualsExpr(a.Expr, b.Expr) } +// EqualsRefOfWith does deep equals between the two objects. +func EqualsRefOfWith(a, b *With) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return a.Recursive == b.Recursive && + EqualsSliceOfRefOfCommonTableExpr(a.ctes, b.ctes) +} + // EqualsRefOfXorExpr does deep equals between the two objects. func EqualsRefOfXorExpr(a, b *XorExpr) bool { if a == b { @@ -4036,6 +4077,19 @@ func EqualsSliceOfVindexParam(a, b []VindexParam) bool { return true } +// EqualsSliceOfRefOfCommonTableExpr does deep equals between the two objects. +func EqualsSliceOfRefOfCommonTableExpr(a, b []*CommonTableExpr) bool { + if len(a) != len(b) { + return false + } + for i := 0; i < len(a); i++ { + if !EqualsRefOfCommonTableExpr(a[i], b[i]) { + return false + } + } + return true +} + // EqualsCollateAndCharset does deep equals between the two objects. func EqualsCollateAndCharset(a, b CollateAndCharset) bool { return a.IsDefault == b.IsDefault && diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index d86ca7f1b0e..fb4e5986025 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -24,6 +24,9 @@ import ( // Format formats the node. func (node *Select) Format(buf *TrackedBuffer) { + if node.With != nil { + buf.astPrintf(node, "%v", node.With) + } buf.astPrintf(node, "select %v", node.Comments) if node.Distinct { @@ -116,8 +119,30 @@ func (node *Insert) Format(buf *TrackedBuffer) { } +// Format formats the node. +func (node *With) Format(buf *TrackedBuffer) { + buf.astPrintf(node, "with ") + + if node.Recursive { + buf.astPrintf(node, "recursive ") + } + ctesLength := len(node.ctes) + for i := 0; i < ctesLength-1; i++ { + buf.astPrintf(node, "%v, ", node.ctes[i]) + } + buf.astPrintf(node, "%v", node.ctes[ctesLength-1]) +} + +// Format formats the node. +func (node *CommonTableExpr) Format(buf *TrackedBuffer) { + buf.astPrintf(node, "%v%v as %v ", node.TableID, node.Columns, node.Subquery) +} + // Format formats the node. func (node *Update) Format(buf *TrackedBuffer) { + if node.With != nil { + buf.astPrintf(node, "%v", node.With) + } buf.astPrintf(node, "update %v%s%v set %v%v%v%v", node.Comments, node.Ignore.ToString(), node.TableExprs, node.Exprs, node.Where, node.OrderBy, node.Limit) @@ -125,6 +150,9 @@ func (node *Update) Format(buf *TrackedBuffer) { // Format formats the node. func (node *Delete) Format(buf *TrackedBuffer) { + if node.With != nil { + buf.astPrintf(node, "%v", node.With) + } buf.astPrintf(node, "delete %v", node.Comments) if node.Ignore { buf.WriteString("ignore ") diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index f3c4aef9d20..48c12b5fb10 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -25,6 +25,9 @@ import ( // formatFast formats the node. func (node *Select) formatFast(buf *TrackedBuffer) { + if node.With != nil { + node.With.formatFast(buf) + } buf.WriteString("select ") node.Comments.formatFast(buf) @@ -184,8 +187,35 @@ func (node *Insert) formatFast(buf *TrackedBuffer) { } +// formatFast formats the node. +func (node *With) formatFast(buf *TrackedBuffer) { + buf.WriteString("with ") + + if node.Recursive { + buf.WriteString("recursive ") + } + ctesLength := len(node.ctes) + for i := 0; i < ctesLength-1; i++ { + node.ctes[i].formatFast(buf) + buf.WriteString(", ") + } + node.ctes[ctesLength-1].formatFast(buf) +} + +// formatFast formats the node. +func (node *CommonTableExpr) formatFast(buf *TrackedBuffer) { + node.TableID.formatFast(buf) + node.Columns.formatFast(buf) + buf.WriteString(" as ") + node.Subquery.formatFast(buf) + buf.WriteByte(' ') +} + // formatFast formats the node. func (node *Update) formatFast(buf *TrackedBuffer) { + if node.With != nil { + node.With.formatFast(buf) + } buf.WriteString("update ") node.Comments.formatFast(buf) buf.WriteString(node.Ignore.ToString()) @@ -204,6 +234,9 @@ func (node *Update) formatFast(buf *TrackedBuffer) { // formatFast formats the node. func (node *Delete) formatFast(buf *TrackedBuffer) { + if node.With != nil { + node.With.formatFast(buf) + } buf.WriteString("delete ") node.Comments.formatFast(buf) if node.Ignore { diff --git a/go/vt/sqlparser/ast_funcs.go b/go/vt/sqlparser/ast_funcs.go index 596012d9243..ca702d6c4ce 100644 --- a/go/vt/sqlparser/ast_funcs.go +++ b/go/vt/sqlparser/ast_funcs.go @@ -765,6 +765,11 @@ func (node *Select) SetInto(into *SelectInto) { node.Into = into } +// SetWith sets the with clause to a select statement +func (node *Select) SetWith(with *With) { + node.With = with +} + // MakeDistinct makes the statement distinct func (node *Select) MakeDistinct() { node.Distinct = true @@ -858,6 +863,11 @@ func (node *Union) SetInto(into *SelectInto) { node.Into = into } +// SetWith sets the with clause to a union statement +func (node *Union) SetWith(with *With) { + node.With = with +} + // MakeDistinct implements the SelectStatement interface func (node *Union) MakeDistinct() { node.Distinct = true diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index f26d237f4ac..afeeac9d4a2 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -86,6 +86,8 @@ func (a *application) rewriteSQLNode(parent SQLNode, node SQLNode, replacer repl return a.rewriteComments(parent, node, replacer) case *Commit: return a.rewriteRefOfCommit(parent, node, replacer) + case *CommonTableExpr: + return a.rewriteRefOfCommonTableExpr(parent, node, replacer) case *ComparisonExpr: return a.rewriteRefOfComparisonExpr(parent, node, replacer) case *ConstraintDefinition: @@ -316,6 +318,8 @@ func (a *application) rewriteSQLNode(parent SQLNode, node SQLNode, replacer repl return a.rewriteRefOfWhen(parent, node, replacer) case *Where: return a.rewriteRefOfWhere(parent, node, replacer) + case *With: + return a.rewriteRefOfWith(parent, node, replacer) case *XorExpr: return a.rewriteRefOfXorExpr(parent, node, replacer) default: @@ -1215,6 +1219,43 @@ func (a *application) rewriteRefOfCommit(parent SQLNode, node *Commit, replacer } return true } +func (a *application) rewriteRefOfCommonTableExpr(parent SQLNode, node *CommonTableExpr, replacer replacerFunc) bool { + if node == nil { + return true + } + if a.pre != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.pre(&a.cur) { + return true + } + } + if !a.rewriteTableIdent(node, node.TableID, func(newNode, parent SQLNode) { + parent.(*CommonTableExpr).TableID = newNode.(TableIdent) + }) { + return false + } + if !a.rewriteColumns(node, node.Columns, func(newNode, parent SQLNode) { + parent.(*CommonTableExpr).Columns = newNode.(Columns) + }) { + return false + } + if !a.rewriteRefOfSubquery(node, node.Subquery, func(newNode, parent SQLNode) { + parent.(*CommonTableExpr).Subquery = newNode.(*Subquery) + }) { + return false + } + if a.post != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.post(&a.cur) { + return false + } + } + return true +} func (a *application) rewriteRefOfComparisonExpr(parent SQLNode, node *ComparisonExpr, replacer replacerFunc) bool { if node == nil { return true @@ -1554,6 +1595,11 @@ func (a *application) rewriteRefOfDelete(parent SQLNode, node *Delete, replacer return true } } + if !a.rewriteRefOfWith(node, node.With, func(newNode, parent SQLNode) { + parent.(*Delete).With = newNode.(*With) + }) { + return false + } if !a.rewriteComments(node, node.Comments, func(newNode, parent SQLNode) { parent.(*Delete).Comments = newNode.(Comments) }) { @@ -3415,6 +3461,11 @@ func (a *application) rewriteRefOfSelect(parent SQLNode, node *Select, replacer }) { return false } + if !a.rewriteRefOfWith(node, node.With, func(newNode, parent SQLNode) { + parent.(*Select).With = newNode.(*With) + }) { + return false + } if !a.rewriteGroupBy(node, node.GroupBy, func(newNode, parent SQLNode) { parent.(*Select).GroupBy = newNode.(GroupBy) }) { @@ -4313,6 +4364,11 @@ func (a *application) rewriteRefOfUnion(parent SQLNode, node *Union, replacer re }) { return false } + if !a.rewriteRefOfWith(node, node.With, func(newNode, parent SQLNode) { + parent.(*Union).With = newNode.(*With) + }) { + return false + } if !a.rewriteRefOfLimit(node, node.Limit, func(newNode, parent SQLNode) { parent.(*Union).Limit = newNode.(*Limit) }) { @@ -4369,6 +4425,11 @@ func (a *application) rewriteRefOfUpdate(parent SQLNode, node *Update, replacer return true } } + if !a.rewriteRefOfWith(node, node.With, func(newNode, parent SQLNode) { + parent.(*Update).With = newNode.(*With) + }) { + return false + } if !a.rewriteComments(node, node.Comments, func(newNode, parent SQLNode) { parent.(*Update).Comments = newNode.(Comments) }) { @@ -4801,6 +4862,37 @@ func (a *application) rewriteRefOfWhere(parent SQLNode, node *Where, replacer re } return true } +func (a *application) rewriteRefOfWith(parent SQLNode, node *With, replacer replacerFunc) bool { + if node == nil { + return true + } + if a.pre != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.pre(&a.cur) { + return true + } + } + for x, el := range node.ctes { + if !a.rewriteRefOfCommonTableExpr(node, el, func(idx int) replacerFunc { + return func(newNode, parent SQLNode) { + parent.(*With).ctes[idx] = newNode.(*CommonTableExpr) + } + }(x)) { + return false + } + } + if a.post != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.post(&a.cur) { + return false + } + } + return true +} func (a *application) rewriteRefOfXorExpr(parent SQLNode, node *XorExpr, replacer replacerFunc) bool { if node == nil { return true diff --git a/go/vt/sqlparser/ast_visit.go b/go/vt/sqlparser/ast_visit.go index 2a110e53fff..9ae835b44b4 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -86,6 +86,8 @@ func VisitSQLNode(in SQLNode, f Visit) error { return VisitComments(in, f) case *Commit: return VisitRefOfCommit(in, f) + case *CommonTableExpr: + return VisitRefOfCommonTableExpr(in, f) case *ComparisonExpr: return VisitRefOfComparisonExpr(in, f) case *ConstraintDefinition: @@ -316,6 +318,8 @@ func VisitSQLNode(in SQLNode, f Visit) error { return VisitRefOfWhen(in, f) case *Where: return VisitRefOfWhere(in, f) + case *With: + return VisitRefOfWith(in, f) case *XorExpr: return VisitRefOfXorExpr(in, f) default: @@ -718,6 +722,24 @@ func VisitRefOfCommit(in *Commit, f Visit) error { } return nil } +func VisitRefOfCommonTableExpr(in *CommonTableExpr, f Visit) error { + if in == nil { + return nil + } + if cont, err := f(in); err != nil || !cont { + return err + } + if err := VisitTableIdent(in.TableID, f); err != nil { + return err + } + if err := VisitColumns(in.Columns, f); err != nil { + return err + } + if err := VisitRefOfSubquery(in.Subquery, f); err != nil { + return err + } + return nil +} func VisitRefOfComparisonExpr(in *ComparisonExpr, f Visit) error { if in == nil { return nil @@ -878,6 +900,9 @@ func VisitRefOfDelete(in *Delete, f Visit) error { if cont, err := f(in); err != nil || !cont { return err } + if err := VisitRefOfWith(in.With, f); err != nil { + return err + } if err := VisitComments(in.Comments, f); err != nil { return err } @@ -1707,6 +1732,9 @@ func VisitRefOfSelect(in *Select, f Visit) error { if err := VisitRefOfWhere(in.Where, f); err != nil { return err } + if err := VisitRefOfWith(in.With, f); err != nil { + return err + } if err := VisitGroupBy(in.GroupBy, f); err != nil { return err } @@ -2099,6 +2127,9 @@ func VisitRefOfUnion(in *Union, f Visit) error { if err := VisitOrderBy(in.OrderBy, f); err != nil { return err } + if err := VisitRefOfWith(in.With, f); err != nil { + return err + } if err := VisitRefOfLimit(in.Limit, f); err != nil { return err } @@ -2123,6 +2154,9 @@ func VisitRefOfUpdate(in *Update, f Visit) error { if cont, err := f(in); err != nil || !cont { return err } + if err := VisitRefOfWith(in.With, f); err != nil { + return err + } if err := VisitComments(in.Comments, f); err != nil { return err } @@ -2313,6 +2347,20 @@ func VisitRefOfWhere(in *Where, f Visit) error { } return nil } +func VisitRefOfWith(in *With, f Visit) error { + if in == nil { + return nil + } + if cont, err := f(in); err != nil || !cont { + return err + } + for _, el := range in.ctes { + if err := VisitRefOfCommonTableExpr(el, f); err != nil { + return err + } + } + return nil +} func VisitRefOfXorExpr(in *XorExpr, f Visit) error { if in == nil { return nil diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index ef25f7d2e11..2af3e0d884a 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -543,6 +543,27 @@ func (cached *ColumnTypeOptions) CachedSize(alloc bool) int64 { size += cached.Reference.CachedSize(true) return size } +func (cached *CommonTableExpr) CachedSize(alloc bool) int64 { + if cached == nil { + return int64(0) + } + size := int64(0) + if alloc { + size += int64(48) + } + // field TableID vitess.io/vitess/go/vt/sqlparser.TableIdent + size += cached.TableID.CachedSize(false) + // field Columns vitess.io/vitess/go/vt/sqlparser.Columns + { + size += hack.RuntimeAllocSize(int64(cap(cached.Columns)) * int64(40)) + for _, elem := range cached.Columns { + size += elem.CachedSize(false) + } + } + // field Subquery *vitess.io/vitess/go/vt/sqlparser.Subquery + size += cached.Subquery.CachedSize(true) + return size +} func (cached *ComparisonExpr) CachedSize(alloc bool) int64 { if cached == nil { return int64(0) @@ -745,8 +766,10 @@ func (cached *Delete) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(144) + size += int64(160) } + // field With *vitess.io/vitess/go/vt/sqlparser.With + size += cached.With.CachedSize(true) // field Comments vitess.io/vitess/go/vt/sqlparser.Comments { size += hack.RuntimeAllocSize(int64(cap(cached.Comments)) * int64(16)) @@ -1701,7 +1724,7 @@ func (cached *Select) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(176) + size += int64(192) } // field Cache *bool size += hack.RuntimeAllocSize(int64(1)) @@ -1732,6 +1755,8 @@ func (cached *Select) CachedSize(alloc bool) int64 { } // field Where *vitess.io/vitess/go/vt/sqlparser.Where size += cached.Where.CachedSize(true) + // field With *vitess.io/vitess/go/vt/sqlparser.With + size += cached.With.CachedSize(true) // field GroupBy vitess.io/vitess/go/vt/sqlparser.GroupBy { size += hack.RuntimeAllocSize(int64(cap(cached.GroupBy)) * int64(16)) @@ -2218,6 +2243,8 @@ func (cached *Union) CachedSize(alloc bool) int64 { size += elem.CachedSize(true) } } + // field With *vitess.io/vitess/go/vt/sqlparser.With + size += cached.With.CachedSize(true) // field Limit *vitess.io/vitess/go/vt/sqlparser.Limit size += cached.Limit.CachedSize(true) // field Into *vitess.io/vitess/go/vt/sqlparser.SelectInto @@ -2232,6 +2259,8 @@ func (cached *Update) CachedSize(alloc bool) int64 { if alloc { size += int64(128) } + // field With *vitess.io/vitess/go/vt/sqlparser.With + size += cached.With.CachedSize(true) // field Comments vitess.io/vitess/go/vt/sqlparser.Comments { size += hack.RuntimeAllocSize(int64(cap(cached.Comments)) * int64(16)) @@ -2412,6 +2441,23 @@ func (cached *Where) CachedSize(alloc bool) int64 { } return size } +func (cached *With) CachedSize(alloc bool) int64 { + if cached == nil { + return int64(0) + } + size := int64(0) + if alloc { + size += int64(32) + } + // field ctes []*vitess.io/vitess/go/vt/sqlparser.CommonTableExpr + { + size += hack.RuntimeAllocSize(int64(cap(cached.ctes)) * int64(8)) + for _, elem := range cached.ctes { + size += elem.CachedSize(true) + } + } + return size +} func (cached *XorExpr) CachedSize(alloc bool) int64 { if cached == nil { return int64(0) diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index 5447b5f6bb6..cca594bb387 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -378,7 +378,7 @@ var keywords = []keyword{ {"read_write", UNUSED}, {"real", REAL}, {"rebuild", REBUILD}, - {"recursive", UNUSED}, + {"recursive", RECURSIVE}, {"redundant", REDUNDANT}, {"references", REFERENCES}, {"regexp", REGEXP}, diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 4fe7581af95..ce8c2e9a961 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -43,6 +43,12 @@ var ( }{{ input: "select 1", output: "select 1 from dual", + }, { + input: "WITH RECURSIVE odd_num_cte (id, n) AS (SELECT 1, 1 union all SELECT id+1, n+2 from odd_num_cte where id < 5) SELECT * FROM odd_num_cte", + output: "with recursive odd_num_cte(id, n) as (select 1, 1 from dual union all select id + 1, n + 2 from odd_num_cte where id < 5) select * from odd_num_cte", + }, { + input: "WITH topsales2003 AS (SELECT salesRepEmployeeNumber employeeNumber, SUM(quantityOrdered * priceEach) sales FROM orders INNER JOIN orderdetails USING (orderNumber) INNER JOIN customers USING (customerNumber) WHERE YEAR(shippedDate) = 2003 AND status = 'Shipped' GROUP BY salesRepEmployeeNumber ORDER BY sales DESC LIMIT 5)SELECT employeeNumber, firstName, lastName, sales FROM employees JOIN topsales2003 USING (employeeNumber)", + output: "with topsales2003 as (select salesRepEmployeeNumber as employeeNumber, SUM(quantityOrdered * priceEach) as sales from orders join orderdetails using (orderNumber) join customers using (customerNumber) where YEAR(shippedDate) = 2003 and `status` = 'Shipped' group by salesRepEmployeeNumber order by sales desc limit 5) select employeeNumber, firstName, lastName, sales from employees join topsales2003 using (employeeNumber)", }, { input: "select 1 from t", }, { diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index b77b93f5b70..49aa960c35c 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1004,3124 +1004,3213 @@ const yyInitialStackSize = 16 //line yacctab:1 var yyExca = [...]int{ + -1, 0, + 10, 44, + 11, 44, + -2, 34, -1, 1, 1, -1, -2, 0, + -1, 44, + 1, 137, + 484, 137, + -2, 143, -1, 45, - 1, 126, - 484, 126, - -2, 132, - -1, 46, - 113, 132, - 152, 132, - 267, 132, - -2, 355, - -1, 53, - 33, 505, - 174, 505, - 185, 505, - 218, 519, - 219, 519, - -2, 507, - -1, 58, - 176, 529, - -2, 527, - -1, 107, - 173, 972, - -2, 105, - -1, 109, - 1, 127, - 484, 127, - -2, 132, - -1, 119, - 114, 258, - 179, 258, - -2, 349, - -1, 138, - 113, 132, - 152, 132, - 267, 132, - -2, 364, - -1, 582, - 159, 993, - -2, 989, + 113, 143, + 152, 143, + 267, 143, + -2, 366, + -1, 52, + 33, 516, + 174, 516, + 185, 516, + 218, 530, + 219, 530, + -2, 518, + -1, 57, + 176, 540, + -2, 538, + -1, 108, + 173, 983, + -2, 116, + -1, 110, + 1, 138, + 484, 138, + -2, 143, + -1, 120, + 114, 269, + 179, 269, + -2, 360, + -1, 139, + 113, 143, + 152, 143, + 267, 143, + -2, 375, -1, 583, - 159, 994, - -2, 990, - -1, 593, - 57, 597, - -2, 605, - -1, 627, - 127, 1344, - -2, 98, - -1, 628, - 127, 1225, - -2, 99, - -1, 634, - 127, 1276, - -2, 966, - -1, 774, - 127, 1159, - -2, 963, - -1, 810, + 159, 1004, + -2, 1000, + -1, 584, + 159, 1005, + -2, 1001, + -1, 598, + 57, 608, + -2, 616, + -1, 635, + 127, 1355, + -2, 109, + -1, 636, + 127, 1236, + -2, 110, + -1, 642, + 127, 1287, + -2, 977, + -1, 782, + 127, 1170, + -2, 974, + -1, 818, 184, 38, 189, 38, - -2, 269, - -1, 887, - 1, 402, - 484, 402, - -2, 132, - -1, 1080, - 57, 598, - -2, 610, - -1, 1081, - 57, 599, - -2, 611, - -1, 1142, - 1, 299, - 484, 299, - -2, 132, - -1, 1145, - 23, 151, - -2, 153, - -1, 1218, - 114, 258, - 179, 258, - -2, 349, - -1, 1227, + -2, 280, + -1, 895, + 1, 413, + 484, 413, + -2, 143, + -1, 1093, + 57, 609, + -2, 621, + -1, 1094, + 57, 610, + -2, 622, + -1, 1146, + 1, 310, + 484, 310, + -2, 143, + -1, 1149, + 23, 162, + -2, 164, + -1, 1222, + 114, 269, + 179, 269, + -2, 360, + -1, 1231, 184, 39, 189, 39, - -2, 270, - -1, 1438, - 159, 998, - -2, 992, - -1, 1523, - 75, 80, - 84, 80, - -2, 84, - -1, 1544, - 1, 300, - 484, 300, - -2, 132, - -1, 1949, - 47, 934, - -2, 928, - -1, 1983, - 5, 43, - 16, 43, - 18, 43, - 85, 43, - -2, 638, + -2, 281, + -1, 1443, + 159, 1009, + -2, 1003, + -1, 1539, + 1, 311, + 484, 311, + -2, 143, + -1, 1778, + 75, 91, + 84, 91, + -2, 95, + -1, 1948, + 47, 945, + -2, 939, + -1, 2124, + 5, 50, + 16, 50, + 18, 50, + 85, 50, + -2, 649, } const yyPrivate = 57344 -const yyLast = 29816 +const yyLast = 30664 var yyAct = [...]int{ - 582, 2146, 2302, 2042, 2264, 2211, 2277, 1798, 1805, 950, - 3, 1760, 1961, 1067, 554, 1727, 1806, 2172, 1981, 1611, - 603, 2177, 1962, 2090, 1473, 2084, 1847, 555, 34, 1752, - 1761, 540, 1958, 1488, 1950, 898, 1744, 1576, 1851, 1827, - 840, 1581, 525, 2164, 89, 1890, 523, 1199, 1828, 175, - 1829, 590, 175, 1596, 488, 175, 1973, 1082, 33, 35, - 504, 1908, 175, 1739, 1688, 1519, 1431, 1225, 1423, 1435, - 175, 1334, 1124, 133, 1595, 1583, 1609, 1821, 805, 516, - 1134, 1127, 1642, 927, 1501, 1508, 1102, 604, 1120, 147, - 1541, 1117, 777, 84, 1070, 1475, 1118, 632, 1454, 1400, - 968, 594, 504, 1331, 818, 504, 175, 504, 784, 527, - 1232, 629, 781, 808, 1593, 1317, 592, 1133, 606, 1493, - 1572, 1088, 88, 1525, 811, 785, 806, 807, 91, 1106, - 943, 1339, 595, 596, 150, 110, 948, 111, 1131, 1194, - 1217, 116, 117, 1243, 1466, 79, 82, 8, 7, 511, - 6, 1041, 1870, 1869, 883, 1640, 1303, 1746, 1044, 1897, - 1898, 793, 1489, 1470, 1471, 613, 1389, 618, 969, 1388, - 1387, 788, 177, 178, 179, 1386, 842, 597, 83, 1385, - 112, 1384, 1372, 778, 514, 1377, 515, 118, 2298, 856, - 857, 1725, 860, 861, 862, 863, 1946, 2123, 866, 867, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, - 878, 879, 880, 512, 969, 2208, 461, 2011, 2207, 2142, - 844, 843, 2143, 2316, 2287, 822, 2315, 2256, 845, 598, - 2310, 2147, 95, 979, 821, 1678, 605, 2278, 1628, 1588, - 626, 171, 2286, 1925, 112, 799, 2074, 798, 1208, 2255, - 1135, 853, 1136, 846, 847, 848, 1877, 792, 1726, 794, - 1876, 1586, 520, 1989, 633, 113, 797, 135, 892, 893, - 97, 98, 99, 100, 101, 800, 1896, 107, 155, 979, - 172, 1990, 1991, 456, 1676, 1472, 2220, 994, 993, 1003, - 1004, 996, 997, 998, 999, 1000, 1001, 1002, 995, 1526, - 1535, 1005, 886, 589, 917, 593, 587, 72, 112, 145, - 74, 39, 40, 858, 134, 797, 905, 789, 1536, 1537, - 946, 906, 795, 975, 791, 790, 967, 922, 923, 904, - 586, 903, 905, 152, 882, 153, 1814, 906, 1909, 2087, - 122, 123, 144, 143, 170, 1791, 918, 1585, 1790, 911, - 1434, 1792, 1378, 1379, 1380, 567, 2065, 573, 574, 571, - 572, 1376, 570, 569, 568, 1556, 1555, 2063, 491, 975, - 2044, 795, 575, 576, 491, 502, 506, 177, 178, 179, - 500, 1911, 1074, 1323, 80, 491, 1653, 1651, 1652, 1293, - 2038, 1852, 1610, 1873, 2314, 1648, 797, 881, 2039, 139, - 120, 146, 127, 119, 491, 140, 141, 859, 1643, 1318, - 156, 940, 934, 924, 936, 2299, 926, 945, 1885, 161, - 128, 888, 919, 925, 801, 912, 1655, 1658, 1656, 796, - 1657, 1294, 865, 1295, 131, 129, 124, 125, 126, 130, - 864, 920, 921, 1913, 121, 1917, 2045, 1912, 1649, 1910, - 933, 935, 2204, 132, 1915, 1647, 175, 2046, 175, 885, - 1645, 175, 2137, 1914, 829, 827, 974, 971, 972, 973, - 978, 980, 977, 1612, 976, 1502, 1916, 1918, 796, 938, - 838, 970, 837, 836, 835, 834, 833, 832, 831, 504, - 504, 504, 2010, 826, 802, 1646, 1211, 820, 901, 839, - 907, 908, 909, 910, 1810, 782, 2221, 504, 504, 780, - 1875, 820, 974, 971, 972, 973, 978, 980, 977, 961, - 976, 1587, 492, 947, 1801, 148, 2311, 970, 492, 1324, - 177, 178, 179, 2254, 1526, 782, 34, 939, 931, 492, - 814, 1889, 932, 915, 2308, 884, 782, 813, 1332, 1594, - 1231, 620, 937, 1728, 1730, 1886, 819, 491, 492, 796, - 2088, 823, 813, 830, 828, 1634, 941, 1328, 955, 1802, - 819, 824, 1677, 849, 930, 2018, 813, 816, 817, 1872, - 782, 142, 820, 1934, 810, 814, 1933, 175, 820, 825, - 1932, 1206, 1804, 136, 1205, 1799, 137, 478, 1204, 1305, - 1304, 1306, 1307, 1308, 820, 109, 477, 1862, 1329, 1808, - 1809, 1075, 1065, 2306, 1800, 1230, 504, 475, 894, 1077, - 175, 902, 175, 175, 1202, 504, 952, 953, 891, 460, - 1542, 504, 1015, 455, 629, 1884, 1098, 1892, 1883, 2242, - 1630, 819, 1891, 1066, 1892, 75, 2104, 819, 1005, 1891, - 1988, 855, 823, 813, 900, 472, 964, 962, 1729, 963, - 1016, 1017, 824, 819, 486, 1322, 1706, 1066, 1703, 813, - 816, 817, 1751, 782, 1807, 1071, 1697, 810, 814, 483, - 1620, 1531, 88, 1110, 914, 1029, 1810, 1116, 91, 896, - 177, 178, 179, 1787, 1425, 916, 809, 149, 154, 151, - 157, 158, 159, 160, 162, 163, 164, 165, 928, 995, - 600, 492, 1005, 166, 167, 168, 169, 1090, 1092, 1043, - 1046, 1048, 1050, 1051, 1053, 1055, 1056, 1047, 1049, 982, - 1052, 1054, 944, 1057, 104, 1068, 985, 1076, 1340, 462, - 1091, 464, 479, 820, 494, 985, 493, 468, 2250, 466, - 470, 480, 471, 1319, 465, 1320, 476, 1426, 1321, 467, - 481, 482, 484, 498, 497, 485, 841, 474, 495, 1971, - 2304, 1644, 1325, 2305, 1629, 2303, 899, 175, 1927, 887, - 1137, 1195, 965, 1455, 1803, 1713, 105, 633, 984, 982, - 1203, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1455, 819, 1840, 854, 985, 177, 178, 179, 504, - 1748, 1227, 2186, 1998, 1016, 1017, 1016, 1017, 1997, 1236, - 1616, 1242, 1241, 1240, 1229, 1627, 504, 504, 2292, 504, - 1625, 504, 504, 929, 504, 504, 504, 504, 504, 504, - 1097, 1209, 1210, 998, 999, 1000, 1001, 1002, 995, 504, - 1622, 1005, 1407, 175, 1276, 996, 997, 998, 999, 1000, - 1001, 1002, 995, 1341, 1237, 1005, 1405, 1406, 1404, 175, - 983, 984, 982, 1749, 1626, 829, 827, 2312, 1216, 1622, - 504, 1132, 175, 1993, 1111, 2259, 1235, 2235, 985, 1271, - 1272, 619, 496, 1330, 983, 984, 982, 175, 1312, 1279, - 1280, 1223, 1929, 1624, 2293, 1285, 1286, 1395, 1397, 1398, - 489, 80, 985, 175, 2260, 2122, 2236, 1681, 1682, 1683, - 175, 1233, 1233, 1403, 2121, 490, 1396, 1310, 1234, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 504, 504, - 504, 1273, 1201, 1300, 1213, 1214, 1212, 1344, 2313, 2270, - 1226, 2016, 2268, 1825, 1348, 1824, 1350, 1351, 1352, 1353, - 1311, 2272, 2273, 1357, 1289, 1591, 1808, 1809, 175, 1313, - 1245, 2269, 1246, 1298, 1248, 1250, 1701, 1371, 1254, 1256, - 1258, 1260, 1262, 624, 1297, 1700, 1702, 1342, 1343, 1309, - 171, 621, 622, 1296, 1336, 1287, 1281, 1100, 1333, 1278, - 2239, 1347, 1277, 1401, 1252, 1299, 1424, 2238, 1354, 1355, - 1356, 2237, 1274, 2185, 113, 1427, 1094, 983, 984, 982, - 2183, 2161, 112, 799, 2119, 798, 1207, 155, 504, 1996, - 1834, 1807, 177, 178, 179, 985, 1794, 1822, 1638, 1436, - 1383, 1637, 1487, 1810, 1479, 1346, 1373, 994, 993, 1003, - 1004, 996, 997, 998, 999, 1000, 1001, 1002, 995, 504, - 504, 1005, 1099, 1428, 1429, 1095, 177, 178, 179, 1795, - 1604, 1370, 1337, 175, 1367, 1368, 1369, 1443, 1446, 983, - 984, 982, 152, 1456, 153, 1301, 1288, 1478, 177, 178, - 179, 1284, 1602, 170, 983, 984, 982, 985, 1402, 1283, - 1282, 1437, 177, 178, 179, 175, 1689, 1096, 504, 942, - 2041, 1089, 985, 175, 1826, 175, 1089, 2025, 2284, 2202, - 1436, 2025, 2244, 175, 175, 2025, 2243, 1438, 1462, 1463, - 504, 2201, 85, 504, 2145, 1494, 1495, 2225, 1089, 629, - 1482, 94, 629, 86, 504, 983, 984, 982, 1853, 85, - 1521, 87, 93, 88, 92, 1837, 87, 2025, 2195, 156, - 86, 2140, 1089, 985, 1457, 2025, 2138, 1457, 161, 994, - 993, 1003, 1004, 996, 997, 998, 999, 1000, 1001, 1002, - 995, 1520, 1499, 1005, 93, 597, 88, 1550, 1090, 1467, - 1562, 1563, 1564, 1565, 1959, 1970, 1524, 1089, 1557, 504, - 1558, 1559, 1560, 1561, 1970, 1597, 1598, 1599, 1438, 1089, - 1601, 1603, 1623, 1485, 1089, 2099, 1568, 1569, 1570, 1571, - 80, 1089, 1549, 504, 1622, 1089, 983, 984, 982, 504, - 1236, 1578, 1545, 1236, 981, 1236, 1546, 1497, 1781, 583, - 2102, 1089, 1504, 1621, 985, 2008, 2007, 1526, 1533, 1529, - 1399, 1584, 1695, 1408, 1409, 1410, 1411, 1412, 1413, 1414, - 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1532, 1622, - 1548, 1547, 2249, 504, 148, 1424, 2071, 2004, 2005, 2025, - 1424, 1424, 2004, 2003, 1695, 1089, 1526, 1871, 176, 1198, - 1855, 176, 633, 1505, 176, 633, 1505, 1615, 2077, 505, - 1618, 176, 1619, 1849, 1850, 1505, 1089, 1579, 1458, 176, - 2006, 1574, 1575, 981, 1089, 1608, 175, 1592, 1741, 1590, - 1534, 1527, 1600, 175, 1589, 1718, 822, 1717, 175, 175, - 1198, 1197, 175, 87, 175, 821, 1233, 1614, 1753, 1579, - 175, 505, 1617, 1633, 505, 176, 505, 175, 1635, 1636, - 1632, 1613, 994, 993, 1003, 1004, 996, 997, 998, 999, - 1000, 1001, 1002, 995, 72, 1631, 1005, 72, 1527, 1143, - 1142, 1695, 1753, 1622, 1605, 175, 504, 1492, 1668, 1669, - 72, 1439, 1440, 1671, 1528, 1445, 1448, 1449, 1641, 1468, - 1695, 1755, 1672, 1530, 994, 993, 1003, 1004, 996, 997, - 998, 999, 1000, 1001, 1002, 995, 1381, 1327, 1005, 1505, - 1129, 1461, 804, 2188, 1464, 1465, 1756, 803, 2213, 1401, - 1003, 1004, 996, 997, 998, 999, 1000, 1001, 1002, 995, - 1481, 1528, 1005, 1661, 2124, 1982, 607, 1267, 2198, 2289, - 1526, 80, 1831, 1970, 80, 2116, 149, 154, 151, 157, - 158, 159, 160, 162, 163, 164, 165, 80, 2110, 1200, - 1577, 94, 166, 167, 168, 169, 2040, 2000, 1856, 175, - 1573, 1567, 93, 1566, 92, 1315, 1228, 175, 1224, 1196, - 106, 504, 1675, 87, 2125, 2126, 2127, 1268, 1269, 1270, - 1747, 994, 993, 1003, 1004, 996, 997, 998, 999, 1000, - 1001, 1002, 995, 886, 1684, 1005, 175, 175, 175, 175, - 175, 2128, 1757, 80, 1402, 1974, 1975, 1830, 175, 1980, - 2043, 1743, 2214, 175, 1588, 2265, 175, 175, 2023, 34, - 175, 175, 175, 543, 542, 545, 546, 547, 548, 2022, - 1742, 1089, 544, 1793, 549, 2021, 1977, 1762, 1959, 1691, - 1098, 1841, 1712, 1692, 1662, 1374, 90, 1071, 2129, 2130, - 1772, 1698, 1699, 1724, 1831, 1773, 1979, 1705, 1769, 1770, - 1708, 1709, 1732, 1264, 1771, 1738, 1768, 2301, 1715, 1750, - 1716, 1779, 2285, 1719, 1720, 1721, 1722, 1723, 1485, 504, - 1486, 1782, 1815, 1816, 175, 1784, 1093, 1763, 1480, 1733, - 1766, 175, 1775, 1764, 1765, 2103, 1767, 504, 1780, 88, - 1951, 1953, 1785, 504, 2028, 1788, 1940, 1236, 1236, 1954, - 1265, 1266, 1939, 504, 2092, 1797, 1833, 2234, 591, 1336, - 1859, 2176, 2091, 2178, 1796, 1868, 1584, 1774, 2095, 1514, - 1515, 1777, 1778, 601, 1948, 1823, 175, 175, 175, 175, - 175, 602, 1326, 1817, 1818, 1819, 1820, 585, 1832, 1812, - 1553, 1835, 175, 175, 1451, 851, 850, 2053, 1685, 1686, - 1687, 1866, 1842, 1843, 1844, 1838, 1864, 1830, 1452, 1216, - 1895, 1087, 1083, 954, 1857, 1858, 1863, 1510, 1513, 1514, - 1515, 1511, 1437, 1512, 1516, 176, 1084, 176, 504, 113, - 176, 2097, 1424, 85, 1494, 1495, 2019, 1907, 1865, 1510, - 1513, 1514, 1515, 1511, 86, 1512, 1516, 87, 1438, 1974, - 1975, 1483, 1484, 1086, 1867, 1085, 85, 94, 505, 505, - 505, 1665, 504, 87, 1887, 2246, 2209, 86, 93, 1811, - 92, 1518, 175, 92, 611, 612, 505, 505, 1938, 87, - 1899, 1893, 504, 1654, 1894, 592, 1937, 1680, 2184, 504, - 504, 1907, 1926, 1906, 1920, 1905, 94, 1960, 2182, 1942, - 1919, 1963, 2181, 1956, 2174, 2096, 93, 93, 2173, 92, - 1087, 1083, 175, 1693, 1694, 2094, 594, 2024, 1606, 610, - 1969, 2085, 94, 1753, 1741, 1084, 2291, 2290, 1762, 2291, - 1944, 1710, 1941, 93, 1707, 1704, 1112, 1943, 1104, 2240, - 1984, 175, 1986, 1995, 1987, 1903, 1904, 595, 596, 599, - 1080, 1081, 1086, 1978, 1085, 96, 176, 81, 1, 2267, - 473, 1469, 1069, 487, 2263, 1302, 2017, 1292, 2148, 615, - 2210, 2031, 175, 1582, 812, 138, 1543, 1985, 1544, 2280, - 504, 103, 775, 102, 815, 505, 913, 504, 1607, 176, - 2141, 176, 176, 175, 505, 1813, 1554, 1149, 1147, 1148, - 505, 2014, 2015, 175, 1146, 1935, 1151, 1150, 2013, 2012, - 1966, 2032, 1145, 2030, 1375, 1992, 501, 175, 1517, 173, - 175, 1138, 1105, 852, 463, 2027, 2009, 2029, 1639, 2054, - 469, 1983, 1013, 1968, 2035, 517, 2001, 2002, 1936, 1584, - 1789, 2034, 993, 1003, 1004, 996, 997, 998, 999, 1000, - 1001, 1002, 995, 630, 623, 1005, 584, 73, 2049, 2051, - 2052, 1965, 609, 2048, 2089, 1947, 1949, 175, 1745, 1952, - 1945, 2233, 2026, 2175, 2245, 1551, 1101, 1711, 1038, 1453, - 1121, 2061, 1901, 1902, 526, 1477, 1394, 2058, 2059, 541, - 2060, 538, 539, 2062, 1734, 2064, 1921, 1922, 1754, 1923, - 1924, 2083, 987, 524, 518, 1113, 1509, 1507, 1506, 1663, - 1930, 1931, 2086, 504, 2093, 1125, 1976, 1972, 1119, 1740, - 1552, 1874, 2037, 2098, 966, 1079, 513, 787, 1450, 2219, - 73, 2107, 1679, 2073, 1078, 61, 38, 508, 2297, 2112, - 957, 617, 32, 1762, 592, 2114, 176, 608, 31, 175, - 30, 2106, 175, 175, 175, 504, 504, 2115, 2056, 592, - 2057, 29, 28, 23, 22, 21, 2113, 2118, 20, 2120, - 19, 2066, 2067, 25, 2149, 504, 504, 504, 505, 18, - 17, 2135, 16, 108, 48, 2144, 45, 2081, 43, 115, - 2154, 114, 46, 42, 1994, 505, 505, 889, 505, 27, - 505, 505, 26, 505, 505, 505, 505, 505, 505, 504, - 504, 504, 175, 15, 14, 13, 2100, 2101, 505, 12, - 2105, 11, 176, 2153, 2160, 10, 9, 5, 4, 960, - 24, 71, 2, 504, 0, 504, 2170, 0, 176, 2171, - 2179, 504, 2189, 2180, 1963, 0, 2191, 504, 1963, 505, - 0, 176, 2187, 2168, 2169, 0, 0, 2193, 0, 34, - 0, 0, 553, 0, 2196, 0, 176, 2194, 0, 0, - 0, 0, 0, 2197, 0, 0, 0, 0, 504, 0, - 2203, 0, 176, 2139, 0, 2205, 0, 2212, 0, 176, - 2206, 0, 0, 2055, 0, 0, 0, 0, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 505, 505, 505, - 0, 174, 0, 0, 459, 0, 2229, 499, 2232, 2230, - 0, 0, 0, 0, 459, 0, 0, 0, 0, 0, - 2165, 2241, 459, 1963, 0, 0, 0, 176, 0, 2199, - 0, 2200, 0, 0, 504, 175, 0, 0, 0, 0, - 2248, 0, 0, 0, 0, 171, 504, 0, 616, 0, - 616, 0, 0, 0, 0, 0, 0, 34, 459, 0, - 2251, 0, 0, 504, 0, 0, 0, 0, 0, 113, - 504, 504, 2261, 2266, 2271, 2279, 0, 2274, 0, 2212, - 2281, 0, 155, 2117, 0, 0, 0, 505, 2288, 0, - 0, 0, 0, 0, 34, 0, 0, 2215, 2216, 2217, - 2218, 2294, 2222, 1762, 2223, 2224, 2226, 0, 2300, 0, - 2227, 2228, 0, 0, 2307, 0, 0, 0, 505, 505, - 0, 0, 2309, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 176, 0, 0, 0, 0, 152, 0, 153, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, - 0, 2155, 2156, 2157, 2158, 2159, 0, 0, 0, 2162, - 2163, 2253, 0, 0, 176, 0, 0, 505, 0, 0, - 0, 0, 176, 0, 176, 0, 0, 0, 0, 986, - 0, 0, 176, 176, 0, 0, 0, 0, 0, 505, - 0, 0, 505, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 0, 0, 2295, 2296, 1166, - 0, 0, 0, 161, 1039, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 949, 949, 949, 0, 0, - 0, 0, 0, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 73, 0, 0, 505, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1014, 608, - 1103, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 505, 0, 0, 0, 0, 552, 505, 0, - 0, 0, 0, 0, 0, 0, 2070, 0, 0, 1028, - 0, 0, 2076, 1030, 1031, 1032, 1033, 1034, 1035, 1036, - 1037, 0, 1040, 1042, 1045, 1045, 1045, 1042, 1045, 1045, - 1042, 1045, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 148, - 2275, 0, 505, 0, 0, 1073, 0, 0, 608, 0, - 0, 0, 1154, 0, 0, 0, 0, 503, 0, 0, - 0, 0, 0, 0, 0, 608, 994, 993, 1003, 1004, - 996, 997, 998, 999, 1000, 1001, 1002, 995, 1122, 0, - 1005, 0, 0, 0, 0, 176, 0, 0, 0, 0, - 0, 0, 176, 0, 0, 1167, 0, 176, 176, 631, - 0, 176, 779, 176, 786, 0, 0, 0, 0, 176, - 0, 0, 0, 0, 0, 0, 176, 0, 459, 0, - 459, 0, 0, 459, 994, 993, 1003, 1004, 996, 997, - 998, 999, 1000, 1001, 1002, 995, 0, 2069, 1005, 0, - 0, 0, 0, 0, 176, 505, 1180, 1183, 1184, 1185, - 1186, 1187, 1188, 0, 1189, 1190, 1191, 1192, 1193, 1168, - 1169, 1170, 1171, 1152, 1153, 1181, 0, 1155, 0, 1156, - 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1172, - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 0, 0, 0, - 0, 0, 2068, 994, 993, 1003, 1004, 996, 997, 998, - 999, 1000, 1001, 1002, 995, 0, 0, 1005, 0, 0, - 0, 149, 154, 151, 157, 158, 159, 160, 162, 163, - 164, 165, 0, 0, 0, 0, 0, 166, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 176, 0, - 0, 0, 0, 0, 0, 0, 176, 0, 0, 459, - 505, 0, 0, 0, 1182, 994, 993, 1003, 1004, 996, - 997, 998, 999, 1000, 1001, 1002, 995, 0, 0, 1005, - 1338, 0, 0, 0, 0, 176, 176, 176, 176, 176, - 0, 0, 459, 0, 459, 1128, 0, 176, 0, 0, - 0, 0, 176, 0, 0, 176, 176, 0, 0, 176, - 176, 176, 0, 72, 36, 37, 74, 39, 40, 0, - 994, 993, 1003, 1004, 996, 997, 998, 999, 1000, 1001, - 1002, 995, 0, 78, 1005, 0, 0, 41, 67, 68, - 0, 65, 69, 0, 0, 0, 0, 0, 0, 0, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1390, 1391, 1392, 1393, 0, 0, 0, 505, 0, - 0, 0, 0, 176, 0, 0, 0, 0, 0, 54, - 176, 0, 0, 0, 0, 0, 505, 0, 0, 0, - 80, 0, 505, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 505, 0, 949, 949, 949, 0, 0, 0, - 0, 0, 1441, 1442, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 176, 176, 176, 176, 176, - 0, 0, 0, 0, 1900, 0, 0, 0, 0, 0, - 0, 176, 176, 0, 0, 0, 0, 0, 0, 459, - 0, 0, 0, 517, 994, 993, 1003, 1004, 996, 997, - 998, 999, 1000, 1001, 1002, 995, 0, 0, 1005, 44, - 47, 50, 49, 52, 0, 64, 0, 505, 70, 1490, - 1491, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1239, 0, 631, 631, 631, 0, - 53, 77, 76, 0, 0, 62, 63, 51, 0, 0, - 0, 505, 0, 0, 956, 958, 0, 1540, 0, 1239, - 1239, 176, 0, 0, 0, 459, 0, 0, 0, 0, - 0, 505, 0, 0, 0, 0, 0, 0, 505, 505, - 0, 1290, 0, 0, 0, 0, 55, 56, 0, 57, - 58, 59, 60, 0, 459, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 1072, 0, 0, 0, 1335, - 0, 0, 0, 0, 0, 0, 1580, 0, 0, 0, - 0, 0, 0, 0, 0, 459, 0, 0, 0, 1522, - 176, 0, 459, 0, 0, 0, 0, 0, 0, 0, - 0, 1358, 1359, 459, 459, 459, 459, 459, 459, 459, - 0, 0, 0, 0, 0, 0, 0, 458, 0, 0, - 0, 176, 0, 1108, 0, 0, 0, 507, 0, 505, - 0, 0, 631, 0, 0, 588, 505, 0, 1139, 0, - 459, 0, 176, 0, 0, 0, 0, 0, 0, 0, - 0, 75, 176, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 989, 176, 992, 0, 176, - 0, 783, 0, 1006, 1007, 1008, 1009, 1010, 1011, 1012, - 0, 990, 991, 988, 994, 993, 1003, 1004, 996, 997, - 998, 999, 1000, 1001, 1002, 995, 0, 1690, 1005, 0, - 0, 616, 1335, 616, 616, 0, 0, 616, 616, 616, - 0, 0, 0, 1239, 0, 0, 176, 994, 993, 1003, - 1004, 996, 997, 998, 999, 1000, 1001, 1002, 995, 0, - 0, 1005, 0, 616, 616, 616, 616, 616, 0, 0, - 0, 0, 0, 0, 0, 1290, 0, 0, 0, 0, - 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 505, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 459, 0, 0, - 0, 0, 0, 1335, 0, 459, 0, 459, 0, 0, - 0, 0, 0, 0, 0, 459, 459, 0, 176, 0, - 0, 176, 176, 176, 505, 505, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 779, 0, 0, 0, - 0, 0, 0, 0, 505, 505, 505, 0, 0, 1238, - 0, 0, 0, 1244, 1244, 1714, 1244, 0, 1244, 1244, - 0, 1253, 1244, 1244, 1244, 1244, 1244, 0, 0, 0, - 0, 0, 0, 0, 1238, 1238, 779, 0, 505, 505, - 505, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1103, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 505, 0, 505, 0, 0, 1314, 0, 0, - 505, 0, 0, 0, 0, 0, 505, 0, 0, 0, - 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 505, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1731, 0, 0, 0, 631, 631, 631, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1758, 1759, - 0, 0, 1122, 1122, 1122, 1122, 1122, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 459, 1522, - 0, 0, 1122, 505, 176, 459, 1122, 0, 0, 0, - 459, 459, 0, 0, 459, 505, 1666, 0, 0, 0, - 0, 0, 459, 0, 0, 0, 0, 0, 0, 459, - 0, 890, 505, 895, 0, 0, 897, 0, 0, 505, - 505, 0, 0, 0, 0, 1430, 0, 631, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 459, 1238, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1459, 1460, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1861, 0, 0, 1928, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 616, 616, 0, 0, 0, - 0, 0, 0, 0, 0, 1108, 0, 0, 631, 171, - 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, - 1846, 0, 0, 1957, 0, 0, 0, 631, 0, 0, - 631, 459, 0, 113, 0, 135, 0, 0, 0, 1290, - 0, 779, 0, 0, 0, 0, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1239, 459, 459, - 459, 459, 459, 0, 0, 1115, 0, 145, 1126, 0, - 1776, 0, 134, 0, 0, 459, 0, 0, 459, 459, - 0, 0, 459, 1786, 1335, 0, 786, 0, 1122, 0, - 0, 152, 0, 153, 0, 0, 0, 0, 1219, 1220, - 144, 143, 170, 1964, 0, 73, 0, 0, 0, 0, - 779, 0, 0, 0, 0, 0, 786, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1122, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 459, 0, 0, 0, - 0, 0, 0, 1845, 0, 0, 0, 139, 1221, 146, - 779, 1218, 0, 140, 141, 0, 0, 0, 156, 0, - 0, 0, 0, 1335, 0, 0, 0, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2075, - 0, 0, 0, 0, 0, 0, 0, 0, 459, 459, - 459, 459, 459, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 459, 459, 0, 0, 0, 0, - 0, 0, 1144, 0, 517, 0, 0, 0, 0, 0, - 0, 2108, 0, 0, 2109, 0, 0, 2111, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 616, 616, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1674, 0, 0, 0, 0, 0, 0, - 0, 0, 2072, 0, 0, 0, 0, 0, 0, 2078, - 2079, 2080, 0, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 459, 0, 0, 0, 1275, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1316, 0, 0, - 0, 0, 0, 0, 459, 0, 0, 0, 0, 142, + 583, 2160, 2323, 2047, 2298, 2285, 3, 2229, 1796, 1803, + 1962, 2186, 1499, 555, 2089, 958, 613, 556, 34, 1959, + 1963, 1606, 1075, 1495, 1751, 1960, 1804, 90, 526, 1774, + 591, 2191, 1723, 1108, 2095, 1478, 541, 2115, 1957, 1949, + 1743, 1887, 1848, 1825, 524, 1571, 848, 1203, 176, 2178, + 1591, 176, 1827, 489, 176, 1826, 1576, 1525, 640, 505, + 33, 176, 1517, 1763, 614, 785, 1512, 1516, 35, 176, + 1735, 1338, 1095, 1684, 1428, 1906, 1604, 1637, 134, 1138, + 813, 176, 1590, 1387, 1578, 1440, 1780, 517, 906, 595, + 1117, 599, 1819, 1536, 148, 528, 1436, 1480, 593, 89, + 1229, 1519, 1078, 505, 1459, 1405, 505, 176, 505, 616, + 976, 1321, 792, 85, 816, 1247, 789, 819, 637, 1335, + 1504, 1137, 793, 1588, 1500, 1236, 1121, 814, 935, 1135, + 815, 605, 111, 1567, 600, 1343, 151, 112, 1198, 956, + 826, 951, 601, 603, 1221, 627, 1049, 79, 92, 70, + 83, 91, 117, 891, 1052, 118, 8, 512, 1471, 602, + 71, 7, 6, 1867, 1866, 1635, 1895, 1745, 801, 1896, + 1394, 796, 1393, 178, 179, 180, 1392, 462, 1475, 1476, + 1391, 113, 621, 850, 626, 1390, 786, 1389, 623, 1376, + 119, 1307, 84, 515, 1381, 516, 864, 865, 607, 868, + 869, 870, 871, 2319, 1721, 874, 875, 876, 877, 878, + 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, + 513, 594, 592, 1945, 2017, 96, 2138, 641, 2226, 1439, + 2225, 977, 634, 852, 853, 72, 829, 2156, 808, 615, + 2157, 2337, 851, 807, 608, 72, 72, 113, 806, 74, + 2308, 72, 1674, 518, 2336, 854, 855, 856, 1583, 1754, + 977, 2276, 830, 98, 99, 2331, 102, 2161, 2299, 108, + 1623, 2307, 173, 1923, 2079, 457, 866, 1212, 1996, 1997, + 1581, 1722, 617, 2275, 1755, 1874, 1531, 1532, 861, 1873, + 1139, 942, 1140, 944, 2204, 590, 987, 1995, 598, 1894, + 1477, 568, 1671, 574, 575, 572, 573, 172, 571, 570, + 569, 113, 81, 925, 1789, 1530, 1672, 1788, 576, 577, + 1790, 588, 81, 81, 587, 987, 629, 630, 81, 941, + 943, 114, 1812, 136, 913, 1551, 1550, 954, 894, 914, + 926, 2070, 890, 919, 156, 2238, 1002, 1001, 1011, 1012, + 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, 930, 931, + 1013, 1382, 1383, 1384, 2049, 2068, 1580, 492, 1907, 800, + 503, 802, 913, 2092, 492, 146, 1380, 914, 507, 805, + 135, 900, 901, 501, 1297, 912, 983, 911, 1082, 975, + 1327, 178, 179, 180, 1648, 1646, 1647, 1849, 1605, 153, + 1870, 154, 1638, 1643, 2043, 948, 123, 124, 145, 144, + 171, 1909, 2044, 867, 2335, 983, 927, 939, 492, 920, + 1322, 940, 492, 928, 929, 1882, 1298, 805, 1299, 797, + 2320, 945, 805, 889, 953, 803, 799, 798, 934, 1650, + 2050, 1651, 896, 1652, 932, 2222, 1653, 1642, 873, 872, + 2051, 1640, 2151, 938, 933, 1607, 1644, 176, 1513, 176, + 521, 809, 176, 846, 845, 140, 121, 147, 128, 120, + 837, 141, 142, 1911, 844, 1915, 157, 1910, 843, 1908, + 946, 835, 1101, 803, 1913, 162, 129, 1641, 842, 841, + 505, 505, 505, 1912, 840, 893, 839, 834, 810, 2016, + 132, 130, 125, 126, 127, 131, 1914, 1916, 505, 505, + 122, 1215, 847, 1808, 790, 790, 969, 2329, 788, 133, + 822, 493, 2332, 790, 821, 1336, 1589, 34, 493, 982, + 979, 980, 981, 986, 988, 985, 1328, 984, 947, 1872, + 1582, 1672, 804, 628, 978, 1883, 2327, 1886, 1235, 2024, + 923, 1629, 909, 1332, 915, 916, 917, 918, 982, 979, + 980, 981, 986, 988, 985, 2239, 984, 2274, 963, 838, + 857, 1869, 493, 978, 1724, 1726, 493, 955, 110, 1932, + 836, 892, 828, 1931, 75, 1930, 80, 1210, 176, 1673, + 804, 149, 863, 1209, 2093, 804, 80, 80, 1208, 1859, + 1333, 1206, 80, 1073, 461, 176, 456, 2260, 1083, 828, + 1085, 2129, 949, 1234, 1089, 1881, 1024, 1025, 1880, 1023, + 595, 828, 593, 1088, 505, 1086, 902, 1625, 176, 899, + 960, 961, 910, 505, 1309, 1308, 1310, 1311, 1312, 505, + 828, 827, 1702, 2111, 1889, 1785, 1074, 143, 637, 1888, + 1889, 1750, 1693, 1537, 1615, 1888, 1699, 1074, 1125, 137, + 1087, 1013, 138, 1037, 89, 610, 972, 904, 827, 71, + 1003, 970, 971, 1013, 821, 824, 825, 1994, 790, 1725, + 827, 936, 818, 822, 828, 952, 821, 824, 825, 1079, + 790, 922, 908, 993, 818, 822, 1412, 1344, 2270, 827, + 2105, 817, 924, 2325, 831, 821, 2326, 1326, 2324, 994, + 1410, 1411, 1409, 92, 832, 1051, 1054, 1056, 1058, 1059, + 1061, 1063, 1064, 849, 1055, 1057, 105, 1060, 1062, 828, + 1065, 990, 833, 1639, 1329, 178, 179, 180, 2291, 1430, + 1084, 2289, 1141, 827, 1076, 862, 592, 993, 1107, 973, + 2293, 2294, 594, 895, 1047, 1806, 1807, 641, 1925, 1104, + 2290, 1624, 1460, 150, 155, 152, 158, 159, 160, 161, + 163, 164, 165, 166, 518, 1131, 1132, 1838, 106, 167, + 168, 169, 170, 2200, 1460, 176, 1709, 2004, 827, 1199, + 1024, 1025, 2003, 831, 821, 1323, 1611, 1324, 1207, 1246, + 1325, 1245, 1431, 832, 1024, 1025, 937, 1118, 1006, 1007, + 1008, 1009, 1010, 1003, 907, 1233, 1013, 505, 1799, 1231, + 1805, 1622, 1345, 1090, 1620, 1505, 1506, 1240, 837, 1617, + 1617, 1244, 1808, 835, 505, 505, 2313, 505, 2333, 505, + 505, 1999, 505, 505, 505, 505, 505, 505, 178, 179, + 180, 2279, 1747, 1621, 1619, 1213, 1214, 505, 1241, 992, + 990, 176, 1280, 1800, 1002, 1001, 1011, 1012, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1003, 993, 176, 1013, 1126, + 2280, 2137, 1227, 1275, 1276, 1136, 1802, 2136, 505, 1797, + 176, 1220, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, + 2046, 1334, 1013, 1806, 1807, 176, 1115, 2253, 1798, 2334, + 1400, 1402, 1403, 1283, 1284, 1748, 991, 992, 990, 1289, + 1290, 176, 1277, 1685, 1677, 1678, 1679, 1239, 176, 1401, + 2022, 178, 179, 180, 993, 1792, 2254, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 505, 505, 505, 1205, + 1249, 1238, 1250, 1824, 1252, 1254, 1217, 1230, 1258, 1260, + 1262, 1264, 1266, 1340, 1218, 1237, 1237, 1216, 1805, 81, + 1697, 1114, 1316, 1314, 1293, 1304, 176, 2104, 2314, 1696, + 1808, 1408, 1278, 1823, 991, 992, 990, 1822, 632, 1586, + 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1698, 1317, 993, 991, 992, 990, 1302, 1301, 1348, 1300, + 1406, 991, 992, 990, 1429, 1352, 1291, 1354, 1355, 1356, + 1357, 993, 1337, 1432, 1361, 1285, 1282, 1211, 807, 993, + 1281, 1256, 113, 806, 1315, 1313, 505, 1303, 1375, 1111, + 1346, 1347, 1001, 1011, 1012, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1003, 1441, 1351, 1013, 2257, 1350, 991, 992, + 990, 1358, 1359, 1360, 2256, 2255, 1927, 505, 505, 1433, + 1434, 1448, 1451, 991, 992, 990, 993, 1461, 1801, 2199, + 2197, 176, 2175, 1103, 1105, 1371, 1372, 1373, 1112, 2134, + 1374, 993, 1407, 991, 992, 990, 1443, 1342, 178, 179, + 180, 2002, 1599, 1485, 1483, 1486, 1832, 176, 1820, 1442, + 505, 993, 1633, 544, 543, 546, 547, 548, 549, 1632, + 176, 1498, 545, 505, 550, 178, 179, 180, 176, 1597, + 176, 2082, 176, 176, 505, 1484, 1377, 505, 89, 1341, + 1305, 1441, 178, 179, 180, 1292, 95, 1288, 505, 637, + 1287, 1286, 637, 1113, 89, 950, 1102, 94, 2220, 93, + 86, 1515, 1741, 2305, 1741, 2283, 1467, 1468, 1491, 1741, + 2264, 87, 2219, 1557, 1558, 1559, 1560, 2159, 1395, 1396, + 1397, 1398, 2243, 1102, 1443, 1002, 1001, 1011, 1012, 1004, + 1005, 1006, 1007, 1008, 1009, 1010, 1003, 1510, 1850, 1013, + 1752, 86, 1552, 505, 1553, 1554, 1555, 1556, 88, 1592, + 1593, 1594, 87, 1541, 1596, 1598, 1523, 1835, 607, 1618, + 1563, 1564, 1565, 1566, 1545, 1102, 1102, 505, 1544, 1446, + 1447, 95, 2106, 505, 1240, 2154, 1102, 1240, 1493, 1240, + 989, 1540, 94, 1573, 93, 1741, 2152, 1616, 88, 1508, + 1617, 1102, 1579, 88, 2109, 1102, 1528, 1958, 641, 2014, + 2013, 641, 584, 1527, 2010, 2011, 1102, 2104, 1444, 1445, + 518, 1760, 1450, 1453, 1454, 1543, 1617, 505, 1542, 1429, + 2010, 2009, 1760, 1102, 1429, 1429, 1691, 1102, 1672, 1868, + 1202, 1852, 1603, 1846, 1847, 1741, 1740, 2269, 1466, 1781, + 1781, 1469, 1470, 1501, 1502, 1989, 1102, 989, 1102, 94, + 177, 1102, 1752, 177, 1672, 1574, 177, 1587, 1202, 1201, + 176, 506, 1490, 177, 1585, 1584, 1741, 176, 1569, 1570, + 1535, 177, 176, 176, 1610, 1595, 176, 1613, 176, 1614, + 829, 1759, 1626, 177, 176, 1609, 1760, 1574, 1608, 1147, + 1146, 176, 1737, 1628, 1627, 2012, 1529, 1714, 1630, 1631, + 1713, 1612, 1782, 1782, 1691, 506, 830, 88, 506, 177, + 506, 1784, 1672, 1617, 1600, 1503, 1237, 1691, 1106, 176, + 505, 1473, 1385, 2104, 1331, 1133, 812, 811, 997, 1575, + 1000, 2139, 81, 2231, 1271, 1760, 1014, 1015, 1016, 1017, + 1018, 1019, 1020, 1636, 998, 999, 996, 1002, 1001, 1011, + 1012, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, 1109, + 597, 1013, 2211, 1406, 1691, 1011, 1012, 1004, 1005, 1006, + 1007, 1008, 1009, 1010, 1003, 1663, 1664, 1013, 2131, 1204, + 1666, 2140, 2141, 2142, 1272, 1273, 1274, 1572, 1828, 1667, + 2045, 2006, 1853, 1656, 1568, 1562, 1404, 1561, 1319, 1413, + 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, + 1424, 1425, 1426, 1427, 176, 1232, 1228, 1200, 107, 2143, + 1110, 1268, 176, 1829, 894, 2116, 2117, 1102, 2048, 2310, + 505, 2232, 2322, 1583, 2286, 1829, 1670, 81, 2119, 2029, + 2028, 1746, 2027, 1958, 1839, 1407, 1765, 1768, 1769, 1770, + 1766, 1742, 1767, 1771, 1463, 1680, 2116, 2117, 1657, 1756, + 1378, 2122, 176, 176, 2121, 1977, 2144, 2145, 1269, 1270, + 34, 1976, 1980, 1462, 2306, 1497, 1462, 1981, 1791, 1776, + 1002, 1001, 1011, 1012, 1004, 1005, 1006, 1007, 1008, 1009, + 1010, 1003, 1489, 2110, 1013, 2033, 1978, 1103, 1472, 1100, + 1096, 1979, 1938, 1708, 1738, 1937, 1813, 1814, 1982, 2097, + 1769, 1770, 1950, 1952, 1097, 1079, 1720, 2096, 2252, 1728, + 2190, 1953, 1775, 2192, 505, 611, 2100, 1492, 1947, 176, + 1739, 1330, 586, 612, 1749, 1810, 176, 1548, 1833, 1487, + 1488, 1099, 505, 1098, 1734, 1456, 1779, 859, 505, 1786, + 858, 1783, 1240, 1240, 88, 2058, 1828, 1892, 505, 1457, + 962, 86, 1795, 1861, 1860, 1845, 86, 1831, 1579, 114, + 1865, 1856, 87, 88, 1794, 2102, 2025, 87, 1505, 1506, + 1660, 176, 176, 176, 176, 176, 2266, 2227, 1809, 1710, + 95, 1815, 1816, 1817, 1818, 1821, 1773, 176, 176, 1494, + 1649, 94, 1830, 93, 1676, 1836, 93, 1689, 1690, 2198, + 1863, 2196, 88, 176, 1443, 1840, 1841, 1842, 1936, 1220, + 619, 620, 95, 2187, 2195, 1706, 1935, 1442, 2188, 2101, + 2099, 2030, 1118, 94, 505, 93, 1601, 618, 1429, 94, + 2090, 1752, 1737, 1862, 1765, 1768, 1769, 1770, 1766, 1905, + 1767, 1771, 1854, 1855, 95, 2312, 2311, 2312, 1703, 177, + 1700, 177, 1864, 1127, 177, 94, 1119, 2258, 505, 100, + 101, 2001, 609, 97, 593, 82, 1, 1924, 176, 2288, + 1884, 474, 505, 1474, 1077, 488, 2284, 1306, 1296, 2162, + 2228, 505, 506, 506, 506, 1897, 2036, 1577, 505, 505, + 1940, 176, 176, 176, 176, 176, 1905, 1941, 1955, 1964, + 506, 506, 1917, 176, 1918, 599, 820, 1903, 176, 1970, + 139, 176, 1538, 1961, 176, 176, 176, 1539, 1961, 1904, + 2301, 1890, 104, 783, 1891, 1089, 103, 823, 921, 1602, + 2155, 1811, 1549, 1153, 1151, 1939, 1152, 1150, 1155, 176, + 1990, 1942, 1154, 1991, 1149, 1100, 1096, 1379, 600, 502, + 1772, 174, 1142, 1120, 1972, 1973, 601, 1975, 1971, 860, + 1097, 1974, 464, 2015, 2023, 1983, 1634, 470, 1987, 1021, + 176, 89, 1992, 1933, 1340, 1988, 1934, 505, 1787, 638, + 177, 631, 1966, 2094, 505, 1093, 1094, 1099, 1946, 1098, + 176, 1948, 1744, 1951, 1944, 2251, 2189, 177, 2265, 1546, + 176, 1681, 1682, 1683, 1969, 2020, 2021, 2035, 2032, 2018, + 2037, 1116, 1707, 2019, 176, 1046, 506, 176, 1998, 1458, + 177, 1520, 527, 1482, 1399, 506, 542, 2059, 1926, 539, + 540, 506, 1730, 1579, 1753, 2040, 2039, 2007, 2008, 2034, + 995, 525, 2031, 519, 1128, 1687, 1764, 1762, 1761, 1688, + 1658, 1524, 2118, 2114, 1518, 1736, 2053, 1694, 1695, 2054, + 1547, 1871, 2042, 1701, 974, 176, 1704, 1705, 1092, 514, + 795, 1956, 1455, 2237, 1711, 1675, 1712, 2078, 1091, 1715, + 1716, 1717, 1718, 1719, 1492, 2063, 2064, 2066, 2065, 60, + 38, 2067, 509, 2069, 2088, 1729, 2318, 172, 965, 625, + 32, 31, 30, 29, 28, 23, 22, 21, 20, 2056, + 2057, 19, 25, 18, 17, 2091, 16, 109, 2098, 47, + 176, 114, 44, 42, 116, 2113, 115, 45, 2103, 41, + 897, 39, 27, 26, 156, 15, 14, 13, 12, 11, + 10, 9, 2120, 2125, 5, 2127, 2128, 4, 2123, 2126, + 968, 24, 2133, 2, 2135, 176, 0, 0, 176, 176, + 176, 505, 0, 0, 0, 0, 0, 0, 2130, 0, + 0, 0, 0, 0, 0, 0, 1793, 177, 0, 2163, + 505, 505, 505, 0, 2150, 0, 0, 0, 0, 153, + 0, 154, 0, 0, 0, 2168, 0, 0, 0, 0, + 171, 0, 0, 0, 0, 2158, 0, 2167, 0, 506, + 0, 0, 0, 0, 505, 505, 505, 176, 0, 0, + 0, 0, 0, 0, 0, 2174, 506, 506, 0, 506, + 0, 506, 506, 2185, 506, 506, 506, 506, 506, 506, + 505, 0, 505, 0, 0, 2205, 2080, 554, 0, 506, + 1964, 2207, 2184, 177, 1964, 2193, 34, 2203, 0, 2194, + 2201, 0, 505, 1961, 2182, 2183, 157, 0, 0, 177, + 0, 593, 0, 0, 2209, 162, 1899, 1900, 0, 0, + 506, 2214, 177, 593, 518, 2215, 2213, 0, 0, 0, + 1919, 1920, 505, 1921, 1922, 175, 0, 177, 460, 0, + 0, 500, 1901, 1902, 1928, 1929, 2224, 2230, 460, 2223, + 2221, 0, 0, 177, 0, 0, 460, 0, 0, 0, + 177, 0, 0, 0, 0, 0, 0, 2248, 606, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 506, 506, + 506, 2250, 505, 0, 624, 2259, 624, 2247, 1964, 0, + 0, 0, 0, 0, 460, 0, 2261, 2217, 0, 2218, + 2263, 0, 505, 176, 2268, 2262, 0, 0, 177, 0, + 1967, 0, 0, 0, 505, 34, 0, 0, 0, 0, + 0, 149, 0, 0, 0, 2271, 0, 1985, 1986, 0, + 2000, 505, 0, 0, 0, 0, 0, 0, 0, 0, + 505, 505, 0, 2295, 2287, 2292, 0, 2300, 2281, 0, + 0, 0, 0, 0, 34, 2230, 2302, 1961, 0, 0, + 2309, 2216, 0, 0, 2202, 0, 0, 0, 506, 0, + 2315, 0, 0, 0, 0, 2210, 0, 0, 2212, 2321, + 0, 0, 0, 0, 0, 2328, 0, 0, 0, 0, + 0, 0, 0, 2330, 0, 0, 0, 0, 0, 506, + 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 1002, 1001, 1011, 1012, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1003, 0, 0, 1013, 2060, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 0, 0, 506, 0, 0, 0, 2249, 518, 0, 0, + 0, 0, 177, 0, 0, 506, 0, 2061, 0, 2062, + 177, 0, 177, 0, 177, 177, 506, 0, 0, 506, + 2071, 2072, 0, 0, 0, 0, 0, 0, 0, 0, + 506, 0, 0, 0, 0, 0, 2086, 0, 0, 0, + 0, 0, 0, 150, 155, 152, 158, 159, 160, 161, + 163, 164, 165, 166, 0, 0, 0, 0, 0, 167, + 168, 169, 170, 0, 0, 0, 0, 0, 2107, 2108, + 0, 0, 2112, 2081, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 506, 172, 2132, 0, 0, + 2124, 0, 0, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 506, + 114, 0, 0, 0, 0, 506, 2076, 0, 0, 0, + 0, 0, 0, 156, 492, 0, 0, 1002, 1001, 1011, + 1012, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, 2153, + 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2169, 2170, 2171, 2172, 2173, 506, + 0, 0, 2176, 2177, 479, 0, 0, 0, 0, 2075, + 0, 0, 0, 478, 0, 0, 0, 0, 153, 0, + 154, 0, 0, 0, 476, 0, 2179, 0, 0, 171, + 0, 0, 0, 0, 460, 0, 460, 0, 0, 460, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 177, + 0, 0, 0, 0, 177, 177, 0, 0, 177, 0, + 177, 0, 473, 0, 0, 0, 177, 0, 0, 0, + 0, 487, 0, 177, 1002, 1001, 1011, 1012, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1003, 484, 0, 1013, 0, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, + 0, 177, 506, 0, 162, 0, 2074, 0, 0, 0, + 0, 0, 2233, 2234, 2235, 2236, 0, 2240, 493, 2241, + 2242, 2244, 0, 0, 0, 2245, 2246, 1002, 1001, 1011, + 1012, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, 0, + 0, 1013, 0, 0, 0, 0, 463, 0, 465, 480, + 0, 495, 0, 494, 469, 2073, 467, 471, 481, 472, + 0, 466, 0, 477, 553, 460, 468, 482, 483, 485, + 499, 498, 486, 0, 475, 496, 0, 0, 0, 0, + 2273, 0, 606, 0, 0, 0, 0, 0, 2296, 0, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, + 0, 0, 0, 0, 177, 460, 0, 0, 0, 0, + 149, 0, 506, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 504, 1002, 1001, 1011, 1012, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1003, 0, 0, 1013, 2316, + 2317, 0, 0, 0, 177, 177, 1002, 1001, 1011, 1012, + 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, 0, 0, + 1013, 0, 0, 0, 0, 0, 0, 639, 0, 0, + 787, 0, 794, 1002, 1001, 1011, 1012, 1004, 1005, 1006, + 1007, 1008, 1009, 1010, 1003, 0, 0, 1013, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 0, 0, 0, 506, 0, 0, 0, + 0, 177, 0, 0, 0, 0, 0, 490, 177, 0, + 0, 1898, 0, 0, 506, 0, 0, 0, 0, 0, + 506, 0, 491, 0, 0, 0, 0, 0, 0, 0, + 506, 1002, 1001, 1011, 1012, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1003, 0, 0, 1013, 0, 0, 0, 0, + 0, 0, 460, 177, 177, 177, 177, 177, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 177, 0, 150, 155, 152, 158, 159, 160, 161, 163, + 164, 165, 166, 0, 0, 177, 0, 1686, 167, 168, + 169, 170, 0, 0, 0, 0, 0, 1243, 0, 0, + 0, 0, 0, 0, 0, 0, 506, 1002, 1001, 1011, + 1012, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1003, 0, + 0, 1013, 1243, 1243, 0, 0, 0, 0, 460, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 506, 0, 0, 0, 1294, 0, 0, 0, 0, 0, + 177, 0, 0, 0, 506, 0, 0, 460, 0, 0, + 0, 0, 0, 506, 0, 0, 0, 0, 0, 0, + 506, 506, 1339, 177, 177, 177, 177, 177, 0, 0, + 0, 0, 0, 0, 0, 177, 0, 0, 460, 0, + 177, 0, 0, 177, 0, 460, 177, 177, 177, 0, + 0, 0, 0, 0, 1362, 1363, 460, 460, 460, 460, + 460, 460, 460, 0, 0, 0, 0, 0, 0, 1080, + 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 460, 0, 0, 0, 0, 0, 0, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 506, + 0, 585, 73, 0, 0, 0, 506, 0, 0, 0, + 459, 0, 177, 0, 0, 0, 0, 0, 0, 0, + 508, 0, 177, 0, 0, 1170, 0, 0, 589, 0, + 0, 0, 0, 0, 0, 0, 177, 0, 0, 177, + 0, 0, 0, 0, 624, 1339, 624, 624, 0, 0, + 624, 624, 624, 0, 0, 0, 1243, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 791, 0, 0, 0, + 0, 0, 0, 596, 0, 73, 624, 624, 624, 624, + 624, 0, 0, 0, 639, 639, 639, 177, 1294, 0, + 0, 0, 0, 596, 0, 0, 0, 0, 0, 0, + 624, 0, 964, 966, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 606, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 460, 0, 72, + 36, 37, 74, 1339, 0, 460, 0, 460, 0, 460, + 1526, 0, 177, 0, 0, 0, 0, 0, 1158, 78, + 0, 0, 0, 40, 66, 67, 0, 64, 68, 0, + 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, + 177, 177, 177, 506, 0, 0, 0, 0, 0, 0, + 0, 1171, 0, 0, 0, 53, 0, 0, 0, 0, + 0, 0, 506, 506, 506, 0, 81, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1123, 0, + 0, 0, 0, 0, 0, 0, 0, 639, 0, 0, + 0, 0, 0, 1143, 0, 0, 506, 506, 506, 177, + 0, 0, 1184, 1187, 1188, 1189, 1190, 1191, 1192, 0, + 1193, 1194, 1195, 1196, 1197, 1172, 1173, 1174, 1175, 1156, + 1157, 1185, 506, 1159, 506, 1160, 1161, 1162, 1163, 1164, + 1165, 1166, 1167, 1168, 1169, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 0, 506, 43, 46, 49, 48, 51, + 0, 63, 0, 0, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 506, 0, 52, 77, 76, 0, + 0, 61, 62, 50, 0, 0, 0, 460, 0, 0, + 0, 0, 0, 0, 460, 0, 0, 0, 0, 460, + 460, 0, 0, 460, 0, 1661, 0, 0, 0, 0, + 1186, 460, 0, 0, 0, 0, 0, 0, 460, 0, + 0, 0, 54, 55, 506, 56, 57, 58, 59, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 506, 177, 460, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 506, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 787, 0, 506, 0, 0, 898, 0, 903, 0, + 0, 905, 506, 506, 1242, 0, 0, 0, 1248, 1248, + 0, 1248, 0, 1248, 1248, 0, 1257, 1248, 1248, 1248, + 1248, 1248, 0, 0, 0, 624, 624, 0, 0, 1242, + 1242, 787, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 624, 0, 0, 0, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 460, 1318, 0, 0, 0, 0, 0, 0, 1294, + 0, 957, 957, 957, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1022, 596, 0, 0, 0, 460, + 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 639, 639, 639, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1036, 0, 0, 0, 1038, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 0, 1048, 1050, + 1053, 1053, 1053, 1050, 1053, 1053, 1050, 1053, 1066, 1067, + 1068, 1069, 1070, 1071, 1072, 0, 0, 1130, 0, 0, + 0, 1081, 0, 0, 596, 0, 460, 0, 596, 0, + 0, 0, 0, 1843, 596, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1339, 0, 0, 0, 0, 0, 0, + 1435, 0, 639, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1242, 0, 0, 0, 0, 460, 460, + 460, 460, 460, 0, 0, 0, 0, 0, 0, 0, + 0, 1464, 1465, 0, 460, 460, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 624, + 624, 0, 0, 0, 1496, 0, 0, 0, 0, 0, + 172, 0, 0, 0, 0, 0, 0, 1123, 0, 0, + 639, 1844, 0, 0, 0, 0, 0, 0, 639, 0, + 0, 639, 0, 0, 114, 0, 136, 0, 0, 0, + 0, 0, 787, 0, 1148, 460, 0, 156, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1243, 0, 0, 0, 0, 1243, 460, 460, + 460, 460, 460, 0, 0, 0, 0, 0, 146, 0, + 1984, 0, 0, 135, 0, 460, 0, 0, 460, 0, + 0, 460, 1993, 1339, 0, 0, 0, 794, 0, 0, + 0, 0, 153, 0, 154, 0, 0, 0, 0, 1223, + 1224, 145, 144, 171, 0, 0, 460, 0, 0, 0, + 1279, 787, 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, 460, 0, 1320, + 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 460, 140, 1225, + 147, 787, 1222, 0, 141, 142, 0, 460, 0, 157, + 1349, 0, 0, 0, 0, 0, 0, 1353, 162, 0, + 0, 460, 0, 0, 460, 0, 0, 0, 1364, 1365, + 1366, 1367, 1368, 1369, 1370, 0, 0, 0, 172, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1219, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 114, 0, 136, 1388, 0, 0, 0, 0, + 0, 0, 460, 0, 0, 156, 0, 957, 957, 957, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1669, 0, 146, 0, 0, 0, + 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 149, 0, 0, 460, 0, 0, + 153, 0, 154, 0, 0, 0, 0, 1223, 1224, 145, + 144, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 0, 137, 0, 0, 0, 1345, 0, - 0, 0, 0, 459, 0, 1349, 0, 0, 1735, 0, - 0, 0, 0, 0, 0, 0, 1360, 1361, 1362, 1363, - 1364, 1365, 1366, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1238, 0, 459, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1239, 0, 0, 0, 0, - 0, 0, 0, 1126, 0, 459, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 459, 0, 0, 0, 0, - 0, 0, 0, 2231, 517, 0, 0, 0, 0, 459, - 0, 0, 459, 0, 0, 0, 1964, 0, 73, 0, - 1964, 0, 0, 0, 0, 149, 154, 151, 157, 158, - 159, 160, 162, 163, 164, 165, 0, 0, 0, 0, - 0, 166, 167, 168, 169, 0, 1836, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 459, - 0, 0, 0, 0, 1848, 0, 0, 0, 0, 0, - 1854, 0, 0, 0, 0, 0, 0, 0, 631, 0, - 1860, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 171, 1239, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1215, 0, 1964, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 113, 0, 135, 0, - 1496, 2247, 0, 0, 0, 0, 73, 0, 1500, 155, - 1503, 0, 0, 0, 0, 0, 0, 0, 0, 1523, - 0, 459, 0, 0, 459, 459, 459, 0, 0, 0, - 0, 0, 0, 0, 0, 631, 0, 0, 0, 0, - 145, 0, 0, 73, 0, 134, 0, 0, 0, 0, + 0, 0, 460, 0, 0, 460, 460, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 152, 0, 153, 0, 0, 1244, - 0, 1219, 1220, 144, 143, 170, 0, 0, 0, 0, - 0, 0, 0, 0, 1290, 0, 0, 0, 0, 631, - 0, 0, 0, 1238, 0, 0, 1967, 1244, 0, 0, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 137, 0, 0, 138, 140, 1225, 147, 0, + 1222, 0, 141, 142, 0, 0, 0, 157, 0, 1507, + 0, 0, 0, 0, 1731, 0, 162, 1511, 0, 1514, + 0, 0, 1388, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 1221, 146, 0, 1218, 0, 140, 141, 0, 0, - 0, 156, 0, 0, 0, 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, + 0, 0, 0, 0, 0, 0, 150, 155, 152, 158, + 159, 160, 161, 163, 164, 165, 166, 0, 1834, 0, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 149, 0, 0, 0, 1496, 0, 0, 0, + 0, 0, 1851, 0, 0, 0, 0, 0, 0, 0, + 639, 0, 1857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 779, 0, 0, - 1238, 0, 0, 0, 1848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1126, 0, 0, 0, 0, 0, 459, 1650, 0, - 0, 0, 0, 1659, 1660, 0, 0, 1664, 0, 0, - 0, 0, 0, 0, 0, 1667, 0, 0, 0, 0, - 0, 0, 1670, 1239, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 460, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1673, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 137, 0, 0, 138, 0, 0, 1243, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1388, + 0, 0, 0, 0, 0, 0, 1645, 0, 639, 0, + 0, 1654, 1655, 0, 0, 1659, 0, 0, 0, 0, + 0, 0, 0, 1662, 0, 0, 0, 0, 0, 0, + 1665, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1248, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1943, 0, 1668, 0, + 0, 0, 0, 0, 0, 639, 0, 0, 0, 1242, + 0, 0, 1968, 1248, 1242, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 150, 155, 152, 158, 159, 160, + 161, 163, 164, 165, 166, 0, 0, 0, 0, 0, + 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, - 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, - 1848, 0, 0, 0, 136, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1848, 2136, 0, 0, 0, 0, 0, 0, + 0, 787, 0, 1692, 1242, 0, 0, 0, 1496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2150, 2151, 2152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2166, 2166, 2166, 0, - 0, 0, 1783, 0, 0, 0, 0, 0, 149, 154, - 151, 157, 158, 159, 160, 162, 163, 164, 165, 0, - 2190, 0, 2192, 0, 166, 167, 168, 169, 1848, 0, - 0, 0, 0, 0, 1848, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 631, 0, 0, 0, 1839, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1878, 1879, 1880, 1881, 1882, 0, 0, 0, 0, - 0, 1848, 0, 0, 0, 0, 0, 1126, 1888, 0, - 0, 0, 0, 2257, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, - 2262, 0, 0, 0, 0, 0, 0, 631, 631, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1999, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2020, 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, 0, 0, 0, 0, 0, 2036, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2047, 0, 0, 2050, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2082, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 757, 743, 403, 0, 692, 760, 663, 680, 770, - 683, 686, 726, 642, 705, 327, 677, 0, 667, 638, - 673, 639, 665, 694, 234, 662, 745, 708, 759, 285, - 231, 644, 668, 341, 682, 186, 728, 379, 219, 294, - 292, 408, 245, 237, 233, 218, 269, 300, 339, 397, - 333, 766, 289, 715, 2131, 388, 312, 2132, 2133, 2134, - 696, 749, 703, 739, 691, 727, 652, 714, 761, 678, - 723, 762, 275, 217, 185, 324, 389, 249, 0, 0, - 0, 0, 177, 178, 179, 0, 2282, 2283, 0, 0, - 0, 0, 0, 208, 0, 215, 720, 756, 675, 722, - 229, 273, 236, 228, 405, 767, 748, 0, 0, 201, - 758, 698, 725, 773, 637, 717, 0, 640, 643, 769, - 752, 671, 239, 0, 0, 0, 0, 0, 0, 0, - 695, 704, 736, 689, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 713, 0, 0, 0, 648, 641, - 0, 0, 0, 0, 693, 0, 0, 0, 651, 0, - 670, 737, 0, 635, 257, 645, 313, 0, 741, 751, - 690, 437, 755, 688, 687, 732, 649, 747, 681, 284, - 647, 281, 181, 197, 0, 679, 323, 362, 368, 746, - 666, 674, 220, 672, 366, 337, 422, 204, 247, 359, - 342, 364, 712, 730, 365, 290, 410, 354, 420, 438, - 439, 227, 317, 428, 401, 434, 450, 198, 224, 331, - 394, 425, 385, 310, 406, 407, 280, 384, 255, 184, - 288, 444, 196, 374, 212, 189, 396, 418, 209, 377, - 0, 0, 452, 191, 416, 393, 307, 277, 278, 190, - 2252, 358, 232, 253, 222, 326, 413, 414, 221, 453, - 200, 433, 193, 951, 432, 319, 409, 417, 308, 299, - 192, 415, 306, 298, 283, 243, 264, 352, 293, 353, - 265, 315, 314, 316, 0, 187, 0, 390, 426, 454, - 205, 206, 207, 661, 242, 246, 252, 254, 260, 261, - 268, 286, 330, 351, 349, 355, 742, 404, 421, 429, - 436, 442, 443, 445, 446, 447, 448, 449, 318, 267, - 386, 282, 291, 734, 772, 336, 367, 210, 424, 387, - 656, 660, 654, 655, 706, 707, 657, 763, 764, 765, - 738, 650, 0, 658, 659, 0, 744, 753, 754, 711, - 180, 194, 287, 768, 356, 250, 451, 431, 427, 636, - 653, 226, 664, 0, 0, 676, 684, 685, 697, 699, - 700, 701, 702, 710, 718, 719, 721, 729, 731, 733, - 735, 740, 750, 771, 182, 183, 195, 203, 213, 225, - 240, 248, 258, 263, 266, 270, 271, 274, 279, 296, - 301, 302, 303, 304, 320, 321, 322, 325, 328, 329, - 332, 334, 335, 338, 344, 345, 346, 347, 348, 350, - 357, 361, 369, 370, 371, 372, 373, 375, 376, 380, - 381, 382, 383, 391, 395, 411, 412, 423, 435, 440, - 259, 419, 441, 0, 295, 709, 716, 297, 244, 262, - 272, 724, 430, 392, 199, 363, 251, 188, 216, 202, - 223, 238, 241, 276, 305, 311, 340, 343, 256, 235, - 214, 360, 211, 378, 398, 399, 400, 402, 309, 230, - 757, 743, 403, 0, 692, 760, 663, 680, 770, 683, - 686, 726, 642, 705, 327, 677, 0, 667, 638, 673, - 639, 665, 694, 234, 662, 745, 708, 759, 285, 231, - 644, 668, 341, 682, 186, 728, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 766, 289, 715, 0, 388, 312, 0, 0, 0, 696, - 749, 703, 739, 691, 727, 652, 714, 761, 678, 723, - 762, 275, 217, 185, 324, 389, 249, 0, 0, 0, - 0, 177, 178, 179, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 0, 215, 720, 756, 675, 722, 229, - 273, 236, 228, 405, 767, 748, 0, 0, 201, 758, - 698, 725, 773, 637, 717, 0, 640, 643, 769, 752, - 671, 239, 0, 0, 0, 0, 0, 0, 0, 695, - 704, 736, 689, 0, 0, 0, 0, 0, 0, 1955, - 0, 669, 0, 713, 0, 0, 0, 648, 641, 0, - 0, 0, 0, 693, 0, 0, 0, 651, 0, 670, - 737, 0, 635, 257, 645, 313, 0, 741, 751, 690, - 437, 755, 688, 687, 732, 649, 747, 681, 284, 647, - 281, 181, 197, 0, 679, 323, 362, 368, 746, 666, - 674, 220, 672, 366, 337, 422, 204, 247, 359, 342, - 364, 712, 730, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 951, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 661, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 742, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 734, 772, 336, 367, 210, 424, 387, 656, - 660, 654, 655, 706, 707, 657, 763, 764, 765, 738, - 650, 0, 658, 659, 0, 744, 753, 754, 711, 180, - 194, 287, 768, 356, 250, 451, 431, 427, 636, 653, - 226, 664, 0, 0, 676, 684, 685, 697, 699, 700, - 701, 702, 710, 718, 719, 721, 729, 731, 733, 735, - 740, 750, 771, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 709, 716, 297, 244, 262, 272, - 724, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 757, - 743, 403, 0, 692, 760, 663, 680, 770, 683, 686, - 726, 642, 705, 327, 677, 0, 667, 638, 673, 639, - 665, 694, 234, 662, 745, 708, 759, 285, 231, 644, - 668, 341, 682, 186, 728, 379, 219, 294, 292, 408, - 245, 237, 233, 218, 269, 300, 339, 397, 333, 766, - 289, 715, 0, 388, 312, 0, 0, 0, 696, 749, - 703, 739, 691, 727, 652, 714, 761, 678, 723, 762, - 275, 217, 185, 324, 389, 249, 0, 0, 0, 0, - 177, 178, 179, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 0, 215, 720, 756, 675, 722, 229, 273, - 236, 228, 405, 767, 748, 0, 0, 201, 758, 698, - 725, 773, 637, 717, 0, 640, 643, 769, 752, 671, - 239, 0, 0, 0, 0, 0, 0, 0, 695, 704, - 736, 689, 0, 0, 0, 0, 0, 0, 1787, 0, - 669, 0, 713, 0, 0, 0, 648, 641, 0, 0, - 0, 0, 693, 0, 0, 0, 651, 0, 670, 737, - 0, 635, 257, 645, 313, 0, 741, 751, 690, 437, - 755, 688, 687, 732, 649, 747, 681, 284, 647, 281, - 181, 197, 0, 679, 323, 362, 368, 746, 666, 674, - 220, 672, 366, 337, 422, 204, 247, 359, 342, 364, - 712, 730, 365, 290, 410, 354, 420, 438, 439, 227, - 317, 428, 401, 434, 450, 198, 224, 331, 394, 425, - 385, 310, 406, 407, 280, 384, 255, 184, 288, 444, - 196, 374, 212, 189, 396, 418, 209, 377, 0, 0, - 452, 191, 416, 393, 307, 277, 278, 190, 0, 358, - 232, 253, 222, 326, 413, 414, 221, 453, 200, 433, - 193, 951, 432, 319, 409, 417, 308, 299, 192, 415, - 306, 298, 283, 243, 264, 352, 293, 353, 265, 315, - 314, 316, 0, 187, 0, 390, 426, 454, 205, 206, - 207, 661, 242, 246, 252, 254, 260, 261, 268, 286, - 330, 351, 349, 355, 742, 404, 421, 429, 436, 442, - 443, 445, 446, 447, 448, 449, 318, 267, 386, 282, - 291, 734, 772, 336, 367, 210, 424, 387, 656, 660, - 654, 655, 706, 707, 657, 763, 764, 765, 738, 650, - 0, 658, 659, 0, 744, 753, 754, 711, 180, 194, - 287, 768, 356, 250, 451, 431, 427, 636, 653, 226, - 664, 0, 0, 676, 684, 685, 697, 699, 700, 701, - 702, 710, 718, 719, 721, 729, 731, 733, 735, 740, - 750, 771, 182, 183, 195, 203, 213, 225, 240, 248, - 258, 263, 266, 270, 271, 274, 279, 296, 301, 302, - 303, 304, 320, 321, 322, 325, 328, 329, 332, 334, - 335, 338, 344, 345, 346, 347, 348, 350, 357, 361, - 369, 370, 371, 372, 373, 375, 376, 380, 381, 382, - 383, 391, 395, 411, 412, 423, 435, 440, 259, 419, - 441, 0, 295, 709, 716, 297, 244, 262, 272, 724, - 430, 392, 199, 363, 251, 188, 216, 202, 223, 238, - 241, 276, 305, 311, 340, 343, 256, 235, 214, 360, - 211, 378, 398, 399, 400, 402, 309, 230, 757, 743, - 403, 0, 692, 760, 663, 680, 770, 683, 686, 726, - 642, 705, 327, 677, 0, 667, 638, 673, 639, 665, - 694, 234, 662, 745, 708, 759, 285, 231, 644, 668, - 341, 682, 186, 728, 379, 219, 294, 292, 408, 245, - 237, 233, 218, 269, 300, 339, 397, 333, 766, 289, - 715, 0, 388, 312, 0, 0, 0, 696, 749, 703, - 739, 691, 727, 652, 714, 761, 678, 723, 762, 275, - 217, 185, 324, 389, 249, 0, 0, 0, 0, 177, - 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 208, 0, 215, 720, 756, 675, 722, 229, 273, 236, - 228, 405, 767, 748, 0, 0, 201, 758, 698, 725, - 773, 637, 717, 0, 640, 643, 769, 752, 671, 239, - 0, 0, 0, 0, 0, 0, 0, 695, 704, 736, - 689, 0, 0, 0, 0, 0, 0, 1498, 0, 669, - 0, 713, 0, 0, 0, 648, 641, 0, 0, 0, - 0, 693, 0, 0, 0, 651, 0, 670, 737, 0, - 635, 257, 645, 313, 0, 741, 751, 690, 437, 755, - 688, 687, 732, 649, 747, 681, 284, 647, 281, 181, - 197, 0, 679, 323, 362, 368, 746, 666, 674, 220, - 672, 366, 337, 422, 204, 247, 359, 342, 364, 712, - 730, 365, 290, 410, 354, 420, 438, 439, 227, 317, - 428, 401, 434, 450, 198, 224, 331, 394, 425, 385, - 310, 406, 407, 280, 384, 255, 184, 288, 444, 196, - 374, 212, 189, 396, 418, 209, 377, 0, 0, 452, - 191, 416, 393, 307, 277, 278, 190, 0, 358, 232, - 253, 222, 326, 413, 414, 221, 453, 200, 433, 193, - 951, 432, 319, 409, 417, 308, 299, 192, 415, 306, - 298, 283, 243, 264, 352, 293, 353, 265, 315, 314, - 316, 0, 187, 0, 390, 426, 454, 205, 206, 207, - 661, 242, 246, 252, 254, 260, 261, 268, 286, 330, - 351, 349, 355, 742, 404, 421, 429, 436, 442, 443, - 445, 446, 447, 448, 449, 318, 267, 386, 282, 291, - 734, 772, 336, 367, 210, 424, 387, 656, 660, 654, - 655, 706, 707, 657, 763, 764, 765, 738, 650, 0, - 658, 659, 0, 744, 753, 754, 711, 180, 194, 287, - 768, 356, 250, 451, 431, 427, 636, 653, 226, 664, - 0, 0, 676, 684, 685, 697, 699, 700, 701, 702, - 710, 718, 719, 721, 729, 731, 733, 735, 740, 750, - 771, 182, 183, 195, 203, 213, 225, 240, 248, 258, - 263, 266, 270, 271, 274, 279, 296, 301, 302, 303, - 304, 320, 321, 322, 325, 328, 329, 332, 334, 335, - 338, 344, 345, 346, 347, 348, 350, 357, 361, 369, - 370, 371, 372, 373, 375, 376, 380, 381, 382, 383, - 391, 395, 411, 412, 423, 435, 440, 259, 419, 441, - 0, 295, 709, 716, 297, 244, 262, 272, 724, 430, - 392, 199, 363, 251, 188, 216, 202, 223, 238, 241, - 276, 305, 311, 340, 343, 256, 235, 214, 360, 211, - 378, 398, 399, 400, 402, 309, 230, 757, 743, 403, - 0, 692, 760, 663, 680, 770, 683, 686, 726, 642, - 705, 327, 677, 0, 667, 638, 673, 639, 665, 694, - 234, 662, 745, 708, 759, 285, 231, 644, 668, 341, - 682, 186, 728, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 766, 289, 715, - 0, 388, 312, 0, 0, 0, 696, 749, 703, 739, - 691, 727, 652, 714, 761, 678, 723, 762, 275, 217, - 185, 324, 389, 249, 0, 80, 0, 0, 177, 178, - 179, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 215, 720, 756, 675, 722, 229, 273, 236, 228, - 405, 767, 748, 0, 0, 201, 758, 698, 725, 773, - 637, 717, 0, 640, 643, 769, 752, 671, 239, 0, - 0, 0, 0, 0, 0, 0, 695, 704, 736, 689, - 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, - 713, 0, 0, 0, 648, 641, 0, 0, 0, 0, - 693, 0, 0, 0, 651, 0, 670, 737, 0, 635, - 257, 645, 313, 0, 741, 751, 690, 437, 755, 688, - 687, 732, 649, 747, 681, 284, 647, 281, 181, 197, - 0, 679, 323, 362, 368, 746, 666, 674, 220, 672, - 366, 337, 422, 204, 247, 359, 342, 364, 712, 730, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 951, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 661, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 742, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 734, - 772, 336, 367, 210, 424, 387, 656, 660, 654, 655, - 706, 707, 657, 763, 764, 765, 738, 650, 0, 658, - 659, 0, 744, 753, 754, 711, 180, 194, 287, 768, - 356, 250, 451, 431, 427, 636, 653, 226, 664, 0, - 0, 676, 684, 685, 697, 699, 700, 701, 702, 710, - 718, 719, 721, 729, 731, 733, 735, 740, 750, 771, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 709, 716, 297, 244, 262, 272, 724, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, 757, 743, 403, 0, - 692, 760, 663, 680, 770, 683, 686, 726, 642, 705, - 327, 677, 0, 667, 638, 673, 639, 665, 694, 234, - 662, 745, 708, 759, 285, 231, 644, 668, 341, 682, - 186, 728, 379, 219, 294, 292, 408, 245, 237, 233, - 218, 269, 300, 339, 397, 333, 766, 289, 715, 0, - 388, 312, 0, 0, 0, 696, 749, 703, 739, 691, - 727, 652, 714, 761, 678, 723, 762, 275, 217, 185, - 324, 389, 249, 0, 0, 0, 0, 177, 178, 179, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 215, 720, 756, 675, 722, 229, 273, 236, 228, 405, - 767, 748, 0, 0, 201, 758, 698, 725, 773, 637, - 717, 0, 640, 643, 769, 752, 671, 239, 0, 0, - 0, 0, 0, 0, 0, 695, 704, 736, 689, 0, - 0, 0, 0, 0, 0, 0, 0, 669, 0, 713, - 0, 0, 0, 648, 641, 0, 0, 0, 0, 693, - 0, 0, 0, 651, 0, 670, 737, 0, 635, 257, - 645, 313, 0, 741, 751, 690, 437, 755, 688, 687, - 732, 649, 747, 681, 284, 647, 281, 181, 197, 0, - 679, 323, 362, 368, 746, 666, 674, 220, 672, 366, - 337, 422, 204, 247, 359, 342, 364, 712, 730, 365, - 290, 410, 354, 420, 438, 439, 227, 317, 428, 401, - 434, 450, 198, 224, 331, 394, 425, 385, 310, 406, - 407, 280, 384, 255, 184, 288, 444, 196, 374, 212, - 189, 396, 418, 209, 377, 0, 0, 452, 191, 416, - 393, 307, 277, 278, 190, 0, 358, 232, 253, 222, - 326, 413, 414, 221, 453, 200, 433, 193, 951, 432, - 319, 409, 417, 308, 299, 192, 415, 306, 298, 283, - 243, 264, 352, 293, 353, 265, 315, 314, 316, 0, - 187, 0, 390, 426, 454, 205, 206, 207, 661, 242, - 246, 252, 254, 260, 261, 268, 286, 330, 351, 349, - 355, 742, 404, 421, 429, 436, 442, 443, 445, 446, - 447, 448, 449, 318, 267, 386, 282, 291, 734, 772, - 336, 367, 210, 424, 387, 656, 660, 654, 655, 706, - 707, 657, 763, 764, 765, 738, 650, 0, 658, 659, - 0, 744, 753, 754, 711, 180, 194, 287, 768, 356, - 250, 451, 431, 427, 636, 653, 226, 664, 0, 0, - 676, 684, 685, 697, 699, 700, 701, 702, 710, 718, - 719, 721, 729, 731, 733, 735, 740, 750, 771, 182, - 183, 195, 203, 213, 225, 240, 248, 258, 263, 266, - 270, 271, 274, 279, 296, 301, 302, 303, 304, 320, - 321, 322, 325, 328, 329, 332, 334, 335, 338, 344, - 345, 346, 347, 348, 350, 357, 361, 369, 370, 371, - 372, 373, 375, 376, 380, 381, 382, 383, 391, 395, - 411, 412, 423, 435, 440, 259, 419, 441, 0, 295, - 709, 716, 297, 244, 262, 272, 724, 430, 392, 199, - 363, 251, 188, 216, 202, 223, 238, 241, 276, 305, - 311, 340, 343, 256, 235, 214, 360, 211, 378, 398, - 399, 400, 402, 309, 230, 757, 743, 403, 0, 692, - 760, 663, 680, 770, 683, 686, 726, 642, 705, 327, - 677, 0, 667, 638, 673, 639, 665, 694, 234, 662, - 745, 708, 759, 285, 231, 644, 668, 341, 682, 186, - 728, 379, 219, 294, 292, 408, 245, 237, 233, 218, - 269, 300, 339, 397, 333, 766, 289, 715, 0, 388, - 312, 0, 0, 0, 696, 749, 703, 739, 691, 727, - 652, 714, 761, 678, 723, 762, 275, 217, 185, 324, - 389, 249, 0, 0, 0, 0, 177, 178, 179, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 0, 215, - 720, 756, 675, 722, 229, 273, 236, 228, 405, 767, - 748, 0, 0, 774, 758, 698, 725, 773, 637, 717, - 0, 640, 643, 769, 752, 671, 239, 0, 0, 0, - 0, 0, 0, 0, 695, 704, 736, 689, 0, 0, - 0, 0, 0, 0, 0, 0, 669, 0, 713, 0, - 0, 0, 648, 641, 0, 0, 0, 0, 693, 0, - 0, 0, 651, 0, 670, 737, 0, 635, 257, 645, - 313, 0, 741, 751, 690, 437, 755, 688, 687, 732, - 649, 747, 681, 284, 647, 281, 181, 197, 0, 679, - 323, 362, 368, 746, 666, 674, 220, 672, 366, 337, - 422, 204, 247, 359, 342, 364, 712, 730, 365, 290, - 410, 354, 420, 438, 439, 227, 317, 428, 401, 434, - 450, 198, 224, 331, 394, 425, 385, 310, 406, 407, - 280, 384, 255, 184, 288, 444, 196, 374, 212, 189, - 396, 418, 209, 377, 0, 0, 452, 191, 416, 393, - 307, 277, 278, 190, 0, 358, 232, 253, 222, 326, - 413, 414, 221, 453, 200, 433, 193, 646, 432, 319, - 409, 417, 308, 299, 192, 415, 306, 298, 283, 243, - 264, 352, 293, 353, 265, 315, 314, 316, 0, 187, - 0, 390, 426, 454, 205, 206, 207, 661, 242, 246, - 252, 254, 260, 261, 268, 286, 330, 351, 349, 355, - 742, 404, 421, 429, 436, 442, 443, 445, 446, 447, - 448, 449, 634, 628, 627, 282, 291, 734, 772, 336, - 367, 210, 424, 387, 656, 660, 654, 655, 706, 707, - 657, 763, 764, 765, 738, 650, 0, 658, 659, 0, - 744, 753, 754, 711, 180, 194, 287, 768, 356, 250, - 451, 431, 427, 636, 653, 226, 664, 0, 0, 676, - 684, 685, 697, 699, 700, 701, 702, 710, 718, 719, - 721, 729, 731, 733, 735, 740, 750, 771, 182, 183, - 195, 203, 213, 225, 240, 248, 258, 263, 266, 270, - 271, 274, 279, 296, 301, 302, 303, 304, 320, 321, - 322, 325, 328, 329, 332, 334, 335, 338, 344, 345, - 346, 347, 348, 350, 357, 361, 369, 370, 371, 372, - 373, 375, 376, 380, 381, 382, 383, 391, 395, 411, - 412, 423, 435, 440, 259, 419, 441, 0, 295, 709, - 716, 297, 244, 262, 272, 724, 430, 392, 199, 363, - 251, 188, 216, 202, 223, 238, 241, 276, 305, 311, - 340, 343, 256, 235, 214, 360, 211, 378, 398, 399, - 400, 402, 309, 230, 757, 743, 403, 0, 692, 760, - 663, 680, 770, 683, 686, 726, 642, 705, 327, 677, - 0, 667, 638, 673, 639, 665, 694, 234, 662, 745, - 708, 759, 285, 231, 644, 668, 341, 682, 186, 728, - 379, 219, 294, 292, 408, 245, 237, 233, 218, 269, - 300, 339, 397, 333, 766, 289, 715, 0, 388, 312, - 0, 0, 0, 696, 749, 703, 739, 691, 727, 652, - 714, 761, 678, 723, 762, 275, 217, 185, 324, 389, - 249, 0, 0, 0, 0, 177, 178, 179, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 215, 720, - 756, 675, 722, 229, 273, 236, 228, 405, 767, 748, - 0, 0, 774, 758, 698, 725, 773, 637, 717, 0, - 640, 643, 769, 752, 671, 239, 0, 0, 0, 0, - 0, 0, 0, 695, 704, 736, 689, 0, 0, 0, - 0, 0, 0, 0, 0, 669, 0, 713, 0, 0, - 0, 648, 641, 0, 0, 0, 0, 693, 0, 0, - 0, 651, 0, 670, 737, 0, 635, 257, 645, 313, - 0, 741, 751, 690, 437, 755, 688, 687, 732, 649, - 747, 681, 284, 647, 281, 181, 197, 0, 679, 323, - 362, 368, 746, 666, 674, 220, 672, 366, 337, 422, - 204, 247, 359, 342, 364, 712, 730, 365, 290, 410, - 354, 420, 438, 439, 227, 317, 428, 401, 434, 450, - 198, 224, 331, 394, 425, 385, 310, 406, 407, 280, - 384, 255, 184, 288, 444, 196, 374, 212, 189, 396, - 1130, 209, 377, 0, 0, 452, 191, 416, 393, 307, - 277, 278, 190, 0, 358, 232, 253, 222, 326, 413, - 414, 221, 453, 200, 433, 193, 646, 432, 319, 409, - 417, 308, 299, 192, 415, 306, 298, 283, 243, 264, - 352, 293, 353, 265, 315, 314, 316, 0, 187, 0, - 390, 426, 454, 205, 206, 207, 661, 242, 246, 252, - 254, 260, 261, 268, 286, 330, 351, 349, 355, 742, - 404, 421, 429, 436, 442, 443, 445, 446, 447, 448, - 449, 634, 628, 627, 282, 291, 734, 772, 336, 367, - 210, 424, 387, 656, 660, 654, 655, 706, 707, 657, - 763, 764, 765, 738, 650, 0, 658, 659, 0, 744, - 753, 754, 711, 180, 194, 287, 768, 356, 250, 451, - 431, 427, 636, 653, 226, 664, 0, 0, 676, 684, - 685, 697, 699, 700, 701, 702, 710, 718, 719, 721, - 729, 731, 733, 735, 740, 750, 771, 182, 183, 195, - 203, 213, 225, 240, 248, 258, 263, 266, 270, 271, - 274, 279, 296, 301, 302, 303, 304, 320, 321, 322, - 325, 328, 329, 332, 334, 335, 338, 344, 345, 346, - 347, 348, 350, 357, 361, 369, 370, 371, 372, 373, - 375, 376, 380, 381, 382, 383, 391, 395, 411, 412, - 423, 435, 440, 259, 419, 441, 0, 295, 709, 716, - 297, 244, 262, 272, 724, 430, 392, 199, 363, 251, - 188, 216, 202, 223, 238, 241, 276, 305, 311, 340, - 343, 256, 235, 214, 360, 211, 378, 398, 399, 400, - 402, 309, 230, 757, 743, 403, 0, 692, 760, 663, - 680, 770, 683, 686, 726, 642, 705, 327, 677, 0, - 667, 638, 673, 639, 665, 694, 234, 662, 745, 708, - 759, 285, 231, 644, 668, 341, 682, 186, 728, 379, - 219, 294, 292, 408, 245, 237, 233, 218, 269, 300, - 339, 397, 333, 766, 289, 715, 0, 388, 312, 0, - 0, 0, 696, 749, 703, 739, 691, 727, 652, 714, - 761, 678, 723, 762, 275, 217, 185, 324, 389, 249, - 0, 0, 0, 0, 177, 178, 179, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 0, 215, 720, 756, - 675, 722, 229, 273, 236, 228, 405, 767, 748, 0, - 0, 774, 758, 698, 725, 773, 637, 717, 0, 640, - 643, 769, 752, 671, 239, 0, 0, 0, 0, 0, - 0, 0, 695, 704, 736, 689, 0, 0, 0, 0, - 0, 0, 0, 0, 669, 0, 713, 0, 0, 0, - 648, 641, 0, 0, 0, 0, 693, 0, 0, 0, - 651, 0, 670, 737, 0, 635, 257, 645, 313, 0, - 741, 751, 690, 437, 755, 688, 687, 732, 649, 747, - 681, 284, 647, 281, 181, 197, 0, 679, 323, 362, - 368, 746, 666, 674, 220, 672, 366, 337, 422, 204, - 247, 359, 342, 364, 712, 730, 365, 290, 410, 354, - 420, 438, 439, 227, 317, 428, 401, 434, 450, 198, - 224, 331, 394, 425, 385, 310, 406, 407, 280, 384, - 255, 184, 288, 444, 196, 374, 212, 189, 396, 625, - 209, 377, 0, 0, 452, 191, 416, 393, 307, 277, - 278, 190, 0, 358, 232, 253, 222, 326, 413, 414, - 221, 453, 200, 433, 193, 646, 432, 319, 409, 417, - 308, 299, 192, 415, 306, 298, 283, 243, 264, 352, - 293, 353, 265, 315, 314, 316, 0, 187, 0, 390, - 426, 454, 205, 206, 207, 661, 242, 246, 252, 254, - 260, 261, 268, 286, 330, 351, 349, 355, 742, 404, - 421, 429, 436, 442, 443, 445, 446, 447, 448, 449, - 634, 628, 627, 282, 291, 734, 772, 336, 367, 210, - 424, 387, 656, 660, 654, 655, 706, 707, 657, 763, - 764, 765, 738, 650, 0, 658, 659, 0, 744, 753, - 754, 711, 180, 194, 287, 768, 356, 250, 451, 431, - 427, 636, 653, 226, 664, 0, 0, 676, 684, 685, - 697, 699, 700, 701, 702, 710, 718, 719, 721, 729, - 731, 733, 735, 740, 750, 771, 182, 183, 195, 203, - 213, 225, 240, 248, 258, 263, 266, 270, 271, 274, - 279, 296, 301, 302, 303, 304, 320, 321, 322, 325, - 328, 329, 332, 334, 335, 338, 344, 345, 346, 347, - 348, 350, 357, 361, 369, 370, 371, 372, 373, 375, - 376, 380, 381, 382, 383, 391, 395, 411, 412, 423, - 435, 440, 259, 419, 441, 0, 295, 709, 716, 297, - 244, 262, 272, 724, 430, 392, 199, 363, 251, 188, - 216, 202, 223, 238, 241, 276, 305, 311, 340, 343, - 256, 235, 214, 360, 211, 378, 398, 399, 400, 402, - 309, 230, 403, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 1432, 0, 522, - 0, 0, 0, 234, 521, 0, 0, 0, 285, 231, - 0, 1433, 341, 0, 186, 0, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 565, 289, 0, 0, 388, 312, 0, 0, 0, 0, - 0, 556, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 217, 185, 324, 389, 249, 0, 80, 0, - 0, 177, 178, 179, 543, 542, 545, 546, 547, 548, - 0, 0, 208, 544, 215, 549, 550, 551, 0, 229, - 273, 236, 228, 405, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 519, 536, 0, 564, 0, 0, - 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 533, 534, 614, - 0, 0, 0, 580, 0, 535, 0, 0, 528, 529, - 531, 530, 532, 537, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 0, 313, 0, 579, 0, 0, - 437, 0, 0, 577, 0, 0, 0, 0, 284, 0, - 281, 181, 197, 0, 0, 323, 362, 368, 0, 0, - 0, 220, 0, 366, 337, 422, 204, 247, 359, 342, - 364, 0, 0, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 0, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 0, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 0, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 0, 0, 336, 367, 210, 424, 387, 567, - 578, 573, 574, 571, 572, 566, 570, 569, 568, 581, - 558, 559, 560, 561, 563, 0, 575, 576, 562, 180, - 194, 287, 0, 356, 250, 451, 431, 427, 0, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 0, 0, 297, 244, 262, 272, - 0, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 403, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 0, 522, 0, 0, 0, - 234, 521, 0, 0, 0, 285, 231, 0, 0, 341, - 0, 186, 0, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 565, 289, 0, - 0, 388, 312, 0, 0, 0, 0, 0, 556, 557, - 0, 0, 0, 0, 0, 0, 1538, 0, 275, 217, - 185, 324, 389, 249, 0, 80, 0, 0, 177, 178, - 179, 543, 542, 545, 546, 547, 548, 0, 0, 208, - 544, 215, 549, 550, 551, 1539, 229, 273, 236, 228, - 405, 0, 0, 0, 0, 201, 0, 0, 0, 0, - 0, 519, 536, 0, 564, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 533, 534, 0, 0, 0, 0, - 580, 0, 535, 0, 0, 528, 529, 531, 530, 532, - 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 313, 0, 579, 0, 0, 437, 0, 0, - 577, 0, 0, 0, 0, 284, 0, 281, 181, 197, - 0, 0, 323, 362, 368, 0, 0, 0, 220, 0, - 366, 337, 422, 204, 247, 359, 342, 364, 0, 0, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 0, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 0, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 0, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 0, - 0, 336, 367, 210, 424, 387, 567, 578, 573, 574, - 571, 572, 566, 570, 569, 568, 581, 558, 559, 560, - 561, 563, 0, 575, 576, 562, 180, 194, 287, 0, - 356, 250, 451, 431, 427, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 0, 0, 297, 244, 262, 272, 0, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, 403, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, - 0, 0, 0, 522, 0, 0, 0, 234, 521, 0, - 0, 0, 285, 231, 0, 0, 341, 0, 186, 0, - 379, 219, 294, 292, 408, 245, 237, 233, 218, 269, - 300, 339, 397, 333, 565, 289, 0, 0, 388, 312, - 0, 0, 0, 0, 0, 556, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 217, 185, 324, 389, - 249, 0, 80, 0, 1089, 177, 178, 179, 543, 542, - 545, 546, 547, 548, 0, 0, 208, 544, 215, 549, - 550, 551, 0, 229, 273, 236, 228, 405, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 519, 536, - 0, 564, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 533, 534, 0, 0, 0, 0, 580, 0, 535, - 0, 0, 528, 529, 531, 530, 532, 537, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 0, 313, - 0, 579, 0, 0, 437, 0, 0, 577, 0, 0, - 0, 0, 284, 0, 281, 181, 197, 0, 0, 323, - 362, 368, 0, 0, 0, 220, 0, 366, 337, 422, - 204, 247, 359, 342, 364, 0, 0, 365, 290, 410, - 354, 420, 438, 439, 227, 317, 428, 401, 434, 450, - 198, 224, 331, 394, 425, 385, 310, 406, 407, 280, - 384, 255, 184, 288, 444, 196, 374, 212, 189, 396, - 418, 209, 377, 0, 0, 452, 191, 416, 393, 307, - 277, 278, 190, 0, 358, 232, 253, 222, 326, 413, - 414, 221, 453, 200, 433, 193, 0, 432, 319, 409, - 417, 308, 299, 192, 415, 306, 298, 283, 243, 264, - 352, 293, 353, 265, 315, 314, 316, 0, 187, 0, - 390, 426, 454, 205, 206, 207, 0, 242, 246, 252, - 254, 260, 261, 268, 286, 330, 351, 349, 355, 0, - 404, 421, 429, 436, 442, 443, 445, 446, 447, 448, - 449, 318, 267, 386, 282, 291, 0, 0, 336, 367, - 210, 424, 387, 567, 578, 573, 574, 571, 572, 566, - 570, 569, 568, 581, 558, 559, 560, 561, 563, 0, - 575, 576, 562, 180, 194, 287, 0, 356, 250, 451, - 431, 427, 0, 0, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 195, - 203, 213, 225, 240, 248, 258, 263, 266, 270, 271, - 274, 279, 296, 301, 302, 303, 304, 320, 321, 322, - 325, 328, 329, 332, 334, 335, 338, 344, 345, 346, - 347, 348, 350, 357, 361, 369, 370, 371, 372, 373, - 375, 376, 380, 381, 382, 383, 391, 395, 411, 412, - 423, 435, 440, 259, 419, 441, 0, 295, 0, 0, - 297, 244, 262, 272, 0, 430, 392, 199, 363, 251, - 188, 216, 202, 223, 238, 241, 276, 305, 311, 340, - 343, 256, 235, 214, 360, 211, 378, 398, 399, 400, - 402, 309, 230, 403, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, - 522, 0, 0, 0, 234, 521, 0, 0, 0, 285, - 231, 0, 0, 341, 0, 186, 0, 379, 219, 294, - 292, 408, 245, 237, 233, 218, 269, 300, 339, 397, - 333, 565, 289, 0, 0, 388, 312, 0, 0, 0, - 0, 0, 556, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 217, 185, 324, 389, 249, 0, 80, - 0, 0, 177, 178, 179, 543, 542, 545, 546, 547, - 548, 0, 0, 208, 544, 215, 549, 550, 551, 0, - 229, 273, 236, 228, 405, 0, 0, 0, 0, 201, - 0, 0, 0, 0, 0, 519, 536, 0, 564, 0, - 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 533, 534, - 614, 0, 0, 0, 580, 0, 535, 0, 0, 528, - 529, 531, 530, 532, 537, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 0, 313, 0, 579, 0, - 0, 437, 0, 0, 577, 0, 0, 0, 0, 284, - 0, 281, 181, 197, 0, 0, 323, 362, 368, 0, - 0, 0, 220, 0, 366, 337, 422, 204, 247, 359, - 342, 364, 0, 0, 365, 290, 410, 354, 420, 438, - 439, 227, 317, 428, 401, 434, 450, 198, 224, 331, - 394, 425, 385, 310, 406, 407, 280, 384, 255, 184, - 288, 444, 196, 374, 212, 189, 396, 418, 209, 377, - 0, 0, 452, 191, 416, 393, 307, 277, 278, 190, - 0, 358, 232, 253, 222, 326, 413, 414, 221, 453, - 200, 433, 193, 0, 432, 319, 409, 417, 308, 299, - 192, 415, 306, 298, 283, 243, 264, 352, 293, 353, - 265, 315, 314, 316, 0, 187, 0, 390, 426, 454, - 205, 206, 207, 0, 242, 246, 252, 254, 260, 261, - 268, 286, 330, 351, 349, 355, 0, 404, 421, 429, - 436, 442, 443, 445, 446, 447, 448, 449, 318, 267, - 386, 282, 291, 0, 0, 336, 367, 210, 424, 387, - 567, 578, 573, 574, 571, 572, 566, 570, 569, 568, - 581, 558, 559, 560, 561, 563, 0, 575, 576, 562, - 180, 194, 287, 0, 356, 250, 451, 431, 427, 0, - 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 195, 203, 213, 225, - 240, 248, 258, 263, 266, 270, 271, 274, 279, 296, - 301, 302, 303, 304, 320, 321, 322, 325, 328, 329, - 332, 334, 335, 338, 344, 345, 346, 347, 348, 350, - 357, 361, 369, 370, 371, 372, 373, 375, 376, 380, - 381, 382, 383, 391, 395, 411, 412, 423, 435, 440, - 259, 419, 441, 0, 295, 0, 0, 297, 244, 262, - 272, 0, 430, 392, 199, 363, 251, 188, 216, 202, - 223, 238, 241, 276, 305, 311, 340, 343, 256, 235, - 214, 360, 211, 378, 398, 399, 400, 402, 309, 230, - 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 327, 0, 0, 0, 0, 522, 0, 0, - 0, 234, 521, 0, 0, 0, 285, 231, 0, 0, - 341, 0, 186, 0, 379, 219, 294, 292, 408, 245, - 237, 233, 218, 269, 300, 339, 397, 333, 565, 289, - 0, 0, 388, 312, 0, 0, 0, 0, 0, 556, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 217, 185, 324, 389, 249, 0, 80, 0, 0, 177, - 178, 179, 543, 1447, 545, 546, 547, 548, 0, 0, - 208, 544, 215, 549, 550, 551, 0, 229, 273, 236, - 228, 405, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 519, 536, 0, 564, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 533, 534, 614, 0, 0, - 0, 580, 0, 535, 0, 0, 528, 529, 531, 530, - 532, 537, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 0, 313, 0, 579, 0, 0, 437, 0, - 0, 577, 0, 0, 0, 0, 284, 0, 281, 181, - 197, 0, 0, 323, 362, 368, 0, 0, 0, 220, - 0, 366, 337, 422, 204, 247, 359, 342, 364, 0, - 0, 365, 290, 410, 354, 420, 438, 439, 227, 317, - 428, 401, 434, 450, 198, 224, 331, 394, 425, 385, - 310, 406, 407, 280, 384, 255, 184, 288, 444, 196, - 374, 212, 189, 396, 418, 209, 377, 0, 0, 452, - 191, 416, 393, 307, 277, 278, 190, 0, 358, 232, - 253, 222, 326, 413, 414, 221, 453, 200, 433, 193, - 0, 432, 319, 409, 417, 308, 299, 192, 415, 306, - 298, 283, 243, 264, 352, 293, 353, 265, 315, 314, - 316, 0, 187, 0, 390, 426, 454, 205, 206, 207, - 0, 242, 246, 252, 254, 260, 261, 268, 286, 330, - 351, 349, 355, 0, 404, 421, 429, 436, 442, 443, - 445, 446, 447, 448, 449, 318, 267, 386, 282, 291, - 0, 0, 336, 367, 210, 424, 387, 567, 578, 573, - 574, 571, 572, 566, 570, 569, 568, 581, 558, 559, - 560, 561, 563, 0, 575, 576, 562, 180, 194, 287, - 0, 356, 250, 451, 431, 427, 0, 0, 226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 195, 203, 213, 225, 240, 248, 258, - 263, 266, 270, 271, 274, 279, 296, 301, 302, 303, - 304, 320, 321, 322, 325, 328, 329, 332, 334, 335, - 338, 344, 345, 346, 347, 348, 350, 357, 361, 369, - 370, 371, 372, 373, 375, 376, 380, 381, 382, 383, - 391, 395, 411, 412, 423, 435, 440, 259, 419, 441, - 0, 295, 0, 0, 297, 244, 262, 272, 0, 430, - 392, 199, 363, 251, 188, 216, 202, 223, 238, 241, - 276, 305, 311, 340, 343, 256, 235, 214, 360, 211, - 378, 398, 399, 400, 402, 309, 230, 403, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 522, 0, 0, 0, 234, 521, - 0, 0, 0, 285, 231, 0, 0, 341, 0, 186, - 0, 379, 219, 294, 292, 408, 245, 237, 233, 218, - 269, 300, 339, 397, 333, 565, 289, 0, 0, 388, - 312, 0, 0, 0, 0, 0, 556, 557, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 217, 185, 324, - 389, 249, 0, 80, 0, 0, 177, 178, 179, 543, - 1444, 545, 546, 547, 548, 0, 0, 208, 544, 215, - 549, 550, 551, 0, 229, 273, 236, 228, 405, 0, - 0, 0, 0, 201, 0, 0, 0, 0, 0, 519, - 536, 0, 564, 0, 0, 0, 239, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 533, 534, 614, 0, 0, 0, 580, 0, - 535, 0, 0, 528, 529, 531, 530, 532, 537, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, - 313, 0, 579, 0, 0, 437, 0, 0, 577, 0, - 0, 0, 0, 284, 0, 281, 181, 197, 0, 0, - 323, 362, 368, 0, 0, 0, 220, 0, 366, 337, - 422, 204, 247, 359, 342, 364, 0, 0, 365, 290, - 410, 354, 420, 438, 439, 227, 317, 428, 401, 434, - 450, 198, 224, 331, 394, 425, 385, 310, 406, 407, - 280, 384, 255, 184, 288, 444, 196, 374, 212, 189, - 396, 418, 209, 377, 0, 0, 452, 191, 416, 393, - 307, 277, 278, 190, 0, 358, 232, 253, 222, 326, - 413, 414, 221, 453, 200, 433, 193, 0, 432, 319, - 409, 417, 308, 299, 192, 415, 306, 298, 283, 243, - 264, 352, 293, 353, 265, 315, 314, 316, 0, 187, - 0, 390, 426, 454, 205, 206, 207, 0, 242, 246, - 252, 254, 260, 261, 268, 286, 330, 351, 349, 355, - 0, 404, 421, 429, 436, 442, 443, 445, 446, 447, - 448, 449, 318, 267, 386, 282, 291, 0, 0, 336, - 367, 210, 424, 387, 567, 578, 573, 574, 571, 572, - 566, 570, 569, 568, 581, 558, 559, 560, 561, 563, - 0, 575, 576, 562, 180, 194, 287, 0, 356, 250, - 451, 431, 427, 0, 0, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 195, 203, 213, 225, 240, 248, 258, 263, 266, 270, - 271, 274, 279, 296, 301, 302, 303, 304, 320, 321, - 322, 325, 328, 329, 332, 334, 335, 338, 344, 345, - 346, 347, 348, 350, 357, 361, 369, 370, 371, 372, - 373, 375, 376, 380, 381, 382, 383, 391, 395, 411, - 412, 423, 435, 440, 259, 419, 441, 0, 295, 0, - 0, 297, 244, 262, 272, 0, 430, 392, 199, 363, - 251, 188, 216, 202, 223, 238, 241, 276, 305, 311, - 340, 343, 256, 235, 214, 360, 211, 378, 398, 399, - 400, 402, 309, 230, 72, 403, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, - 0, 0, 522, 0, 0, 0, 234, 521, 0, 0, - 0, 285, 231, 0, 0, 341, 0, 186, 0, 379, - 219, 294, 292, 408, 245, 237, 233, 218, 269, 300, - 339, 397, 333, 565, 289, 0, 0, 388, 312, 0, - 0, 0, 0, 0, 556, 557, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 217, 185, 324, 389, 249, - 0, 80, 0, 0, 177, 178, 179, 543, 542, 545, - 546, 547, 548, 0, 0, 208, 544, 215, 549, 550, - 551, 0, 229, 273, 236, 228, 405, 0, 0, 0, - 0, 201, 0, 0, 0, 0, 0, 519, 536, 0, - 564, 0, 0, 0, 239, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 533, 534, 0, 0, 0, 0, 580, 0, 535, 0, - 0, 528, 529, 531, 530, 532, 537, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 0, 313, 0, - 579, 0, 0, 437, 0, 0, 577, 0, 0, 0, - 0, 284, 0, 281, 181, 197, 0, 0, 323, 362, - 368, 0, 0, 0, 220, 0, 366, 337, 422, 204, - 247, 359, 342, 364, 0, 0, 365, 290, 410, 354, - 420, 438, 439, 227, 317, 428, 401, 434, 450, 198, - 224, 331, 394, 425, 385, 310, 406, 407, 280, 384, - 255, 184, 288, 444, 196, 374, 212, 189, 396, 418, - 209, 377, 0, 0, 452, 191, 416, 393, 307, 277, - 278, 190, 0, 358, 232, 253, 222, 326, 413, 414, - 221, 453, 200, 433, 193, 0, 432, 319, 409, 417, - 308, 299, 192, 415, 306, 298, 283, 243, 264, 352, - 293, 353, 265, 315, 314, 316, 0, 187, 0, 390, - 426, 454, 205, 206, 207, 0, 242, 246, 252, 254, - 260, 261, 268, 286, 330, 351, 349, 355, 0, 404, - 421, 429, 436, 442, 443, 445, 446, 447, 448, 449, - 318, 267, 386, 282, 291, 0, 0, 336, 367, 210, - 424, 387, 567, 578, 573, 574, 571, 572, 566, 570, - 569, 568, 581, 558, 559, 560, 561, 563, 0, 575, - 576, 562, 180, 194, 287, 0, 356, 250, 451, 431, - 427, 0, 0, 226, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 183, 195, 203, - 213, 225, 240, 248, 258, 263, 266, 270, 271, 274, - 279, 296, 301, 302, 303, 304, 320, 321, 322, 325, - 328, 329, 332, 334, 335, 338, 344, 345, 346, 347, - 348, 350, 357, 361, 369, 370, 371, 372, 373, 375, - 376, 380, 381, 382, 383, 391, 395, 411, 412, 423, - 435, 440, 259, 419, 441, 0, 295, 0, 0, 297, - 244, 262, 272, 0, 430, 392, 199, 363, 251, 188, - 216, 202, 223, 238, 241, 276, 305, 311, 340, 343, - 256, 235, 214, 360, 211, 378, 398, 399, 400, 402, - 309, 230, 403, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 522, - 0, 0, 0, 234, 521, 0, 0, 0, 285, 231, - 0, 0, 341, 0, 186, 0, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 565, 289, 0, 0, 388, 312, 0, 0, 0, 0, - 0, 556, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 217, 185, 324, 389, 249, 0, 80, 0, - 0, 177, 178, 179, 543, 542, 545, 546, 547, 548, - 0, 0, 208, 544, 215, 549, 550, 551, 0, 229, - 273, 236, 228, 405, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 519, 536, 0, 564, 0, 0, - 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 533, 534, 0, - 0, 0, 0, 580, 0, 535, 0, 0, 528, 529, - 531, 530, 532, 537, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 0, 313, 0, 579, 0, 0, - 437, 0, 0, 577, 0, 0, 0, 0, 284, 0, - 281, 181, 197, 0, 0, 323, 362, 368, 0, 0, - 0, 220, 0, 366, 337, 422, 204, 247, 359, 342, - 364, 0, 0, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 0, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 0, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 0, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 0, 0, 336, 367, 210, 424, 387, 567, - 578, 573, 574, 571, 572, 566, 570, 569, 568, 581, - 558, 559, 560, 561, 563, 0, 575, 576, 562, 180, - 194, 287, 0, 356, 250, 451, 431, 427, 0, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 0, 0, 297, 244, 262, 272, - 0, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 403, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 0, 285, 231, 0, 0, 341, - 0, 186, 0, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 565, 289, 0, - 0, 388, 312, 0, 0, 0, 0, 0, 556, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 217, - 185, 324, 389, 249, 0, 80, 0, 0, 177, 178, - 179, 543, 542, 545, 546, 547, 548, 0, 0, 208, - 544, 215, 549, 550, 551, 0, 229, 273, 236, 228, - 405, 0, 0, 0, 0, 201, 0, 0, 0, 0, - 0, 0, 536, 0, 564, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 533, 534, 0, 0, 0, 0, - 580, 0, 535, 0, 0, 528, 529, 531, 530, 532, - 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 313, 0, 579, 0, 0, 437, 0, 0, - 577, 0, 0, 0, 0, 284, 0, 281, 181, 197, - 0, 0, 323, 362, 368, 0, 0, 0, 220, 0, - 366, 337, 422, 204, 247, 359, 342, 364, 2276, 0, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 0, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 0, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 0, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 0, - 0, 336, 367, 210, 424, 387, 567, 578, 573, 574, - 571, 572, 566, 570, 569, 568, 581, 558, 559, 560, - 561, 563, 0, 575, 576, 562, 180, 194, 287, 0, - 356, 250, 451, 431, 427, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 0, 0, 297, 244, 262, 272, 0, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, 403, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, - 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, - 0, 0, 285, 231, 0, 0, 341, 0, 186, 0, - 379, 219, 294, 292, 408, 245, 237, 233, 218, 269, - 300, 339, 397, 333, 565, 289, 0, 0, 388, 312, - 0, 0, 0, 0, 0, 556, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 217, 185, 324, 389, - 249, 0, 80, 0, 1089, 177, 178, 179, 543, 542, - 545, 546, 547, 548, 0, 0, 208, 544, 215, 549, - 550, 551, 0, 229, 273, 236, 228, 405, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 0, 536, - 0, 564, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 533, 534, 0, 0, 0, 0, 580, 0, 535, - 0, 0, 528, 529, 531, 530, 532, 537, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 0, 313, - 0, 579, 0, 0, 437, 0, 0, 577, 0, 0, - 0, 0, 284, 0, 281, 181, 197, 0, 0, 323, - 362, 368, 0, 0, 0, 220, 0, 366, 337, 422, - 204, 247, 359, 342, 364, 0, 0, 365, 290, 410, - 354, 420, 438, 439, 227, 317, 428, 401, 434, 450, - 198, 224, 331, 394, 425, 385, 310, 406, 407, 280, - 384, 255, 184, 288, 444, 196, 374, 212, 189, 396, - 418, 209, 377, 0, 0, 452, 191, 416, 393, 307, - 277, 278, 190, 0, 358, 232, 253, 222, 326, 413, - 414, 221, 453, 200, 433, 193, 0, 432, 319, 409, - 417, 308, 299, 192, 415, 306, 298, 283, 243, 264, - 352, 293, 353, 265, 315, 314, 316, 0, 187, 0, - 390, 426, 454, 205, 206, 207, 0, 242, 246, 252, - 254, 260, 261, 268, 286, 330, 351, 349, 355, 0, - 404, 421, 429, 436, 442, 443, 445, 446, 447, 448, - 449, 318, 267, 386, 282, 291, 0, 0, 336, 367, - 210, 424, 387, 567, 578, 573, 574, 571, 572, 566, - 570, 569, 568, 581, 558, 559, 560, 561, 563, 0, - 575, 576, 562, 180, 194, 287, 0, 356, 250, 451, - 431, 427, 0, 0, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 195, - 203, 213, 225, 240, 248, 258, 263, 266, 270, 271, - 274, 279, 296, 301, 302, 303, 304, 320, 321, 322, - 325, 328, 329, 332, 334, 335, 338, 344, 345, 346, - 347, 348, 350, 357, 361, 369, 370, 371, 372, 373, - 375, 376, 380, 381, 382, 383, 391, 395, 411, 412, - 423, 435, 440, 259, 419, 441, 0, 295, 0, 0, - 297, 244, 262, 272, 0, 430, 392, 199, 363, 251, - 188, 216, 202, 223, 238, 241, 276, 305, 311, 340, - 343, 256, 235, 214, 360, 211, 378, 398, 399, 400, - 402, 309, 230, 403, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 285, - 231, 0, 0, 341, 0, 186, 0, 379, 219, 294, - 292, 408, 245, 237, 233, 218, 269, 300, 339, 397, - 333, 565, 289, 0, 0, 388, 312, 0, 0, 0, - 0, 0, 556, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 217, 185, 324, 389, 249, 0, 80, - 0, 0, 177, 178, 179, 543, 542, 545, 546, 547, - 548, 0, 0, 208, 544, 215, 549, 550, 551, 0, - 229, 273, 236, 228, 405, 0, 0, 0, 0, 201, - 0, 0, 0, 0, 0, 0, 536, 0, 564, 0, - 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 533, 534, - 0, 0, 0, 0, 580, 0, 535, 0, 0, 528, - 529, 531, 530, 532, 537, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 0, 313, 0, 579, 0, - 0, 437, 0, 0, 577, 0, 0, 0, 0, 284, - 0, 281, 181, 197, 0, 0, 323, 362, 368, 0, - 0, 0, 220, 0, 366, 337, 422, 204, 247, 359, - 342, 364, 0, 0, 365, 290, 410, 354, 420, 438, - 439, 227, 317, 428, 401, 434, 450, 198, 224, 331, - 394, 425, 385, 310, 406, 407, 280, 384, 255, 184, - 288, 444, 196, 374, 212, 189, 396, 418, 209, 377, - 0, 0, 452, 191, 416, 393, 307, 277, 278, 190, - 0, 358, 232, 253, 222, 326, 413, 414, 221, 453, - 200, 433, 193, 0, 432, 319, 409, 417, 308, 299, - 192, 415, 306, 298, 283, 243, 264, 352, 293, 353, - 265, 315, 314, 316, 0, 187, 0, 390, 426, 454, - 205, 206, 207, 0, 242, 246, 252, 254, 260, 261, - 268, 286, 330, 351, 349, 355, 0, 404, 421, 429, - 436, 442, 443, 445, 446, 447, 448, 449, 318, 267, - 386, 282, 291, 0, 0, 336, 367, 210, 424, 387, - 567, 578, 573, 574, 571, 572, 566, 570, 569, 568, - 581, 558, 559, 560, 561, 563, 0, 575, 576, 562, - 180, 194, 287, 0, 356, 250, 451, 431, 427, 0, - 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 195, 203, 213, 225, - 240, 248, 258, 263, 266, 270, 271, 274, 279, 296, - 301, 302, 303, 304, 320, 321, 322, 325, 328, 329, - 332, 334, 335, 338, 344, 345, 346, 347, 348, 350, - 357, 361, 369, 370, 371, 372, 373, 375, 376, 380, - 381, 382, 383, 391, 395, 411, 412, 423, 435, 440, - 259, 419, 441, 0, 295, 0, 0, 297, 244, 262, - 272, 0, 430, 392, 199, 363, 251, 188, 216, 202, - 223, 238, 241, 276, 305, 311, 340, 343, 256, 235, - 214, 360, 211, 378, 398, 399, 400, 402, 309, 230, - 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, - 0, 234, 0, 0, 0, 0, 285, 231, 0, 0, - 341, 0, 186, 0, 379, 219, 294, 292, 408, 245, - 237, 233, 218, 269, 300, 339, 397, 333, 0, 289, - 0, 0, 388, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 217, 185, 324, 389, 249, 0, 0, 0, 0, 177, - 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 208, 0, 215, 0, 0, 0, 0, 229, 273, 236, - 228, 405, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 994, 993, 1003, 1004, 996, 997, 998, 999, 1000, - 1001, 1002, 995, 0, 0, 1005, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 0, 313, 0, 0, 0, 0, 437, 0, - 0, 0, 0, 0, 0, 0, 284, 0, 281, 181, - 197, 0, 0, 323, 362, 368, 0, 0, 0, 220, - 0, 366, 337, 422, 204, 247, 359, 342, 364, 0, - 0, 365, 290, 410, 354, 420, 438, 439, 227, 317, - 428, 401, 434, 450, 198, 224, 331, 394, 425, 385, - 310, 406, 407, 280, 384, 255, 184, 288, 444, 196, - 374, 212, 189, 396, 418, 209, 377, 0, 0, 452, - 191, 416, 393, 307, 277, 278, 190, 0, 358, 232, - 253, 222, 326, 413, 414, 221, 453, 200, 433, 193, - 0, 432, 319, 409, 417, 308, 299, 192, 415, 306, - 298, 283, 243, 264, 352, 293, 353, 265, 315, 314, - 316, 0, 187, 0, 390, 426, 454, 205, 206, 207, - 0, 242, 246, 252, 254, 260, 261, 268, 286, 330, - 351, 349, 355, 0, 404, 421, 429, 436, 442, 443, - 445, 446, 447, 448, 449, 318, 267, 386, 282, 291, - 0, 0, 336, 367, 210, 424, 387, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 194, 287, - 0, 356, 250, 451, 431, 427, 0, 0, 226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 195, 203, 213, 225, 240, 248, 258, - 263, 266, 270, 271, 274, 279, 296, 301, 302, 303, - 304, 320, 321, 322, 325, 328, 329, 332, 334, 335, - 338, 344, 345, 346, 347, 348, 350, 357, 361, 369, - 370, 371, 372, 373, 375, 376, 380, 381, 382, 383, - 391, 395, 411, 412, 423, 435, 440, 259, 419, 441, - 0, 295, 0, 0, 297, 244, 262, 272, 0, 430, - 392, 199, 363, 251, 188, 216, 202, 223, 238, 241, - 276, 305, 311, 340, 343, 256, 235, 214, 360, 211, - 378, 398, 399, 400, 402, 309, 230, 403, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, - 0, 0, 0, 285, 231, 0, 0, 341, 0, 186, - 0, 379, 219, 294, 292, 408, 245, 237, 233, 218, - 269, 300, 339, 397, 333, 0, 289, 0, 0, 388, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 217, 185, 324, - 389, 249, 0, 0, 0, 0, 177, 178, 179, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 0, 215, - 0, 0, 0, 0, 229, 273, 236, 228, 405, 0, - 0, 0, 0, 201, 0, 820, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, - 313, 0, 0, 0, 819, 437, 0, 0, 0, 0, - 0, 816, 817, 284, 782, 281, 181, 197, 810, 814, - 323, 362, 368, 0, 0, 0, 220, 0, 366, 337, - 422, 204, 247, 359, 342, 364, 0, 0, 365, 290, - 410, 354, 420, 438, 439, 227, 317, 428, 401, 434, - 450, 198, 224, 331, 394, 425, 385, 310, 406, 407, - 280, 384, 255, 184, 288, 444, 196, 374, 212, 189, - 396, 418, 209, 377, 0, 0, 452, 191, 416, 393, - 307, 277, 278, 190, 0, 358, 232, 253, 222, 326, - 413, 414, 221, 453, 200, 433, 193, 0, 432, 319, - 409, 417, 308, 299, 192, 415, 306, 298, 283, 243, - 264, 352, 293, 353, 265, 315, 314, 316, 0, 187, - 0, 390, 426, 454, 205, 206, 207, 0, 242, 246, - 252, 254, 260, 261, 268, 286, 330, 351, 349, 355, - 0, 404, 421, 429, 436, 442, 443, 445, 446, 447, - 448, 449, 318, 267, 386, 282, 291, 0, 0, 336, - 367, 210, 424, 387, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 180, 194, 287, 0, 356, 250, - 451, 431, 427, 0, 0, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 195, 203, 213, 225, 240, 248, 258, 263, 266, 270, - 271, 274, 279, 296, 301, 302, 303, 304, 320, 321, - 322, 325, 328, 329, 332, 334, 335, 338, 344, 345, - 346, 347, 348, 350, 357, 361, 369, 370, 371, 372, - 373, 375, 376, 380, 381, 382, 383, 391, 395, 411, - 412, 423, 435, 440, 259, 419, 441, 0, 295, 0, - 0, 297, 244, 262, 272, 0, 430, 392, 199, 363, - 251, 188, 216, 202, 223, 238, 241, 276, 305, 311, - 340, 343, 256, 235, 214, 360, 211, 378, 398, 399, - 400, 402, 309, 230, 403, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, - 1107, 0, 0, 0, 0, 234, 0, 0, 0, 0, - 285, 231, 0, 0, 341, 0, 186, 0, 379, 219, - 294, 292, 408, 245, 237, 233, 218, 269, 300, 339, - 397, 333, 0, 289, 0, 0, 388, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 275, 217, 185, 324, 389, 249, 0, - 0, 0, 0, 177, 178, 179, 0, 1109, 0, 0, - 0, 0, 0, 0, 208, 0, 215, 0, 0, 0, - 0, 229, 273, 236, 228, 405, 0, 0, 0, 0, - 201, 0, 0, 983, 984, 982, 0, 0, 0, 0, - 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, - 0, 985, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 0, 313, 0, 0, - 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, - 284, 0, 281, 181, 197, 0, 0, 323, 362, 368, - 0, 0, 0, 220, 0, 366, 337, 422, 204, 247, - 359, 342, 364, 0, 0, 365, 290, 410, 354, 420, - 438, 439, 227, 317, 428, 401, 434, 450, 198, 224, - 331, 394, 425, 385, 310, 406, 407, 280, 384, 255, - 184, 288, 444, 196, 374, 212, 189, 396, 418, 209, - 377, 0, 0, 452, 191, 416, 393, 307, 277, 278, - 190, 0, 358, 232, 253, 222, 326, 413, 414, 221, - 453, 200, 433, 193, 0, 432, 319, 409, 417, 308, - 299, 192, 415, 306, 298, 283, 243, 264, 352, 293, - 353, 265, 315, 314, 316, 0, 187, 0, 390, 426, - 454, 205, 206, 207, 0, 242, 246, 252, 254, 260, - 261, 268, 286, 330, 351, 349, 355, 0, 404, 421, - 429, 436, 442, 443, 445, 446, 447, 448, 449, 318, - 267, 386, 282, 291, 0, 0, 336, 367, 210, 424, - 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 194, 287, 0, 356, 250, 451, 431, 427, - 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 195, 203, 213, - 225, 240, 248, 258, 263, 266, 270, 271, 274, 279, - 296, 301, 302, 303, 304, 320, 321, 322, 325, 328, - 329, 332, 334, 335, 338, 344, 345, 346, 347, 348, - 350, 357, 361, 369, 370, 371, 372, 373, 375, 376, - 380, 381, 382, 383, 391, 395, 411, 412, 423, 435, - 440, 259, 419, 441, 0, 295, 0, 0, 297, 244, - 262, 272, 0, 430, 392, 199, 363, 251, 188, 216, - 202, 223, 238, 241, 276, 305, 311, 340, 343, 256, - 235, 214, 360, 211, 378, 398, 399, 400, 402, 309, - 230, 72, 403, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 0, 0, 234, 0, 0, 0, 0, 285, 231, - 0, 0, 341, 0, 186, 0, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 0, 289, 0, 0, 388, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 217, 185, 324, 389, 249, 0, 80, 0, - 1089, 177, 178, 179, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 0, 215, 0, 0, 0, 0, 229, - 273, 236, 228, 405, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 0, 313, 0, 0, 0, 0, - 437, 0, 0, 0, 0, 0, 0, 0, 284, 0, - 281, 181, 197, 0, 0, 323, 362, 368, 0, 0, - 0, 220, 0, 366, 337, 422, 204, 247, 359, 342, - 364, 0, 0, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 0, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 0, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 0, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 0, 0, 336, 367, 210, 424, 387, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, - 194, 287, 0, 356, 250, 451, 431, 427, 0, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 0, 0, 297, 244, 262, 272, - 0, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 403, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 1476, 0, 0, 0, 0, - 234, 0, 0, 0, 0, 285, 231, 0, 0, 341, - 0, 186, 0, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 0, 289, 0, - 0, 388, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 217, - 185, 324, 389, 249, 0, 0, 0, 0, 177, 178, - 179, 0, 1291, 0, 0, 0, 0, 0, 0, 208, - 0, 215, 0, 0, 0, 0, 229, 273, 236, 228, - 405, 0, 0, 0, 0, 201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 313, 0, 0, 0, 0, 437, 0, 0, - 0, 0, 0, 0, 0, 284, 0, 281, 181, 197, - 0, 0, 323, 362, 368, 0, 0, 0, 220, 0, - 366, 337, 422, 204, 247, 359, 342, 364, 0, 1474, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 0, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 0, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 0, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 0, - 0, 336, 367, 210, 424, 387, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 194, 287, 0, - 356, 250, 451, 431, 427, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 0, 0, 297, 244, 262, 272, 0, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, 403, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, - 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, - 0, 0, 285, 231, 0, 0, 341, 0, 186, 0, - 379, 219, 294, 292, 408, 245, 237, 233, 218, 269, - 300, 339, 397, 333, 0, 289, 0, 0, 388, 312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 217, 185, 324, 389, - 249, 0, 0, 0, 0, 177, 178, 179, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 215, 0, - 0, 0, 0, 229, 273, 236, 228, 405, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 0, 313, - 0, 0, 0, 0, 437, 0, 0, 0, 0, 0, - 0, 0, 284, 782, 281, 181, 197, 780, 0, 323, - 362, 368, 0, 0, 0, 220, 0, 366, 337, 422, - 204, 247, 359, 342, 364, 0, 0, 365, 290, 410, - 354, 420, 438, 439, 227, 317, 428, 401, 434, 450, - 198, 224, 331, 394, 425, 385, 310, 406, 407, 280, - 384, 255, 184, 288, 444, 196, 374, 212, 189, 396, - 418, 209, 377, 0, 0, 452, 191, 416, 393, 307, - 277, 278, 190, 0, 358, 232, 253, 222, 326, 413, - 414, 221, 453, 200, 433, 193, 0, 432, 319, 409, - 417, 308, 299, 192, 415, 306, 298, 283, 243, 264, - 352, 293, 353, 265, 315, 314, 316, 0, 187, 0, - 390, 426, 454, 205, 206, 207, 0, 242, 246, 252, - 254, 260, 261, 268, 286, 330, 351, 349, 355, 0, - 404, 421, 429, 436, 442, 443, 445, 446, 447, 448, - 449, 318, 267, 386, 282, 291, 0, 0, 336, 367, - 210, 424, 387, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 194, 287, 0, 356, 250, 451, - 431, 427, 0, 0, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 195, - 203, 213, 225, 240, 248, 258, 263, 266, 270, 271, - 274, 279, 296, 301, 302, 303, 304, 320, 321, 322, - 325, 328, 329, 332, 334, 335, 338, 344, 345, 346, - 347, 348, 350, 357, 361, 369, 370, 371, 372, 373, - 375, 376, 380, 381, 382, 383, 391, 395, 411, 412, - 423, 435, 440, 259, 419, 441, 0, 295, 0, 0, - 297, 244, 262, 272, 0, 430, 392, 199, 363, 251, - 188, 216, 202, 223, 238, 241, 276, 305, 311, 340, - 343, 256, 235, 214, 360, 211, 378, 398, 399, 400, - 402, 309, 230, 403, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 0, 0, 1476, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 285, - 231, 0, 0, 341, 0, 186, 0, 379, 219, 294, - 292, 408, 245, 237, 233, 218, 269, 300, 339, 397, - 333, 0, 289, 0, 0, 388, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 217, 185, 324, 389, 249, 0, 0, - 0, 0, 177, 178, 179, 0, 1291, 0, 0, 0, - 0, 0, 0, 208, 0, 215, 0, 0, 0, 0, - 229, 273, 236, 228, 405, 0, 0, 0, 0, 201, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 0, 313, 0, 0, 0, - 0, 437, 0, 0, 0, 0, 0, 0, 0, 284, - 0, 281, 181, 197, 0, 0, 323, 362, 368, 0, - 0, 0, 220, 0, 366, 337, 422, 204, 247, 359, - 342, 364, 0, 0, 365, 290, 410, 354, 420, 438, - 439, 227, 317, 428, 401, 434, 450, 198, 224, 331, - 394, 425, 385, 310, 406, 407, 280, 384, 255, 184, - 288, 444, 196, 374, 212, 189, 396, 418, 209, 377, - 0, 0, 452, 191, 416, 393, 307, 277, 278, 190, - 0, 358, 232, 253, 222, 326, 413, 414, 221, 453, - 200, 433, 193, 0, 432, 319, 409, 417, 308, 299, - 192, 415, 306, 298, 283, 243, 264, 352, 293, 353, - 265, 315, 314, 316, 0, 187, 0, 390, 426, 454, - 205, 206, 207, 0, 242, 246, 252, 254, 260, 261, - 268, 286, 330, 351, 349, 355, 0, 404, 421, 429, - 436, 442, 443, 445, 446, 447, 448, 449, 318, 267, - 386, 282, 291, 0, 0, 336, 367, 210, 424, 387, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 194, 287, 0, 356, 250, 451, 431, 427, 0, - 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 195, 203, 213, 225, - 240, 248, 258, 263, 266, 270, 271, 274, 279, 296, - 301, 302, 303, 304, 320, 321, 322, 325, 328, 329, - 332, 334, 335, 338, 344, 345, 346, 347, 348, 350, - 357, 361, 369, 370, 371, 372, 373, 375, 376, 380, - 381, 382, 383, 391, 395, 411, 412, 423, 435, 440, - 259, 419, 441, 0, 295, 0, 0, 297, 244, 262, - 272, 0, 430, 392, 199, 363, 251, 188, 216, 202, - 223, 238, 241, 276, 305, 311, 340, 343, 256, 235, - 214, 360, 211, 378, 398, 399, 400, 402, 309, 230, - 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, - 0, 234, 0, 0, 0, 0, 285, 231, 0, 0, - 341, 0, 186, 0, 379, 219, 294, 292, 408, 245, - 237, 233, 218, 269, 300, 339, 397, 333, 0, 289, - 0, 0, 388, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 217, 185, 324, 389, 249, 0, 0, 0, 1089, 177, - 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 208, 0, 215, 0, 0, 0, 0, 229, 273, 236, - 228, 405, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 0, 313, 0, 0, 0, 0, 437, 0, - 0, 0, 2167, 0, 0, 0, 284, 0, 281, 181, - 197, 0, 0, 323, 362, 368, 0, 0, 0, 220, - 0, 366, 337, 422, 204, 247, 359, 342, 364, 0, - 0, 365, 290, 410, 354, 420, 438, 439, 227, 317, - 428, 401, 434, 450, 198, 224, 331, 394, 425, 385, - 310, 406, 407, 280, 384, 255, 184, 288, 444, 196, - 374, 212, 189, 396, 418, 209, 377, 0, 0, 452, - 191, 416, 393, 307, 277, 278, 190, 0, 358, 232, - 253, 222, 326, 413, 414, 221, 453, 200, 433, 193, - 0, 432, 319, 409, 417, 308, 299, 192, 415, 306, - 298, 283, 243, 264, 352, 293, 353, 265, 315, 314, - 316, 0, 187, 0, 390, 426, 454, 205, 206, 207, - 0, 242, 246, 252, 254, 260, 261, 268, 286, 330, - 351, 349, 355, 0, 404, 421, 429, 436, 442, 443, - 445, 446, 447, 448, 449, 318, 267, 386, 282, 291, - 0, 0, 336, 367, 210, 424, 387, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 194, 287, - 0, 356, 250, 451, 431, 427, 0, 0, 226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 195, 203, 213, 225, 240, 248, 258, - 263, 266, 270, 271, 274, 279, 296, 301, 302, 303, - 304, 320, 321, 322, 325, 328, 329, 332, 334, 335, - 338, 344, 345, 346, 347, 348, 350, 357, 361, 369, - 370, 371, 372, 373, 375, 376, 380, 381, 382, 383, - 391, 395, 411, 412, 423, 435, 440, 259, 419, 441, - 0, 295, 0, 0, 297, 244, 262, 272, 0, 430, - 392, 199, 363, 251, 188, 216, 202, 223, 238, 241, - 276, 305, 311, 340, 343, 256, 235, 214, 360, 211, - 378, 398, 399, 400, 402, 309, 230, 72, 403, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 327, 0, 0, 0, 0, 0, 0, 0, 0, 234, - 0, 0, 0, 0, 285, 231, 0, 0, 341, 0, - 186, 0, 379, 219, 294, 292, 408, 245, 237, 233, - 218, 269, 300, 339, 397, 333, 0, 289, 0, 0, - 388, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 217, 185, - 324, 389, 249, 0, 80, 0, 0, 177, 178, 179, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 215, 0, 0, 0, 0, 229, 273, 236, 228, 405, - 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 0, 313, 0, 0, 0, 0, 437, 0, 0, 0, - 0, 0, 0, 0, 284, 0, 281, 181, 197, 0, - 0, 323, 362, 368, 0, 0, 0, 220, 0, 366, - 337, 422, 204, 247, 359, 342, 364, 0, 0, 365, - 290, 410, 354, 420, 438, 439, 227, 317, 428, 401, - 434, 450, 198, 224, 331, 394, 425, 385, 310, 406, - 407, 280, 384, 255, 184, 288, 444, 196, 374, 212, - 189, 396, 418, 209, 377, 0, 0, 452, 191, 416, - 393, 307, 277, 278, 190, 0, 358, 232, 253, 222, - 326, 413, 414, 221, 453, 200, 433, 193, 0, 432, - 319, 409, 417, 308, 299, 192, 415, 306, 298, 283, - 243, 264, 352, 293, 353, 265, 315, 314, 316, 0, - 187, 0, 390, 426, 454, 205, 206, 207, 0, 242, - 246, 252, 254, 260, 261, 268, 286, 330, 351, 349, - 355, 0, 404, 421, 429, 436, 442, 443, 445, 446, - 447, 448, 449, 318, 267, 386, 282, 291, 0, 0, - 336, 367, 210, 424, 387, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 180, 194, 287, 0, 356, - 250, 451, 431, 427, 0, 0, 226, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 195, 203, 213, 225, 240, 248, 258, 263, 266, - 270, 271, 274, 279, 296, 301, 302, 303, 304, 320, - 321, 322, 325, 328, 329, 332, 334, 335, 338, 344, - 345, 346, 347, 348, 350, 357, 361, 369, 370, 371, - 372, 373, 375, 376, 380, 381, 382, 383, 391, 395, - 411, 412, 423, 435, 440, 259, 419, 441, 0, 295, - 0, 0, 297, 244, 262, 272, 0, 430, 392, 199, - 363, 251, 188, 216, 202, 223, 238, 241, 276, 305, - 311, 340, 343, 256, 235, 214, 360, 211, 378, 398, - 399, 400, 402, 309, 230, 403, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, - 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, - 0, 285, 231, 0, 0, 341, 0, 186, 0, 379, - 219, 294, 292, 408, 245, 237, 233, 218, 269, 300, - 339, 397, 333, 0, 289, 0, 0, 388, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 217, 185, 324, 389, 249, - 0, 0, 0, 0, 177, 178, 179, 0, 0, 1736, - 0, 0, 1737, 0, 0, 208, 0, 215, 0, 0, - 0, 0, 229, 273, 236, 228, 405, 0, 0, 0, - 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 0, 313, 0, - 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, - 0, 284, 0, 281, 181, 197, 0, 0, 323, 362, - 368, 0, 0, 0, 220, 0, 366, 337, 422, 204, - 247, 359, 342, 364, 0, 0, 365, 290, 410, 354, - 420, 438, 439, 227, 317, 428, 401, 434, 450, 198, - 224, 331, 394, 425, 385, 310, 406, 407, 280, 384, - 255, 184, 288, 444, 196, 374, 212, 189, 396, 418, - 209, 377, 0, 0, 452, 191, 416, 393, 307, 277, - 278, 190, 0, 358, 232, 253, 222, 326, 413, 414, - 221, 453, 200, 433, 193, 0, 432, 319, 409, 417, - 308, 299, 192, 415, 306, 298, 283, 243, 264, 352, - 293, 353, 265, 315, 314, 316, 0, 187, 0, 390, - 426, 454, 205, 206, 207, 0, 242, 246, 252, 254, - 260, 261, 268, 286, 330, 351, 349, 355, 0, 404, - 421, 429, 436, 442, 443, 445, 446, 447, 448, 449, - 318, 267, 386, 282, 291, 0, 0, 336, 367, 210, - 424, 387, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 194, 287, 0, 356, 250, 451, 431, - 427, 0, 0, 226, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 183, 195, 203, - 213, 225, 240, 248, 258, 263, 266, 270, 271, 274, - 279, 296, 301, 302, 303, 304, 320, 321, 322, 325, - 328, 329, 332, 334, 335, 338, 344, 345, 346, 347, - 348, 350, 357, 361, 369, 370, 371, 372, 373, 375, - 376, 380, 381, 382, 383, 391, 395, 411, 412, 423, - 435, 440, 259, 419, 441, 0, 295, 0, 0, 297, - 244, 262, 272, 0, 430, 392, 199, 363, 251, 188, - 216, 202, 223, 238, 241, 276, 305, 311, 340, 343, - 256, 235, 214, 360, 211, 378, 398, 399, 400, 402, - 309, 230, 403, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 0, 0, 234, 1141, 0, 0, 0, 285, 231, - 0, 0, 341, 0, 186, 0, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 0, 289, 0, 0, 388, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 217, 185, 324, 389, 249, 0, 0, 0, - 0, 177, 178, 179, 0, 1140, 0, 0, 0, 0, - 0, 0, 208, 0, 215, 0, 0, 0, 0, 229, - 273, 236, 228, 405, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 0, 313, 0, 0, 0, 0, - 437, 0, 0, 0, 0, 0, 0, 0, 284, 0, - 281, 181, 197, 0, 0, 323, 362, 368, 0, 0, - 0, 220, 0, 366, 337, 422, 204, 247, 359, 342, - 364, 0, 0, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 0, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 0, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 0, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 0, 0, 336, 367, 210, 424, 387, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, - 194, 287, 0, 356, 250, 451, 431, 427, 0, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 0, 0, 297, 244, 262, 272, - 0, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 403, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 0, 285, 231, 0, 0, 341, - 0, 186, 0, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 0, 289, 0, - 0, 388, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 217, - 185, 324, 389, 249, 0, 0, 0, 0, 177, 178, - 179, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 215, 0, 0, 0, 0, 229, 273, 236, 228, - 405, 0, 0, 0, 0, 201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 313, 0, 0, 0, 0, 437, 0, 0, - 0, 2258, 0, 0, 0, 284, 0, 281, 181, 197, - 0, 0, 323, 362, 368, 0, 0, 0, 220, 0, - 366, 337, 422, 204, 247, 359, 342, 364, 0, 0, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 0, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 0, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 0, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 0, - 0, 336, 367, 210, 424, 387, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 194, 287, 0, - 356, 250, 451, 431, 427, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 0, 0, 297, 244, 262, 272, 0, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, 403, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, - 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, - 0, 0, 285, 231, 0, 0, 341, 0, 186, 0, - 379, 219, 294, 292, 408, 245, 237, 233, 218, 269, - 300, 339, 397, 333, 0, 289, 0, 0, 388, 312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 217, 185, 324, 389, - 249, 0, 0, 0, 0, 177, 178, 179, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 215, 0, - 0, 0, 0, 229, 273, 236, 228, 405, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 0, 313, - 0, 0, 0, 0, 437, 0, 0, 0, 2167, 0, - 0, 0, 284, 0, 281, 181, 197, 0, 0, 323, - 362, 368, 0, 0, 0, 220, 0, 366, 337, 422, - 204, 247, 359, 342, 364, 0, 0, 365, 290, 410, - 354, 420, 438, 439, 227, 317, 428, 401, 434, 450, - 198, 224, 331, 394, 425, 385, 310, 406, 407, 280, - 384, 255, 184, 288, 444, 196, 374, 212, 189, 396, - 418, 209, 377, 0, 0, 452, 191, 416, 393, 307, - 277, 278, 190, 0, 358, 232, 253, 222, 326, 413, - 414, 221, 453, 200, 433, 193, 0, 432, 319, 409, - 417, 308, 299, 192, 415, 306, 298, 283, 243, 264, - 352, 293, 353, 265, 315, 314, 316, 0, 187, 0, - 390, 426, 454, 205, 206, 207, 0, 242, 246, 252, - 254, 260, 261, 268, 286, 330, 351, 349, 355, 0, - 404, 421, 429, 436, 442, 443, 445, 446, 447, 448, - 449, 318, 267, 386, 282, 291, 0, 0, 336, 367, - 210, 424, 387, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 194, 287, 0, 356, 250, 451, - 431, 427, 0, 0, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 195, - 203, 213, 225, 240, 248, 258, 263, 266, 270, 271, - 274, 279, 296, 301, 302, 303, 304, 320, 321, 322, - 325, 328, 329, 332, 334, 335, 338, 344, 345, 346, - 347, 348, 350, 357, 361, 369, 370, 371, 372, 373, - 375, 376, 380, 381, 382, 383, 391, 395, 411, 412, - 423, 435, 440, 259, 419, 441, 0, 295, 0, 0, - 297, 244, 262, 272, 0, 430, 392, 199, 363, 251, - 188, 216, 202, 223, 238, 241, 276, 305, 311, 340, - 343, 256, 235, 214, 360, 211, 378, 398, 399, 400, - 402, 309, 230, 403, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 0, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 285, - 231, 0, 0, 341, 0, 186, 0, 379, 219, 294, - 292, 408, 245, 237, 233, 218, 269, 300, 339, 397, - 333, 0, 289, 0, 0, 388, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 217, 185, 324, 389, 249, 0, 80, - 0, 0, 177, 178, 179, 0, 0, 0, 0, 0, - 0, 0, 0, 208, 0, 215, 0, 0, 0, 0, - 229, 273, 236, 228, 405, 0, 0, 0, 0, 201, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 0, 313, 0, 0, 0, - 0, 437, 0, 0, 0, 0, 0, 0, 0, 284, - 0, 281, 181, 197, 0, 0, 323, 362, 368, 0, - 0, 0, 220, 0, 366, 337, 422, 204, 247, 359, - 342, 364, 0, 0, 365, 290, 410, 354, 420, 438, - 439, 227, 317, 428, 401, 434, 450, 198, 224, 331, - 394, 425, 385, 310, 406, 407, 280, 384, 255, 184, - 288, 444, 196, 374, 212, 189, 396, 418, 209, 377, - 0, 0, 452, 191, 416, 393, 307, 277, 278, 190, - 0, 358, 232, 253, 222, 326, 413, 414, 221, 453, - 200, 433, 193, 0, 432, 319, 409, 417, 308, 299, - 192, 415, 306, 298, 283, 243, 264, 352, 293, 353, - 265, 315, 314, 316, 0, 187, 0, 390, 426, 454, - 205, 206, 207, 0, 242, 246, 252, 254, 260, 261, - 268, 286, 330, 351, 349, 355, 0, 404, 421, 429, - 436, 442, 443, 445, 446, 447, 448, 449, 318, 267, - 386, 282, 291, 0, 0, 336, 367, 210, 424, 387, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 194, 287, 0, 356, 250, 451, 431, 427, 0, - 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 195, 203, 213, 225, - 240, 248, 258, 263, 266, 270, 271, 274, 279, 296, - 301, 302, 303, 304, 320, 321, 322, 325, 328, 329, - 332, 334, 335, 338, 344, 345, 346, 347, 348, 350, - 357, 361, 369, 370, 371, 372, 373, 375, 376, 380, - 381, 382, 383, 391, 395, 411, 412, 423, 435, 440, - 259, 419, 441, 0, 295, 0, 0, 297, 244, 262, - 272, 0, 430, 392, 199, 363, 251, 188, 216, 202, - 223, 238, 241, 276, 305, 311, 340, 343, 256, 235, - 214, 360, 211, 378, 398, 399, 400, 402, 309, 230, - 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, - 0, 234, 0, 0, 0, 0, 285, 231, 0, 0, - 341, 0, 186, 0, 379, 219, 294, 292, 408, 245, - 237, 233, 218, 269, 300, 339, 397, 333, 0, 289, - 0, 0, 388, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 217, 185, 324, 389, 249, 0, 0, 0, 0, 177, - 178, 179, 0, 1291, 0, 0, 0, 0, 0, 0, - 208, 0, 215, 0, 0, 0, 0, 229, 273, 236, - 228, 405, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 0, 313, 0, 0, 0, 0, 437, 0, - 0, 0, 0, 0, 0, 0, 284, 0, 281, 181, - 197, 0, 0, 323, 362, 368, 0, 0, 0, 220, - 0, 366, 337, 422, 204, 247, 359, 342, 364, 0, - 0, 365, 290, 410, 354, 420, 438, 439, 227, 317, - 428, 401, 434, 450, 198, 224, 331, 394, 425, 385, - 310, 406, 407, 280, 384, 255, 184, 288, 444, 196, - 374, 212, 189, 396, 418, 209, 377, 0, 0, 452, - 191, 416, 393, 307, 277, 278, 190, 0, 358, 232, - 253, 222, 326, 413, 414, 221, 453, 200, 433, 193, - 0, 432, 319, 409, 417, 308, 299, 192, 415, 306, - 298, 283, 243, 264, 352, 293, 353, 265, 315, 314, - 316, 0, 187, 0, 390, 426, 454, 205, 206, 207, - 0, 242, 246, 252, 254, 260, 261, 268, 286, 330, - 351, 349, 355, 0, 404, 421, 429, 436, 442, 443, - 445, 446, 447, 448, 449, 318, 267, 386, 282, 291, - 0, 0, 336, 367, 210, 424, 387, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 194, 287, - 0, 356, 250, 451, 431, 427, 0, 0, 226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 195, 203, 213, 225, 240, 248, 258, - 263, 266, 270, 271, 274, 279, 296, 301, 302, 303, - 304, 320, 321, 322, 325, 328, 329, 332, 334, 335, - 338, 344, 345, 346, 347, 348, 350, 357, 361, 369, - 370, 371, 372, 373, 375, 376, 380, 381, 382, 383, - 391, 395, 411, 412, 423, 435, 440, 259, 419, 441, - 0, 295, 0, 0, 297, 244, 262, 272, 0, 430, - 392, 199, 363, 251, 188, 216, 202, 223, 238, 241, - 276, 305, 311, 340, 343, 256, 235, 214, 360, 211, - 378, 398, 399, 400, 402, 309, 230, 403, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, - 0, 0, 0, 285, 231, 0, 0, 341, 0, 186, - 0, 379, 219, 294, 292, 408, 245, 237, 233, 218, - 269, 300, 339, 397, 333, 0, 289, 0, 0, 388, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 217, 185, 324, - 389, 249, 0, 0, 0, 0, 177, 178, 179, 0, - 1109, 0, 0, 0, 0, 0, 0, 208, 0, 215, - 0, 0, 0, 0, 229, 273, 236, 228, 405, 0, - 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, - 313, 0, 0, 0, 0, 437, 0, 0, 0, 0, - 0, 0, 0, 284, 0, 281, 181, 197, 0, 0, - 323, 362, 368, 0, 0, 0, 220, 0, 366, 337, - 422, 204, 247, 359, 342, 364, 0, 0, 365, 290, - 410, 354, 420, 438, 439, 227, 317, 428, 401, 434, - 450, 198, 224, 331, 394, 425, 385, 310, 406, 407, - 280, 384, 255, 184, 288, 444, 196, 374, 212, 189, - 396, 418, 209, 377, 0, 0, 452, 191, 416, 393, - 307, 277, 278, 190, 0, 358, 232, 253, 222, 326, - 413, 414, 221, 453, 200, 433, 193, 0, 432, 319, - 409, 417, 308, 299, 192, 415, 306, 298, 283, 243, - 264, 352, 293, 353, 265, 315, 314, 316, 0, 187, - 0, 390, 426, 454, 205, 206, 207, 0, 242, 246, - 252, 254, 260, 261, 268, 286, 330, 351, 349, 355, - 0, 404, 421, 429, 436, 442, 443, 445, 446, 447, - 448, 449, 318, 267, 386, 282, 291, 0, 0, 336, - 367, 210, 424, 387, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 180, 194, 287, 0, 356, 250, - 451, 431, 427, 0, 0, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 195, 203, 213, 225, 240, 248, 258, 263, 266, 270, - 271, 274, 279, 296, 301, 302, 303, 304, 320, 321, - 322, 325, 328, 329, 332, 334, 335, 338, 344, 345, - 346, 347, 348, 350, 357, 361, 369, 370, 371, 372, - 373, 375, 376, 380, 381, 382, 383, 391, 395, 411, - 412, 423, 435, 440, 259, 419, 441, 0, 295, 0, - 0, 297, 244, 262, 272, 0, 430, 392, 199, 363, - 251, 188, 216, 202, 223, 238, 241, 276, 305, 311, - 340, 343, 256, 235, 214, 360, 211, 378, 398, 399, - 400, 402, 309, 230, 403, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, - 285, 231, 0, 0, 341, 0, 186, 0, 379, 219, - 294, 292, 408, 245, 237, 233, 218, 269, 300, 339, - 397, 333, 0, 289, 0, 0, 388, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 275, 217, 185, 324, 389, 249, 0, - 0, 0, 0, 177, 178, 179, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 0, 215, 0, 0, 0, - 0, 229, 273, 236, 228, 405, 0, 0, 0, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 0, 313, 0, 0, - 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, - 284, 0, 281, 181, 197, 0, 0, 323, 362, 368, - 0, 0, 0, 220, 0, 366, 337, 422, 204, 247, - 359, 342, 364, 0, 0, 365, 290, 410, 354, 420, - 438, 439, 227, 317, 428, 401, 434, 450, 198, 224, - 331, 394, 425, 385, 310, 406, 407, 280, 384, 255, - 184, 288, 444, 196, 374, 212, 189, 396, 418, 209, - 377, 0, 0, 452, 191, 416, 393, 307, 277, 278, - 190, 0, 358, 232, 253, 222, 326, 413, 414, 221, - 453, 200, 433, 193, 0, 432, 319, 409, 417, 308, - 299, 192, 415, 306, 298, 283, 243, 264, 352, 293, - 353, 265, 315, 314, 316, 0, 187, 0, 390, 426, - 454, 205, 206, 207, 0, 242, 246, 252, 254, 260, - 261, 268, 286, 330, 351, 349, 355, 0, 404, 421, - 429, 436, 442, 443, 445, 446, 447, 448, 449, 318, - 267, 386, 282, 291, 0, 0, 336, 367, 210, 424, - 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 194, 287, 1382, 356, 250, 451, 431, 427, - 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 195, 203, 213, - 225, 240, 248, 258, 263, 266, 270, 271, 274, 279, - 296, 301, 302, 303, 304, 320, 321, 322, 325, 328, - 329, 332, 334, 335, 338, 344, 345, 346, 347, 348, - 350, 357, 361, 369, 370, 371, 372, 373, 375, 376, - 380, 381, 382, 383, 391, 395, 411, 412, 423, 435, - 440, 259, 419, 441, 0, 295, 0, 0, 297, 244, - 262, 272, 0, 430, 392, 199, 363, 251, 188, 216, - 202, 223, 238, 241, 276, 305, 311, 340, 343, 256, - 235, 214, 360, 211, 378, 398, 399, 400, 402, 309, - 230, 403, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 0, 1263, 0, 0, 0, 0, - 0, 0, 234, 0, 0, 0, 0, 285, 231, 0, - 0, 341, 0, 186, 0, 379, 219, 294, 292, 408, - 245, 237, 233, 218, 269, 300, 339, 397, 333, 0, - 289, 0, 0, 388, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 275, 217, 185, 324, 389, 249, 0, 0, 0, 0, - 177, 178, 179, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 0, 215, 0, 0, 0, 0, 229, 273, - 236, 228, 405, 0, 0, 0, 0, 201, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 257, 0, 313, 0, 0, 0, 0, 437, - 0, 0, 0, 0, 0, 0, 0, 284, 0, 281, - 181, 197, 0, 0, 323, 362, 368, 0, 0, 0, - 220, 0, 366, 337, 422, 204, 247, 359, 342, 364, - 0, 0, 365, 290, 410, 354, 420, 438, 439, 227, - 317, 428, 401, 434, 450, 198, 224, 331, 394, 425, - 385, 310, 406, 407, 280, 384, 255, 184, 288, 444, - 196, 374, 212, 189, 396, 418, 209, 377, 0, 0, - 452, 191, 416, 393, 307, 277, 278, 190, 0, 358, - 232, 253, 222, 326, 413, 414, 221, 453, 200, 433, - 193, 0, 432, 319, 409, 417, 308, 299, 192, 415, - 306, 298, 283, 243, 264, 352, 293, 353, 265, 315, - 314, 316, 0, 187, 0, 390, 426, 454, 205, 206, - 207, 0, 242, 246, 252, 254, 260, 261, 268, 286, - 330, 351, 349, 355, 0, 404, 421, 429, 436, 442, - 443, 445, 446, 447, 448, 449, 318, 267, 386, 282, - 291, 0, 0, 336, 367, 210, 424, 387, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 180, 194, - 287, 0, 356, 250, 451, 431, 427, 0, 0, 226, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 182, 183, 195, 203, 213, 225, 240, 248, - 258, 263, 266, 270, 271, 274, 279, 296, 301, 302, - 303, 304, 320, 321, 322, 325, 328, 329, 332, 334, - 335, 338, 344, 345, 346, 347, 348, 350, 357, 361, - 369, 370, 371, 372, 373, 375, 376, 380, 381, 382, - 383, 391, 395, 411, 412, 423, 435, 440, 259, 419, - 441, 0, 295, 0, 0, 297, 244, 262, 272, 0, - 430, 392, 199, 363, 251, 188, 216, 202, 223, 238, - 241, 276, 305, 311, 340, 343, 256, 235, 214, 360, - 211, 378, 398, 399, 400, 402, 309, 230, 403, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 327, 0, 1261, 0, 0, 0, 0, 0, 0, 234, - 0, 0, 0, 0, 285, 231, 0, 0, 341, 0, - 186, 0, 379, 219, 294, 292, 408, 245, 237, 233, - 218, 269, 300, 339, 397, 333, 0, 289, 0, 0, - 388, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 217, 185, - 324, 389, 249, 0, 0, 0, 0, 177, 178, 179, - 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, - 215, 0, 0, 0, 0, 229, 273, 236, 228, 405, - 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 0, 313, 0, 0, 0, 0, 437, 0, 0, 0, - 0, 0, 0, 0, 284, 0, 281, 181, 197, 0, - 0, 323, 362, 368, 0, 0, 0, 220, 0, 366, - 337, 422, 204, 247, 359, 342, 364, 0, 0, 365, - 290, 410, 354, 420, 438, 439, 227, 317, 428, 401, - 434, 450, 198, 224, 331, 394, 425, 385, 310, 406, - 407, 280, 384, 255, 184, 288, 444, 196, 374, 212, - 189, 396, 418, 209, 377, 0, 0, 452, 191, 416, - 393, 307, 277, 278, 190, 0, 358, 232, 253, 222, - 326, 413, 414, 221, 453, 200, 433, 193, 0, 432, - 319, 409, 417, 308, 299, 192, 415, 306, 298, 283, - 243, 264, 352, 293, 353, 265, 315, 314, 316, 0, - 187, 0, 390, 426, 454, 205, 206, 207, 0, 242, - 246, 252, 254, 260, 261, 268, 286, 330, 351, 349, - 355, 0, 404, 421, 429, 436, 442, 443, 445, 446, - 447, 448, 449, 318, 267, 386, 282, 291, 0, 0, - 336, 367, 210, 424, 387, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 180, 194, 287, 0, 356, - 250, 451, 431, 427, 0, 0, 226, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 195, 203, 213, 225, 240, 248, 258, 263, 266, - 270, 271, 274, 279, 296, 301, 302, 303, 304, 320, - 321, 322, 325, 328, 329, 332, 334, 335, 338, 344, - 345, 346, 347, 348, 350, 357, 361, 369, 370, 371, - 372, 373, 375, 376, 380, 381, 382, 383, 391, 395, - 411, 412, 423, 435, 440, 259, 419, 441, 0, 295, - 0, 0, 297, 244, 262, 272, 0, 430, 392, 199, - 363, 251, 188, 216, 202, 223, 238, 241, 276, 305, - 311, 340, 343, 256, 235, 214, 360, 211, 378, 398, - 399, 400, 402, 309, 230, 403, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 1259, - 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, - 0, 285, 231, 0, 0, 341, 0, 186, 0, 379, - 219, 294, 292, 408, 245, 237, 233, 218, 269, 300, - 339, 397, 333, 0, 289, 0, 0, 388, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 217, 185, 324, 389, 249, - 0, 0, 0, 0, 177, 178, 179, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 0, 215, 0, 0, - 0, 0, 229, 273, 236, 228, 405, 0, 0, 0, - 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 0, 313, 0, - 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, - 0, 284, 0, 281, 181, 197, 0, 0, 323, 362, - 368, 0, 0, 0, 220, 0, 366, 337, 422, 204, - 247, 359, 342, 364, 0, 0, 365, 290, 410, 354, - 420, 438, 439, 227, 317, 428, 401, 434, 450, 198, - 224, 331, 394, 425, 385, 310, 406, 407, 280, 384, - 255, 184, 288, 444, 196, 374, 212, 189, 396, 418, - 209, 377, 0, 0, 452, 191, 416, 393, 307, 277, - 278, 190, 0, 358, 232, 253, 222, 326, 413, 414, - 221, 453, 200, 433, 193, 0, 432, 319, 409, 417, - 308, 299, 192, 415, 306, 298, 283, 243, 264, 352, - 293, 353, 265, 315, 314, 316, 0, 187, 0, 390, - 426, 454, 205, 206, 207, 0, 242, 246, 252, 254, - 260, 261, 268, 286, 330, 351, 349, 355, 0, 404, - 421, 429, 436, 442, 443, 445, 446, 447, 448, 449, - 318, 267, 386, 282, 291, 0, 0, 336, 367, 210, - 424, 387, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 194, 287, 0, 356, 250, 451, 431, - 427, 0, 0, 226, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 183, 195, 203, - 213, 225, 240, 248, 258, 263, 266, 270, 271, 274, - 279, 296, 301, 302, 303, 304, 320, 321, 322, 325, - 328, 329, 332, 334, 335, 338, 344, 345, 346, 347, - 348, 350, 357, 361, 369, 370, 371, 372, 373, 375, - 376, 380, 381, 382, 383, 391, 395, 411, 412, 423, - 435, 440, 259, 419, 441, 0, 295, 0, 0, 297, - 244, 262, 272, 0, 430, 392, 199, 363, 251, 188, - 216, 202, 223, 238, 241, 276, 305, 311, 340, 343, - 256, 235, 214, 360, 211, 378, 398, 399, 400, 402, - 309, 230, 403, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 1257, 0, 0, 0, - 0, 0, 0, 234, 0, 0, 0, 0, 285, 231, - 0, 0, 341, 0, 186, 0, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 0, 289, 0, 0, 388, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 217, 185, 324, 389, 249, 0, 0, 0, - 0, 177, 178, 179, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 0, 215, 0, 0, 0, 0, 229, - 273, 236, 228, 405, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 0, 313, 0, 0, 0, 0, - 437, 0, 0, 0, 0, 0, 0, 0, 284, 0, - 281, 181, 197, 0, 0, 323, 362, 368, 0, 0, - 0, 220, 0, 366, 337, 422, 204, 247, 359, 342, - 364, 0, 0, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 0, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 0, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 0, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 0, 0, 336, 367, 210, 424, 387, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, - 194, 287, 0, 356, 250, 451, 431, 427, 0, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 0, 0, 297, 244, 262, 272, - 0, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 403, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 1255, 0, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 0, 285, 231, 0, 0, 341, - 0, 186, 0, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 0, 289, 0, - 0, 388, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 217, - 185, 324, 389, 249, 0, 0, 0, 0, 177, 178, - 179, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 215, 0, 0, 0, 0, 229, 273, 236, 228, - 405, 0, 0, 0, 0, 201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 313, 0, 0, 0, 0, 437, 0, 0, - 0, 0, 0, 0, 0, 284, 0, 281, 181, 197, - 0, 0, 323, 362, 368, 0, 0, 0, 220, 0, - 366, 337, 422, 204, 247, 359, 342, 364, 0, 0, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 0, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 0, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 0, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 0, - 0, 336, 367, 210, 424, 387, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 194, 287, 0, - 356, 250, 451, 431, 427, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 0, 0, 297, 244, 262, 272, 0, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, 403, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 327, 0, - 1251, 0, 0, 0, 0, 0, 0, 234, 0, 0, - 0, 0, 285, 231, 0, 0, 341, 0, 186, 0, - 379, 219, 294, 292, 408, 245, 237, 233, 218, 269, - 300, 339, 397, 333, 0, 289, 0, 0, 388, 312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 217, 185, 324, 389, - 249, 0, 0, 0, 0, 177, 178, 179, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 215, 0, - 0, 0, 0, 229, 273, 236, 228, 405, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 257, 0, 313, - 0, 0, 0, 0, 437, 0, 0, 0, 0, 0, - 0, 0, 284, 0, 281, 181, 197, 0, 0, 323, - 362, 368, 0, 0, 0, 220, 0, 366, 337, 422, - 204, 247, 359, 342, 364, 0, 0, 365, 290, 410, - 354, 420, 438, 439, 227, 317, 428, 401, 434, 450, - 198, 224, 331, 394, 425, 385, 310, 406, 407, 280, - 384, 255, 184, 288, 444, 196, 374, 212, 189, 396, - 418, 209, 377, 0, 0, 452, 191, 416, 393, 307, - 277, 278, 190, 0, 358, 232, 253, 222, 326, 413, - 414, 221, 453, 200, 433, 193, 0, 432, 319, 409, - 417, 308, 299, 192, 415, 306, 298, 283, 243, 264, - 352, 293, 353, 265, 315, 314, 316, 0, 187, 0, - 390, 426, 454, 205, 206, 207, 0, 242, 246, 252, - 254, 260, 261, 268, 286, 330, 351, 349, 355, 0, - 404, 421, 429, 436, 442, 443, 445, 446, 447, 448, - 449, 318, 267, 386, 282, 291, 0, 0, 336, 367, - 210, 424, 387, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 180, 194, 287, 0, 356, 250, 451, - 431, 427, 0, 0, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 182, 183, 195, - 203, 213, 225, 240, 248, 258, 263, 266, 270, 271, - 274, 279, 296, 301, 302, 303, 304, 320, 321, 322, - 325, 328, 329, 332, 334, 335, 338, 344, 345, 346, - 347, 348, 350, 357, 361, 369, 370, 371, 372, 373, - 375, 376, 380, 381, 382, 383, 391, 395, 411, 412, - 423, 435, 440, 259, 419, 441, 0, 295, 0, 0, - 297, 244, 262, 272, 0, 430, 392, 199, 363, 251, - 188, 216, 202, 223, 238, 241, 276, 305, 311, 340, - 343, 256, 235, 214, 360, 211, 378, 398, 399, 400, - 402, 309, 230, 403, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 327, 0, 1249, 0, 0, - 0, 0, 0, 0, 234, 0, 0, 0, 0, 285, - 231, 0, 0, 341, 0, 186, 0, 379, 219, 294, - 292, 408, 245, 237, 233, 218, 269, 300, 339, 397, - 333, 0, 289, 0, 0, 388, 312, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 217, 185, 324, 389, 249, 0, 0, - 0, 0, 177, 178, 179, 0, 0, 0, 0, 0, - 0, 0, 0, 208, 0, 215, 0, 0, 0, 0, - 229, 273, 236, 228, 405, 0, 0, 0, 0, 201, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 257, 0, 313, 0, 0, 0, - 0, 437, 0, 0, 0, 0, 0, 0, 0, 284, - 0, 281, 181, 197, 0, 0, 323, 362, 368, 0, - 0, 0, 220, 0, 366, 337, 422, 204, 247, 359, - 342, 364, 0, 0, 365, 290, 410, 354, 420, 438, - 439, 227, 317, 428, 401, 434, 450, 198, 224, 331, - 394, 425, 385, 310, 406, 407, 280, 384, 255, 184, - 288, 444, 196, 374, 212, 189, 396, 418, 209, 377, - 0, 0, 452, 191, 416, 393, 307, 277, 278, 190, - 0, 358, 232, 253, 222, 326, 413, 414, 221, 453, - 200, 433, 193, 0, 432, 319, 409, 417, 308, 299, - 192, 415, 306, 298, 283, 243, 264, 352, 293, 353, - 265, 315, 314, 316, 0, 187, 0, 390, 426, 454, - 205, 206, 207, 0, 242, 246, 252, 254, 260, 261, - 268, 286, 330, 351, 349, 355, 0, 404, 421, 429, - 436, 442, 443, 445, 446, 447, 448, 449, 318, 267, - 386, 282, 291, 0, 0, 336, 367, 210, 424, 387, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 194, 287, 0, 356, 250, 451, 431, 427, 0, - 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 182, 183, 195, 203, 213, 225, - 240, 248, 258, 263, 266, 270, 271, 274, 279, 296, - 301, 302, 303, 304, 320, 321, 322, 325, 328, 329, - 332, 334, 335, 338, 344, 345, 346, 347, 348, 350, - 357, 361, 369, 370, 371, 372, 373, 375, 376, 380, - 381, 382, 383, 391, 395, 411, 412, 423, 435, 440, - 259, 419, 441, 0, 295, 0, 0, 297, 244, 262, - 272, 0, 430, 392, 199, 363, 251, 188, 216, 202, - 223, 238, 241, 276, 305, 311, 340, 343, 256, 235, - 214, 360, 211, 378, 398, 399, 400, 402, 309, 230, - 403, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 327, 0, 1247, 0, 0, 0, 0, 0, - 0, 234, 0, 0, 0, 0, 285, 231, 0, 0, - 341, 0, 186, 0, 379, 219, 294, 292, 408, 245, - 237, 233, 218, 269, 300, 339, 397, 333, 0, 289, - 0, 0, 388, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 217, 185, 324, 389, 249, 0, 0, 0, 0, 177, - 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 208, 0, 215, 0, 0, 0, 0, 229, 273, 236, - 228, 405, 0, 0, 0, 0, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 239, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 257, 0, 313, 0, 0, 0, 0, 437, 0, - 0, 0, 0, 0, 0, 0, 284, 0, 281, 181, - 197, 0, 0, 323, 362, 368, 0, 0, 0, 220, - 0, 366, 337, 422, 204, 247, 359, 342, 364, 0, - 0, 365, 290, 410, 354, 420, 438, 439, 227, 317, - 428, 401, 434, 450, 198, 224, 331, 394, 425, 385, - 310, 406, 407, 280, 384, 255, 184, 288, 444, 196, - 374, 212, 189, 396, 418, 209, 377, 0, 0, 452, - 191, 416, 393, 307, 277, 278, 190, 0, 358, 232, - 253, 222, 326, 413, 414, 221, 453, 200, 433, 193, - 0, 432, 319, 409, 417, 308, 299, 192, 415, 306, - 298, 283, 243, 264, 352, 293, 353, 265, 315, 314, - 316, 0, 187, 0, 390, 426, 454, 205, 206, 207, - 0, 242, 246, 252, 254, 260, 261, 268, 286, 330, - 351, 349, 355, 0, 404, 421, 429, 436, 442, 443, - 445, 446, 447, 448, 449, 318, 267, 386, 282, 291, - 0, 0, 336, 367, 210, 424, 387, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 180, 194, 287, - 0, 356, 250, 451, 431, 427, 0, 0, 226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 183, 195, 203, 213, 225, 240, 248, 258, - 263, 266, 270, 271, 274, 279, 296, 301, 302, 303, - 304, 320, 321, 322, 325, 328, 329, 332, 334, 335, - 338, 344, 345, 346, 347, 348, 350, 357, 361, 369, - 370, 371, 372, 373, 375, 376, 380, 381, 382, 383, - 391, 395, 411, 412, 423, 435, 440, 259, 419, 441, - 0, 295, 0, 0, 297, 244, 262, 272, 0, 430, - 392, 199, 363, 251, 188, 216, 202, 223, 238, 241, - 276, 305, 311, 340, 343, 256, 235, 214, 360, 211, - 378, 398, 399, 400, 402, 309, 230, 403, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 327, - 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, - 0, 0, 0, 285, 231, 0, 0, 341, 0, 186, - 0, 379, 219, 294, 292, 408, 245, 237, 233, 218, - 269, 300, 339, 397, 333, 0, 289, 0, 0, 388, - 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 217, 185, 324, - 389, 249, 0, 1222, 0, 0, 177, 178, 179, 0, - 0, 0, 0, 0, 0, 0, 0, 208, 0, 215, - 0, 0, 0, 0, 229, 273, 236, 228, 405, 0, - 0, 0, 0, 201, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, - 313, 0, 0, 0, 0, 437, 0, 0, 0, 0, - 0, 0, 0, 284, 0, 281, 181, 197, 0, 0, - 323, 362, 368, 0, 0, 0, 220, 0, 366, 337, - 422, 204, 247, 359, 342, 364, 0, 0, 365, 290, - 410, 354, 420, 438, 439, 227, 317, 428, 401, 434, - 450, 198, 224, 331, 394, 425, 385, 310, 406, 407, - 280, 384, 255, 184, 288, 444, 196, 374, 212, 189, - 396, 418, 209, 377, 0, 0, 452, 191, 416, 393, - 307, 277, 278, 190, 0, 358, 232, 253, 222, 326, - 413, 414, 221, 453, 200, 433, 193, 0, 432, 319, - 409, 417, 308, 299, 192, 415, 306, 298, 283, 243, - 264, 352, 293, 353, 265, 315, 314, 316, 0, 187, - 0, 390, 426, 454, 205, 206, 207, 0, 242, 246, - 252, 254, 260, 261, 268, 286, 330, 351, 349, 355, - 0, 404, 421, 429, 436, 442, 443, 445, 446, 447, - 448, 449, 318, 267, 386, 282, 291, 0, 0, 336, - 367, 210, 424, 387, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 180, 194, 287, 0, 356, 250, - 451, 431, 427, 0, 0, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, - 195, 203, 213, 225, 240, 248, 258, 263, 266, 270, - 271, 274, 279, 296, 301, 302, 303, 304, 320, 321, - 322, 325, 328, 329, 332, 334, 335, 338, 344, 345, - 346, 347, 348, 350, 357, 361, 369, 370, 371, 372, - 373, 375, 376, 380, 381, 382, 383, 391, 395, 411, - 412, 423, 435, 440, 259, 419, 441, 0, 295, 0, - 0, 297, 244, 262, 272, 0, 430, 392, 199, 363, - 251, 188, 216, 202, 223, 238, 241, 276, 305, 311, - 340, 343, 256, 235, 214, 360, 211, 378, 398, 399, - 400, 402, 309, 230, 403, 0, 0, 0, 0, 1123, - 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, - 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, - 285, 231, 0, 0, 341, 0, 186, 0, 379, 219, - 294, 292, 408, 245, 237, 233, 218, 269, 300, 339, - 397, 333, 0, 289, 0, 0, 388, 312, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 275, 217, 185, 324, 389, 249, 0, - 0, 0, 0, 177, 178, 179, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 0, 215, 0, 0, 0, - 0, 229, 273, 236, 228, 405, 0, 0, 0, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 257, 0, 313, 0, 0, - 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, - 284, 0, 281, 181, 197, 0, 0, 323, 362, 368, - 0, 0, 0, 220, 0, 366, 337, 422, 204, 247, - 359, 342, 364, 0, 0, 365, 290, 410, 354, 420, - 438, 439, 227, 317, 428, 401, 434, 450, 198, 224, - 331, 394, 425, 385, 310, 406, 407, 280, 384, 255, - 184, 288, 444, 196, 374, 212, 189, 396, 418, 209, - 377, 0, 0, 452, 191, 416, 393, 307, 277, 278, - 190, 0, 358, 232, 253, 222, 326, 413, 414, 221, - 453, 200, 433, 193, 0, 432, 319, 409, 417, 308, - 299, 192, 415, 306, 298, 283, 243, 264, 352, 293, - 353, 265, 315, 314, 316, 0, 187, 0, 390, 426, - 454, 205, 206, 207, 0, 242, 246, 252, 254, 260, - 261, 268, 286, 330, 351, 349, 355, 0, 404, 421, - 429, 436, 442, 443, 445, 446, 447, 448, 449, 318, - 267, 386, 282, 291, 0, 0, 336, 367, 210, 424, - 387, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 194, 287, 0, 356, 250, 451, 431, 427, - 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 182, 183, 195, 203, 213, - 225, 240, 248, 258, 263, 266, 270, 271, 274, 279, - 296, 301, 302, 303, 304, 320, 321, 322, 325, 328, - 329, 332, 334, 335, 338, 344, 345, 346, 347, 348, - 350, 357, 361, 369, 370, 371, 372, 373, 375, 376, - 380, 381, 382, 383, 391, 395, 411, 412, 423, 435, - 440, 259, 419, 441, 0, 295, 0, 0, 297, 244, - 262, 272, 0, 430, 392, 199, 363, 251, 188, 216, - 202, 223, 238, 241, 276, 305, 311, 340, 343, 256, - 235, 214, 360, 211, 378, 398, 399, 400, 402, 309, - 230, 403, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, - 0, 1114, 234, 0, 0, 0, 0, 285, 231, 0, - 0, 341, 0, 186, 0, 379, 219, 294, 292, 408, - 245, 237, 233, 218, 269, 300, 339, 397, 333, 0, - 289, 0, 0, 388, 312, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 275, 217, 185, 324, 389, 249, 0, 0, 0, 0, - 177, 178, 179, 0, 0, 0, 0, 0, 0, 0, - 0, 208, 0, 215, 0, 0, 0, 0, 229, 273, - 236, 228, 405, 0, 0, 0, 0, 201, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 257, 0, 313, 0, 0, 0, 0, 437, - 0, 0, 0, 0, 0, 0, 0, 284, 0, 281, - 181, 197, 0, 0, 323, 362, 368, 0, 0, 0, - 220, 0, 366, 337, 422, 204, 247, 359, 342, 364, - 0, 0, 365, 290, 410, 354, 420, 438, 439, 227, - 317, 428, 401, 434, 450, 198, 224, 331, 394, 425, - 385, 310, 406, 407, 280, 384, 255, 184, 288, 444, - 196, 374, 212, 189, 396, 418, 209, 377, 0, 0, - 452, 191, 416, 393, 307, 277, 278, 190, 0, 358, - 232, 253, 222, 326, 413, 414, 221, 453, 200, 433, - 193, 0, 432, 319, 409, 417, 308, 299, 192, 415, - 306, 298, 283, 243, 264, 352, 293, 353, 265, 315, - 314, 316, 0, 187, 0, 390, 426, 454, 205, 206, - 207, 0, 242, 246, 252, 254, 260, 261, 268, 286, - 330, 351, 349, 355, 0, 404, 421, 429, 436, 442, - 443, 445, 446, 447, 448, 449, 318, 267, 386, 282, - 291, 0, 0, 336, 367, 210, 424, 387, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 180, 194, - 287, 0, 356, 250, 451, 431, 427, 0, 0, 226, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 182, 183, 195, 203, 213, 225, 240, 248, - 258, 263, 266, 270, 271, 274, 279, 296, 301, 302, - 303, 304, 320, 321, 322, 325, 328, 329, 332, 334, - 335, 338, 344, 345, 346, 347, 348, 350, 357, 361, - 369, 370, 371, 372, 373, 375, 376, 380, 381, 382, - 383, 391, 395, 411, 412, 423, 435, 440, 259, 419, - 441, 0, 295, 0, 0, 297, 244, 262, 272, 0, - 430, 392, 199, 363, 251, 188, 216, 202, 223, 238, - 241, 276, 305, 311, 340, 343, 256, 235, 214, 360, - 211, 378, 398, 399, 400, 402, 309, 230, 403, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 327, 0, 0, 0, 0, 0, 0, 0, 0, 234, - 0, 0, 0, 0, 285, 231, 0, 0, 341, 0, - 186, 0, 379, 219, 294, 292, 408, 245, 237, 233, - 218, 269, 300, 339, 397, 333, 0, 289, 0, 0, - 388, 312, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 217, 185, - 324, 389, 249, 0, 0, 0, 0, 177, 178, 179, - 0, 959, 0, 0, 0, 0, 0, 0, 208, 0, - 215, 0, 0, 0, 0, 229, 273, 236, 228, 405, - 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, - 0, 313, 0, 0, 0, 0, 437, 0, 0, 0, - 0, 0, 0, 0, 284, 0, 281, 181, 197, 0, - 0, 323, 362, 368, 0, 0, 0, 220, 0, 366, - 337, 422, 204, 247, 359, 342, 364, 0, 0, 365, - 290, 410, 354, 420, 438, 439, 227, 317, 428, 401, - 434, 450, 198, 224, 331, 394, 425, 385, 310, 406, - 407, 280, 384, 255, 184, 288, 444, 196, 374, 212, - 189, 396, 418, 209, 377, 0, 0, 452, 191, 416, - 393, 307, 277, 278, 190, 0, 358, 232, 253, 222, - 326, 413, 414, 221, 453, 200, 433, 193, 0, 432, - 319, 409, 417, 308, 299, 192, 415, 306, 298, 283, - 243, 264, 352, 293, 353, 265, 315, 314, 316, 0, - 187, 0, 390, 426, 454, 205, 206, 207, 0, 242, - 246, 252, 254, 260, 261, 268, 286, 330, 351, 349, - 355, 0, 404, 421, 429, 436, 442, 443, 445, 446, - 447, 448, 449, 318, 267, 386, 282, 291, 0, 0, - 336, 367, 210, 424, 387, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 180, 194, 287, 0, 356, - 250, 451, 431, 427, 0, 0, 226, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, - 183, 195, 203, 213, 225, 240, 248, 258, 263, 266, - 270, 271, 274, 279, 296, 301, 302, 303, 304, 320, - 321, 322, 325, 328, 329, 332, 334, 335, 338, 344, - 345, 346, 347, 348, 350, 357, 361, 369, 370, 371, - 372, 373, 375, 376, 380, 381, 382, 383, 391, 395, - 411, 412, 423, 435, 440, 259, 419, 441, 0, 295, - 0, 0, 297, 244, 262, 272, 0, 430, 392, 199, - 363, 251, 188, 216, 202, 223, 238, 241, 276, 305, - 311, 340, 343, 256, 235, 214, 360, 211, 378, 398, - 399, 400, 402, 309, 230, 403, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, - 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, - 0, 285, 231, 0, 0, 341, 0, 186, 0, 379, - 219, 294, 292, 408, 245, 237, 233, 218, 269, 300, - 339, 397, 333, 0, 289, 0, 0, 388, 312, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 217, 185, 324, 389, 249, - 0, 0, 0, 0, 177, 178, 179, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 0, 215, 0, 0, - 0, 0, 229, 273, 236, 228, 405, 0, 0, 0, - 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 510, 0, 257, 0, 313, 0, - 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, - 0, 284, 0, 281, 181, 197, 0, 0, 323, 362, - 368, 0, 0, 0, 220, 0, 366, 337, 422, 204, - 247, 359, 342, 364, 0, 0, 365, 290, 410, 354, - 420, 438, 439, 227, 317, 428, 401, 434, 450, 198, - 224, 331, 394, 425, 385, 310, 406, 407, 280, 384, - 255, 184, 288, 444, 196, 374, 212, 189, 396, 418, - 209, 377, 0, 0, 452, 191, 416, 393, 307, 277, - 278, 190, 0, 358, 232, 253, 222, 326, 413, 414, - 221, 453, 200, 433, 193, 0, 432, 319, 409, 417, - 308, 299, 192, 415, 306, 298, 283, 243, 264, 352, - 293, 353, 265, 315, 314, 316, 0, 187, 0, 390, - 426, 454, 205, 206, 207, 0, 242, 246, 252, 254, - 260, 261, 268, 286, 330, 351, 349, 355, 0, 404, - 421, 429, 436, 442, 443, 445, 446, 447, 448, 449, - 318, 267, 386, 282, 291, 0, 0, 336, 367, 210, - 424, 387, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 194, 287, 0, 356, 250, 451, 431, - 427, 0, 0, 226, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 183, 195, 203, - 213, 225, 240, 248, 258, 263, 266, 270, 271, 274, - 279, 296, 301, 302, 303, 304, 320, 321, 322, 325, - 328, 329, 332, 334, 335, 338, 344, 345, 346, 347, - 348, 350, 357, 361, 369, 370, 371, 372, 373, 375, - 376, 380, 381, 382, 383, 391, 395, 411, 412, 423, - 435, 440, 509, 419, 441, 0, 295, 0, 0, 297, - 244, 262, 272, 0, 430, 392, 199, 363, 251, 188, - 216, 202, 223, 238, 241, 276, 305, 311, 340, 343, - 256, 235, 214, 360, 211, 378, 398, 399, 400, 402, - 309, 230, 403, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, - 0, 0, 0, 234, 0, 0, 0, 0, 285, 231, - 0, 0, 341, 0, 186, 0, 379, 219, 294, 292, - 408, 245, 237, 233, 218, 269, 300, 339, 397, 333, - 0, 289, 0, 0, 388, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 217, 185, 324, 389, 249, 0, 0, 0, - 0, 177, 178, 179, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 0, 215, 0, 0, 0, 0, 229, - 273, 236, 228, 405, 0, 0, 0, 0, 201, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 257, 0, 313, 0, 0, 457, 0, - 437, 0, 0, 0, 0, 0, 0, 0, 284, 0, - 281, 181, 197, 0, 0, 323, 362, 368, 0, 0, - 0, 220, 0, 366, 337, 422, 204, 247, 359, 342, - 364, 0, 0, 365, 290, 410, 354, 420, 438, 439, - 227, 317, 428, 401, 434, 450, 198, 224, 331, 394, - 425, 385, 310, 406, 407, 280, 384, 255, 184, 288, - 444, 196, 374, 212, 189, 396, 418, 209, 377, 0, - 0, 452, 191, 416, 393, 307, 277, 278, 190, 0, - 358, 232, 253, 222, 326, 413, 414, 221, 453, 200, - 433, 193, 0, 432, 319, 409, 417, 308, 299, 192, - 415, 306, 298, 283, 243, 264, 352, 293, 353, 265, - 315, 314, 316, 0, 187, 0, 390, 426, 454, 205, - 206, 207, 0, 242, 246, 252, 254, 260, 261, 268, - 286, 330, 351, 349, 355, 0, 404, 421, 429, 436, - 442, 443, 445, 446, 447, 448, 449, 318, 267, 386, - 282, 291, 0, 0, 336, 367, 210, 424, 387, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, - 194, 287, 0, 356, 250, 451, 431, 427, 0, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 182, 183, 195, 203, 213, 225, 240, - 248, 258, 263, 266, 270, 271, 274, 279, 296, 301, - 302, 303, 304, 320, 321, 322, 325, 328, 329, 332, - 334, 335, 338, 344, 345, 346, 347, 348, 350, 357, - 361, 369, 370, 371, 372, 373, 375, 376, 380, 381, - 382, 383, 391, 395, 411, 412, 423, 435, 440, 259, - 419, 441, 0, 295, 0, 0, 297, 244, 262, 272, - 0, 430, 392, 199, 363, 251, 188, 216, 202, 223, - 238, 241, 276, 305, 311, 340, 343, 256, 235, 214, - 360, 211, 378, 398, 399, 400, 402, 309, 230, 403, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, - 234, 0, 0, 0, 0, 285, 231, 0, 0, 341, - 0, 186, 0, 379, 219, 294, 292, 408, 245, 237, - 233, 218, 269, 300, 339, 397, 333, 0, 289, 0, - 0, 388, 312, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 217, - 185, 324, 389, 249, 0, 0, 0, 0, 177, 178, - 179, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 215, 0, 0, 0, 0, 229, 273, 236, 228, - 405, 0, 0, 0, 0, 201, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 257, 0, 313, 0, 0, 0, 0, 437, 0, 0, - 0, 0, 0, 0, 0, 284, 0, 281, 181, 197, - 0, 0, 323, 362, 368, 0, 0, 0, 220, 0, - 366, 337, 422, 204, 247, 359, 342, 364, 0, 0, - 365, 290, 410, 354, 420, 438, 439, 227, 317, 428, - 401, 434, 450, 198, 224, 331, 394, 425, 385, 310, - 406, 407, 280, 384, 255, 184, 288, 444, 196, 374, - 212, 189, 396, 418, 209, 377, 0, 0, 452, 191, - 416, 393, 307, 277, 278, 190, 0, 358, 232, 253, - 222, 326, 413, 414, 221, 453, 200, 433, 193, 0, - 432, 319, 409, 417, 308, 299, 192, 415, 306, 298, - 283, 243, 264, 352, 293, 353, 265, 315, 314, 316, - 0, 187, 0, 390, 426, 454, 205, 206, 207, 0, - 242, 246, 252, 254, 260, 261, 268, 286, 330, 351, - 349, 355, 0, 404, 421, 429, 436, 442, 443, 445, - 446, 447, 448, 449, 318, 267, 386, 282, 291, 0, - 0, 336, 367, 210, 424, 387, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 180, 194, 287, 0, - 356, 250, 451, 431, 427, 0, 0, 226, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 183, 195, 203, 213, 225, 240, 248, 258, 263, - 266, 270, 271, 274, 279, 296, 301, 302, 303, 304, - 320, 321, 322, 325, 328, 329, 332, 334, 335, 338, - 344, 345, 346, 347, 348, 350, 357, 361, 369, 370, - 371, 372, 373, 375, 376, 380, 381, 382, 383, 391, - 395, 411, 412, 423, 435, 440, 259, 419, 441, 0, - 295, 0, 0, 297, 244, 262, 272, 0, 430, 392, - 199, 363, 251, 188, 216, 202, 223, 238, 241, 276, - 305, 311, 340, 343, 256, 235, 214, 360, 211, 378, - 398, 399, 400, 402, 309, 230, + 0, 1727, 1778, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 596, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1757, 1758, 0, 0, 0, 0, + 0, 0, 0, 1777, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1837, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1875, 1876, 1877, 1878, 1879, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1388, 1885, 0, 0, + 1858, 0, 0, 0, 0, 1496, 0, 0, 0, 0, + 0, 0, 1893, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2164, 2165, 2166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2180, 2180, + 2180, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, + 0, 0, 0, 0, 2206, 0, 2208, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1496, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1521, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 639, 1965, 0, 73, + 0, 0, 1521, 1521, 1521, 1521, 1521, 0, 2005, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1777, + 0, 0, 1521, 0, 0, 1521, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2026, + 0, 0, 0, 0, 0, 0, 1496, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2038, + 0, 0, 0, 0, 0, 0, 1496, 0, 0, 2041, + 0, 0, 0, 0, 0, 0, 0, 0, 2277, 0, + 0, 0, 0, 2052, 0, 0, 2055, 0, 0, 0, + 0, 0, 0, 1242, 0, 2282, 0, 0, 0, 0, + 0, 0, 0, 0, 639, 639, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2087, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2077, 0, 0, 0, 0, + 0, 0, 2083, 2084, 2085, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2146, 0, 0, 2147, 2148, 2149, + 0, 1521, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1965, 0, + 73, 0, 1965, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2272, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1965, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2267, 0, 0, 0, 0, 73, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 765, 751, 404, 0, 700, 768, 671, 688, + 778, 691, 694, 734, 650, 713, 328, 685, 73, 675, + 646, 681, 647, 673, 702, 235, 670, 753, 716, 767, + 286, 232, 652, 676, 342, 690, 187, 736, 380, 220, + 295, 293, 409, 246, 238, 234, 219, 270, 301, 340, + 398, 334, 774, 290, 723, 0, 389, 313, 0, 0, + 0, 704, 757, 711, 747, 699, 735, 660, 722, 769, + 686, 731, 770, 276, 218, 186, 325, 390, 250, 0, + 0, 0, 0, 178, 179, 180, 0, 2303, 2304, 0, + 0, 0, 0, 0, 209, 0, 216, 728, 764, 683, + 730, 230, 274, 237, 229, 406, 775, 756, 0, 0, + 202, 766, 706, 733, 781, 645, 725, 0, 648, 651, + 777, 760, 679, 240, 0, 0, 0, 0, 0, 0, + 0, 703, 712, 744, 697, 0, 0, 0, 0, 0, + 0, 0, 0, 677, 0, 721, 0, 0, 0, 656, + 649, 0, 0, 0, 0, 701, 0, 0, 0, 659, + 0, 678, 745, 0, 643, 258, 653, 314, 0, 749, + 759, 698, 438, 763, 696, 695, 740, 657, 755, 689, + 285, 655, 282, 182, 198, 0, 687, 324, 363, 369, + 754, 674, 682, 221, 680, 367, 338, 423, 205, 248, + 360, 343, 365, 720, 738, 366, 291, 411, 355, 421, + 439, 440, 228, 318, 429, 402, 435, 451, 199, 225, + 332, 395, 426, 386, 311, 407, 408, 281, 385, 256, + 185, 289, 445, 197, 375, 213, 190, 397, 419, 210, + 378, 0, 0, 453, 192, 417, 394, 308, 278, 279, + 191, 0, 359, 233, 254, 223, 327, 414, 415, 222, + 454, 201, 434, 194, 959, 433, 320, 410, 418, 309, + 300, 193, 416, 307, 299, 284, 244, 265, 353, 294, + 354, 266, 316, 315, 317, 0, 188, 0, 391, 427, + 455, 206, 207, 208, 669, 243, 247, 253, 255, 261, + 262, 269, 287, 331, 352, 350, 356, 750, 405, 422, + 430, 437, 443, 444, 446, 447, 448, 449, 450, 319, + 268, 387, 283, 292, 742, 780, 337, 368, 211, 425, + 388, 664, 668, 662, 663, 714, 715, 665, 771, 772, + 773, 746, 658, 0, 666, 667, 0, 752, 761, 762, + 719, 181, 195, 288, 776, 357, 251, 452, 432, 428, + 644, 661, 227, 672, 0, 0, 684, 692, 693, 705, + 707, 708, 709, 710, 718, 726, 727, 729, 737, 739, + 741, 743, 748, 758, 779, 183, 184, 196, 204, 214, + 226, 241, 249, 259, 264, 267, 271, 272, 275, 280, + 297, 302, 303, 304, 305, 321, 322, 323, 326, 329, + 330, 333, 335, 336, 339, 345, 346, 347, 348, 349, + 351, 358, 362, 370, 371, 372, 373, 374, 376, 377, + 381, 382, 383, 384, 392, 396, 412, 413, 424, 436, + 441, 260, 420, 442, 0, 296, 717, 724, 298, 245, + 263, 273, 732, 431, 393, 200, 364, 252, 189, 217, + 203, 224, 239, 242, 277, 306, 312, 341, 344, 257, + 236, 215, 361, 212, 379, 399, 400, 401, 403, 310, + 231, 765, 751, 404, 0, 700, 768, 671, 688, 778, + 691, 694, 734, 650, 713, 328, 685, 0, 675, 646, + 681, 647, 673, 702, 235, 670, 753, 716, 767, 286, + 232, 652, 676, 342, 690, 187, 736, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 774, 290, 723, 0, 389, 313, 0, 0, 0, + 704, 757, 711, 747, 699, 735, 660, 722, 769, 686, + 731, 770, 276, 218, 186, 325, 390, 250, 0, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 0, 216, 728, 764, 683, 730, + 230, 274, 237, 229, 406, 775, 756, 0, 0, 202, + 766, 706, 733, 781, 645, 725, 0, 648, 651, 777, + 760, 679, 240, 0, 0, 0, 0, 0, 0, 0, + 703, 712, 744, 697, 0, 0, 0, 0, 0, 0, + 1994, 0, 677, 0, 721, 0, 0, 0, 656, 649, + 0, 0, 0, 0, 701, 0, 0, 0, 659, 0, + 678, 745, 0, 643, 258, 653, 314, 0, 749, 759, + 698, 438, 763, 696, 695, 740, 657, 755, 689, 285, + 655, 282, 182, 198, 0, 687, 324, 363, 369, 754, + 674, 682, 221, 680, 367, 338, 423, 205, 248, 360, + 343, 365, 720, 738, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 959, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 669, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 750, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 742, 780, 337, 368, 211, 425, 388, + 664, 668, 662, 663, 714, 715, 665, 771, 772, 773, + 746, 658, 0, 666, 667, 0, 752, 761, 762, 719, + 181, 195, 288, 776, 357, 251, 452, 432, 428, 644, + 661, 227, 672, 0, 0, 684, 692, 693, 705, 707, + 708, 709, 710, 718, 726, 727, 729, 737, 739, 741, + 743, 748, 758, 779, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 260, 420, 442, 0, 296, 717, 724, 298, 245, 263, + 273, 732, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 765, 751, 404, 0, 700, 768, 671, 688, 778, 691, + 694, 734, 650, 713, 328, 685, 0, 675, 646, 681, + 647, 673, 702, 235, 670, 753, 716, 767, 286, 232, + 652, 676, 342, 690, 187, 736, 380, 220, 295, 293, + 409, 246, 238, 234, 219, 270, 301, 340, 398, 334, + 774, 290, 723, 0, 389, 313, 0, 0, 0, 704, + 757, 711, 747, 699, 735, 660, 722, 769, 686, 731, + 770, 276, 218, 186, 325, 390, 250, 0, 0, 0, + 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 0, 216, 728, 764, 683, 730, 230, + 274, 237, 229, 406, 775, 756, 0, 0, 202, 766, + 706, 733, 781, 645, 725, 0, 648, 651, 777, 760, + 679, 240, 0, 0, 0, 0, 0, 0, 0, 703, + 712, 744, 697, 0, 0, 0, 0, 0, 0, 1954, + 0, 677, 0, 721, 0, 0, 0, 656, 649, 0, + 0, 0, 0, 701, 0, 0, 0, 659, 0, 678, + 745, 0, 643, 258, 653, 314, 0, 749, 759, 698, + 438, 763, 696, 695, 740, 657, 755, 689, 285, 655, + 282, 182, 198, 0, 687, 324, 363, 369, 754, 674, + 682, 221, 680, 367, 338, 423, 205, 248, 360, 343, + 365, 720, 738, 366, 291, 411, 355, 421, 439, 440, + 228, 318, 429, 402, 435, 451, 199, 225, 332, 395, + 426, 386, 311, 407, 408, 281, 385, 256, 185, 289, + 445, 197, 375, 213, 190, 397, 419, 210, 378, 0, + 0, 453, 192, 417, 394, 308, 278, 279, 191, 0, + 359, 233, 254, 223, 327, 414, 415, 222, 454, 201, + 434, 194, 959, 433, 320, 410, 418, 309, 300, 193, + 416, 307, 299, 284, 244, 265, 353, 294, 354, 266, + 316, 315, 317, 0, 188, 0, 391, 427, 455, 206, + 207, 208, 669, 243, 247, 253, 255, 261, 262, 269, + 287, 331, 352, 350, 356, 750, 405, 422, 430, 437, + 443, 444, 446, 447, 448, 449, 450, 319, 268, 387, + 283, 292, 742, 780, 337, 368, 211, 425, 388, 664, + 668, 662, 663, 714, 715, 665, 771, 772, 773, 746, + 658, 0, 666, 667, 0, 752, 761, 762, 719, 181, + 195, 288, 776, 357, 251, 452, 432, 428, 644, 661, + 227, 672, 0, 0, 684, 692, 693, 705, 707, 708, + 709, 710, 718, 726, 727, 729, 737, 739, 741, 743, + 748, 758, 779, 183, 184, 196, 204, 214, 226, 241, + 249, 259, 264, 267, 271, 272, 275, 280, 297, 302, + 303, 304, 305, 321, 322, 323, 326, 329, 330, 333, + 335, 336, 339, 345, 346, 347, 348, 349, 351, 358, + 362, 370, 371, 372, 373, 374, 376, 377, 381, 382, + 383, 384, 392, 396, 412, 413, 424, 436, 441, 260, + 420, 442, 0, 296, 717, 724, 298, 245, 263, 273, + 732, 431, 393, 200, 364, 252, 189, 217, 203, 224, + 239, 242, 277, 306, 312, 341, 344, 257, 236, 215, + 361, 212, 379, 399, 400, 401, 403, 310, 231, 765, + 751, 404, 0, 700, 768, 671, 688, 778, 691, 694, + 734, 650, 713, 328, 685, 0, 675, 646, 681, 647, + 673, 702, 235, 670, 753, 716, 767, 286, 232, 652, + 676, 342, 690, 187, 736, 380, 220, 295, 293, 409, + 246, 238, 234, 219, 270, 301, 340, 398, 334, 774, + 290, 723, 0, 389, 313, 0, 0, 0, 704, 757, + 711, 747, 699, 735, 660, 722, 769, 686, 731, 770, + 276, 218, 186, 325, 390, 250, 0, 0, 0, 0, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 216, 728, 764, 683, 730, 230, 274, + 237, 229, 406, 775, 756, 0, 0, 202, 766, 706, + 733, 781, 645, 725, 0, 648, 651, 777, 760, 679, + 240, 0, 0, 0, 0, 0, 0, 0, 703, 712, + 744, 697, 0, 0, 0, 0, 0, 0, 1509, 0, + 677, 0, 721, 0, 0, 0, 656, 649, 0, 0, + 0, 0, 701, 0, 0, 0, 659, 0, 678, 745, + 0, 643, 258, 653, 314, 0, 749, 759, 698, 438, + 763, 696, 695, 740, 657, 755, 689, 285, 655, 282, + 182, 198, 0, 687, 324, 363, 369, 754, 674, 682, + 221, 680, 367, 338, 423, 205, 248, 360, 343, 365, + 720, 738, 366, 291, 411, 355, 421, 439, 440, 228, + 318, 429, 402, 435, 451, 199, 225, 332, 395, 426, + 386, 311, 407, 408, 281, 385, 256, 185, 289, 445, + 197, 375, 213, 190, 397, 419, 210, 378, 0, 0, + 453, 192, 417, 394, 308, 278, 279, 191, 0, 359, + 233, 254, 223, 327, 414, 415, 222, 454, 201, 434, + 194, 959, 433, 320, 410, 418, 309, 300, 193, 416, + 307, 299, 284, 244, 265, 353, 294, 354, 266, 316, + 315, 317, 0, 188, 0, 391, 427, 455, 206, 207, + 208, 669, 243, 247, 253, 255, 261, 262, 269, 287, + 331, 352, 350, 356, 750, 405, 422, 430, 437, 443, + 444, 446, 447, 448, 449, 450, 319, 268, 387, 283, + 292, 742, 780, 337, 368, 211, 425, 388, 664, 668, + 662, 663, 714, 715, 665, 771, 772, 773, 746, 658, + 0, 666, 667, 0, 752, 761, 762, 719, 181, 195, + 288, 776, 357, 251, 452, 432, 428, 644, 661, 227, + 672, 0, 0, 684, 692, 693, 705, 707, 708, 709, + 710, 718, 726, 727, 729, 737, 739, 741, 743, 748, + 758, 779, 183, 184, 196, 204, 214, 226, 241, 249, + 259, 264, 267, 271, 272, 275, 280, 297, 302, 303, + 304, 305, 321, 322, 323, 326, 329, 330, 333, 335, + 336, 339, 345, 346, 347, 348, 349, 351, 358, 362, + 370, 371, 372, 373, 374, 376, 377, 381, 382, 383, + 384, 392, 396, 412, 413, 424, 436, 441, 260, 420, + 442, 0, 296, 717, 724, 298, 245, 263, 273, 732, + 431, 393, 200, 364, 252, 189, 217, 203, 224, 239, + 242, 277, 306, 312, 341, 344, 257, 236, 215, 361, + 212, 379, 399, 400, 401, 403, 310, 231, 765, 751, + 404, 0, 700, 768, 671, 688, 778, 691, 694, 734, + 650, 713, 328, 685, 0, 675, 646, 681, 647, 673, + 702, 235, 670, 753, 716, 767, 286, 232, 652, 676, + 342, 690, 187, 736, 380, 220, 295, 293, 409, 246, + 238, 234, 219, 270, 301, 340, 398, 334, 774, 290, + 723, 0, 389, 313, 0, 0, 0, 704, 757, 711, + 747, 699, 735, 660, 722, 769, 686, 731, 770, 276, + 218, 186, 325, 390, 250, 0, 81, 0, 0, 178, + 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 0, 216, 728, 764, 683, 730, 230, 274, 237, + 229, 406, 775, 756, 0, 0, 202, 766, 706, 733, + 781, 645, 725, 0, 648, 651, 777, 760, 679, 240, + 0, 0, 0, 0, 0, 0, 0, 703, 712, 744, + 697, 0, 0, 0, 0, 0, 0, 0, 0, 677, + 0, 721, 0, 0, 0, 656, 649, 0, 0, 0, + 0, 701, 0, 0, 0, 659, 0, 678, 745, 0, + 643, 258, 653, 314, 0, 749, 759, 698, 438, 763, + 696, 695, 740, 657, 755, 689, 285, 655, 282, 182, + 198, 0, 687, 324, 363, 369, 754, 674, 682, 221, + 680, 367, 338, 423, 205, 248, 360, 343, 365, 720, + 738, 366, 291, 411, 355, 421, 439, 440, 228, 318, + 429, 402, 435, 451, 199, 225, 332, 395, 426, 386, + 311, 407, 408, 281, 385, 256, 185, 289, 445, 197, + 375, 213, 190, 397, 419, 210, 378, 0, 0, 453, + 192, 417, 394, 308, 278, 279, 191, 0, 359, 233, + 254, 223, 327, 414, 415, 222, 454, 201, 434, 194, + 959, 433, 320, 410, 418, 309, 300, 193, 416, 307, + 299, 284, 244, 265, 353, 294, 354, 266, 316, 315, + 317, 0, 188, 0, 391, 427, 455, 206, 207, 208, + 669, 243, 247, 253, 255, 261, 262, 269, 287, 331, + 352, 350, 356, 750, 405, 422, 430, 437, 443, 444, + 446, 447, 448, 449, 450, 319, 268, 387, 283, 292, + 742, 780, 337, 368, 211, 425, 388, 664, 668, 662, + 663, 714, 715, 665, 771, 772, 773, 746, 658, 0, + 666, 667, 0, 752, 761, 762, 719, 181, 195, 288, + 776, 357, 251, 452, 432, 428, 644, 661, 227, 672, + 0, 0, 684, 692, 693, 705, 707, 708, 709, 710, + 718, 726, 727, 729, 737, 739, 741, 743, 748, 758, + 779, 183, 184, 196, 204, 214, 226, 241, 249, 259, + 264, 267, 271, 272, 275, 280, 297, 302, 303, 304, + 305, 321, 322, 323, 326, 329, 330, 333, 335, 336, + 339, 345, 346, 347, 348, 349, 351, 358, 362, 370, + 371, 372, 373, 374, 376, 377, 381, 382, 383, 384, + 392, 396, 412, 413, 424, 436, 441, 260, 420, 442, + 0, 296, 717, 724, 298, 245, 263, 273, 732, 431, + 393, 200, 364, 252, 189, 217, 203, 224, 239, 242, + 277, 306, 312, 341, 344, 257, 236, 215, 361, 212, + 379, 399, 400, 401, 403, 310, 231, 765, 751, 404, + 0, 700, 768, 671, 688, 778, 691, 694, 734, 650, + 713, 328, 685, 0, 675, 646, 681, 647, 673, 702, + 235, 670, 753, 716, 767, 286, 232, 652, 676, 342, + 690, 187, 736, 380, 220, 295, 293, 409, 246, 238, + 234, 219, 270, 301, 340, 398, 334, 774, 290, 723, + 0, 389, 313, 0, 0, 0, 704, 757, 711, 747, + 699, 735, 660, 722, 769, 686, 731, 770, 276, 218, + 186, 325, 390, 250, 0, 0, 0, 0, 178, 179, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 216, 728, 764, 683, 730, 230, 274, 237, 229, + 406, 775, 756, 0, 0, 202, 766, 706, 733, 781, + 645, 725, 0, 648, 651, 777, 760, 679, 240, 0, + 0, 0, 0, 0, 0, 0, 703, 712, 744, 697, + 0, 0, 0, 0, 0, 0, 0, 0, 677, 0, + 721, 0, 0, 0, 656, 649, 0, 0, 0, 0, + 701, 0, 0, 0, 659, 0, 678, 745, 0, 643, + 258, 653, 314, 0, 749, 759, 698, 438, 763, 696, + 695, 740, 657, 755, 689, 285, 655, 282, 182, 198, + 0, 687, 324, 363, 369, 754, 674, 682, 221, 680, + 367, 338, 423, 205, 248, 360, 343, 365, 720, 738, + 366, 291, 411, 355, 421, 439, 440, 228, 318, 429, + 402, 435, 451, 199, 225, 332, 395, 426, 386, 311, + 407, 408, 281, 385, 256, 185, 289, 445, 197, 375, + 213, 190, 397, 419, 210, 378, 0, 0, 453, 192, + 417, 394, 308, 278, 279, 191, 0, 359, 233, 254, + 223, 327, 414, 415, 222, 454, 201, 434, 194, 959, + 433, 320, 410, 418, 309, 300, 193, 416, 307, 299, + 284, 244, 265, 353, 294, 354, 266, 316, 315, 317, + 0, 188, 0, 391, 427, 455, 206, 207, 208, 669, + 243, 247, 253, 255, 261, 262, 269, 287, 331, 352, + 350, 356, 750, 405, 422, 430, 437, 443, 444, 446, + 447, 448, 449, 450, 319, 268, 387, 283, 292, 742, + 780, 337, 368, 211, 425, 388, 664, 668, 662, 663, + 714, 715, 665, 771, 772, 773, 746, 658, 0, 666, + 667, 0, 752, 761, 762, 719, 181, 195, 288, 776, + 357, 251, 452, 432, 428, 644, 661, 227, 672, 0, + 0, 684, 692, 693, 705, 707, 708, 709, 710, 718, + 726, 727, 729, 737, 739, 741, 743, 748, 758, 779, + 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, + 267, 271, 272, 275, 280, 297, 302, 303, 304, 305, + 321, 322, 323, 326, 329, 330, 333, 335, 336, 339, + 345, 346, 347, 348, 349, 351, 358, 362, 370, 371, + 372, 373, 374, 376, 377, 381, 382, 383, 384, 392, + 396, 412, 413, 424, 436, 441, 260, 420, 442, 0, + 296, 717, 724, 298, 245, 263, 273, 732, 431, 393, + 200, 364, 252, 189, 217, 203, 224, 239, 242, 277, + 306, 312, 341, 344, 257, 236, 215, 361, 212, 379, + 399, 400, 401, 403, 310, 231, 765, 751, 404, 0, + 700, 768, 671, 688, 778, 691, 694, 734, 650, 713, + 328, 685, 0, 675, 646, 681, 647, 673, 702, 235, + 670, 753, 716, 767, 286, 232, 652, 676, 342, 690, + 187, 736, 380, 220, 295, 293, 409, 246, 238, 234, + 219, 270, 301, 340, 398, 334, 774, 290, 723, 0, + 389, 313, 0, 0, 0, 704, 757, 711, 747, 699, + 735, 660, 722, 769, 686, 731, 770, 276, 218, 186, + 325, 390, 250, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 216, 728, 764, 683, 730, 230, 274, 237, 229, 406, + 775, 756, 0, 0, 782, 766, 706, 733, 781, 645, + 725, 0, 648, 651, 777, 760, 679, 240, 0, 0, + 0, 0, 0, 0, 0, 703, 712, 744, 697, 0, + 0, 0, 0, 0, 0, 0, 0, 677, 0, 721, + 0, 0, 0, 656, 649, 0, 0, 0, 0, 701, + 0, 0, 0, 659, 0, 678, 745, 0, 643, 258, + 653, 314, 0, 749, 759, 698, 438, 763, 696, 695, + 740, 657, 755, 689, 285, 655, 282, 182, 198, 0, + 687, 324, 363, 369, 754, 674, 682, 221, 680, 367, + 338, 423, 205, 248, 360, 343, 365, 720, 738, 366, + 291, 411, 355, 421, 439, 440, 228, 318, 429, 402, + 435, 451, 199, 225, 332, 395, 426, 386, 311, 407, + 408, 281, 385, 256, 185, 289, 445, 197, 375, 213, + 190, 397, 419, 210, 378, 0, 0, 453, 192, 417, + 394, 308, 278, 279, 191, 0, 359, 233, 254, 223, + 327, 414, 415, 222, 454, 201, 434, 194, 654, 433, + 320, 410, 418, 309, 300, 193, 416, 307, 299, 284, + 244, 265, 353, 294, 354, 266, 316, 315, 317, 0, + 188, 0, 391, 427, 455, 206, 207, 208, 669, 243, + 247, 253, 255, 261, 262, 269, 287, 331, 352, 350, + 356, 750, 405, 422, 430, 437, 443, 444, 446, 447, + 448, 449, 450, 642, 636, 635, 283, 292, 742, 780, + 337, 368, 211, 425, 388, 664, 668, 662, 663, 714, + 715, 665, 771, 772, 773, 746, 658, 0, 666, 667, + 0, 752, 761, 762, 719, 181, 195, 288, 776, 357, + 251, 452, 432, 428, 644, 661, 227, 672, 0, 0, + 684, 692, 693, 705, 707, 708, 709, 710, 718, 726, + 727, 729, 737, 739, 741, 743, 748, 758, 779, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 271, 272, 275, 280, 297, 302, 303, 304, 305, 321, + 322, 323, 326, 329, 330, 333, 335, 336, 339, 345, + 346, 347, 348, 349, 351, 358, 362, 370, 371, 372, + 373, 374, 376, 377, 381, 382, 383, 384, 392, 396, + 412, 413, 424, 436, 441, 260, 420, 442, 0, 296, + 717, 724, 298, 245, 263, 273, 732, 431, 393, 200, + 364, 252, 189, 217, 203, 224, 239, 242, 277, 306, + 312, 341, 344, 257, 236, 215, 361, 212, 379, 399, + 400, 401, 403, 310, 231, 765, 751, 404, 0, 700, + 768, 671, 688, 778, 691, 694, 734, 650, 713, 328, + 685, 0, 675, 646, 681, 647, 673, 702, 235, 670, + 753, 716, 767, 286, 232, 652, 676, 342, 690, 187, + 736, 380, 220, 295, 293, 409, 246, 238, 234, 219, + 270, 301, 340, 398, 334, 774, 290, 723, 0, 389, + 313, 0, 0, 0, 704, 757, 711, 747, 699, 735, + 660, 722, 769, 686, 731, 770, 276, 218, 186, 325, + 390, 250, 0, 0, 0, 0, 178, 179, 180, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, + 728, 764, 683, 730, 230, 274, 237, 229, 406, 775, + 756, 0, 0, 782, 766, 706, 733, 781, 645, 725, + 0, 648, 651, 777, 760, 679, 240, 0, 0, 0, + 0, 0, 0, 0, 703, 712, 744, 697, 0, 0, + 0, 0, 0, 0, 0, 0, 677, 0, 721, 0, + 0, 0, 656, 649, 0, 0, 0, 0, 701, 0, + 0, 0, 659, 0, 678, 745, 0, 643, 258, 653, + 314, 0, 749, 759, 698, 438, 763, 696, 695, 740, + 657, 755, 689, 285, 655, 282, 182, 198, 0, 687, + 324, 363, 369, 754, 674, 682, 221, 680, 367, 338, + 423, 205, 248, 360, 343, 365, 720, 738, 366, 291, + 411, 355, 421, 439, 440, 228, 318, 429, 402, 435, + 451, 199, 225, 332, 395, 426, 386, 311, 407, 408, + 281, 385, 256, 185, 289, 445, 197, 375, 213, 190, + 397, 1134, 210, 378, 0, 0, 453, 192, 417, 394, + 308, 278, 279, 191, 0, 359, 233, 254, 223, 327, + 414, 415, 222, 454, 201, 434, 194, 654, 433, 320, + 410, 418, 309, 300, 193, 416, 307, 299, 284, 244, + 265, 353, 294, 354, 266, 316, 315, 317, 0, 188, + 0, 391, 427, 455, 206, 207, 208, 669, 243, 247, + 253, 255, 261, 262, 269, 287, 331, 352, 350, 356, + 750, 405, 422, 430, 437, 443, 444, 446, 447, 448, + 449, 450, 642, 636, 635, 283, 292, 742, 780, 337, + 368, 211, 425, 388, 664, 668, 662, 663, 714, 715, + 665, 771, 772, 773, 746, 658, 0, 666, 667, 0, + 752, 761, 762, 719, 181, 195, 288, 776, 357, 251, + 452, 432, 428, 644, 661, 227, 672, 0, 0, 684, + 692, 693, 705, 707, 708, 709, 710, 718, 726, 727, + 729, 737, 739, 741, 743, 748, 758, 779, 183, 184, + 196, 204, 214, 226, 241, 249, 259, 264, 267, 271, + 272, 275, 280, 297, 302, 303, 304, 305, 321, 322, + 323, 326, 329, 330, 333, 335, 336, 339, 345, 346, + 347, 348, 349, 351, 358, 362, 370, 371, 372, 373, + 374, 376, 377, 381, 382, 383, 384, 392, 396, 412, + 413, 424, 436, 441, 260, 420, 442, 0, 296, 717, + 724, 298, 245, 263, 273, 732, 431, 393, 200, 364, + 252, 189, 217, 203, 224, 239, 242, 277, 306, 312, + 341, 344, 257, 236, 215, 361, 212, 379, 399, 400, + 401, 403, 310, 231, 765, 751, 404, 0, 700, 768, + 671, 688, 778, 691, 694, 734, 650, 713, 328, 685, + 0, 675, 646, 681, 647, 673, 702, 235, 670, 753, + 716, 767, 286, 232, 652, 676, 342, 690, 187, 736, + 380, 220, 295, 293, 409, 246, 238, 234, 219, 270, + 301, 340, 398, 334, 774, 290, 723, 0, 389, 313, + 0, 0, 0, 704, 757, 711, 747, 699, 735, 660, + 722, 769, 686, 731, 770, 276, 218, 186, 325, 390, + 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 728, + 764, 683, 730, 230, 274, 237, 229, 406, 775, 756, + 0, 0, 782, 766, 706, 733, 781, 645, 725, 0, + 648, 651, 777, 760, 679, 240, 0, 0, 0, 0, + 0, 0, 0, 703, 712, 744, 697, 0, 0, 0, + 0, 0, 0, 0, 0, 677, 0, 721, 0, 0, + 0, 656, 649, 0, 0, 0, 0, 701, 0, 0, + 0, 659, 0, 678, 745, 0, 643, 258, 653, 314, + 0, 749, 759, 698, 438, 763, 696, 695, 740, 657, + 755, 689, 285, 655, 282, 182, 198, 0, 687, 324, + 363, 369, 754, 674, 682, 221, 680, 367, 338, 423, + 205, 248, 360, 343, 365, 720, 738, 366, 291, 411, + 355, 421, 439, 440, 228, 318, 429, 402, 435, 451, + 199, 225, 332, 395, 426, 386, 311, 407, 408, 281, + 385, 256, 185, 289, 445, 197, 375, 213, 190, 397, + 633, 210, 378, 0, 0, 453, 192, 417, 394, 308, + 278, 279, 191, 0, 359, 233, 254, 223, 327, 414, + 415, 222, 454, 201, 434, 194, 654, 433, 320, 410, + 418, 309, 300, 193, 416, 307, 299, 284, 244, 265, + 353, 294, 354, 266, 316, 315, 317, 0, 188, 0, + 391, 427, 455, 206, 207, 208, 669, 243, 247, 253, + 255, 261, 262, 269, 287, 331, 352, 350, 356, 750, + 405, 422, 430, 437, 443, 444, 446, 447, 448, 449, + 450, 642, 636, 635, 283, 292, 742, 780, 337, 368, + 211, 425, 388, 664, 668, 662, 663, 714, 715, 665, + 771, 772, 773, 746, 658, 0, 666, 667, 0, 752, + 761, 762, 719, 181, 195, 288, 776, 357, 251, 452, + 432, 428, 644, 661, 227, 672, 0, 0, 684, 692, + 693, 705, 707, 708, 709, 710, 718, 726, 727, 729, + 737, 739, 741, 743, 748, 758, 779, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 271, 272, + 275, 280, 297, 302, 303, 304, 305, 321, 322, 323, + 326, 329, 330, 333, 335, 336, 339, 345, 346, 347, + 348, 349, 351, 358, 362, 370, 371, 372, 373, 374, + 376, 377, 381, 382, 383, 384, 392, 396, 412, 413, + 424, 436, 441, 260, 420, 442, 0, 296, 717, 724, + 298, 245, 263, 273, 732, 431, 393, 200, 364, 252, + 189, 217, 203, 224, 239, 242, 277, 306, 312, 341, + 344, 257, 236, 215, 361, 212, 379, 399, 400, 401, + 403, 310, 231, 404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 0, 1437, 0, + 523, 0, 0, 0, 235, 522, 0, 0, 0, 286, + 232, 0, 1438, 342, 0, 187, 0, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 566, 290, 0, 0, 389, 313, 0, 0, 0, + 0, 0, 557, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 218, 186, 325, 390, 250, 0, 81, + 0, 0, 178, 179, 180, 544, 543, 546, 547, 548, + 549, 0, 0, 209, 545, 216, 550, 551, 552, 0, + 230, 274, 237, 229, 406, 0, 0, 0, 0, 202, + 0, 0, 0, 0, 0, 520, 537, 0, 565, 0, + 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, + 622, 0, 0, 0, 581, 0, 536, 0, 0, 529, + 530, 532, 531, 533, 538, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 314, 0, 580, 0, + 0, 438, 0, 0, 578, 0, 0, 0, 0, 285, + 0, 282, 182, 198, 0, 0, 324, 363, 369, 0, + 0, 0, 221, 0, 367, 338, 423, 205, 248, 360, + 343, 365, 0, 0, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 0, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 0, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 0, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 0, 0, 337, 368, 211, 425, 388, + 568, 579, 574, 575, 572, 573, 567, 571, 570, 569, + 582, 559, 560, 561, 562, 564, 0, 576, 577, 563, + 181, 195, 288, 0, 357, 251, 452, 432, 428, 0, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 260, 420, 442, 0, 296, 0, 0, 298, 245, 263, + 273, 0, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 328, 0, 0, 0, 0, 523, 0, 0, + 0, 235, 522, 0, 0, 0, 286, 232, 0, 0, + 342, 0, 187, 0, 380, 220, 295, 293, 409, 246, + 238, 234, 219, 270, 301, 340, 398, 334, 566, 290, + 0, 0, 389, 313, 0, 0, 0, 0, 0, 557, + 558, 0, 0, 0, 0, 0, 0, 1533, 0, 276, + 218, 186, 325, 390, 250, 0, 81, 0, 0, 178, + 179, 180, 544, 543, 546, 547, 548, 549, 0, 0, + 209, 545, 216, 550, 551, 552, 1534, 230, 274, 237, + 229, 406, 0, 0, 0, 0, 202, 0, 0, 0, + 0, 0, 520, 537, 0, 565, 0, 0, 0, 240, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 534, 535, 0, 0, 0, + 0, 581, 0, 536, 0, 0, 529, 530, 532, 531, + 533, 538, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 258, 0, 314, 0, 580, 0, 0, 438, 0, + 0, 578, 0, 0, 0, 0, 285, 0, 282, 182, + 198, 0, 0, 324, 363, 369, 0, 0, 0, 221, + 0, 367, 338, 423, 205, 248, 360, 343, 365, 0, + 0, 366, 291, 411, 355, 421, 439, 440, 228, 318, + 429, 402, 435, 451, 199, 225, 332, 395, 426, 386, + 311, 407, 408, 281, 385, 256, 185, 289, 445, 197, + 375, 213, 190, 397, 419, 210, 378, 0, 0, 453, + 192, 417, 394, 308, 278, 279, 191, 0, 359, 233, + 254, 223, 327, 414, 415, 222, 454, 201, 434, 194, + 0, 433, 320, 410, 418, 309, 300, 193, 416, 307, + 299, 284, 244, 265, 353, 294, 354, 266, 316, 315, + 317, 0, 188, 0, 391, 427, 455, 206, 207, 208, + 0, 243, 247, 253, 255, 261, 262, 269, 287, 331, + 352, 350, 356, 0, 405, 422, 430, 437, 443, 444, + 446, 447, 448, 449, 450, 319, 268, 387, 283, 292, + 0, 0, 337, 368, 211, 425, 388, 568, 579, 574, + 575, 572, 573, 567, 571, 570, 569, 582, 559, 560, + 561, 562, 564, 0, 576, 577, 563, 181, 195, 288, + 0, 357, 251, 452, 432, 428, 0, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, + 264, 267, 271, 272, 275, 280, 297, 302, 303, 304, + 305, 321, 322, 323, 326, 329, 330, 333, 335, 336, + 339, 345, 346, 347, 348, 349, 351, 358, 362, 370, + 371, 372, 373, 374, 376, 377, 381, 382, 383, 384, + 392, 396, 412, 413, 424, 436, 441, 260, 420, 442, + 0, 296, 0, 0, 298, 245, 263, 273, 0, 431, + 393, 200, 364, 252, 189, 217, 203, 224, 239, 242, + 277, 306, 312, 341, 344, 257, 236, 215, 361, 212, + 379, 399, 400, 401, 403, 310, 231, 72, 404, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 328, 0, 0, 0, 0, 523, 0, 0, 0, 235, + 522, 0, 0, 0, 286, 232, 0, 0, 342, 0, + 187, 0, 380, 220, 295, 293, 409, 246, 238, 234, + 219, 270, 301, 340, 398, 334, 566, 290, 0, 0, + 389, 313, 0, 0, 0, 0, 0, 557, 558, 0, + 0, 0, 0, 0, 0, 0, 0, 276, 218, 186, + 325, 390, 250, 0, 81, 0, 0, 178, 179, 180, + 544, 543, 546, 547, 548, 549, 0, 0, 209, 545, + 216, 550, 551, 552, 0, 230, 274, 237, 229, 406, + 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, + 520, 537, 0, 565, 0, 0, 0, 240, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 534, 535, 0, 0, 0, 0, 581, + 0, 536, 0, 0, 529, 530, 532, 531, 533, 538, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 0, 314, 0, 580, 0, 0, 438, 0, 0, 578, + 0, 0, 0, 0, 285, 0, 282, 182, 198, 0, + 0, 324, 363, 369, 0, 0, 0, 221, 0, 367, + 338, 423, 205, 248, 360, 343, 365, 0, 0, 366, + 291, 411, 355, 421, 439, 440, 228, 318, 429, 402, + 435, 451, 199, 225, 332, 395, 426, 386, 311, 407, + 408, 281, 385, 256, 185, 289, 445, 197, 375, 213, + 190, 397, 419, 210, 378, 0, 0, 453, 192, 417, + 394, 308, 278, 279, 191, 0, 359, 233, 254, 223, + 327, 414, 415, 222, 454, 201, 434, 194, 0, 433, + 320, 410, 418, 309, 300, 193, 416, 307, 299, 284, + 244, 265, 353, 294, 354, 266, 316, 315, 317, 0, + 188, 0, 391, 427, 455, 206, 207, 208, 0, 243, + 247, 253, 255, 261, 262, 269, 287, 331, 352, 350, + 356, 0, 405, 422, 430, 437, 443, 444, 446, 447, + 448, 449, 450, 319, 268, 387, 283, 292, 0, 0, + 337, 368, 211, 425, 388, 568, 579, 574, 575, 572, + 573, 567, 571, 570, 569, 582, 559, 560, 561, 562, + 564, 0, 576, 577, 563, 181, 195, 288, 80, 357, + 251, 452, 432, 428, 0, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 271, 272, 275, 280, 297, 302, 303, 304, 305, 321, + 322, 323, 326, 329, 330, 333, 335, 336, 339, 345, + 346, 347, 348, 349, 351, 358, 362, 370, 371, 372, + 373, 374, 376, 377, 381, 382, 383, 384, 392, 396, + 412, 413, 424, 436, 441, 260, 420, 442, 0, 296, + 0, 0, 298, 245, 263, 273, 0, 431, 393, 200, + 364, 252, 189, 217, 203, 224, 239, 242, 277, 306, + 312, 341, 344, 257, 236, 215, 361, 212, 379, 399, + 400, 401, 403, 310, 231, 404, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, + 0, 0, 523, 0, 0, 0, 235, 522, 0, 0, + 0, 286, 232, 0, 0, 342, 0, 187, 0, 380, + 220, 295, 293, 409, 246, 238, 234, 219, 270, 301, + 340, 398, 334, 566, 290, 0, 0, 389, 313, 0, + 0, 0, 0, 0, 557, 558, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 218, 186, 325, 390, 250, + 0, 81, 0, 1102, 178, 179, 180, 544, 543, 546, + 547, 548, 549, 0, 0, 209, 545, 216, 550, 551, + 552, 0, 230, 274, 237, 229, 406, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 520, 537, 0, + 565, 0, 0, 0, 240, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 534, 535, 0, 0, 0, 0, 581, 0, 536, 0, + 0, 529, 530, 532, 531, 533, 538, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 314, 0, + 580, 0, 0, 438, 0, 0, 578, 0, 0, 0, + 0, 285, 0, 282, 182, 198, 0, 0, 324, 363, + 369, 0, 0, 0, 221, 0, 367, 338, 423, 205, + 248, 360, 343, 365, 0, 0, 366, 291, 411, 355, + 421, 439, 440, 228, 318, 429, 402, 435, 451, 199, + 225, 332, 395, 426, 386, 311, 407, 408, 281, 385, + 256, 185, 289, 445, 197, 375, 213, 190, 397, 419, + 210, 378, 0, 0, 453, 192, 417, 394, 308, 278, + 279, 191, 0, 359, 233, 254, 223, 327, 414, 415, + 222, 454, 201, 434, 194, 0, 433, 320, 410, 418, + 309, 300, 193, 416, 307, 299, 284, 244, 265, 353, + 294, 354, 266, 316, 315, 317, 0, 188, 0, 391, + 427, 455, 206, 207, 208, 0, 243, 247, 253, 255, + 261, 262, 269, 287, 331, 352, 350, 356, 0, 405, + 422, 430, 437, 443, 444, 446, 447, 448, 449, 450, + 319, 268, 387, 283, 292, 0, 0, 337, 368, 211, + 425, 388, 568, 579, 574, 575, 572, 573, 567, 571, + 570, 569, 582, 559, 560, 561, 562, 564, 0, 576, + 577, 563, 181, 195, 288, 0, 357, 251, 452, 432, + 428, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, + 214, 226, 241, 249, 259, 264, 267, 271, 272, 275, + 280, 297, 302, 303, 304, 305, 321, 322, 323, 326, + 329, 330, 333, 335, 336, 339, 345, 346, 347, 348, + 349, 351, 358, 362, 370, 371, 372, 373, 374, 376, + 377, 381, 382, 383, 384, 392, 396, 412, 413, 424, + 436, 441, 260, 420, 442, 0, 296, 0, 0, 298, + 245, 263, 273, 0, 431, 393, 200, 364, 252, 189, + 217, 203, 224, 239, 242, 277, 306, 312, 341, 344, + 257, 236, 215, 361, 212, 379, 399, 400, 401, 403, + 310, 231, 404, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 328, 0, 0, 0, 0, 523, + 0, 0, 0, 235, 522, 0, 0, 0, 286, 232, + 0, 0, 342, 0, 187, 0, 380, 220, 295, 293, + 409, 246, 238, 234, 219, 270, 301, 340, 398, 334, + 566, 290, 0, 0, 389, 313, 0, 0, 0, 0, + 0, 557, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 276, 218, 186, 325, 390, 250, 0, 81, 0, + 0, 178, 179, 180, 544, 543, 546, 547, 548, 549, + 0, 0, 209, 545, 216, 550, 551, 552, 0, 230, + 274, 237, 229, 406, 0, 0, 0, 0, 202, 0, + 0, 0, 0, 0, 520, 537, 0, 565, 0, 0, + 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 534, 535, 622, + 0, 0, 0, 581, 0, 536, 0, 0, 529, 530, + 532, 531, 533, 538, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 258, 0, 314, 0, 580, 0, 0, + 438, 0, 0, 578, 0, 0, 0, 0, 285, 0, + 282, 182, 198, 0, 0, 324, 363, 369, 0, 0, + 0, 221, 0, 367, 338, 423, 205, 248, 360, 343, + 365, 0, 0, 366, 291, 411, 355, 421, 439, 440, + 228, 318, 429, 402, 435, 451, 199, 225, 332, 395, + 426, 386, 311, 407, 408, 281, 385, 256, 185, 289, + 445, 197, 375, 213, 190, 397, 419, 210, 378, 0, + 0, 453, 192, 417, 394, 308, 278, 279, 191, 0, + 359, 233, 254, 223, 327, 414, 415, 222, 454, 201, + 434, 194, 0, 433, 320, 410, 418, 309, 300, 193, + 416, 307, 299, 284, 244, 265, 353, 294, 354, 266, + 316, 315, 317, 0, 188, 0, 391, 427, 455, 206, + 207, 208, 0, 243, 247, 253, 255, 261, 262, 269, + 287, 331, 352, 350, 356, 0, 405, 422, 430, 437, + 443, 444, 446, 447, 448, 449, 450, 319, 268, 387, + 283, 292, 0, 0, 337, 368, 211, 425, 388, 568, + 579, 574, 575, 572, 573, 567, 571, 570, 569, 582, + 559, 560, 561, 562, 564, 0, 576, 577, 563, 181, + 195, 288, 0, 357, 251, 452, 432, 428, 0, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 183, 184, 196, 204, 214, 226, 241, + 249, 259, 264, 267, 271, 272, 275, 280, 297, 302, + 303, 304, 305, 321, 322, 323, 326, 329, 330, 333, + 335, 336, 339, 345, 346, 347, 348, 349, 351, 358, + 362, 370, 371, 372, 373, 374, 376, 377, 381, 382, + 383, 384, 392, 396, 412, 413, 424, 436, 441, 260, + 420, 442, 0, 296, 0, 0, 298, 245, 263, 273, + 0, 431, 393, 200, 364, 252, 189, 217, 203, 224, + 239, 242, 277, 306, 312, 341, 344, 257, 236, 215, + 361, 212, 379, 399, 400, 401, 403, 310, 231, 404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 328, 0, 0, 0, 0, 523, 0, 0, 0, + 235, 522, 0, 0, 0, 286, 232, 0, 0, 342, + 0, 187, 0, 380, 220, 295, 293, 409, 246, 238, + 234, 219, 270, 301, 340, 398, 334, 566, 290, 0, + 0, 389, 313, 0, 0, 0, 0, 0, 557, 558, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 218, + 186, 325, 390, 250, 0, 81, 0, 0, 178, 179, + 180, 544, 1452, 546, 547, 548, 549, 0, 0, 209, + 545, 216, 550, 551, 552, 0, 230, 274, 237, 229, + 406, 0, 0, 0, 0, 202, 0, 0, 0, 0, + 0, 520, 537, 0, 565, 0, 0, 0, 240, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 534, 535, 622, 0, 0, 0, + 581, 0, 536, 0, 0, 529, 530, 532, 531, 533, + 538, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 314, 0, 580, 0, 0, 438, 0, 0, + 578, 0, 0, 0, 0, 285, 0, 282, 182, 198, + 0, 0, 324, 363, 369, 0, 0, 0, 221, 0, + 367, 338, 423, 205, 248, 360, 343, 365, 0, 0, + 366, 291, 411, 355, 421, 439, 440, 228, 318, 429, + 402, 435, 451, 199, 225, 332, 395, 426, 386, 311, + 407, 408, 281, 385, 256, 185, 289, 445, 197, 375, + 213, 190, 397, 419, 210, 378, 0, 0, 453, 192, + 417, 394, 308, 278, 279, 191, 0, 359, 233, 254, + 223, 327, 414, 415, 222, 454, 201, 434, 194, 0, + 433, 320, 410, 418, 309, 300, 193, 416, 307, 299, + 284, 244, 265, 353, 294, 354, 266, 316, 315, 317, + 0, 188, 0, 391, 427, 455, 206, 207, 208, 0, + 243, 247, 253, 255, 261, 262, 269, 287, 331, 352, + 350, 356, 0, 405, 422, 430, 437, 443, 444, 446, + 447, 448, 449, 450, 319, 268, 387, 283, 292, 0, + 0, 337, 368, 211, 425, 388, 568, 579, 574, 575, + 572, 573, 567, 571, 570, 569, 582, 559, 560, 561, + 562, 564, 0, 576, 577, 563, 181, 195, 288, 0, + 357, 251, 452, 432, 428, 0, 0, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, + 267, 271, 272, 275, 280, 297, 302, 303, 304, 305, + 321, 322, 323, 326, 329, 330, 333, 335, 336, 339, + 345, 346, 347, 348, 349, 351, 358, 362, 370, 371, + 372, 373, 374, 376, 377, 381, 382, 383, 384, 392, + 396, 412, 413, 424, 436, 441, 260, 420, 442, 0, + 296, 0, 0, 298, 245, 263, 273, 0, 431, 393, + 200, 364, 252, 189, 217, 203, 224, 239, 242, 277, + 306, 312, 341, 344, 257, 236, 215, 361, 212, 379, + 399, 400, 401, 403, 310, 231, 404, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, + 0, 0, 0, 523, 0, 0, 0, 235, 522, 0, + 0, 0, 286, 232, 0, 0, 342, 0, 187, 0, + 380, 220, 295, 293, 409, 246, 238, 234, 219, 270, + 301, 340, 398, 334, 566, 290, 0, 0, 389, 313, + 0, 0, 0, 0, 0, 557, 558, 0, 0, 0, + 0, 0, 0, 0, 0, 276, 218, 186, 325, 390, + 250, 0, 81, 0, 0, 178, 179, 180, 544, 1449, + 546, 547, 548, 549, 0, 0, 209, 545, 216, 550, + 551, 552, 0, 230, 274, 237, 229, 406, 0, 0, + 0, 0, 202, 0, 0, 0, 0, 0, 520, 537, + 0, 565, 0, 0, 0, 240, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 534, 535, 622, 0, 0, 0, 581, 0, 536, + 0, 0, 529, 530, 532, 531, 533, 538, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 258, 0, 314, + 0, 580, 0, 0, 438, 0, 0, 578, 0, 0, + 0, 0, 285, 0, 282, 182, 198, 0, 0, 324, + 363, 369, 0, 0, 0, 221, 0, 367, 338, 423, + 205, 248, 360, 343, 365, 0, 0, 366, 291, 411, + 355, 421, 439, 440, 228, 318, 429, 402, 435, 451, + 199, 225, 332, 395, 426, 386, 311, 407, 408, 281, + 385, 256, 185, 289, 445, 197, 375, 213, 190, 397, + 419, 210, 378, 0, 0, 453, 192, 417, 394, 308, + 278, 279, 191, 0, 359, 233, 254, 223, 327, 414, + 415, 222, 454, 201, 434, 194, 0, 433, 320, 410, + 418, 309, 300, 193, 416, 307, 299, 284, 244, 265, + 353, 294, 354, 266, 316, 315, 317, 0, 188, 0, + 391, 427, 455, 206, 207, 208, 0, 243, 247, 253, + 255, 261, 262, 269, 287, 331, 352, 350, 356, 0, + 405, 422, 430, 437, 443, 444, 446, 447, 448, 449, + 450, 319, 268, 387, 283, 292, 0, 0, 337, 368, + 211, 425, 388, 568, 579, 574, 575, 572, 573, 567, + 571, 570, 569, 582, 559, 560, 561, 562, 564, 0, + 576, 577, 563, 181, 195, 288, 0, 357, 251, 452, + 432, 428, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 271, 272, + 275, 280, 297, 302, 303, 304, 305, 321, 322, 323, + 326, 329, 330, 333, 335, 336, 339, 345, 346, 347, + 348, 349, 351, 358, 362, 370, 371, 372, 373, 374, + 376, 377, 381, 382, 383, 384, 392, 396, 412, 413, + 424, 436, 441, 260, 420, 442, 0, 296, 0, 0, + 298, 245, 263, 273, 0, 431, 393, 200, 364, 252, + 189, 217, 203, 224, 239, 242, 277, 306, 312, 341, + 344, 257, 236, 215, 361, 212, 379, 399, 400, 401, + 403, 310, 231, 404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, + 523, 0, 0, 0, 235, 522, 0, 0, 0, 286, + 232, 0, 0, 342, 0, 187, 0, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 566, 290, 0, 0, 389, 313, 0, 0, 0, + 0, 0, 557, 558, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 218, 186, 325, 390, 250, 0, 81, + 0, 0, 178, 179, 180, 544, 543, 546, 547, 548, + 549, 0, 0, 209, 545, 216, 550, 551, 552, 0, + 230, 274, 237, 229, 406, 0, 0, 0, 0, 202, + 0, 0, 0, 0, 0, 520, 537, 0, 565, 0, + 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 534, 535, + 0, 0, 0, 0, 581, 0, 536, 0, 0, 529, + 530, 532, 531, 533, 538, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 0, 314, 0, 580, 0, + 0, 438, 0, 0, 578, 0, 0, 0, 0, 285, + 0, 282, 182, 198, 0, 0, 324, 363, 369, 0, + 0, 0, 221, 0, 367, 338, 423, 205, 248, 360, + 343, 365, 0, 0, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 0, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 0, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 0, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 0, 0, 337, 368, 211, 425, 388, + 568, 579, 574, 575, 572, 573, 567, 571, 570, 569, + 582, 559, 560, 561, 562, 564, 0, 576, 577, 563, + 181, 195, 288, 0, 357, 251, 452, 432, 428, 0, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 260, 420, 442, 0, 296, 0, 0, 298, 245, 263, + 273, 0, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 286, 232, 0, 0, + 342, 0, 187, 0, 380, 220, 295, 293, 409, 246, + 238, 234, 219, 270, 301, 340, 398, 334, 566, 290, + 0, 0, 389, 313, 0, 0, 0, 0, 0, 557, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 276, + 218, 186, 325, 390, 250, 0, 81, 0, 0, 178, + 179, 180, 544, 543, 546, 547, 548, 549, 0, 0, + 209, 545, 216, 550, 551, 552, 0, 230, 274, 237, + 229, 406, 0, 0, 0, 0, 202, 0, 0, 0, + 0, 0, 0, 537, 0, 565, 0, 0, 0, 240, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 534, 535, 0, 0, 0, + 0, 581, 0, 536, 0, 0, 529, 530, 532, 531, + 533, 538, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 258, 0, 314, 0, 580, 0, 0, 438, 0, + 0, 578, 0, 0, 0, 0, 285, 0, 282, 182, + 198, 0, 0, 324, 363, 369, 0, 0, 0, 221, + 0, 367, 338, 423, 205, 248, 360, 343, 365, 2297, + 0, 366, 291, 411, 355, 421, 439, 440, 228, 318, + 429, 402, 435, 451, 199, 225, 332, 395, 426, 386, + 311, 407, 408, 281, 385, 256, 185, 289, 445, 197, + 375, 213, 190, 397, 419, 210, 378, 0, 0, 453, + 192, 417, 394, 308, 278, 279, 191, 0, 359, 233, + 254, 223, 327, 414, 415, 222, 454, 201, 434, 194, + 0, 433, 320, 410, 418, 309, 300, 193, 416, 307, + 299, 284, 244, 265, 353, 294, 354, 266, 316, 315, + 317, 0, 188, 0, 391, 427, 455, 206, 207, 208, + 0, 243, 247, 253, 255, 261, 262, 269, 287, 331, + 352, 350, 356, 0, 405, 422, 430, 437, 443, 444, + 446, 447, 448, 449, 450, 319, 268, 387, 283, 292, + 0, 0, 337, 368, 211, 425, 388, 568, 579, 574, + 575, 572, 573, 567, 571, 570, 569, 582, 559, 560, + 561, 562, 564, 0, 576, 577, 563, 181, 195, 288, + 0, 357, 251, 452, 432, 428, 0, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, + 264, 267, 271, 272, 275, 280, 297, 302, 303, 304, + 305, 321, 322, 323, 326, 329, 330, 333, 335, 336, + 339, 345, 346, 347, 348, 349, 351, 358, 362, 370, + 371, 372, 373, 374, 376, 377, 381, 382, 383, 384, + 392, 396, 412, 413, 424, 436, 441, 260, 420, 442, + 0, 296, 0, 0, 298, 245, 263, 273, 0, 431, + 393, 200, 364, 252, 189, 217, 203, 224, 239, 242, + 277, 306, 312, 341, 344, 257, 236, 215, 361, 212, + 379, 399, 400, 401, 403, 310, 231, 404, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 286, 232, 0, 0, 342, 0, 187, + 0, 380, 220, 295, 293, 409, 246, 238, 234, 219, + 270, 301, 340, 398, 334, 566, 290, 0, 0, 389, + 313, 0, 0, 0, 0, 0, 557, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 218, 186, 325, + 390, 250, 0, 81, 0, 1102, 178, 179, 180, 544, + 543, 546, 547, 548, 549, 0, 0, 209, 545, 216, + 550, 551, 552, 0, 230, 274, 237, 229, 406, 0, + 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 537, 0, 565, 0, 0, 0, 240, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 534, 535, 0, 0, 0, 0, 581, 0, + 536, 0, 0, 529, 530, 532, 531, 533, 538, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, + 314, 0, 580, 0, 0, 438, 0, 0, 578, 0, + 0, 0, 0, 285, 0, 282, 182, 198, 0, 0, + 324, 363, 369, 0, 0, 0, 221, 0, 367, 338, + 423, 205, 248, 360, 343, 365, 0, 0, 366, 291, + 411, 355, 421, 439, 440, 228, 318, 429, 402, 435, + 451, 199, 225, 332, 395, 426, 386, 311, 407, 408, + 281, 385, 256, 185, 289, 445, 197, 375, 213, 190, + 397, 419, 210, 378, 0, 0, 453, 192, 417, 394, + 308, 278, 279, 191, 0, 359, 233, 254, 223, 327, + 414, 415, 222, 454, 201, 434, 194, 0, 433, 320, + 410, 418, 309, 300, 193, 416, 307, 299, 284, 244, + 265, 353, 294, 354, 266, 316, 315, 317, 0, 188, + 0, 391, 427, 455, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 287, 331, 352, 350, 356, + 0, 405, 422, 430, 437, 443, 444, 446, 447, 448, + 449, 450, 319, 268, 387, 283, 292, 0, 0, 337, + 368, 211, 425, 388, 568, 579, 574, 575, 572, 573, + 567, 571, 570, 569, 582, 559, 560, 561, 562, 564, + 0, 576, 577, 563, 181, 195, 288, 0, 357, 251, + 452, 432, 428, 0, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, + 196, 204, 214, 226, 241, 249, 259, 264, 267, 271, + 272, 275, 280, 297, 302, 303, 304, 305, 321, 322, + 323, 326, 329, 330, 333, 335, 336, 339, 345, 346, + 347, 348, 349, 351, 358, 362, 370, 371, 372, 373, + 374, 376, 377, 381, 382, 383, 384, 392, 396, 412, + 413, 424, 436, 441, 260, 420, 442, 0, 296, 0, + 0, 298, 245, 263, 273, 0, 431, 393, 200, 364, + 252, 189, 217, 203, 224, 239, 242, 277, 306, 312, + 341, 344, 257, 236, 215, 361, 212, 379, 399, 400, + 401, 403, 310, 231, 404, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 286, 232, 0, 0, 342, 0, 187, 0, 380, 220, + 295, 293, 409, 246, 238, 234, 219, 270, 301, 340, + 398, 334, 566, 290, 0, 0, 389, 313, 0, 0, + 0, 0, 0, 557, 558, 0, 0, 0, 0, 0, + 0, 0, 0, 276, 218, 186, 325, 390, 250, 0, + 81, 0, 0, 178, 179, 180, 544, 543, 546, 547, + 548, 549, 0, 0, 209, 545, 216, 550, 551, 552, + 0, 230, 274, 237, 229, 406, 0, 0, 0, 0, + 202, 0, 0, 0, 0, 0, 0, 537, 0, 565, + 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 534, + 535, 0, 0, 0, 0, 581, 0, 536, 0, 0, + 529, 530, 532, 531, 533, 538, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 258, 0, 314, 0, 580, + 0, 0, 438, 0, 0, 578, 0, 0, 0, 0, + 285, 0, 282, 182, 198, 0, 0, 324, 363, 369, + 0, 0, 0, 221, 0, 367, 338, 423, 205, 248, + 360, 343, 365, 0, 0, 366, 291, 411, 355, 421, + 439, 440, 228, 318, 429, 402, 435, 451, 199, 225, + 332, 395, 426, 386, 311, 407, 408, 281, 385, 256, + 185, 289, 445, 197, 375, 213, 190, 397, 419, 210, + 378, 0, 0, 453, 192, 417, 394, 308, 278, 279, + 191, 0, 359, 233, 254, 223, 327, 414, 415, 222, + 454, 201, 434, 194, 0, 433, 320, 410, 418, 309, + 300, 193, 416, 307, 299, 284, 244, 265, 353, 294, + 354, 266, 316, 315, 317, 0, 188, 0, 391, 427, + 455, 206, 207, 208, 0, 243, 247, 253, 255, 261, + 262, 269, 287, 331, 352, 350, 356, 0, 405, 422, + 430, 437, 443, 444, 446, 447, 448, 449, 450, 319, + 268, 387, 283, 292, 0, 0, 337, 368, 211, 425, + 388, 568, 579, 574, 575, 572, 573, 567, 571, 570, + 569, 582, 559, 560, 561, 562, 564, 0, 576, 577, + 563, 181, 195, 288, 0, 357, 251, 452, 432, 428, + 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 183, 184, 196, 204, 214, + 226, 241, 249, 259, 264, 267, 271, 272, 275, 280, + 297, 302, 303, 304, 305, 321, 322, 323, 326, 329, + 330, 333, 335, 336, 339, 345, 346, 347, 348, 349, + 351, 358, 362, 370, 371, 372, 373, 374, 376, 377, + 381, 382, 383, 384, 392, 396, 412, 413, 424, 436, + 441, 260, 420, 442, 0, 296, 0, 0, 298, 245, + 263, 273, 0, 431, 393, 200, 364, 252, 189, 217, + 203, 224, 239, 242, 277, 306, 312, 341, 344, 257, + 236, 215, 361, 212, 379, 399, 400, 401, 403, 310, + 231, 404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 0, 0, 0, 0, 286, 232, 0, + 0, 342, 0, 187, 0, 380, 220, 295, 293, 409, + 246, 238, 234, 219, 270, 301, 340, 398, 334, 0, + 290, 0, 0, 389, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 218, 186, 325, 390, 250, 0, 0, 0, 0, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 216, 0, 0, 0, 0, 230, 274, + 237, 229, 406, 0, 0, 0, 0, 202, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1002, 1001, 1011, 1012, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1003, 0, 0, 1013, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 258, 0, 314, 0, 0, 0, 0, 438, + 0, 0, 0, 0, 0, 0, 0, 285, 0, 282, + 182, 198, 0, 0, 324, 363, 369, 0, 0, 0, + 221, 0, 367, 338, 423, 205, 248, 360, 343, 365, + 0, 0, 366, 291, 411, 355, 421, 439, 440, 228, + 318, 429, 402, 435, 451, 199, 225, 332, 395, 426, + 386, 311, 407, 408, 281, 385, 256, 185, 289, 445, + 197, 375, 213, 190, 397, 419, 210, 378, 0, 0, + 453, 192, 417, 394, 308, 278, 279, 191, 0, 359, + 233, 254, 223, 327, 414, 415, 222, 454, 201, 434, + 194, 0, 433, 320, 410, 418, 309, 300, 193, 416, + 307, 299, 284, 244, 265, 353, 294, 354, 266, 316, + 315, 317, 0, 188, 0, 391, 427, 455, 206, 207, + 208, 0, 243, 247, 253, 255, 261, 262, 269, 287, + 331, 352, 350, 356, 0, 405, 422, 430, 437, 443, + 444, 446, 447, 448, 449, 450, 319, 268, 387, 283, + 292, 0, 0, 337, 368, 211, 425, 388, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 195, + 288, 0, 357, 251, 452, 432, 428, 0, 0, 227, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 183, 184, 196, 204, 214, 226, 241, 249, + 259, 264, 267, 271, 272, 275, 280, 297, 302, 303, + 304, 305, 321, 322, 323, 326, 329, 330, 333, 335, + 336, 339, 345, 346, 347, 348, 349, 351, 358, 362, + 370, 371, 372, 373, 374, 376, 377, 381, 382, 383, + 384, 392, 396, 412, 413, 424, 436, 441, 260, 420, + 442, 0, 296, 0, 0, 298, 245, 263, 273, 0, + 431, 393, 200, 364, 252, 189, 217, 203, 224, 239, + 242, 277, 306, 312, 341, 344, 257, 236, 215, 361, + 212, 379, 399, 400, 401, 403, 310, 231, 404, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 328, 0, 0, 0, 0, 0, 0, 0, 0, 235, + 0, 0, 0, 0, 286, 232, 0, 0, 342, 0, + 187, 0, 380, 220, 295, 293, 409, 246, 238, 234, + 219, 270, 301, 340, 398, 334, 0, 290, 0, 0, + 389, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 276, 218, 186, + 325, 390, 250, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 216, 0, 0, 0, 0, 230, 274, 237, 229, 406, + 0, 0, 0, 0, 202, 0, 828, 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, 0, 0, 0, 0, 0, 258, + 0, 314, 0, 0, 0, 827, 438, 0, 0, 0, + 0, 0, 824, 825, 285, 790, 282, 182, 198, 818, + 822, 324, 363, 369, 0, 0, 0, 221, 0, 367, + 338, 423, 205, 248, 360, 343, 365, 0, 0, 366, + 291, 411, 355, 421, 439, 440, 228, 318, 429, 402, + 435, 451, 199, 225, 332, 395, 426, 386, 311, 407, + 408, 281, 385, 256, 185, 289, 445, 197, 375, 213, + 190, 397, 419, 210, 378, 0, 0, 453, 192, 417, + 394, 308, 278, 279, 191, 0, 359, 233, 254, 223, + 327, 414, 415, 222, 454, 201, 434, 194, 0, 433, + 320, 410, 418, 309, 300, 193, 416, 307, 299, 284, + 244, 265, 353, 294, 354, 266, 316, 315, 317, 0, + 188, 0, 391, 427, 455, 206, 207, 208, 0, 243, + 247, 253, 255, 261, 262, 269, 287, 331, 352, 350, + 356, 0, 405, 422, 430, 437, 443, 444, 446, 447, + 448, 449, 450, 319, 268, 387, 283, 292, 0, 0, + 337, 368, 211, 425, 388, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 195, 288, 0, 357, + 251, 452, 432, 428, 0, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 271, 272, 275, 280, 297, 302, 303, 304, 305, 321, + 322, 323, 326, 329, 330, 333, 335, 336, 339, 345, + 346, 347, 348, 349, 351, 358, 362, 370, 371, 372, + 373, 374, 376, 377, 381, 382, 383, 384, 392, 396, + 412, 413, 424, 436, 441, 260, 420, 442, 0, 296, + 0, 0, 298, 245, 263, 273, 0, 431, 393, 200, + 364, 252, 189, 217, 203, 224, 239, 242, 277, 306, + 312, 341, 344, 257, 236, 215, 361, 212, 379, 399, + 400, 401, 403, 310, 231, 404, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, + 0, 1122, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 286, 232, 0, 0, 342, 0, 187, 0, 380, + 220, 295, 293, 409, 246, 238, 234, 219, 270, 301, + 340, 398, 334, 0, 290, 0, 0, 389, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 218, 186, 325, 390, 250, + 0, 0, 0, 0, 178, 179, 180, 0, 1124, 0, + 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, + 0, 0, 230, 274, 237, 229, 406, 0, 0, 0, + 0, 202, 0, 0, 991, 992, 990, 0, 0, 0, + 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, + 0, 0, 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, 258, 0, 314, 0, + 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, + 0, 285, 0, 282, 182, 198, 0, 0, 324, 363, + 369, 0, 0, 0, 221, 0, 367, 338, 423, 205, + 248, 360, 343, 365, 0, 0, 366, 291, 411, 355, + 421, 439, 440, 228, 318, 429, 402, 435, 451, 199, + 225, 332, 395, 426, 386, 311, 407, 408, 281, 385, + 256, 185, 289, 445, 197, 375, 213, 190, 397, 419, + 210, 378, 0, 0, 453, 192, 417, 394, 308, 278, + 279, 191, 0, 359, 233, 254, 223, 327, 414, 415, + 222, 454, 201, 434, 194, 0, 433, 320, 410, 418, + 309, 300, 193, 416, 307, 299, 284, 244, 265, 353, + 294, 354, 266, 316, 315, 317, 0, 188, 0, 391, + 427, 455, 206, 207, 208, 0, 243, 247, 253, 255, + 261, 262, 269, 287, 331, 352, 350, 356, 0, 405, + 422, 430, 437, 443, 444, 446, 447, 448, 449, 450, + 319, 268, 387, 283, 292, 0, 0, 337, 368, 211, + 425, 388, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 181, 195, 288, 0, 357, 251, 452, 432, + 428, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, + 214, 226, 241, 249, 259, 264, 267, 271, 272, 275, + 280, 297, 302, 303, 304, 305, 321, 322, 323, 326, + 329, 330, 333, 335, 336, 339, 345, 346, 347, 348, + 349, 351, 358, 362, 370, 371, 372, 373, 374, 376, + 377, 381, 382, 383, 384, 392, 396, 412, 413, 424, + 436, 441, 260, 420, 442, 0, 296, 0, 0, 298, + 245, 263, 273, 0, 431, 393, 200, 364, 252, 189, + 217, 203, 224, 239, 242, 277, 306, 312, 341, 344, + 257, 236, 215, 361, 212, 379, 399, 400, 401, 403, + 310, 231, 72, 404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, + 0, 0, 0, 0, 235, 0, 0, 0, 0, 286, + 232, 0, 0, 342, 0, 187, 0, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 0, 290, 0, 0, 389, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 218, 186, 325, 390, 250, 0, 81, + 0, 1102, 178, 179, 180, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, + 230, 274, 237, 229, 406, 0, 0, 0, 0, 202, + 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, 0, + 0, 0, 0, 0, 258, 0, 314, 0, 0, 0, + 0, 438, 0, 0, 0, 0, 0, 0, 0, 285, + 0, 282, 182, 198, 0, 0, 324, 363, 369, 0, + 0, 0, 221, 0, 367, 338, 423, 205, 248, 360, + 343, 365, 0, 0, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 0, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 0, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 0, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 0, 0, 337, 368, 211, 425, 388, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 181, 195, 288, 80, 357, 251, 452, 432, 428, 0, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 260, 420, 442, 0, 296, 0, 0, 298, 245, 263, + 273, 0, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 72, 404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 0, 0, 0, 0, 286, 232, 0, + 0, 342, 0, 187, 0, 380, 220, 295, 293, 409, + 246, 238, 234, 219, 270, 301, 340, 398, 334, 0, + 290, 0, 0, 389, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 218, 186, 325, 390, 250, 0, 81, 0, 0, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 216, 0, 0, 0, 0, 230, 274, + 237, 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, + 0, 0, 258, 0, 314, 0, 0, 0, 0, 438, + 0, 0, 0, 0, 0, 0, 0, 285, 0, 282, + 182, 198, 0, 0, 324, 363, 369, 0, 0, 0, + 221, 0, 367, 338, 423, 205, 248, 360, 343, 365, + 0, 0, 366, 291, 411, 355, 421, 439, 440, 228, + 318, 429, 402, 435, 451, 199, 225, 332, 395, 426, + 386, 311, 407, 408, 281, 385, 256, 185, 289, 445, + 197, 375, 213, 190, 397, 419, 210, 378, 0, 0, + 453, 192, 417, 394, 308, 278, 279, 191, 0, 359, + 233, 254, 223, 327, 414, 415, 222, 454, 201, 434, + 194, 0, 433, 320, 410, 418, 309, 300, 193, 416, + 307, 299, 284, 244, 265, 353, 294, 354, 266, 316, + 315, 317, 0, 188, 0, 391, 427, 455, 206, 207, + 208, 0, 243, 247, 253, 255, 261, 262, 269, 287, + 331, 352, 350, 356, 0, 405, 422, 430, 437, 443, + 444, 446, 447, 448, 449, 450, 319, 268, 387, 283, + 292, 0, 0, 337, 368, 211, 425, 388, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 195, + 288, 80, 357, 251, 452, 432, 428, 0, 0, 227, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 183, 184, 196, 204, 214, 226, 241, 249, + 259, 264, 267, 271, 272, 275, 280, 297, 302, 303, + 304, 305, 321, 322, 323, 326, 329, 330, 333, 335, + 336, 339, 345, 346, 347, 348, 349, 351, 358, 362, + 370, 371, 372, 373, 374, 376, 377, 381, 382, 383, + 384, 392, 396, 412, 413, 424, 436, 441, 260, 420, + 442, 0, 296, 0, 0, 298, 245, 263, 273, 0, + 431, 393, 200, 364, 252, 189, 217, 203, 224, 239, + 242, 277, 306, 312, 341, 344, 257, 236, 215, 361, + 212, 379, 399, 400, 401, 403, 310, 231, 404, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 328, 0, 0, 0, 1481, 0, 0, 0, 0, 235, + 0, 0, 0, 0, 286, 232, 0, 0, 342, 0, + 187, 0, 380, 220, 295, 293, 409, 246, 238, 234, + 219, 270, 301, 340, 398, 334, 0, 290, 0, 0, + 389, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 276, 218, 186, + 325, 390, 250, 0, 0, 0, 0, 178, 179, 180, + 0, 1295, 0, 0, 0, 0, 0, 0, 209, 0, + 216, 0, 0, 0, 0, 230, 274, 237, 229, 406, + 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, + 0, 314, 0, 0, 0, 0, 438, 0, 0, 0, + 0, 0, 0, 0, 285, 0, 282, 182, 198, 0, + 0, 324, 363, 369, 0, 0, 0, 221, 0, 367, + 338, 423, 205, 248, 360, 343, 365, 0, 1479, 366, + 291, 411, 355, 421, 439, 440, 228, 318, 429, 402, + 435, 451, 199, 225, 332, 395, 426, 386, 311, 407, + 408, 281, 385, 256, 185, 289, 445, 197, 375, 213, + 190, 397, 419, 210, 378, 0, 0, 453, 192, 417, + 394, 308, 278, 279, 191, 0, 359, 233, 254, 223, + 327, 414, 415, 222, 454, 201, 434, 194, 0, 433, + 320, 410, 418, 309, 300, 193, 416, 307, 299, 284, + 244, 265, 353, 294, 354, 266, 316, 315, 317, 0, + 188, 0, 391, 427, 455, 206, 207, 208, 0, 243, + 247, 253, 255, 261, 262, 269, 287, 331, 352, 350, + 356, 0, 405, 422, 430, 437, 443, 444, 446, 447, + 448, 449, 450, 319, 268, 387, 283, 292, 0, 0, + 337, 368, 211, 425, 388, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 195, 288, 0, 357, + 251, 452, 432, 428, 0, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 271, 272, 275, 280, 297, 302, 303, 304, 305, 321, + 322, 323, 326, 329, 330, 333, 335, 336, 339, 345, + 346, 347, 348, 349, 351, 358, 362, 370, 371, 372, + 373, 374, 376, 377, 381, 382, 383, 384, 392, 396, + 412, 413, 424, 436, 441, 260, 420, 442, 0, 296, + 0, 0, 298, 245, 263, 273, 0, 431, 393, 200, + 364, 252, 189, 217, 203, 224, 239, 242, 277, 306, + 312, 341, 344, 257, 236, 215, 361, 212, 379, 399, + 400, 401, 403, 310, 231, 404, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 286, 232, 0, 0, 342, 0, 187, 0, 380, + 220, 295, 293, 409, 246, 238, 234, 219, 270, 301, + 340, 398, 334, 0, 290, 0, 0, 389, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 218, 186, 325, 390, 250, + 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, + 0, 0, 230, 274, 237, 229, 406, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, + 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 258, 0, 314, 0, + 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, + 0, 285, 790, 282, 182, 198, 788, 0, 324, 363, + 369, 0, 0, 0, 221, 0, 367, 338, 423, 205, + 248, 360, 343, 365, 0, 0, 366, 291, 411, 355, + 421, 439, 440, 228, 318, 429, 402, 435, 451, 199, + 225, 332, 395, 426, 386, 311, 407, 408, 281, 385, + 256, 185, 289, 445, 197, 375, 213, 190, 397, 419, + 210, 378, 0, 0, 453, 192, 417, 394, 308, 278, + 279, 191, 0, 359, 233, 254, 223, 327, 414, 415, + 222, 454, 201, 434, 194, 0, 433, 320, 410, 418, + 309, 300, 193, 416, 307, 299, 284, 244, 265, 353, + 294, 354, 266, 316, 315, 317, 0, 188, 0, 391, + 427, 455, 206, 207, 208, 0, 243, 247, 253, 255, + 261, 262, 269, 287, 331, 352, 350, 356, 0, 405, + 422, 430, 437, 443, 444, 446, 447, 448, 449, 450, + 319, 268, 387, 283, 292, 0, 0, 337, 368, 211, + 425, 388, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 181, 195, 288, 0, 357, 251, 452, 432, + 428, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, + 214, 226, 241, 249, 259, 264, 267, 271, 272, 275, + 280, 297, 302, 303, 304, 305, 321, 322, 323, 326, + 329, 330, 333, 335, 336, 339, 345, 346, 347, 348, + 349, 351, 358, 362, 370, 371, 372, 373, 374, 376, + 377, 381, 382, 383, 384, 392, 396, 412, 413, 424, + 436, 441, 260, 420, 442, 0, 296, 0, 0, 298, + 245, 263, 273, 0, 431, 393, 200, 364, 252, 189, + 217, 203, 224, 239, 242, 277, 306, 312, 341, 344, + 257, 236, 215, 361, 212, 379, 399, 400, 401, 403, + 310, 231, 404, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 328, 0, 0, 0, 1481, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 286, 232, + 0, 0, 342, 0, 187, 0, 380, 220, 295, 293, + 409, 246, 238, 234, 219, 270, 301, 340, 398, 334, + 0, 290, 0, 0, 389, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 276, 218, 186, 325, 390, 250, 0, 0, 0, + 0, 178, 179, 180, 0, 1295, 0, 0, 0, 0, + 0, 0, 209, 0, 216, 0, 0, 0, 0, 230, + 274, 237, 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, + 0, 0, 0, 258, 0, 314, 0, 0, 0, 0, + 438, 0, 0, 0, 0, 0, 0, 0, 285, 0, + 282, 182, 198, 0, 0, 324, 363, 369, 0, 0, + 0, 221, 0, 367, 338, 423, 205, 248, 360, 343, + 365, 0, 0, 366, 291, 411, 355, 421, 439, 440, + 228, 318, 429, 402, 435, 451, 199, 225, 332, 395, + 426, 386, 311, 407, 408, 281, 385, 256, 185, 289, + 445, 197, 375, 213, 190, 397, 419, 210, 378, 0, + 0, 453, 192, 417, 394, 308, 278, 279, 191, 0, + 359, 233, 254, 223, 327, 414, 415, 222, 454, 201, + 434, 194, 0, 433, 320, 410, 418, 309, 300, 193, + 416, 307, 299, 284, 244, 265, 353, 294, 354, 266, + 316, 315, 317, 0, 188, 0, 391, 427, 455, 206, + 207, 208, 0, 243, 247, 253, 255, 261, 262, 269, + 287, 331, 352, 350, 356, 0, 405, 422, 430, 437, + 443, 444, 446, 447, 448, 449, 450, 319, 268, 387, + 283, 292, 0, 0, 337, 368, 211, 425, 388, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, + 195, 288, 0, 357, 251, 452, 432, 428, 0, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 183, 184, 196, 204, 214, 226, 241, + 249, 259, 264, 267, 271, 272, 275, 280, 297, 302, + 303, 304, 305, 321, 322, 323, 326, 329, 330, 333, + 335, 336, 339, 345, 346, 347, 348, 349, 351, 358, + 362, 370, 371, 372, 373, 374, 376, 377, 381, 382, + 383, 384, 392, 396, 412, 413, 424, 436, 441, 260, + 420, 442, 0, 296, 0, 0, 298, 245, 263, 273, + 0, 431, 393, 200, 364, 252, 189, 217, 203, 224, + 239, 242, 277, 306, 312, 341, 344, 257, 236, 215, + 361, 212, 379, 399, 400, 401, 403, 310, 231, 404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 0, 0, 0, 0, 286, 232, 0, 0, 342, + 0, 187, 0, 380, 220, 295, 293, 409, 246, 238, + 234, 219, 270, 301, 340, 398, 334, 0, 290, 0, + 0, 389, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 218, + 186, 325, 390, 250, 0, 0, 0, 1102, 178, 179, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 216, 0, 0, 0, 0, 230, 274, 237, 229, + 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, + 258, 0, 314, 0, 0, 0, 0, 438, 0, 0, + 0, 2181, 0, 0, 0, 285, 0, 282, 182, 198, + 0, 0, 324, 363, 369, 0, 0, 0, 221, 0, + 367, 338, 423, 205, 248, 360, 343, 365, 0, 0, + 366, 291, 411, 355, 421, 439, 440, 228, 318, 429, + 402, 435, 451, 199, 225, 332, 395, 426, 386, 311, + 407, 408, 281, 385, 256, 185, 289, 445, 197, 375, + 213, 190, 397, 419, 210, 378, 0, 0, 453, 192, + 417, 394, 308, 278, 279, 191, 0, 359, 233, 254, + 223, 327, 414, 415, 222, 454, 201, 434, 194, 0, + 433, 320, 410, 418, 309, 300, 193, 416, 307, 299, + 284, 244, 265, 353, 294, 354, 266, 316, 315, 317, + 0, 188, 0, 391, 427, 455, 206, 207, 208, 0, + 243, 247, 253, 255, 261, 262, 269, 287, 331, 352, + 350, 356, 0, 405, 422, 430, 437, 443, 444, 446, + 447, 448, 449, 450, 319, 268, 387, 283, 292, 0, + 0, 337, 368, 211, 425, 388, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 181, 195, 288, 0, + 357, 251, 452, 432, 428, 0, 0, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, + 267, 271, 272, 275, 280, 297, 302, 303, 304, 305, + 321, 322, 323, 326, 329, 330, 333, 335, 336, 339, + 345, 346, 347, 348, 349, 351, 358, 362, 370, 371, + 372, 373, 374, 376, 377, 381, 382, 383, 384, 392, + 396, 412, 413, 424, 436, 441, 260, 420, 442, 0, + 296, 0, 0, 298, 245, 263, 273, 0, 431, 393, + 200, 364, 252, 189, 217, 203, 224, 239, 242, 277, + 306, 312, 341, 344, 257, 236, 215, 361, 212, 379, + 399, 400, 401, 403, 310, 231, 404, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 286, 232, 0, 0, 342, 0, 187, 0, + 380, 220, 295, 293, 409, 246, 238, 234, 219, 270, + 301, 340, 398, 334, 0, 290, 0, 0, 389, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 276, 218, 186, 325, 390, + 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 1732, 0, 0, 1733, 0, 0, 209, 0, 216, 0, + 0, 0, 0, 230, 274, 237, 229, 406, 0, 0, + 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, 314, + 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, + 0, 0, 285, 0, 282, 182, 198, 0, 0, 324, + 363, 369, 0, 0, 0, 221, 0, 367, 338, 423, + 205, 248, 360, 343, 365, 0, 0, 366, 291, 411, + 355, 421, 439, 440, 228, 318, 429, 402, 435, 451, + 199, 225, 332, 395, 426, 386, 311, 407, 408, 281, + 385, 256, 185, 289, 445, 197, 375, 213, 190, 397, + 419, 210, 378, 0, 0, 453, 192, 417, 394, 308, + 278, 279, 191, 0, 359, 233, 254, 223, 327, 414, + 415, 222, 454, 201, 434, 194, 0, 433, 320, 410, + 418, 309, 300, 193, 416, 307, 299, 284, 244, 265, + 353, 294, 354, 266, 316, 315, 317, 0, 188, 0, + 391, 427, 455, 206, 207, 208, 0, 243, 247, 253, + 255, 261, 262, 269, 287, 331, 352, 350, 356, 0, + 405, 422, 430, 437, 443, 444, 446, 447, 448, 449, + 450, 319, 268, 387, 283, 292, 0, 0, 337, 368, + 211, 425, 388, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 195, 288, 0, 357, 251, 452, + 432, 428, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 271, 272, + 275, 280, 297, 302, 303, 304, 305, 321, 322, 323, + 326, 329, 330, 333, 335, 336, 339, 345, 346, 347, + 348, 349, 351, 358, 362, 370, 371, 372, 373, 374, + 376, 377, 381, 382, 383, 384, 392, 396, 412, 413, + 424, 436, 441, 260, 420, 442, 0, 296, 0, 0, + 298, 245, 263, 273, 0, 431, 393, 200, 364, 252, + 189, 217, 203, 224, 239, 242, 277, 306, 312, 341, + 344, 257, 236, 215, 361, 212, 379, 399, 400, 401, + 403, 310, 231, 404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, + 0, 0, 0, 0, 235, 1145, 0, 0, 0, 286, + 232, 0, 0, 342, 0, 187, 0, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 0, 290, 0, 0, 389, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 218, 186, 325, 390, 250, 0, 0, + 0, 0, 178, 179, 180, 0, 1144, 0, 0, 0, + 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, + 230, 274, 237, 229, 406, 0, 0, 0, 0, 202, + 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, 0, + 0, 0, 0, 0, 258, 0, 314, 0, 0, 0, + 0, 438, 0, 0, 0, 0, 0, 0, 0, 285, + 0, 282, 182, 198, 0, 0, 324, 363, 369, 0, + 0, 0, 221, 0, 367, 338, 423, 205, 248, 360, + 343, 365, 0, 0, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 0, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 0, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 0, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 0, 0, 337, 368, 211, 425, 388, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 181, 195, 288, 0, 357, 251, 452, 432, 428, 0, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 260, 420, 442, 0, 296, 0, 0, 298, 245, 263, + 273, 0, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 286, 232, 0, 0, + 342, 0, 187, 0, 380, 220, 295, 293, 409, 246, + 238, 234, 219, 270, 301, 340, 398, 334, 0, 290, + 0, 0, 389, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, + 218, 186, 325, 390, 250, 0, 0, 0, 0, 178, + 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 0, 216, 0, 0, 0, 0, 230, 274, 237, + 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, + 0, 258, 0, 314, 0, 0, 0, 0, 438, 0, + 0, 0, 2278, 0, 0, 0, 285, 0, 282, 182, + 198, 0, 0, 324, 363, 369, 0, 0, 0, 221, + 0, 367, 338, 423, 205, 248, 360, 343, 365, 0, + 0, 366, 291, 411, 355, 421, 439, 440, 228, 318, + 429, 402, 435, 451, 199, 225, 332, 395, 426, 386, + 311, 407, 408, 281, 385, 256, 185, 289, 445, 197, + 375, 213, 190, 397, 419, 210, 378, 0, 0, 453, + 192, 417, 394, 308, 278, 279, 191, 0, 359, 233, + 254, 223, 327, 414, 415, 222, 454, 201, 434, 194, + 0, 433, 320, 410, 418, 309, 300, 193, 416, 307, + 299, 284, 244, 265, 353, 294, 354, 266, 316, 315, + 317, 0, 188, 0, 391, 427, 455, 206, 207, 208, + 0, 243, 247, 253, 255, 261, 262, 269, 287, 331, + 352, 350, 356, 0, 405, 422, 430, 437, 443, 444, + 446, 447, 448, 449, 450, 319, 268, 387, 283, 292, + 0, 0, 337, 368, 211, 425, 388, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 181, 195, 288, + 0, 357, 251, 452, 432, 428, 0, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, + 264, 267, 271, 272, 275, 280, 297, 302, 303, 304, + 305, 321, 322, 323, 326, 329, 330, 333, 335, 336, + 339, 345, 346, 347, 348, 349, 351, 358, 362, 370, + 371, 372, 373, 374, 376, 377, 381, 382, 383, 384, + 392, 396, 412, 413, 424, 436, 441, 260, 420, 442, + 0, 296, 0, 0, 298, 245, 263, 273, 0, 431, + 393, 200, 364, 252, 189, 217, 203, 224, 239, 242, + 277, 306, 312, 341, 344, 257, 236, 215, 361, 212, + 379, 399, 400, 401, 403, 310, 231, 404, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 286, 232, 0, 0, 342, 0, 187, + 0, 380, 220, 295, 293, 409, 246, 238, 234, 219, + 270, 301, 340, 398, 334, 0, 290, 0, 0, 389, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 218, 186, 325, + 390, 250, 0, 0, 0, 0, 178, 179, 180, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, + 0, 0, 0, 0, 230, 274, 237, 229, 406, 0, + 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, + 314, 0, 0, 0, 0, 438, 0, 0, 0, 2181, + 0, 0, 0, 285, 0, 282, 182, 198, 0, 0, + 324, 363, 369, 0, 0, 0, 221, 0, 367, 338, + 423, 205, 248, 360, 343, 365, 0, 0, 366, 291, + 411, 355, 421, 439, 440, 228, 318, 429, 402, 435, + 451, 199, 225, 332, 395, 426, 386, 311, 407, 408, + 281, 385, 256, 185, 289, 445, 197, 375, 213, 190, + 397, 419, 210, 378, 0, 0, 453, 192, 417, 394, + 308, 278, 279, 191, 0, 359, 233, 254, 223, 327, + 414, 415, 222, 454, 201, 434, 194, 0, 433, 320, + 410, 418, 309, 300, 193, 416, 307, 299, 284, 244, + 265, 353, 294, 354, 266, 316, 315, 317, 0, 188, + 0, 391, 427, 455, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 287, 331, 352, 350, 356, + 0, 405, 422, 430, 437, 443, 444, 446, 447, 448, + 449, 450, 319, 268, 387, 283, 292, 0, 0, 337, + 368, 211, 425, 388, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 195, 288, 0, 357, 251, + 452, 432, 428, 0, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, + 196, 204, 214, 226, 241, 249, 259, 264, 267, 271, + 272, 275, 280, 297, 302, 303, 304, 305, 321, 322, + 323, 326, 329, 330, 333, 335, 336, 339, 345, 346, + 347, 348, 349, 351, 358, 362, 370, 371, 372, 373, + 374, 376, 377, 381, 382, 383, 384, 392, 396, 412, + 413, 424, 436, 441, 260, 420, 442, 0, 296, 0, + 0, 298, 245, 263, 273, 0, 431, 393, 200, 364, + 252, 189, 217, 203, 224, 239, 242, 277, 306, 312, + 341, 344, 257, 236, 215, 361, 212, 379, 399, 400, + 401, 403, 310, 231, 404, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 286, 232, 0, 0, 342, 0, 187, 0, 380, 220, + 295, 293, 409, 246, 238, 234, 219, 270, 301, 340, + 398, 334, 0, 290, 0, 0, 389, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 276, 218, 186, 325, 390, 250, 0, + 81, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, + 0, 230, 274, 237, 229, 406, 0, 0, 0, 0, + 202, 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, + 0, 0, 0, 0, 0, 258, 0, 314, 0, 0, + 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, + 285, 0, 282, 182, 198, 0, 0, 324, 363, 369, + 0, 0, 0, 221, 0, 367, 338, 423, 205, 248, + 360, 343, 365, 0, 0, 366, 291, 411, 355, 421, + 439, 440, 228, 318, 429, 402, 435, 451, 199, 225, + 332, 395, 426, 386, 311, 407, 408, 281, 385, 256, + 185, 289, 445, 197, 375, 213, 190, 397, 419, 210, + 378, 0, 0, 453, 192, 417, 394, 308, 278, 279, + 191, 0, 359, 233, 254, 223, 327, 414, 415, 222, + 454, 201, 434, 194, 0, 433, 320, 410, 418, 309, + 300, 193, 416, 307, 299, 284, 244, 265, 353, 294, + 354, 266, 316, 315, 317, 0, 188, 0, 391, 427, + 455, 206, 207, 208, 0, 243, 247, 253, 255, 261, + 262, 269, 287, 331, 352, 350, 356, 0, 405, 422, + 430, 437, 443, 444, 446, 447, 448, 449, 450, 319, + 268, 387, 283, 292, 0, 0, 337, 368, 211, 425, + 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 195, 288, 0, 357, 251, 452, 432, 428, + 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 183, 184, 196, 204, 214, + 226, 241, 249, 259, 264, 267, 271, 272, 275, 280, + 297, 302, 303, 304, 305, 321, 322, 323, 326, 329, + 330, 333, 335, 336, 339, 345, 346, 347, 348, 349, + 351, 358, 362, 370, 371, 372, 373, 374, 376, 377, + 381, 382, 383, 384, 392, 396, 412, 413, 424, 436, + 441, 260, 420, 442, 0, 296, 0, 0, 298, 245, + 263, 273, 0, 431, 393, 200, 364, 252, 189, 217, + 203, 224, 239, 242, 277, 306, 312, 341, 344, 257, + 236, 215, 361, 212, 379, 399, 400, 401, 403, 310, + 231, 404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, + 0, 0, 235, 0, 0, 0, 0, 286, 232, 0, + 0, 342, 0, 187, 0, 380, 220, 295, 293, 409, + 246, 238, 234, 219, 270, 301, 340, 398, 334, 0, + 290, 0, 0, 389, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 218, 186, 325, 390, 250, 0, 0, 0, 0, + 178, 179, 180, 0, 1295, 0, 0, 0, 0, 0, + 0, 209, 0, 216, 0, 0, 0, 0, 230, 274, + 237, 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, + 0, 0, 258, 0, 314, 0, 0, 0, 0, 438, + 0, 0, 0, 0, 0, 0, 0, 285, 0, 282, + 182, 198, 0, 0, 324, 363, 369, 0, 0, 0, + 221, 0, 367, 338, 423, 205, 248, 360, 343, 365, + 0, 0, 366, 291, 411, 355, 421, 439, 440, 228, + 318, 429, 402, 435, 451, 199, 225, 332, 395, 426, + 386, 311, 407, 408, 281, 385, 256, 185, 289, 445, + 197, 375, 213, 190, 397, 419, 210, 378, 0, 0, + 453, 192, 417, 394, 308, 278, 279, 191, 0, 359, + 233, 254, 223, 327, 414, 415, 222, 454, 201, 434, + 194, 0, 433, 320, 410, 418, 309, 300, 193, 416, + 307, 299, 284, 244, 265, 353, 294, 354, 266, 316, + 315, 317, 0, 188, 0, 391, 427, 455, 206, 207, + 208, 0, 243, 247, 253, 255, 261, 262, 269, 287, + 331, 352, 350, 356, 0, 405, 422, 430, 437, 443, + 444, 446, 447, 448, 449, 450, 319, 268, 387, 283, + 292, 0, 0, 337, 368, 211, 425, 388, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 195, + 288, 0, 357, 251, 452, 432, 428, 0, 0, 227, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 183, 184, 196, 204, 214, 226, 241, 249, + 259, 264, 267, 271, 272, 275, 280, 297, 302, 303, + 304, 305, 321, 322, 323, 326, 329, 330, 333, 335, + 336, 339, 345, 346, 347, 348, 349, 351, 358, 362, + 370, 371, 372, 373, 374, 376, 377, 381, 382, 383, + 384, 392, 396, 412, 413, 424, 436, 441, 260, 420, + 442, 0, 296, 0, 0, 298, 245, 263, 273, 0, + 431, 393, 200, 364, 252, 189, 217, 203, 224, 239, + 242, 277, 306, 312, 341, 344, 257, 236, 215, 361, + 212, 379, 399, 400, 401, 403, 310, 231, 404, 0, + 0, 0, 0, 1522, 0, 0, 0, 0, 0, 0, + 328, 0, 0, 0, 0, 0, 0, 0, 0, 235, + 0, 0, 0, 0, 286, 232, 0, 0, 342, 0, + 187, 0, 380, 220, 295, 293, 409, 246, 238, 234, + 219, 270, 301, 340, 398, 334, 0, 290, 0, 0, + 389, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 276, 218, 186, + 325, 390, 250, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 216, 0, 0, 0, 0, 230, 274, 237, 229, 406, + 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, + 0, 314, 0, 0, 0, 0, 438, 0, 0, 0, + 0, 0, 0, 0, 285, 0, 282, 182, 198, 0, + 0, 324, 363, 369, 0, 0, 0, 221, 0, 367, + 338, 423, 205, 248, 360, 343, 365, 0, 0, 366, + 291, 411, 355, 421, 439, 440, 228, 318, 429, 402, + 435, 451, 199, 225, 332, 395, 426, 386, 311, 407, + 408, 281, 385, 256, 185, 289, 445, 197, 375, 213, + 190, 397, 419, 210, 378, 0, 0, 453, 192, 417, + 394, 308, 278, 279, 191, 0, 359, 233, 254, 223, + 327, 414, 415, 222, 454, 201, 434, 194, 0, 433, + 320, 410, 418, 309, 300, 193, 416, 307, 299, 284, + 244, 265, 353, 294, 354, 266, 316, 315, 317, 0, + 188, 0, 391, 427, 455, 206, 207, 208, 0, 243, + 247, 253, 255, 261, 262, 269, 287, 331, 352, 350, + 356, 0, 405, 422, 430, 437, 443, 444, 446, 447, + 448, 449, 450, 319, 268, 387, 283, 292, 0, 0, + 337, 368, 211, 425, 388, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 195, 288, 0, 357, + 251, 452, 432, 428, 0, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 271, 272, 275, 280, 297, 302, 303, 304, 305, 321, + 322, 323, 326, 329, 330, 333, 335, 336, 339, 345, + 346, 347, 348, 349, 351, 358, 362, 370, 371, 372, + 373, 374, 376, 377, 381, 382, 383, 384, 392, 396, + 412, 413, 424, 436, 441, 260, 420, 442, 0, 296, + 0, 0, 298, 245, 263, 273, 0, 431, 393, 200, + 364, 252, 189, 217, 203, 224, 239, 242, 277, 306, + 312, 341, 344, 257, 236, 215, 361, 212, 379, 399, + 400, 401, 403, 310, 231, 404, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 286, 232, 0, 0, 342, 0, 187, 0, 380, + 220, 295, 293, 409, 246, 238, 234, 219, 270, 301, + 340, 398, 334, 0, 290, 0, 0, 389, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 218, 186, 325, 390, 250, + 0, 0, 0, 0, 178, 179, 180, 0, 1124, 0, + 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, + 0, 0, 230, 274, 237, 229, 406, 0, 0, 0, + 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, 314, 0, + 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, + 0, 285, 0, 282, 182, 198, 0, 0, 324, 363, + 369, 0, 0, 0, 221, 0, 367, 338, 423, 205, + 248, 360, 343, 365, 0, 0, 366, 291, 411, 355, + 421, 439, 440, 228, 318, 429, 402, 435, 451, 199, + 225, 332, 395, 426, 386, 311, 407, 408, 281, 385, + 256, 185, 289, 445, 197, 375, 213, 190, 397, 419, + 210, 378, 0, 0, 453, 192, 417, 394, 308, 278, + 279, 191, 0, 359, 233, 254, 223, 327, 414, 415, + 222, 454, 201, 434, 194, 0, 433, 320, 410, 418, + 309, 300, 193, 416, 307, 299, 284, 244, 265, 353, + 294, 354, 266, 316, 315, 317, 0, 188, 0, 391, + 427, 455, 206, 207, 208, 0, 243, 247, 253, 255, + 261, 262, 269, 287, 331, 352, 350, 356, 0, 405, + 422, 430, 437, 443, 444, 446, 447, 448, 449, 450, + 319, 268, 387, 283, 292, 0, 0, 337, 368, 211, + 425, 388, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 181, 195, 288, 0, 357, 251, 452, 432, + 428, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, + 214, 226, 241, 249, 259, 264, 267, 271, 272, 275, + 280, 297, 302, 303, 304, 305, 321, 322, 323, 326, + 329, 330, 333, 335, 336, 339, 345, 346, 347, 348, + 349, 351, 358, 362, 370, 371, 372, 373, 374, 376, + 377, 381, 382, 383, 384, 392, 396, 412, 413, 424, + 436, 441, 260, 420, 442, 0, 296, 0, 0, 298, + 245, 263, 273, 0, 431, 393, 200, 364, 252, 189, + 217, 203, 224, 239, 242, 277, 306, 312, 341, 344, + 257, 236, 215, 361, 212, 379, 399, 400, 401, 403, + 310, 231, 404, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, + 0, 0, 0, 235, 0, 0, 0, 0, 286, 232, + 0, 0, 342, 0, 187, 0, 380, 220, 295, 293, + 409, 246, 238, 234, 219, 270, 301, 340, 398, 334, + 0, 290, 0, 0, 389, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 276, 218, 186, 325, 390, 250, 0, 0, 0, + 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 0, 216, 0, 0, 0, 0, 230, + 274, 237, 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, + 0, 0, 0, 258, 0, 314, 0, 0, 0, 0, + 438, 0, 0, 0, 0, 0, 0, 0, 285, 0, + 282, 182, 198, 0, 0, 324, 363, 369, 0, 0, + 0, 221, 0, 367, 338, 423, 205, 248, 360, 343, + 365, 0, 0, 366, 291, 411, 355, 421, 439, 440, + 228, 318, 429, 402, 435, 451, 199, 225, 332, 395, + 426, 386, 311, 407, 408, 281, 385, 256, 185, 289, + 445, 197, 375, 213, 190, 397, 419, 210, 378, 0, + 0, 453, 192, 417, 394, 308, 278, 279, 191, 0, + 359, 233, 254, 223, 327, 414, 415, 222, 454, 201, + 434, 194, 0, 433, 320, 410, 418, 309, 300, 193, + 416, 307, 299, 284, 244, 265, 353, 294, 354, 266, + 316, 315, 317, 0, 188, 0, 391, 427, 455, 206, + 207, 208, 0, 243, 247, 253, 255, 261, 262, 269, + 287, 331, 352, 350, 356, 0, 405, 422, 430, 437, + 443, 444, 446, 447, 448, 449, 450, 319, 268, 387, + 283, 292, 0, 0, 337, 368, 211, 425, 388, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, + 195, 288, 1386, 357, 251, 452, 432, 428, 0, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 183, 184, 196, 204, 214, 226, 241, + 249, 259, 264, 267, 271, 272, 275, 280, 297, 302, + 303, 304, 305, 321, 322, 323, 326, 329, 330, 333, + 335, 336, 339, 345, 346, 347, 348, 349, 351, 358, + 362, 370, 371, 372, 373, 374, 376, 377, 381, 382, + 383, 384, 392, 396, 412, 413, 424, 436, 441, 260, + 420, 442, 0, 296, 0, 0, 298, 245, 263, 273, + 0, 431, 393, 200, 364, 252, 189, 217, 203, 224, + 239, 242, 277, 306, 312, 341, 344, 257, 236, 215, + 361, 212, 379, 399, 400, 401, 403, 310, 231, 404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 328, 0, 1267, 0, 0, 0, 0, 0, 0, + 235, 0, 0, 0, 0, 286, 232, 0, 0, 342, + 0, 187, 0, 380, 220, 295, 293, 409, 246, 238, + 234, 219, 270, 301, 340, 398, 334, 0, 290, 0, + 0, 389, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 218, + 186, 325, 390, 250, 0, 0, 0, 0, 178, 179, + 180, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 216, 0, 0, 0, 0, 230, 274, 237, 229, + 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, + 258, 0, 314, 0, 0, 0, 0, 438, 0, 0, + 0, 0, 0, 0, 0, 285, 0, 282, 182, 198, + 0, 0, 324, 363, 369, 0, 0, 0, 221, 0, + 367, 338, 423, 205, 248, 360, 343, 365, 0, 0, + 366, 291, 411, 355, 421, 439, 440, 228, 318, 429, + 402, 435, 451, 199, 225, 332, 395, 426, 386, 311, + 407, 408, 281, 385, 256, 185, 289, 445, 197, 375, + 213, 190, 397, 419, 210, 378, 0, 0, 453, 192, + 417, 394, 308, 278, 279, 191, 0, 359, 233, 254, + 223, 327, 414, 415, 222, 454, 201, 434, 194, 0, + 433, 320, 410, 418, 309, 300, 193, 416, 307, 299, + 284, 244, 265, 353, 294, 354, 266, 316, 315, 317, + 0, 188, 0, 391, 427, 455, 206, 207, 208, 0, + 243, 247, 253, 255, 261, 262, 269, 287, 331, 352, + 350, 356, 0, 405, 422, 430, 437, 443, 444, 446, + 447, 448, 449, 450, 319, 268, 387, 283, 292, 0, + 0, 337, 368, 211, 425, 388, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 181, 195, 288, 0, + 357, 251, 452, 432, 428, 0, 0, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, + 267, 271, 272, 275, 280, 297, 302, 303, 304, 305, + 321, 322, 323, 326, 329, 330, 333, 335, 336, 339, + 345, 346, 347, 348, 349, 351, 358, 362, 370, 371, + 372, 373, 374, 376, 377, 381, 382, 383, 384, 392, + 396, 412, 413, 424, 436, 441, 260, 420, 442, 0, + 296, 0, 0, 298, 245, 263, 273, 0, 431, 393, + 200, 364, 252, 189, 217, 203, 224, 239, 242, 277, + 306, 312, 341, 344, 257, 236, 215, 361, 212, 379, + 399, 400, 401, 403, 310, 231, 404, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, + 1265, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 286, 232, 0, 0, 342, 0, 187, 0, + 380, 220, 295, 293, 409, 246, 238, 234, 219, 270, + 301, 340, 398, 334, 0, 290, 0, 0, 389, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 276, 218, 186, 325, 390, + 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, + 0, 0, 0, 230, 274, 237, 229, 406, 0, 0, + 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, 314, + 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, + 0, 0, 285, 0, 282, 182, 198, 0, 0, 324, + 363, 369, 0, 0, 0, 221, 0, 367, 338, 423, + 205, 248, 360, 343, 365, 0, 0, 366, 291, 411, + 355, 421, 439, 440, 228, 318, 429, 402, 435, 451, + 199, 225, 332, 395, 426, 386, 311, 407, 408, 281, + 385, 256, 185, 289, 445, 197, 375, 213, 190, 397, + 419, 210, 378, 0, 0, 453, 192, 417, 394, 308, + 278, 279, 191, 0, 359, 233, 254, 223, 327, 414, + 415, 222, 454, 201, 434, 194, 0, 433, 320, 410, + 418, 309, 300, 193, 416, 307, 299, 284, 244, 265, + 353, 294, 354, 266, 316, 315, 317, 0, 188, 0, + 391, 427, 455, 206, 207, 208, 0, 243, 247, 253, + 255, 261, 262, 269, 287, 331, 352, 350, 356, 0, + 405, 422, 430, 437, 443, 444, 446, 447, 448, 449, + 450, 319, 268, 387, 283, 292, 0, 0, 337, 368, + 211, 425, 388, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 195, 288, 0, 357, 251, 452, + 432, 428, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 271, 272, + 275, 280, 297, 302, 303, 304, 305, 321, 322, 323, + 326, 329, 330, 333, 335, 336, 339, 345, 346, 347, + 348, 349, 351, 358, 362, 370, 371, 372, 373, 374, + 376, 377, 381, 382, 383, 384, 392, 396, 412, 413, + 424, 436, 441, 260, 420, 442, 0, 296, 0, 0, + 298, 245, 263, 273, 0, 431, 393, 200, 364, 252, + 189, 217, 203, 224, 239, 242, 277, 306, 312, 341, + 344, 257, 236, 215, 361, 212, 379, 399, 400, 401, + 403, 310, 231, 404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 1263, 0, 0, + 0, 0, 0, 0, 235, 0, 0, 0, 0, 286, + 232, 0, 0, 342, 0, 187, 0, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 0, 290, 0, 0, 389, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 218, 186, 325, 390, 250, 0, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, + 230, 274, 237, 229, 406, 0, 0, 0, 0, 202, + 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, 0, + 0, 0, 0, 0, 258, 0, 314, 0, 0, 0, + 0, 438, 0, 0, 0, 0, 0, 0, 0, 285, + 0, 282, 182, 198, 0, 0, 324, 363, 369, 0, + 0, 0, 221, 0, 367, 338, 423, 205, 248, 360, + 343, 365, 0, 0, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 0, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 0, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 0, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 0, 0, 337, 368, 211, 425, 388, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 181, 195, 288, 0, 357, 251, 452, 432, 428, 0, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 260, 420, 442, 0, 296, 0, 0, 298, 245, 263, + 273, 0, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 328, 0, 1261, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 286, 232, 0, 0, + 342, 0, 187, 0, 380, 220, 295, 293, 409, 246, + 238, 234, 219, 270, 301, 340, 398, 334, 0, 290, + 0, 0, 389, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, + 218, 186, 325, 390, 250, 0, 0, 0, 0, 178, + 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 0, 216, 0, 0, 0, 0, 230, 274, 237, + 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, + 0, 258, 0, 314, 0, 0, 0, 0, 438, 0, + 0, 0, 0, 0, 0, 0, 285, 0, 282, 182, + 198, 0, 0, 324, 363, 369, 0, 0, 0, 221, + 0, 367, 338, 423, 205, 248, 360, 343, 365, 0, + 0, 366, 291, 411, 355, 421, 439, 440, 228, 318, + 429, 402, 435, 451, 199, 225, 332, 395, 426, 386, + 311, 407, 408, 281, 385, 256, 185, 289, 445, 197, + 375, 213, 190, 397, 419, 210, 378, 0, 0, 453, + 192, 417, 394, 308, 278, 279, 191, 0, 359, 233, + 254, 223, 327, 414, 415, 222, 454, 201, 434, 194, + 0, 433, 320, 410, 418, 309, 300, 193, 416, 307, + 299, 284, 244, 265, 353, 294, 354, 266, 316, 315, + 317, 0, 188, 0, 391, 427, 455, 206, 207, 208, + 0, 243, 247, 253, 255, 261, 262, 269, 287, 331, + 352, 350, 356, 0, 405, 422, 430, 437, 443, 444, + 446, 447, 448, 449, 450, 319, 268, 387, 283, 292, + 0, 0, 337, 368, 211, 425, 388, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 181, 195, 288, + 0, 357, 251, 452, 432, 428, 0, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, + 264, 267, 271, 272, 275, 280, 297, 302, 303, 304, + 305, 321, 322, 323, 326, 329, 330, 333, 335, 336, + 339, 345, 346, 347, 348, 349, 351, 358, 362, 370, + 371, 372, 373, 374, 376, 377, 381, 382, 383, 384, + 392, 396, 412, 413, 424, 436, 441, 260, 420, 442, + 0, 296, 0, 0, 298, 245, 263, 273, 0, 431, + 393, 200, 364, 252, 189, 217, 203, 224, 239, 242, + 277, 306, 312, 341, 344, 257, 236, 215, 361, 212, + 379, 399, 400, 401, 403, 310, 231, 404, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, + 0, 1259, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 286, 232, 0, 0, 342, 0, 187, + 0, 380, 220, 295, 293, 409, 246, 238, 234, 219, + 270, 301, 340, 398, 334, 0, 290, 0, 0, 389, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 218, 186, 325, + 390, 250, 0, 0, 0, 0, 178, 179, 180, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, + 0, 0, 0, 0, 230, 274, 237, 229, 406, 0, + 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, + 314, 0, 0, 0, 0, 438, 0, 0, 0, 0, + 0, 0, 0, 285, 0, 282, 182, 198, 0, 0, + 324, 363, 369, 0, 0, 0, 221, 0, 367, 338, + 423, 205, 248, 360, 343, 365, 0, 0, 366, 291, + 411, 355, 421, 439, 440, 228, 318, 429, 402, 435, + 451, 199, 225, 332, 395, 426, 386, 311, 407, 408, + 281, 385, 256, 185, 289, 445, 197, 375, 213, 190, + 397, 419, 210, 378, 0, 0, 453, 192, 417, 394, + 308, 278, 279, 191, 0, 359, 233, 254, 223, 327, + 414, 415, 222, 454, 201, 434, 194, 0, 433, 320, + 410, 418, 309, 300, 193, 416, 307, 299, 284, 244, + 265, 353, 294, 354, 266, 316, 315, 317, 0, 188, + 0, 391, 427, 455, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 287, 331, 352, 350, 356, + 0, 405, 422, 430, 437, 443, 444, 446, 447, 448, + 449, 450, 319, 268, 387, 283, 292, 0, 0, 337, + 368, 211, 425, 388, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 195, 288, 0, 357, 251, + 452, 432, 428, 0, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, + 196, 204, 214, 226, 241, 249, 259, 264, 267, 271, + 272, 275, 280, 297, 302, 303, 304, 305, 321, 322, + 323, 326, 329, 330, 333, 335, 336, 339, 345, 346, + 347, 348, 349, 351, 358, 362, 370, 371, 372, 373, + 374, 376, 377, 381, 382, 383, 384, 392, 396, 412, + 413, 424, 436, 441, 260, 420, 442, 0, 296, 0, + 0, 298, 245, 263, 273, 0, 431, 393, 200, 364, + 252, 189, 217, 203, 224, 239, 242, 277, 306, 312, + 341, 344, 257, 236, 215, 361, 212, 379, 399, 400, + 401, 403, 310, 231, 404, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 328, 0, 1255, 0, + 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 286, 232, 0, 0, 342, 0, 187, 0, 380, 220, + 295, 293, 409, 246, 238, 234, 219, 270, 301, 340, + 398, 334, 0, 290, 0, 0, 389, 313, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 276, 218, 186, 325, 390, 250, 0, + 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, + 0, 230, 274, 237, 229, 406, 0, 0, 0, 0, + 202, 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, + 0, 0, 0, 0, 0, 258, 0, 314, 0, 0, + 0, 0, 438, 0, 0, 0, 0, 0, 0, 0, + 285, 0, 282, 182, 198, 0, 0, 324, 363, 369, + 0, 0, 0, 221, 0, 367, 338, 423, 205, 248, + 360, 343, 365, 0, 0, 366, 291, 411, 355, 421, + 439, 440, 228, 318, 429, 402, 435, 451, 199, 225, + 332, 395, 426, 386, 311, 407, 408, 281, 385, 256, + 185, 289, 445, 197, 375, 213, 190, 397, 419, 210, + 378, 0, 0, 453, 192, 417, 394, 308, 278, 279, + 191, 0, 359, 233, 254, 223, 327, 414, 415, 222, + 454, 201, 434, 194, 0, 433, 320, 410, 418, 309, + 300, 193, 416, 307, 299, 284, 244, 265, 353, 294, + 354, 266, 316, 315, 317, 0, 188, 0, 391, 427, + 455, 206, 207, 208, 0, 243, 247, 253, 255, 261, + 262, 269, 287, 331, 352, 350, 356, 0, 405, 422, + 430, 437, 443, 444, 446, 447, 448, 449, 450, 319, + 268, 387, 283, 292, 0, 0, 337, 368, 211, 425, + 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 195, 288, 0, 357, 251, 452, 432, 428, + 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 183, 184, 196, 204, 214, + 226, 241, 249, 259, 264, 267, 271, 272, 275, 280, + 297, 302, 303, 304, 305, 321, 322, 323, 326, 329, + 330, 333, 335, 336, 339, 345, 346, 347, 348, 349, + 351, 358, 362, 370, 371, 372, 373, 374, 376, 377, + 381, 382, 383, 384, 392, 396, 412, 413, 424, 436, + 441, 260, 420, 442, 0, 296, 0, 0, 298, 245, + 263, 273, 0, 431, 393, 200, 364, 252, 189, 217, + 203, 224, 239, 242, 277, 306, 312, 341, 344, 257, + 236, 215, 361, 212, 379, 399, 400, 401, 403, 310, + 231, 404, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 328, 0, 1253, 0, 0, 0, 0, + 0, 0, 235, 0, 0, 0, 0, 286, 232, 0, + 0, 342, 0, 187, 0, 380, 220, 295, 293, 409, + 246, 238, 234, 219, 270, 301, 340, 398, 334, 0, + 290, 0, 0, 389, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 218, 186, 325, 390, 250, 0, 0, 0, 0, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 216, 0, 0, 0, 0, 230, 274, + 237, 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, + 0, 0, 258, 0, 314, 0, 0, 0, 0, 438, + 0, 0, 0, 0, 0, 0, 0, 285, 0, 282, + 182, 198, 0, 0, 324, 363, 369, 0, 0, 0, + 221, 0, 367, 338, 423, 205, 248, 360, 343, 365, + 0, 0, 366, 291, 411, 355, 421, 439, 440, 228, + 318, 429, 402, 435, 451, 199, 225, 332, 395, 426, + 386, 311, 407, 408, 281, 385, 256, 185, 289, 445, + 197, 375, 213, 190, 397, 419, 210, 378, 0, 0, + 453, 192, 417, 394, 308, 278, 279, 191, 0, 359, + 233, 254, 223, 327, 414, 415, 222, 454, 201, 434, + 194, 0, 433, 320, 410, 418, 309, 300, 193, 416, + 307, 299, 284, 244, 265, 353, 294, 354, 266, 316, + 315, 317, 0, 188, 0, 391, 427, 455, 206, 207, + 208, 0, 243, 247, 253, 255, 261, 262, 269, 287, + 331, 352, 350, 356, 0, 405, 422, 430, 437, 443, + 444, 446, 447, 448, 449, 450, 319, 268, 387, 283, + 292, 0, 0, 337, 368, 211, 425, 388, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 181, 195, + 288, 0, 357, 251, 452, 432, 428, 0, 0, 227, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 183, 184, 196, 204, 214, 226, 241, 249, + 259, 264, 267, 271, 272, 275, 280, 297, 302, 303, + 304, 305, 321, 322, 323, 326, 329, 330, 333, 335, + 336, 339, 345, 346, 347, 348, 349, 351, 358, 362, + 370, 371, 372, 373, 374, 376, 377, 381, 382, 383, + 384, 392, 396, 412, 413, 424, 436, 441, 260, 420, + 442, 0, 296, 0, 0, 298, 245, 263, 273, 0, + 431, 393, 200, 364, 252, 189, 217, 203, 224, 239, + 242, 277, 306, 312, 341, 344, 257, 236, 215, 361, + 212, 379, 399, 400, 401, 403, 310, 231, 404, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 328, 0, 1251, 0, 0, 0, 0, 0, 0, 235, + 0, 0, 0, 0, 286, 232, 0, 0, 342, 0, + 187, 0, 380, 220, 295, 293, 409, 246, 238, 234, + 219, 270, 301, 340, 398, 334, 0, 290, 0, 0, + 389, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 276, 218, 186, + 325, 390, 250, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 216, 0, 0, 0, 0, 230, 274, 237, 229, 406, + 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, + 0, 314, 0, 0, 0, 0, 438, 0, 0, 0, + 0, 0, 0, 0, 285, 0, 282, 182, 198, 0, + 0, 324, 363, 369, 0, 0, 0, 221, 0, 367, + 338, 423, 205, 248, 360, 343, 365, 0, 0, 366, + 291, 411, 355, 421, 439, 440, 228, 318, 429, 402, + 435, 451, 199, 225, 332, 395, 426, 386, 311, 407, + 408, 281, 385, 256, 185, 289, 445, 197, 375, 213, + 190, 397, 419, 210, 378, 0, 0, 453, 192, 417, + 394, 308, 278, 279, 191, 0, 359, 233, 254, 223, + 327, 414, 415, 222, 454, 201, 434, 194, 0, 433, + 320, 410, 418, 309, 300, 193, 416, 307, 299, 284, + 244, 265, 353, 294, 354, 266, 316, 315, 317, 0, + 188, 0, 391, 427, 455, 206, 207, 208, 0, 243, + 247, 253, 255, 261, 262, 269, 287, 331, 352, 350, + 356, 0, 405, 422, 430, 437, 443, 444, 446, 447, + 448, 449, 450, 319, 268, 387, 283, 292, 0, 0, + 337, 368, 211, 425, 388, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 195, 288, 0, 357, + 251, 452, 432, 428, 0, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 271, 272, 275, 280, 297, 302, 303, 304, 305, 321, + 322, 323, 326, 329, 330, 333, 335, 336, 339, 345, + 346, 347, 348, 349, 351, 358, 362, 370, 371, 372, + 373, 374, 376, 377, 381, 382, 383, 384, 392, 396, + 412, 413, 424, 436, 441, 260, 420, 442, 0, 296, + 0, 0, 298, 245, 263, 273, 0, 431, 393, 200, + 364, 252, 189, 217, 203, 224, 239, 242, 277, 306, + 312, 341, 344, 257, 236, 215, 361, 212, 379, 399, + 400, 401, 403, 310, 231, 404, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 286, 232, 0, 0, 342, 0, 187, 0, 380, + 220, 295, 293, 409, 246, 238, 234, 219, 270, 301, + 340, 398, 334, 0, 290, 0, 0, 389, 313, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 218, 186, 325, 390, 250, + 0, 1226, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, + 0, 0, 230, 274, 237, 229, 406, 0, 0, 0, + 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, 314, 0, + 0, 0, 0, 438, 0, 0, 0, 0, 0, 0, + 0, 285, 0, 282, 182, 198, 0, 0, 324, 363, + 369, 0, 0, 0, 221, 0, 367, 338, 423, 205, + 248, 360, 343, 365, 0, 0, 366, 291, 411, 355, + 421, 439, 440, 228, 318, 429, 402, 435, 451, 199, + 225, 332, 395, 426, 386, 311, 407, 408, 281, 385, + 256, 185, 289, 445, 197, 375, 213, 190, 397, 419, + 210, 378, 0, 0, 453, 192, 417, 394, 308, 278, + 279, 191, 0, 359, 233, 254, 223, 327, 414, 415, + 222, 454, 201, 434, 194, 0, 433, 320, 410, 418, + 309, 300, 193, 416, 307, 299, 284, 244, 265, 353, + 294, 354, 266, 316, 315, 317, 0, 188, 0, 391, + 427, 455, 206, 207, 208, 0, 243, 247, 253, 255, + 261, 262, 269, 287, 331, 352, 350, 356, 0, 405, + 422, 430, 437, 443, 444, 446, 447, 448, 449, 450, + 319, 268, 387, 283, 292, 0, 0, 337, 368, 211, + 425, 388, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 181, 195, 288, 0, 357, 251, 452, 432, + 428, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, + 214, 226, 241, 249, 259, 264, 267, 271, 272, 275, + 280, 297, 302, 303, 304, 305, 321, 322, 323, 326, + 329, 330, 333, 335, 336, 339, 345, 346, 347, 348, + 349, 351, 358, 362, 370, 371, 372, 373, 374, 376, + 377, 381, 382, 383, 384, 392, 396, 412, 413, 424, + 436, 441, 260, 420, 442, 0, 296, 0, 0, 298, + 245, 263, 273, 0, 431, 393, 200, 364, 252, 189, + 217, 203, 224, 239, 242, 277, 306, 312, 341, 344, + 257, 236, 215, 361, 212, 379, 399, 400, 401, 403, + 310, 231, 404, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, + 0, 0, 1129, 235, 0, 0, 0, 0, 286, 232, + 0, 0, 342, 0, 187, 0, 380, 220, 295, 293, + 409, 246, 238, 234, 219, 270, 301, 340, 398, 334, + 0, 290, 0, 0, 389, 313, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 276, 218, 186, 325, 390, 250, 0, 0, 0, + 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 209, 0, 216, 0, 0, 0, 0, 230, + 274, 237, 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, + 0, 0, 0, 258, 0, 314, 0, 0, 0, 0, + 438, 0, 0, 0, 0, 0, 0, 0, 285, 0, + 282, 182, 198, 0, 0, 324, 363, 369, 0, 0, + 0, 221, 0, 367, 338, 423, 205, 248, 360, 343, + 365, 0, 0, 366, 291, 411, 355, 421, 439, 440, + 228, 318, 429, 402, 435, 451, 199, 225, 332, 395, + 426, 386, 311, 407, 408, 281, 385, 256, 185, 289, + 445, 197, 375, 213, 190, 397, 419, 210, 378, 0, + 0, 453, 192, 417, 394, 308, 278, 279, 191, 0, + 359, 233, 254, 223, 327, 414, 415, 222, 454, 201, + 434, 194, 0, 433, 320, 410, 418, 309, 300, 193, + 416, 307, 299, 284, 244, 265, 353, 294, 354, 266, + 316, 315, 317, 0, 188, 0, 391, 427, 455, 206, + 207, 208, 0, 243, 247, 253, 255, 261, 262, 269, + 287, 331, 352, 350, 356, 0, 405, 422, 430, 437, + 443, 444, 446, 447, 448, 449, 450, 319, 268, 387, + 283, 292, 0, 0, 337, 368, 211, 425, 388, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, + 195, 288, 0, 357, 251, 452, 432, 428, 0, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 183, 184, 196, 204, 214, 226, 241, + 249, 259, 264, 267, 271, 272, 275, 280, 297, 302, + 303, 304, 305, 321, 322, 323, 326, 329, 330, 333, + 335, 336, 339, 345, 346, 347, 348, 349, 351, 358, + 362, 370, 371, 372, 373, 374, 376, 377, 381, 382, + 383, 384, 392, 396, 412, 413, 424, 436, 441, 260, + 420, 442, 0, 296, 0, 0, 298, 245, 263, 273, + 0, 431, 393, 200, 364, 252, 189, 217, 203, 224, + 239, 242, 277, 306, 312, 341, 344, 257, 236, 215, + 361, 212, 379, 399, 400, 401, 403, 310, 231, 404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, + 235, 0, 0, 0, 0, 286, 232, 0, 0, 342, + 0, 187, 0, 380, 220, 295, 293, 409, 246, 238, + 234, 219, 270, 301, 340, 398, 334, 0, 290, 0, + 0, 389, 313, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 218, + 186, 325, 390, 250, 0, 0, 0, 0, 178, 179, + 180, 0, 967, 0, 0, 0, 0, 0, 0, 209, + 0, 216, 0, 0, 0, 0, 230, 274, 237, 229, + 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, + 258, 0, 314, 0, 0, 0, 0, 438, 0, 0, + 0, 0, 0, 0, 0, 285, 0, 282, 182, 198, + 0, 0, 324, 363, 369, 0, 0, 0, 221, 0, + 367, 338, 423, 205, 248, 360, 343, 365, 0, 0, + 366, 291, 411, 355, 421, 439, 440, 228, 318, 429, + 402, 435, 451, 199, 225, 332, 395, 426, 386, 311, + 407, 408, 281, 385, 256, 185, 289, 445, 197, 375, + 213, 190, 397, 419, 210, 378, 0, 0, 453, 192, + 417, 394, 308, 278, 279, 191, 0, 359, 233, 254, + 223, 327, 414, 415, 222, 454, 201, 434, 194, 0, + 433, 320, 410, 418, 309, 300, 193, 416, 307, 299, + 284, 244, 265, 353, 294, 354, 266, 316, 315, 317, + 0, 188, 0, 391, 427, 455, 206, 207, 208, 0, + 243, 247, 253, 255, 261, 262, 269, 287, 331, 352, + 350, 356, 0, 405, 422, 430, 437, 443, 444, 446, + 447, 448, 449, 450, 319, 268, 387, 283, 292, 0, + 0, 337, 368, 211, 425, 388, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 181, 195, 288, 0, + 357, 251, 452, 432, 428, 0, 0, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, + 267, 271, 272, 275, 280, 297, 302, 303, 304, 305, + 321, 322, 323, 326, 329, 330, 333, 335, 336, 339, + 345, 346, 347, 348, 349, 351, 358, 362, 370, 371, + 372, 373, 374, 376, 377, 381, 382, 383, 384, 392, + 396, 412, 413, 424, 436, 441, 260, 420, 442, 0, + 296, 0, 0, 298, 245, 263, 273, 0, 431, 393, + 200, 364, 252, 189, 217, 203, 224, 239, 242, 277, + 306, 312, 341, 344, 257, 236, 215, 361, 212, 379, + 399, 400, 401, 403, 310, 231, 404, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, + 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 0, 0, 286, 232, 0, 0, 342, 0, 187, 0, + 380, 220, 295, 293, 409, 246, 238, 234, 219, 270, + 301, 340, 398, 334, 0, 290, 0, 0, 389, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 276, 218, 186, 325, 390, + 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, + 0, 0, 0, 230, 274, 237, 229, 406, 0, 0, + 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, 314, + 0, 0, 0, 0, 438, 0, 0, 0, 0, 0, + 0, 0, 285, 0, 282, 182, 198, 0, 0, 324, + 363, 369, 0, 0, 0, 221, 0, 367, 338, 423, + 205, 248, 360, 343, 365, 0, 0, 366, 291, 411, + 355, 421, 439, 440, 228, 318, 429, 402, 435, 451, + 199, 225, 332, 395, 426, 386, 311, 407, 408, 281, + 385, 256, 185, 289, 445, 197, 375, 213, 190, 397, + 419, 210, 378, 0, 0, 453, 192, 417, 394, 308, + 278, 279, 191, 0, 359, 233, 254, 223, 327, 414, + 415, 222, 454, 201, 434, 194, 0, 433, 320, 410, + 418, 309, 300, 193, 416, 307, 299, 284, 244, 265, + 353, 294, 354, 266, 316, 315, 317, 0, 188, 0, + 391, 427, 455, 206, 207, 208, 0, 243, 247, 253, + 255, 261, 262, 269, 287, 331, 352, 350, 356, 0, + 405, 422, 430, 437, 443, 444, 446, 447, 448, 449, + 450, 319, 268, 387, 283, 292, 0, 0, 337, 368, + 211, 425, 388, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 195, 288, 0, 357, 251, 452, + 432, 428, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 604, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 271, 272, + 275, 280, 297, 302, 303, 304, 305, 321, 322, 323, + 326, 329, 330, 333, 335, 336, 339, 345, 346, 347, + 348, 349, 351, 358, 362, 370, 371, 372, 373, 374, + 376, 377, 381, 382, 383, 384, 392, 396, 412, 413, + 424, 436, 441, 260, 420, 442, 0, 296, 0, 0, + 298, 245, 263, 273, 0, 431, 393, 200, 364, 252, + 189, 217, 203, 224, 239, 242, 277, 306, 312, 341, + 344, 257, 236, 215, 361, 212, 379, 399, 400, 401, + 403, 310, 231, 404, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, + 0, 0, 0, 0, 235, 0, 0, 0, 0, 286, + 232, 0, 0, 342, 0, 187, 0, 380, 220, 295, + 293, 409, 246, 238, 234, 219, 270, 301, 340, 398, + 334, 0, 290, 0, 0, 389, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 218, 186, 325, 390, 250, 0, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, + 230, 274, 237, 229, 406, 0, 0, 0, 0, 202, + 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, 0, + 0, 0, 511, 0, 258, 0, 314, 0, 0, 0, + 0, 438, 0, 0, 0, 0, 0, 0, 0, 285, + 0, 282, 182, 198, 0, 0, 324, 363, 369, 0, + 0, 0, 221, 0, 367, 338, 423, 205, 248, 360, + 343, 365, 0, 0, 366, 291, 411, 355, 421, 439, + 440, 228, 318, 429, 402, 435, 451, 199, 225, 332, + 395, 426, 386, 311, 407, 408, 281, 385, 256, 185, + 289, 445, 197, 375, 213, 190, 397, 419, 210, 378, + 0, 0, 453, 192, 417, 394, 308, 278, 279, 191, + 0, 359, 233, 254, 223, 327, 414, 415, 222, 454, + 201, 434, 194, 0, 433, 320, 410, 418, 309, 300, + 193, 416, 307, 299, 284, 244, 265, 353, 294, 354, + 266, 316, 315, 317, 0, 188, 0, 391, 427, 455, + 206, 207, 208, 0, 243, 247, 253, 255, 261, 262, + 269, 287, 331, 352, 350, 356, 0, 405, 422, 430, + 437, 443, 444, 446, 447, 448, 449, 450, 319, 268, + 387, 283, 292, 0, 0, 337, 368, 211, 425, 388, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 181, 195, 288, 0, 357, 251, 452, 432, 428, 0, + 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 271, 272, 275, 280, 297, + 302, 303, 304, 305, 321, 322, 323, 326, 329, 330, + 333, 335, 336, 339, 345, 346, 347, 348, 349, 351, + 358, 362, 370, 371, 372, 373, 374, 376, 377, 381, + 382, 383, 384, 392, 396, 412, 413, 424, 436, 441, + 510, 420, 442, 0, 296, 0, 0, 298, 245, 263, + 273, 0, 431, 393, 200, 364, 252, 189, 217, 203, + 224, 239, 242, 277, 306, 312, 341, 344, 257, 236, + 215, 361, 212, 379, 399, 400, 401, 403, 310, 231, + 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 286, 232, 0, 0, + 342, 0, 187, 0, 380, 220, 295, 293, 409, 246, + 238, 234, 219, 270, 301, 340, 398, 334, 0, 290, + 0, 0, 389, 313, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, + 218, 186, 325, 390, 250, 0, 0, 0, 0, 178, + 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 0, 216, 0, 0, 0, 0, 230, 274, 237, + 229, 406, 0, 0, 0, 0, 202, 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, 0, 0, 0, 0, + 0, 258, 0, 314, 0, 0, 458, 0, 438, 0, + 0, 0, 0, 0, 0, 0, 285, 0, 282, 182, + 198, 0, 0, 324, 363, 369, 0, 0, 0, 221, + 0, 367, 338, 423, 205, 248, 360, 343, 365, 0, + 0, 366, 291, 411, 355, 421, 439, 440, 228, 318, + 429, 402, 435, 451, 199, 225, 332, 395, 426, 386, + 311, 407, 408, 281, 385, 256, 185, 289, 445, 197, + 375, 213, 190, 397, 419, 210, 378, 0, 0, 453, + 192, 417, 394, 308, 278, 279, 191, 0, 359, 233, + 254, 223, 327, 414, 415, 222, 454, 201, 434, 194, + 0, 433, 320, 410, 418, 309, 300, 193, 416, 307, + 299, 284, 244, 265, 353, 294, 354, 266, 316, 315, + 317, 0, 188, 0, 391, 427, 455, 206, 207, 208, + 0, 243, 247, 253, 255, 261, 262, 269, 287, 331, + 352, 350, 356, 0, 405, 422, 430, 437, 443, 444, + 446, 447, 448, 449, 450, 319, 268, 387, 283, 292, + 0, 0, 337, 368, 211, 425, 388, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 181, 195, 288, + 0, 357, 251, 452, 432, 428, 0, 0, 227, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, + 264, 267, 271, 272, 275, 280, 297, 302, 303, 304, + 305, 321, 322, 323, 326, 329, 330, 333, 335, 336, + 339, 345, 346, 347, 348, 349, 351, 358, 362, 370, + 371, 372, 373, 374, 376, 377, 381, 382, 383, 384, + 392, 396, 412, 413, 424, 436, 441, 260, 420, 442, + 0, 296, 0, 0, 298, 245, 263, 273, 0, 431, + 393, 200, 364, 252, 189, 217, 203, 224, 239, 242, + 277, 306, 312, 341, 344, 257, 236, 215, 361, 212, + 379, 399, 400, 401, 403, 310, 231, 404, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, + 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 0, 0, 286, 232, 0, 0, 342, 0, 187, + 0, 380, 220, 295, 293, 409, 246, 238, 234, 219, + 270, 301, 340, 398, 334, 0, 290, 0, 0, 389, + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 218, 186, 325, + 390, 250, 0, 0, 0, 0, 178, 179, 180, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, + 0, 0, 0, 0, 230, 274, 237, 229, 406, 0, + 0, 0, 0, 202, 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, 0, 0, 0, 0, 0, 258, 0, + 314, 0, 0, 0, 0, 438, 0, 0, 0, 0, + 0, 0, 0, 285, 0, 282, 182, 198, 0, 0, + 324, 363, 369, 0, 0, 0, 221, 0, 367, 338, + 423, 205, 248, 360, 343, 365, 0, 0, 366, 291, + 411, 355, 421, 439, 440, 228, 318, 429, 402, 435, + 451, 199, 225, 332, 395, 426, 386, 311, 407, 408, + 281, 385, 256, 185, 289, 445, 197, 375, 213, 190, + 397, 419, 210, 378, 0, 0, 453, 192, 417, 394, + 308, 278, 279, 191, 0, 359, 233, 254, 223, 327, + 414, 415, 222, 454, 201, 434, 194, 0, 433, 320, + 410, 418, 309, 300, 193, 416, 307, 299, 284, 244, + 265, 353, 294, 354, 266, 316, 315, 317, 0, 188, + 0, 391, 427, 455, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 287, 331, 352, 350, 356, + 0, 405, 422, 430, 437, 443, 444, 446, 447, 448, + 449, 450, 319, 268, 387, 283, 292, 0, 0, 337, + 368, 211, 425, 388, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 195, 288, 0, 357, 251, + 452, 432, 428, 0, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, + 196, 204, 214, 226, 241, 249, 259, 264, 267, 271, + 272, 275, 280, 297, 302, 303, 304, 305, 321, 322, + 323, 326, 329, 330, 333, 335, 336, 339, 345, 346, + 347, 348, 349, 351, 358, 362, 370, 371, 372, 373, + 374, 376, 377, 381, 382, 383, 384, 392, 396, 412, + 413, 424, 436, 441, 260, 420, 442, 0, 296, 0, + 0, 298, 245, 263, 273, 0, 431, 393, 200, 364, + 252, 189, 217, 203, 224, 239, 242, 277, 306, 312, + 341, 344, 257, 236, 215, 361, 212, 379, 399, 400, + 401, 403, 310, 231, } var yyPact = [...]int{ - 2767, -1000, -338, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 3233, -1000, -334, -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, 1706, 1722, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 651, 1397, -1000, 1670, 236, -1000, 29332, 460, - -1000, 28855, 456, 444, 29332, -1000, 139, -1000, 129, 29332, - 132, 28378, -1000, -1000, -264, 12635, 1615, 19, -5, 29332, - -1000, 1787, -1000, 1374, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1690, 1683, 1809, 573, 1603, -1000, 1725, - 1430, -1000, 12635, 1772, 1723, 10726, -1000, 10726, 374, 374, - 374, 8818, -1000, -1000, 16929, 29332, 29332, 143, -1000, 1670, - -1000, -1000, 272, -1000, 289, 1333, -1000, 1328, -1000, 489, - 382, 286, 357, 356, 281, 280, 279, 278, 277, 276, - 275, 273, 295, -1000, 639, 639, -140, -141, 2220, 367, - 367, 367, 397, 1633, 1632, -1000, 628, -1000, 639, 639, - 255, 639, 639, 639, 639, 225, 217, 639, 639, 639, - 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, - 639, 639, 224, 1670, 204, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1606, 1645, -1000, -1000, -1000, -1000, 1719, + -1000, 643, 1395, -1000, 1600, 302, -1000, 30180, 433, -1000, + 29703, 431, 2391, 30180, -1000, 142, -1000, 124, 30180, 134, + 29226, -1000, -1000, -255, 13006, 1550, 13, 10, 30180, -1000, + 1709, 1414, -1000, 245, -1000, -1000, -1000, -1000, -1000, -1000, + 28749, -1000, -1000, -1000, 1587, 1601, 1722, 528, 1545, -1000, + 1648, 1414, -1000, 13006, 1680, 1659, 11575, -1000, 11575, 366, + -1000, -1000, 9189, -1000, -1000, 17778, 30180, 30180, 255, -1000, + 1600, -1000, -1000, 309, -1000, 293, 1303, -1000, 1302, -1000, + 494, 525, 290, 373, 362, 289, 287, 282, 281, 271, + 267, 257, 256, 308, -1000, 596, 596, -119, -128, 2461, + 344, 344, 344, 394, 1577, 1574, -1000, 569, -1000, 596, + 596, 261, 596, 596, 596, 596, 234, 233, 596, 596, + 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, + 596, 596, 596, 260, 1600, 225, -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, @@ -4149,27 +4238,27 @@ var yyPact = [...]int{ -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, 29332, 94, 29332, -1000, 530, - 29332, 641, 641, 20, 641, 641, 641, 641, 131, 510, - -7, -1000, 128, 223, 109, 198, 696, 239, 86, -1000, - -1000, 192, 696, 1019, 597, 106, -1000, 641, 6902, 6902, - 6902, -1000, 1653, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 392, -1000, -1000, -1000, -1000, 29332, 27901, 301, 655, - -1000, -1000, -1000, 15, -1000, -1000, 1150, 754, -1000, 12635, - 3006, 1137, 1137, -1000, -1000, 500, -1000, -1000, 14066, 14066, - 14066, 14066, 14066, 14066, 14066, 14066, 14066, 14066, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 30180, 207, 30180, -1000, + 508, 30180, 679, 679, 76, 679, 679, 679, 679, 125, + 517, 2, -1000, 122, 205, 140, 220, 669, 118, 87, + -1000, -1000, 186, 669, 1065, 550, 123, -1000, 679, 7273, + 7273, 7273, -1000, 1590, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 392, -1000, -1000, -1000, -1000, 30180, 28272, 240, + 622, -1000, -1000, -1000, 78, -1000, -1000, 1156, 957, -1000, + 13006, 1269, 1309, 1309, -1000, -1000, 456, -1000, -1000, 14437, + 14437, 14437, 14437, 14437, 14437, 14437, 14437, 14437, 14437, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1137, 526, -1000, -1000, 1137, 1137, 1137, 1137, - 1137, 1137, 1137, 1137, 12635, 1137, 1137, 1137, 1137, 1137, - 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, - 1137, 1137, -1000, -1000, 12158, -1000, 29332, -1000, 1137, 147, - 1725, 1430, -1000, 1759, 1456, 1129, 1026, -1000, -1000, -1000, - 1537, 975, 1017, -1000, -1000, -1000, -1000, -1000, 1374, 978, - 12635, -1000, -1000, 1796, -1000, 15497, 524, 788, 1794, 27424, - -1000, 20746, 26947, 1326, 8339, -75, -1000, -1000, -1000, 653, - 19315, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1653, -1000, -1000, -1000, + -1000, -1000, -1000, 1309, 504, -1000, -1000, 1309, 1309, 1309, + 1309, 1309, 1309, 1309, 1309, 13006, 1309, 1309, 1309, 1309, + 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, + 1309, 1309, 1309, -1000, -1000, 10621, -1000, 30180, -1000, 1309, + 153, 1648, 1414, -1000, 1709, 1677, 245, -1000, 1794, 1226, + 1181, 1071, 1414, 1294, 30180, -1000, 1336, -1000, -1000, -1000, + 1421, 998, 1063, -1000, -1000, -1000, -1000, 887, 13006, -1000, + -1000, 1714, -1000, 15868, 499, 783, 1711, 27795, -1000, 366, + 366, 1301, 8710, -35, -1000, -1000, -1000, 615, 19686, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1590, -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, @@ -4181,197 +4270,199 @@ var yyPact = [...]int{ -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, 1285, 29332, -1000, -1000, 2369, - 1016, -1000, 1396, -1000, 1246, -1000, 1376, 1425, 451, 1016, - 424, 420, 417, -1000, -96, -1000, -1000, -1000, -1000, -1000, - 639, 639, 292, 236, 4097, -1000, -1000, -1000, 26470, 1395, - 1016, -1000, 1393, -1000, 709, 436, 467, 467, 1016, -1000, - -1000, 29332, 1016, 707, 706, 29332, 29332, -1000, 25993, -1000, - 25516, 25039, 913, 29332, 24562, 24085, 23608, 23131, 22654, -1000, - 1544, -1000, 1408, -1000, -1000, -1000, 29332, 29332, 29332, 261, - -1000, -1000, 29332, 1016, -1000, -1000, 911, 908, 639, 639, - 905, 1010, 1009, 1001, 639, 639, 904, 996, 21223, 199, - 902, 893, 882, 914, 995, 127, 898, 869, 878, 29332, - 1392, 29332, -1000, 187, 591, 293, 645, 1670, 1610, 1323, - 391, 435, 1016, 370, 370, -1000, 7381, -1000, -1000, 982, - 12635, -1000, 726, 696, 696, -1000, -1000, -1000, -1000, -1000, - -1000, 641, 29332, 726, -1000, -1000, -1000, 696, 641, 29332, - 641, 641, 641, 641, 696, 696, 696, 641, 29332, 29332, - 29332, 29332, 29332, 29332, 29332, 29332, 29332, 6902, 6902, 6902, - 597, 641, -269, -1000, 956, -1000, 1481, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 117, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -93, 1322, 22177, -1000, -270, - -272, -276, -281, -1000, -1000, -1000, -282, -285, -1000, -1000, - -1000, 12635, 12635, 12635, 12635, 807, 602, 14066, 828, 731, - 14066, 14066, 14066, 14066, 14066, 14066, 14066, 14066, 14066, 14066, - 14066, 14066, 14066, 14066, 14066, 604, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1016, -1000, 1444, 1444, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 14543, 9295, 7381, - 10726, 10726, 12635, 12635, 11680, 11203, 10726, 1642, 678, 754, - 29332, -1000, 1026, -1000, -1000, 13589, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 29332, 29332, - 10726, 10726, 10726, 10726, 10726, 1136, 1112, 1229, -1000, 1305, - -1000, -164, 16452, 12635, 954, -1000, -1000, -1000, 1541, 10726, - -1000, -1000, 1660, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1124, -1000, 1530, 952, 261, -1000, 1660, 1136, 12635, - 12635, 1293, -1000, 1110, 29332, -1000, -1000, 21700, -1000, -1000, - 6423, -1000, 29332, 268, 29332, -1000, 1212, 1623, -1000, -1000, - -1000, 1718, 18361, 29332, 1356, 1309, -1000, -1000, 522, 7860, - -75, -1000, 7860, 1236, -1000, -26, -10, 9772, 478, -1000, - -1000, -1000, 2220, 15020, 1102, 1622, 74, -1000, -1000, -1000, - 1376, -1000, 1376, 1376, 1376, 1376, 261, 261, 261, 261, - -1000, -1000, -1000, -1000, -1000, 1390, 1388, -1000, 1376, 1376, - 1376, 1376, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1387, - 1387, 1387, 1377, 1377, 362, -1000, 12635, 164, 29332, 1679, - 874, 187, 371, 1449, 1016, 1016, 1016, 371, -1000, 1002, - 980, -1000, 1290, -1000, -1000, 1771, -1000, -1000, 396, 768, - 767, 473, 29332, 160, 266, -1000, 351, -1000, 29332, 1016, - 705, 467, 1016, -1000, 1016, -1000, -1000, -1000, -1000, 521, - -1000, -1000, 1016, 1289, -1000, 1185, 795, 722, 766, 717, - 1289, -1000, -1000, -119, 1289, -1000, 1289, -1000, 1289, -1000, - 1289, -1000, 1289, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 610, 29332, 160, 604, -1000, 389, -1000, -1000, 604, - 604, -1000, -1000, -1000, -1000, 951, 948, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1265, 30180, -1000, -1000, 3105, 1056, -1000, + 1394, -1000, 1234, -1000, 1356, 1406, 428, 1056, 424, 419, + 413, -1000, -67, -1000, -1000, -1000, -1000, -1000, 596, 596, + 307, 302, 4013, -1000, -1000, -1000, 27318, 1393, 1056, -1000, + 1392, -1000, 700, 434, 467, 467, 1056, -1000, -1000, 30180, + 1056, 686, 684, 30180, 30180, -1000, 26841, -1000, 26364, 25887, + 940, 30180, 25410, 24933, 24456, 23979, 23502, -1000, 1452, -1000, + 1365, -1000, -1000, -1000, 30180, 30180, 30180, 254, -1000, -1000, + 30180, 1056, -1000, -1000, 939, 935, 596, 596, 934, 1061, + 1060, 1057, 596, 596, 925, 1055, 21594, 194, 918, 916, + 915, 946, 1050, 162, 944, 943, 910, 30180, 1375, 30180, + -1000, 198, 633, 300, 607, 1600, 1549, 1300, 377, 427, + 1056, 347, 347, -1000, 7752, -1000, -1000, 1049, 13006, -1000, + 685, 669, 669, -1000, -1000, -1000, -1000, -1000, -1000, 679, + 30180, 685, -1000, -1000, -1000, 669, 679, 30180, 679, 679, + 679, 679, 669, 669, 669, 679, 30180, 30180, 30180, 30180, + 30180, 30180, 30180, 30180, 30180, 7273, 7273, 7273, 550, 679, + -262, -1000, 1046, -1000, 1446, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 132, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -84, 1298, 23025, -1000, -264, -266, -271, + -275, -1000, -1000, -1000, -279, -281, -1000, -1000, -1000, 13006, + 13006, 13006, 13006, 810, 559, 14437, 886, 575, 14437, 14437, + 14437, 14437, 14437, 14437, 14437, 14437, 14437, 14437, 14437, 14437, + 14437, 14437, 14437, 649, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1056, -1000, 1024, 1024, 509, 509, 509, 509, + 509, 509, 509, 509, 509, 14914, 9666, 7752, 11575, 11575, + 13006, 13006, 12529, 12052, 11575, 1583, 639, 957, 30180, -1000, + 1071, -1000, -1000, 13960, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 30180, 30180, 11575, 11575, + 11575, 11575, 11575, 1141, 1140, 1223, -1000, 1297, -1000, -149, + 17301, 13006, 1045, -1000, -1000, -1000, 1648, -1000, 1648, 1141, + 1538, 1495, 11575, -1000, -1000, 1538, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1221, -1000, 30180, 1294, 1636, 30180, + 1475, 1031, 254, -1000, 13006, 13006, 1291, -1000, 800, 30180, + -1000, -1000, 22548, -1000, -1000, 6794, -1000, 30180, 251, 30180, + -1000, 21117, 22071, 8231, -35, -1000, 8231, 1272, -1000, -11, + -42, 10143, 501, -1000, -1000, -1000, 2461, 15391, 1139, 1559, + 44, -1000, -1000, -1000, 1356, -1000, 1356, 1356, 1356, 1356, + 254, 254, 254, 254, -1000, -1000, -1000, -1000, -1000, 1374, + 1372, -1000, 1356, 1356, 1356, 1356, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -326, 29332, -1000, 184, 644, 247, - 282, 222, 29332, 150, 1732, 201, 212, 29332, 29332, 370, - 1480, 29332, 1707, 29332, -1000, -1000, -1000, -1000, 754, 29332, - -1000, -1000, 641, 641, -1000, -1000, 29332, 641, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 641, -1000, -1000, -1000, + -1000, -1000, -1000, 1371, 1371, 1371, 1364, 1364, 339, -1000, + 13006, 183, 30180, 1613, 898, 198, 348, 1418, 1056, 1056, + 1056, 348, -1000, 1039, 1012, -1000, 1290, -1000, -1000, 1679, + -1000, -1000, 506, 725, 720, 614, 30180, 166, 248, -1000, + 331, -1000, 30180, 1056, 681, 467, 1056, -1000, 1056, -1000, + -1000, -1000, -1000, 495, -1000, -1000, 1056, 1289, -1000, 1192, + 746, 716, 745, 713, 1289, -1000, -1000, -87, 1289, -1000, + 1289, -1000, 1289, -1000, 1289, -1000, 1289, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 597, 30180, 166, 649, -1000, + 375, -1000, -1000, 649, 649, -1000, -1000, -1000, -1000, 1029, + 1022, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 29332, 29332, -1000, -1000, -1000, -1000, - -1000, 61, -43, 215, -1000, -1000, -1000, -1000, 1737, -1000, - 754, 602, 671, 611, -1000, -1000, 817, -1000, -1000, 2525, - -1000, -1000, -1000, -1000, 828, 14066, 14066, 14066, 909, 2525, - 3039, 1280, 1773, 496, 699, 699, 560, 560, 560, 560, - 560, 713, 713, -1000, -1000, -1000, -1000, 1026, -1000, -1000, - -1000, 1026, 10726, 10726, 1287, -1000, 1137, 517, -1000, 1200, - 1200, 901, 963, 656, 1793, 1200, 654, 1792, 1200, 1200, - 10726, -1000, -1000, 660, -1000, 12635, 1026, -1000, 1031, 1243, - 1241, 1200, 1026, 1026, 1200, 1200, 1026, -1000, 29332, -1000, - -257, -1000, -70, 481, 1137, -1000, 21223, 1026, 1150, -1000, - 18838, 1306, 1660, -1000, -1000, -1000, -1000, 261, 36, 720, - 754, 754, 12635, -1000, -1000, -1000, -1000, -1000, -1000, 513, - 1780, 1361, 1137, -1000, 29332, 20746, 20746, 20746, 20746, 20746, - -1000, 1512, 1504, -1000, 1505, 1496, 1573, 29332, -1000, 1221, - 1026, 1761, 18361, 268, 1163, 20746, 29332, -1000, -1000, 20746, - 29332, 5944, -1000, 1236, -75, 18, -1000, -1000, -1000, -1000, - 754, -1000, 946, -1000, 985, -1000, 321, -1000, -1000, -1000, - -1000, 495, 1716, 1620, 43, -1000, -1000, -1000, 261, 261, - -1000, -1000, 478, 478, 478, 478, 947, 947, -1000, -1000, - -1000, -1000, -1000, 864, -1000, -1000, -1000, 862, -1000, -1000, - 1029, 1486, 164, -1000, -1000, 639, 940, 1624, 29332, -1000, - -1000, 1070, 184, 29332, 684, 1477, -1000, 1449, 1449, 1449, - 29332, -1000, -1000, -1000, -1000, 3574, 29332, 1219, -1000, 158, - -1000, 1063, 29332, -1000, 1205, 1385, 1016, 1016, -1000, -1000, - 7381, -1000, 29332, 1137, -1000, -1000, -1000, -1000, 434, 1657, - 1647, 160, 158, 478, 1016, -1000, -1000, -1000, -1000, -1000, - -330, 1202, 404, 162, 170, 29332, 29332, 29332, 29332, 29332, - 471, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 202, 379, - -1000, 29332, 29332, 457, -1000, -1000, -1000, 696, -1000, -1000, - 696, -1000, -1000, -1000, -1000, -1000, 1649, -51, -301, -1000, - -298, -1000, -1000, -1000, -1000, 909, 2525, 2776, -1000, 14066, - 14066, -1000, -1000, 1200, 1200, 10726, 10726, 7381, -1000, -1000, - 185, 604, 185, 14066, 14066, -1000, 14066, 14066, -1000, -111, - 1168, 652, -1000, 12635, 778, -1000, -1000, 14066, 14066, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 416, 412, - 409, 29332, -1000, -1000, 1736, -1000, 1567, 1561, 1782, 1780, - -1000, 20746, 1660, -248, -1000, 1600, 1565, -1000, -1000, -1000, - -1000, 5465, 1725, 12635, 1474, 29332, 1137, -1000, 15975, 29332, - 1359, -1000, 642, 1623, 1441, 1472, 1645, -1000, -1000, -1000, - -1000, 1502, -1000, 1455, -1000, -1000, 1352, -1000, -1000, 1112, - 1780, 20746, 1325, -1000, 1325, -1000, 491, -1000, -1000, -1000, - -64, -50, -1000, -1000, -1000, 2220, -1000, -1000, -1000, -1000, - 783, 14066, 1803, -1000, 939, -1000, -1000, 703, 698, -1000, - 29332, 1384, -1000, -1000, -1000, 478, 478, -1000, -1000, -1000, - -1000, 1198, -1000, 1193, 1226, 1161, 98, -1000, 1364, 1646, - 639, 639, -1000, 860, -1000, 1016, -1000, -1000, 400, -1000, - 1682, 29332, 1471, 1465, 1454, -1000, 1770, 1195, -1000, 29332, - -1000, -1000, 29332, -1000, 1559, 164, 29332, -1000, -1000, -1000, - -1000, 266, 29332, -1000, 1444, 158, -1000, -1000, -1000, -1000, - -1000, -1000, 29332, 168, -1000, 1383, 1023, -1000, 1445, -1000, - -1000, -1000, -1000, 157, 244, -1000, 29332, 450, 1486, 29332, - -1000, -1000, -1000, 641, 641, -1000, 1636, -1000, 1016, -1000, - 14066, 2525, 2525, -1000, -1000, -1000, 1026, -1000, 1026, 1376, - 1376, -1000, 1376, 1377, -1000, 1376, 115, 1376, 104, 1026, - 1026, 2642, 2587, 2456, 1256, 1137, -104, -1000, 754, 12635, - 2398, 1214, 1137, 1137, 1137, 1140, 29332, -1000, -1000, -1000, - -1000, 1780, 1777, 1209, -1000, 36, 290, -1000, 1579, 1565, - -1000, 1768, 1591, 1758, -1000, -1000, -1000, 754, -1000, 1673, - 1120, 1131, -1000, -1000, 10249, 1156, 1550, 487, 1140, 1760, - 29332, 12635, -1000, -1000, 12635, 1375, -1000, 12635, -1000, -1000, - -1000, -1000, 29332, -1000, 1760, 1325, -1000, -1000, 549, -1000, - -1000, -1000, -1000, -1000, 2525, 21, -1000, -1000, -1000, 1362, - 14066, -1000, -1000, 261, 934, 261, 833, -1000, 824, -1000, - -1000, -197, -1000, -1000, 1405, 1482, -1000, -1000, 29332, -1000, - -1000, 29332, 29332, 29332, 29332, 29332, -1000, -1000, 253, -1000, - 1081, 1077, -1000, -138, -1000, -1000, 1352, -1000, -1000, -1000, - 1049, -1000, -126, 1016, 29332, 29332, 29332, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 2525, -1000, -1000, -1000, 291, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14066, 14066, - 14066, 14066, 14066, 1725, 931, 754, 14066, 14066, 17883, 20269, - 20269, 17406, -1000, 1777, 1763, 1757, 1580, 1583, 1583, 1579, - -1000, 1755, 1751, -1000, 930, 1741, 923, 697, -1000, 1137, - -1000, 1358, 29332, 1137, 29332, -1000, 1725, -1000, 754, 754, - 29332, 754, 1073, 1725, -1000, -1000, 29332, 1353, 478, -1000, - 478, 1046, 1034, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1352, -1000, -1000, -1000, 1195, -1000, 242, 313, -1000, - 266, -1000, -143, -146, 1713, -1000, -1000, 7381, -1000, -1000, - 1335, 1447, -1000, -1000, -1000, 1031, 1031, 1031, 1031, 149, - 1026, -1000, 1031, 1031, 1053, -1000, -1000, -1000, 1053, 1053, - 481, 1763, -1000, 12635, 12635, 1575, 813, -1000, -1000, -1000, - -1000, 921, 917, -1000, 910, -1000, 1799, -1000, 1137, -1000, - 480, 1131, -1000, -1000, 1041, -1000, -1000, 1037, -1000, -1000, - -1000, -1000, -1000, 1712, 1137, -1000, -1000, -1000, -1000, 1374, - 1188, -1000, 621, 29332, 29332, -1000, -1000, -1000, -1000, 1026, - 178, -131, -1000, -1000, -1000, 19792, -1000, -1000, -1000, -1000, - -1000, 754, 1150, -1000, 811, -1000, -1000, -1000, -1000, -1000, - 29332, 1131, 29332, -1000, 1451, 852, 1374, 13112, -120, 7381, - 4986, 1033, -1000, -1000, 1522, -114, -135, -1000, -1000, -1000, - -1000, 1111, -1000, 1365, -1000, 1786, -1000, -1000, -1000, 728, - 814, -1000, -1000, -1000, -120, 1031, 1026, -1000, -33, -1000, - -1000, -1000, -1000, -1000, 1445, -1000, 1517, -1000, -1000, 1789, - 583, 583, -1000, -1000, -1000, -1000, -1000, 360, -1000, -1000, - -126, -127, -1000, -1000, -1000, 340, 848, -1000, 171, -1000, - -132, -1000, -1000, -1000, -1000, -136, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -316, 30180, + -1000, 178, 606, 238, 274, 230, 30180, 158, 1639, 214, + 231, 30180, 30180, 347, 1444, 30180, 1616, 30180, -1000, -1000, + -1000, -1000, 957, 30180, -1000, -1000, 679, 679, -1000, -1000, + 30180, 679, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 679, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 30180, 30180, + -1000, -1000, -1000, -1000, -1000, 107, -25, 232, -1000, -1000, + -1000, -1000, -1000, 1644, -1000, 957, 559, 742, 613, -1000, + -1000, 824, -1000, -1000, 2648, -1000, -1000, -1000, -1000, 886, + 14437, 14437, 14437, 726, 2648, 2819, 1285, 903, 509, 664, + 664, 521, 521, 521, 521, 521, 750, 750, -1000, -1000, + -1000, -1000, 1071, -1000, -1000, -1000, 1071, 11575, 11575, 1280, + -1000, 1309, 493, -1000, 1202, 1202, 895, 977, 644, 1708, + 1202, 630, 1706, 1202, 1202, 11575, -1000, -1000, 661, -1000, + 13006, 1071, -1000, 1402, 1276, 1273, 1202, 1071, 1071, 1202, + 1202, 1071, -1000, 30180, -1000, -244, -1000, -47, 502, 1309, + -1000, 21594, 1071, 1156, -1000, -1000, -1000, -1000, -1000, 19209, + 1340, 1538, -1000, -1000, 1309, 1211, -1000, -1000, 254, 38, + 762, 957, 957, 13006, -1000, -1000, -1000, -1000, -1000, -1000, + 492, 1688, 229, 1309, -1000, 1311, 1640, -1000, -1000, -1000, + 1633, 16824, 30180, 1288, 1287, -1000, 486, -1000, 1272, -35, + -13, -1000, -1000, -1000, -1000, 957, -1000, 845, -1000, 1962, + -1000, 330, -1000, -1000, -1000, -1000, 789, 1625, 1556, 39, + -1000, -1000, -1000, 254, 254, -1000, -1000, 501, 501, 501, + 501, 1018, 1018, -1000, -1000, -1000, -1000, -1000, 896, -1000, + -1000, -1000, 892, -1000, -1000, 868, 1417, 183, -1000, -1000, + 596, 1016, 1561, 30180, -1000, -1000, 1132, 178, 30180, 658, + 1430, -1000, 1418, 1418, 1418, 30180, -1000, -1000, -1000, -1000, + 3815, 30180, 1209, -1000, 164, -1000, 1113, 30180, -1000, 1206, + 1369, 1056, 1056, -1000, -1000, 7752, -1000, 30180, 1309, -1000, + -1000, -1000, -1000, 426, 1595, 1594, 166, 164, 501, 1056, + -1000, -1000, -1000, -1000, -1000, -319, 1204, 396, 169, 199, + 30180, 30180, 30180, 30180, 30180, 451, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 209, 369, -1000, 30180, 30180, 463, -1000, + -1000, -1000, 669, -1000, -1000, 669, -1000, -1000, -1000, -1000, + -1000, 1586, 30180, -28, -294, -1000, -289, -1000, -1000, -1000, + -1000, 726, 2648, 2743, -1000, 14437, 14437, -1000, -1000, 1202, + 1202, 11575, 11575, 7752, -1000, -1000, 215, 649, 215, 14437, + 14437, -1000, 14437, 14437, -1000, -81, 1293, 632, -1000, 13006, + 942, -1000, -1000, 14437, 14437, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 411, 409, 405, 30180, -1000, -1000, + 1666, -1000, 1510, 1507, 1690, 1688, -1000, 21117, 1538, -1000, + -1000, 30180, -221, -1000, 1544, 1527, -1000, -1000, -1000, -1000, + 6315, 1648, 13006, 1429, 30180, 1309, -1000, 16346, 30180, 30180, + 21117, 21117, 21117, 21117, 21117, -1000, 1467, 1461, -1000, 1492, + 1468, 1504, 30180, -1000, 1198, 1071, 1677, 16824, 251, 1230, + 21117, -1000, -1000, 21117, 30180, 5836, -1000, -1000, -30, -53, + -1000, -1000, -1000, 2461, -1000, -1000, -1000, -1000, 741, 14437, + 1721, -1000, 1011, -1000, -1000, 677, 672, -1000, 30180, 1368, + -1000, -1000, -1000, 501, 501, -1000, -1000, -1000, -1000, 1196, + -1000, 1180, 1271, 1175, 105, -1000, 1405, 1585, 596, 596, + -1000, 839, -1000, 1056, -1000, -1000, 374, -1000, 1612, 30180, + 1428, 1426, 1425, -1000, 1674, 1242, 30180, -1000, -1000, 30180, + -1000, 1500, 183, 30180, -1000, -1000, -1000, -1000, 248, 30180, + -1000, 1024, 164, -1000, -1000, -1000, -1000, -1000, -1000, 30180, + 182, -1000, 1367, 813, -1000, 1413, -1000, -1000, -1000, -1000, + 151, 237, -1000, 30180, 457, 1417, 30180, -1000, -1000, -1000, + 679, 679, -1000, -1000, 1584, -1000, 1056, -1000, 14437, 2648, + 2648, -1000, -1000, -1000, 1071, -1000, 1071, 1356, 1356, -1000, + 1356, 1364, -1000, 1356, 113, 1356, 89, 1071, 1071, 2675, + 2626, 2529, 2476, 1309, -76, -1000, 957, 13006, 2369, 1047, + 1309, 1309, 1309, 1166, 30180, -1000, -1000, -1000, -1000, 1688, + 1686, 1262, -1000, -1000, 38, 324, -1000, 1524, 1527, -1000, + 1673, 1539, 1672, -1000, -1000, -1000, 957, -1000, 1607, 1183, + -1000, 573, 1148, -1000, -1000, 11098, 1170, 1498, 484, 1166, + 1299, 1640, 1411, 1424, 1442, -1000, -1000, -1000, -1000, 1460, + -1000, 1457, -1000, -1000, 1336, -1000, -1000, 1140, 1688, 21117, + 1187, 1187, -1000, 452, -1000, -1000, -1000, -1000, -1000, -1000, + 2648, -33, -1000, -1000, -1000, 1355, 14437, -1000, -1000, 254, + 999, 254, 796, -1000, 790, -1000, -1000, -168, -1000, -1000, + 1362, 1450, -1000, -1000, 30180, -1000, -1000, 30180, 30180, 30180, + 30180, -1000, -1000, 243, -1000, 1161, 1151, -1000, -120, -1000, + -1000, 1336, -1000, -1000, -1000, 1092, -1000, -90, 1056, 30180, + 30180, 30180, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2648, -1000, -1000, -1000, 305, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 14437, 14437, 14437, 14437, 14437, 1648, 992, + 957, 14437, 14437, 18732, 20640, 20640, 18255, -1000, 1686, 1668, + 1671, 1529, 1533, 1533, 1524, -1000, 1667, 1654, -1000, 990, + 1652, 989, 668, -1000, 30180, 13006, 1309, -1000, 239, 30180, + 1309, 30180, -1000, 1683, -1000, -1000, 13006, 1339, -1000, 13006, + -1000, -1000, -1000, -1000, -1000, 1683, 1187, -1000, -1000, 533, + -1000, 30180, 2206, 501, -1000, 501, 1087, 1073, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1336, -1000, -1000, -1000, + 1242, 235, 322, -1000, 248, -1000, -131, -133, 1624, -1000, + -1000, 7752, -1000, -1000, 1310, 1416, -1000, -1000, -1000, 1402, + 1402, 1402, 1402, 208, 1071, -1000, 1402, 1402, 1098, -1000, + -1000, -1000, 1098, 1098, 502, 1668, -1000, 13006, 13006, 1526, + 833, -1000, -1000, -1000, -1000, 975, 974, -1000, 966, -1000, + 1717, -1000, 957, -1000, 1309, -1000, 448, 1148, -1000, 1648, + 957, 30180, 957, 1648, -1000, 1085, -1000, -1000, -1000, -1000, + -1000, 1623, 1309, -1000, -1000, -1000, -1000, 245, 1213, -1000, + 571, 30180, 30180, -1000, -1000, -1000, -1000, 1071, 212, -97, + -1000, -1000, -1000, 20163, -1000, -1000, -1000, -1000, -1000, 957, + 1156, -1000, 777, -1000, -1000, -1000, -1000, -1000, 30180, 1148, + 30180, -1000, 1080, -1000, 1420, 641, 245, 13483, -89, 7752, + 5357, 1078, -1000, -1000, 1474, -85, -109, -1000, -1000, -1000, + -1000, 893, -1000, -1000, 1415, -1000, 1705, -1000, -1000, -1000, + 736, 888, -1000, -1000, -1000, -89, 1402, 1071, -1000, -18, + -1000, -1000, -1000, -1000, -1000, 1413, -1000, 1432, -1000, -1000, + 1707, 516, 516, -1000, -1000, -1000, -1000, -1000, 333, -1000, + -1000, -90, -92, -1000, -1000, -1000, 336, 809, -1000, 191, + -1000, -104, -1000, -1000, -1000, -1000, -118, -1000, } var yyPgo = [...]int{ - 0, 2102, 27, 58, 2101, 10, 145, 59, 2100, 2099, - 2098, 2097, 150, 148, 147, 2096, 2095, 2091, 2089, 2085, - 2084, 2083, 2072, 2069, 2067, 2063, 2062, 73, 140, 48, - 50, 142, 2061, 2059, 39, 2058, 2056, 2054, 137, 135, - 605, 2053, 134, 76, 2052, 2050, 2049, 2043, 2040, 2038, - 2035, 2034, 2033, 2032, 2031, 2020, 2018, 2012, 232, 2011, - 2010, 6, 2008, 45, 2007, 2006, 2005, 2004, 2003, 100, - 2002, 1999, 1998, 1556, 1997, 1996, 64, 350, 66, 69, - 1995, 1994, 57, 154, 1992, 82, 115, 1991, 1990, 1839, - 63, 65, 1989, 91, 96, 1988, 56, 1987, 1986, 72, - 1985, 1979, 1978, 85, 1977, 1976, 3025, 1975, 81, 88, - 15, 29, 1974, 1973, 1972, 1968, 46, 262, 1964, 1962, - 31, 1961, 1959, 158, 1956, 99, 13, 1955, 12, 14, - 22, 1954, 109, 1950, 42, 38, 1949, 98, 1948, 1947, - 25, 17, 51, 1946, 44, 86, 119, 20, 87, 93, - 1945, 1944, 21, 36, 1943, 1941, 1940, 1939, 1938, 1936, - 34, 1935, 23, 1934, 144, 1931, 26, 18, 43, 84, - 143, 32, 11, 1924, 162, 1923, 30, 138, 80, 117, - 1910, 1908, 1902, 891, 157, 1900, 1898, 35, 130, 103, - 114, 1896, 171, 1894, 1893, 97, 1239, 2467, 9, 129, - 1892, 1891, 2132, 71, 95, 24, 1889, 83, 1888, 1886, - 1884, 149, 136, 68, 881, 61, 1882, 1877, 1876, 1874, - 1869, 1868, 1867, 47, 33, 90, 120, 37, 1866, 1865, - 1860, 77, 92, 1858, 127, 126, 78, 104, 1856, 131, - 110, 67, 1854, 40, 1853, 1852, 1851, 1849, 89, 1848, - 1846, 1845, 1844, 125, 108, 75, 53, 1843, 41, 74, - 124, 112, 1841, 19, 141, 5, 1840, 1, 0, 1838, - 3, 139, 161, 113, 1837, 1835, 2, 1834, 4, 1833, - 1832, 94, 1831, 1830, 1829, 8, 16, 7, 1828, 1827, - 1926, 121, 123, 1825, 151, + 0, 2023, 17, 60, 149, 6, 147, 68, 2021, 2020, + 2017, 2014, 162, 161, 156, 2011, 2010, 2009, 2008, 2007, + 2006, 2005, 2003, 2002, 2001, 159, 131, 143, 2000, 1999, + 1997, 78, 144, 55, 52, 155, 1996, 1994, 43, 1993, + 1992, 1989, 137, 132, 578, 1987, 136, 76, 1986, 1984, + 1983, 1982, 1981, 1978, 1977, 1976, 1975, 1974, 1973, 1972, + 1971, 1970, 225, 1969, 1968, 4, 1966, 41, 1962, 1960, + 1959, 1948, 1947, 110, 1945, 1943, 1942, 151, 1940, 1939, + 73, 229, 96, 85, 1938, 1934, 72, 153, 1932, 77, + 111, 1931, 1930, 188, 70, 29, 1925, 67, 62, 1924, + 37, 1923, 1922, 83, 1921, 1920, 1918, 63, 1917, 1916, + 3069, 1914, 57, 101, 32, 24, 1913, 1911, 1910, 1904, + 44, 460, 1902, 1900, 36, 1899, 1896, 154, 1894, 105, + 22, 1893, 10, 13, 20, 1892, 95, 1891, 28, 42, + 1889, 104, 1885, 1882, 14, 11, 30, 1881, 27, 90, + 120, 16, 64, 113, 1869, 1868, 31, 40, 1866, 1865, + 1864, 1863, 1862, 1861, 39, 1858, 34, 1853, 158, 1852, + 23, 33, 49, 66, 115, 38, 19, 1851, 124, 1849, + 25, 129, 79, 121, 1848, 1846, 1839, 145, 167, 1837, + 1836, 88, 141, 119, 123, 1833, 171, 1832, 1829, 58, + 1262, 2704, 15, 126, 1823, 1822, 2117, 71, 97, 35, + 1821, 128, 1820, 1819, 1817, 157, 139, 74, 885, 75, + 1814, 1812, 1808, 1807, 1806, 1804, 1803, 47, 12, 93, + 133, 45, 1802, 1801, 1800, 92, 65, 1799, 130, 127, + 80, 140, 1798, 135, 125, 100, 1797, 46, 1796, 1793, + 1792, 1790, 94, 1787, 1782, 1780, 1776, 122, 112, 84, + 50, 1757, 56, 82, 117, 116, 1756, 21, 152, 7, + 1750, 1, 0, 1749, 3, 138, 168, 114, 1748, 1747, + 2, 1746, 5, 1745, 1744, 102, 1743, 1741, 1739, 9, + 26, 8, 1736, 1735, 3111, 482, 86, 1733, 146, } -//line sql.y:5415 +//line sql.y:5481 type yySymType struct { union interface{} empty struct{} @@ -4518,6 +4609,16 @@ func (st *yySymType) createTableUnion() *CreateTable { return v } +func (st *yySymType) cteUnion() *CommonTableExpr { + v, _ := st.union.(*CommonTableExpr) + return v +} + +func (st *yySymType) ctesUnion() []*CommonTableExpr { + v, _ := st.union.([]*CommonTableExpr) + return v +} + func (st *yySymType) derivedTableUnion() *DerivedTable { v, _ := st.union.(*DerivedTable) return v @@ -4818,149 +4919,155 @@ func (st *yySymType) whensUnion() []*When { return v } +func (st *yySymType) withUnion() *With { + v, _ := st.union.(*With) + return v +} + var yyR1 = [...]int{ - 0, 288, 289, 289, 1, 1, 1, 1, 1, 1, + 0, 292, 293, 293, 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, 268, 268, 268, 271, 271, - 23, 53, 2, 2, 2, 3, 3, 3, 3, 4, - 4, 4, 4, 4, 5, 5, 5, 5, 7, 7, - 7, 7, 7, 10, 11, 6, 6, 12, 12, 65, - 65, 13, 14, 14, 14, 14, 292, 292, 101, 101, - 99, 99, 100, 100, 169, 169, 15, 16, 16, 179, - 179, 178, 178, 178, 180, 180, 180, 180, 214, 214, - 17, 17, 17, 17, 17, 74, 74, 270, 270, 269, - 267, 267, 266, 266, 265, 25, 26, 35, 35, 35, - 35, 36, 37, 272, 272, 244, 41, 41, 40, 40, - 40, 40, 42, 42, 39, 39, 38, 38, 246, 246, - 233, 233, 245, 245, 245, 245, 245, 245, 245, 232, - 232, 88, 88, 150, 150, 150, 150, 150, 150, 150, - 150, 284, 284, 151, 151, 151, 151, 151, 151, 285, - 285, 285, 285, 216, 216, 216, 216, 219, 219, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, - 218, 218, 218, 220, 220, 220, 220, 220, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, - 222, 231, 231, 223, 223, 226, 226, 227, 227, 227, - 228, 228, 228, 229, 229, 224, 224, 224, 224, 225, - 225, 225, 234, 258, 258, 257, 257, 255, 255, 255, - 255, 243, 243, 252, 252, 252, 252, 252, 242, 242, - 238, 238, 238, 239, 239, 240, 240, 237, 237, 241, - 241, 254, 254, 253, 235, 235, 236, 236, 260, 286, - 286, 286, 286, 287, 287, 261, 277, 278, 276, 276, - 276, 276, 276, 63, 63, 63, 191, 191, 191, 250, - 250, 249, 249, 249, 251, 251, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 186, 186, 186, 275, 275, 275, - 275, 275, 275, 274, 274, 274, 247, 247, 247, 273, - 273, 43, 43, 135, 135, 32, 32, 32, 32, 32, - 32, 31, 31, 31, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 33, 33, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 18, 18, 18, + 1, 1, 1, 1, 1, 272, 272, 272, 275, 275, + 23, 57, 25, 25, 24, 24, 27, 27, 26, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 5, 5, 5, 5, 7, + 7, 7, 7, 7, 10, 11, 6, 6, 12, 12, + 69, 69, 13, 14, 14, 14, 14, 296, 296, 105, + 105, 103, 103, 104, 104, 173, 173, 15, 16, 16, + 183, 183, 182, 182, 182, 184, 184, 184, 184, 218, + 218, 17, 17, 17, 17, 17, 78, 78, 274, 274, + 273, 271, 271, 270, 270, 269, 29, 30, 39, 39, + 39, 39, 40, 41, 276, 276, 248, 45, 45, 44, + 44, 44, 44, 46, 46, 43, 43, 42, 42, 250, + 250, 237, 237, 249, 249, 249, 249, 249, 249, 249, + 236, 236, 92, 92, 154, 154, 154, 154, 154, 154, + 154, 154, 288, 288, 155, 155, 155, 155, 155, 155, + 289, 289, 289, 289, 220, 220, 220, 220, 223, 223, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, + 222, 222, 222, 222, 224, 224, 224, 224, 224, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 226, 226, 226, 226, 226, 226, + 226, 226, 235, 235, 227, 227, 230, 230, 231, 231, + 231, 232, 232, 232, 233, 233, 228, 228, 228, 228, + 229, 229, 229, 238, 262, 262, 261, 261, 259, 259, + 259, 259, 247, 247, 256, 256, 256, 256, 256, 246, + 246, 242, 242, 242, 243, 243, 244, 244, 241, 241, + 245, 245, 258, 258, 257, 239, 239, 240, 240, 264, + 290, 290, 290, 290, 291, 291, 265, 281, 282, 280, + 280, 280, 280, 280, 67, 67, 67, 195, 195, 195, + 254, 254, 253, 253, 253, 255, 255, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 190, 190, 190, 279, 279, + 279, 279, 279, 279, 278, 278, 278, 251, 251, 251, + 277, 277, 47, 47, 139, 139, 36, 36, 36, 36, + 36, 36, 35, 35, 35, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 37, 37, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 230, 230, - 230, 262, 262, 263, 263, 19, 24, 24, 20, 20, - 20, 20, 21, 21, 44, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 279, 279, 185, 185, 193, 193, 184, - 184, 207, 207, 207, 187, 187, 187, 188, 188, 283, - 283, 283, 46, 46, 48, 48, 49, 50, 50, 209, - 209, 210, 210, 51, 52, 64, 64, 64, 64, 64, - 64, 66, 66, 66, 9, 9, 9, 9, 60, 60, - 60, 8, 8, 47, 47, 54, 280, 280, 281, 282, - 282, 282, 282, 55, 57, 22, 22, 22, 22, 22, - 22, 81, 81, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 75, 75, 75, 70, 70, - 293, 58, 59, 59, 73, 73, 73, 67, 67, 67, - 72, 72, 72, 78, 78, 80, 80, 80, 80, 80, - 82, 82, 82, 82, 82, 82, 82, 77, 77, 79, - 79, 79, 79, 200, 200, 200, 199, 199, 90, 90, - 92, 91, 91, 93, 93, 94, 94, 94, 133, 109, - 109, 167, 167, 166, 166, 168, 168, 168, 168, 170, - 170, 95, 95, 95, 95, 96, 96, 97, 97, 98, - 98, 208, 208, 205, 205, 205, 204, 204, 102, 102, - 102, 104, 103, 103, 103, 103, 105, 105, 107, 107, - 106, 106, 108, 110, 110, 110, 110, 110, 111, 111, - 89, 89, 89, 89, 89, 89, 89, 89, 182, 182, - 113, 113, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 124, 124, 124, 124, 124, 124, 114, 114, - 114, 114, 114, 114, 114, 76, 76, 125, 125, 125, - 132, 126, 126, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 121, 121, 121, - 121, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 294, 294, 123, 122, 122, 122, 122, 122, 122, - 122, 71, 71, 71, 71, 71, 213, 213, 213, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 138, 138, 68, 68, 136, 136, 137, 139, - 139, 134, 134, 134, 116, 116, 116, 116, 116, 116, - 116, 116, 118, 118, 118, 140, 140, 141, 141, 142, - 142, 144, 143, 143, 145, 146, 146, 146, 147, 147, - 148, 148, 148, 34, 34, 34, 34, 34, 29, 29, - 29, 29, 30, 30, 30, 83, 83, 83, 83, 85, - 85, 84, 84, 61, 61, 62, 62, 62, 86, 86, - 87, 87, 87, 87, 164, 164, 149, 149, 149, 156, - 156, 156, 152, 152, 154, 154, 154, 155, 155, 155, - 153, 161, 161, 163, 163, 162, 162, 158, 158, 159, - 159, 160, 160, 160, 157, 157, 115, 115, 115, 115, - 115, 165, 165, 165, 165, 171, 171, 128, 128, 130, - 130, 129, 131, 172, 172, 176, 173, 173, 177, 177, - 177, 177, 177, 174, 174, 175, 175, 201, 201, 201, - 181, 181, 192, 192, 189, 189, 190, 190, 183, 183, - 194, 194, 194, 56, 127, 127, 259, 259, 256, 197, - 197, 198, 198, 202, 202, 206, 206, 203, 203, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 290, 291, 211, 212, 212, 212, + 18, 18, 18, 18, 18, 18, 18, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 234, + 234, 234, 266, 266, 267, 267, 19, 28, 28, 20, + 20, 20, 20, 21, 21, 48, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 49, 49, 283, 283, 189, 189, 197, 197, + 188, 188, 211, 211, 211, 191, 191, 191, 192, 192, + 287, 287, 287, 50, 50, 52, 52, 53, 54, 54, + 213, 213, 214, 214, 55, 56, 68, 68, 68, 68, + 68, 68, 70, 70, 70, 9, 9, 9, 9, 64, + 64, 64, 8, 8, 51, 51, 58, 284, 284, 285, + 286, 286, 286, 286, 59, 61, 22, 22, 22, 22, + 22, 22, 85, 85, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 79, 79, 79, 74, + 74, 297, 62, 63, 63, 77, 77, 77, 71, 71, + 71, 76, 76, 76, 82, 82, 84, 84, 84, 84, + 84, 86, 86, 86, 86, 86, 86, 86, 81, 81, + 83, 83, 83, 83, 204, 204, 204, 203, 203, 94, + 94, 96, 95, 95, 97, 97, 98, 98, 98, 137, + 113, 113, 171, 171, 170, 170, 172, 172, 172, 172, + 174, 174, 99, 99, 99, 99, 100, 100, 101, 101, + 102, 102, 212, 212, 209, 209, 209, 208, 208, 106, + 106, 106, 108, 107, 107, 107, 107, 109, 109, 111, + 111, 110, 110, 112, 114, 114, 114, 114, 114, 115, + 115, 93, 93, 93, 93, 93, 93, 93, 93, 186, + 186, 117, 117, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 128, 128, 128, 128, 128, 128, 118, + 118, 118, 118, 118, 118, 118, 80, 80, 129, 129, + 129, 136, 130, 130, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 125, 125, + 125, 125, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 298, 298, 127, 126, 126, 126, 126, 126, + 126, 126, 75, 75, 75, 75, 75, 217, 217, 217, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 142, 142, 72, 72, 140, 140, 141, + 143, 143, 138, 138, 138, 120, 120, 120, 120, 120, + 120, 120, 120, 122, 122, 122, 144, 144, 145, 145, + 146, 146, 148, 147, 147, 149, 150, 150, 150, 151, + 151, 152, 152, 152, 38, 38, 38, 38, 38, 33, + 33, 33, 33, 34, 34, 34, 87, 87, 87, 87, + 89, 89, 88, 88, 65, 65, 66, 66, 66, 90, + 90, 91, 91, 91, 91, 168, 168, 153, 153, 153, + 160, 160, 160, 156, 156, 158, 158, 158, 159, 159, + 159, 157, 165, 165, 167, 167, 166, 166, 162, 162, + 163, 163, 164, 164, 164, 161, 161, 119, 119, 119, + 119, 119, 169, 169, 169, 169, 175, 175, 132, 132, + 134, 134, 133, 135, 176, 176, 180, 177, 177, 181, + 181, 181, 181, 181, 178, 178, 179, 179, 205, 205, + 205, 185, 185, 196, 196, 193, 193, 194, 194, 187, + 187, 198, 198, 198, 60, 131, 131, 263, 263, 260, + 201, 201, 202, 202, 206, 206, 210, 210, 207, 207, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 294, 295, 215, 216, 216, 216, } var yyR2 = [...]int{ @@ -4968,102 +5075,103 @@ var yyR2 = [...]int{ 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, 1, 1, 0, 1, - 2, 3, 3, 3, 4, 3, 2, 3, 7, 1, - 3, 3, 3, 3, 1, 2, 1, 1, 3, 2, - 3, 3, 2, 5, 7, 9, 8, 7, 8, 1, - 1, 9, 9, 8, 7, 7, 1, 1, 1, 3, - 1, 3, 1, 3, 0, 4, 3, 5, 4, 1, - 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, - 2, 2, 6, 12, 2, 0, 2, 0, 2, 1, - 0, 2, 1, 3, 3, 6, 4, 7, 8, 8, - 8, 6, 3, 1, 1, 4, 0, 1, 1, 1, - 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, - 1, 3, 1, 1, 3, 4, 3, 3, 3, 4, - 9, 0, 2, 0, 2, 3, 3, 4, 2, 3, - 2, 1, 1, 0, 2, 2, 3, 3, 2, 2, - 1, 2, 1, 3, 1, 1, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 2, 2, 2, 2, 4, 4, - 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, - 1, 6, 6, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 3, 0, 5, 0, 3, 5, - 0, 1, 1, 0, 1, 0, 2, 2, 2, 0, - 2, 2, 5, 0, 1, 1, 2, 1, 3, 2, - 3, 0, 1, 4, 3, 3, 4, 2, 0, 2, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, - 1, 1, 3, 3, 3, 1, 3, 1, 7, 5, - 6, 6, 7, 0, 1, 5, 3, 3, 1, 1, - 2, 2, 2, 0, 1, 1, 0, 1, 2, 0, - 1, 1, 3, 2, 1, 2, 3, 3, 4, 4, - 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, + 2, 3, 2, 3, 0, 1, 3, 1, 4, 3, + 3, 4, 3, 2, 3, 4, 3, 4, 2, 7, + 1, 3, 3, 3, 3, 1, 2, 1, 1, 3, + 2, 3, 3, 2, 5, 7, 9, 8, 7, 8, + 1, 1, 10, 10, 9, 8, 8, 1, 1, 1, + 3, 1, 3, 1, 3, 0, 4, 3, 5, 4, + 1, 3, 3, 2, 2, 2, 2, 2, 1, 1, + 1, 2, 2, 6, 12, 2, 0, 2, 0, 2, + 1, 0, 2, 1, 3, 3, 6, 4, 7, 8, + 8, 8, 6, 3, 1, 1, 4, 0, 1, 1, + 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, + 4, 1, 3, 1, 1, 3, 4, 3, 3, 3, + 4, 9, 0, 2, 0, 2, 3, 3, 4, 2, + 3, 2, 1, 1, 0, 2, 2, 3, 3, 2, + 2, 1, 2, 1, 3, 1, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 1, 2, 2, 2, 2, 4, + 4, 2, 2, 3, 3, 3, 3, 1, 1, 1, + 1, 1, 6, 6, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 0, 3, 0, 5, 0, 3, + 5, 0, 1, 1, 0, 1, 0, 2, 2, 2, + 0, 2, 2, 5, 0, 1, 1, 2, 1, 3, + 2, 3, 0, 1, 4, 3, 3, 4, 2, 0, + 2, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 3, 3, 3, 1, 3, 1, 7, + 5, 6, 6, 7, 0, 1, 5, 3, 3, 1, + 1, 2, 2, 2, 0, 1, 1, 0, 1, 2, + 0, 1, 1, 3, 2, 1, 2, 3, 3, 4, + 4, 3, 3, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 4, 5, 0, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 0, 1, 0, 2, 0, 1, 5, 1, 3, - 7, 1, 3, 3, 1, 2, 2, 2, 5, 5, - 5, 6, 6, 5, 5, 2, 2, 2, 2, 3, - 3, 3, 4, 1, 3, 5, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 2, 2, 2, 4, 4, - 2, 11, 3, 6, 8, 6, 6, 6, 13, 8, - 6, 10, 5, 5, 5, 5, 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, 8, 8, 3, 3, 5, 7, 7, - 6, 5, 3, 2, 3, 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, 4, 4, 4, 2, 4, 2, 4, 5, 4, - 4, 4, 4, 4, 3, 3, 3, 5, 2, 3, - 3, 3, 3, 1, 1, 0, 1, 0, 1, 1, - 1, 0, 2, 2, 0, 2, 2, 0, 2, 0, - 1, 1, 2, 1, 1, 2, 1, 1, 5, 0, - 1, 0, 1, 2, 3, 0, 3, 3, 3, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 3, 3, 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, 0, 1, 0, 1, 2, 3, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 2, 3, 5, 0, 1, 2, 1, 1, 0, 1, - 2, 1, 3, 1, 1, 1, 4, 3, 3, 3, - 7, 0, 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, 5, 4, 5, 5, 0, 2, - 1, 3, 3, 3, 2, 3, 1, 2, 0, 3, - 1, 1, 3, 3, 4, 4, 5, 3, 4, 5, - 6, 2, 1, 2, 1, 2, 1, 2, 1, 1, - 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, - 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 4, 5, 0, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 0, 1, 0, 2, 0, 1, 5, 1, + 3, 7, 1, 3, 3, 1, 2, 2, 2, 5, + 5, 5, 6, 6, 5, 5, 2, 2, 2, 2, + 3, 3, 3, 4, 1, 3, 5, 1, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 4, + 4, 2, 11, 3, 6, 8, 6, 6, 6, 13, + 8, 6, 10, 5, 5, 5, 5, 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, 8, 8, 3, 3, 5, 7, + 7, 6, 5, 3, 2, 3, 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, 4, 4, 4, 2, 4, 2, 4, 5, + 4, 4, 4, 4, 4, 3, 3, 3, 5, 2, + 3, 3, 3, 3, 1, 1, 0, 1, 0, 1, + 1, 1, 0, 2, 2, 0, 2, 2, 0, 2, + 0, 1, 1, 2, 1, 1, 2, 1, 1, 5, + 0, 1, 0, 1, 2, 3, 0, 3, 3, 3, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 3, 3, 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, 0, 1, 0, 1, 2, 3, + 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 2, 3, 5, 0, 1, 2, 1, 1, 0, + 1, 2, 1, 3, 1, 1, 1, 4, 3, 3, + 3, 7, 0, 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, 5, 4, 5, 5, 0, + 2, 1, 3, 3, 3, 2, 3, 1, 2, 0, + 3, 1, 1, 3, 3, 4, 4, 5, 3, 4, + 5, 6, 2, 1, 2, 1, 2, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 1, 1, 1, 1, 4, 5, 5, - 6, 4, 4, 6, 6, 6, 8, 8, 8, 8, - 9, 8, 5, 4, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, - 8, 0, 2, 3, 4, 4, 4, 4, 4, 4, - 4, 0, 3, 4, 7, 3, 1, 1, 1, 2, - 3, 3, 1, 2, 2, 1, 2, 1, 2, 2, - 1, 2, 0, 1, 0, 2, 1, 2, 4, 0, - 2, 1, 3, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 0, 3, 0, 2, 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, 0, 3, 3, 3, 0, - 3, 1, 1, 0, 4, 0, 1, 1, 0, 3, - 1, 3, 2, 1, 2, 4, 9, 3, 5, 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, 2, 1, 5, 4, - 4, 1, 3, 3, 5, 0, 5, 1, 3, 1, - 2, 3, 1, 1, 3, 3, 1, 3, 3, 3, - 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 0, 1, 0, 2, 0, 3, 0, 1, - 0, 1, 1, 5, 0, 1, 0, 1, 2, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 1, 1, 1, 1, 4, 5, + 5, 6, 4, 4, 6, 6, 6, 8, 8, 8, + 8, 9, 8, 5, 4, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 8, 8, 0, 2, 3, 4, 4, 4, 4, 4, + 4, 4, 0, 3, 4, 7, 3, 1, 1, 1, + 2, 3, 3, 1, 2, 2, 1, 2, 1, 2, + 2, 1, 2, 0, 1, 0, 2, 1, 2, 4, + 0, 2, 1, 3, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 0, 3, 0, 2, + 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, 0, 3, 3, 3, + 0, 3, 1, 1, 0, 4, 0, 1, 1, 0, + 3, 1, 3, 2, 1, 2, 4, 9, 3, 5, + 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, 2, 1, 5, + 4, 4, 1, 3, 3, 5, 0, 5, 1, 3, + 1, 2, 3, 1, 1, 3, 3, 1, 3, 3, + 3, 3, 3, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, + 1, 0, 1, 1, 5, 0, 1, 0, 1, 2, + 1, 1, 1, 1, 1, 1, 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, @@ -5105,265 +5213,266 @@ var yyR2 = [...]int{ 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, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -288, -1, -5, -10, -11, -12, -13, -14, -15, - -16, -17, -18, -19, -20, -21, -44, -45, -46, -48, - -49, -50, -51, -52, -8, -47, -22, -23, -53, -54, - -55, -56, -57, -3, -2, -7, 7, 8, -65, 10, - 11, 30, -25, -35, 162, -36, -26, 163, -37, 165, - 164, 200, 166, 193, 72, 239, 240, 242, 243, 244, - 245, -66, 198, 199, 168, 34, 43, 31, 32, 35, - 171, -4, 6, -290, 9, 344, 195, 194, 26, -6, - 83, -289, 484, -164, -149, 20, 31, 27, -148, -144, - -73, -149, 18, 16, 5, -58, -293, -58, -58, -58, - -58, -58, -244, -246, 83, 135, 83, -58, -41, -40, - -39, -38, -42, 29, -32, -33, -264, -31, -28, 167, - 164, 208, 104, 105, 200, 201, 202, 166, 184, 199, - 203, 198, 217, -27, 78, 31, 357, 360, -251, 163, - 169, 170, 345, 107, 106, 73, 165, -248, 289, 461, - -42, 463, 97, 99, 462, 42, 174, 464, 465, 466, - 467, 183, 468, 469, 470, 471, 477, 478, 479, 480, - 108, 5, -58, -206, -202, -268, -196, 86, 87, 88, - 354, 186, 388, 389, 233, 78, 39, 289, 461, 239, - 253, 247, 274, 266, 355, 390, 236, 187, 221, 458, - 264, 113, 463, 391, 201, 294, 295, 296, 97, 242, - 331, 476, 238, 392, 474, 99, 462, 77, 49, 42, - 196, 262, 258, 464, 222, 393, 365, 215, 107, 104, - 483, 34, 256, 48, 28, 473, 106, 47, 465, 126, - 394, 466, 298, 279, 452, 46, 299, 202, 395, 81, - 359, 460, 300, 257, 301, 232, 472, 168, 396, 444, - 302, 303, 453, 397, 280, 284, 398, 323, 304, 50, - 399, 400, 454, 105, 401, 76, 467, 251, 252, 402, - 230, 185, 325, 278, 183, 33, 305, 356, 234, 56, - 209, 326, 44, 282, 43, 448, 403, 451, 277, 273, - 51, 404, 405, 406, 407, 468, 276, 250, 272, 482, - 227, 469, 60, 170, 286, 285, 287, 216, 322, 269, - 408, 409, 410, 190, 79, 411, 259, 19, 412, 413, - 306, 223, 414, 54, 415, 416, 329, 199, 417, 52, - 470, 37, 204, 471, 418, 419, 420, 421, 422, 308, - 423, 307, 281, 283, 211, 309, 358, 424, 255, 203, - 475, 425, 191, 459, 205, 208, 198, 330, 192, 426, - 427, 428, 429, 430, 237, 431, 432, 243, 477, 41, - 433, 434, 435, 436, 231, 226, 324, 333, 59, 80, - 291, 437, 457, 249, 224, 438, 240, 53, 478, 479, - 480, 218, 481, 7, 311, 108, 228, 229, 45, 270, - 210, 439, 440, 260, 261, 275, 248, 271, 241, 445, - 212, 312, 200, 441, 332, 225, 292, 362, 217, 313, - 456, 361, 268, 265, 219, 442, 314, 175, 213, 214, - 443, 446, 315, 316, 235, 317, 318, 319, 320, 321, - 220, 360, 246, 263, 293, 173, -58, 173, -106, -202, - 173, -174, 295, -193, 297, 310, 305, 315, 303, -185, - 306, 308, 211, -283, 323, 173, 312, 162, 153, 298, - 307, 316, 317, 235, 318, 321, 220, -279, -268, 466, - 481, 113, 267, 302, 300, 324, 448, 320, 319, -202, - 241, -209, 246, -197, -268, -196, 244, -106, -64, 444, - 166, -211, -211, -75, 448, 450, -126, -89, -112, 119, - -117, 29, 24, -116, -113, -134, -131, -132, 153, 154, - 156, 155, 157, 142, 143, 150, 120, 158, -121, -119, - -120, -122, 90, 89, 98, 91, 92, 93, 94, 100, - 101, 102, -197, -202, -129, -2, 66, 67, 345, 346, - 347, 348, 353, 349, 122, 55, 340, 334, 343, 342, - 341, 338, 339, 336, 337, 351, 352, 178, 335, 172, - 148, 344, -268, -196, -290, 42, 311, 311, -106, -58, - -142, -73, -144, -58, -2, -3, -7, -149, -164, 10, - 137, 40, 48, -147, -148, -6, -2, 6, -290, -89, - 17, 21, 22, -79, 144, -89, -202, -59, -79, -183, - 177, -183, -183, -173, -214, 241, -177, 324, 323, -198, - -175, -197, -195, -174, 322, 167, 363, 118, 23, 25, - 121, 153, 17, 122, 35, 169, 267, 184, 152, 180, - 345, 162, 70, 364, 336, 337, 334, 340, 347, 348, - 335, 297, 29, 11, 366, 26, 194, 22, 36, 146, - 164, 125, 197, 24, 195, 102, 369, 20, 73, 189, - 12, 182, 38, 14, 370, 371, 15, 178, 177, 137, - 174, 68, 9, 158, 27, 134, 64, 372, 115, 373, - 374, 375, 376, 66, 135, 18, 338, 339, 31, 449, - 377, 353, 206, 148, 71, 57, 450, 119, 378, 379, - 100, 380, 103, 74, 455, 116, 16, 69, 40, 381, - 207, 382, 179, 383, 327, 384, 136, 165, 344, 67, - 385, 172, 310, 6, 350, 30, 193, 181, 110, 65, - 386, 173, 124, 351, 352, 176, 101, 5, 114, 32, - 10, 72, 75, 341, 342, 343, 55, 109, 357, 123, - 13, 387, 328, 117, 113, -245, 135, -232, -236, -197, - 188, -261, 184, -106, -254, -253, -197, -74, -192, 174, - 182, 181, 114, -272, 116, 228, 335, 172, -38, -39, - -174, 152, 205, 84, 84, -236, -235, -234, -273, 207, - 188, -260, -252, 180, 189, -242, 181, 182, -237, 174, - 115, -273, -237, 179, 189, 207, 207, 108, 207, 108, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 204, - -243, 127, -243, 361, 361, -248, -273, -273, -273, 176, - 33, 33, -194, -237, 176, 23, -243, -243, -174, 152, - -243, -243, -243, -243, 215, 215, -243, -243, -243, -243, - -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, - -243, 173, -272, -83, 321, 235, 78, -40, 217, -24, - -106, -192, 174, 175, -272, -106, 159, -106, -187, 135, - 13, -187, -184, 311, 309, 296, 301, -187, -187, -187, - -187, 218, 294, -238, 174, 33, 185, 311, 218, 294, - 218, 219, 218, 219, 304, 314, 218, -207, 12, 137, - 335, 299, 303, 211, 173, 212, 175, 313, -268, 451, - 219, -207, 90, -188, 135, 311, 214, -187, -212, -290, - -198, 267, -212, -212, 30, 176, -197, -60, -197, 90, - -9, -5, -13, -12, -14, 127, -81, 311, -69, 153, - 466, 452, 453, 454, 451, 308, 459, 457, 455, 218, - 456, 84, 118, 116, 117, 134, -89, -114, 137, 119, - 135, 136, 121, 139, 138, 149, 142, 143, 144, 145, - 146, 147, 148, 140, 141, 152, 127, 128, 129, 130, - 131, 132, 133, -182, -290, -132, 160, 161, -117, -117, - -117, -117, -117, -117, -117, -117, -117, -117, -290, 159, - -290, -290, -290, -290, -290, -290, -290, -290, -138, -89, - -290, -294, -290, -294, -123, -290, -294, -123, -294, -123, - -294, -294, -123, -294, -123, -294, -294, -123, -290, -290, - -290, -290, -290, -290, -290, -2, -3, -126, -211, -280, - -281, -109, -106, -290, 235, -147, -6, -2, -67, -80, - 61, 62, -82, 22, 36, 65, 63, 21, -291, 85, - -291, -164, -291, 59, 41, 90, 90, -58, -2, 84, - 19, -143, -145, -89, 12, -200, -199, 23, -197, 90, - 159, 96, 12, -107, 27, -106, -91, -93, -94, -95, - -109, -133, -290, 12, -99, -100, -106, -108, -202, 84, - 241, -177, -214, -179, -178, 325, 327, 127, -201, -197, - 90, 29, 85, 84, -106, -216, -219, -221, -220, -222, - -217, -218, 264, 265, 153, 268, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 30, 196, 260, 261, - 262, 263, 280, 281, 282, 283, 284, 285, 286, 287, - 247, 266, 355, 248, 249, 250, 251, 252, 253, 255, - 256, 257, 258, 259, -271, -268, 83, 85, 84, -223, - 83, -83, 173, -268, 174, 174, 174, -58, 344, -243, - -243, 204, -31, -28, -264, 16, -27, -28, 167, 104, - 105, 164, 83, -232, 83, -241, -271, -268, 83, 115, - 179, 114, -240, -237, -240, -241, -268, -134, -197, -202, - -268, 115, 115, -170, -197, -170, -170, 21, -170, 21, - -170, 21, 91, -197, -170, 21, -170, 21, -170, 21, - -170, 21, -170, 21, 29, 76, 77, 29, 79, 80, - 81, -134, -134, -232, -174, -106, -268, 91, 91, -243, - -243, 91, 90, 90, 90, -243, -243, 91, 90, -204, - -202, 90, -274, 190, 232, 234, 91, 91, 91, 91, - 29, 90, -275, 29, 473, 472, 474, 475, 476, 91, - 29, 91, 29, 91, -197, 83, -106, -86, 222, 162, - 164, 167, 74, 90, 236, 127, 42, 84, 176, 173, - -268, -189, 178, -189, -203, -202, -195, 90, -89, -239, - 12, 137, -207, -207, -187, -106, -239, -207, -187, -106, - -187, -187, -187, -187, -207, -207, -207, -187, -202, -202, - -106, -106, -106, -106, -106, -106, -106, -212, -212, -212, - -188, -187, 451, 90, 74, -210, 244, 278, 445, 446, - 447, 84, 357, -99, 451, 451, 451, 451, 451, 451, - -89, -89, -89, -89, -124, 100, 119, 101, 102, -117, - -125, -129, -132, 95, 137, 135, 136, 121, -117, -117, - -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, - -117, -117, -117, -213, -268, 90, 153, -268, -116, -116, - -197, -78, 22, 36, -77, -79, -198, -203, -195, -77, - -77, -89, -89, -134, 90, -77, -134, 90, -77, -77, - -72, 22, 36, -136, -137, 123, -134, -291, -117, -197, - -197, -77, -78, -78, -77, -77, -164, -291, 84, -282, - 327, 328, 449, -205, 207, -204, 23, -127, -126, 90, - 57, -77, -82, 61, 62, -291, 60, 90, -224, -174, - -89, -89, 84, -146, 25, 26, -106, -199, 144, -203, - -106, -169, 207, -106, 30, 84, -102, -104, -103, -105, - 64, 68, 70, 65, 66, 67, 71, -208, 23, -91, - -3, -2, -290, -106, -99, -292, 84, 12, 75, -292, - 84, 159, -177, -179, 84, 326, 328, 329, 74, 103, - -89, -225, 152, -250, -249, -248, -232, -234, -235, -236, - 85, -150, -88, 38, -228, 292, 291, -223, -223, -223, - -223, -223, -224, -224, -224, -224, 83, 83, -223, -223, - -223, -223, -226, 83, -226, -226, -227, 83, -227, -261, - -89, -258, -257, -255, -256, 183, 97, 357, 75, -253, - -146, 91, -86, -190, 178, -259, -256, -268, -268, -268, - -190, -268, 90, -268, 90, 84, 17, -233, -232, -43, - 232, -263, 207, -260, -254, -241, 115, -240, -241, -241, - 159, -268, 84, 27, 108, 108, 108, 108, 357, 164, - 30, -232, -43, -213, 176, -213, -213, 90, 90, -186, - 481, -99, -85, 224, 127, 213, 213, 173, 173, 226, - -106, 237, 238, 236, 21, 225, 227, 229, 215, -106, - -106, -189, 74, -101, -106, 24, -202, -106, -187, -187, - -106, -187, -187, -106, -197, -69, 327, 357, 20, -70, - 20, 100, 101, 102, -125, -117, -117, -117, -76, 197, - 118, -291, -291, -77, -77, 84, -290, 159, -291, -291, - 84, 75, 23, 12, 12, -291, 12, 12, -291, -291, - -77, -139, -137, 125, -89, -291, -291, 84, 84, -291, - -291, -291, -291, -291, -281, 448, 328, -110, 72, 177, - 73, -290, -204, -291, -118, -197, 91, 94, -149, -90, - -92, 12, -82, -224, -153, -158, -184, -268, 90, 153, - -145, 159, -111, 13, -115, 30, 55, -5, -290, -290, - -172, -176, -134, -93, -94, -94, -93, -94, 64, 64, - 64, 69, 64, 69, 64, -103, -202, -291, -291, -3, - -169, 75, -91, -106, -91, -108, -202, 144, -178, -180, - 330, 327, 333, -268, 90, 84, -248, -236, -287, 100, - 119, 29, 74, 289, 97, -285, -286, 179, 114, 115, - 191, 23, 39, -229, 293, -224, -224, -225, -225, -225, - -225, -231, 90, -231, 91, 91, 85, -34, -29, -30, - 31, 78, -255, -243, 90, 37, -197, 85, -85, -106, - 119, 74, -259, -259, -259, -202, 16, -166, -197, 84, - 85, -135, 233, 85, -197, 85, 83, -241, -241, -198, - -197, -290, 173, 29, 29, -43, -135, -225, -268, 483, - 482, 85, 175, 231, -87, 340, 90, 86, -106, -106, - -106, -106, -106, 167, 164, 216, 176, -99, -106, 84, - -63, 192, 187, -207, -207, 31, 327, 460, 458, -76, - 118, -117, -117, -291, -291, -79, -78, -198, -215, 153, - 264, 196, 262, 258, 278, 269, 291, 260, 292, -213, - -215, -117, -117, -117, -117, 354, -142, 126, -89, 124, - -117, -117, 174, 174, 174, -170, -181, 20, 12, 55, - 55, -90, -111, -91, -82, -156, 444, -161, 44, -159, - -160, 45, -157, 46, 54, 144, -147, -89, -171, 74, - -172, -128, -130, -129, -290, -165, -291, -197, -170, -111, - 84, 127, -97, -96, 74, 75, -98, 74, -96, 64, - 64, -167, 83, -291, -111, -91, -111, -111, 159, 327, - 331, 332, -248, 100, -117, 10, 90, 115, 115, -106, - 83, -225, -225, 85, 84, 85, 84, 85, 84, -191, - 394, 119, -30, -29, -243, -243, 91, -268, 175, 24, - -106, 74, 74, 74, 17, 84, -232, -134, 55, -258, - -166, -262, -263, -106, -116, -135, -106, -84, 222, 230, - 83, 87, -270, 75, 213, 289, 213, -106, -63, -34, - -106, -187, -187, 31, -268, -117, -291, -291, -223, -223, - -223, -227, -223, 252, -223, 252, -291, -291, 20, 20, - 20, 20, -290, -68, 350, -89, 84, 84, -290, -290, - -290, -291, -106, -111, -140, 14, -153, 49, 270, -163, - -162, 53, 45, -160, 17, 47, 17, 28, -171, 84, - -291, -291, 84, 55, 159, -291, -142, -176, -89, -89, - 83, -89, -166, -142, -111, -120, 83, -117, -224, 90, - -224, 91, 91, 394, 29, 79, 80, 81, 29, 76, - 77, -106, -106, -106, -106, -166, -197, 209, 85, -291, - 84, -230, 357, 360, -167, 85, -267, 357, -269, -268, - -197, -197, -197, -224, -268, -117, -117, -117, -117, -117, - -147, 90, -117, -117, -168, -291, -197, 179, -168, -168, - -205, -140, -141, 15, 17, -154, 51, -152, 50, -152, - -162, 17, 17, 90, 17, 90, 115, -130, 55, -5, - -197, -128, -197, -147, -166, 85, -147, -166, 85, -225, - -225, 85, 85, -167, 210, -286, -263, 361, 361, 23, - -266, -265, -198, 83, 75, -291, -291, -291, -291, -71, - 137, 357, -291, -291, -291, 84, -291, -291, -291, -110, - -141, -89, -126, -155, 52, 74, 103, 90, 90, 90, - 10, -128, 159, 85, 85, -151, 23, -290, -5, 84, - 127, -166, -106, -291, 355, 71, 358, -197, 179, 74, - 103, -172, -197, -277, -278, 74, -287, -284, 100, 119, - 97, -285, 109, 110, -5, -117, 206, -61, 357, -265, - -247, -198, 90, 91, 85, 60, 356, 359, -278, 74, - 11, 10, 100, 90, -61, -291, -291, -62, 221, 448, - -270, 60, -276, 192, 187, 190, 30, -276, 184, -267, - 357, 186, 29, 100, 223, 358, 359, + -1000, -292, -1, -5, -10, -11, -12, -13, -14, -15, + -16, -17, -18, -19, -20, -21, -48, -49, -50, -52, + -53, -54, -55, -56, -8, -51, -22, -23, -57, -58, + -59, -60, -61, -3, -2, -7, 7, 8, -69, -24, + 30, -29, -39, 162, -40, -30, 163, -41, 165, 164, + 200, 166, 193, 72, 239, 240, 242, 243, 244, 245, + -70, 198, 199, 168, 34, 43, 31, 32, 35, 171, + -4, -25, 6, -294, 9, 344, 195, 194, 26, -6, + 357, 83, -293, 484, -168, -153, 20, 31, 27, -152, + -148, -77, -153, 18, 16, 5, -62, -297, -62, -62, + 10, 11, -62, -248, -250, 83, 135, 83, -62, -45, + -44, -43, -42, -46, 29, -36, -37, -268, -35, -32, + 167, 164, 208, 104, 105, 200, 201, 202, 166, 184, + 199, 203, 198, 217, -31, 78, 31, 357, 360, -255, + 163, 169, 170, 345, 107, 106, 73, 165, -252, 289, + 461, -46, 463, 97, 99, 462, 42, 174, 464, 465, + 466, 467, 183, 468, 469, 470, 471, 477, 478, 479, + 480, 108, 5, -62, -210, -206, -272, -200, 86, 87, + 88, 354, 186, 388, 389, 233, 78, 39, 289, 461, + 239, 253, 247, 274, 266, 355, 390, 236, 187, 221, + 458, 264, 113, 463, 391, 201, 294, 295, 296, 97, + 242, 331, 476, 238, 392, 474, 99, 462, 77, 49, + 42, 196, 262, 258, 464, 222, 393, 365, 215, 107, + 104, 483, 34, 256, 48, 28, 473, 106, 47, 465, + 126, 394, 466, 298, 279, 452, 46, 299, 202, 395, + 81, 359, 460, 300, 257, 301, 232, 472, 168, 396, + 444, 302, 303, 453, 397, 280, 284, 398, 323, 304, + 50, 399, 400, 454, 105, 401, 76, 467, 251, 252, + 402, 230, 185, 325, 278, 183, 33, 305, 356, 234, + 56, 209, 326, 44, 282, 43, 448, 403, 451, 277, + 273, 51, 404, 405, 406, 407, 468, 276, 250, 272, + 482, 227, 469, 60, 170, 286, 285, 287, 216, 322, + 269, 408, 409, 410, 190, 79, 411, 259, 19, 412, + 413, 306, 223, 414, 54, 415, 416, 329, 199, 417, + 52, 470, 37, 204, 471, 418, 419, 420, 421, 422, + 308, 423, 307, 281, 283, 211, 309, 358, 424, 255, + 203, 475, 425, 191, 459, 205, 208, 198, 330, 192, + 426, 427, 428, 429, 430, 237, 431, 432, 243, 477, + 41, 433, 434, 435, 436, 231, 226, 324, 333, 59, + 80, 291, 437, 457, 249, 224, 438, 240, 53, 478, + 479, 480, 218, 481, 7, 311, 108, 228, 229, 45, + 270, 210, 439, 440, 260, 261, 275, 248, 271, 241, + 445, 212, 312, 200, 441, 332, 225, 292, 362, 217, + 313, 456, 361, 268, 265, 219, 442, 314, 175, 213, + 214, 443, 446, 315, 316, 235, 317, 318, 319, 320, + 321, 220, 360, 246, 263, 293, 173, -62, 173, -110, + -206, 173, -178, 295, -197, 297, 310, 305, 315, 303, + -189, 306, 308, 211, -287, 323, 173, 312, 162, 153, + 298, 307, 316, 317, 235, 318, 321, 220, -283, -272, + 466, 481, 113, 267, 302, 300, 324, 448, 320, 319, + -206, 241, -213, 246, -201, -272, -200, 244, -110, -68, + 444, 166, -215, -215, -79, 448, 450, -130, -93, -116, + 119, -121, 29, 24, -120, -117, -138, -135, -136, 153, + 154, 156, 155, 157, 142, 143, 150, 120, 158, -125, + -123, -124, -126, 90, 89, 98, 91, 92, 93, 94, + 100, 101, 102, -201, -206, -133, -2, 66, 67, 345, + 346, 347, 348, 353, 349, 122, 55, 340, 334, 343, + 342, 341, 338, 339, 336, 337, 351, 352, 178, 335, + 172, 148, 344, -272, -200, -294, 42, 311, 311, -110, + -62, -146, -77, -148, -4, -2, -294, 6, -62, -2, + -3, -7, -25, -27, 384, -26, -206, -153, -168, 10, + 137, 40, 48, -151, -152, -6, -2, -93, 17, 21, + 22, -83, 144, -93, -206, -63, -83, -187, 177, -62, + -62, -177, -218, 241, -181, 324, 323, -202, -179, -201, + -199, -178, 322, 167, 363, 118, 23, 25, 121, 153, + 17, 122, 35, 169, 267, 184, 152, 180, 345, 162, + 70, 364, 336, 337, 334, 340, 347, 348, 335, 297, + 29, 11, 366, 26, 194, 22, 36, 146, 164, 125, + 197, 24, 195, 102, 369, 20, 73, 189, 12, 182, + 38, 14, 370, 371, 15, 178, 177, 137, 174, 68, + 9, 158, 27, 134, 64, 372, 115, 373, 374, 375, + 376, 66, 135, 18, 338, 339, 31, 449, 377, 353, + 206, 148, 71, 57, 450, 119, 378, 379, 100, 380, + 103, 74, 455, 116, 16, 69, 40, 381, 207, 382, + 179, 383, 327, 384, 136, 165, 344, 67, 385, 172, + 310, 6, 350, 30, 193, 181, 110, 65, 386, 173, + 124, 351, 352, 176, 101, 5, 114, 32, 10, 72, + 75, 341, 342, 343, 55, 109, 357, 123, 13, 387, + 328, 117, 113, -249, 135, -236, -240, -201, 188, -265, + 184, -110, -258, -257, -201, -78, -196, 174, 182, 181, + 114, -276, 116, 228, 335, 172, -42, -43, -178, 152, + 205, 84, 84, -240, -239, -238, -277, 207, 188, -264, + -256, 180, 189, -246, 181, 182, -241, 174, 115, -277, + -241, 179, 189, 207, 207, 108, 207, 108, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 204, -247, 127, + -247, 361, 361, -252, -277, -277, -277, 176, 33, 33, + -198, -241, 176, 23, -247, -247, -178, 152, -247, -247, + -247, -247, 215, 215, -247, -247, -247, -247, -247, -247, + -247, -247, -247, -247, -247, -247, -247, -247, -247, 173, + -276, -87, 321, 235, 78, -44, 217, -28, -110, -196, + 174, 175, -276, -110, 159, -110, -191, 135, 13, -191, + -188, 311, 309, 296, 301, -191, -191, -191, -191, 218, + 294, -242, 174, 33, 185, 311, 218, 294, 218, 219, + 218, 219, 304, 314, 218, -211, 12, 137, 335, 299, + 303, 211, 173, 212, 175, 313, -272, 451, 219, -211, + 90, -192, 135, 311, 214, -191, -216, -294, -202, 267, + -216, -216, 30, 176, -201, -64, -201, 90, -9, -5, + -13, -12, -14, 127, -85, 311, -73, 153, 466, 452, + 453, 454, 451, 308, 459, 457, 455, 218, 456, 84, + 118, 116, 117, 134, -93, -118, 137, 119, 135, 136, + 121, 139, 138, 149, 142, 143, 144, 145, 146, 147, + 148, 140, 141, 152, 127, 128, 129, 130, 131, 132, + 133, -186, -294, -136, 160, 161, -121, -121, -121, -121, + -121, -121, -121, -121, -121, -121, -294, 159, -294, -294, + -294, -294, -294, -294, -294, -294, -142, -93, -294, -298, + -294, -298, -127, -294, -298, -127, -298, -127, -298, -298, + -127, -298, -127, -298, -298, -127, -294, -294, -294, -294, + -294, -294, -294, -2, -3, -130, -215, -284, -285, -113, + -110, -294, 235, -151, -6, -2, -146, -152, -148, -2, + -62, -71, -84, 61, 62, -86, 22, 36, 65, 63, + 21, -295, 85, -295, -168, -295, 84, -27, -171, 83, + 59, 41, 90, 90, 84, 19, -147, -149, -93, 12, + -204, -203, 23, -201, 90, 159, 96, 12, -111, 27, + -110, -187, -187, 84, 241, -181, -218, -183, -182, 325, + 327, 127, -205, -201, 90, 29, 85, 84, -110, -220, + -223, -225, -224, -226, -221, -222, 264, 265, 153, 268, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 30, 196, 260, 261, 262, 263, 280, 281, 282, 283, + 284, 285, 286, 287, 247, 266, 355, 248, 249, 250, + 251, 252, 253, 255, 256, 257, 258, 259, -275, -272, + 83, 85, 84, -227, 83, -87, 173, -272, 174, 174, + 174, -62, 344, -247, -247, 204, -35, -32, -268, 16, + -31, -32, 167, 104, 105, 164, 83, -236, 83, -245, + -275, -272, 83, 115, 179, 114, -244, -241, -244, -245, + -272, -138, -201, -206, -272, 115, 115, -174, -201, -174, + -174, 21, -174, 21, -174, 21, 91, -201, -174, 21, + -174, 21, -174, 21, -174, 21, -174, 21, 29, 76, + 77, 29, 79, 80, 81, -138, -138, -236, -178, -110, + -272, 91, 91, -247, -247, 91, 90, 90, 90, -247, + -247, 91, 90, -208, -206, 90, -278, 190, 232, 234, + 91, 91, 91, 91, 29, 90, -279, 29, 473, 472, + 474, 475, 476, 91, 29, 91, 29, 91, -201, 83, + -110, -90, 222, 162, 164, 167, 74, 90, 236, 127, + 42, 84, 176, 173, -272, -193, 178, -193, -207, -206, + -199, 90, -93, -243, 12, 137, -211, -211, -191, -110, + -243, -211, -191, -110, -191, -191, -191, -191, -211, -211, + -211, -191, -206, -206, -110, -110, -110, -110, -110, -110, + -110, -216, -216, -216, -192, -191, 451, 90, 74, -214, + 244, 278, 445, 446, 447, 84, 357, -103, -110, 451, + 451, 451, 451, 451, 451, -93, -93, -93, -93, -128, + 100, 119, 101, 102, -121, -129, -133, -136, 95, 137, + 135, 136, 121, -121, -121, -121, -121, -121, -121, -121, + -121, -121, -121, -121, -121, -121, -121, -121, -217, -272, + 90, 153, -272, -120, -120, -201, -82, 22, 36, -81, + -83, -202, -207, -199, -81, -81, -93, -93, -138, 90, + -81, -138, 90, -81, -81, -76, 22, 36, -140, -141, + 123, -138, -295, -121, -201, -201, -81, -82, -82, -81, + -81, -168, -295, 84, -286, 327, 328, 449, -209, 207, + -208, 23, -131, -130, 90, -151, -151, 61, 62, 57, + -81, -86, -295, -26, 23, -170, -201, 60, 90, -228, + -178, -93, -93, 84, -150, 25, 26, -110, -203, 144, + -207, -110, -173, 207, -110, -95, -97, -98, -99, -113, + -137, -294, 12, -103, -104, -112, -206, -181, -183, 84, + 326, 328, 329, 74, 103, -93, -229, 152, -254, -253, + -252, -236, -238, -239, -240, 85, -154, -92, 38, -232, + 292, 291, -227, -227, -227, -227, -227, -228, -228, -228, + -228, 83, 83, -227, -227, -227, -227, -230, 83, -230, + -230, -231, 83, -231, -265, -93, -262, -261, -259, -260, + 183, 97, 357, 75, -257, -150, 91, -90, -194, 178, + -263, -260, -272, -272, -272, -194, -272, 90, -272, 90, + 84, 17, -237, -236, -47, 232, -267, 207, -264, -258, + -245, 115, -244, -245, -245, 159, -272, 84, 27, 108, + 108, 108, 108, 357, 164, 30, -236, -47, -217, 176, + -217, -217, 90, 90, -190, 481, -103, -89, 224, 127, + 213, 213, 173, 173, 226, -110, 237, 238, 236, 21, + 225, 227, 229, 215, -110, -110, -193, 74, -105, -110, + 24, -206, -110, -191, -191, -110, -191, -191, -110, -201, + -73, 327, 84, 357, 20, -74, 20, 100, 101, 102, + -129, -121, -121, -121, -80, 197, 118, -295, -295, -81, + -81, 84, -294, 159, -295, -295, 84, 75, 23, 12, + 12, -295, 12, 12, -295, -295, -81, -143, -141, 125, + -93, -295, -295, 84, 84, -295, -295, -295, -295, -295, + -285, 448, 328, -114, 72, 177, 73, -294, -208, -295, + -122, -201, 91, 94, -153, -94, -96, 12, -86, -136, + 85, 84, -228, -157, -162, -188, -272, 90, 153, -149, + 159, -115, 13, -119, 30, 55, -5, -294, -294, 30, + 84, -106, -108, -107, -109, 64, 68, 70, 65, 66, + 67, 71, -212, 23, -95, -3, -2, -294, -110, -103, + -296, 12, 75, -296, 84, 159, -182, -184, 330, 327, + 333, -272, 90, 84, -252, -240, -291, 100, 119, 29, + 74, 289, 97, -289, -290, 179, 114, 115, 191, 23, + 39, -233, 293, -228, -228, -229, -229, -229, -229, -235, + 90, -235, 91, 91, 85, -38, -33, -34, 31, 78, + -259, -247, 90, 37, -201, 85, -89, -110, 119, 74, + -263, -263, -263, -206, 16, -170, 84, 85, -139, 233, + 85, -201, 85, 83, -245, -245, -202, -201, -294, 173, + 29, 29, -47, -139, -229, -272, 483, 482, 85, 175, + 231, -91, 340, 90, 86, -110, -110, -110, -110, -110, + 167, 164, 216, 176, -103, -110, 84, -67, 192, 187, + -211, -211, 31, -110, 327, 460, 458, -80, 118, -121, + -121, -295, -295, -83, -82, -202, -219, 153, 264, 196, + 262, 258, 278, 269, 291, 260, 292, -217, -219, -121, + -121, -121, -121, 354, -146, 126, -93, 124, -121, -121, + 174, 174, 174, -174, -185, 20, 12, 55, 55, -94, + -115, -95, -86, -201, -160, 444, -165, 44, -163, -164, + 45, -161, 46, 54, 144, -151, -93, -175, 74, -176, + -180, -138, -132, -134, -133, -294, -169, -295, -201, -174, + -176, -97, -98, -98, -97, -98, 64, 64, 64, 69, + 64, 69, 64, -107, -206, -295, -295, -3, -173, 75, + -95, -95, -112, -206, 144, 327, 331, 332, -252, 100, + -121, 10, 90, 115, 115, -110, 83, -229, -229, 85, + 84, 85, 84, 85, 84, -195, 394, 119, -34, -33, + -247, -247, 91, -272, 175, 24, -110, 74, 74, 74, + 17, -236, -138, 55, -262, -170, -266, -267, -110, -120, + -139, -110, -88, 222, 230, 83, 87, -274, 75, 213, + 289, 213, -110, -67, -38, -110, -191, -191, 31, -272, + -121, -295, -295, -227, -227, -227, -231, -227, 252, -227, + 252, -295, -295, 20, 20, 20, 20, -294, -72, 350, + -93, 84, 84, -294, -294, -294, -295, -110, -115, -144, + 14, -157, 49, 270, -167, -166, 53, 45, -164, 17, + 47, 17, 28, -175, 84, 127, 84, -295, -295, 84, + 55, 159, -295, -115, -101, -100, 74, 75, -102, 74, + -100, 64, 64, -171, -295, -115, -95, -115, -115, 159, + -124, 83, -121, -228, 90, -228, 91, 91, 394, 29, + 79, 80, 81, 29, 76, 77, -110, -110, -110, -110, + -170, 209, 85, -295, 84, -234, 357, 360, -171, 85, + -271, 357, -273, -272, -201, -201, -201, -228, -272, -121, + -121, -121, -121, -121, -151, 90, -121, -121, -172, -295, + -201, 179, -172, -172, -209, -144, -145, 15, 17, -158, + 51, -156, 50, -156, -166, 17, 17, 90, 17, 90, + 115, -180, -93, -134, 55, -5, -201, -132, -201, -146, + -93, 83, -93, -146, -115, -170, 85, -229, -229, 85, + 85, -171, 210, -290, -267, 361, 361, 23, -270, -269, + -202, 83, 75, -295, -295, -295, -295, -75, 137, 357, + -295, -295, -295, 84, -295, -295, -295, -114, -145, -93, + -130, -159, 52, 74, 103, 90, 90, 90, 10, -132, + 159, -151, -170, -151, 85, -155, 23, -294, -5, 84, + 127, -170, -110, -295, 355, 71, 358, -201, 179, 74, + 103, -176, -201, 85, -281, -282, 74, -291, -288, 100, + 119, 97, -289, 109, 110, -5, -121, 206, -65, 357, + -269, -251, -202, 90, 91, 85, 60, 356, 359, -282, + 74, 11, 10, 100, 90, -65, -295, -295, -66, 221, + 448, -274, 60, -280, 192, 187, 190, 30, -280, 184, + -271, 357, 186, 29, 100, 223, 358, 359, } var yyDef = [...]int{ - 34, -2, 2, 4, 5, 6, 7, 8, 9, 10, + -2, -2, 2, 4, 5, 6, 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, 54, 56, 57, 590, 590, 590, 590, - 590, 590, 0, 0, 590, -2, -2, 590, 995, 0, - 590, 0, 0, -2, 523, 524, 0, 526, -2, 0, - 0, 535, 1415, 1415, 585, 0, 0, 0, 0, 0, - 590, 859, 590, 0, 69, 70, 541, 542, 543, 49, - 1413, 1, 3, 55, 59, 0, 0, 0, 46, 868, - 0, 62, 0, 0, 594, 0, 592, 0, 978, 978, - 978, 0, 100, 101, 0, 0, 0, -2, 104, -2, - 128, 129, 0, 133, 397, 358, 400, 356, 386, -2, - 349, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 361, 251, 251, 0, 0, -2, 349, - 349, 349, 0, 0, 0, 383, 980, 304, 251, 251, - 0, 251, 251, 251, 251, 0, 0, 251, 251, 251, - 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, - 251, 251, 885, 132, 996, 993, 994, 35, 36, 37, - 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, - 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, + 31, 32, 33, 65, 67, 68, 601, 601, 601, 0, + 601, 0, 0, 601, -2, -2, 601, 1006, 0, 601, + 0, 0, -2, 534, 535, 0, 537, -2, 0, 0, + 546, 1426, 1426, 596, 0, 0, 0, 0, 0, 601, + 870, 45, 601, 0, 80, 81, 552, 553, 554, 60, + 0, 1424, 1, 3, 66, 70, 0, 0, 0, 53, + 879, 0, 73, 0, 0, 605, 0, 603, 0, 989, + 601, 601, 0, 111, 112, 0, 0, 0, -2, 115, + -2, 139, 140, 0, 144, 408, 369, 411, 367, 397, + -2, 360, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 372, 262, 262, 0, 0, -2, + 360, 360, 360, 0, 0, 0, 394, 991, 315, 262, + 262, 0, 262, 262, 262, 262, 0, 0, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 896, 143, 1007, 1004, 1005, 35, 36, + 37, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, @@ -5389,193 +5498,196 @@ var yyDef = [...]int{ 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, - 1408, 1409, 1410, 1411, 1412, 0, 972, 0, 453, 680, - 0, 514, 514, 0, 514, 514, 514, 514, 0, 0, - 0, 465, 0, 0, 0, 0, 511, 0, 0, 484, - 486, 0, 511, 0, 517, 0, 498, 514, 1416, 1416, - 1416, 963, 0, 508, 506, 520, 521, 503, 504, 522, - 525, 0, 530, 533, 989, 990, 0, 548, 0, 1217, - 540, 553, 554, 0, 586, 587, 40, 731, 690, 0, - 696, 698, 0, 733, 734, 735, 736, 737, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 763, 764, - 765, 766, 844, 845, 846, 847, 848, 849, 850, 851, - 700, 701, 841, 0, 952, 730, 0, 0, 0, 0, - 0, 0, 0, 0, 832, 0, 801, 801, 801, 801, - 801, 801, 801, 801, 801, 0, 0, 0, 0, 0, - 0, 0, -2, -2, 0, 1415, 0, 563, 0, 0, - 868, 0, 860, -2, 0, 0, 0, 61, 60, 904, - 0, 0, 0, 47, 869, 51, 53, 590, 0, 870, - 0, 595, 596, 0, 619, 623, 0, 591, 0, 0, - 979, 0, 0, 86, 0, 1376, 956, -2, -2, 0, - 0, 991, 992, 965, -2, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, - 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, - 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, - 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 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, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, - 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, - 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, - 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, - 1134, 1135, 1136, 1137, -2, 0, 0, 142, 143, 0, - 38, 277, 0, 138, 0, 271, 223, 885, 0, 0, - 0, 0, 0, 590, 0, 973, 123, 124, 130, 131, - 251, 251, 0, 132, 132, 365, 366, 367, 0, 0, - -2, 275, 0, 350, 0, 0, 265, 265, 269, 267, - 268, 0, 0, 0, 0, 0, 0, 377, 0, 378, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, - 0, 252, 0, 395, 396, 305, 0, 0, 0, 0, - 375, 376, 0, 0, 981, 982, 0, 0, 251, 251, - 0, 0, 0, 0, 251, 251, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 122, 898, 0, 0, 0, -2, 0, 445, - 0, 0, 0, 974, 974, 452, 0, 454, 455, 0, - 0, 456, 0, 511, 511, 509, 510, 458, 459, 460, - 461, 514, 0, 0, 260, 261, 262, 511, 514, 0, - 514, 514, 514, 514, 511, 511, 511, 514, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1416, 1416, 1416, - 517, 514, 0, 494, 0, 495, 496, 499, 500, 1417, - 1418, 1010, 501, 502, 964, 531, 534, 551, 549, 550, - 552, 544, 545, 546, 547, 0, 565, 566, 571, 0, - 0, 0, 0, 577, 578, 579, 0, 0, 582, 583, - 584, 0, 0, 0, 0, 0, 694, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 718, 719, 720, 721, - 722, 723, 724, 697, 0, 711, 0, 0, 753, 754, - 755, 756, 757, 758, 759, 760, 761, 0, 603, 0, - 0, 0, 0, 0, 0, 0, 0, 600, 0, 833, - 0, 784, 0, 785, 793, 0, 786, 794, 787, 795, - 788, 789, 796, 790, 797, 791, 792, 798, 0, 0, - 0, 603, 603, 0, 0, 730, 0, 0, 41, 555, - 556, 0, 663, 984, 0, 45, 50, 52, 0, 0, - -2, -2, 606, 612, 613, 614, 615, 616, 42, 1414, - 43, 0, 58, 0, 0, 235, 907, 605, 0, 0, - 0, 861, 862, 865, 0, 620, 624, 0, 626, 627, - 0, 593, 0, 84, 0, 679, 0, 631, 633, 634, - 635, 661, 0, 0, 0, 0, 80, 82, 680, 0, - 1376, 962, 0, 88, 89, 0, 0, 0, 239, 967, - 968, 969, -2, 258, 0, -2, 230, 174, 175, 176, - 223, 178, 223, 223, 223, 223, 235, 235, 235, 235, - 206, 207, 208, 209, 210, 0, 0, 193, 223, 223, - 223, 223, 213, 214, 215, 216, 217, 218, 219, 220, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 225, - 225, 225, 227, 227, 0, 39, 0, 243, 0, 865, - 0, 898, 976, 986, 0, 0, 0, 976, 106, 0, - 0, 398, 359, 387, 399, 0, 362, 363, -2, 0, - 0, 349, 0, 351, 0, 259, 0, -2, 0, 269, - 0, 265, 269, 266, 269, 257, 270, 379, 841, 0, - 380, 381, 0, 417, 649, 0, 0, 0, 0, 0, - 423, 424, 425, 0, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 388, 389, 390, 391, 392, 393, - 394, 0, 0, 351, 0, 384, 0, 306, 307, 0, - 0, 310, 311, 312, 313, 0, 0, 316, 317, 318, - 666, 667, 319, 343, 344, 345, 320, 321, 322, 323, - 324, 325, 326, 337, 338, 339, 340, 341, 342, 327, - 328, 329, 330, 331, 334, 0, 116, 889, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, - 0, 0, 0, 0, 681, 997, 998, 515, 516, 0, - 263, 264, 514, 514, 462, 485, 0, 514, 466, 487, - 467, 469, 468, 470, 489, 490, 514, 473, 512, 513, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 491, 492, 493, 518, 0, 0, 532, 536, 537, 538, - 539, 0, 0, 568, 573, 574, 575, 576, 588, 581, - 732, 691, 692, 693, 695, 712, 0, 714, 716, 702, - 703, 727, 728, 729, 0, 0, 0, 0, 725, 707, - 0, 738, 739, 740, 741, 742, 743, 744, 745, 746, - 747, 748, 749, 752, 816, 817, 818, 0, 750, 751, - 762, 0, 0, 0, 604, 617, 842, 0, -2, 0, - 0, 0, 0, 735, 844, 0, 735, 844, 0, 0, - 0, 601, 602, 839, 836, 0, 0, 802, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 951, 0, 558, - 559, 561, 0, 683, 0, 664, 0, 0, 985, 564, - 0, 628, 607, 610, 611, 44, 905, 235, 927, 0, - 871, 872, 0, 864, 866, 867, 63, 625, 621, 0, - 688, 0, 0, 678, 0, 0, 0, 0, 0, 0, - 668, 0, 0, 671, 0, 0, 0, 0, 662, 0, - 0, 0, 0, -2, 0, 0, 0, 76, 77, 0, - 0, 0, 957, 87, 0, 0, 92, 93, 958, 959, - 960, 961, 0, 125, -2, 301, 144, 146, 147, 148, - 139, 283, 0, 0, 233, 231, 232, 177, 235, 235, - 200, 201, 239, 239, 239, 239, 0, 0, 194, 195, - 196, 197, 188, 0, 189, 190, 191, 0, 192, 276, - 0, 873, 244, 245, 247, 251, 0, 0, 0, 272, - 273, 0, 889, 0, 0, 0, 987, 986, 986, 986, - 0, 134, 135, 136, 137, 132, 0, 0, 140, 353, - 352, 0, 0, 274, 0, 0, 269, 269, 254, 255, - 0, 382, 0, 0, 419, 420, 421, 422, 0, 0, - 0, 351, 353, 239, 0, 308, 309, 314, 315, 332, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 412, 413, 414, 415, 886, 887, 888, 0, 0, - 446, 0, 0, 293, 78, 975, 451, 511, 472, 488, - 511, 464, 471, 497, 528, 572, 0, 0, 0, 580, - 0, 713, 715, 717, 704, 725, 708, 0, 705, 0, - 0, 699, 767, 0, 0, 0, 603, 0, 771, 772, - 0, 0, 0, 0, 0, 809, 0, 0, 810, 0, - 859, 0, 837, 0, 0, 783, 803, 0, 0, 804, - 805, 806, 807, 808, 557, 560, 562, 639, 0, 0, - 0, 0, 665, 983, 0, 852, 0, 0, 628, 688, - 629, 0, 608, 909, 908, 921, 934, 236, 237, 238, - 863, 0, 868, 0, 945, 0, 0, 937, 0, 0, - 688, 953, 0, 632, 657, 659, 0, 654, 669, 670, - 672, 0, 674, 0, 676, 677, 641, 637, 638, 0, - 688, 0, 688, 81, 688, 83, 0, 682, 90, 91, - 0, 0, 97, 240, 241, 132, 303, 145, 149, 154, - 0, 0, 0, 158, 0, 160, 284, 0, 170, 172, - 0, 0, 152, 173, 234, 239, 239, 202, 203, 204, - 205, 0, 221, 0, 0, 0, 296, 102, 877, 876, - 251, 251, 246, 0, 249, 0, 988, 224, 0, 115, - 0, 0, 0, 0, 0, 121, 0, 357, 643, 0, - 368, 369, 0, 416, 0, 243, 0, 253, 256, 842, - 650, 0, 0, 370, 0, 353, 373, 374, 385, 335, - 336, 333, 0, 0, 899, 900, 0, 903, 107, 405, - 407, 406, 410, 0, 0, 403, 0, 293, 873, 0, - 450, 294, 295, 514, 514, 567, 0, 570, 0, 706, - 0, 726, 709, 768, 769, 618, 0, 843, 0, 223, - 223, 822, 223, 227, 825, 223, 827, 223, 830, 0, - 0, 0, 0, 0, 0, 0, 834, 782, 840, 0, - 0, 0, 0, 0, 0, 0, 0, 970, 971, 853, - 854, 688, 855, 630, 609, 927, 0, 920, 0, -2, - 929, 0, 0, 0, 935, 622, 64, 689, 67, 0, - 945, 936, 947, 949, 0, 0, 0, 941, 0, 859, - 0, 0, 651, 658, 0, 0, 652, 0, 653, 673, - 675, 636, 0, -2, 859, 688, 74, 75, 0, 94, - 95, 96, 302, 155, 156, 0, 159, 169, 171, 0, - 0, 198, 199, 235, 0, 235, 0, 228, 0, 285, - 297, 0, 874, 875, 0, 0, 248, 250, 0, 977, - 117, 0, 0, 0, 0, 0, 141, 354, 0, 242, - 0, 0, 441, 438, 371, 372, 641, 890, 891, 892, - 0, 902, 110, 0, 0, 0, 0, 447, 448, 449, - 79, 457, 463, 569, 589, 710, 770, 773, 819, 235, - 823, 824, 826, 828, 829, 831, 775, 774, 0, 0, - 0, 0, 0, 868, 0, 838, 0, 0, 0, 0, - 0, 663, 48, 855, 857, 0, 914, 912, 912, 922, - 923, 0, 0, 930, 0, 0, 0, 0, 68, 0, - 950, 0, 0, 0, 0, 85, 868, 954, 955, 655, - 0, 660, 0, 868, 73, 157, 0, 0, 239, 222, - 239, 0, 0, 298, 878, 879, 880, 881, 882, 883, - 884, 641, 118, 119, 120, 360, 644, 0, 0, 418, - 0, 426, 0, 0, 0, 901, 404, 0, 108, 109, - 0, 0, 409, 820, 821, 0, 0, 0, 0, 811, - 0, 835, 0, 0, 0, 685, 645, 646, 0, 0, - 683, 857, 66, 0, 0, 917, 0, 910, 913, 911, - 924, 0, 0, 931, 0, 933, 0, 948, 0, 940, - 943, 939, 942, 71, 0, 642, 72, 0, 163, 211, - 212, 226, 229, 0, 0, 278, 442, 439, 440, 0, - 111, 112, 0, 0, 0, 776, 778, 777, 779, 0, - 0, 0, 781, 799, 800, 0, 684, 686, 687, 640, - 65, 858, 856, 906, 0, 915, 916, 925, 926, 932, - 0, 938, 0, 656, 279, 283, 0, 0, 893, 0, - 0, 0, 411, 780, 0, 0, 0, 647, 648, 918, - 919, 946, 944, 280, 281, 0, 150, 164, 165, 0, - 0, 168, 161, 162, 893, 0, 0, 401, 895, 113, - 114, 346, 347, 348, 107, 812, 0, 815, 282, 0, - 0, 0, 166, 167, 103, 443, 444, 0, 896, 897, - 110, 813, 286, 288, 289, 0, 0, 287, 0, 408, - 0, 290, 291, 292, 894, 0, 814, + 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, + 1418, 1419, 1420, 1421, 1422, 1423, 0, 983, 0, 464, + 691, 0, 525, 525, 0, 525, 525, 525, 525, 0, + 0, 0, 476, 0, 0, 0, 0, 522, 0, 0, + 495, 497, 0, 522, 0, 528, 0, 509, 525, 1427, + 1427, 1427, 974, 0, 519, 517, 531, 532, 514, 515, + 533, 536, 0, 541, 544, 1000, 1001, 0, 559, 44, + 1228, 551, 564, 565, 0, 597, 598, 40, 742, 701, + 0, 707, 709, 0, 744, 745, 746, 747, 748, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 774, + 775, 776, 777, 855, 856, 857, 858, 859, 860, 861, + 862, 711, 712, 852, 0, 963, 741, 0, 0, 0, + 0, 0, 0, 0, 0, 843, 0, 812, 812, 812, + 812, 812, 812, 812, 812, 812, 0, 0, 0, 0, + 0, 0, 0, -2, -2, 0, 1426, 0, 574, 0, + 0, 879, 0, 871, 870, 58, 0, 601, -2, 0, + 0, 0, 0, 42, 0, 47, 652, 72, 71, 915, + 0, 0, 0, 54, 880, 62, 64, 881, 0, 606, + 607, 0, 630, 634, 0, 602, 0, 0, 990, 989, + 989, 97, 0, 1387, 967, -2, -2, 0, 0, 1002, + 1003, 976, -2, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, + 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, + 1037, 1038, 1039, 1040, 1041, 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, 1084, 1085, 1086, + 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, + 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, + 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, + 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, + 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, + 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, + 1147, 1148, -2, 0, 0, 153, 154, 0, 38, 288, + 0, 149, 0, 282, 234, 896, 0, 0, 0, 0, + 0, 601, 0, 984, 134, 135, 141, 142, 262, 262, + 0, 143, 143, 376, 377, 378, 0, 0, -2, 286, + 0, 361, 0, 0, 276, 276, 280, 278, 279, 0, + 0, 0, 0, 0, 0, 388, 0, 389, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 448, 0, 263, + 0, 406, 407, 316, 0, 0, 0, 0, 386, 387, + 0, 0, 992, 993, 0, 0, 262, 262, 0, 0, + 0, 0, 262, 262, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 133, 909, 0, 0, 0, -2, 0, 456, 0, 0, + 0, 985, 985, 463, 0, 465, 466, 0, 0, 467, + 0, 522, 522, 520, 521, 469, 470, 471, 472, 525, + 0, 0, 271, 272, 273, 522, 525, 0, 525, 525, + 525, 525, 522, 522, 522, 525, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1427, 1427, 1427, 528, 525, + 0, 505, 0, 506, 507, 510, 511, 1428, 1429, 1021, + 512, 513, 975, 542, 545, 562, 560, 561, 563, 555, + 556, 557, 558, 0, 576, 577, 582, 0, 0, 0, + 0, 588, 589, 590, 0, 0, 593, 594, 595, 0, + 0, 0, 0, 0, 705, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 729, 730, 731, 732, 733, 734, + 735, 708, 0, 722, 0, 0, 764, 765, 766, 767, + 768, 769, 770, 771, 772, 0, 614, 0, 0, 0, + 0, 0, 0, 0, 0, 611, 0, 844, 0, 795, + 0, 796, 804, 0, 797, 805, 798, 806, 799, 800, + 807, 801, 808, 802, 803, 809, 0, 0, 0, 614, + 614, 0, 0, 741, 0, 0, 41, 566, 567, 0, + 674, 995, 0, 52, 61, 63, 879, 56, 879, 0, + 616, 0, 0, -2, -2, 617, 623, 624, 625, 626, + 627, 49, 1425, 50, 0, 69, 0, 43, 0, 0, + 0, 0, 246, 918, 0, 0, 872, 873, 876, 0, + 631, 635, 0, 637, 638, 0, 604, 0, 95, 0, + 690, 0, 0, 0, 1387, 973, 0, 99, 100, 0, + 0, 0, 250, 978, 979, 980, -2, 269, 0, -2, + 241, 185, 186, 187, 234, 189, 234, 234, 234, 234, + 246, 246, 246, 246, 217, 218, 219, 220, 221, 0, + 0, 204, 234, 234, 234, 234, 224, 225, 226, 227, + 228, 229, 230, 231, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 236, 236, 236, 238, 238, 0, 39, + 0, 254, 0, 876, 0, 909, 987, 997, 0, 0, + 0, 987, 117, 0, 0, 409, 370, 398, 410, 0, + 373, 374, -2, 0, 0, 360, 0, 362, 0, 270, + 0, -2, 0, 280, 0, 276, 280, 277, 280, 268, + 281, 390, 852, 0, 391, 392, 0, 428, 660, 0, + 0, 0, 0, 0, 434, 435, 436, 0, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 399, 400, + 401, 402, 403, 404, 405, 0, 0, 362, 0, 395, + 0, 317, 318, 0, 0, 321, 322, 323, 324, 0, + 0, 327, 328, 329, 677, 678, 330, 354, 355, 356, + 331, 332, 333, 334, 335, 336, 337, 348, 349, 350, + 351, 352, 353, 338, 339, 340, 341, 342, 345, 0, + 127, 900, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 985, 0, 0, 0, 0, 692, 1008, + 1009, 526, 527, 0, 274, 275, 525, 525, 473, 496, + 0, 525, 477, 498, 478, 480, 479, 481, 500, 501, + 525, 484, 523, 524, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 502, 503, 504, 529, 0, 0, + 543, 547, 548, 549, 550, 0, 0, 579, 91, 584, + 585, 586, 587, 599, 592, 743, 702, 703, 704, 706, + 723, 0, 725, 727, 713, 714, 738, 739, 740, 0, + 0, 0, 0, 736, 718, 0, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 763, 827, + 828, 829, 0, 761, 762, 773, 0, 0, 0, 615, + 628, 853, 0, -2, 0, 0, 0, 0, 746, 855, + 0, 746, 855, 0, 0, 0, 612, 613, 850, 847, + 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 962, 0, 569, 570, 572, 0, 694, 0, + 675, 0, 0, 996, 575, 55, 57, 621, 622, 0, + 639, 618, 51, 46, 0, 0, 654, 916, 246, 938, + 0, 882, 883, 0, 875, 877, 878, 74, 636, 632, + 0, 699, 0, 0, 689, 0, 642, 644, 645, 646, + 672, 0, 0, 0, 0, 93, 691, 968, 98, 0, + 0, 103, 104, 969, 970, 971, 972, 0, 136, -2, + 312, 155, 157, 158, 159, 150, 294, 0, 0, 244, + 242, 243, 188, 246, 246, 211, 212, 250, 250, 250, + 250, 0, 0, 205, 206, 207, 208, 199, 0, 200, + 201, 202, 0, 203, 287, 0, 884, 255, 256, 258, + 262, 0, 0, 0, 283, 284, 0, 900, 0, 0, + 0, 998, 997, 997, 997, 0, 145, 146, 147, 148, + 143, 0, 0, 151, 364, 363, 0, 0, 285, 0, + 0, 280, 280, 265, 266, 0, 393, 0, 0, 430, + 431, 432, 433, 0, 0, 0, 362, 364, 250, 0, + 319, 320, 325, 326, 343, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 423, 424, 425, 426, + 897, 898, 899, 0, 0, 457, 0, 0, 304, 89, + 986, 462, 522, 483, 499, 522, 475, 482, 508, 539, + 583, 0, 0, 0, 0, 591, 0, 724, 726, 728, + 715, 736, 719, 0, 716, 0, 0, 710, 778, 0, + 0, 0, 614, 0, 782, 783, 0, 0, 0, 0, + 0, 820, 0, 0, 821, 0, 870, 0, 848, 0, + 0, 794, 814, 0, 0, 815, 816, 817, 818, 819, + 568, 571, 573, 650, 0, 0, 0, 0, 676, 994, + 0, 863, 0, 0, 639, 699, 640, 0, 619, 48, + 653, 0, 920, 919, 932, 945, 247, 248, 249, 874, + 0, 879, 0, 956, 0, 0, 948, 0, 0, 0, + 0, 0, 0, 0, 0, 679, 0, 0, 682, 0, + 0, 0, 0, 673, 0, 0, 0, 0, -2, 0, + 0, 87, 88, 0, 0, 0, 101, 102, 0, 0, + 108, 251, 252, 143, 314, 156, 160, 165, 0, 0, + 0, 169, 0, 171, 295, 0, 181, 183, 0, 0, + 163, 184, 245, 250, 250, 213, 214, 215, 216, 0, + 232, 0, 0, 0, 307, 113, 888, 887, 262, 262, + 257, 0, 260, 0, 999, 235, 0, 126, 0, 0, + 0, 0, 0, 132, 0, 368, 0, 379, 380, 0, + 427, 0, 254, 0, 264, 267, 853, 661, 0, 0, + 381, 0, 364, 384, 385, 396, 346, 347, 344, 0, + 0, 910, 911, 0, 914, 118, 416, 418, 417, 421, + 0, 0, 414, 0, 304, 884, 0, 461, 305, 306, + 525, 525, 578, 92, 0, 581, 0, 717, 0, 737, + 720, 779, 780, 629, 0, 854, 0, 234, 234, 833, + 234, 238, 836, 234, 838, 234, 841, 0, 0, 0, + 0, 0, 0, 0, 845, 793, 851, 0, 0, 0, + 0, 0, 0, 0, 0, 981, 982, 864, 865, 699, + 866, 641, 620, 655, 938, 0, 931, 0, -2, 940, + 0, 0, 0, 946, 633, 75, 700, 78, 0, 956, + 964, 0, 947, 958, 960, 0, 0, 0, 952, 0, + 699, 643, 668, 670, 0, 665, 680, 681, 683, 0, + 685, 0, 687, 688, 652, 648, 649, 0, 699, 0, + 699, 699, 94, 0, 693, 105, 106, 107, 313, 166, + 167, 0, 170, 180, 182, 0, 0, 209, 210, 246, + 0, 246, 0, 239, 0, 296, 308, 0, 885, 886, + 0, 0, 259, 261, 0, 988, 128, 0, 0, 0, + 0, 152, 365, 0, 253, 0, 0, 452, 449, 382, + 383, 652, 901, 902, 903, 0, 913, 121, 0, 0, + 0, 0, 458, 459, 460, 90, 468, 474, 580, 600, + 721, 781, 784, 830, 246, 834, 835, 837, 839, 840, + 842, 786, 785, 0, 0, 0, 0, 0, 879, 0, + 849, 0, 0, 0, 0, 0, 674, 59, 866, 868, + 0, 925, 923, 923, 933, 934, 0, 0, 941, 0, + 0, 0, 0, 79, 0, 0, 0, 961, 0, 0, + 0, 0, 96, 870, 662, 669, 0, 0, 663, 0, + 664, 684, 686, 647, -2, 870, 699, 85, 86, 0, + 168, 0, 0, 250, 233, 250, 0, 0, 309, 889, + 890, 891, 892, 893, 894, 895, 652, 129, 130, 131, + 371, 0, 0, 429, 0, 437, 0, 0, 0, 912, + 415, 0, 119, 120, 0, 0, 420, 831, 832, 0, + 0, 0, 0, 822, 0, 846, 0, 0, 0, 696, + 656, 657, 0, 0, 694, 868, 77, 0, 0, 928, + 0, 921, 924, 922, 935, 0, 0, 942, 0, 944, + 0, 965, 966, 959, 0, 951, 954, 950, 953, 879, + 666, 0, 671, 879, 84, 0, 174, 222, 223, 237, + 240, 0, 0, 289, 453, 450, 451, 0, 122, 123, + 0, 0, 0, 787, 789, 788, 790, 0, 0, 0, + 792, 810, 811, 0, 695, 697, 698, 651, 76, 869, + 867, 917, 0, 926, 927, 936, 937, 943, 0, 949, + 0, 82, 0, 83, 290, 294, 0, 0, 904, 0, + 0, 0, 422, 791, 0, 0, 0, 658, 659, 929, + 930, 957, 955, 667, 291, 292, 0, 161, 175, 176, + 0, 0, 179, 172, 173, 904, 0, 0, 412, 906, + 124, 125, 357, 358, 359, 118, 823, 0, 826, 293, + 0, 0, 0, 177, 178, 114, 454, 455, 0, 907, + 908, 121, 824, 297, 299, 300, 0, 0, 298, 0, + 419, 0, 301, 302, 303, 905, 0, 825, } var yyTok1 = [...]int{ @@ -6015,68 +6127,68 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:439 +//line sql.y:445 { setParseTree(yylex, yyDollar[1].statementUnion()) } case 2: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:444 +//line sql.y:450 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:445 +//line sql.y:451 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:449 +//line sql.y:455 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL case 34: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:482 +//line sql.y:488 { setParseTree(yylex, nil) } case 35: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:488 +//line sql.y:494 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt) } case 36: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:492 +//line sql.y:498 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt) } case 37: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:496 +//line sql.y:502 { yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt) } case 38: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:501 +//line sql.y:507 { yyVAL.colIdent = NewColIdentWithAt("", NoAt) } case 39: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:505 +//line sql.y:511 { yyVAL.colIdent = yyDollar[1].colIdent } case 40: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:511 +//line sql.y:517 { yyLOCAL = &OtherAdmin{} } @@ -6084,228 +6196,321 @@ yydefault: case 41: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:517 +//line sql.y:523 { yyLOCAL = &Load{} } yyVAL.union = yyLOCAL case 42: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *With +//line sql.y:529 + { + yyLOCAL = &With{ctes: yyDollar[2].ctesUnion(), Recursive: false} + } + yyVAL.union = yyLOCAL + case 43: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *With +//line sql.y:533 + { + yyLOCAL = &With{ctes: yyDollar[3].ctesUnion(), Recursive: true} + } + yyVAL.union = yyLOCAL + case 44: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *With +//line sql.y:538 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 45: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *With +//line sql.y:542 + { + yyLOCAL = yyDollar[1].withUnion() + } + yyVAL.union = yyLOCAL + case 46: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:548 + { + yySLICE := (*[]*CommonTableExpr)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].cteUnion()) + } + case 47: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*CommonTableExpr +//line sql.y:552 + { + yyLOCAL = []*CommonTableExpr{yyDollar[1].cteUnion()} + } + yyVAL.union = yyLOCAL + case 48: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *CommonTableExpr +//line sql.y:558 + { + yyLOCAL = &CommonTableExpr{TableID: yyDollar[1].tableIdent, Columns: yyDollar[2].columnsUnion(), Subquery: yyDollar[4].subqueryUnion()} + } + yyVAL.union = yyLOCAL + case 49: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:522 +//line sql.y:564 { yyLOCAL = yyDollar[2].selStmtUnion() } yyVAL.union = yyLOCAL - case 43: + case 50: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:526 +//line sql.y:568 { yyLOCAL = yyDollar[2].selStmtUnion() } yyVAL.union = yyLOCAL - case 44: + case 51: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:530 +//line sql.y:572 { setLockInSelect(yyDollar[2].selStmtUnion(), yyDollar[3].lockUnion()) yyLOCAL = yyDollar[2].selStmtUnion() } yyVAL.union = yyLOCAL - case 45: + case 52: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:553 +//line sql.y:595 { yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion()) yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 46: + case 53: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:559 +//line sql.y:601 { yyDollar[1].selStmtUnion().SetLimit(yyDollar[2].limitUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 47: + case 54: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:564 +//line sql.y:606 { yyDollar[1].selStmtUnion().SetOrderBy(yyDollar[2].orderByUnion()) yyDollar[1].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 48: + case 55: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:612 + { + yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) + yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion()) + yyDollar[2].selStmtUnion().SetLimit(yyDollar[4].limitUnion()) + yyLOCAL = yyDollar[2].selStmtUnion() + } + yyVAL.union = yyLOCAL + case 56: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:619 + { + yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) + yyDollar[2].selStmtUnion().SetLimit(yyDollar[3].limitUnion()) + yyLOCAL = yyDollar[2].selStmtUnion() + } + yyVAL.union = yyLOCAL + case 57: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:625 + { + yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) + yyDollar[2].selStmtUnion().SetOrderBy(yyDollar[3].orderByUnion()) + yyDollar[2].selStmtUnion().SetLimit(yyDollar[4].limitUnion()) + yyLOCAL = yyDollar[2].selStmtUnion() + } + yyVAL.union = yyLOCAL + case 58: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:632 + { + yyDollar[2].selStmtUnion().SetWith(yyDollar[1].withUnion()) + } + case 59: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:570 +//line sql.y:636 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, nil, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/) } yyVAL.union = yyLOCAL - case 49: + case 60: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:576 +//line sql.y:642 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 50: + case 61: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:580 +//line sql.y:646 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } yyVAL.union = yyLOCAL - case 51: + case 62: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:584 +//line sql.y:650 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } yyVAL.union = yyLOCAL - case 52: + case 63: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:588 +//line sql.y:654 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } yyVAL.union = yyLOCAL - case 53: + case 64: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:592 +//line sql.y:658 { yyLOCAL = &Union{Left: yyDollar[1].selStmtUnion(), Distinct: yyDollar[2].booleanUnion(), Right: yyDollar[3].selStmtUnion()} } yyVAL.union = yyLOCAL - case 54: + case 65: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:598 +//line sql.y:664 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 55: + case 66: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:602 +//line sql.y:668 { setLockInSelect(yyDollar[1].selStmtUnion(), yyDollar[2].lockUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 56: + case 67: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:607 +//line sql.y:673 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 57: + case 68: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:611 +//line sql.y:677 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 58: + case 69: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:617 +//line sql.y:683 { yyLOCAL = yyDollar[2].selStmtUnion() } yyVAL.union = yyLOCAL - case 59: + case 70: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:621 +//line sql.y:687 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 60: + case 71: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:626 +//line sql.y:692 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyDollar[1].selStmtUnion().SetLock(yyDollar[3].lockUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 61: + case 72: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:632 +//line sql.y:698 { yyDollar[1].selStmtUnion().SetInto(yyDollar[3].selectIntoUnion()) yyDollar[1].selStmtUnion().SetLock(yyDollar[2].lockUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 62: + case 73: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:638 +//line sql.y:704 { yyDollar[1].selStmtUnion().SetInto(yyDollar[2].selectIntoUnion()) yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 63: + case 74: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:645 +//line sql.y:711 { yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} } yyVAL.union = yyLOCAL - case 64: + case 75: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:651 +//line sql.y:717 { yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 65: + case 76: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:659 +//line sql.y:725 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].selectIntoUnion() /*into*/, yyDollar[6].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[7].exprUnion()), GroupBy(yyDollar[8].exprsUnion()), NewWhere(HavingClause, yyDollar[9].exprUnion())) } yyVAL.union = yyLOCAL - case 66: + case 77: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL SelectStatement -//line sql.y:663 +//line sql.y:729 { yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, nil, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion())) } yyVAL.union = yyLOCAL - case 67: + case 78: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:671 +//line sql.y:737 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[6].insUnion() @@ -6318,10 +6523,10 @@ yydefault: yyLOCAL = ins } yyVAL.union = yyLOCAL - case 68: + case 79: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:683 +//line sql.y:749 { cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) @@ -6332,258 +6537,258 @@ yydefault: yyLOCAL = &Insert{Action: yyDollar[1].insertActionUnion(), Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitionsUnion(), Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprsUnion())} } yyVAL.union = yyLOCAL - case 69: + case 80: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:695 +//line sql.y:761 { yyLOCAL = InsertAct } yyVAL.union = yyLOCAL - case 70: + case 81: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL InsertAction -//line sql.y:699 +//line sql.y:765 { yyLOCAL = ReplaceAct } yyVAL.union = yyLOCAL - case 71: - yyDollar = yyS[yypt-9 : yypt+1] + case 82: + yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:705 +//line sql.y:771 { - yyLOCAL = &Update{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: yyDollar[4].tableExprsUnion(), Exprs: yyDollar[6].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} + yyLOCAL = &Update{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), TableExprs: yyDollar[5].tableExprsUnion(), Exprs: yyDollar[7].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion()), OrderBy: yyDollar[9].orderByUnion(), Limit: yyDollar[10].limitUnion()} } yyVAL.union = yyLOCAL - case 72: - yyDollar = yyS[yypt-9 : yypt+1] + case 83: + yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:711 +//line sql.y:777 { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[5].tableName}}, Partitions: yyDollar[6].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} + yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[6].tableName}}, Partitions: yyDollar[7].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion()), OrderBy: yyDollar[9].orderByUnion(), Limit: yyDollar[10].limitUnion()} } yyVAL.union = yyLOCAL - case 73: - yyDollar = yyS[yypt-8 : yypt+1] + case 84: + yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Statement -//line sql.y:715 +//line sql.y:781 { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} + yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[6].tableNamesUnion(), TableExprs: yyDollar[8].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[9].exprUnion())} } yyVAL.union = yyLOCAL - case 74: - yyDollar = yyS[yypt-7 : yypt+1] + case 85: + yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:719 +//line sql.y:785 { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} + yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } yyVAL.union = yyLOCAL - case 75: - yyDollar = yyS[yypt-7 : yypt+1] + case 86: + yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:723 +//line sql.y:789 { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} + yyLOCAL = &Delete{With: yyDollar[1].withUnion(), Comments: Comments(yyDollar[3].strs), Ignore: yyDollar[4].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} } yyVAL.union = yyLOCAL - case 76: + case 87: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:728 +//line sql.y:794 { } - case 77: + case 88: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:729 +//line sql.y:795 { } - case 78: + case 89: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:733 +//line sql.y:799 { yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()} } yyVAL.union = yyLOCAL - case 79: + case 90: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:737 +//line sql.y:803 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName()) } - case 80: + case 91: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:743 +//line sql.y:809 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL - case 81: + case 92: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:747 +//line sql.y:813 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) } - case 82: + case 93: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableNames -//line sql.y:753 +//line sql.y:819 { yyLOCAL = TableNames{yyDollar[1].tableName} } yyVAL.union = yyLOCAL - case 83: + case 94: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:757 +//line sql.y:823 { yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableName) } - case 84: + case 95: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Partitions -//line sql.y:762 +//line sql.y:828 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 85: + case 96: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Partitions -//line sql.y:766 +//line sql.y:832 { yyLOCAL = yyDollar[3].partitionsUnion() } yyVAL.union = yyLOCAL - case 86: + case 97: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:772 +//line sql.y:838 { yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()} } yyVAL.union = yyLOCAL - case 87: + case 98: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:778 +//line sql.y:844 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()} } yyVAL.union = yyLOCAL - case 88: + case 99: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:782 +//line sql.y:848 { yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope} } yyVAL.union = yyLOCAL - case 89: + case 100: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []Characteristic -//line sql.y:788 +//line sql.y:854 { yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()} } yyVAL.union = yyLOCAL - case 90: + case 101: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:792 +//line sql.y:858 { yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion()) } - case 91: + case 102: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Characteristic -//line sql.y:798 +//line sql.y:864 { yyLOCAL = yyDollar[3].isolationLevelUnion() } yyVAL.union = yyLOCAL - case 92: + case 103: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:802 +//line sql.y:868 { yyLOCAL = ReadWrite } yyVAL.union = yyLOCAL - case 93: + case 104: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Characteristic -//line sql.y:806 +//line sql.y:872 { yyLOCAL = ReadOnly } yyVAL.union = yyLOCAL - case 94: + case 105: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:812 +//line sql.y:878 { yyLOCAL = RepeatableRead } yyVAL.union = yyLOCAL - case 95: + case 106: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:816 +//line sql.y:882 { yyLOCAL = ReadCommitted } yyVAL.union = yyLOCAL - case 96: + case 107: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:820 +//line sql.y:886 { yyLOCAL = ReadUncommitted } yyVAL.union = yyLOCAL - case 97: + case 108: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsolationLevel -//line sql.y:824 +//line sql.y:890 { yyLOCAL = Serializable } yyVAL.union = yyLOCAL - case 98: + case 109: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:830 +//line sql.y:896 { yyLOCAL = SessionScope } yyVAL.union = yyLOCAL - case 99: + case 110: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Scope -//line sql.y:834 +//line sql.y:900 { yyLOCAL = GlobalScope } yyVAL.union = yyLOCAL - case 100: + case 111: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:840 +//line sql.y:906 { yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() yyDollar[1].createTableUnion().FullyParsed = true yyLOCAL = yyDollar[1].createTableUnion() } yyVAL.union = yyLOCAL - case 101: + case 112: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:846 +//line sql.y:912 { // Create table [name] like [name] yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() @@ -6591,10 +6796,10 @@ yydefault: yyLOCAL = yyDollar[1].createTableUnion() } yyVAL.union = yyLOCAL - case 102: + case 113: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:853 +//line sql.y:919 { indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition indexDef.Columns = yyDollar[3].indexColumnsUnion() @@ -6604,358 +6809,358 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 103: + case 114: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Statement -//line sql.y:862 +//line sql.y:928 { yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].str, Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} } yyVAL.union = yyLOCAL - case 104: + case 115: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:866 +//line sql.y:932 { yyDollar[1].createDatabaseUnion().FullyParsed = true yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion() yyLOCAL = yyDollar[1].createDatabaseUnion() } yyVAL.union = yyLOCAL - case 105: + case 116: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:873 +//line sql.y:939 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 106: + case 117: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:877 +//line sql.y:943 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 107: + case 118: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:882 +//line sql.y:948 { yyVAL.colIdent = NewColIdent("") } - case 108: + case 119: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:886 +//line sql.y:952 { yyVAL.colIdent = yyDollar[2].colIdent } - case 109: + case 120: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:892 +//line sql.y:958 { yyVAL.colIdent = yyDollar[1].colIdent } - case 110: + case 121: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:897 +//line sql.y:963 { var v []VindexParam yyLOCAL = v } yyVAL.union = yyLOCAL - case 111: + case 122: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:902 +//line sql.y:968 { yyLOCAL = yyDollar[2].vindexParamsUnion() } yyVAL.union = yyLOCAL - case 112: + case 123: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:908 +//line sql.y:974 { yyLOCAL = make([]VindexParam, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) } yyVAL.union = yyLOCAL - case 113: + case 124: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:913 +//line sql.y:979 { yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) } - case 114: + case 125: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:919 +//line sql.y:985 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } - case 115: + case 126: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateTable -//line sql.y:925 +//line sql.y:991 { yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 116: + case 127: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:932 +//line sql.y:998 { yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 117: + case 128: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:939 +//line sql.y:1005 { yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 118: + case 129: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:944 +//line sql.y:1010 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 119: + case 130: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:949 +//line sql.y:1015 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 120: + case 131: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:954 +//line sql.y:1020 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 121: + case 132: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateDatabase -//line sql.y:961 +//line sql.y:1027 { yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 122: + case 133: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AlterDatabase -//line sql.y:968 +//line sql.y:1034 { yyLOCAL = &AlterDatabase{} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL - case 125: + case 136: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:979 +//line sql.y:1045 { yyLOCAL = yyDollar[2].tableSpecUnion() yyLOCAL.Options = yyDollar[4].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 126: + case 137: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:985 +//line sql.y:1051 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 127: + case 138: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:989 +//line sql.y:1055 { yyLOCAL = yyDollar[1].collateAndCharsetsUnion() } yyVAL.union = yyLOCAL - case 128: + case 139: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:995 +//line sql.y:1061 { yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} } yyVAL.union = yyLOCAL - case 129: + case 140: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []CollateAndCharset -//line sql.y:999 +//line sql.y:1065 { yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} } yyVAL.union = yyLOCAL - case 130: + case 141: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1003 +//line sql.y:1069 { yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) } - case 131: + case 142: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1007 +//line sql.y:1073 { yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) } - case 132: + case 143: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1013 +//line sql.y:1079 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 133: + case 144: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1017 +//line sql.y:1083 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 134: + case 145: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1023 +//line sql.y:1089 { yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } - case 135: + case 146: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1027 +//line sql.y:1093 { yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } - case 136: + case 147: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1033 +//line sql.y:1099 { yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} } - case 137: + case 148: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1037 +//line sql.y:1103 { yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} } - case 138: + case 149: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OptLike -//line sql.y:1044 +//line sql.y:1110 { yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 139: + case 150: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OptLike -//line sql.y:1048 +//line sql.y:1114 { yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 140: + case 151: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColumnDefinition -//line sql.y:1054 +//line sql.y:1120 { yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} } yyVAL.union = yyLOCAL - case 141: + case 152: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1058 +//line sql.y:1124 { yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) } - case 142: + case 153: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1064 +//line sql.y:1130 { yyLOCAL = &TableSpec{} yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) } yyVAL.union = yyLOCAL - case 143: + case 154: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:1069 +//line sql.y:1135 { yyLOCAL = &TableSpec{} yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) } yyVAL.union = yyLOCAL - case 144: + case 155: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1074 +//line sql.y:1140 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) } - case 145: + case 156: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1078 +//line sql.y:1144 { yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) } - case 146: + case 157: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1083 +//line sql.y:1149 { yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) } - case 147: + case 158: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1087 +//line sql.y:1153 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } - case 148: + case 159: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1091 +//line sql.y:1157 { yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) } - case 149: + case 160: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1097 +//line sql.y:1163 { yyDollar[2].columnType.Options = yyDollar[3].columnTypeOptionsUnion() yyDollar[2].columnType.Options.Reference = yyDollar[4].referenceDefinitionUnion() yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} } yyVAL.union = yyLOCAL - case 150: + case 161: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *ColumnDefinition -//line sql.y:1103 +//line sql.y:1169 { yyDollar[2].columnType.Options = yyDollar[8].columnTypeOptionsUnion() yyDollar[2].columnType.Options.As = yyDollar[6].exprUnion() @@ -6963,1741 +7168,1741 @@ yydefault: yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} } yyVAL.union = yyLOCAL - case 151: + case 162: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1111 +//line sql.y:1177 { yyVAL.str = "" } - case 152: + case 163: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1115 +//line sql.y:1181 { yyVAL.str = "" } - case 153: + case 164: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1124 +//line sql.y:1190 { yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} } yyVAL.union = yyLOCAL - case 154: + case 165: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1128 +//line sql.y:1194 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 155: + case 166: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1134 +//line sql.y:1200 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 156: + case 167: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1140 +//line sql.y:1206 { yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 157: + case 168: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1145 +//line sql.y:1211 { yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 158: + case 169: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1150 +//line sql.y:1216 { yyDollar[1].columnTypeOptionsUnion().Autoincrement = true yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 159: + case 170: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1155 +//line sql.y:1221 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 160: + case 171: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1160 +//line sql.y:1226 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 161: + case 172: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1167 +//line sql.y:1233 { yyLOCAL = VirtualStorage } yyVAL.union = yyLOCAL - case 162: + case 173: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnStorage -//line sql.y:1171 +//line sql.y:1237 { yyLOCAL = StoredStorage } yyVAL.union = yyLOCAL - case 163: + case 174: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1176 +//line sql.y:1242 { yyLOCAL = &ColumnTypeOptions{} } yyVAL.union = yyLOCAL - case 164: + case 175: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1180 +//line sql.y:1246 { yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 165: + case 176: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1185 +//line sql.y:1251 { val := true yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 166: + case 177: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1191 +//line sql.y:1257 { val := false yyDollar[1].columnTypeOptionsUnion().Null = &val yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 167: + case 178: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1197 +//line sql.y:1263 { yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 168: + case 179: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColumnTypeOptions -//line sql.y:1202 +//line sql.y:1268 { yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() yyLOCAL = yyDollar[1].columnTypeOptionsUnion() } yyVAL.union = yyLOCAL - case 169: + case 180: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1209 +//line sql.y:1275 { yyLOCAL = colKeyPrimary } yyVAL.union = yyLOCAL - case 170: + case 181: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1213 +//line sql.y:1279 { yyLOCAL = colKeyUnique } yyVAL.union = yyLOCAL - case 171: + case 182: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1217 +//line sql.y:1283 { yyLOCAL = colKeyUniqueKey } yyVAL.union = yyLOCAL - case 172: + case 183: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColumnKeyOption -//line sql.y:1221 +//line sql.y:1287 { yyLOCAL = colKey } yyVAL.union = yyLOCAL - case 173: + case 184: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1227 +//line sql.y:1293 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() } - case 177: + case 188: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1238 +//line sql.y:1304 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].literalUnion() } - case 178: + case 189: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1243 +//line sql.y:1309 { yyVAL.columnType = yyDollar[1].columnType } - case 179: + case 190: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1249 +//line sql.y:1315 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 180: + case 191: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1253 +//line sql.y:1319 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 181: + case 192: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1257 +//line sql.y:1323 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 182: + case 193: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1261 +//line sql.y:1327 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 183: + case 194: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1265 +//line sql.y:1331 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 184: + case 195: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1269 +//line sql.y:1335 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 185: + case 196: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1273 +//line sql.y:1339 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 186: + case 197: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1277 +//line sql.y:1343 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 187: + case 198: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1281 +//line sql.y:1347 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 188: + case 199: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1287 +//line sql.y:1353 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 189: + case 200: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1293 +//line sql.y:1359 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 190: + case 201: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1299 +//line sql.y:1365 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 191: + case 202: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1305 +//line sql.y:1371 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 192: + case 203: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1311 +//line sql.y:1377 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 193: + case 204: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1319 +//line sql.y:1385 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 194: + case 205: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1323 +//line sql.y:1389 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 195: + case 206: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1327 +//line sql.y:1393 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 196: + case 207: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1331 +//line sql.y:1397 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 197: + case 208: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1335 +//line sql.y:1401 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 198: + case 209: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1341 +//line sql.y:1407 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 199: + case 210: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1345 +//line sql.y:1411 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } - case 200: + case 211: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1349 +//line sql.y:1415 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 201: + case 212: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1353 +//line sql.y:1419 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } - case 202: + case 213: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1357 +//line sql.y:1423 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 203: + case 214: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1361 +//line sql.y:1427 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 204: + case 215: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1365 +//line sql.y:1431 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 205: + case 216: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1369 +//line sql.y:1435 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } - case 206: + case 217: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1373 +//line sql.y:1439 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 207: + case 218: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1377 +//line sql.y:1443 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 208: + case 219: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1381 +//line sql.y:1447 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 209: + case 220: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1385 +//line sql.y:1451 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 210: + case 221: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1389 +//line sql.y:1455 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 211: + case 222: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1393 +//line sql.y:1459 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 212: + case 223: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1398 +//line sql.y:1464 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } - case 213: + case 224: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1404 +//line sql.y:1470 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 214: + case 225: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1408 +//line sql.y:1474 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 215: + case 226: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1412 +//line sql.y:1478 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 216: + case 227: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1416 +//line sql.y:1482 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 217: + case 228: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1420 +//line sql.y:1486 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 218: + case 229: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1424 +//line sql.y:1490 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 219: + case 230: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1428 +//line sql.y:1494 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 220: + case 231: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1432 +//line sql.y:1498 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} } - case 221: + case 232: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1438 +//line sql.y:1504 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) } - case 222: + case 233: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1443 +//line sql.y:1509 { yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) } - case 223: + case 234: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Literal -//line sql.y:1448 +//line sql.y:1514 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 224: + case 235: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:1452 +//line sql.y:1518 { yyLOCAL = NewIntLiteral(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 225: + case 236: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1457 +//line sql.y:1523 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 226: + case 237: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1461 +//line sql.y:1527 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 227: + case 238: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1469 +//line sql.y:1535 { yyVAL.LengthScaleOption = LengthScaleOption{} } - case 228: + case 239: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1473 +//line sql.y:1539 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), } } - case 229: + case 240: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1479 +//line sql.y:1545 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntLiteral(yyDollar[2].str), Scale: NewIntLiteral(yyDollar[4].str), } } - case 230: + case 241: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1487 +//line sql.y:1553 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 231: + case 242: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1491 +//line sql.y:1557 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 232: + case 243: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1495 +//line sql.y:1561 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 233: + case 244: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1500 +//line sql.y:1566 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 234: + case 245: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1504 +//line sql.y:1570 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 235: + case 246: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1509 +//line sql.y:1575 { yyVAL.str = "" } - case 236: + case 247: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1513 +//line sql.y:1579 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 237: + case 248: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1517 +//line sql.y:1583 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 238: + case 249: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1521 +//line sql.y:1587 { yyVAL.str = string(yyDollar[2].str) } - case 239: + case 250: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1526 +//line sql.y:1592 { yyVAL.str = "" } - case 240: + case 251: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1530 +//line sql.y:1596 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 241: + case 252: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1534 +//line sql.y:1600 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 242: + case 253: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexDefinition -//line sql.y:1541 +//line sql.y:1607 { yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} } yyVAL.union = yyLOCAL - case 243: + case 254: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1546 +//line sql.y:1612 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 244: + case 255: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1550 +//line sql.y:1616 { yyLOCAL = yyDollar[1].indexOptionsUnion() } yyVAL.union = yyLOCAL - case 245: + case 256: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:1556 +//line sql.y:1622 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 246: + case 257: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1560 +//line sql.y:1626 { yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) } - case 247: + case 258: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1566 +//line sql.y:1632 { yyLOCAL = yyDollar[1].indexOptionUnion() } yyVAL.union = yyLOCAL - case 248: + case 259: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1570 +//line sql.y:1636 { // should not be string yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 249: + case 260: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1575 +//line sql.y:1641 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 250: + case 261: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:1579 +//line sql.y:1645 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 251: + case 262: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1585 +//line sql.y:1651 { yyVAL.str = "" } - case 252: + case 263: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1589 +//line sql.y:1655 { yyVAL.str = string(yyDollar[1].str) } - case 253: + case 264: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1595 +//line sql.y:1661 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } yyVAL.union = yyLOCAL - case 254: + case 265: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1599 +//line sql.y:1665 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } yyVAL.union = yyLOCAL - case 255: + case 266: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1603 +//line sql.y:1669 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} } yyVAL.union = yyLOCAL - case 256: + case 267: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1607 +//line sql.y:1673 { yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} } yyVAL.union = yyLOCAL - case 257: + case 268: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexInfo -//line sql.y:1611 +//line sql.y:1677 { yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } yyVAL.union = yyLOCAL - case 258: + case 269: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1616 +//line sql.y:1682 { yyVAL.str = "" } - case 259: + case 270: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1620 +//line sql.y:1686 { yyVAL.str = yyDollar[2].str } - case 260: + case 271: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1626 +//line sql.y:1692 { yyVAL.str = string(yyDollar[1].str) } - case 261: + case 272: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1630 +//line sql.y:1696 { yyVAL.str = string(yyDollar[1].str) } - case 262: + case 273: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1634 +//line sql.y:1700 { yyVAL.str = string(yyDollar[1].str) } - case 263: + case 274: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1641 +//line sql.y:1707 { yyVAL.str = string(yyDollar[1].str) } - case 264: + case 275: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1645 +//line sql.y:1711 { yyVAL.str = string(yyDollar[1].str) } - case 265: + case 276: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1650 +//line sql.y:1716 { yyVAL.str = "key" } - case 266: + case 277: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1654 +//line sql.y:1720 { yyVAL.str = yyDollar[1].str } - case 267: + case 278: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1660 +//line sql.y:1726 { yyVAL.str = string(yyDollar[1].str) } - case 268: + case 279: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1664 +//line sql.y:1730 { yyVAL.str = string(yyDollar[1].str) } - case 269: + case 280: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1669 +//line sql.y:1735 { yyVAL.str = "" } - case 270: + case 281: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1673 +//line sql.y:1739 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 271: + case 282: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexColumn -//line sql.y:1679 +//line sql.y:1745 { yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} } yyVAL.union = yyLOCAL - case 272: + case 283: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1683 +//line sql.y:1749 { yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) } - case 273: + case 284: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *IndexColumn -//line sql.y:1689 +//line sql.y:1755 { yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 274: + case 285: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1695 +//line sql.y:1761 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 275: + case 286: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1699 +//line sql.y:1765 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 276: + case 287: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1705 +//line sql.y:1771 { yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 277: + case 288: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConstraintDefinition -//line sql.y:1709 +//line sql.y:1775 { yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} } yyVAL.union = yyLOCAL - case 278: + case 289: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1715 +//line sql.y:1781 { yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} } yyVAL.union = yyLOCAL - case 279: + case 290: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1721 +//line sql.y:1787 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 280: + case 291: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1725 +//line sql.y:1791 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 281: + case 292: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1729 +//line sql.y:1795 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 282: + case 293: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1733 +//line sql.y:1799 { yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()} } yyVAL.union = yyLOCAL - case 283: + case 294: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1738 +//line sql.y:1804 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 284: + case 295: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ReferenceDefinition -//line sql.y:1742 +//line sql.y:1808 { yyLOCAL = yyDollar[1].referenceDefinitionUnion() } yyVAL.union = yyLOCAL - case 285: + case 296: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL ConstraintInfo -//line sql.y:1748 +//line sql.y:1814 { yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} } yyVAL.union = yyLOCAL - case 286: + case 297: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1754 +//line sql.y:1820 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 287: + case 298: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1760 +//line sql.y:1826 { yyLOCAL = yyDollar[3].ReferenceActionUnion() } yyVAL.union = yyLOCAL - case 288: + case 299: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1766 +//line sql.y:1832 { yyLOCAL = Restrict } yyVAL.union = yyLOCAL - case 289: + case 300: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1770 +//line sql.y:1836 { yyLOCAL = Cascade } yyVAL.union = yyLOCAL - case 290: + case 301: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1774 +//line sql.y:1840 { yyLOCAL = NoAction } yyVAL.union = yyLOCAL - case 291: + case 302: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1778 +//line sql.y:1844 { yyLOCAL = SetDefault } yyVAL.union = yyLOCAL - case 292: + case 303: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ReferenceAction -//line sql.y:1782 +//line sql.y:1848 { yyLOCAL = SetNull } yyVAL.union = yyLOCAL - case 293: + case 304: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1787 +//line sql.y:1853 { yyVAL.str = "" } - case 294: + case 305: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1791 +//line sql.y:1857 { yyVAL.str = string(yyDollar[1].str) } - case 295: + case 306: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1795 +//line sql.y:1861 { yyVAL.str = string(yyDollar[1].str) } - case 296: + case 307: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:1800 +//line sql.y:1866 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 297: + case 308: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:1804 +//line sql.y:1870 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 298: + case 309: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:1808 +//line sql.y:1874 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 299: + case 310: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1813 +//line sql.y:1879 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 300: + case 311: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1817 +//line sql.y:1883 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 301: + case 312: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1823 +//line sql.y:1889 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 302: + case 313: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1827 +//line sql.y:1893 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) } - case 303: + case 314: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1831 +//line sql.y:1897 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 304: + case 315: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableOptions -//line sql.y:1837 +//line sql.y:1903 { yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} } yyVAL.union = yyLOCAL - case 305: + case 316: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1841 +//line sql.y:1907 { yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) } - case 306: + case 317: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1847 +//line sql.y:1913 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 307: + case 318: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1851 +//line sql.y:1917 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 308: + case 319: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1855 +//line sql.y:1921 { yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 309: + case 320: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1859 +//line sql.y:1925 { yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 310: + case 321: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1863 +//line sql.y:1929 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 311: + case 322: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1867 +//line sql.y:1933 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 312: + case 323: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1871 +//line sql.y:1937 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 313: + case 324: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1875 +//line sql.y:1941 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 314: + case 325: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1879 +//line sql.y:1945 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 315: + case 326: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1883 +//line sql.y:1949 { yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 316: + case 327: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1887 +//line sql.y:1953 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 317: + case 328: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1891 +//line sql.y:1957 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 318: + case 329: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1895 +//line sql.y:1961 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].tableIdent.String()} } yyVAL.union = yyLOCAL - case 319: + case 330: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1899 +//line sql.y:1965 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 320: + case 331: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1903 +//line sql.y:1969 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 321: + case 332: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1907 +//line sql.y:1973 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 322: + case 333: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1911 +//line sql.y:1977 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 323: + case 334: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1915 +//line sql.y:1981 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 324: + case 335: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1919 +//line sql.y:1985 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 325: + case 336: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1923 +//line sql.y:1989 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 326: + case 337: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1927 +//line sql.y:1993 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 327: + case 338: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1931 +//line sql.y:1997 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 328: + case 339: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1935 +//line sql.y:2001 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 329: + case 340: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1939 +//line sql.y:2005 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 330: + case 341: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1943 +//line sql.y:2009 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 331: + case 342: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1947 +//line sql.y:2013 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 332: + case 343: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1951 +//line sql.y:2017 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 333: + case 344: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableOption -//line sql.y:1955 +//line sql.y:2021 { yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 334: + case 345: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1960 +//line sql.y:2026 { yyVAL.str = "" } - case 335: + case 346: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1964 +//line sql.y:2030 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 336: + case 347: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1968 +//line sql.y:2034 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 346: + case 357: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1987 +//line sql.y:2053 { yyVAL.str = yyDollar[1].colIdent.String() } - case 347: + case 358: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1991 +//line sql.y:2057 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 348: + case 359: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1995 +//line sql.y:2061 { yyVAL.str = string(yyDollar[1].str) } - case 349: + case 360: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2000 +//line sql.y:2066 { yyVAL.str = "" } - case 351: + case 362: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2006 +//line sql.y:2072 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 352: + case 363: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2010 +//line sql.y:2076 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 353: + case 364: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ColName -//line sql.y:2015 +//line sql.y:2081 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 354: + case 365: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ColName -//line sql.y:2019 +//line sql.y:2085 { yyLOCAL = yyDollar[2].colNameUnion() } yyVAL.union = yyLOCAL - case 355: + case 366: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2024 +//line sql.y:2090 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 356: + case 367: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2028 +//line sql.y:2094 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 357: + case 368: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2032 +//line sql.y:2098 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) } - case 358: + case 369: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2036 +//line sql.y:2102 { yyLOCAL = yyDollar[1].alterOptionsUnion() } yyVAL.union = yyLOCAL - case 359: + case 370: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2040 +//line sql.y:2106 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) } - case 360: + case 371: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2044 +//line sql.y:2110 { yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) } yyVAL.union = yyLOCAL - case 361: + case 372: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2050 +//line sql.y:2116 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 362: + case 373: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2054 +//line sql.y:2120 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 363: + case 374: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2058 +//line sql.y:2124 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 364: + case 375: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2064 +//line sql.y:2130 { yyLOCAL = yyDollar[1].tableOptionsUnion() } yyVAL.union = yyLOCAL - case 365: + case 376: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2068 +//line sql.y:2134 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 366: + case 377: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2072 +//line sql.y:2138 { yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} } yyVAL.union = yyLOCAL - case 367: + case 378: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2076 +//line sql.y:2142 { yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} } yyVAL.union = yyLOCAL - case 368: + case 379: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2080 +//line sql.y:2146 { yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 369: + case 380: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2084 +//line sql.y:2150 { yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 370: + case 381: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2088 +//line sql.y:2154 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} } yyVAL.union = yyLOCAL - case 371: + case 382: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2092 +//line sql.y:2158 { yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 372: + case 383: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2096 +//line sql.y:2162 { yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()} } yyVAL.union = yyLOCAL - case 373: + case 384: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2100 +//line sql.y:2166 { yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} } yyVAL.union = yyLOCAL - case 374: + case 385: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2104 +//line sql.y:2170 { yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 375: + case 386: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2108 +//line sql.y:2174 { yyLOCAL = &KeyState{Enable: false} } yyVAL.union = yyLOCAL - case 376: + case 387: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2112 +//line sql.y:2178 { yyLOCAL = &KeyState{Enable: true} } yyVAL.union = yyLOCAL - case 377: + case 388: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2116 +//line sql.y:2182 { yyLOCAL = &TablespaceOperation{Import: false} } yyVAL.union = yyLOCAL - case 378: + case 389: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2120 +//line sql.y:2186 { yyLOCAL = &TablespaceOperation{Import: true} } yyVAL.union = yyLOCAL - case 379: + case 390: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2124 +//line sql.y:2190 { yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 380: + case 391: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2128 +//line sql.y:2194 { yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 381: + case 392: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2132 +//line sql.y:2198 { yyLOCAL = &DropKey{Type: PrimaryKeyType} } yyVAL.union = yyLOCAL - case 382: + case 393: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2136 +//line sql.y:2202 { yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} } yyVAL.union = yyLOCAL - case 383: + case 394: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2140 +//line sql.y:2206 { yyLOCAL = &Force{} } yyVAL.union = yyLOCAL - case 384: + case 395: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2144 +//line sql.y:2210 { yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 385: + case 396: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2148 +//line sql.y:2214 { yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 386: + case 397: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:2154 +//line sql.y:2220 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 387: + case 398: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2158 +//line sql.y:2224 { yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) } - case 388: + case 399: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2164 +//line sql.y:2230 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 389: + case 400: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2168 +//line sql.y:2234 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 390: + case 401: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2172 +//line sql.y:2238 { yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) } yyVAL.union = yyLOCAL - case 391: + case 402: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2176 +//line sql.y:2242 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 392: + case 403: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2180 +//line sql.y:2246 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 393: + case 404: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2184 +//line sql.y:2250 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 394: + case 405: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2188 +//line sql.y:2254 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 395: + case 406: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2192 +//line sql.y:2258 { yyLOCAL = &Validation{With: true} } yyVAL.union = yyLOCAL - case 396: + case 407: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL AlterOption -//line sql.y:2196 +//line sql.y:2262 { yyLOCAL = &Validation{With: false} } yyVAL.union = yyLOCAL - case 397: + case 408: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2202 +//line sql.y:2268 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 398: + case 409: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2208 +//line sql.y:2274 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8705,10 +8910,10 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 399: + case 410: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2215 +//line sql.y:2281 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() @@ -8716,28 +8921,28 @@ yydefault: yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 400: + case 411: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2222 +//line sql.y:2288 { yyDollar[1].alterTableUnion().FullyParsed = true yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() yyLOCAL = yyDollar[1].alterTableUnion() } yyVAL.union = yyLOCAL - case 401: + case 412: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL Statement -//line sql.y:2228 +//line sql.y:2294 { yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} } yyVAL.union = yyLOCAL - case 402: + case 413: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2232 +//line sql.y:2298 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8745,10 +8950,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 403: + case 414: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2239 +//line sql.y:2305 { yyDollar[1].alterDatabaseUnion().FullyParsed = true yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent @@ -8756,10 +8961,10 @@ yydefault: yyLOCAL = yyDollar[1].alterDatabaseUnion() } yyVAL.union = yyLOCAL - case 404: + case 415: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2246 +//line sql.y:2312 { yyLOCAL = &AlterVschema{ Action: CreateVindexDDLAction, @@ -8772,10 +8977,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 405: + case 416: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2258 +//line sql.y:2324 { yyLOCAL = &AlterVschema{ Action: DropVindexDDLAction, @@ -8786,26 +8991,26 @@ yydefault: } } yyVAL.union = yyLOCAL - case 406: + case 417: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2268 +//line sql.y:2334 { yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 407: + case 418: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2272 +//line sql.y:2338 { yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 408: + case 419: yyDollar = yyS[yypt-13 : yypt+1] var yyLOCAL Statement -//line sql.y:2276 +//line sql.y:2342 { yyLOCAL = &AlterVschema{ Action: AddColVindexDDLAction, @@ -8819,10 +9024,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 409: + case 420: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Statement -//line sql.y:2289 +//line sql.y:2355 { yyLOCAL = &AlterVschema{ Action: DropColVindexDDLAction, @@ -8833,18 +9038,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 410: + case 421: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2299 +//line sql.y:2365 { yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} } yyVAL.union = yyLOCAL - case 411: + case 422: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Statement -//line sql.y:2303 +//line sql.y:2369 { yyLOCAL = &AlterVschema{ Action: AddAutoIncDDLAction, @@ -8856,10 +9061,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 412: + case 423: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2314 +//line sql.y:2380 { yyLOCAL = &AlterMigration{ Type: RetryMigrationType, @@ -8867,10 +9072,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 413: + case 424: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2321 +//line sql.y:2387 { yyLOCAL = &AlterMigration{ Type: CompleteMigrationType, @@ -8878,10 +9083,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 414: + case 425: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2328 +//line sql.y:2394 { yyLOCAL = &AlterMigration{ Type: CancelMigrationType, @@ -8889,282 +9094,282 @@ yydefault: } } yyVAL.union = yyLOCAL - case 415: + case 426: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2335 +//line sql.y:2401 { yyLOCAL = &AlterMigration{ Type: CancelAllMigrationType, } } yyVAL.union = yyLOCAL - case 416: + case 427: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2343 +//line sql.y:2409 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 417: + case 428: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2347 +//line sql.y:2413 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 418: + case 429: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2351 +//line sql.y:2417 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 419: + case 430: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2355 +//line sql.y:2421 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 420: + case 431: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2359 +//line sql.y:2425 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 421: + case 432: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2363 +//line sql.y:2429 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 422: + case 433: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2367 +//line sql.y:2433 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 423: + case 434: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2371 +//line sql.y:2437 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 424: + case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2375 +//line sql.y:2441 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 425: + case 436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2379 +//line sql.y:2445 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 426: + case 437: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2383 +//line sql.y:2449 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 427: + case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2387 +//line sql.y:2453 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 428: + case 439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2391 +//line sql.y:2457 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 429: + case 440: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2395 +//line sql.y:2461 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 430: + case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2399 +//line sql.y:2465 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 431: + case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2403 +//line sql.y:2469 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 432: + case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2407 +//line sql.y:2473 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 433: + case 444: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2411 +//line sql.y:2477 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 434: + case 445: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2415 +//line sql.y:2481 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 435: + case 446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2419 +//line sql.y:2485 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 436: + case 447: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2423 +//line sql.y:2489 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 437: + case 448: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2427 +//line sql.y:2493 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 438: + case 449: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2432 +//line sql.y:2498 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 439: + case 450: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2436 +//line sql.y:2502 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 440: + case 451: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2440 +//line sql.y:2506 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 441: + case 452: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2447 +//line sql.y:2513 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 442: + case 453: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2451 +//line sql.y:2517 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 443: + case 454: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2457 +//line sql.y:2523 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 444: + case 455: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2461 +//line sql.y:2527 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } yyVAL.union = yyLOCAL - case 445: + case 456: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2467 +//line sql.y:2533 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 446: + case 457: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2473 +//line sql.y:2539 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 447: + case 458: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2477 +//line sql.y:2543 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 448: + case 459: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2483 +//line sql.y:2549 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 449: + case 460: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2487 +//line sql.y:2553 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -9174,404 +9379,404 @@ yydefault: } } yyVAL.union = yyLOCAL - case 450: + case 461: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2496 +//line sql.y:2562 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 451: + case 462: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2500 +//line sql.y:2566 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 452: + case 463: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2506 +//line sql.y:2572 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 453: + case 464: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2510 +//line sql.y:2576 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 454: + case 465: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2515 +//line sql.y:2581 { yyLOCAL = &OtherRead{} } yyVAL.union = yyLOCAL - case 455: + case 466: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2521 +//line sql.y:2587 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 456: + case 467: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2525 +//line sql.y:2591 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 457: + case 468: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2529 +//line sql.y:2595 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 458: + case 469: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2533 +//line sql.y:2599 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 459: + case 470: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2537 +//line sql.y:2603 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 460: + case 471: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2541 +//line sql.y:2607 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 461: + case 472: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2545 +//line sql.y:2611 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 462: + case 473: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2549 +//line sql.y:2615 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 463: + case 474: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2553 +//line sql.y:2619 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 464: + case 475: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2557 +//line sql.y:2623 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 465: + case 476: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2561 +//line sql.y:2627 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 466: + case 477: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2565 +//line sql.y:2631 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 467: + case 478: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2569 +//line sql.y:2635 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 468: + case 479: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2573 +//line sql.y:2639 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 469: + case 480: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2577 +//line sql.y:2643 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 470: + case 481: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2581 +//line sql.y:2647 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 471: + case 482: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2585 +//line sql.y:2651 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 472: + case 483: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2589 +//line sql.y:2655 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 473: + case 484: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2593 +//line sql.y:2659 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 474: + case 485: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2597 +//line sql.y:2663 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 475: + case 486: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2601 +//line sql.y:2667 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 476: + case 487: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2605 +//line sql.y:2671 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 477: + case 488: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2609 +//line sql.y:2675 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 478: + case 489: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2613 +//line sql.y:2679 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 479: + case 490: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2617 +//line sql.y:2683 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 480: + case 491: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2621 +//line sql.y:2687 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 481: + case 492: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2625 +//line sql.y:2691 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 482: + case 493: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2629 +//line sql.y:2695 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 483: + case 494: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2633 +//line sql.y:2699 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 484: + case 495: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2637 +//line sql.y:2703 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 485: + case 496: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2641 +//line sql.y:2707 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 486: + case 497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2645 +//line sql.y:2711 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 487: + case 498: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2649 +//line sql.y:2715 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 488: + case 499: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2653 +//line sql.y:2719 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 489: + case 500: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2657 +//line sql.y:2723 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 490: + case 501: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2661 +//line sql.y:2727 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } yyVAL.union = yyLOCAL - case 491: + case 502: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2665 +//line sql.y:2731 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 492: + case 503: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2670 +//line sql.y:2736 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 493: + case 504: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2674 +//line sql.y:2740 { yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 494: + case 505: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2678 +//line sql.y:2744 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 495: + case 506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2683 +//line sql.y:2749 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 496: + case 507: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2687 +//line sql.y:2753 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 497: + case 508: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2691 +//line sql.y:2757 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 498: + case 509: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2695 +//line sql.y:2761 { yyLOCAL = &Show{&ShowBasic{Command: Warnings}} } yyVAL.union = yyLOCAL - case 499: + case 510: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2700 +//line sql.y:2766 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9579,1242 +9784,1242 @@ yydefault: yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} } yyVAL.union = yyLOCAL - case 500: + case 511: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2714 +//line sql.y:2780 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 501: + case 512: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2718 +//line sql.y:2784 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 502: + case 513: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2722 +//line sql.y:2788 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL - case 503: + case 514: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2728 +//line sql.y:2794 { yyVAL.str = string(yyDollar[1].str) } - case 504: + case 515: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2732 +//line sql.y:2798 { yyVAL.str = string(yyDollar[1].str) } - case 505: + case 516: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2738 +//line sql.y:2804 { yyVAL.str = "" } - case 506: + case 517: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2742 +//line sql.y:2808 { yyVAL.str = "extended " } - case 507: + case 518: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2748 +//line sql.y:2814 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 508: + case 519: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2752 +//line sql.y:2818 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 509: + case 520: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2758 +//line sql.y:2824 { yyVAL.str = string(yyDollar[1].str) } - case 510: + case 521: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2762 +//line sql.y:2828 { yyVAL.str = string(yyDollar[1].str) } - case 511: + case 522: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2768 +//line sql.y:2834 { yyVAL.tableIdent = NewTableIdent("") } - case 512: + case 523: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2772 +//line sql.y:2838 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 513: + case 524: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2776 +//line sql.y:2842 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 514: + case 525: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2782 +//line sql.y:2848 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 515: + case 526: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2786 +//line sql.y:2852 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 516: + case 527: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2790 +//line sql.y:2856 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 517: + case 528: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2796 +//line sql.y:2862 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 518: + case 529: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2800 +//line sql.y:2866 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 519: + case 530: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2806 +//line sql.y:2872 { yyVAL.empty = struct{}{} } - case 520: + case 531: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2810 +//line sql.y:2876 { yyVAL.empty = struct{}{} } - case 521: + case 532: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2814 +//line sql.y:2880 { yyVAL.empty = struct{}{} } - case 522: + case 533: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2820 +//line sql.y:2886 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } yyVAL.union = yyLOCAL - case 523: + case 534: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2824 +//line sql.y:2890 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } yyVAL.union = yyLOCAL - case 524: + case 535: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2830 +//line sql.y:2896 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 525: + case 536: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2834 +//line sql.y:2900 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 526: + case 537: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2840 +//line sql.y:2906 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 527: + case 538: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2846 +//line sql.y:2912 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 528: + case 539: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2850 +//line sql.y:2916 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 529: + case 540: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2855 +//line sql.y:2921 { yyVAL.empty = struct{}{} } - case 530: + case 541: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2857 +//line sql.y:2923 { yyVAL.empty = struct{}{} } - case 531: + case 542: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2860 +//line sql.y:2926 { yyVAL.empty = struct{}{} } - case 532: + case 543: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2862 +//line sql.y:2928 { yyVAL.empty = struct{}{} } - case 533: + case 544: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2867 +//line sql.y:2933 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 534: + case 545: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2873 +//line sql.y:2939 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 535: + case 546: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2878 +//line sql.y:2944 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 536: + case 547: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2882 +//line sql.y:2948 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 537: + case 548: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2886 +//line sql.y:2952 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 538: + case 549: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2890 +//line sql.y:2956 { yyLOCAL = VitessType } yyVAL.union = yyLOCAL - case 539: + case 550: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2894 +//line sql.y:2960 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 540: + case 551: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2898 +//line sql.y:2964 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 541: + case 552: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2904 +//line sql.y:2970 { yyVAL.str = yyDollar[1].str } - case 542: + case 553: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2908 +//line sql.y:2974 { yyVAL.str = yyDollar[1].str } - case 543: + case 554: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2912 +//line sql.y:2978 { yyVAL.str = yyDollar[1].str } - case 544: + case 555: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2918 +//line sql.y:2984 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 545: + case 556: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2922 +//line sql.y:2988 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 546: + case 557: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2926 +//line sql.y:2992 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 547: + case 558: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2930 +//line sql.y:2996 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 548: + case 559: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2935 +//line sql.y:3001 { yyVAL.str = "" } - case 549: + case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2939 +//line sql.y:3005 { yyVAL.str = yyDollar[1].colIdent.val } - case 550: + case 561: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2943 +//line sql.y:3009 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 551: + case 562: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2949 +//line sql.y:3015 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 552: + case 563: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2953 +//line sql.y:3019 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } yyVAL.union = yyLOCAL - case 553: + case 564: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2959 +//line sql.y:3025 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 554: + case 565: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2963 +//line sql.y:3029 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 555: + case 566: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2969 +//line sql.y:3035 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 556: + case 567: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:2975 +//line sql.y:3041 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 557: + case 568: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2979 +//line sql.y:3045 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 558: + case 569: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:2985 +//line sql.y:3051 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 559: + case 570: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2991 +//line sql.y:3057 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 560: + case 571: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:2995 +//line sql.y:3061 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 561: + case 572: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:2999 +//line sql.y:3065 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 562: + case 573: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:3003 +//line sql.y:3069 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 563: + case 574: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3009 +//line sql.y:3075 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 564: + case 575: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3015 +//line sql.y:3081 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 565: + case 576: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3021 +//line sql.y:3087 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 566: + case 577: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3025 +//line sql.y:3091 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 567: + case 578: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3029 +//line sql.y:3095 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 568: + case 579: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3033 +//line sql.y:3099 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 569: + case 580: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3037 +//line sql.y:3103 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 570: + case 581: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3041 +//line sql.y:3107 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 571: + case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3047 +//line sql.y:3113 { yyVAL.strs = []string{yyDollar[1].str} } - case 572: + case 583: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3051 +//line sql.y:3117 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 573: + case 584: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3057 +//line sql.y:3123 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 574: + case 585: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3061 +//line sql.y:3127 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 575: + case 586: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3065 +//line sql.y:3131 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 576: + case 587: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3069 +//line sql.y:3135 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 577: + case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3073 +//line sql.y:3139 { yyVAL.str = string(yyDollar[1].str) } - case 578: + case 589: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3077 +//line sql.y:3143 { yyVAL.str = string(yyDollar[1].str) } - case 579: + case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3081 +//line sql.y:3147 { yyVAL.str = string(yyDollar[1].str) } - case 580: + case 591: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3085 +//line sql.y:3151 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 581: + case 592: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3089 +//line sql.y:3155 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 582: + case 593: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3093 +//line sql.y:3159 { yyVAL.str = string(yyDollar[1].str) } - case 583: + case 594: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3097 +//line sql.y:3163 { yyVAL.str = string(yyDollar[1].str) } - case 584: + case 595: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3101 +//line sql.y:3167 { yyVAL.str = string(yyDollar[1].str) } - case 585: + case 596: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3106 +//line sql.y:3172 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 586: + case 597: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3110 +//line sql.y:3176 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 587: + case 598: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3114 +//line sql.y:3180 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 588: + case 599: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3119 +//line sql.y:3185 { yyVAL.str = "" } - case 589: + case 600: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3123 +//line sql.y:3189 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } - case 590: + case 601: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3128 +//line sql.y:3194 { setAllowComments(yylex, true) } - case 591: + case 602: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3132 +//line sql.y:3198 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 592: + case 603: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3138 +//line sql.y:3204 { yyVAL.strs = nil } - case 593: + case 604: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3142 +//line sql.y:3208 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 594: + case 605: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3148 +//line sql.y:3214 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 595: + case 606: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3152 +//line sql.y:3218 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 596: + case 607: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3156 +//line sql.y:3222 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 597: + case 608: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3161 +//line sql.y:3227 { yyVAL.str = "" } - case 598: + case 609: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3165 +//line sql.y:3231 { yyVAL.str = SQLNoCacheStr } - case 599: + case 610: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3169 +//line sql.y:3235 { yyVAL.str = SQLCacheStr } - case 600: + case 611: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3174 +//line sql.y:3240 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 601: + case 612: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3178 +//line sql.y:3244 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 602: + case 613: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3182 +//line sql.y:3248 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 603: + case 614: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3187 +//line sql.y:3253 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 604: + case 615: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3191 +//line sql.y:3257 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL - case 605: + case 616: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3196 +//line sql.y:3262 { yyVAL.strs = nil } - case 606: + case 617: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3200 +//line sql.y:3266 { yyVAL.strs = []string{yyDollar[1].str} } - case 607: + case 618: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3204 +//line sql.y:3270 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } - case 608: + case 619: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3208 +//line sql.y:3274 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } - case 609: + case 620: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3212 +//line sql.y:3278 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } - case 610: + case 621: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3218 +//line sql.y:3284 { yyVAL.str = SQLNoCacheStr } - case 611: + case 622: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3222 +//line sql.y:3288 { yyVAL.str = SQLCacheStr } - case 612: + case 623: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3226 +//line sql.y:3292 { yyVAL.str = DistinctStr } - case 613: + case 624: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3230 +//line sql.y:3296 { yyVAL.str = DistinctStr } - case 614: + case 625: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3234 +//line sql.y:3300 { yyVAL.str = StraightJoinHint } - case 615: + case 626: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3238 +//line sql.y:3304 { yyVAL.str = SQLCalcFoundRowsStr } - case 616: + case 627: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3242 +//line sql.y:3308 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 617: + case 628: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3248 +//line sql.y:3314 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 618: + case 629: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3252 +//line sql.y:3318 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 619: + case 630: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3258 +//line sql.y:3324 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 620: + case 631: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3262 +//line sql.y:3328 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } yyVAL.union = yyLOCAL - case 621: + case 632: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3266 +//line sql.y:3332 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } yyVAL.union = yyLOCAL - case 622: + case 633: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3270 +//line sql.y:3336 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL - case 623: + case 634: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3275 +//line sql.y:3341 { yyVAL.colIdent = ColIdent{} } - case 624: + case 635: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3279 +//line sql.y:3345 { yyVAL.colIdent = yyDollar[1].colIdent } - case 625: + case 636: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3283 +//line sql.y:3349 { yyVAL.colIdent = yyDollar[2].colIdent } - case 627: + case 638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3290 +//line sql.y:3356 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 628: + case 639: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3295 +//line sql.y:3361 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } yyVAL.union = yyLOCAL - case 629: + case 640: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3299 +//line sql.y:3365 { yyLOCAL = yyDollar[1].tableExprsUnion() } yyVAL.union = yyLOCAL - case 630: + case 641: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3305 +//line sql.y:3371 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 631: + case 642: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3311 +//line sql.y:3377 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 632: + case 643: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3315 +//line sql.y:3381 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 635: + case 646: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3325 +//line sql.y:3391 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 636: + case 647: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3329 +//line sql.y:3395 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent, Columns: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 637: + case 648: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3333 +//line sql.y:3399 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 638: + case 649: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3339 +//line sql.y:3405 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 639: + case 650: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3345 +//line sql.y:3411 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 640: + case 651: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3349 +//line sql.y:3415 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 641: + case 652: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3354 +//line sql.y:3420 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 642: + case 653: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3358 +//line sql.y:3424 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 643: + case 654: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3364 +//line sql.y:3430 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 644: + case 655: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3368 +//line sql.y:3434 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 645: + case 656: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3374 +//line sql.y:3440 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 646: + case 657: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3378 +//line sql.y:3444 { yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL - case 647: + case 658: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3382 +//line sql.y:3448 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 648: + case 659: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3386 +//line sql.y:3452 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str))) } - case 649: + case 660: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3392 +//line sql.y:3458 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 650: + case 661: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3396 +//line sql.y:3462 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 651: + case 662: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3409 +//line sql.y:3475 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 652: + case 663: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3413 +//line sql.y:3479 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 653: + case 664: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3417 +//line sql.y:3483 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 654: + case 665: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3421 +//line sql.y:3487 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 655: + case 666: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3427 +//line sql.y:3493 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } - case 656: + case 667: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3429 +//line sql.y:3495 { yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 657: + case 668: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3433 +//line sql.y:3499 { yyVAL.joinCondition = &JoinCondition{} } - case 658: + case 669: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3435 +//line sql.y:3501 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 659: + case 670: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3439 +//line sql.y:3505 { yyVAL.joinCondition = &JoinCondition{} } - case 660: + case 671: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3441 +//line sql.y:3507 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } - case 661: + case 672: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3444 +//line sql.y:3510 { yyVAL.empty = struct{}{} } - case 662: + case 673: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3446 +//line sql.y:3512 { yyVAL.empty = struct{}{} } - case 663: + case 674: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3449 +//line sql.y:3515 { yyVAL.tableIdent = NewTableIdent("") } - case 664: + case 675: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3453 +//line sql.y:3519 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 665: + case 676: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3457 +//line sql.y:3523 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 667: + case 678: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3464 +//line sql.y:3530 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 668: + case 679: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3470 +//line sql.y:3536 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 669: + case 680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3474 +//line sql.y:3540 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 670: + case 681: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3478 +//line sql.y:3544 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 671: + case 682: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3484 +//line sql.y:3550 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 672: + case 683: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3490 +//line sql.y:3556 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 673: + case 684: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3494 +//line sql.y:3560 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 674: + case 685: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3498 +//line sql.y:3564 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 675: + case 686: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3502 +//line sql.y:3568 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 676: + case 687: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3508 +//line sql.y:3574 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 677: + case 688: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3512 +//line sql.y:3578 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10823,668 +11028,668 @@ yydefault: } } yyVAL.union = yyLOCAL - case 678: + case 689: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3522 +//line sql.y:3588 { yyVAL.tableName = yyDollar[2].tableName } - case 679: + case 690: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3526 +//line sql.y:3592 { yyVAL.tableName = yyDollar[1].tableName } - case 680: + case 691: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3532 +//line sql.y:3598 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 681: + case 692: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3536 +//line sql.y:3602 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 682: + case 693: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3542 +//line sql.y:3608 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 683: + case 694: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3547 +//line sql.y:3613 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 684: + case 695: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3551 +//line sql.y:3617 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 685: + case 696: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3555 +//line sql.y:3621 { yyLOCAL = &IndexHints{Type: UseOp} } yyVAL.union = yyLOCAL - case 686: + case 697: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3559 +//line sql.y:3625 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 687: + case 698: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3563 +//line sql.y:3629 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 688: + case 699: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3568 +//line sql.y:3634 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 689: + case 700: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3572 +//line sql.y:3638 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 690: + case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3578 +//line sql.y:3644 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 691: + case 702: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3582 +//line sql.y:3648 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 692: + case 703: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3586 +//line sql.y:3652 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 693: + case 704: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3590 +//line sql.y:3656 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 694: + case 705: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3594 +//line sql.y:3660 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 695: + case 706: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3598 +//line sql.y:3664 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} } yyVAL.union = yyLOCAL - case 696: + case 707: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3602 +//line sql.y:3668 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 697: + case 708: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3606 +//line sql.y:3672 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 698: + case 709: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3612 +//line sql.y:3678 { yyVAL.str = "" } - case 699: + case 710: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3616 +//line sql.y:3682 { yyVAL.str = string(yyDollar[2].colIdent.String()) } - case 700: + case 711: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3622 +//line sql.y:3688 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 701: + case 712: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3626 +//line sql.y:3692 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 702: + case 713: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3632 +//line sql.y:3698 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 703: + case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3636 +//line sql.y:3702 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 704: + case 715: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3640 +//line sql.y:3706 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 705: + case 716: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3644 +//line sql.y:3710 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 706: + case 717: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3648 +//line sql.y:3714 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 707: + case 718: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3652 +//line sql.y:3718 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 708: + case 719: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3656 +//line sql.y:3722 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 709: + case 720: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3660 +//line sql.y:3726 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 710: + case 721: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3664 +//line sql.y:3730 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 711: + case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3668 +//line sql.y:3734 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 712: + case 723: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3674 +//line sql.y:3740 { yyLOCAL = IsNullOp } yyVAL.union = yyLOCAL - case 713: + case 724: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3678 +//line sql.y:3744 { yyLOCAL = IsNotNullOp } yyVAL.union = yyLOCAL - case 714: + case 725: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3682 +//line sql.y:3748 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 715: + case 726: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3686 +//line sql.y:3752 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 716: + case 727: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3690 +//line sql.y:3756 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 717: + case 728: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3694 +//line sql.y:3760 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 718: + case 729: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3700 +//line sql.y:3766 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 719: + case 730: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3704 +//line sql.y:3770 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 720: + case 731: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3708 +//line sql.y:3774 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 721: + case 732: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3712 +//line sql.y:3778 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 722: + case 733: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3716 +//line sql.y:3782 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 723: + case 734: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3720 +//line sql.y:3786 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 724: + case 735: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3724 +//line sql.y:3790 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 725: + case 736: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3729 +//line sql.y:3795 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 726: + case 737: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3733 +//line sql.y:3799 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 727: + case 738: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3739 +//line sql.y:3805 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 728: + case 739: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3743 +//line sql.y:3809 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 729: + case 740: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3747 +//line sql.y:3813 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 730: + case 741: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3754 +//line sql.y:3820 { yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 731: + case 742: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3760 +//line sql.y:3826 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 732: + case 743: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3764 +//line sql.y:3830 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 733: + case 744: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3770 +//line sql.y:3836 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 734: + case 745: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3774 +//line sql.y:3840 { yyLOCAL = yyDollar[1].boolValUnion() } yyVAL.union = yyLOCAL - case 735: + case 746: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3778 +//line sql.y:3844 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 736: + case 747: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3782 +//line sql.y:3848 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 737: + case 748: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3786 +//line sql.y:3852 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 738: + case 749: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3790 +//line sql.y:3856 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 739: + case 750: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3794 +//line sql.y:3860 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 740: + case 751: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3798 +//line sql.y:3864 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 741: + case 752: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3802 +//line sql.y:3868 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 742: + case 753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3806 +//line sql.y:3872 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 743: + case 754: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3810 +//line sql.y:3876 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 744: + case 755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3814 +//line sql.y:3880 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 745: + case 756: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3818 +//line sql.y:3884 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 746: + case 757: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3822 +//line sql.y:3888 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 747: + case 758: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3826 +//line sql.y:3892 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 748: + case 759: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3830 +//line sql.y:3896 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 749: + case 760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3834 +//line sql.y:3900 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 750: + case 761: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3838 +//line sql.y:3904 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 751: + case 762: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3842 +//line sql.y:3908 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 752: + case 763: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3846 +//line sql.y:3912 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 753: + case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3850 +//line sql.y:3916 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 754: + case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3854 +//line sql.y:3920 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 755: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3858 +//line sql.y:3924 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 756: + case 767: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3862 +//line sql.y:3928 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 757: + case 768: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3866 +//line sql.y:3932 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 758: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3870 +//line sql.y:3936 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 759: + case 770: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3874 +//line sql.y:3940 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } yyVAL.union = yyLOCAL - case 760: + case 771: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3878 +//line sql.y:3944 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 761: + case 772: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3882 +//line sql.y:3948 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 762: + case 773: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3886 +//line sql.y:3952 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11493,666 +11698,666 @@ yydefault: yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} } yyVAL.union = yyLOCAL - case 767: + case 778: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3904 +//line sql.y:3970 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 768: + case 779: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3908 +//line sql.y:3974 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 769: + case 780: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3912 +//line sql.y:3978 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 770: + case 781: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3916 +//line sql.y:3982 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 771: + case 782: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3926 +//line sql.y:3992 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 772: + case 783: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3930 +//line sql.y:3996 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 773: + case 784: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3934 +//line sql.y:4000 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 774: + case 785: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3938 +//line sql.y:4004 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 775: + case 786: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3942 +//line sql.y:4008 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 776: + case 787: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3946 +//line sql.y:4012 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 777: + case 788: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3950 +//line sql.y:4016 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 778: + case 789: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3954 +//line sql.y:4020 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 779: + case 790: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3958 +//line sql.y:4024 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 780: + case 791: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:3962 +//line sql.y:4028 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 781: + case 792: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3966 +//line sql.y:4032 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 782: + case 793: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3970 +//line sql.y:4036 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 783: + case 794: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3974 +//line sql.y:4040 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 784: + case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3978 +//line sql.y:4044 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 785: + case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3988 +//line sql.y:4054 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } yyVAL.union = yyLOCAL - case 786: + case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3992 +//line sql.y:4058 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } yyVAL.union = yyLOCAL - case 787: + case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3996 +//line sql.y:4062 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } yyVAL.union = yyLOCAL - case 788: + case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4001 +//line sql.y:4067 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } yyVAL.union = yyLOCAL - case 789: + case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4006 +//line sql.y:4072 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } yyVAL.union = yyLOCAL - case 790: + case 801: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4011 +//line sql.y:4077 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } yyVAL.union = yyLOCAL - case 791: + case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4017 +//line sql.y:4083 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } yyVAL.union = yyLOCAL - case 792: + case 803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4022 +//line sql.y:4088 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } yyVAL.union = yyLOCAL - case 793: + case 804: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4027 +//line sql.y:4093 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 794: + case 805: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4031 +//line sql.y:4097 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 795: + case 806: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4035 +//line sql.y:4101 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 796: + case 807: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4040 +//line sql.y:4106 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 797: + case 808: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4045 +//line sql.y:4111 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 798: + case 809: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4050 +//line sql.y:4116 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 799: + case 810: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:4054 +//line sql.y:4120 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 800: + case 811: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:4058 +//line sql.y:4124 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 803: + case 814: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4068 +//line sql.y:4134 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 804: + case 815: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4078 +//line sql.y:4144 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 805: + case 816: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4082 +//line sql.y:4148 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 806: + case 817: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4086 +//line sql.y:4152 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 807: + case 818: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4090 +//line sql.y:4156 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 808: + case 819: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4094 +//line sql.y:4160 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 809: + case 820: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4098 +//line sql.y:4164 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 810: + case 821: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4102 +//line sql.y:4168 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } yyVAL.union = yyLOCAL - case 811: + case 822: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4108 +//line sql.y:4174 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 812: + case 823: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4112 +//line sql.y:4178 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 813: + case 824: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4116 +//line sql.y:4182 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 814: + case 825: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4120 +//line sql.y:4186 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 815: + case 826: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4124 +//line sql.y:4190 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 816: + case 827: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4130 +//line sql.y:4196 { yyVAL.str = string(yyDollar[1].colIdent.String()) } - case 817: + case 828: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4134 +//line sql.y:4200 { yyVAL.str = string(yyDollar[1].str) } - case 818: + case 829: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4138 +//line sql.y:4204 { yyVAL.str = string(yyDollar[1].str) } - case 819: + case 830: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4144 +//line sql.y:4210 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 820: + case 831: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4148 +//line sql.y:4214 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } yyVAL.union = yyLOCAL - case 821: + case 832: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4152 +//line sql.y:4218 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } yyVAL.union = yyLOCAL - case 822: + case 833: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4156 +//line sql.y:4222 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 823: + case 834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4160 +//line sql.y:4226 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 824: + case 835: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4164 +//line sql.y:4230 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 825: + case 836: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4170 +//line sql.y:4236 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 826: + case 837: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4174 +//line sql.y:4240 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 827: + case 838: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4178 +//line sql.y:4244 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 828: + case 839: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4182 +//line sql.y:4248 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 829: + case 840: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4186 +//line sql.y:4252 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } yyVAL.union = yyLOCAL - case 830: + case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4190 +//line sql.y:4256 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 831: + case 842: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4194 +//line sql.y:4260 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 832: + case 843: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4199 +//line sql.y:4265 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 833: + case 844: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4203 +//line sql.y:4269 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 834: + case 845: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4208 +//line sql.y:4274 { yyVAL.str = string("") } - case 835: + case 846: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4212 +//line sql.y:4278 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } - case 836: + case 847: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4218 +//line sql.y:4284 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 837: + case 848: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4222 +//line sql.y:4288 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 838: + case 849: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4228 +//line sql.y:4294 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 839: + case 850: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4233 +//line sql.y:4299 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 840: + case 851: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4237 +//line sql.y:4303 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 841: + case 852: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4243 +//line sql.y:4309 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 842: + case 853: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4247 +//line sql.y:4313 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 843: + case 854: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4251 +//line sql.y:4317 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL - case 844: + case 855: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4257 +//line sql.y:4323 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 845: + case 856: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4261 +//line sql.y:4327 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 846: + case 857: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4265 +//line sql.y:4331 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 847: + case 858: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4269 +//line sql.y:4335 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 848: + case 859: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4273 +//line sql.y:4339 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 849: + case 860: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4277 +//line sql.y:4343 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 850: + case 861: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4281 +//line sql.y:4347 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 851: + case 862: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4286 +//line sql.y:4352 { yyLOCAL = &NullVal{} } yyVAL.union = yyLOCAL - case 852: + case 863: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4292 +//line sql.y:4358 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -12162,707 +12367,707 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 853: + case 864: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4301 +//line sql.y:4367 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 854: + case 865: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4305 +//line sql.y:4371 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 855: + case 866: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4311 +//line sql.y:4377 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 856: + case 867: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4315 +//line sql.y:4381 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 857: + case 868: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4320 +//line sql.y:4386 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 858: + case 869: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4324 +//line sql.y:4390 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 859: + case 870: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4329 +//line sql.y:4395 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 860: + case 871: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4333 +//line sql.y:4399 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 861: + case 872: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4339 +//line sql.y:4405 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 862: + case 873: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4345 +//line sql.y:4411 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 863: + case 874: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4349 +//line sql.y:4415 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 864: + case 875: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4355 +//line sql.y:4421 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 865: + case 876: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4360 +//line sql.y:4426 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 866: + case 877: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4364 +//line sql.y:4430 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 867: + case 878: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4368 +//line sql.y:4434 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 868: + case 879: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4373 +//line sql.y:4439 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 869: + case 880: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Limit -//line sql.y:4377 +//line sql.y:4443 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 870: + case 881: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4383 +//line sql.y:4449 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 871: + case 882: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4387 +//line sql.y:4453 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 872: + case 883: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4391 +//line sql.y:4457 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 873: + case 884: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4396 +//line sql.y:4462 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 874: + case 885: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4400 +//line sql.y:4466 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 875: + case 886: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4404 +//line sql.y:4470 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 876: + case 887: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4408 +//line sql.y:4474 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 877: + case 888: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4412 +//line sql.y:4478 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 878: + case 889: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4419 +//line sql.y:4485 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 879: + case 890: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4423 +//line sql.y:4489 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 880: + case 891: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4427 +//line sql.y:4493 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 881: + case 892: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4431 +//line sql.y:4497 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 882: + case 893: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4437 +//line sql.y:4503 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 883: + case 894: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4441 +//line sql.y:4507 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 884: + case 895: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4445 +//line sql.y:4511 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 885: + case 896: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4450 +//line sql.y:4516 { yyVAL.str = "" } - case 886: + case 897: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4454 +//line sql.y:4520 { yyVAL.str = string(yyDollar[3].str) } - case 887: + case 898: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4458 +//line sql.y:4524 { yyVAL.str = string(yyDollar[3].str) } - case 888: + case 899: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4462 +//line sql.y:4528 { yyVAL.str = string(yyDollar[3].str) } - case 889: + case 900: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4467 +//line sql.y:4533 { yyVAL.str = "" } - case 890: + case 901: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4471 +//line sql.y:4537 { yyVAL.str = yyDollar[3].str } - case 891: + case 902: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4477 +//line sql.y:4543 { yyVAL.str = string(yyDollar[1].str) } - case 892: + case 903: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4481 +//line sql.y:4547 { yyVAL.str = string(yyDollar[1].str) } - case 893: + case 904: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4486 +//line sql.y:4552 { yyVAL.str = "" } - case 894: + case 905: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4490 +//line sql.y:4556 { yyVAL.str = yyDollar[2].str } - case 895: + case 906: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4495 +//line sql.y:4561 { yyVAL.str = "cascaded" } - case 896: + case 907: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4499 +//line sql.y:4565 { yyVAL.str = string(yyDollar[1].str) } - case 897: + case 908: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4503 +//line sql.y:4569 { yyVAL.str = string(yyDollar[1].str) } - case 898: + case 909: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4508 +//line sql.y:4574 { yyVAL.str = "" } - case 899: + case 910: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4512 +//line sql.y:4578 { yyVAL.str = yyDollar[3].str } - case 900: + case 911: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4518 +//line sql.y:4584 { yyVAL.str = string(yyDollar[1].str) } - case 901: + case 912: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4522 +//line sql.y:4588 { yyVAL.str = string(yyDollar[1].str) } - case 902: + case 913: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4526 +//line sql.y:4592 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } - case 903: + case 914: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4530 +//line sql.y:4596 { yyVAL.str = string(yyDollar[1].str) } - case 904: + case 915: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4536 +//line sql.y:4602 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 905: + case 916: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4540 +//line sql.y:4606 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 906: + case 917: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4546 +//line sql.y:4612 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 907: + case 918: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4550 +//line sql.y:4616 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 908: + case 919: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4554 +//line sql.y:4620 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 909: + case 920: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4559 +//line sql.y:4625 { yyVAL.str = "" } - case 910: + case 921: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4563 +//line sql.y:4629 { yyVAL.str = " format csv" + yyDollar[3].str } - case 911: + case 922: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4567 +//line sql.y:4633 { yyVAL.str = " format text" + yyDollar[3].str } - case 912: + case 923: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4572 +//line sql.y:4638 { yyVAL.str = "" } - case 913: + case 924: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4576 +//line sql.y:4642 { yyVAL.str = " header" } - case 914: + case 925: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4581 +//line sql.y:4647 { yyVAL.str = "" } - case 915: + case 926: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4585 +//line sql.y:4651 { yyVAL.str = " manifest on" } - case 916: + case 927: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4589 +//line sql.y:4655 { yyVAL.str = " manifest off" } - case 917: + case 928: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4594 +//line sql.y:4660 { yyVAL.str = "" } - case 918: + case 929: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4598 +//line sql.y:4664 { yyVAL.str = " overwrite on" } - case 919: + case 930: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4602 +//line sql.y:4668 { yyVAL.str = " overwrite off" } - case 920: + case 931: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4608 +//line sql.y:4674 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 921: + case 932: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4613 +//line sql.y:4679 { yyVAL.str = "" } - case 922: + case 933: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4617 +//line sql.y:4683 { yyVAL.str = " lines" + yyDollar[2].str } - case 923: + case 934: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4623 +//line sql.y:4689 { yyVAL.str = yyDollar[1].str } - case 924: + case 935: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4627 +//line sql.y:4693 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 925: + case 936: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4633 +//line sql.y:4699 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 926: + case 937: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4637 +//line sql.y:4703 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 927: + case 938: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4642 +//line sql.y:4708 { yyVAL.str = "" } - case 928: + case 939: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4646 +//line sql.y:4712 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 929: + case 940: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4652 +//line sql.y:4718 { yyVAL.str = yyDollar[1].str } - case 930: + case 941: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4656 +//line sql.y:4722 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 931: + case 942: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4662 +//line sql.y:4728 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 932: + case 943: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4666 +//line sql.y:4732 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 933: + case 944: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4670 +//line sql.y:4736 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 934: + case 945: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4675 +//line sql.y:4741 { yyVAL.str = "" } - case 935: + case 946: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4679 +//line sql.y:4745 { yyVAL.str = " optionally" } - case 936: + case 947: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4692 +//line sql.y:4758 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } yyVAL.union = yyLOCAL - case 937: + case 948: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4696 +//line sql.y:4762 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 938: + case 949: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4700 +//line sql.y:4766 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } yyVAL.union = yyLOCAL - case 939: + case 950: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4704 +//line sql.y:4770 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } yyVAL.union = yyLOCAL - case 940: + case 951: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4708 +//line sql.y:4774 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 941: + case 952: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4714 +//line sql.y:4780 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL - case 942: + case 953: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4718 +//line sql.y:4784 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL - case 943: + case 954: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4722 +//line sql.y:4788 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } - case 944: + case 955: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4726 +//line sql.y:4792 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) } - case 945: + case 956: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4731 +//line sql.y:4797 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 946: + case 957: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4735 +//line sql.y:4801 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 947: + case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4741 +//line sql.y:4807 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 948: + case 959: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4745 +//line sql.y:4811 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 949: + case 960: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4751 +//line sql.y:4817 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 950: + case 961: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4755 +//line sql.y:4821 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 951: + case 962: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4761 +//line sql.y:4827 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 952: + case 963: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4767 +//line sql.y:4833 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12871,329 +13076,329 @@ yydefault: } } yyVAL.union = yyLOCAL - case 953: + case 964: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4777 +//line sql.y:4843 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 954: + case 965: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4781 +//line sql.y:4847 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 955: + case 966: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4787 +//line sql.y:4853 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 956: + case 967: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4793 +//line sql.y:4859 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL - case 957: + case 968: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4797 +//line sql.y:4863 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) } - case 958: + case 969: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4803 +//line sql.y:4869 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } yyVAL.union = yyLOCAL - case 959: + case 970: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4807 +//line sql.y:4873 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } yyVAL.union = yyLOCAL - case 960: + case 971: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4811 +//line sql.y:4877 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 961: + case 972: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4815 +//line sql.y:4881 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 962: + case 973: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4819 +//line sql.y:4885 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() } yyVAL.union = yyLOCAL - case 964: + case 975: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4827 +//line sql.y:4893 { yyVAL.str = "charset" } - case 967: + case 978: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4837 +//line sql.y:4903 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } yyVAL.union = yyLOCAL - case 968: + case 979: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4841 +//line sql.y:4907 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 969: + case 980: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4845 +//line sql.y:4911 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 972: + case 983: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4854 +//line sql.y:4920 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 973: + case 984: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4856 +//line sql.y:4922 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 974: + case 985: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4859 +//line sql.y:4925 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 975: + case 986: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4861 +//line sql.y:4927 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 976: + case 987: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4864 +//line sql.y:4930 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 977: + case 988: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4866 +//line sql.y:4932 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 978: + case 989: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4869 +//line sql.y:4935 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 979: + case 990: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4871 +//line sql.y:4937 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 980: + case 991: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4874 +//line sql.y:4940 { yyVAL.empty = struct{}{} } - case 981: + case 992: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4876 +//line sql.y:4942 { yyVAL.empty = struct{}{} } - case 982: + case 993: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4878 +//line sql.y:4944 { yyVAL.empty = struct{}{} } - case 983: + case 994: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4882 +//line sql.y:4948 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 984: + case 995: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4887 +//line sql.y:4953 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 985: + case 996: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4891 +//line sql.y:4957 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 986: + case 997: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4896 +//line sql.y:4962 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 987: + case 998: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4898 +//line sql.y:4964 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 988: + case 999: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4902 +//line sql.y:4968 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL - case 989: + case 1000: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4908 +//line sql.y:4974 { yyVAL.colIdent = yyDollar[1].colIdent } - case 990: + case 1001: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4912 +//line sql.y:4978 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 992: + case 1003: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4919 +//line sql.y:4985 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } - case 993: + case 1004: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4925 +//line sql.y:4991 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } - case 994: + case 1005: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4929 +//line sql.y:4995 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 995: + case 1006: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4935 +//line sql.y:5001 { yyVAL.tableIdent = NewTableIdent("") } - case 996: + case 1007: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4939 +//line sql.y:5005 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 998: + case 1009: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4946 +//line sql.y:5012 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1413: + case 1424: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5385 +//line sql.y:5451 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1414: + case 1425: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5394 +//line sql.y:5460 { decNesting(yylex) } - case 1415: + case 1426: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5399 +//line sql.y:5465 { skipToEnd(yylex) } - case 1416: + case 1427: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5404 +//line sql.y:5470 { skipToEnd(yylex) } - case 1417: + case 1428: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5408 +//line sql.y:5474 { skipToEnd(yylex) } - case 1418: + case 1429: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5412 +//line sql.y:5478 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index ebd59d4440e..498abb86b45 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -86,6 +86,9 @@ func bindVariable(yylex yyLexer, bvar string) { subquery *Subquery derivedTable *DerivedTable when *When + with *With + cte *CommonTableExpr + ctes []*CommonTableExpr order *Order limit *Limit updateExpr *UpdateExpr @@ -293,6 +296,9 @@ func bindVariable(yylex yyLexer, bvar string) { %type explain_statement explainable_statement %type stream_statement vstream_statement insert_statement update_statement delete_statement set_statement set_transaction_statement %type create_statement alter_statement rename_statement drop_statement truncate_statement flush_statement do_statement +%type with_clause_opt with_clause +%type common_table_expr +%type with_list %type rename_list %type create_table_prefix %type alter_table_prefix @@ -517,6 +523,42 @@ load_statement: { $$ = &Load{} } + +with_clause: + WITH with_list + { + $$ = &With{ctes: $2, Recursive: false} + } +| WITH RECURSIVE with_list + { + $$ = &With{ctes: $3, Recursive: true} + } + +with_clause_opt: + { + $$ = nil + } + | with_clause + { + $$ = $1 + } + +with_list: + with_list ',' common_table_expr + { + $$ = append($1, $3) + } +| common_table_expr + { + $$ = []*CommonTableExpr{$1} + } + +common_table_expr: + table_id column_list_opt AS subquery + { + $$ = &CommonTableExpr{TableID: $1, Columns: $2, Subquery: $4} + } + query_expression_parens: openb query_expression_parens closeb { @@ -551,9 +593,9 @@ query_expression_parens: query_expression: query_expression_body order_by_opt limit_opt { - $1.SetOrderBy($2) - $1.SetLimit($3) - $$ = $1 + $1.SetOrderBy($2) + $1.SetLimit($3) + $$ = $1 } | query_expression_parens limit_clause { @@ -566,6 +608,30 @@ query_expression: $1.SetLimit($3) $$ = $1 } +| with_clause query_expression_body order_by_opt limit_opt + { + $2.SetWith($1) + $2.SetOrderBy($3) + $2.SetLimit($4) + $$ = $2 + } +| with_clause query_expression_parens limit_clause + { + $2.SetWith($1) + $2.SetLimit($3) + $$ = $2 + } +| with_clause query_expression_parens order_by_clause limit_opt + { + $2.SetWith($1) + $2.SetOrderBy($3) + $2.SetLimit($4) + $$ = $2 + } +| with_clause query_expression_parens + { + $2.SetWith($1) + } | SELECT comment_opt cache_opt NEXT num_val for_from table_name { $$ = NewSelect(Comments($2), SelectExprs{&Nextval{Expr: $5}}, []string{$3}/*options*/, nil, TableExprs{&AliasedTableExpr{Expr: $7}}, nil/*where*/, nil/*groupBy*/, nil/*having*/) @@ -701,27 +767,27 @@ insert_or_replace: } update_statement: - UPDATE comment_opt ignore_opt table_references SET update_list where_expression_opt order_by_opt limit_opt + with_clause_opt UPDATE comment_opt ignore_opt table_references SET update_list where_expression_opt order_by_opt limit_opt { - $$ = &Update{Comments: Comments($2), Ignore: $3, TableExprs: $4, Exprs: $6, Where: NewWhere(WhereClause, $7), OrderBy: $8, Limit: $9} + $$ = &Update{With: $1, Comments: Comments($3), Ignore: $4, TableExprs: $5, Exprs: $7, Where: NewWhere(WhereClause, $8), OrderBy: $9, Limit: $10} } delete_statement: - DELETE comment_opt ignore_opt FROM table_name opt_partition_clause where_expression_opt order_by_opt limit_opt + with_clause_opt DELETE comment_opt ignore_opt FROM table_name opt_partition_clause where_expression_opt order_by_opt limit_opt { - $$ = &Delete{Comments: Comments($2), Ignore: $3, TableExprs: TableExprs{&AliasedTableExpr{Expr:$5}}, Partitions: $6, Where: NewWhere(WhereClause, $7), OrderBy: $8, Limit: $9} + $$ = &Delete{With: $1, Comments: Comments($3), Ignore: $4, TableExprs: TableExprs{&AliasedTableExpr{Expr:$6}}, Partitions: $7, Where: NewWhere(WhereClause, $8), OrderBy: $9, Limit: $10} } -| DELETE comment_opt ignore_opt FROM table_name_list USING table_references where_expression_opt +| with_clause_opt DELETE comment_opt ignore_opt FROM table_name_list USING table_references where_expression_opt { - $$ = &Delete{Comments: Comments($2), Ignore: $3, Targets: $5, TableExprs: $7, Where: NewWhere(WhereClause, $8)} + $$ = &Delete{With: $1, Comments: Comments($3), Ignore: $4, Targets: $6, TableExprs: $8, Where: NewWhere(WhereClause, $9)} } -| DELETE comment_opt ignore_opt table_name_list from_or_using table_references where_expression_opt +| with_clause_opt DELETE comment_opt ignore_opt table_name_list from_or_using table_references where_expression_opt { - $$ = &Delete{Comments: Comments($2), Ignore: $3, Targets: $4, TableExprs: $6, Where: NewWhere(WhereClause, $7)} + $$ = &Delete{With: $1, Comments: Comments($3), Ignore: $4, Targets: $5, TableExprs: $7, Where: NewWhere(WhereClause, $8)} } -| DELETE comment_opt ignore_opt delete_table_list from_or_using table_references where_expression_opt +| with_clause_opt DELETE comment_opt ignore_opt delete_table_list from_or_using table_references where_expression_opt { - $$ = &Delete{Comments: Comments($2), Ignore: $3, Targets: $4, TableExprs: $6, Where: NewWhere(WhereClause, $7)} + $$ = &Delete{With: $1, Comments: Comments($3), Ignore: $4, Targets: $5, TableExprs: $7, Where: NewWhere(WhereClause, $8)} } from_or_using: diff --git a/go/vt/sqlparser/testdata/select_cases.txt b/go/vt/sqlparser/testdata/select_cases.txt index 00261a983fc..76394143c62 100644 --- a/go/vt/sqlparser/testdata/select_cases.txt +++ b/go/vt/sqlparser/testdata/select_cases.txt @@ -4519,8 +4519,8 @@ END INPUT select (with recursive dt as (select t1.a as a union all select a+1 from dt where a<10) select concat(count(*), ' - ', avg(dt.a)) from dt ) as subq from t1; END -ERROR -syntax error at position 13 near 'with' +OUTPUT +select (with recursive dt as (select t1.a as a from dual union all select a + 1 from dt where a < 10) select concat(count(*), ' - ', avg(dt.a)) from dt) as subq from t1 END INPUT select substring_index('the king of the the hill',' ',-5); @@ -5239,8 +5239,8 @@ END INPUT select (with dt as (select t1.a as a, t2.a as b from t2) select dt2.a from dt dt1, dt dt2 where dt1.b=t1.a and dt2.b=dt1.b) as subq from t1; END -ERROR -syntax error at position 13 near 'with' +OUTPUT +select (with dt as (select t1.a as a, t2.a as b from t2) select dt2.a from dt as dt1, dt as dt2 where dt1.b = t1.a and dt2.b = dt1.b) as subq from t1 END INPUT select count(*), case interval(qty,2,3,4,5,6,7,8) when -1 then NULL when 0 then "zero" when 1 then "one" when 2 then "two" end as category from t1 group by category; @@ -6187,8 +6187,8 @@ END INPUT select (with recursive dt as (select t1.a as a union select a+1 from dt where a<10) select dt1.a from dt dt1 where dt1.a=t1.a ) as subq from t1; END -ERROR -syntax error at position 13 near 'with' +OUTPUT +select (with recursive dt as (select t1.a as a from dual union select a + 1 from dt where a < 10) select dt1.a from dt as dt1 where dt1.a = t1.a) as subq from t1 END INPUT select from t5 natural join ((t1 natural join t2), (t3 natural join t4)); @@ -8810,7 +8810,7 @@ INPUT select (with cte as (select t1.a) select from cte) from t1; END ERROR -syntax error at position 13 near 'with' +syntax error at position 46 near 'from' END INPUT select from v1d; @@ -9517,8 +9517,8 @@ END INPUT select (with recursive dt as (select t1.a as a union select a+1 from dt where a<10) select concat(count(*), ' - ', avg(dt.a)) from dt ) as subq from t1; END -ERROR -syntax error at position 13 near 'with' +OUTPUT +select (with recursive dt as (select t1.a as a from dual union select a + 1 from dt where a < 10) select concat(count(*), ' - ', avg(dt.a)) from dt) as subq from t1 END INPUT select from t1 natural left join (t4 natural join t5) where t5.z is not NULL; @@ -19106,7 +19106,7 @@ INPUT select a from t1 where a in (with cte as (select t1.a) select /*+ no_semijoin() node_modules/ a from cte); END ERROR -syntax error at position 34 near 'with' +syntax error at position 107 near '/*+ no_semijoin() node_modules/ a from cte);' END INPUT select from v1a; diff --git a/go/vt/sqlparser/testdata/union_cases.txt b/go/vt/sqlparser/testdata/union_cases.txt index 93738bcc6b0..c706ab71e97 100644 --- a/go/vt/sqlparser/testdata/union_cases.txt +++ b/go/vt/sqlparser/testdata/union_cases.txt @@ -379,8 +379,8 @@ END INPUT select (with recursive dt as (select t1.a as a union select a+1 from dt where a<10) select dt1.a from dt dt1 where dt1.a=t1.a ) as subq from t1; END -ERROR -syntax error at position 15 near 'with' +OUTPUT +select (with recursive dt as (select t1.a as a from dual union select a + 1 from dt where a < 10) select dt1.a from dt as dt1 where dt1.a = t1.a) as subq from t1 END INPUT (SELECT * FROM t1 ORDER BY a DESC LIMIT 5) UNION ALL SELECT * FROM t2 ORDER BY a LIMIT 8; @@ -919,8 +919,8 @@ END INPUT select (with recursive dt as (select t1.a as a union select a+1 from dt where a<10) select concat(count(*), ' - ', avg(dt.a)) from dt ) as subq from t1; END -ERROR -syntax error at position 15 near 'with' +OUTPUT +select (with recursive dt as (select t1.a as a from dual union select a + 1 from dt where a < 10) select concat(count(*), ' - ', avg(dt.a)) from dt) as subq from t1 END INPUT SELECT 'before' AS t, id, val1, hex(val1) FROM t1 UNION SELECT 'after' AS t, id, val1, hex(val1) FROM t2 ORDER BY id,t DESC; @@ -1255,8 +1255,8 @@ END INPUT select (with recursive dt as (select t1.a as a union all select a+1 from dt where a<10) select concat(count(*), ' - ', avg(dt.a)) from dt ) as subq from t1; END -ERROR -syntax error at position 15 near 'with' +OUTPUT +select (with recursive dt as (select t1.a as a from dual union all select a + 1 from dt where a < 10) select concat(count(*), ' - ', avg(dt.a)) from dt) as subq from t1 END INPUT select a.text, b.id, b.betreff from t2 a inner join t3 b on a.id = b.forum inner join t1 c on b.id = c.thread where match(b.betreff) against ('+abc' in boolean mode) union select a.text, b.id, b.betreff from t2 a inner join t3 b on a.id = b.forum inner join t1 c on b.id = c.thread where match(c.beitrag) against ('+abc' in boolean mode) order by match(b.betreff) against ('+abc' in boolean mode) desc; diff --git a/go/vt/vtgate/planbuilder/delete.go b/go/vt/vtgate/planbuilder/delete.go index f4f409dfa65..42318cbdf4b 100644 --- a/go/vt/vtgate/planbuilder/delete.go +++ b/go/vt/vtgate/planbuilder/delete.go @@ -26,6 +26,9 @@ import ( // buildDeletePlan builds the instructions for a DELETE statement. func buildDeletePlan(stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { del := stmt.(*sqlparser.Delete) + if del.With != nil { + return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "unsupported: with expression in delete statement") + } var err error if len(del.TableExprs) == 1 && len(del.Targets) == 1 { del, err = rewriteSingleTbl(del) diff --git a/go/vt/vtgate/planbuilder/gen4_planner.go b/go/vt/vtgate/planbuilder/gen4_planner.go index d990bf3bba2..534cbc6ee63 100644 --- a/go/vt/vtgate/planbuilder/gen4_planner.go +++ b/go/vt/vtgate/planbuilder/gen4_planner.go @@ -33,6 +33,16 @@ func gen4Planner(query string) func(sqlparser.Statement, *sqlparser.ReservedVars if !ok { return nil, vterrors.Errorf(vtrpcpb.Code_UNIMPLEMENTED, "%T not yet supported", stmt) } + switch node := selStatement.(type) { + case *sqlparser.Select: + if node.With != nil { + return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "unsupported: with expression in select statement") + } + case *sqlparser.Union: + if node.With != nil { + return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "unsupported: with expression in union statement") + } + } sel, isSel := selStatement.(*sqlparser.Select) if isSel { diff --git a/go/vt/vtgate/planbuilder/select.go b/go/vt/vtgate/planbuilder/select.go index ec2996712a2..8f42a682254 100644 --- a/go/vt/vtgate/planbuilder/select.go +++ b/go/vt/vtgate/planbuilder/select.go @@ -36,6 +36,9 @@ import ( func buildSelectPlan(query string) func(sqlparser.Statement, *sqlparser.ReservedVars, ContextVSchema) (engine.Primitive, error) { return func(stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { sel := stmt.(*sqlparser.Select) + if sel.With != nil { + return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "unsupported: with expression in select statement") + } p, err := handleDualSelects(sel, vschema) if err != nil { diff --git a/go/vt/vtgate/planbuilder/testdata/tpch_cases.txt b/go/vt/vtgate/planbuilder/testdata/tpch_cases.txt index 200efb1c916..92d7f0c614d 100644 --- a/go/vt/vtgate/planbuilder/testdata/tpch_cases.txt +++ b/go/vt/vtgate/planbuilder/testdata/tpch_cases.txt @@ -550,9 +550,9 @@ Gen4 error: unsupported: cross-shard left join and column expressions Gen4 error: unsupported: in scatter query: complex aggregate expression # TPC-H query 15 view -"with revenue0(supplier_no, total_revenue) as (select l_suppkey, sum(l_extendedprice * (1 - l_discount)) from lineitem where l_shipdate >= date('1996-01-01') and l_shipdate < date('1996-01-01') + interval '3' month group by l_suppkey )" -"syntax error at position 5 near 'with'" -Gen4 plan same as above +#"with revenue0(supplier_no, total_revenue) as (select l_suppkey, sum(l_extendedprice * (1 - l_discount)) from lineitem where l_shipdate >= date('1996-01-01') and l_shipdate < date('1996-01-01') + interval '3' month group by l_suppkey )" +#"syntax error at position 236" +#Gen4 plan same as above # TPC-H query 15 "select s_suppkey, s_name, s_address, s_phone, total_revenue from supplier, revenue0 where s_suppkey = supplier_no and total_revenue = ( select max(total_revenue) from revenue0 ) order by s_suppkey" diff --git a/go/vt/vtgate/planbuilder/testdata/unsupported_cases.txt b/go/vt/vtgate/planbuilder/testdata/unsupported_cases.txt index 08feb0c6598..5cd4c872eec 100644 --- a/go/vt/vtgate/planbuilder/testdata/unsupported_cases.txt +++ b/go/vt/vtgate/planbuilder/testdata/unsupported_cases.txt @@ -596,3 +596,23 @@ Gen4 error: Column 'id' in field list is ambiguous "Table": "`user`" } } + +# unsupported with clause in delete statement +"with x as (select * from user) delete from x" +"unsupported: with expression in delete statement" +Gen4 plan same as above + +# unsupported with clause in update statement +"with x as (select * from user) update x set name = 'f'" +"unsupported: with expression in update statement" +Gen4 plan same as above + +# unsupported with clause in select statement +"with x as (select * from user) select * from x" +"unsupported: with expression in select statement" +Gen4 plan same as above + +# unsupported with clause in union statement +"with x as (select * from user) select * from x union select * from x" +"unsupported: with expression in union statement" +Gen4 plan same as above diff --git a/go/vt/vtgate/planbuilder/union.go b/go/vt/vtgate/planbuilder/union.go index d61347402ee..c369c801fbe 100644 --- a/go/vt/vtgate/planbuilder/union.go +++ b/go/vt/vtgate/planbuilder/union.go @@ -32,6 +32,9 @@ import ( func buildUnionPlan(string) func(sqlparser.Statement, *sqlparser.ReservedVars, ContextVSchema) (engine.Primitive, error) { return func(stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { union := stmt.(*sqlparser.Union) + if union.With != nil { + return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "unsupported: with expression in union statement") + } // For unions, create a pb with anonymous scope. pb := newPrimitiveBuilder(vschema, newJointab(reservedVars)) if err := pb.processUnion(union, reservedVars, nil); err != nil { diff --git a/go/vt/vtgate/planbuilder/update.go b/go/vt/vtgate/planbuilder/update.go index 98e53fa56f2..1f38128ad44 100644 --- a/go/vt/vtgate/planbuilder/update.go +++ b/go/vt/vtgate/planbuilder/update.go @@ -29,6 +29,9 @@ import ( // buildUpdatePlan builds the instructions for an UPDATE statement. func buildUpdatePlan(stmt sqlparser.Statement, reservedVars *sqlparser.ReservedVars, vschema ContextVSchema) (engine.Primitive, error) { upd := stmt.(*sqlparser.Update) + if upd.With != nil { + return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "unsupported: with expression in update statement") + } dml, ksidVindex, ksidCol, err := buildDMLPlan(vschema, "update", stmt, reservedVars, upd.TableExprs, upd.Where, upd.OrderBy, upd.Limit, upd.Comments, upd.Exprs) if err != nil { return nil, err